갬미의 성장일기
Day 68 - AWS 3tier (django 이용) 본문
오늘 배운 내용
- nginx-django-RDS 3tier 만들기
- 직접 도커 이미지 생성하기
오늘은 먼저 VM으로 3tier를 구성하고, 컨테이너 기반으로 넘어갔다
장고 개발 소스는 강사님이 전달해주셨는데 이따 내가 만든 소스로도 실험해 볼 생각이다
순서는 다음과 같다.
1. RDS 생성 (mysql 5.7)
-> Dump.sql 이용하여 db, tables 덤프 or 직접 생성
2. django 서버용 vm 생성
3. django settings 수정 - DATABASE 부분을 RDS로 수정
4. django db migrate, runserver
5. nginx용 vm 생성 -> conf 수정
미니과제
- 각 서비스 이미지를 만들고 컨테이너 돌리기
# amazon linux docker 설치
sudo yum update -y
sudo amazon-linux-extras install docker -y
systemctl start docker
systemctl enable docker
이미지 빌드하기
-> nginx dockerfile
FROM nginx
COPY ./nginx.conf /etc/nginx/
-> mysql dockerfile
FROM mysql:5.7
COPY ./utf8.cnf /etc/mysql/conf.d/
COPY ./Dump.sql /docker-entrypoint-initdb.d/
-> django dockerfile
FROM python:3.8
RUN python -m pip install --upgrade pip
WORKDIR /usr/src/app
RUN pip install django==3.1.13
RUN pip install pymysql==1.0.2
COPY . .
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0:8000"]
- 사실 위 두개는 평소 하던거랑 비슷해서 어렵지는 않았는데 django에서 조금 헤맸다 ㅜㅜ
workdir -> 워킹 디렉토리를 바꾸겠다 (없는경로라면 만듦)
copy -> 현재경로의 모든 파일을 워킹디렉토리로 옮기겠다
--> 따라서 dockerfile 이 있는 위치에 manage.py가 없다면 있는곳으로 copy 경로를 잡아주거나 워킹 디렉토리 위치를 바꿔줘야한다
실행하기
docker network create --driver bridge msanet
docker run --name mysql-svc -d --net msanet -e MYSQL_ROOT_PASSWORD='rlarudals' -e MYSQL_DATABASE='django_db' -e MYSQL_USER='python' -e MYSQL_PASSWORD='python' -e MYSQL_ROOT_HOST='%' gymin97/django:mysql_v1
docker run --name django-svc -d -p 8000:8000 --net msanet gymin97/django:django_v2
docker run --name nginx-svc -d -p 80:80 --net msanet gymin97/django:nginx_v1
--> 같은 network에서 실행하여 continer의 이름만으로 소통이 가능하도록 한다
- nginx conf 파일을 이미지 만들때 같이 넣어버렸는데 그러지 않고 nginx conf 를 밖에서 마운트해주는게 더 좋은방법 같다
오늘의 회고
- 장고로 이미지를 만들으려니 또 쉽지않았다 .. 그래도 확실히 스스로 해보는게 도움이 많이 되는것 같고 성공하고 나니 뿌듯했다 추가로 도커 컴포즈로도 구성하는 과제가 있어 해보고 잘 예정이다
- 시간이 남으면 추가 작업도 해볼까 하는데 안남을지,, 남을지^_6,,
'Cloud > Cloud 공부일기' 카테고리의 다른 글
Day 70 - 세미프로젝트 (eks ingress tls 통신 ACM, ec2-s3 마운트하기) (0) | 2022.04.20 |
---|---|
Day 69 - EKS 3tier (dgango) (0) | 2022.04.19 |
Day 67 - CICD (eks) (0) | 2022.04.15 |
Day 66 - CICD (eks) (0) | 2022.04.14 |
Day 65 - CICD (0) | 2022.04.13 |