본문 바로가기
AWS

[AWS/CloudFront] CloudFront로 S3 컨텐츠 제공하기 - ② CloudFront 대체 도메인 구성

by 삼콩 2022. 3. 24.

이전 포스팅에서는 CloudFront를 구성하고 캐시 사용을 테스트 해 보았다. 

2022.03.23 - [AWS] - [AWS/CloudFront] CloudFront로 S3 컨텐츠 제공하기 - ① CloudFront 구성 및 동작 확인

 

이어서 abcdefghi.cloudfront.net 대신 소유하고 있는 도메인 주소(cdn.example.com)로 cloudfront 사용이 가능하도록 CloudFront 대체 도메인을 구성한다.

* 이 과정은 Route53에 도메인 호스팅 영역이 등록되어있다는 가정하에 진행한다. 

 

① CloudFront 구성 및 확인

    1. CloudFront 생성

    2. cache hit 확인

② CloudFront 대체 도메인 구성

    1. ACM 생성

    2. CloudFront에 대체 도메인 설정

    3. Route53 레코드 추가

 

 

1. ACM 생성

CloudFront 대체 도메인을 설정하기위해서는 인증서가 필요하다. 이때 ACM 인증서는 반드시 버지니아 북부(us-east-1)에 존재해야한다. (서울리전에 인증서가 등록되어있더라도 Cloudfront에서는 이를 확인하지 못함)

리소스를 생성할 리전이 버지니아 북부인지 확인 후 ACM 인증서를 생성한다.

 

  • 도메인 이름: 자신이 소유하고있는 도메인이 반드시 포함되어야함 (example.com != example.net)
    (예. example.com 도메인을 소유하고있고, 서브 도메인 cdn.example.com 에 대한 인증서 생성)

 

생성된 인증서의 CNAME 이름과 값을 Route53 (혹은 별도의 도메인 호스팅 관리 페이지)에 추가한다.

Route53에 추가된 인증서 CNAME 레코드 예

 

2. CloudFront에 대체 도메인 구성

배포된 CloudFront의 대체 도메인을 구성을 수정하기 위해서는 다음 경로로 들어간다.

(대체 도메인을 구성해두지않으면 Route53에서 CloudFront 배포 조회 불가능)

 

AWS 콘솔 > 생성된 CloudFront 배포 > 일반 > 설정 > 편집 클릭

편집에서 아래 두가지를 수정한다.

  • 대체 도메인 이름: URL로 사용할 대체 도메인 이름 입력 (예. cdn.example.com)
  • 사용자 정의 SSL 인증서: 앞서 생성한 ACM 인증서 연결. 버지니아 북부에 존재하는 인증서만 선택가능

CloudFront 대체 도메인 설정이 완료되면 아래와 같이 대체 도메인 값이 추가된 것을 알 수 있다.

 

3. Route53 레코드 추가

대체 도메인 요청을 CloudFront로 연결시키기 위한 A 레코드를 생성한다. 

  • 하위 도메인 이름: 내 도메인 example.com, 대체 도메인: cdn.example.com 이라면 cdn 입력
  • 레코드 유형: A 레코드 선택
  • 값/트래픽 라우팅 대상: CloudFront 배포에 대한 별칭 > CloudFront 배포 선택
    CloudFront에 등록된 대체 도메인 이름과 등록하려는 레코드가 일치해야 조회됨
     - 대체 도메인 cdn.example.con, 등록 레코드 cdn.example.com => 배포 조회 가능
     - 대체 도메인 cdn.example.com, 등록 레코드 cf.example.com => 배포 조회 안됨

위 과정에 따라 생성된 레코드는 아래와같다.

 

이제 브라우저로 https://[대체 도메인]/[S3 버킷 파일 경로] 요청시 CloudFront와 함께 잘 동작함을 확인할 수 있다.

 

 

[참고]

https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html

댓글