EB에 HTTPS 설정하기

dragonappear·2022년 6월 12일
2

ElasticBeanstalk

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


출처 및 참고

제목: "[AWS] Route53,ACM으ㄹ 통해 Elastic Beanstalk HTTPS 설정하기(freenom을 통통한 무료 도메인 사용)"
작성자: tistory(EARTH_ROOPRETELCHAM)
작성자 수정일: 2021년11월30일
링크: https://earth-95.tistory.com/127
작성일: 2022년6월13일

Route53

  • Amazon Route53은 높은 가용성과 확장성을 가진 클라우드 DNS(Domain Name System) 웹 서비스이다.
  • 이 서비스를 통해 자신의 도메인 주소를 AWS의 여러 리소스와 연결시켜 사용할 수 있다.

비용

  • 처음 25개의 호스팅 영역에 대해 월별 호스팅 영역 당 0.50USD가 부과되며, 이를 넘어설 경우 추가 호스팅 영역에 대해 월별 호스팅 영역당 0.10US가 부과된다.

Route 53에 도메인 등록하기

먼저 AWS 콘솔에 접근하여 Route53의 호스팅 영역의 호스팅 영역 생성을 클릭한다.


아래와 같이 생성하고자 하는 DNS에 등록하고자 하는 도메인 이름을 작성하고, 호스팅 영역 생성을 클릭하면, 레코드 정보를 확인할 수 있다.


  • 레코드 정보 중, 유형이 NS인 것이 NameServer이기 때문에, 해당 로우의 값/트래픽 라우팅 대상에 적힌 nameserver 리스트를 호스팅 영역 생성 시 등록한 도메인 이름과 동일한 도메인 구매시, nameserver로 넣어야 한다.

  • 필자의 경우, 서브 도메인을 생성하여 해당 도메인을 EB에 연결할 것이다. 서브 도메인을 생성하기 전에, 먼저 Route53에 호스팅 영역을 생성하면서 얻은 NameServer를 신규 발급 받은 무료 도메인과 연결해보자


무료 도메인 발급 받기(Freenom)

실 프로젝트에서는 가비아를 통해 도메인을 구매하였지만, 이번 포스팅에서는 테스트 용도로 사용하기 위해 발급받은 도메인이라 Freenom에서 무료 도메인을 발급받았다.

먼저 Freenom 사이트에 접속하여 로그인을 하고 원하는 도메인을 구매할 수 있는지 확인한다.


이때 위와 같이 Ge it Now! 버튼을 클릭하여 바로 도메인 발급이 되면 문제 없지만, 아래와 같이 Get it now 클릭 시 Not available이 뜬다면, 검색창에 최상위 도메인까지 모두 넣어서 검색한 후 발급을 시도해보자.


1 domain in cart가 뜬 것을 확인한 후 Checkout 버튼을 클릭하면, 아래 과정과 같이 도메인 발급이 가능하다.




  • 위 과정을 통해 도메인을 발급 받으면, 아래와 같이 로그인이 가능하다
    • 로그인 계정은 도메인 Checkout시 인증 받은 이메일 주소로 로그인하며, 비밀번호는 Review & Checkout의 Your Details에 넣은 Password이다.

로그인이 완료되면, Services->My Domains를 클릭하여 NameServer를 등록하면 된다.




위와 같이 Services-> My Domains에 접근한 뒤 NameServer를 등록하고자 하는 도메인의 Manage Domain을 클릭한다.

그 후, Management Tools-> NameSergvers를 클릭하여 아래와 같이 NameServer를 입력한다.


위에 등록하는 NameServer는 Route53에서 호스팅 영역 생성 시 유형이 NS로 나온 로우의 값/트래픽 라우팅 대상에 적혀 있는 ns 도메인들을 각각 한 줄 씩 넣어주면 된다. NameServer를 등록한 뒤, whois 명령어를 통해 신규 발급 받은 도메인을 확인해보면, NameServer가 변경된 것을 확인할 수 있다.


Route53에 서브 도메인을 생성하여 EB와 연결하기(HTTP)

기본적으로 EB에 접근할 때 사용하는 도메인은 EB의 환경에서 확인할 수 있다.

현재 하고자 하는 작업은 기존과 동일하게 HTTP를 사용하되, EB가 기본으로 제공하는 도메인이 아닌 신규로 발급 받은 도메인을 통해 EB에 접근하고자 하는 것이다.


먼저 Route53에 접속하여 레코드 생성을 클릭하여 서브 도메인을 생성해보자.


  • 레코드 생성 시, 레코드 이름은 원하는 이름으로 지정하면 된다.

  • 레코드 유형의 경우, AWS 리소스로 트래픽 라우팅은 CNAME 레코드나 A레코드 모두 사용 가능하다.

    • 이 때, A레코드를 통해 EB 도메인을 연결한 이유는, EB의 도메인에는 region 명이 표시되어 있어, alias 레코드를 만들 수 있기 때문이다.
  • 트래픽 라우팅 대상에는 별칭을 사용하여 기입하였으며, EB에 대한 라우팅인데, ALB를 선택한 이유는 다음과 같다

    • EB 구성 시 ALB를 앞에 두어 클라이언트는 ALB를 통해 EB에 접근하게 된다.
    • 따라서, ALB에 대해 접근할 때에 라우팅을 해주면 그 뒤단은 신경 쓸 필요가 없다.(사실 상 ALB - EB에 의해 생성된 EC2간 통신은 클라이언트가 직접 접근X)

