Django 서비스 AWS로 배포하기 - [1] 프로젝트 준비와 AWS 서버 대여
Django 서비스 AWS로 배포하기 - [2] github과 프로젝트 업로드
Django 서비스 AWS로 배포하기 - [3] uWSGI 연결하기
Django 서비스 AWS로 배포하기 - [4] nginx 연결하기
nginx를 연결하여 자신의 프로젝트를 연결했다면, 이젠 못생긴 url 주소를 변경하고 싶으실 겁니다. 이번 포스트에서는 가비아에서 도메인 주소를 구입하여 AWS에 연결해보도록 하겠습니다.
(+2020.11.23 추가) AWS 상에서 Route 53 부분의 UI 디자인이 바뀐 부분을 인지해둔 상태입니다. 업데이트를 해두려면 날을 잡고 살펴봐야 하는데 여유가 잘 없네요 ㅠㅠ 조만간 업데이트 해두려고 합니다! 일단 지금의 내용으로 최대한 배포를 진행해 주시면 좋겠습니다..!!
가비아 가입과 도메인 구입
가비아는 먼저 웹 호스팅이나, 도메인 대여 등의 서비스를 제공하는 꽤 유명한 업체입니다. 저는 도메인을 처음 적용했을 때 이 사이트에서 도메인을 구입해 적용해 봤으며, 생각보다 그 과정이 어렵지 않았어서 여기서 싼 도메인을 구매하여 적용하는 실습을 하도록 하겠습니다. 먼저 가비아에 들어가셔서 각자의 방법대로 가입하여 주세요. (이미 도메인을 가지고 계신다면 이 섹션은 넘어가셔도 됩니다.)
그 다음, 상단에 도메인 메뉴를 클릭해주세요. 그러면 아래와 같이 원하는 도메인을 검색할 수 있는 창이 나옵니다.
저는 테스트로 적용할 도메인을 추가하고 싶은 것이기 때문에, 위 사진에서 보이는 500원짜리 SHOP 도메인을 구매해볼게요. (이런 할인 도메인은 사용기간을 1년으로 꼭 설정해주셔서 결제금액이 할인된 비용+세금인지 꼭 확인해주세요!) 소유자 정보는 각자 알아서 작성해주시면 되고, 다른 설정은 건들지 않은 상태로 (도메인만 적용하고 싶으시다면요!) 그냥 결제하시면 됩니다. 안전 잠금은 무료니까 사용하시는 것 추천드려요.
정상적으로 결제 하시면 우측 상단에 My가비아에 들어가시면 아래와 같이 잘 추가된 것을 볼 수 있습니다.
이제 도메인 준비는 끝났고, 적용하러 가봅시다.
AWS Route 53으로 도메인 등록하기
다음은 구매한 도메인을 Route 53을 통해 만든 EC2 인스턴스와 연결해 주어야 합니다. 먼저 EC2 콘솔에 들어가셔서 등록하고자 하는 인스턴스의 IP 주소를 따로 메모장에 기록해두세요. 아래 사진에서 처럼 인스턴스를 선택한 후 확인할 수 있습니다.
좌측 상단에 서비스 탭을 클릭하여 Route 53을 검색하여 들어가줍니다.
좌측 메뉴에서 호스팅 영역으로 들어가 준 뒤, 호스팅 영역 생성을 선택하면 우측에 창이 뜨는데요, 아래의 사진처럼 도메인 이름에 구매한 도메인 이름을 입력해줍니다. 설명은 자유롭게 적어주시고, 유형은 그대로 둬주세요!
저는 아래 사진처럼 입력했습니다. 입력 후에 생성 눌러주세요.
그 후 레코드 세트 생성을 클릭해주세요. 이름에는 연결하고 싶은 주소를 입력해주시면 되는데, 비워두시면 nerogarret.shop 주소로 연결이 되고 www를 붙여 연결하고 싶으시면 이름에 www를 입력하시면 됩니다. 혹은 두 개 모두 연결하고 싶으시면 레코드 세트를 두 개 만드셔서 하나는 이름을 비우고 하나는 www를 넣고 만드시면 돼요! 저는 비워두고 생성하겠습니다. 그리고 아래 값 부분에 아까 기록해둔 EC2 인스턴스의 IP를 입력해주세요. 그러면 이름의 주소에 그 인스턴스를 연결하겠다는 뜻이 됩니다.
그러면 다음과 같이 레코드 세트가 총 3개가 됩니다. 이제 네임 서버를 변경해주어야 합니다. 유형이 NS인 레코드를 선택하시면 총 4개의 값이 들어가 있는 것을 확인할 수가 있는데요, 이 네임서버들을 가비아에 있는 여러분이 구매한 도메인의 네임서버로 바꿔주시면 됩니다. 우선 이 창을 띄워둡시다.
가비아 페이지로 돌아가서 My가비아를 클릭하면 도메인 목록을 볼 수 있었죠? 구매한 도메인의 관리툴에 들어가주시면 하단에 네임서버 설정하는 곳이 있을 거에요. 여기서 설정을 눌러주세요. (안전 잠금 신청하셨으면 해지해 주세요.)
그러면 1~4차 네임 서버 정보가 있습니다. 여기에 위 AWS 화면에 있는 4개의 네임 서버 주소를 위에서부터 차례로 1~4차 네임 서버에 넣어주세요. 이렇게 설정이 되면 됩니다.
하지만, 아직 구매한 주소로 들어가면 접속이 안됩니다. nginx 설정을 바꿔주어야 해요!
nginx한테 바꾼 도메인 알려주기
이제 nginx와 django한테 도메인이 추가되었음을 알려주어야 해요. 로컬 컴퓨터에서 작업을 하고 올려주도록 해봅시다.
먼저, `settings.py`에서 `ALLOWED_HOSTS`에 도메인(nerogarret.shop)을 추가해 줄게요.
ALLOWED_HOSTS = [
".ap-northeast-2.compute.amazonaws.com",
".nerogarret.shop",
]
그리고 `.config/nginx/mysite.conf` 에서 `server_name`에 도메인을 추가해줄게요.
server {
listen 80;
server_name *.compute.amazonaws.com *.nerogarret.shop;
charset utf-8;
client_max_body_size 128M;
location / {
uwsgi_pass unix:///tmp/mysite.sock;
include uwsgi_params;
}
location /static/ {
alias /srv/django-deploy-test/static/;
}
}
그 다음 `git push`, `pull`을 통해 서버 컴퓨터에 업로드 해주세요. 그리고 `mysite.conf` 파일이 수정되었으니, nginx에 다시 등록 해줍니다.
$ sudo cp -f /srv/django-deploy-test/.config/nginx/mysite.conf /etc/nginx/sites-available/mysite.conf
$ sudo ln -sf /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.conf
그리고 nginx, uwsgi를 껐다 켜줄게요.
$ sudo systemctl daemon-reload && sudo systemctl restart nginx uwsgi
그리고 등록한 도메인의 주소로 들어가면!!
이렇게 적용이 된 모습을 볼 수가 있습니다! 짝짝짝 :)
다음 포스트 에서는 SSL 인증서를 발급받아 보안이 강화된 HTTPS 주소로 변경하는 법을 살펴보도록 하겠습니다. 특히, 웹 페이지 사용자의 GPS를 이용해 무언가 만들고 싶으신 분들은 HTTPS 설정이 반드시 필요하니 꼭 참고해주세요!
'웹 > Django' 카테고리의 다른 글
Django 서비스 AWS로 배포하기 - [6] https 적용하기 (31) | 2020.03.27 |
---|---|
Django 서비스 AWS로 배포하기 - [4] nginx 연결하기 (74) | 2020.03.15 |
Django 서비스 AWS로 배포하기 - [3] uWSGI 연결하기 (46) | 2020.03.15 |
Django 서비스 AWS로 배포하기 - [2] github과 프로젝트 업로드 (6) | 2020.03.15 |
Django 서비스 AWS로 배포하기 - [1] 프로젝트 준비와 AWS 서버 대여 (17) | 2020.03.15 |