Kinesis Data Streams 문제를 모니터링하고 해결하는 데 사용할 수 있는 지표는 무엇인가요?

4분 분량
0

Amazon Kinesis Data Streams의 수신 및 발신 데이터를 모니터링하고 싶습니다.

해결 방법

스트림 수준 지표 사용

Amazon CloudWatch 지표를 사용하여 Amazon Kinesis Data Streams의 성능과 처리량을 지속적으로 모니터링할 수 있습니다. 다음 지표는 생산자 및 소비자 문제를 모니터링하는 데 도움이 될 수 있습니다.

GetRecords.IteratorAgeMilliseconds
GetRecords.IteratorAgeMilliseconds는 모든 GetRecords 요청에 대한 스트림의 마지막 레코드의 나이를 밀리초 단위로 측정합니다. 이 지표의 값이 0이면 해당 레코드가 스트림 내에서 최신 상태임을 나타냅니다. 더 낮은 값이 선호됩니다. 성능 문제를 모니터링하려면 데이터가 더 빨리 처리되도록 스트림의 소비자 수를 늘리십시오. 애플리케이션 코드를 최적화하려면 소비자 수를 늘려 기록 처리 지연을 줄이세요.

ReadProvisionedThroughputExceeded
ReadProvisionedThroughputExceeded는 지정된 기간 동안 정체되어 Kinesis Data Streams의 서비스 또는 샤드 제한을 초과하는 GetRecords 호출의 수를 측정합니다. 값이 0이면 데이터 소비자가 서비스 할당량을 초과하지 않음을 나타냅니다. 다른 값은 처리량 제한을 초과하여 추가 샤드가 필요함을 나타냅니다. 이 지표는 스트림의 읽기/초/샤드 또는 2MB/초/샤드가 5회를 넘지 않는지 확인합니다. 향상된 모니터링을 켜서 스트림에 핫 샤드가 없는지 확인할 수 있습니다.

WriteProvisionedThroughputExceeded
WriteProvisionedThroughputExceeded는 스트림이 정체 여부를 판단하는 데 도움이 되는 PUT 또는 데이터 생산자(예: ReadProvisionedThroughputExceeded)를 측정합니다. 이는 샤드에 쓸 때 데이터 스트림에 대한 서비스 할당량을 초과합니다. PUT 요청은 1MB/초/샤드 또는 1,000개의 레코드/샤드/초를 초과하지 않아야 합니다. 파티션 키가 균등하게 분배되고 스트림의 핫 샤드를 검증하기 위한 향상된 모니터링 기능이 켜져 있는지 확인하십시오. 샤드 포화도에 따라 스트림의 샤드 수를 업데이트하여 처리량을 늘릴 수 있도록 합니다.

PutRecord.Success 및 PutRecords.Success
PutRecord.SuccessPutRecords.Success는 데이터 생산자가 주어진 기간 동안 스트림에 보낸 PutRecords 요청의 성공적인 레코드 수를 측정합니다. 이 지표는 실패한 레코드에 대한 효과적인 재시도 로직을 확인합니다.

GetRecords.Success
GetRecords.Success는 스트림에서 지정된 기간 동안 성공한 GetRecords 요청의 수를 측정합니다 실패한 레코드에 대한 효과적인 재시도 로직을 확인합니다.

GetRecords.Latency
GetRecords.Latency는 지정된 기간 동안 스트림에서 각 GetRecords 작업에 걸리는 시간을 측정합니다. 스트림 처리량 증가를 위한 충분한 물리적 리소스 또는 레코드 처리 로직을 확인합니다. 또한 대량의 데이터 배치를 처리하여 애플리케이션의 네트워크 및 기타 다운스트림 지연 시간을 줄여줍니다. KCL(Kinesis Client Library)의 경우 ProcessTask.Time 지표를 조사하여 지연되고 있는 애플리케이션의 처리 시간을 모니터링하세요. GetRecords.Latency 지표는 IDLE_TIME_BETWEEN_READS_IN_MILLIS 설정이 스트림 처리 속도를 따라잡도록 설정되어 있는지 확인합니다.

