ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS EC2에 HTTPS 적용하기
    클라우드 2021. 9. 2. 23:59

    HTTP만 적용된 API 서버 구조

    EC2에 HTTPS 적용하는 방법은 크게 두 가지로 분류된다.

    1. 기존 방식인 EC2 내부에 SSL 인증서를 설치하고 서비스하는 방법
      • 무료 또는 유료 인증서를 발급받아 서비스한다.
    2. AWS에서 제공하는 인증서 관리 서비스인 ACM을 ELB와 연동하여 서비스하는 방법
      • AWS에서 자체적으로 인증서를 관리(생성, 갱신 등)해주며 ELB를 사용해야 ACM를 사용할 수 있다!
      • ACM를 사용하려면 Amazon CloudFront, AWS Elastic Beanstalk, Amazon API Gateway, Elastic Load Balancing 등 서비스를 사용해야한다.
      • 무료이다.
    적용하기 1번 보다 쉽다고 생각했고 ELB와 ACM도 이해할 수 있기 때문에 겸사겸사 AWS에서 제공하는 ACM으로 HTTPS를 구축하기로 했다.

    HTTPS를 적용하기 위해 생각했던 문제

    1. 도커에도 포트를 443으로 해줘야하나??
    2. 그럼 NGINX에도 https관련 세팅을 해줘야 하는 것 아닌가!

    직접 적용 해보니 그럴 필요가 없었다!

     

    적용 과정

    ACM인증서 발급 받기

    1. 공인 인증서 요청(ACM의 인증서 요청 버튼)

    여기서 공인 / 사설 인증서 요청이 있는데 공인 인증서로 요청을 하면 된다. 이 둘의 차이는

    • 공인(CA) 인증서: CA기관에 의해 인증서를 발급받아 인터넷 웹 상에서 회사의 신뢰성 보장받을 수 있다!
    • 사설 인증서: 엄격하게 검증된 CA기관에서 발급받은 인증서가 아니다! ACM 콘솔에서 직접 CA를 만들어서 발급받을 수 있다.

    2. 도메인 이름 추가

    • 인증서를 발급받을 도메인을 추가한다

    3. 검증

    • 현재 Route 53에서 도메인을 발급 받았기 때문에 DNS 검증을 하면 된다.
    • 이메일 검증은 2번에 적은 도메인을 소유한 사람에게 이메일이 전송되어 검증이 진행 된다.

    4. Route 53에 CNAME 레코드를 생성하여 인증 완료

    Q. CNAME은 무엇일까? DNS 레코드 종류중 하나로써 도메인 주소를 다른 도메인 주소로 매핑시키는 것을 말한다!

    5. 발급 완료된 모습

    ELB 생성, ACM 인증서 연결, 타겟 EC2 연결

    1. 애플리케이션 로드 밸런서 선택

    2.리스너에 https 443 포트 추가

    Q. 리스너란? 로드 밸런서가 받아들이는 프로토콜과 포트를 말한다!

    서브넷은 타겟으로할 인스턴스가 있는 것으로 선택해주었다.

    3. 가용 영역 선택

    4. 인증서 선택

    • 만들었던 ACM 인증서를 선택한다.

    5. 보안 그룹 구성

    • 해당 로드밸런서의 보안 그룹을 구성한다.

    6. 타겟 그룹 구성

    • 로드밸런싱 될 타겟 그룹을 구성한다.

    여기서 로드밸런싱 되는 타겟그룹에게 설정한 프로토콜과 포트로 요청이 그대로 전송되는 것이다. 따라서

    1. 도커에도 포트를 443으로 해줘야하나??
    2. 그럼 NGINX에도 https관련 세팅을 해줘야 하는 것 아닌가!

    같은 문제들은 자연스럽게 해결된다!

    왜냐하면 EC2 관점에서는 기존 http로 요청이 그대로 들어오는 것이기 때문에!

    상태 검사는 말 그대로 상태 검사할 엔드포인트를 적어주면 된다.

    7. 대상 등록

    • 타겟 그룹에 포함시킬 인스턴스를 등록한다.

    Route53의 도메인과 로드밸런서의 도메인 연결

    • 가지고 있는 도메인으로 들어오는 https 요청들이 로드밸런서에 전달된다

    순서 정리

    1. 도메인을 준비한다.
    2. ACM 서비스를 통해 준비한 도메인에 대한 인증서를 발급 받는다.
    3. 로드 밸런서를 생성한다.
      • HTTPS 리스너 생성에 필요한 인증서를 선택한다.(2번에서 만든 인증서)
    4. 보안 그룹 및 타켓그룹을 구성한다.
    5. Route53의 도메인과 로드밸런서의 도메인 연결

    해결된 구조

    Q. ELB 도메인의 dualstack이 의미하는 것은?

    Route 53에서 레코드를 ELB 로드밸런서라는 별칭 레코드 값으로 생성시 dns앞애 dualstack이 온다.

    그 이유는 IP 주소를 요청할 때 클라이언트는 IPv4 주소(A 레코드), IPv6 주소(AAAA 레코드), 또는 IPv4 및 IPv6 주소(별도 요청의 경우) 둘 다를 요청할 수 있는데 이 듀얼 스택을 사용하면 Route 53 이 클라이언트가 요청한 IP 주소 형식에 따라 로드 밸런서에 적절한 IP 주소로 응답할 수 있다.

     

    레코드란? DNS에 받은 요청을 어떻게 처리할 것인지에 대한 정보

    '클라우드' 카테고리의 다른 글

    VPC(Virtual Private Cloud)의 정의와 구조  (0) 2021.07.20

    댓글

Designed by Tistory.