AWS에서 신규 도메인 포워딩 + CloudFront 연동(1)

CloudFront 생성 및 SSH/TLS용 인증서 연동

업무가 감지되었습니다.


아침에 출근하니 작업표시줄의 슬랙 아이콘에 빨간 뱃지가 나를 맞이해주었다. 길게 심호흡을 하고 슬랙을 실행시켜 메세지를 확인한다.

ㄷㄷㄷ

긴 글의 내용을 요약하면 다음과 같다.

  1. 회사 마케팅 정책의 일환으로 회사의 아이덴티티를 강조하기 위해 회사 웹사이트의 도메인을 “회사명.AI” 도메인으로 통일 시키기로 함(기존에는 .net , .io등 여러 TLD(최상위 도메인)을 사용하고 있었다.)

  2. 따라서 기존에 회사 홈페이지로 연결되는 모든 도메인을 “회사명.AI”로 리다이렉션 시켜야 함 (예: “회사명.com”으로 접속할 시 자동으로 “회사명.AI”로 접속)

  3. 얼마나 걸릴까요?

다행히 큰 일은 아니었기 때문에 퇴근시간은 지킬 수 있어보인다.

우선 현재 아키텍쳐를 살펴보자

현재 상황

  • 웹서버는 ALB(Application Load Balancer)뒤에 EC2가 병렬로 붙어있다.
  • 현재 Route53에서 직접 ALB로 포워딩 되어 있다.
  • CDN등의 서비스는 붙어있지 않다.

해야할 일

  • 우선 “회사명.AI” 도메인을 구입하고 도메인 관리 : AWS에 Registar에서 .AI 도메인이 등록 가능한지 확인후 Route53에서 호스팅 영역을 만든다.
  • CloudFront 붙이기 : 호스팅중인 웹서버 인프라를 AWS의 CDN 서비스인 CloudFront를 연동시킨다.
  • 웹사이트를 “회사명.AI”의 주소로 리다이렉션 : CloudFront로 “회사명.AI”로 도메인을 연결해주고, 이 과정에서 HTTPS 연결이 가능하도록 설정한다.
  • 기존 도메인의 리다이렉션 : 기존 도메인들(회사명.com, 회사명.net 등등)을 “회사명.AI”로 리다이렉션 시켜야 한다

기존의 아키텍쳐에서 새로운 아키텍쳐로

알아보니 도메인 구매는 완료되어 있었고 그럼 지체할 필요가 없으니 바로 업무 시작!
(이번 포스트에서는 EC2로 웹사이트를 직접 호스팅 하는 부분은 다루지 않겠다.)


Route 53으로 구매한 도메인 이전


새로운 도메인은 가비아(gabia.com)으로 구매하였다고 한다. 실제 도메인을 구입할 수 있는 업체는 다양하지만(카페24, godaddy 등) 아래 설명할 Route53을 사용하기 위한 과정은 거의 똑같다.

추후 설명하겠지만 AWS의 다양한 서비스(SSH 인증서 생성, AWS 인프라와 연동 등) 연계하기 위해서는 Route53에서 Hosting Zone을 생성하여 관리하는 것이 훨신 간편하기 때문에 Route53 호스팅 영역을 사용하기로 하였다.

(참고로 Route53은 AWS의 DNS 웹 서비스로 DNS요청을 처리하는 TCP/UDP포트 53번에서 이름을 따 왔다고 한다.

과정은 간단하다. 우선 Route53 호스팅 영역을 만들고 DNS 서버 주소값을 확보해서 가비아에 설정해주기만 하면 된다.

우선 Route53에서 호스팅 영역을 만들어보자

Route 53 호스팅 영역 대시보드. 이미 만들어둔 호스팅 영역들을 확인 할 수 있다.

Route53 서비스로 들어가 좌측의 호스팅 영역 메뉴를 클릭하면 현재 만들어진 호스팅 영역의 확인과 새로운 호스팅 영역을 생성할 수 있다.

호스팅 영역을 생성한 화면.  호스팅 영역 생성시 기본적으로 NS레코드와 SOA 레코드가 자동으로 생성된다.

새로 도메인명을 입력하고 호스팅 영역을 생성하면 자동으로 NS 레코드와 SOA 레코드가 생성된다. 이중 NS레코드, 혹은 Name Server 레코드에 값이 가비아에 등록해줄 DNS 서버의 주소이다.

가비아로 접속하여 내 도메인 관리툴을 열어본다.

도메인 등록 업체마다 UI는 다르겠지만 어느 업체나 네임서버 설정은 가능하다. 가비아는 무려 6차까지 네임서버 설정을 지원한다.

UI는 도메인 관리 업체마다 다르겠지만 어느 업체나 네임서버를 관리하는 기능은 제공한다. 네임서버를 설정하는 UI에서 위에서 언급한 호스팅 영역 생성시 확보한 NS레코드의 값을 차례대로 입력해준다.

설정후 실제로 Route53에서 도메인을 호스팅 할 수 있으려면 조금 기달려야 한다. NS정보가 전 세계의 모든 DNS서버에 전달되고 기존의 캐싱이 삭제되어야 비로소 완벽한 적용이라고 할 수 있기에 이론적으로는 며칠이 걸릴 수 있지만, 실제로는 한 두 시간이면 Route53을 사용할 수 있었다.

다음 포스트에서는 CloudFront를 생성하고 적용 하는 방법을 포스팅하도록 하겠다.

WRITTEN BY
Dev Lead | Certified Professional AWS Solutions Architect/Devops Engineer

댓글