Django Elastic Beanstalk Domain Registration

snoop2head·2020년 4월 22일
0

django

목록 보기
3/3
post-custom-banner

Elasticbeanstalk으로 띄워놓은 django project의 domain은 현재 다음과 같다.

http://0401fitcuration-dev.ap-northeast-2.elasticbeanstalk.com/

이를 다음과 같이 깔끔한 custom domain으로 바꾸려고 한다.

http://fitcuration.site/

도메인 구입 및 Route 53 Name Server 설정

도메인 구입, 도메인과 AWS ROUTE53를 Name Server 설정으로 연결하는 방법은 다음 YouTube 비디오를 참고하는 것이 좋다.

다만 우리는 새 domain을 Elasticbeanstalk domain으로 연결할 것이니, 영상 중에서 EC2 IP 설정 부분은 넘어가도 된다. EC2 inbound rules 범위도 넓힐 필요가 없다. 다음 사진 같이 inbound rules이 설정되어 있어도 된다. 저 영상에서는 도메인 구입이랑 Name Server 설정만 따라하면 된다.

image-20200423083310636

Elasticbeanstalk과 Route53를 잇는 방법에 대해서는 다음 AWS Official Docs를 따라하면 된다.

AWS Route53와 Elasticbeanstalk 사이를 Alias로 잇는 방법 - Amazon Official Docs

다음과 같이 Route 53에 등록하면 된다.

image-20200423083043192

24시간 정도 지나고 등록한 도메인에 들어가니 다음과 같이 떴다.

Screen+Shot+2020-04-22+at+11.46.18+PM

어디서부터 잘못됐는지 파헤쳐봤다. Nslookup이랑 dig로 IP Adress를 확인해보니까 elasticbeanstalk이랑 등록한 도메인이 ip가 같았다. 등록한 도메인 - Route 53 - Elastic Beanstalk 도메인 사이가 잘 연결된 것은 확실하다.

Screen+Shot+2020-04-23+at+6.53.59+AM

Screen+Shot+2020-04-23+at+6.53.10+AM

400 에러가 발생한 이유를 잘 생각해봤다. 400 에러는 접근 권한이 없다는 것을 의미한다. 그래서 EC2 inbound rule을 다 풀어보기도 했지만, 소용이 없었다. 그러다가 Django project setting에서 Allowed Host에 새 도메인을 추가해야만 웹사이트에 접근권한이 생긴다는 것을 알아냈다.

Sentry를 확인해서 에러 로그를 확인해보니, 내 예상이 맞았다.

image-20200423084158832

따라서 ALLOWED_HOSTS에 새로운 도메인과 IP를 추가했다.

ALLOWED_HOSTS = [
    "0401fitcuration-dev.ap-northeast-2.elasticbeanstalk.com",
  	...
    "fitcuration.site",
    "www.fitcuration.site",
    "15.165.130.220",
    "15.164.252.147",
]

그러면 잘 작동한다!

profile
break, compose, display
post-custom-banner

0개의 댓글