본문 바로가기
CLOUD/AWS

AWS CloudFront 대체 도메인(Alternate Domain Names)와 Route 53 A 레코드 정리

by Rainbound-IT 2025. 8. 20.
반응형

CloudFront를 이용해 커스텀 도메인(example.com, app.example.com)을 연결할 때, 흔히 대체 도메인(Alternate Domain Name, CNAMEs)Route 53의 A 레코드(Alias) 를 함께 사용합니다. 하지만 *.example.com 와일드카드와 루트 도메인(example.com) 처리가 달라 혼란이 생길 수 있습니다. 이번 글에서는 그 차이를 명확히 정리합니다.

 



구분 *.example.com (와일드카드) example.com (루트 도메인)
CloudFront Alternate Domain (CNAMEs) - 모든 서브도메인(app.example.com, api.example.com, …) 적용
- 루트 도메인 포함 ❌
- 반드시 별도로 추가해야 함
- *.example.com에 포함되지 않음
ACM 인증서 (us-east-1) - *.example.com SAN에 추가 필요
- 루트는 커버하지 않음
- example.com SAN에 별도 추가 필요
- *.example.com만으로는 인증 불가
Route 53 A 레코드 (Alias) - *.example.com 등록 시 모든 서브도메인 CloudFront로 연결
- 루트는 포함 안 됨
- example.com에 A Alias 레코드 생성 필요
- 별도 등록해야 루트 도메인 접근 가능
접속 예시 ✅ app.example.com
✅ api.example.com
✅ cdn.example.com
✅ example.com
❌ (빠뜨리면 접속 불가)

 


1. CloudFront 대체 도메인(Alternate Domain Names)

  • CloudFront 배포 생성 시 기본 도메인은 dxxxxx.cloudfront.net 형태입니다.
  • 커스텀 도메인을 쓰려면 Alternate Domain Names(CNAMEs) 항목에 추가해야 합니다.

✅ 와일드카드(*.example.com)

  • app.example.com, api.example.com, cdn.example.com 등 모든 서브도메인을 한 번에 커버합니다.
  • 하지만 루트 도메인(example.com)은 포함되지 않습니다.

✅ 루트 도메인(example.com)

  • 반드시 별도로 추가해야 합니다.
  • *.example.com만 등록하면 루트 도메인 접근 시 CloudFront로 연결되지 않습니다.

📌 주의: ACM 인증서 조건

  • CloudFront는 us-east-1(버지니아 북부) 리전의 ACM 인증서를 사용해야 합니다.
  • 인증서에 *.example.com과 example.com 둘 다 포함되어 있어야 합니다.
    • 와일드카드는 루트를 포함하지 않기 때문에, SAN에 루트를 따로 넣어야 합니다.

2. Route 53 A 레코드 (Alias)

Route 53에서 도메인 요청을 CloudFront로 연결할 때는 A 레코드(또는 AAAA 레코드) Alias를 사용합니다.

✅ 와일드카드(*.example.com)

  • *.example.com으로 등록하면 app.example.com, api.example.com 같은 서브도메인 요청만 CloudFront로 연결됩니다.
  • 루트 도메인(example.com)은 여기에 포함되지 않습니다.

✅ 루트 도메인(example.com)

  • 반드시 별도의 A Alias 레코드를 생성해야 합니다.
  • Target은 CloudFront 배포의 도메인(dxxxxx.cloudfront.net)입니다.

3. 전체 연결 흐름 예시

CloudFront 설정

  • Alternate Domain Names:
    • example.com
    • *.example.com
  • Viewer Certificate:
    • ACM(us-east-1) 인증서 (SAN: example.com, *.example.com)

Route 53 설정

  • A Alias: example.com → CloudFront 배포
  • A Alias: *.example.com → CloudFront 배포

4. 자주 발생하는 오류와 해결

  • “The certificate that is attached… doesn’t cover the alternate domain name”
    → 인증서에 example.com이 포함되지 않은 경우. 새 인증서를 발급해 두 이름 모두 넣어야 함.
  • 루트 도메인 접속 불가
    → *.example.com은 루트를 포함하지 않음. Route 53과 CloudFront에 example.com을 추가해야 함.
  • ACM 인증서 리전 불일치
    → CloudFront는 반드시 us-east-1 리전의 인증서를 사용해야 함.

5. 정리

  • *.example.com은 서브도메인 전용
  • example.com은 별도 등록 필수
  • ACM 인증서에는 반드시 두 이름 다 포함 (example.com, *.example.com)
  • Route 53에서도 각각 A Alias 레코드 생성 필요

👉 따라서 실무에서 가장 흔한 패턴은:

  • CloudFront 대체 도메인: example.com, *.example.com
  • ACM(us-east-1) 인증서: SAN에 example.com, *.example.com 포함
  • Route 53: example.com A Alias + *.example.com A Alias

이 구성을 맞추면 루트 도메인과 모든 서브도메인을 문제없이 CloudFront로 연결할 수 있습니다.

반응형

댓글