jm_p_op

aws Django 서버 배포하기 -3(http=>https 업그레이드 본문

서버/aws

aws Django 서버 배포하기 -3(http=>https 업그레이드

jm_p_op 2023. 5. 28. 02:55

1. Route 53 에서 도메인 구매

원하는 도메인 찾기


만약 구매했다면 

Domains-Registered domains에서 서버 이름값이 hostzones의 서버와 같다.

 

 


2.load balancer

  • 밸런서 만들기

 

  • Application load balancer선택

  • basic configuration 밸런서 이름 넣

 

  • Network mapping
  • 4개 모두 체크하기 (이제 주소는 접속중인 지역으로 되므로 주의하자 서울은 northeast)

  • 보안 그룹생성
  • 그룹 리스트 새로고침
  • 생성한 그룹선택
  • 선택한 그룹(생성된것)빼고 지우기

생성시 inbound rules에 http(80포트- Anywhere-IPv4)로 만든후 생성하기

 


create targetgroup

 


loadblancer - listener 추가하기

 

  • 1.https 추가
  • 2.add action에서 forword 추가
  • 3. target group에 아까 만든 group 추

 

ACM생성하기 

구매하신 도메인 넣고 create하기

route53이랑 연동하기 (만약 도메인이 다르거나 Domains-Registered domains에서 서버 이름값이 hostzones의 서버와 다르다면 무한 pending에 빠지게 된다)

route53에서 연결이 된다면 CNAME으로 들어간다.

 

 


route53 - host_zone - create_record

  • 1.alias 키고
  • 2.Alias to Application and Classic Load Balancer
  • 3~4.만든 로드 밸런서 연결


Gunicorn 설정

  • venv 폴더에 .env 파일 만들기 (텅빈 파일)
cd ~
vim {프로젝트}/venv/.env
  • :wq로 나온후 ls로 만들어진거 확인하기

.service 파일 만들기(전에 있었던거 지우거나 덮어씌어도 된다.)

sudo vim /etc/systemd/system/<프로젝트명>.service

<프로젝트명>.service

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu/<프로젝트폴더>
EnvironmentFile=/home/ubuntu/<프로젝트폴더>/venv/.env
ExecStart=/home/ubuntu/<프로젝트파일>/venv/bin/gunicorn \
        --workers 2 \
        --bind unix:/tmp/gunicorn.sock \
        <프로젝트명>.wsgi:application

[Install]
WantedBy=multi-user.target
  • WorkingDirectory - <프로젝트파일> = manage.py가 있는 폴더명(까지의 경로)
  • EncironmentFile - 방금 .env만들었던 것까지의 경 
  • ExecStart - <프로젝트명> = settings.py가 있는 폴더명

:wq 로 저장

sudo systemctl enable {프로젝트}.service
sudo systemctl restart {프로젝트}.service
sudo systemctl status {프로젝트}.service
  • 구니콘 설정다시하기, 재시작, 상태보기 명령어 한세트 (프로젝트 코드가 달라질때마다 다시해야된다.)
  • 항상 만들어진 시간이랑 상태 보고 확인하기

Nginx 설정

 

sudo vim /etc/nginx/sites-availables/{프로젝트명}

/프로젝트

server {
    listen 80;
    server_name test53jm.com(도메인 서버);
    location / {
        include proxy_params;
        proxy_pass http://unix:/tmp/gunicorn.sock;
        proxy_buffer_size 128k;
        proxy_buffers 4 256k;
        proxy_busy_buffers_size 256k;
    }
    location = /favicon.ico { access_log off; log_not_found off; }
    location /static {
            root /home/ubuntu/프로젝트폴더/;
    }
    location /media {
            root /home/ubuntu/{프로젝트폴더}/;
    }
}

:wq

cd /etc/nginx/sites-enabled/
sudo rm -rf {프로젝트명}
sudo ln -s /etc/nginx/sites-available/{프로젝트명}

  • nginx 새롭게 만들거나 수정할때마다 삭제하고 다시 만들어주자
  • 파란글씨가 나오면 연결 잘된것
sudo systemctl restart nginx
sudo systemctl status nginx

완성

도메인/admin 으로 들어가서 작동되면 완성된것이다.