반응형
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로 연결할 수 있습니다.
반응형
'CLOUD > AWS' 카테고리의 다른 글
| [AWS IAM] 사용자에게 S3 전체 버킷 조회 + 객체 Get/Put/Delete 권한 부여하기 (1) | 2025.08.26 |
|---|---|
| CloudFront + S3로 이미지 서빙하기: 한 배포, 여러 도메인, 경로 기반 라우팅 (3) | 2025.08.25 |
| AWS Route 53 도메인에 SSL 인증서 발급 및 여러 리전 관리 방법 (0) | 2025.08.14 |
| AWS VPC에서 OpenVPN 스플릿 터널 구성 & 트러블슈팅 (2) | 2025.08.14 |
| AWS EKS에서 externalTrafficPolicy 설정에 따른 NLB 헬스체크 동작 차이: Ingress Controller vs 일반 서비스 (0) | 2025.08.07 |
댓글