내용으로 건너뛰기

Timestream for LiveAnalytics에서 ThrottlingException 오류를 해결하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Timestream for LiveAnalytics 테이블에 대량의 데이터를 쓸 때 발생하는 ThrottlingException 오류를 해결하고 싶습니다.

간략한 설명

다음과 같은 요청이 특정 기간 내에 할당량을 초과하면 ‘ThrottlingException’ 오류가 발생합니다.

  • 쿼리
  • AWS Systems Manager의 기능인 Parameter Store의 API 호출
  • 활성 마그네틱 스토어 쓰기

해결 방법

쿼리 요청이 너무 많음

쿼리 요청 속도 할당량을 초과하면 다음과 같은 오류 메시지가 표시됩니다.

"An error occurred (ThrottlingException) when calling the QueryOperation (reached max retries: 4): Request rate limit exceeded".

참고: 요청 속도 할당량은 동적이며 서비스 수준의 전체 리소스 사용량에 따라 달라집니다.

쿼리가 필요 이상으로 많은 데이터를 스캔하여 페이지를 매긴 호출이 여러 번 발생하는 경우, 측정값 이름 또는 고객 정의 파티셔닝 키를 사용하여 불필요한 데이터를 필터링하십시오. 예를 들어 쿼리가 전체 테이블 데이터를 스캔하는 경우 쿼리 엔진이 불필요한 데이터 스캔을 제거하도록 시간 조건자를 추가하십시오. Timestream for LiveAnalytics가 내부 파티셔닝을 효율적으로 관리할 수 있도록 자주 액세스하는 키 컬렉션을 테이블의 파티션 키로 구성하는 것이 가장 좋습니다.

기본 데이터 모델을 최적화하려면 데이터 모델링을 참조하십시오. 성능을 개선하고 지연 시간을 줄이려면 쿼리를 참조하십시오.

Parameter Store API 요청이 너무 많음

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

각 AWS 계정 및 AWS 리전의 Parameter Store API 요청 할당량을 초과하면 다음 오류 메시지 중 하나가 표시됩니다.

  • "An error occurred (ThrottlingException) when calling the GetParameters operation (reached max retries: 4): Rate exceeded."
  • "An error occurred (ThrottlingException) when calling the GetParametersByPath operation (reached max retries: 4): Rate exceeded."
  • "An error occurred (ThrottlingException) when calling the DescribeParameters operation (reached max retries: 2): Rate exceeded."

Parameter Store API 호출 빈도를 줄이려면 다음 작업을 수행하십시오.

  • 시차를 두고 API 호출을 예약합니다.
  • 한 번의 호출로 여러 값을 반환할 수 있는 API를 사용합니다. 예를 들어, GetParametersGetParametersByPath는 한 번의 API 호출로 최대 10개의 파라미터를 검색할 수 있습니다.
  • API 호출에서 오류 재시도 및 지수 백오프를 구현합니다. 동시 API 호출을 방지하려면 지터를 재시도 로직에 통합하십시오. 요청 스파이크를 일정한 속도로 균등하게 분산하고 스로틀링 인시던트를 줄이려면 백오프에 무작위 간격을 추가하십시오.

호출 간 1초 일시 중지를 포함하도록 코드를 수정할 수 있습니다. AWS CLI에는 수정할 수 있는 재시도 설정이 포함되어 있습니다. 예를 들어 첫 번째 재시도 전 50밀리초, 두 번째 재시도 전 100밀리초, 세 번째 재시도 전 200밀리초로 설정을 조정할 수 있습니다.

AWS Lambda를 사용하여 Parameter Store에 대한 API 호출을 수행하는 경우 파라미터 캐싱을 구현하십시오.

배치 처리를 구현하려면 대규모 기록 데이터세트를 관리 가능한 소규모 배치로 나눕니다. 쓰기 요청 할당량에 따라 데이터를 청크 단위로 처리합니다.

활성 마그네틱 스토어 쓰기 요청이 너무 많음

250개의 활성 마그네틱 스토어 쓰기 요청 할당량을 초과하면 다음과 같은 오류 메시지가 표시됩니다.

"An error occurred (ThrottlingException) when calling the WriteRecords operation (reached max retries: 5): Your magnetic store writes to Timestream for LiveAnalytics are throttled for this database."

참고: 파티션이 데이터를 수신하면 수집 프로세스 후 최대 6시간 동안 활성 상태로 유지될 수 있습니다.

할당량 250개는 늘릴 수 없습니다.

ActiveMagneticStorePartitions 지표가 250을 초과하는 경우 다음 작업을 수행하십시오.

  • 애플리케이션에서 동시에 작성하는 다양한 데이터 시리즈의 수를 줄입니다.
  • 활성 마그네틱 파티션이 동시에 데이터를 수집하는 시간을 줄입니다. 예를 들어 파티션이 한 번의 작업으로 24시간 분량의 데이터를 수집하는 경우 데이터를 더 작은 시간 단위로 나눕니다.
  • 배치 쓰기를 사용하여 잠재적 스로틀링 동작을 줄입니다.

참고: 데이터 양이 많으면 배치 로드 작업을 만드는 것이 가장 좋습니다.

마그네틱 스로틀링 오류가 계속 발생하고 Dead Letter Queue(DLQ)에 많은 레코드가 수신되는 경우 마그네틱 스로틀링이 발생하는 테이블을 찾으십시오. 처리량이 많은 수집 워크로드에는 메모리 저장소를 사용하십시오. 자세한 내용은 WriteRecords 스로틀 처리를 참조하십시오.