Kinesis 데이터 스트림이 조절되는 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 3월 27일

Amazon Kinesis 데이터 스트림이 조절되는 이유는 무엇입니까?

간략한 설명

지표가 Kinesis 데이터 스트림 할당량 내에 있더라도 다음과 같은 이유로 스트림이 조절될 수 있습니다.

  • WriteThroughputExceeded 및 Rate Exceeded 오류가 발생했습니다.
  • 향상된 Kinesis 스트림 모니터링이 비활성화되었습니다.
  • CloudWatch 지표에 숨겨진 마이크로 스파이크가 있습니다.
  • CloudWatch 지표는 성공한 작업에 대해서만 보고하고 실패한 작업은 제외합니다.

​해결 방법

Amazon Kinesis 데이터 스트림은 다음과 같은 이유로 조절될 수 있습니다.

WriteThroughputExceeded 및 Rate Exceeded 오류 발생

스트림은 다음과 같은 원인으로 인해 발생하는 WriteThroughputExceeded 및 Rate Exceeded 조절 오류를 생성할 수 있습니다.

  • Kinesis 데이터 스트림에 기록된 레코드 수가 스트림 할당량을 초과합니다.
  • 레코드 크기(파티션 키 포함)가 1MB를 초과합니다.
  • 총 처리량(바이트)이 Kinesis 스트림 제한을 초과합니다.
  • 생산자가 스트림에 대한 급속한 쓰기 요청을 너무 많이 제출하고 있습니다. 이는 일반적으로 "Slow down" 또는 "Rate exceeded"라는 오류로 표시됩니다.

향상된 Kinesis 스트림 모니터링이 비활성화됨

Kinesis 데이터 스트림의 일부 샤드는 다른 샤드보다 더 많은 레코드를 수신할 수 있습니다. 이로 인해 스트림의 조절 오류가 발생하여 핫 샤드라고도 하는 과부하 샤드가 발생할 수 있습니다. 핫 샤드는 PUT 작업에 사용되는 파티션 키가 Kinesis 스트림의 샤드에 걸쳐 레코드를 균등하게 분산하지 않음을 나타냅니다.

disable-enhanced-monitoring 기능이 켜져 있는 경우 지표에서 핫 샤드를 숨길 수 있습니다. 이는 스트림 수준 지표가 존재하는 모든 샤드에서 집계된 값이기 때문입니다. 스트림에 대한 향상된 모니터링을 비활성화하면 개별적으로 스트림을 검사할 수 없습니다. 샤드별로 스트림을 검사하려면 enable-enhanced-monitoring 명령을 사용합니다.

CloudWatch 지표의 숨겨진 마이크로 스파이크

Kinesis 스트림 할당량은 샤드 및 초 별로 결정됩니다. CloudWatch에서 60초 시간 제한을 초과하는 값이 집계하면 Kinesis 시간 할당량을 위반하는 마이크로 스파이크가 발생할 수 있습니다. 또한 지표가 60초 동안 집계되므로 1분 내 전체 레코드 수가 낮게 보일 수 있습니다. 하지만 분 내 특정 초의 레코드는 실제로 더 높은 숫자를 나타냅니다. 트래픽은 스트림 할당량보다 낮다고 표시될 수 있지만, 해당 초 내에서 조절된 샤드는 스트림의 조절로 나타납니다.

CloudWatch 지표는 성공한 작업에 대해서만 보고하고 실패한 작업은 제외함

Kinesis 지표는 스트림에 대한 성공적인 작업만 기록합니다. 따라서 조절된 작업은 Kinesis 데이터 스트림에 수집되지 않을 수 있습니다. 이로 인해 지표 표시 없이 스트림 제한 및 조절이 위반될 수 있습니다.

Kinesis 데이터 스트림에 들어갈 수 없는 실패한 레코드가 있으면 스트림이 조절됩니다. 생산자에 재시도 메커니즘이 있는 경우, 실패한 레코드가 다시 시도됩니다. 이로 인해 처리 지연이 발생할 수도 있습니다.

Kinesis 데이터 스트림으로 전송되는 레코드가 너무 많은지 확인하려면 전송된 총 레코드 수를 계산합니다. 이렇게 하려면 총 수신 레코드 수를 조절된 레코드 수에 더하면 됩니다. 이는 조절 이벤트 중 수신된 레코드의 수에 대한 개요를 제공합니다.


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

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


도움이 필요하십니까?