< 강의 커리큘럼 >

01. DevOps의기본 개념 
02. AWS기반 소규모&중규모 아키텍트설계
03. AWS기반 대규모아키텍트 설계
04. 코드를통한 인프라관리(IaC)
05. 도커와 쿠버네티스를 이용한서비스 운영
06. CI/CD(지속적 통합/지속적 제공) 구현하기
07. 모니터링서비스 구축및운영
08. AWS기반보안
부록. Kuberneteson AWS EKS


 

이번시간에는 앞서 Django를 이용하여 만들었던 

소스코드들을 EC2에 직접 배포해보고, Django에서 default로 사용하던 sqlite3의 내용을 RDS mysql로 옮겨보는 시간을 가졌습니다. 

 

AWS RDS를 mysql로 생성을 했습니다.

이때 퍼블릭으로 OPEN을 해서 외부에서 접근 가능하도록 설정을 했습니다. 

이렇게 할 경우에는.. 보안에 취약하지만 간단히 테스트하기 위해서.. 그냥하는 것 같습니다. 

 

좌 : 기존에설정되어있던 setting.py의 databases설정값 / 우: RDS의 설정값으로 변경한 settings.py의 databases 설정값

RDS 생성시 마스터 사용자 이름과 마스터 암호는 setting에 USER, PASSWORD에 입력하고, 

추가구성에서 초기 데이터베이스의 이름을 NAME에 입력합니다. 

options는 구글링하면 다 나오지만.. 해당 설정을 넣어줍니다. 

HOST는 RDS에서 엔드포인트라고 적힌부분을 적어줍니다. 

 

그리고 mysqlclient 설치가 필요합니다.

pip install mysqlclient

 

그리고 DB가 변경되었으니 다시 

python manage.py migrate

로 초기 셋팅을 해줍니다. 

 

이때 기존에 있던 데이터가 옮겨지는 것은 아닙니다. 

 

다시 imsomnia를 이용해서 데이터를 입력해줄 필요가 있습니다. 

https://insomnia.rest/ 

 

The API Design Platform and API Client

Leading Open Source API Client, and Collaborative API Design Platform for REST, SOAP, GraphQL, and GRPC

insomnia.rest

 


EC2 Ubuntu위에 앱을 배포할 예정입니다. 

putty를 이용하여 ubuntu에 접속을 했으며 패키지 다운로드가 필요합니다. (초기셋팅)

sudo apt-get update

sudo apt-get install build-essential -y

sudo apt-get install python3

python3 -V (python 3.8.5)

sudo apt-get install python3-pip

 

 

소스코드를 배포하기전에 

pip freeze >> requirements.txt

를 하게 되면 설치된 것 들이 쫙 보이게 되는거 같네요..? 맞나..? 

https://2siwon.github.io/pip/2017/09/25/pip-002-pip-freeze.html

 

pip : 02. pip freeze로 패키지 한번에 설치하기(개발환경 복구하기)

개발환경이 바뀌었을 때를 생각해보자. 일일이 패키지를 설치해줘야 한다. 이때 일일이 설치하지 않고 패키지들을 기록해놓을 수 있는 명령어가 pip freeze 명령어이다. pip를 이용해 django를 설치

2siwon.github.io

 

EC2에 어떤식으로 옮기냐? 

FTP를 활용하거나.. 이러진 않고 git hub에다가 소스코드를 올려놓고, ec2에서 git clone 하는 형태로 진행했습니다. 

 

git 사용법에 대해서는 이야기해주지 않지만.. 

git은 협업할때 많이 쓰이기 때문에 기본적인 사항들은 알아두는게 좋을 것 같네요.

저도 딱 필요한 수준까지만 하고 있습니다.

git clone

git add .

git commit -m

git push origin branch

git checkout -b

git branch 

git status

이정도..?

 

private repository로 만들경우에.. 쉽게쉽게 하기위해 SSH키 등록이 필요합니다. 

기본경로는 ~/.ssh에 있습니다. 

 

git에 소스코드를 push한 이후에 ec2에서 git clone을 합니다. 

실행하는 방법은 가상환경을 이용하여 실행하는데.. 경로는 git clone한 소스코드 안 root경로에서 실행합니다. 

 

sudo apt-get install virtualenv

virtualenv -p pytion myenv

sudo apt install python3-pip 

pip3 install -r requirements.txt (freeze로 다운받은 환경들을 설치)

(그런데 mysqlclient 설치시 애러발생 그래서 해결은) sudo apt-get install libmysqlclient-dev

(그리고 난 이후 다시 설치 시작) pip3 install -r requirements.txt

 

여기까지 설치가 완료 된 이후에는 

EC2의 SG에서 8000포트를 ANY OPEN 해줍니다. 

그리고 난 뒤에 다시

 

settings.py에 ALLOWED_HOSTS = [ 'ec2 ipv4 dns 입력하기']

를 추가해줘야합니다. 

 

python3 manage.py runserver 0.0.0.0:8000

하면 인스턴스의 퍼블릭 IPv4로 접근하면 정상적으로 뜨는걸 볼수 있습니다.

 

diswon -h 

설정을 하면 putty session이 끊어져도 계속 구동되는 그런 명령어입니다. 

 

그러면.. ec2에서 정상적으로 계속 돌아가는걸 볼 수 있습니다.

 

 


본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

 

https://bit.ly/3FVdhDa

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr

반응형

+ Recent posts