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 레코드를 삭제해야 합니다.
해결 방법
이전에 사용자 지정 도메인 이름이 존재했는지 확인
- 이전에 사용자 지정 도메인 이름이 존재했는지 확인하려면 도메인 이름에 대해 DNS 조회 명령을 실행합니다.
Linux, Unix 또는 macOS 시스템의 경우:
dig abc.example.com +all
Windows의 경우:
nslookup abc.example.com
참고: abc.example.com을 도메인 이름으로 바꿉니다.
- 이전에 사용자 지정 도메인 이름이 존재했고 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 배포를 업데이트
구성에 따라 다음 중 하나 또는 둘 다를 수행합니다.
타사 DNS 서비스 공급자가 있는 경우 공급자의 프로세스에 따라 CloudFront 배포를 가리키는 CNAME 레코드를 삭제합니다.
Amazon Route 53을 사용하는 경우 Route 53에서 CloudFront를 가리키는 레코드를 삭제합니다.
구성을 변경한 후 DNS 변경 사항이 전파될 때까지 몇 분 정도 기다립니다. 그런 다음 사용자 지정 도메인 이름 생성을 다시 시도해 봅니다.
참고: "CNAMEAlreadyExists" 오류가 발생하면 Amazon CloudFront 배포에 대한 CNAME 별칭을 설정할 때 발생하는 CNAMEAlreadyExists 오류를 해결하려면 어떻게 해야 합니까?를 참조하세요.
관련 정보
API Gateway API에 사용자 지정 도메인 이름을 설정하려면 어떻게 해야 합니까?
Amazon API Gateway 및 AWS Lambda를 통한 다중 리전 서버리스 애플리케이션 구축