API Gateway API에 대해 엣지에 최적화된 사용자 지정 도메인 이름을 생성할 때 발생하는 "CNAMEAlreadyExists" 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 9월 9일

Amazon API Gateway API에 대해 엣지에 최적화된 사용자 지정 도메인 이름을 생성하려고 할 때 "CNAMEAlreadyExists" 오류가 발생합니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

다음과 같은 경우 "CNAMEAlreadyExists" 오류가 발생합니다.

  • 사용자 지정 도메인 이름의 CNAME 레코드 유형이 이미 존재하며 Amazon CloudFront 배포를 가리킵니다.
  • 사용자 지정 도메인 이름과 일치하는 대체 도메인 이름 또는 CNAME으로 구성된 CloudFront 배포가 있습니다.

참고: 짧은 시간 안에 여러 개의 사용자 지정 도메인 이름 업데이트를 수행할 때 "요청이 너무 많음" 오류가 종종 발생합니다. 이러한 오류는 CreateDomainName API의 할당량(계정당 30초마다 요청 한 개)이 적기 때문에 발생합니다. 자세한 내용은 API 생성, 배포 및 관리를 위한 API Gateway 할당량을 참조하세요.

중요: 둘 이상의 CloudFront 배포에 동일한 CNAME 레코드를 사용할 수 없습니다. 동일한 CNAME 레코드를 사용하면 다음 오류가 반환됩니다.

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 레코드를 삭제해야 합니다.

해결 방법

이전에 사용자 지정 도메인 이름이 존재했는지 확인

1. 이전에 사용자 지정 도메인 이름이 존재했는지 확인하려면 도메인 이름에 대해 DNS 조회 명령을 실행합니다.

Linux, Unix 또는 macOS 시스템의 경우:

dig abc.example.com +all

Windows의 경우:

nslookup abc.example.com

참고: abc.example.com을 도메인 이름으로 바꿉니다.

2. 이전에 사용자 지정 도메인 이름이 존재했고 DNS 레코드가 여전히 있는 경우 dig를 사용하여 출력에서 CNAME 레코드를 가져옵니다.

abc.example.comcom. 0        IN    CNAME    d27am47dhauq2.cloudfront.net.

중요:

사용자 지정 도메인 이름을 생성하려면 먼저 이 레코드를 삭제해야 합니다.

  • 먼저 개발 또는 테스트 환경에서 DNS 설정을 수정하는 것이 좋습니다. 프로덕션 DNS 설정을 수동으로 수정하면 다운타임이 발생할 수 있습니다.
  • 출력에 CNAME 레코드 대신, A 레코드(IPv4 주소)가 표시되면 레코드를 업데이트해야 합니다. 업데이트된 레코드는 CloudFront 배포에 대한 사용자 지정 도메인 이름(A 별칭)을 가리켜야 합니다.

도메인 이름에 대해 dig 또는 nslookup이 수행되고 레코드가 A 별칭인 경우 CloudFront 배포를 확인합니다. CloudFront 배포가 대체 도메인 이름으로 구성되어 있지 않은지 확인합니다. 자세한 내용은 별칭 및 CNAME 레코드 비교를 참조하세요.

CNAME 레코드를 삭제하거나 CloudFront 배포를 업데이트

구성에 따라 다음 중 하나 또는 둘 다를 수행합니다.

  • CloudFront 배포를 가리키는 CNAME 레코드를 제거합니다.
  • CloudFront 배포를 업데이트하고 대체 도메인 이름 또는 CNAME 레코드를 제거합니다.

타사 DNS 서비스 공급자가 있는 경우 공급자의 프로세스에 따라 CloudFront 배포를 가리키는 CNAME 레코드를 삭제합니다.

Amazon Route 53을 사용하는 경우 Route 53에서 CloudFront를 가리키는 레코드를 삭제합니다.

구성을 변경한 후 DNS 변경 사항이 전파될 때까지 몇 분 정도 기다립니다. 그런 다음 사용자 지정 도메인 이름 생성을 다시 시도해 봅니다.

참고: "CNAMEAlreadyExists" 오류가 발생하면 Amazon CloudFront 배포에 대한 CNAME 별칭을 설정할 때 발생하는 CNAMEAlreadyExists 오류를 해결하려면 어떻게 해야 합니까?를 참조하세요.