AWS Services/ACM(Amazon Certificate Manager)

[AWS] ACM 과 Route53을 이용한 사설 도메인 HTTPS(SSL) 등록 방법 -(1) ACM 서비스 개요 / DNS 동작과정 이해

[앙금빵] 2022. 4. 24.

Architecture Diagram

Architecture Diagram

위 다이어그램은 https://it-eldorado.tistory.com/117?category=824496 를 참고하여 재구성하였다.

 

Goal

(1) ACM 서비스 개요 / DNS 동작과정 이해

(2) ACM으로 발급한 SSL 인증서를 외부 도메인 기관(NS record) 및 Route53(CNAME record) 등록

(3) ALB에 SSL 인증서 적용 및 HTTPS 요청 처리 확인

 

1. ACM 서비스 / DNS 동작과정 이해

AWS에서는 SSL/TLS 인증서에 대한 매니지먼트인 Amazon Certificate Manager 서비스를 무료로 제공한다. 이를 바탕으로 기존 서버 하나하나 일일이 SSL을 적용하였던 번잡한 작업들을 아마존 ACM 서비스를 통해 하나의 인증서로 여러 인스턴스에 적용할 수 있다. AWS 인증서 자동갱신을 대행해줌으로서 SSL 인증 만료기간에 대하여 신경쓰지 않아도 된다. 더불어 인증서 만료 알림기능까지 Personal Health Dashboard 내에서 확인할 수 있다.

AWS PHD(Personal Health DashBoard)에서 인증서 만료기간을 안내한다.

 

(22.05.30 내용 수정) 다운로드 불가능 → CLI를 통한 Public Key 값 호출 가능

ACM 서비스에 대한 비용은 무료이나, ELB/CloudFront/API Gateway 등 AWS 인프라에만 적용이 가능한 것을 인지하자. 콘솔상에서 SSL 인증서 키페어는 다운로드가 불가능하여 오로지 AWS CLI를 통해 Public Key Pair만 다운로드가 가능하다. 이는 곧 ACM을 통해 SSL 인증서를 발급받은 경우, 다른 사설기관에서 해당 인증서를 사용하지 못함을 의미한다.

# CLI Public Key 호출 명령
aws acm get-certificate --certificate-arn arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012

CLI 명령어를 통한 Public Key 값 호출

 

이윤을 추구하는 기업에서 제공하는 무상 서비스에는 반드시 목적이 있다. 다른 도메인에서 발급받으면 유료이지만, 무료로 이용자의 편의성을 제공함으로서, AWS 환경 신규 유입과 더불어 Lock-in 시키려고하는 AWS의 전략일 것이라고 추측한다.


2. DNS 동작과정 및 필수 개념

간략하게 DNS 동작과정과 알아야할 개념들을 짚고 넘어가자.

 

필수 개념

  • 도메인은 웹 브라우저를 통해 특정 사이트에 진입을 할 때, IP 주소를 대신하여 사용하는 주소이다.
  • DNS란 웹사이트의 IP 주소와 도메인 주소를 이어주는 환경/시스템이다. 이를통해 IP와 도메인을 매칭시킨다.
  • DNS 서버네임서버같은 의미이다.
  • 문자열로 표현된 도메인 이름을 실제 컴퓨터가 통신할 때 사용하는 IP 주소로 변환시키기 위해서는 도메인 네임 스페이스의 트리 구조에 대한 정보가 필요한데 이러한 정보를 가지고 있는 서버를 DNS 서버(=네임 서버)라고 한다.
  • DNS 서버(=네임 서버)는 데이터베이스 역할(저장,관리), 찾아주는 역할, 요청 처리 응답을 구현한다.

 

  • ICANN이 직접 관리하는 Root DNS 서버는 전 세계에 13개가 구축되어 있다.
    (패킷의 크기 제한으로 인해 13개의 서버 주소로 제한)
  • DNS분산 시스템으로 구성되어 있으며 최상위 레벨부터 순차적으로 계층(역트리)적인 구조를 가진다.
    (이러한 위임 구조는 호스트의 증가에 대한 효율적인 관리할 수 있게끔 한다.)

 

동작 원리

DNS가 어떻게 동작하는지 전체적으로 어떻게 돌아가는지 아래 그림과 단계별로 설명한 글을 보자.

이 내용은 https://gentlysallim.com/ 블로그를 참조하여 편색하여 작성하였음을 미리 알린다.

 

참조: https://gentlysallim.com/

Step 1. (Client▶ISP) 브라우저에서 anggum.com을 검색하고, 사용하고 있는 ISP사 DNS 서버에게 도메인 주소에 해당하는 IP 주소를 요청 (※ 브라우저 기본 DNS 설정이 통신사 DNS 서버이기 때문)

Step 2. (ISP 내부 프로세스) ISP 서버에서 캐시 데이터 유무 확인 (캐시가 있다면 7단계로 건너 뜀.)

Step 3-1. (ISP▶Root) 캐시가 없는 것을 확인한 ISP 서버는 Root 서버에게 어디로 가야 하는지 요청함.
Step 3-2. (Root▶ISP) Root 서버는 TLD DNS 서버 주소만 관리하기 때문에, ***.com 도메인을 보고는 COM 최상위 도메인을 관리하는 TLD DNS 서버 주소를 안내.

Step 4-1. (ISP▶TLD) ISP 서버는 COM 서버에게 어디로 가야 하는지 다시 요청함.
Step 4-2. (TLD▶ISP) COM 서버는 가비아 DNS 서버에서 해당 도메인이 관리되고 있는 걸 확인하고 안내.

Step 5-1. (ISP▶Authoritative) ISP 서버는 가비아 서버에게 또 다시 요청.
Step 5-2. (Authoritative▶ISP) 가비아 서버는 “Angum.com = 12.123.123.123”이라는 정보 확인 후 해당 IP 안내.
Step 5-3. (ISP 내부 프로세스) 5-2 과정과 동시에 ISP 서버는 해당 정보를 캐시로 기록해 둠.

Step 6. ISP 서버는 브라우저에게 힘들게 알아 낸 12.123.123.123 주소를 안내.

Step 7. 브라우저는 12.123.123.123 IP 주소를 갖고 있는 호스팅 서버에게 웹 사이트 출력 요청.

Step 8. 웹사이트 보임.

 


참조.

https://hanamon.kr/네트워크-기본-도메인과-dns-네임서버란-개념편/

https://hanamon.kr/dns란-도메인-네임-시스템-개념부터-작동-방식까지/

https://gentlysallim.com/dns란-뭐고-네임서버란-뭔지-개념정리/

댓글