< 강의 커리큘럼 >

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


 

 

앞서서 개발한 Django로 만든 어플리케이션을 배포하려면 어떻게 해야하는지 알아봤었습니다.

 

1. 개발한 소스코드를 git에 잘 정리해서 올려둔다.

2. EC2를 올리고 EC2에 접속해서 git clone한다.

3. git clone한 소스코드를 실행한다. 

 

다음과 같은 절차를 걸쳐서 진행했었습니다. 그런데 EC2의 수량이 100대라면? 

100대의 EC2에 들어가서 다 그렇게 하는게 맞는것인가?

 

아닙니다. 

 

그럴경우 git clone한 EC2이미지를 만들어서, 그 이미지를 바탕으로 100대를 만들면 각각의 EC2에 git clone을 할 필요는 없습니다.

그러나 소스코드를 실행하기 위해서는 어쩔 수 없이 다 EC2에 접속해야하는 이슈가 있습니다. 

 

그러면 어떻게 해결해야되냐? 소스코드가 올라가면 알아서 실행되게끔해야된다. 

그래서 Nginx, Gunicorn, Supervisor를 활용한다. 

 


Nginx란 무엇인가?

- 차세대(?) 웹서버

- 아파치를 안쓰고 요즘은 다 이걸 쓰죠.. 아파치는 너~무오래됨.. 

- 적은자원으로 더 빠르게 쓸 수 있다는 장점이 있다고하네요

 

EC2를 올리고, 거기에 nginx등 필요한걸 설치 해보겠습니다. 

 

sudo apt update

sudo apt-get install python3-pip

sudo pip3 install gunicorn

sudo apt-get install supervisor

sudo apt-get install nginx

sudo pip3 install django

django-admin startproject django_nginx

cd django_nginx

vi django_nginx/settings.py

>> ALLOWED_HOSTS = ["*"]으로 바꿔준다. 

 

python3 mange.py runserver 0.0.0.0:8000 >>돌아가는지 확인 

 

cd /etc/supervisor/conf.d

sudo touch django.conf

sudo vi django.conf

>> 이파일안에 다음 내용을 넣음

[program:gunicorn]

directory=/home/ubuntu/django_nginx

command=/usr/local/bin/gunicorn --workers 3 --bind:/home/ubuntu/django_nginx/app.sock django_nginx.wsgi:application

autostart=true

autorestart=true

stderr_logfile=/logs/gunicorn.err.log

stdout_logfile=/logs/gunicorn.out.log

해당내용 입력

 

sudo mkdir /logs

sudo supervisorctl reread

sudo supervisorctl update

cd /etc/nginx/

cd sites-available

sudo touch django.conf

sudo vi django.conf

>> 아래 내용입력

server{

 listen 80;

 server_name *.compute.amazonaws.com;

 location / {

   include proxy_params;

   proxy_pass http://unix:/home/ubuntu/django_nginx/app.sock;

   }

 }

 해당내용 입력

 

sudo ln django.conf /etc/nginx/sites-enabled/

sudo service nginx restart

 

 

장고파일을 먼저 해야 nginx가 정상적으로 설정 동작됩니다. 

EC2에 정상적으로 다 설치되면 

welcome NGINX 페이지가 떠야합니다. 

 

 


 

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

 

https://bit.ly/3FVdhDa

 

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

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

fastcampus.co.kr

반응형

+ Recent posts