Route 53 API 조절 오류를 방지하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 4월 23일

Amazon Route 53에서 API 조절 오류를 방지하려면 어떻게 해야 합니까?

간략한 설명

Route 53에 대한 대량 API 호출을 수행할 때 HTTP 400 (Bad Request) 오류가 나타날 수 있습니다.

Code 요소의 값이 Throttling이고 Message 요소의 값이 Rate exceeded인 응답 헤더는 속도 조절을 나타냅니다. 속도 조절은 API 요청 수가 초당 5개의 요청 한도(계정당)보다 클 때 발생합니다.

Route 53가 동일한 호스팅 영역에 대한 다음 요청 전에 요청을 처리할 수 없는 경우 다른 HTTP 400 오류와 함께 후속 요청이 거부됩니다. 응답 헤더에는 다음 두 가지가 모두 포함됩니다.

  • 값이 PriorRequestNotComplete인 Code 요소
  • 값이 the request was rejected because Route 53 was still processing a prior request인 Message 요소

동일한 계정의 AWS Identity and Access Management(IAM) 사용자가 수행하는 API 호출은 해당 계정의 글로벌 속도 조절 수에 포함됩니다. 이러한 IAM 사용자의 API 호출은 AWS 관리 콘솔에서 수행된 API 호출에도 영향을 미칩니다.

해결 방법

참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

속도 조절을 방지하려면 다음 방법을 사용합니다.

요청 배치 처리

AWS CLI 또는 선호하는 SDK를 통해 동일한 유형의 개별 작업을 하나의 변경 배치 작업으로 그룹화하여 API 호출 수를 줄입니다.

예를 들어 하나의 배치 작업으로 여러 레코드에 대한 CREATE, DELETE 또는 UPSERT(업데이트 및 삽입)를 요청합니다. AWS CLI에서 change-resource-record-sets 명령을 사용하여 대량 리소스 레코드 작업을 수행합니다.

다음 사항에 유의하세요.

  • UPSERT 요청(업데이트 및 삽입)은 2회로 계산됩니다.
  • change-resource-record-sets API 호출의 요소 및 문자 수에는 할당량이 있습니다.

오류 재시도 및 지수 백오프 사용

조절을 방지하려면 Route 53 API 호출에 오류 재시도 및 지수 백오프를 추가합니다. 예를 들어 2^i초 내에 호출을 재시도하는 단순한 지수 백오프 알고리즘을 사용합니다. 여기서 i는 재시도 횟수입니다.

시작 시간 임의 지정

Route 53 API를 호출할 시작 시간을 임의 지정합니다. 여러 애플리케이션에서 동시에 로직을 처리하지 않아야 합니다. 동시 요청으로 인해 조절이 발생할 수 있습니다.

호출 간 “수면 시간” 도입

Route 53 API에 대한 코드 함수 호출이 연속적인 경우 두 호출 사이에 “수면 시간”을 추가하여 조절 위험을 최소화합니다.


할당량(Route 53)

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?