Route 53 API 제한 오류를 방지하려면 어떻게 해야 하나요?

2분 분량
0

Amazon Route 53에서 API 제한 오류가 발생합니다.

간단한 설명

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

코드 요소의 값이 제한이고 메시지 요소의 값이 속도 초과인 응답 헤더는 속도 제한을 나타냅니다. 속도 조절은 API 요청 수가 초당 5개의 요청 한도(계정당)보다 클 때 발생합니다.

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

  • 값이 PriorRequestNotComplete코드요소
  • 값이 Route 53이 아직 이전 요청을 처리 중이어서 요청이 거부됨메시지요소.

같은 계정에 있는 AWS ID and Access Management(IAM) 사용자의 API 호출은 해당 계정의 글로벌 속도 제한에 포함됩니다. 이러한 IAM 사용자의 API 호출은 AWS Management Console에서 이루어지는 API 호출에도 영향을 미칩니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하는 경우, 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

속도 제한을 방지하려면 다음 방법 중 하나를 사용하세요.

요청 일괄 처리

API 호출을 줄이려면, AWS CLI 또는 사용자가 선호하는 SDK를 사용하여 같은 유형의 개별 작업을 하나의 변경 일괄 작업으로 그룹화하세요.

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

참고:

  • UPSERT 요청은 두 번 계산됩니다.
  • change-resource-record-sets API호출에는 요소 및 문자에 대한 할당량이 있습니다.

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

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

시작 시간 임의 지정

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

호출 간 “수면 시간” 도입

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

AWS 공식
AWS 공식업데이트됨 10달 전