PutRecords.Latency
PutRecords.Latency는 지정된 기간 동안 스트림에서 각 PutRecords 작업에 걸리는 시간을 측정합니다. PutRecords.Latency 값이 높으면 레코드를 더 큰 파일로 집계하여 배치 데이터를 Kinesis 데이터 스트림에 추가하십시오. 또한 다중 스레드를 사용하여 데이터를 쓸 수 있습니다. PutRecords API의 정체 및 재시도 로직은 스트림의 각 PutRecords 작업에 걸리는 시간과 지연 시간에 영향을 줄 수 있습니다. 그런 다음 나열된 지표의 평균 통계를 사용하여 스트림의 성능과 처리량을 모니터링합니다.
참고: GetRecords.IteratorAgeMilliseconds의 경우 최대 통계를 사용하여 읽기 작업보다 지연되는 소비자의 데이터 손실 위험을 줄이세요. 지표에 대해 평가할 모든 데이터 요소에 응답하도록 CloudWatch 알람을 구성합니다. CloudWatch 알람에 대한 자세한 내용을 보려면 Amazon CloudWatch 알람 사용을 참조하세요.

향상된 팬아웃 기능을 사용하는 경우 다음 지표를 사용하여 Kinesis Data Streams를 모니터링하세요.

**SubscribeToShard.RateExceeded:**작업에 허용되거나 활성 구독이 이미 존재하여 구독 시도가 실패한 경우 초과된 초당 호출 수를 측정합니다.

SubscribeToShard.Success: SubscribeToShard 작업이 성공하는지 여부를 확인합니다.

**SubscribeToShardEvent.Success:**활성 구독에 대한 이벤트가 성공적으로 게시되었는지 확인합니다.

**SubscribeToShardEvent.Bytes:**지정된 기간 동안 샤드에서 수신한 바이트 수를 측정합니다.

**SubscribeToShardEvent.Records:**지정된 기간 동안 분할된 데이터베이스에 수신된 레코드 수를 측정합니다.

SubscribeToShardEvent.MillisBehindLatest: 스트림에 기록된 SubscribeToShard 이벤트의 현재 시간과 마지막 레코드의 차이를 측정합니다.

향상된 샤드 수준 지표 켜기

참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

CloudWatch에서 샤드 수준 지표를 활성화하여 특정 작업을 모니터링하고 데이터 생산자와 소비자 문제를 해결할 수 있습니다. 예를 들어, 샤드 수준 지표를 켜면 고르지 않은 워크로드 분포와 같은 문제를 식별하는 데 도움이 됩니다. 향상된 모니터링을 켜려면 다음 단계를 완료하세요.

**참고:**또한 EnableEnhancedMonitoring API 요청 또는 enable-enhanced-monitoring AWS CLI 명령을 사용할 수도 있습니다.

  1. Kinesis 콘솔을 엽니다.
  2. 특정 리전을 선택하세요.
  3. 탐색 창에서 데이터 스트림을 선택합니다.
  4. 데이터 스트림 이름에서 Kinesis 데이터 스트림을 선택합니다.
  5. 구성을 선택합니다.
  6. 고급(샤드 수준) 지표에서 편집을 선택합니다.
  7. 드롭다운 메뉴에서 향상된 모니터링에 사용할 지표를 선택합니다.
  8. 변경 사항 저장을 선택합니다.

API 호출을 통한 추가 문제 해결

다음 API 호출을 사용하여 Kinesis Data Streams에서 데이터를 읽거나 쓸 수 있습니다.

  • CreateStream: 계정당 초당 5건의 트랜잭션으로 제한됩니다.
  • DeleteStream: 계정당 초당 5건의 트랜잭션으로 제한됩니다.
  • ListStreams: 계정당 초당 5건의 트랜잭션으로 제한됩니다.
  • GetShardIterator: 오픈 샤드당 계정당 초당 트랜잭션 5개로 제한됩니다.
  • MergeShards: 계정당 초당 5건의 트랜잭션으로 제한됩니다.
  • DescribeStream: 계정당 초당 10건의 트랜잭션으로 제한됩니다.
  • DescribeStreamSummary: 계정당 초당 20건의 트랜잭션으로 제한됩니다.

이러한 API 호출을 사용하면 AWS CloudTrail 로그에서 모든 정체를 모니터링할 수 있습니다. Kinesis Data Streams API 호출 및 CloudTrail에 대한 자세한 내용을 보려면 AWS CloudTrail로 Kinesis Data Streams API 호출 로깅을 참조하세요.

관련 정보

Amazon CloudWatch 요금

Amazon CloudWatch를 통한 Amazon Kinesis Data Streams 서비스 모니터링

AWS 공식
AWS 공식업데이트됨 4달 전