AWS EC2 배포하기

2022. 2. 16. 17:46Cloud/AWS 기초

생성법은 너무 쉬우니 따로 설명하지 않고, EC2설정은 아래의 하이퍼링크를 따라가면 된다.

bastion host 설정

 

AWS VPC Bastion Host 접근법

이전강의에서 우리는 bastion host에 대해 간략하게 알아보았다. 하지만 텍스트만 보고서는 당췌 이게 무슨 말인지 잘 이해하기 어려울 수 있다. 그렇기에 이번에는 실습을 통해 알아보도록 하자. A

chicode.tistory.com

아래의 화면은 푸티를 통해 접속한 aws 안에 있는 우분투의 화면이다. 아무것도 없는 우분투에 먼저 페키지를 다운받도록 하자.

아래의 명령어를 입력하도록하자.

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install python3
sudo apt-get install python3-pip

이 후 아래의 명령어를 입력해 어떤 디펜던시가 있는지 확인하도록 하자.

pip freeze >> requirements.txt

그리고 settings.py안에 반드시 아래와 같은 명령어를 추가하도록 하자. 없으면 실행이 안된다!!!

ALLOWED_HOSTS = [
'.amazonaws.com',
]

 

또한 지금까지 만든 파일을 깃허브에 올려서 배포를 하도록 하자.

배포하기 앞서 Deploy Keys를 생성해야한다. 깃에는 아직 없으니 이것을 천천히 만들어 보도록 하자.

먼저 우분투에 들어가서 아래의 명령어를 입력하자.

ssh-keygen -t rsa

이 후 암호를 입력하여 저장하도록하자.

이후 ssh 로 이동하여 id_rsa가 있는것을 확인한 후 cat id_rsa.pub 을 입력하여 이것을 열어주자. 엄청 긴 코드가 나올것인데 복사하여 Deploy keys를 생성하도록 하자.

이제 똑같은 방식으로 사용자(깃)의 이메일을 입력하여 생성한 후 똑같이 진행하도록 하자. -C "userEmail"형식으로 하면된다. id_rsa.pub의 위치는 ~/.ssh/id_rsa.pub이다. 이 키는 git의 SSH key에 저장하면 된다.

git clone을 활용하여 git에 올린 파일을 우분투로 다운받도록 하자.

 

이제 저장된 위치로 이동 후 아래의 명령어를 실행해 가상머신을 설치하고 실행을 해보도록 하자. 

sudo apt-get install virtualenv
virtualenv -p python myenv

이후 최초로 만든 디펜던시를 불러와서 다운로드 받도록 하자.

pip install -r requirements.txt

여기서 ERRO: Comand errored out with exit status 1: 라는 빨간색글씨로 에러가 나타나게 된다면 아래의 명령어를 통해 직접 설치해 주면 해결된다.

직접 설치를 해 주면 해결이 된다.

sudo apt-get install libmysqlclient-dev

 

AWS 인바운드 보안도 2개정도 추가하도록 하자. 포트번호는 8000번이며 ipv4나 6이 자유롭게 들어올 수 있도록 설정하자.

이제 접속을 해 볼텐데 127.0.0.0/8000이 아니라 조금 다르게 접근해 볼 예정이다. ec2안에 있는 퍼블릭 IPv4 DNS로 접근을 해 볼 예정이다.

주소창에 IPv4 DNS:8000/~ 형식으로 입력해 보자. order/shops/와 같은 이전에 만든 위치 그대로 접속하면 잘 되는것을 확인할 수 있다.

마지막으로 '배포'를 위해 ssh를 종료하더라도 잘 배포되도록 설정해 보자.  먼저 control z를 입력한 후 bg(background)를 입력하자. 서버가 세팅되어 돌아가는 중인 이것을 백그라운드로 옮긴 후 disown -h를 입력해 ssh가 끊어지더라도 지속적으로 구동이 되도록 하는 것 이다.

control + z

bg

disown -h