< 강의 커리큘럼 >
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을 해서 외부에서 접근 가능하도록 설정을 했습니다.
이렇게 할 경우에는.. 보안에 취약하지만 간단히 테스트하기 위해서.. 그냥하는 것 같습니다.
RDS 생성시 마스터 사용자 이름과 마스터 암호는 setting에 USER, PASSWORD에 입력하고,
추가구성에서 초기 데이터베이스의 이름을 NAME에 입력합니다.
options는 구글링하면 다 나오지만.. 해당 설정을 넣어줍니다.
HOST는 RDS에서 엔드포인트라고 적힌부분을 적어줍니다.
그리고 mysqlclient 설치가 필요합니다.
pip install mysqlclient
그리고 DB가 변경되었으니 다시
python manage.py migrate
로 초기 셋팅을 해줍니다.
이때 기존에 있던 데이터가 옮겨지는 것은 아닙니다.
다시 imsomnia를 이용해서 데이터를 입력해줄 필요가 있습니다.
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에서 정상적으로 계속 돌아가는걸 볼 수 있습니다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr
'IT이야기 > AWS인프라 구축과 DevOps 운영' 카테고리의 다른 글
인프라 구성하기 (로드밸런서 연결 및 인스턴스 분기)- 패스트캠퍼스 챌린지 AWS 인프라 구축과 DevOps 운영 17일차 (0) | 2021.11.17 |
---|---|
인프라 구성하기 (로드밸런서의 동작원리와 ELB)- 패스트캠퍼스 챌린지 AWS 인프라 구축과 DevOps 운영 16일차 (0) | 2021.11.16 |
모놀리식 앱 배포를 위한 백엔드 (2/2)- 패스트캠퍼스 챌린지 AWS 인프라 구축과 DevOps 운영 14일차 (0) | 2021.11.14 |
모놀리식 앱 배포를 위한 백엔드 (1/2)- 패스트캠퍼스 챌린지 AWS 인프라 구축과 DevOps 운영 13일차 (0) | 2021.11.13 |
Django 기초 (2/2) - 패스트캠퍼스 챌린지 AWS 인프라 구축과 DevOps 운영 12일차 (0) | 2021.11.12 |