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

최종 업데이트 날짜: 2019년 8월 12일

Amazon 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 호출 횟수를 줄일 수 있습니다.
  • 지수 백오프와 지터를 사용하여 호출을 다시 시도하십시오.

그래도 한도를 늘려야 할 경우 한도 증가를 요청할 수 있습니다. 호출률 한도를 늘리면 AWS 요금이 크게 높아질 수 있습니다. 호출률 한도 증가를 요청하기 전에 먼저, 앞서 설명한 방법으로 API 스로틀링을 방지해 보십시오. 한도 증가를 요청할 경우 다음 정보를 제공해야 합니다.

  • 애플리케이션과 관련해 모범 사례를 따르기가 어려운 이유
  • 가장 높은 호출률로 PutMetricData 호출을 실행하고 스로틀링을 경험한 대략적인 날짜/시간 범위(현지 표준 시간대 포함)

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?