WebSocket API 보호 - Amazon API Gateway

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

WebSocket API 보호

API에 대한 제한을 구성하여 너무 많은 요청으로 인해 과부하되지 않도록 보호할 수 있습니다. 제한은 모두 최선의 방식으로 적용되며 보장된 요청 한도가 아닌 대상으로 간주해야 합니다.

API Gateway는 요청에 대해 토큰이 계산되는 토큰 버킷 알고리즘을 사용하여 API에 대한 요청을 제한합니다. 특히 API Gateway는 리전별로 계정의 모든 API에 대한 요청 제출 속도와 버스트를 검사합니다. 토큰 버킷 알고리즘에서 버스트는 이러한 제한의 사전 정의된 초과 실행을 허용할 수 있지만, 다른 요인으로도 제한을 초과할 수 있습니다.

요청 제출이 정상 상태의 요청 속도 및 버스트 제한을 초과할 경우 API Gateway에서 요청을 제한하기 시작합니다. 이 시점에서 클라이언트는 429 Too Many Requests 오류 응답을 받을 수 있습니다. 이러한 예외를 포착하면 클라이언트는 속도 제한 방식으로 실패한 요청을 다시 제출할 수 있습니다.

API 개발자는 개별 API 단계 또는 경로에 대한 목표 제한을 설정하여 계정의 모든 API에서 전반적인 성능을 향상시킬 수 있습니다.

리전별 계정 수준 조절

기본적으로 API Gateway는 리전별로 AWS 계정 내의 모든 API에서 안정적인 상태의 초당 요청(RPS)을 제한합니다. 또한 리전별로 AWS 계정 내 모든 API에 대해 버스트(즉, 최대 버킷 크기)를 제한합니다. API Gateway에서 버스트 제한은 API Gateway가 429 Too Many Requests 오류 응답을 반환하기 전에 수행할 동시 요청 제출의 최대 목표 수를 나타냅니다. 조절 할당량에 대한 자세한 내용은 Amazon API Gateway 할당량 및 중요 정보 단원을 참조하세요.

계정당 한도는 지정된 리전에 있는 계정의 모든 API에 적용됩니다. 계정 수준 속도 제한은 요청 시 늘릴 수 있습니다. 제한 시간이 더 짧고 페이로드가 더 작은 API를 사용하면 더 높은 제한이 가능합니다. 리전별로 계정 수준 조절 한도 증가를 요청하려면 AWS 지원 센터에 문의하시기 바랍니다. 자세한 내용은 Amazon API Gateway 할당량 및 중요 정보 섹션을 참조하세요. 이러한 제한은 AWS 제한 한도보다 높을 수 없습니다.

라우팅 수준 스로틀

라우팅 수준 스로틀을 설정해 API의 특정 단계 또는 개별 라우팅에 대해 계정 수준 요청 스로틀 한도를 재정의할 수 있습니다. 기본 경로 제한 한도는 계정 수준 속도 제한을 초과할 수 없습니다.

AWS CLI를 사용하여 라우팅 수준 스로틀을 구성할 수 있습니다. 다음 명령은 API의 지정된 단계 및 라우팅에 대한 사용자 지정 스로틀을 구성합니다.

aws apigatewayv2 update-stage \ --api-id a1b2c3d4 \ --stage-name dev \ --route-settings '{"messages":{"ThrottlingBurstLimit":100,"ThrottlingRateLimit":2000}}'