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

2분 분량
0

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는 AWS 리전을 기반으로 각 AWS 계정에 대한 요청을 조절합니다. 현재 PutMetricData API 요청 할당량은 CloudWatch 서비스 할당량을 참조하세요.

참고: 리전에서 모든 PutMetricData API 호출은 허용되는 최대 요청률을 기준으로 한 제한에 반영됩니다. 이 번호에는 사용자 지정 또는 타사 애플리케이션에서 걸려온 전화가 포함됩니다. 이러한 애플리케이션의 예로는 CloudWatch 에이전트, AWS Command Line Interface(AWS CLI) 및 AWS Management Console이 있습니다.

해결 방법

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

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

관련 정보

CloudWatch API Reference

AWS 공식
AWS 공식업데이트됨 일 년 전