반응형

 

Django - 장고, 파이썬 무료 호스팅 (클라우드 타입 - cloudtype)

 

 

   목차

  1. 클라우드타입(cloudtype) 사용하기
  2. 파이썬 무료 호스팅 (장고)
  3. DB 무료 호스팅 (MariaDB)
  4. DB 연결하기
  5. 참고사항 : 가상환경 확인 및 생성 명령어

 

 

1. 클라우드타입(cloudtype) 사용하기

 

파이썬 언어를 사용하는 장고 프로젝트를 제한적이지만 무료로 호스팅할 수 있는 국내 사이트가 있어 테스트를 해보았습니다. 보통 파이썬은 AWS나 카페24 같은 곳에서 서버호스팅을 이용하여 일일이 세팅을 해줘야 하는데, 이곳에서는 비교적 편하게 설정할 수 있었습니다. 

 

1) 준비사항 

  1. 신용카드 or 체크카드 : 클라우드타입을 무료 버전이라도 이용하려면 카드등록이 필수로 되어 있어 신용카드 또는 체크카드가 필요합니다. 
  2. github : github를 통해 배포 설정을 하기 때문에 github에 배포할 프로젝트가 저장되어 있어야 합니다. 
  3. 클라우드타입 회원가입 : 클라우드 타입 사용을 위해 아래 링크를 통해 회원가입을 해주도록 합니다.  

 

https://cloudtype.io/

 

모두의 플랫폼팀, 클라우드타입

클라우드타입은 클라우드 기반 애플리케이션을 빠르게 개발하고 배포할 수 있는 클라우드 애플리케이션 플랫폼입니다.

cloudtype.io

 

 

 

2. 파이썬 무료 호스팅 (장고)

 

1) 프로젝트 생성

 

로그인을 하고 나면 아래와 비슷한 화면이 나타납니다.

  • ①번 : + 버튼을 클릭하여 프로젝트를 생성하도록 합니다. 
  • ②번 : 좌측 하단에 리소스 용량이 보이는데, 여기에서 카드등록을 해주어야 무료로 사용할 수 있는 리소스가 제공됩니다. 

 

 

2) "내 GitHub 저장소 배포하기" 선택

 

 

 

3) 내 GitHub 저장소에서 배포할 프로젝트 선택

  • github 계정을 연결한 후 진행하면 아래와 같은 화면이 나타납니다. 여기에서 배포할 저장소를 선택해 줍니다.
  • (cf, github 계정 연결후 install 버튼을 누르는 화면이 한번 나타났던것 같은데 기억이 가물가물하네요)

 

 

 

4) 언어/프레임웍 선택 항목에서 Python Django 선택

  • 언어/프레임웍 선택 항목에서 PythonDjango를 선택하게 되면 버전 및 세부사항을 설정할 수 있는 옵션 메뉴가 나타납니다. 

 

 

5) 장고 버전 설정 후 [더 많은 옵션] 클릭

 

 

 

6) [더 많은 옵션] 설정

  • Pre start Command : runserver 전에 실행해야할 명령어를 적어줍니다. 예제에서는 DB 사용시 필요한 명령어 두개를 적어주었습니다.
  • Install commmand에는 "pip install -r requirements.txt" 명령어 실행이 디폴트로 되어있습니다. requirements.txt 파일에는 설치해야할 라이브러리 목록이 있는 파일인데 뒤에서 추출방법에 대해 설명하도록 하겠습니다. 

 

7) 배포하기 

  • 배포하기를 클릭하면 배포가 시작됩니다. 

 

cf)  만약 DB와 연동되어 사용하는 프로젝트라면 아래와 같이 DB설정을 해주어야 합니다. 

 

 

 

3. DB 무료 호스팅 (MariaDB)

 

1) 프로젝트 생성

  • 위에서와 같이 + 버튼을 누른후 mariadb를 검색하여 MariaDB를 선택해 줍니다. 

 

 

2) Root 비밀번호 설정

  • root 비밀번호를 설정해 줍니다. 

 

 

3) 배포하기

  • 배포하기 버턴을 클릭하여 배포를 진행합니다. 

 

 

 

4. DB 연결하기

 

1) 프로젝트 홈 화면에서 우측 상단 톱니바퀴 버튼을 클릭합니다. 

 

 

 

2) 방화벽 설정

  • 스크롤을 내리면 마지막 부분에 방화벽 설정 부분에서 "TCP 외부 접속 허용하기"를 허용합니다. 

 

 

3) DB 접속 도메인 주소 확인

  • 프로젝트 홈화면에서 앞서 설정한 DB호스팅을 클릭하면 [연결] 메뉴에서 외부에서 DB에 접속할 수 있는 도메인 주소를 확인할 수 있습니다. 
  • ①번 : 호스트명
  • ②번 : 포트번호

 

 

4) 외부에서 DB 접속하여 사용하기

  • HeidiSQL과 같은 DB 접속 프로그램을 통해 DB에 접속하여 데이터베이스에 데이터를 넣어줍니다. 
  • 호스트명과 포트번호는 위에서 확인한 내용을 참고하시면 됩니다. 

 

5) 장고의 setting.py 파일 수정

  • 변경 : DATABASES = "HOST", "PORT" 부분을 위에서 확인한 값으로 변경
  • 변경 : ALLOWED_HOSTS = ['*'] or ["localhost", "127.0.0.1", ".cloudtype.app", "0.0.0.0"]
  • 추가 : CSRF_TRUSTED_ORIGINS = ['https://*.cloudtype.app'] 

 

6) requirements.txt 파일 생성

 

배포할 장고 프로그램에서 사용하는 라이브러리를 서버에도 설치해야 되기 때문에 requirements.txt 파일에 라이브러리 목록과 버전을 등록해 주어야합니다. 

  • 추출방법 : pip list --format=freeze > requirements.txt
  • cf) pip freeze > requirements.txt 예전에는 이렇게 했는데 현재는 이렇게 하면 다른 정보가 나타납니다.

이때 라이브러리는 최소한으로 설치해야되기 때문에 아나콘다에서 사용하신분은 가상환경에서 다시 환경을 만들어 주어서 실행해 주셔야 합니다. 

 

※ 주의사항 : mariaDB사용시 mysqlclient를 설치해야 되는데 이때 requirements.txt 파일에 버전이 1.4.6 이어야 됩니다. 저의 경우 pc에서 사용하고 있는 2.2.1 버전으로 하게 되면, 클라우드타입에서는 에러가 발생하여 requirements.txt 파일에 mysqlclient==1.4.6 버전으로 수정하여 진행시 정상 진행되었습니다 .

 

 

 

5. 참고사항 :  가상환경 확인 및 생성 명령어

 

1) 명령어 정리 (아나콘다 사용시)

  • conda env list (가상환경 목록 확인)
  • conda create -n myenv (가상환경 생성)
  • conda activate myenv (가상환경으로 접속)
  • conda list 
  • pip list
  • conda install django (가상환경에 장고 설치)
  • pip install mysqlclient==1.4.6
  • pip install mysqlclient

 

반응형

+ Recent posts