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

최종 업데이트 날짜: 2021년 5월 11일

Amazon API Gateway에 대해 엣지에 최적화된 사용자 지정 도메인 이름을 생성하려고 할 때 ‘CNamealReadyExists’ 및 ‘요청이 너무 많음’ 오류가 발생합니다.

간략한 설명

사용자 지정 도메인 이름에 대한 CNAME 레코드가 이미 존재하고 Amazon CloudFront 배포를 가리키는 경우 API Gateway에서 오류가 발생합니다. 이전에 삭제한 엣지에 최적화된 사용자 지정 도메인 이름을 다시 생성하려고 하면 이 문제가 발생할 수 있습니다.

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

중요: 둘 이상의 CloudFront 배포에 동일한 CNAME 레코드를 사용할 수 없습니다.

이러한 오류를 해결하고 엣지에 최적화된 사용자 지정 도메인 이름을 생성하려면 먼저 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.

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

출력에 CNAME 레코드 대신, A 레코드(IPv4 주소)가 표시되면 레코드를 업데이트해야 합니다. 업데이트된 레코드는 CloudFront 배포에 대한 사용자 지정 도메인 이름(A 별칭)을 가리켜야 합니다.

CNAME 레코드 또는 A 레코드를 사용합니다. CNAME 레코드가 다른 도메인 이름으로 확인됩니다. A 레코드는 IP 주소로 확인됩니다. 사용 사례, 요구 사항 및 제약 조건에 가장 적합한 옵션을 선택합니다. 자세한 내용은 별칭 및 CNAME 레코드 비교를 참조하세요. 두 옵션 모두에 대한 사용자 지정 도메인 이름 확인은 동일합니다. 관련 지침은 API Gateway API에 대해 엣지에 최적화된 사용자 지정 도메인 이름 설정의 9단계와 10단계를 참조하세요.

기존 CNAME 레코드 삭제

도메인의 DNS 서비스 공급자에 따라 다음 옵션 중 하나를 선택합니다.

서드 파티 DNS 서비스 공급자가 있는 경우 다음을 수행합니다.

1.    공급자의 프로세스에 따라 CloudFront 배포를 가리키는 CNAME 레코드 세트를 삭제합니다.

2.    CloudFront를 사용하는 경우 배포를 업데이트하고 대체 도메인 이름(즉, CNAME)을 제거합니다.

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

-또는-

Amazon Route 53이 있는 경우 Route 53에서 CloudFront를 가리키는 레코드를 삭제합니다.

참고: API Gateway에서 사용자 지정 도메인 이름을 생성하려고 다시 시도하기 전에 DNS 변경 사항이 전파될 때까지 몇 분 정도 기다립니다.