Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
CloudFront 배포에 대한 CNAME 별칭을 설정할 때 CNAMEAlreadyExists 오류를 해결하려면 어떻게 해야 합니까?
Amazon CloudFront 배포에 대한 캐노니컬 네임 레코드(CNAME) 별칭을 설정할 때, "CNAMEAlreadyExists"라는 오류가 발생합니다.
간단한 설명
한 개 이상의 CloudFront 배포에 대해 같은 CNAME 별칭을 사용할 수 없습니다. 추가하려는 CNAME 별칭이 이미 다른 CloudFront 배포와 연결되어 있으면 다음 오류가 발생합니다.
"One or more of the CNAMEs you provided are already associated with a different resource. (Service: AmazonCloudFront; Status Code: 409; Error Code: CNAMEAlreadyExists; Request ID: a123456b-c78d-90e1-23f4-gh5i67890jkl*"
소스 및 대상 배포에 모두 액세스할 수 있는 경우, 기존 CloudFront 배포에서 CNAME 연결을 수동으로 제거합니다. 그런 다음, CNAME을 새 CloudFront 배포와 연결합니다.
참고: CNAME을 수동으로 연결하려면 이전 배포의 상태가 배포됨이 될 때까지 기다렸다가 계속 진행해야 할 수도 있습니다.
배포 ID를 모르는 경우에는 ListConflictingAliases CloudFront API를 사용하십시오. 이를 통해 배포에 대한 일부 정보와 충돌하는 CNAME 별칭에 대한 AWS 계정 ID를 찾을 수 있습니다. 그런 다음, AssociateAlias API를 사용하여 사용자의 CNAME을 기존 배포(소스 배포) 에서 새 배포(대상 배포)로 이동합니다.
사용자의 시나리오에 따라 다음 해결 방법 중 하나를 사용합니다.
- 같은 계정에 있는 소스 및 대상 배포의 경우, AssociateAlias API를 사용하여 사용자의 CNAME 이동 섹션을 참조하십시오.
- 계정 간 소스 및 대상 배포에 대해서는 충돌하는 CNAME이 있는 소스 배포 비활성화 섹션을 참조하십시오.
- 기존 트래픽의 정지 시간으로 인해 소스 배포를 비활성화할 수 없는 경우, 와일드카드를 사용하여 대체 도메인 이름 이동을 참조하십시오.
참고: Apex 도메인(example.com)을 이동하는 데는 와일드카드를 사용할 수 없습니다. 소스 배포와 대상 배포가 서로 다른 계정에 있는 경우 Apex 도메인을 이동하려면 대체 도메인 이름을 이동하려면 AWS Support에 문의를 참조하십시오.
해결 방법
AssociateAlias API를 사용하여 사용자의 CNAME 이동
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
CNAME을 이동하려면 다음 단계를 완료합니다.
-
API 요청을 보내는 사용자 또는 역할의 AWS Identity and Access Management(IAM) 정책에서 다음 리소스 수준 권한을 추가합니다.
참고:****SourceAcccount을 소스 배포의 계정 번호로 바꿉니다. SourceDistroID를 소스 배포 ID로 바꿉니다. TargetAccountID를 대상 배포의 계정 번호로 바꿉니다. 대상 배포 ID로 바꾸십시오.{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudFrontCnameSwapSameAcc", "Effect": "Allow", "Action": [ "cloudfront:GetDistribution", "cloudfront:ListConflictingAliases", "cloudfront:AssociateAlias", "cloudfront:UpdateDistribution" ], "Resource": [ "arn:aws:cloudfront::SourceAcccount:distribution/SourceDistroID", "arn:aws:cloudfront::TargetAccount:distribution/TargetDistroID" ] } ] }
중요: 요청을 보내는 IAM 사용자 또는 역할은 소스 배포와 대상 배포 모두에서 리소스 수준 권한을 가져야 합니다.
-
충돌하는 CNAME이 있는 배포를 식별하세요. 어느 배포에 충돌하는 CNAME이 있는지 모르는 경우 ListConflictingAliases API를 사용하여 해당 배포를 찾습니다.
참고: YourDistributionID를 배포의 ID로 바꾸고 YourCNAME을 충돌하는 CNAME 별칭으로 바꾸십시오.$ aws cloudfront list-conflicting-aliases --distribution-id YourDistributionID --alias YourCNAME
-
도메인의 소유권을 확인하려면 YourDistributionID에 대한 읽기 액세스가 있어야 합니다. 또한 충돌하는 CNAME을 보호하는 CloudFront 배포와 연결된 SSL/TLS 인증서가 있어야 합니다. 소유권을 확인할 준비가 되면 대상 배포의 정식 이름으로 확인한 CNAME용 DNS TXT 기록을 생성하십시오. 사용자의 TXT 기록에는 CNAME, Apex 또는 와일드카드 앞에 밑줄 표시가 포함되어야 합니다.
_.example.com. 900 IN TXT "dexample123456.cloudfront.net"_cname.example.com. 900 IN TXT "dexample123456.cloudfront.net" _*.example.com. 900 IN TXT "dexample123456.cloudfront.net"
-
대상 배포에 유효한 SSL/TLS 인증서가 있는지 확인합니다.
참고: 주체 이름 또는 주체 대체 이름은 CNAME 별칭과 일치하거나 겹쳐야 합니다. AWS Certificate Manager 또는 Mozilla의 CA 인증서 목록에 나열된 신뢰할 수 있는 CA에서 발급한 유효한 인증서를 사용하는 것이 모범 사례입니다. 자세한 내용은 Mozilla의 CA 인증 프로그램(Mozilla 웹 사이트)을 참조하십시오. -
대상 배포를 소유한 계정에서 AssociateAlias API 요청을 실행합니다.
$ aws cloudfront associate-alias --target-distribution-id YourTargeDistributiontID --alias your_cname.example.com
충돌하는 CNAME이 있는 소스 배포를 비활성화합니다
소스 배포와 대상 배포가 서로 다른 계정에 있는 경우 충돌하는 도메인과 연결된 소스 배포를 해제합니다. 그런 다음, AssociateAlias API를 사용하여 CNAME을 이동합니다.
associate-alias 명령을 사용하여 여러 계정 간에 Apex 도메인을 이동할 수 있습니다
- CloudFront 콘솔을 엽니다.
- 탐색 창에서 배포를 선택합니다
- 소스 배포를 선택한 다음, 비활성화를 선택합니다.
**참고:**어느 배포에 충돌하는 CNAME이 있는지 모르는 경우 ListConflictingAliases API를 사용하여 해당 배포를 찾습니다. YourDistributionID를 사용자의 배포 ID로 바꾸고 YourCNAME를 충돌하는 CNAME의 이름으로 바꾸십시오.$ aws cloudfront list-conflicting-aliases --distribution-id YourDistributionID --alias YourCNAME
참고: ListConflictingAliases API에는 GetDistribution과 ListConflictingAliases 권한이 필요합니다.
소스 배포를 비활성화한 후에는 AssociateAlias API를 사용하여 사용자의 CNAME 이동 섹션에 있는 단계를 따르십시오.
소스 배포를 통해 계정에 액세스할 수 없거나 소스 배포를 비활성화할 수 없는 경우, AWS Support에 문의하십시오.
와일드카드를 사용하여 대체 도메인 이름 이동
소스 배포와 대상 배포가 서로 다른 계정에 있지만 소스 배포를 비활성화할 수 없는 경우 와일드카드를 사용하여 CNAME을 이동합니다. CNAME을 이동하려면 소스 배포와 대상 배포에 모두 액세스할 수 있어야 합니다.
이 프로세스에는 소스와 대상 배포 모두에 대한 여러 업데이트가 포함되어 있습니다. 다음 단계로 진행하기 전에 각 배포에서 최신 변경 사항이 완전히 배포될 때까지 기다립니다.
대체 도메인 네임을 이동하려면 다음 단계를 완료합니다.
-
대상 배포를 업데이트하여 사용자가 이동하려는 대체 도메인 이름을 포함하는 와일드카드 CNAME을 추가합니다. 사용자의 도메인이 www.example.com인 경우, 와일드카드 대체 도메인 이름 \ *.example.com을 대상 배포에 추가합니다.
**참고:**대상 배포에는 와일드카드 도메인 이름을 보호하는 SSL/TLS 인증서가 있어야 합니다 -
대상 배포의 정식 이름을 가리키도록 CNAME의 DNS 설정을 업데이트하십시오. 예를 들어, 사용자의 도메인이 www.example.com인 경우 www.example.com의 DNS 기록을 업데이트하여 대상 배포의 정식 이름으로 트래픽을 라우팅합니다.
www.example.com. 86400 IN CNAME "dexample123456.cloudfront.net"
참고: 대체 도메인 이름이 여전히 소스 배포에 연결되어 있기 때문에 소스 배포는 여전히 대체 도메인 이름을 사용하는 요청을 받습니다. 대상 배포는 3단계에서 소스 배포에서 대체 도메인 이름을 제거할 때까지 요청(컷오버)을 받지 않습니다.
-
소스 배포를 업데이트하여 대체 도메인 이름을 제거하십시오.
참고: 이 단계에서는 라이브 트래픽이 중단되지 않습니다. 요청된 도메인 이름이 대상 배포에 추가된 와일드카드 도메인과 일치하므로 실시간 트래픽은 대상 배포 설정을 사용합니다. -
사용자가 이동하려는 대체 도메인 이름을 추가하려면, 대상 배포를 업데이트하십시오.
-
CNAME의 DNS 기록을 입증하려면, dig 또는 유사한 DNS 쿼리 도구를 사용하십시오.
dig CNAME www.example.com +shortnslookup example.com
-
(선택 사항) 와일드카드 대체 도메인 이름을 제거하려면, 대상 배포를 업데이트하십시오.

관련 콘텐츠
- 질문됨 6달 전lg...
- 질문됨 4달 전lg...
- AWS 공식업데이트됨 7달 전
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 3년 전