어플리케이션 구동(Nginx, Gunicorn, Supervisor)- 패스트캠퍼스 챌린지...

어플리케이션 구동(Nginx, Gunicorn, Supervisor)- 패스트캠퍼스 챌린지...

반응형

< 강의 커리큘럼 >

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

반응형

from http://everycloudhasasilverlining.tistory.com/32 by ccl(A) rewrite - 2021-11-24 02:01:22