AWS

[AWS] 장고 프로젝트 배포하기 (2) SSH 접속, 패키지 설치, GitHub 연동

Codest 2022. 6. 15. 21:01

안녕하세요! 지난 글에서는 AWS 계정을 생성하고 인스턴스 설정까지 해보았습니다.

[AWS] 장고 프로젝트 배포하기 (1)

 

[AWS] 장고 프로젝트 배포하기 (1) AWS 계정 생성, EC2 인스턴스 생성

안녕하세요! 오늘은 AWS를 이용하여 장고 프로젝트를 배포하는 첫 번째 글입니다. 개발환경이 궁금하신 분들은 제 Django 프로젝트 첫 번째 글을 참고해주세요. https://codest.tistory.com/5 [파이썬, Django

codest.tistory.com

 

이번 글에서는 SSH 접속(Linux Terminal 환경에서 퍼블릭 IP에 원격 접속), 로컬 환경과 동일하게 패키지 설치, 프로젝트 실행까지 해보겠습니다.

 

 목차

 

1. SSH 접속하기

2. SSH Key 발급

3. git clone

4. 패키지 설치

5. 서버 실행

 


1. SSH 접속하기

 

저번 글에서 말씀드렸다시피 저는 Linux Termianl(Ubuntu) 환경에서 작업하였습니다.

SSH에 접속하는 것은 Linux Terminal 환경에서 인스턴스에 할당했던 Public IP로 접속하는 작업입니다. 인스턴스를 클릭하고 상단에 연결을 클릭합니다.

 

SSH 클라이언트를 클릭하면 예시에 ssh -i로 시작하는 명령어가 있습니다. 이를 복사해줍니다.

이 명령어를 Linux Terminal에 입력해야하는데 따로 Ubuntu 같은 Linux 환경을 세팅하지 않으신 분들은 Windows Terminal에서 작업을 하고 계실 겁니다. 그런 분들은 Windows 환경에서도 SSH에 접속할 수 있는 Putty라는 프로그램을 사용하셔야 합니다. Putty 사용 가이드는 하단에 첨부해놓은 티스토리 블로그 링크를 참고하시기 바랍니다.

티스토리 블로그 링크

 

[Ruby on Rails + AWS + Mysql] 3. putty 사용 (아마존 프리티어 사용해 웹 서버 구축하기)

이전 글 [루비/루비 온 레일즈] - [Ruby on Rails + AWS + Mysql] 0. AWS란 (아마존 프리티어 사용해 웹 서버 구축하기) [루비/루비 온 레일즈] - [Ruby on Rails + AWS + Mysql] 1. rails 프로젝트 준비하기 (아..

wantknow.tistory.com

 

 

우선 Linux Terminal에서 pem 파일이 있는 디렉토리로 이동합니다.

저는 /mnt/c/HJcoding/aws/pem 경로에 파일이 있습니다. 

아까 복사했던 명령어앞에 sudo를 추가해서 Terminal 창에 입력해줍니다. (sudo ssh -i 이하)

여기서 sudo란 superuser do의 약자로써 슈퍼유저(관리자) 권한으로 실행한다는 의미입니다.

명령어를 입력했다면 sudo password를 입력하고 yes 엔터

 

위 사진과 같은 화면이 나온다면 성공적으로 SSH에 접속한 것입니다.

이젠 터미널 화면에 ubuntu@ip로 표시될 것입니다.

pwd 명령어를 사용하면 현재 디렉토리 위치가 표시됩니다. /home/ubuntu가 기본 경로입니다.

 

시스템 업데이트 sudo apt-get update

필수 패키지 설치 sudo apt-get install build-essential

 

파이썬 설치 sudo apt-get install python3

파이썬 버전 확인 python3 –-version

pip 설치 sudo apt-get install python3-pip

 

이제 기본적인 패키지 설치와 시스템 업데이트가 완료되었습니다.

 

2. SSH Key 발급

 

Public key 발급(나중에 key 입력만으로 관리자 권한을 인증할 수 있음)

ssh-keygen -t rsa 입력 후 엔터 -> 기본 경로 (/home/ubuntu/.ssh/id_rsa 에 저장)

ssh key(private key) 입력 후 엔터를 누르면 public key가 이미지 형태로 발급됩니다.

cat /home/ubuntu/.ssh/id_rsa.pub 을 입력하면 public key가 문자 형태로 출력됩니다.

직접 입력한 key는 나만 알고 있는 private key이고 public key는 공개된 key입니다.

혹시 모르니 저는 public key도 가려놓았습니다.

 

발급한 Key를 배포하고 싶은 GitHub Repository에 등록해줍니다.

GitHub 홈페이지 -> Repository -> Settings -> Deploy keys 클릭

Add deploy key를 클릭하고 key 부분에 아까 문자형태로 출력됐던 key를 복사해서 입력하고 Add key를 클릭합니다.

 

Deploy keys에 등록된 key를 볼 수 있습니다.

 

3. git clone

 

Repository 들어가서 Code 클릭 후 SSH 주소를 복사합니다.

 

다시 Terminal로 돌아가서 git clone SSH주소를 입력합니다.

GitHub와 똑같은 프로젝트를 복사해서 가져오는 명령어입니다.

yes 엔터 후 private key를 입력하면 프로젝트 복사 완료입니다.

 

cd repository명/ 입력하여 디렉토리를 이동합니다.

ls를 입력하면 현재 디렉토리 내의 폴더나 파일들을 볼 수 있습니다.

sudo apt-get install virtualenv를 입력하여 가상 환경 생성 준비를 합니다.

 

virtualenv -p python3 venv를 입력하여 venv라는 가상 환경을 생성합니다.

ls를 입력하여 가상 환경이 생성되었는지 확인합니다.

 

source venv/bin/activate를 입력하여 가상 환경을 활성화시킵니다.

이제 venv라는 가상환경 내에 패키지들을 설치해보겠습니다.

 

4. 패키지 설치

 

pip install -r requirements.txt 명령어를 입력하여 패키지들을 모두 설치해줍니다.

이제 드디어 로컬 환경에서 만들었던 프로젝트를 실행할 수 있습니다.

 

5. 서버 실행

python manage.py runserver 0.0.0.0:8000 명령어로 서버를 실행합니다.

 

Public IP:8000를 주소창에 입력하면 배포한 사이트에 접속할 수 있습니다.

 

하지만 runserver는 테스트용 서버이기 때문에 실제 서비스를 배포하는 데는 적합하지 않습니다.

다음 글에서는 Web Server와 WSGI를 연동하여 배포를 마무리해보도록 하겠습니다.

긴 글 읽어주셔서 감사합니다. 도움이 되셨다면 하트와 구독 부탁드립니다.

반응형