위와 같이 레코드를 생성해주면, 생성된 레코드로 접근 시 기존에 EB도메인으로 접근했을 때와 동일한 화면을 확인할 수 있다.


Alias 레코드 VS CNAME 레코드

  • Alias 레코드는 CNAME 레코드와 유사해보이만 CNAME 레코드가 가진 문제를 해결 할 수 있는 장점을 가지고 있다.

  • AWS Elastic Load Balancer, AWS EB와 같은 AWS가 기본적으로 제공하는 DNS 이름은 보통 XXX-<aws-region>.amazon.com으로 생성된다

  • Alias 레코드를 사용하면, 도메인 내에 AWS region이 포함되어 있으면 따로 IP 정보를 넣을 필요없이 어떤 AWS 서비스로 라우팅할 것인지 작성할 수 있다.

    • 위에서 Route53을 이용하여 EB에 대한 레코드 생성 시 Alias 레코드 사용
    • 또한 Route53은 Alias 레코드를 사용하여 트래픽을 라우팅하는 요청에 대해서는 요금을 부과하지 않는다


  • CNAME 레코드를 통해 DNS 질의를 진행할 떄는 요금 부과

ACM(AWS Cretificate Manager)를 통해 EB에 HTTPS로 접근하기

ACM(AWS Cretificate Manager)

  • AWS Certificate Manager는 AWS 서비스 및 연결된 내부 리소스에 사용할 공인 및 사설 SSL/TLS 인증서를 손쉽게 관리 및 배포할 수 있도록 도와주는 서비스이다.

AWS Certificate Manager를 통해 프로비저닝된 공인 SSL/TLS 인증서는무료이며, 사설 인증 기관을 사용할 경우에만 과금된다.

AWS가 제공하는 공인 SSL/TLS 인증서를 사용하여 기존에 생성한 서브 도메인을 https로 접근하였을 때, EB에 정상접근되도록 설정해보자

ACM(AWS Certificate Manager)를 통해 AWS가 제공하는 공인 SSL/TLS 인증서 발급받기

  • 먼저 AWS 콘솔에 접속하여 Certificate Manager 서비스에 들어간다.
  • 처음 인증서를 받는 것이라면, 아래와 같이 화면이 뜰것이고 인증서 요청 버튼을 눌러 인증서를 생성해보자


  • 인증서 요청 시, 아래와 같이 퍼블릭 인증서 요청으로 해야 AWS가 제공하는 무료 인증서를 받을 수 있다.


  • 도메인 이름에는 인증서를 사용하고자 하는 정확한 명칭의 도메인을 넣어준다.
  • 검증 방법에는 이메일 검증도 가능하겠지만, 필자와 같이 Route53 접근 권한이 있다면 DNS 검증을 통해 편하게 검증이 가능하다.

위 과정을 토대로 인증서를 발급받으면 아래와 같이 검증 대기중으로 뜬 인증서를 볼 수 있다.




  • 인증서를 클릭하여 인증서 정보를 보면, 도메인 부분에 Route53에서 레코드 생성 버튼이 있다. 해당 버튼을 클릭하여 Route53에 레코드를 생성해준다.

  • 여기까지 완료되면, 검증 대기중이 아닌 발급됨으로 인증서의 상태가 변경된다.

  • 이 때, https://도메인으로 접속하게 되면 한없이 로디이 이루어지며, 접근이 되지 않는 것을 확인할 수 있다.

  • 이는 EB 설정에서 로드밸런싱에 80포트에 대해서만 세팅을 해주었기 때문이다.

  • https로 접근해도 제대로 EB 환경으로 라우팅되도록 EB 구성을 변경해보자.

HTTPS 접근이 되도록 EB의 ALB 설정 변경하기

먼저, EB에 접속하여 ALB 설정을 추가하고자 하는 환경의 구성을 클릭한다. 그 후 로드밸런서 탭의 리스너 부분을 아래와 같이 수정한다.




  • ALB 설저으이 경우, 443 포트를 통해 HTTPS 접근할 수 있도록 하였다.

    • 이 때, Security Policies는 ALB가 사용할 수 있는 Seucrity Policy(아래 사진)을 참고하였다.
  • 리스너 추가 시 ACM은 위에서 생성한 인증서를 연결해주면 된다.

  • 로드밸런서의 리스너를 추가한뒤, 적용을 누르면 EB의 환경 구성을 변경한다
  • 구성이 완료되면 아래와 같이 HTTPS 역시 EB 환경으로 라우팅이 되는 것을 확인할 수 있다.

post-custom-banner

0개의 댓글