CloudWatch API에서 PutMetricData를 호출할 때 스로틀링을 방지하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 11월 6일

Amazon CloudWatch에서 PutMetricData API 호출과 관련해 "400 ThrottlingException" 오류가 발생합니다. 해결하려면 어떻게 해야 합니까?

간략한 설명

CloudWatch에서 PutMetricData API 호출과 관련해 "400 ThrottlingException" 오류가 발생할 때 다음과 같은 세부 응답을 함께 받습니다.

<ErrorResponse xmlns="http://monitoring.amazonaws.com/doc/2010-08-01/">
  <Error>
    <Type>Sender</Type>
    <Code>Throttling</Code>
    <Message>Rate exceeded</Message>
  </Error>
  <RequestId>2f85f68d-980b-11e7-a296-21716fd2d2e3</RequestId>
</ErrorResponse>

서비스 성능을 높이기 위해, CloudWatch 요청은 리전별로 각 Amazon Web Services(AWS) 계정에 대해 스로틀링됩니다. 현재 PutMetricData API 요청 할당량은 CloudWatch 서비스 할당량을 참조하십시오.

참고: AWS 리전에서 모든 PutMetricData API 호출은 허용되는 최대 요청률을 기준으로 한 제한에 반영됩니다. 여기에는 CloudWatch Agent, AWS 명령줄 인터페이스(AWS CLI) 또는 AWS Management Console에서 발생하는 호출을 비롯하여, 모든 사용자 지정 애플리케이션과 타사 애플리케이션으로부터의 호출이 포함됩니다.

해결 방법

모범 사례로서, 다음과 같은 방법으로 호출률을 낮추고 API 스로틀링을 방지하십시오.

  • 단시간에 여러 번 API를 호출하지 않고, 일정 시간에 걸쳐 API 호출을 균등하게 분산합니다. 1분 간격으로 데이터를 사용해야 할 경우, 해당 지표를 1분에 걸쳐 내보낼 수 있습니다. 지터(임의 지연)를 사용하여 데이터 포인트를 서로 다른 시간에 전송합니다.
  • 최대한 많은 지표를 단일 API 호출에 결합합니다. 예를 들어 단일 PutMetricData 호출에 20개의 지표와 150개의 데이터 포인트를 포함할 수 있습니다. 또한 StatisticSet과 같은 사전 집계된 데이터 세트를 사용하여 집계된 데이터 포인트를 게시함으로써, 초당 PutMetricData 호출 횟수를 줄일 수 있습니다.
  • 지수 백오프와 지터를 사용하여 호출을 다시 시도하십시오.

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


결제 또는 기술 지원이 필요합니까?