GCP + Pycharm 연동하기
이 포스트는 Ubuntu16.04 LTS 버전을 기준으로 하며, GCP와 Pycharm을 연동한다.
- GCP
- https://console.cloud.google.com/home 접속 -> 왼쪽 상단의 메뉴버튼에서 Compute Engine 클릭
2. 가운데 상단의 인스턴스 만들기를 통해 원하는 사양으로 인스턴스를 생성한다.
- 영역은 크게 6개로 나뉘며, 각 지역별 금액, CPU 등이 다르므로 잘 확인하고 선택할 것.
- 클라우드에서 제공하는 API를 사용하기 위해 엑세스 범위는 전체 엑세스 허용으로 설정한다.
- 방화벽은 클라우드를 사용할 목적에 맞게 허용하자.
3. 생성하면 아래와 같은 화면을 볼 수 있다.
- 인스턴스를 생성하면 내부 및 외부 IP를 확인할 수 있으며, 설정을 통해 고정할 수 있다.
- 또한 오른쪽의 SSH를 눌러 브라우저 터미널을 열 수 있다.
4. 이제 ssh로 접속하기 위한 작업을 하자.
- 먼저 VM에 ssh 서버를 설치한다. 기본 포트는 22로 설정되어 있다.
$ sudo apt-get install ssh-server
- passwd 명령어를 이용해 아이디와 비밀번호를 설정한다.
$ passwd 'id명'
- ssh_config, sshd_config 설정을 바꿔준다.
- ssh_config : 외부 서버에서 내부 서버 접속 시 영향을 줌.
- sshd_config : 내부 서버에서 외부 서버 접속 시 영향을 줌.
- PasswordAuthentication : 패스워드 인증을 허용한다.
$ vi /etc/ssh/ssh_config
# PasswordAuthentication 목록을 yes로 변경 후, ssh를 재시작한다.
$ sudo systemctl restart ssh
5. 설정 완료 후, 로컬 서버에서 원격서버로 접속해보자.
$ ssh id명@GCE 외부접속 ip
6. GCP와 로컬 서버를 연결했으니 이제 Django를 설치해보자.
- Django
1. 먼저 pip 명령어를 이용해 django를 설치한다.
$ pip3 install django
2. 로컬에 설치한 Pycharm과 gcp를 연동한다.
- 연동을 위해 상단 메뉴에서 Pycharm - Preferences - Project Interpreter를 클릭한다.
- 오른쪽 상단의 톱니바퀴 모양을 눌러 Add Remote를 클릭한다.
클릭하면 아래와 같은 창이 나오며, 자신이 설정한 SSH 설정에 맞게 외부 IP, name, password를 적고 OK를 누른다.
Interpreter의 Python 버전이 2로 되있다면 경로(interperter path)를 수정해 3으로 맞춰주자.
Tools - Deployment - Configuration으로 가서 왼쪽 상단의 +를 누르면 아래와 같은 화면이 나온다.
여기서 Server Type을 설정하는데 우리는 SFTP로 설정한다.
생성을 완료 후 나오는 창에 SFTP host에 GCE 외부 IP를 적고 우측의 Test를 누르면 상태 확인을 할 수 있다.
Root path는 자신이 설정하거나, 자동 설정이 가능하다.
설정을 완료하고, 창의 중상단을 보면 Mappings라는 항목이 있다. 클릭하자.
여기서 GCE와 연동할 Local Path 및 연동된 Path와 파일을 저장할 Remote Path를 설정한다.
마지막으로 소스를 수정할 때마다 자동 저장이 되도록 Automatic Upload (always)를 설정한다.
Deployment - Upload to Django로 Local 서버의 파일을 Remote 저장소에 복사할 수 있다.
3. 드디어 끝!
- 외부에서 접속하기
- 외부 접속을 위해 포트를 열어주도록 하자.
- 0.0.0.0 IP로 모든 IP에서 접근을 허용하고, 8000번 포트를 연다.
포트를 열었으니 접속해보자. 장고를 예로 들어보자.
웹 브라우저 터미널에서 아래의 명령어를 실행하면 외부에서 gcp의 ip로 접속이 가능하다!
$ python3 manage.py runserver 0.0.0.0:8000
Ps. 오늘 처음한 작업이라 잘못된 점이나 내용이 부족할 수 있습니다.
댓글 남겨주시면 바로 반영할 수 있도록 하겠습니다!
웹 개발자가 알려주는 수익형 블로그 고속 성장 A to Z