본문 바로가기
Programming

Django AWS 배포하기 1

by 하하호호 2022. 1. 14.
반응형

 

 

 

step 1 기존 프로젝트 정리

pip freeze > requirements.txt

현재 프로젝트에서 필요한 모듈들을 

requirements.txt 파일에 저장한다.

 

작업을 완료한 프로젝트 파일을

Git에 push해준다. AWS를 통해 배포하는

작업은 기본구조가 Git에 push한 후, Git으로

부터 프로젝트 파일을 AWS EC2로 pull하는

과정이다.

 

step 2 인스턴스생성 & 보안그룹

AWS에 로그인한다.

검색창에 EC2를 검색한다.

인스턴스 생성을 클릭한다.

 

보안그룹에 필요한 인바운드 규칙을 생성한다.

 

기본적으로 SSH, HTTP, HTTPS 3가지 유형은

설정해주고, 로컬에서 테스트용으로 8000 port까지

열어준다.

 

anywhere IP4v을 열어줘서 어떤 주소에서도 서버에

접속가능하도록 설정해준다. 이렇게 하면 방화벽 설정은

완료다.

 

step3 탄력적 IP 할당

서버가 꺼지고 켜지는 과정이 반복되면, 기존에 할당된

IP주소가 계속 변경된다. 당연히 DNS도 작동이 안되는

참사가 발생한다.

 

이런 경우를 대비하기 위해 탄력적 IP를 사용한다.

탄력적 IP할당하고, 기존에 생성한 EC2인스턴스에

연결해주면 탄력적 IP 할당작업이 완료된다.

 

step4 SSH를 이용한 원격 서버 접속

AWS EC2 인스턴스에 접속하는 방법은 웹에서  접속하는

방법도 있지만, SSH를 사용하는게 간편하다.

윈도우는 PUTTY를 사용해야 하지만 리눅스나 맥 사용자는

터미널에서 SSH를 이용해서 바로 접속이 가능하다.

 

먼저 인스턴스를 생성할 때 발급받았던 keypair를 저장한

경로를 확인한다. 로컬에 저장한 키를 가지고 SSH 원격접속을

시도하면 에러가 발생한다. 키가 안전하게 저장이 안되어있어서,

접속 시도를 거절한다. 그만큼 private키의 보안이 중요하다는

거다.

 

주변에 테스트 프로젝트를 진행하다가 AWS private key를 

해킹당해서, 한달 사용료가 $9,000 정도 부과된 경우도 봤다.

해외 해커들은 AWS를 해킹해서 프리티어로 테스트중인 

내 EC2 인스턴스를 슈퍼컴퓨터로 업그레이드 해놓고

ssh -i "key name" ubuntu@탄력적IP주소

비트코인 채굴용으로 사용한다. 젠장할

 

SSH 원격키 접속을 하기 전에 다음 명령어를 통해 내 

private key를 공개적으로 볼 수 없도록 설정해준다.

key 권한설정을 높여주고, 서버에 접속하면 정상적으로

진행이 가능하다.

 

반응형

댓글