Google Cloud Platform에 계정을 등록하고 Compute Engine을 들어가면 아직 아무 것도 없다. 가볍게 인스턴스 만들기
클릭하자.
그러면 이런 화면이 보이게 되는데 필요한 것들만 지정해보자.
모든 Cloud API에 대한 전체 액세스 허용
을 선택하자.이렇게 전부 설정하고 만들면
이렇게 뿅하고 만들어진다. 외부 IP주소 오른쪽에 있는 SSH를 누르면 웹 터미널로 서버에 접속할 수 있게 되는데 그전에, SSH를 통해서가 아닌 일반 HTTP나 HTTPS를 통해서 서버에 접속할 수 있게 방화벽 설정을 해줘야 한다.
검색창에 방화벽이라고 검색을 하면 방화벽(VPC 네트워크)가 있다. 거기에 들어가서 + 방화벽 규칙 만들기
를 해보자.
그러면 이런 화면이 보이는데 여기서도 필요한 것들만 지정해보자.
0.0.0.0/0
으로 하자. 사실 0.0.0.0/0
은 모든 IP범위의 트래픽을 전부 허용한다는 뜻이기 때문에 보안상 좋지는 않다. 각자 원하는 범위의 IP만 찾아서 지정할 수 있으면 하는 것이 좋다.여기까지 됐다면, 설정해줄 것은 끝났고, Ubuntu 서버에 접속해서 django 앱을 켜기만 하면 된다!
다시 Compute Engine의 VM인스턴스로 와서 연결 아래에 있는 SSH를 누르면 이렇게 접속이 뿅하고 된다.
혹은 Google Cloud SDK를 설치했다면 연결의 SSH옆에 드롭다운을 누르면 gcloud 명령어 보기가 있다. 그걸 누르면
gcloud beta compute ssh --zone "asia-northeast3-b" "instance-1" --project "planar-contact-329102"
이런 비슷한 명령어가 뜨는데, 이걸 터미널에 복붙하면 터미널로 접속을 할 수 있다! (이 방식을 더 추천한다)
접속을 했다면 우선 패키지 업데이트 부터 하자
$> sudo apt-get update && sudo apt-get dist-upgrade
중간에 이런 메세지가 나오면 엔터 누르고 넘어가자
Need to get 28.0 MB of archives.
After this operation, 1111 kB of additional disk space will be used.
Do you want to continue? [Y/n]
기본적으로 Ubuntu 20.04 LTS 기준으로 Python3 는 3.8.10이 설치돼있고, pip는 설치가 안돼있어서 설치를 해줘야한다.
$> sudo apt install python3-pip
$> pip --version
# pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
설치가 완료되면 version한번 찍어보는건 국룰
pip 설치가 돼도, PATH 설정이 안돼있기 때문에 바로 설치한 패키지를 실행할 수가 없다. PATH 설정은 이 글을 따라하자.
설치와 PATH설정까지 완료가 됐다면 이제는 앱을 clone받아서 실행해보자.
$> git clone https://github.com/my/django-app # 내 Git 저장소 주소
$> cd django-app
$> pip install django djangorestframework ... # 가상환경 사용을 안한다면 패키지 설치
$> pipenv install # 가상환경 사용한다면 설치
$> pipenv shell # 가상환경 사용한다면 실행
# 여기까지는 django 앱을 실행할 수 있는 상태로 만들기
$> python manage.py makemigrations
$> python manage.py migrate
$> python manage.py runserver 0.0.0.0:8000
# 실행하되, 0.0.0.0:8000 으로 서버를 실행하기.
여기까지 하면 서버의 외부 IP로 내 django 앱에 접속할 수가 있다!
http://서버외부IP:8000/
가장 만만한건 admin 페이지
주의할 점은 https로 접속하면 오류가 발생한다. 아직 https 설정을 안해줬기 때문이다. https 설정은 나중 포스팅에서 다뤄보자.