Amazon CloudWatch를 사용한 Amazon Kinesis Data Streams 서비스 모니터링 - Amazon Kinesis Data Streams

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

Amazon Kinesis Data Streams와 Amazon CloudWatch가 통합되어 Kinesis 데이터 스트림에 대한 CloudWatch 지표를 수집, 확인, 분석할 수 있습니다. 예를 들어 샤드 사용을 추적하기 위해 IncomingBytes 지표와 OutgoingBytes 지표를 모니터링하여 이 값을 스트림의 샤드 수와 비교할 수 있습니다.

스트림에 구성한 지표는 1분마다 자동으로 수집되어 CloudWatch에 푸시됩니다. 측정치는 2주 간 보관되고 그 후에는 삭제됩니다.

다음 표에서는 Kinesis 데이터 스트림의 기본 스트림 수준 및 향상된 샤드 수준 모니터링을 설명합니다.

유형 Description

기본(스트림 수준)

자동으로 스트림 수준 데이터가 1분마다 무료로 전송됩니다.

향상(샤드 수준)

추가 비용을 부담하면 샤드 수준 데이터가 1분마다 전송됩니다. 이 수준의 데이터를 가져오려면 EnableEnhancedMonitoring 작업을 사용하여 스트림에 해당 수준을 사용하도록 설정해야 합니다.

요금에 대한 자세한 내용은 Amazon CloudWatch 제품 페이지를 참조하세요.

Amazon Kinesis Data Streams 측정기준 및 지표

Kinesis Data Streams는 스트림 수준과 샤드 수준(선택 사항)이라는 두 가지 수준에서 CloudWatch로 지표를 전송합니다. 스트림 수준 지표는 정상적인 조건에서 가장 일반적인 모니터링 사용 사례를 위한 것입니다. 샤드 수준 지표는 주로 문제 해결과 관련된 특정 모니터링 작업에 사용되며 EnableEnhancedMonitoring 작업을 사용하여 활성화됩니다.

CloudWatch 지표에서 수집한 통계에 대한 설명은 Amazon CloudWatch 사용 설명서의 CloudWatch 통계를 참조하세요.

기본적인 스트림 수준 지표

AWS/Kinesis 네임스페이스에는 다음과 같은 스트림 수준 지표가 포함되어 있습니다.

Kinesis Data Streams에서 이러한 스트림 수준 지표를 1분마다 CloudWatch에 전송합니다. 이 지표는 언제든지 사용할 수 있습니다.

지표 Description
GetRecords.Bytes

지정한 기간 동안 측정된, Kinesis 스트림에서 가져온 바이트 수입니다. Minimum, Maximum 및 Average 통계는 지정한 시간에 스트림에 사용된 단일 GetRecords 작업의 바이트 수를 의미합니다.

샤드 수준 지표 이름: OutgoingBytes

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 바이트

GetRecords.IteratorAge

이 지표는 더 이상 사용되지 않습니다. GetRecords.IteratorAgeMilliseconds를 사용합니다.

GetRecords.IteratorAgeMilliseconds

Kinesis 스트림에 대한 모든 GetRecords 호출에서 지정한 기간 동안 측정된 마지막 레코드의 경과 시간입니다. 여기에서 경과 시간이란 현재 시간과 마지막 GetRecords 호출 레코드가 스트림에 작성된 시간의 차이를 말합니다. Minimum 통계와 Maximum 통계는 Kinesis 소비자 애플리케이션의 진행 상황을 추적하는 데 사용할 수 있습니다. 값이 0이면 읽어오는 레코드가 스트림을 완전히 따라잡았다는 것을 의미합니다.

샤드 수준 지표 이름: IteratorAgeMilliseconds

측정 기준: StreamName

통계: Minimum, Maximum, Average, Samples

단위: 밀리초

GetRecords.Latency

GetRecords 작업 1건당 지정한 시간 동안 측정된 소요 시간

측정 기준: StreamName

Statistics: Minimum, Maximum, Average

단위: 밀리초

GetRecords.Records

지정한 시간 동안 측정하며, 샤드에서 가져온 레코드 수. Minimum, Maximum 및 Average 통계는 지정한 시간에 스트림에 사용된 단일 GetRecords 작업의 레코드 수를 의미합니다.

샤드 수준 지표 이름: OutgoingRecords

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

GetRecords.Success

지정한 시간 동안 측정하며, 스트림 1회마다 성공한 GetRecords 작업 수

측정 기준: StreamName

통계: Average, Sum, Samples

단위: 개

IncomingBytes

지정한 기간 동안 Kinesis 스트림에 성공적으로 입력된 바이트 수입니다. 이 지표에는 PutRecord 작업과 PutRecords 작업의 바이트 수도 포함됩니다. Minimum, Maximum 및 Average 통계는 지정한 시간에 스트림에 사용된 단일 입력 작업의 바이트 수를 의미합니다.

샤드 수준 지표 이름: IncomingBytes

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 바이트

IncomingRecords

지정한 기간 동안 Kinesis 스트림에 성공적으로 입력된 레코드 수입니다. 이 지표에는 PutRecord 작업과 PutRecords 작업의 레코드 수도 포함됩니다. Minimum, Maximum 및 Average 통계는 지정한 시간에 스트림에 사용된 단일 입력 작업의 레코드 수를 의미합니다.

샤드 수준 지표 이름: IncomingRecords

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

PutRecord.Bytes

지정한 기간 동안 PutRecord 작업을 사용하여 Kinesis 스트림에 입력된 바이트 수입니다.

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 바이트

PutRecord.Latency

PutRecord 작업 1건당 지정한 시간 동안 측정된 소요 시간

측정 기준: StreamName

Statistics: Minimum, Maximum, Average

단위: 밀리초

PutRecord.Success

지정한 시간 동안 측정된, Kinesis 스트림당 성공한 PutRecord 작업 수입니다. Average는 스트림에 대한 성공적인 쓰기 작업 비율을 반영합니다.

측정 기준: StreamName

통계: Average, Sum, Samples

단위: 개

PutRecords.Bytes

지정한 기간 동안 PutRecords 작업을 사용하여 Kinesis 스트림에 입력된 바이트 수입니다.

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 바이트

PutRecords.Latency

PutRecords 작업 1건당 지정한 시간 동안 측정된 소요 시간

측정 기준: StreamName

Statistics: Minimum, Maximum, Average

단위: 밀리초

PutRecords.Records

이 지표는 더 이상 사용되지 않습니다. PutRecords.SuccessfulRecords를 사용합니다.

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

PutRecords.Success

지정한 기간 동안 측정된, Kinesis 스트림당 최소 1개 이상의 레코드가 성공한 PutRecords 작업 수입니다.

측정 기준: StreamName

통계: Average, Sum, Samples

단위: 개

PutRecords.TotalRecords

지정된 기간 동안 측정된, Kinesis 데이터 스트림당 PutRecords 작업에서 전송된 총 레코드 수입니다.

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

PutRecords.SuccessfulRecords

지정한 기간 동안 측정된, Kinesis 데이터 스트림당 PutRecords 작업에서 성공한 레코드 수입니다.

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

PutRecords.FailedRecords

지정된 기간 동안 측정된, Kinesis 데이터 스트림당 PutRecords 작업에서 내부 오류로 인해 거부된 레코드 수입니다. 간헐적인 내부 오류가 예상되므로 재시도가 필요합니다.

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

PutRecords.ThrottledRecords

지정된 기간 동안 측정된, Kinesis 데이터 스트림당 PutRecords 작업에서 제한으로 인해 거부된 레코드 수입니다.

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

ReadProvisionedThroughputExceeded

지정한 시간 동안 측정하며, 스트림 병목 형상을 초래한 GetRecords 호출 수. 이 지표에서 가장 흔하게 사용되는 통계는 Average입니다.

Minimum 통계 값이 1일 때는 지정한 시간 동안 모든 레코드가 스트림 병목 현상을 초래한 것을 의미합니다.

Maximum 통계 값이 0(영)일 때는 지정한 시간 동안 스트림 병목 현상을 초래한 레코드가 없다는 것을 의미합니다.

샤드 수준 지표 이름: ReadProvisionedThroughputExceeded

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

SubscribeToShard.RateExceeded

이 측정치는 동일한 소비자에 의한 활성 구독이 이미 있기 때문에 새로운 구독 시도가 실패할 경우 또는 이 작업에 허용되는 초당 호출 수를 초과할 경우 생성됩니다.

측정 기준: StreamName, ConsumerName
SubscribeToShard.Success

이 측정치는 SubscribeToShard 구독이 성공적으로 설정되었는지 여부를 기록합니다. 구독은 최대 5분간만 지속됩니다. 따라서 이 측정치는 적어도 5분마다 한 번 생성됩니다.

측정 기준: StreamName, ConsumerName

SubscribeToShardEvent.Bytes

지정한 시간 동안 측정하며, 샤드로부터 수신한 바이트 수. Minimum, Maximum 및 Average 통계는 지정한 시간 동안 단일 이벤트에 게시된 바이트 수를 의미합니다.

샤드 수준 지표 이름: OutgoingBytes

측정 기준: StreamName, ConsumerName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 바이트

SubscribeToShardEvent.MillisBehindLatest

현재 시간과 마지막 SubscribeToShard 이벤트가 스트림에 기록된 시간의 차이.

측정 기준: StreamName, ConsumerName

통계: Minimum, Maximum, Average, Samples

단위: 밀리초

SubscribeToShardEvent.Records

지정한 시간 동안 측정하며, 샤드로부터 수신한 레코드 수. Minimum, Maximum 및 Average 통계는 지정한 시간 동안 단일 이벤트의 레코드 수를 의미합니다.

샤드 수준 지표 이름: OutgoingRecords

측정 기준: StreamName, ConsumerName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

SubscribeToShardEvent.Success 이 측정치는 이벤트가 성공적으로 게시될 때마다 생성됩니다. 활성 구독이 있는 경우에만 생성됩니다.

측정 기준: StreamName, ConsumerName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

WriteProvisionedThroughputExceeded

지정한 시간 동안 스트림 병목 현상으로 인해 거부된 레코드 수. 이 지표에는 PutRecord 작업과 PutRecords 작업에서 발생하는 병목 현상도 포함됩니다. 이 지표에서 가장 흔하게 사용되는 통계는 Average입니다.

Minimum 통계가 0이 아닌 값일 때는 지정한 시간 동안 레코드에 스트림 병목 현상이 발생하였다는 것을 의미합니다.

Maximum 통계 값이 0(영)일 때는 지정한 시간 동안 스트림 병목 현상이 발생한 레코드가 없다는 것을 의미합니다.

샤드 수준 지표 이름: WriteProvisionedThroughputExceeded

측정 기준: StreamName

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

향상된 샤드 수준 지표

AWS/Kinesis 네임스페이스에는 다음과 같은 샤드 수준 지표가 포함되어 있습니다.

Kinesis는 다음 샤드 수준 지표를 1분마다 CloudWatch에 전송합니다. 각 지표 측정기준은 1개의 CloudWatch 지표를 생성하고 매월 약 4만 3,200개의 PutMetricData API 호출을 수행합니다. 이 지표는 기본적으로 활성화되어 있지 않습니다. Kinesis에서 내보낸, 향상된 지표에는 요금이 부과됩니다. 자세한 내용은 제목 Amazon CloudWatch 사용자 지정 지표 아래의 Amazon CloudWatch 요금을 참조하세요. 요금은 매월 지표당 공유마다 부과됩니다.

지표 Description
IncomingBytes

지정한 시간 동안 샤드에 성공적으로 입력된 바이트 수. 이 지표에는 PutRecord 작업과 PutRecords 작업의 바이트 수도 포함됩니다. Minimum, Maximum 및 Average 통계는 지정한 시간에 샤드에 사용된 단일 입력 작업의 바이트 수를 의미합니다.

스트림 수준 지표 이름: IncomingBytes

차원: StreamName, ShardId

통계: Minimum, Maximum, Average, Sum, Samples

단위: 바이트

IncomingRecords

지정한 시간 동안 샤드에 성공적으로 입력된 레코드 수. 이 지표에는 PutRecord 작업과 PutRecords 작업의 레코드 수도 포함됩니다. Minimum, Maximum 및 Average 통계는 지정한 시간에 샤드에 사용된 단일 입력 작업의 레코드 수를 의미합니다.

스트림 수준 지표 이름: IncomingRecords

차원: StreamName, ShardId

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

IteratorAgeMilliseconds

샤드에 대한 모든 GetRecords 호출에서 지정한 기간 동안 측정된 마지막 레코드의 경과 시간. 여기에서 경과 시간이란 현재 시간과 마지막 GetRecords 호출 레코드가 스트림에 작성된 시간의 차이를 말합니다. Minimum 통계와 Maximum 통계는 Kinesis 소비자 애플리케이션의 진행 상황을 추적하는 데 사용할 수 있습니다. 값이 0(영)이면 읽어오는 레코드가 스트림을 완전히 따라잡았다는 것을 의미합니다.

스트림 수준 지표 이름: GetRecords.IteratorAgeMilliseconds

차원: StreamName, ShardId

통계: Minimum, Maximum, Average, Samples

단위: 밀리초

OutgoingBytes

지정한 시간 동안 측정하며, 샤드에서 가져온 바이트 수. Minimum, Maximum 및 Average 통계는 지정한 시간 동안 단일 GetRecords 작업에서 반환된 또는 샤드의 단일 SubscribeToShard 이벤트에서 게시된 바이트 수를 의미합니다.

스트림 수준 지표 이름: GetRecords.Bytes

차원: StreamName, ShardId

통계: Minimum, Maximum, Average, Sum, Samples

단위: 바이트

OutgoingRecords

지정한 시간 동안 측정하며, 샤드에서 가져온 레코드 수. Minimum, Maximum 및 Average 통계는 지정한 시간 동안 단일 GetRecords 작업에서 반환된 또는 샤드의 단일 SubscribeToShard 이벤트에서 게시된 레코드 수를 의미합니다.

스트림 수준 지표 이름: GetRecords.Records

차원: StreamName, ShardId

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

ReadProvisionedThroughputExceeded

지정한 시간 동안 측정하며, 샤드 병목 형상을 초래한 GetRecords 호출 수. 이 예외 수는 1초마다 샤드 1개당 읽기 수가 5개이거나, 샤드 1개마다 초당 읽기 크기가 2MB로 제한되는 모든 차원에 적용됩니다. 이 지표에서 가장 흔하게 사용되는 통계는 Average입니다.

Minimum 통계 값이 1일 때는 지정한 시간 동안 모든 레코드가 샤드 병목 현상을 초래한 것을 의미합니다.

Maximum 통계 값이 0(영)일 때는 지정한 시간 동안 샤드 병목 현상을 초래한 레코드가 없다는 것을 의미합니다.

스트림 수준 지표 이름: ReadProvisionedThroughputExceeded

차원: StreamName, ShardId

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

WriteProvisionedThroughputExceeded

지정한 시간 동안 샤드 병목 현상으로 인해 거부된 레코드 수. 이 지표는 PutRecord 작업과 PutRecords 작업의 병목 현상도 포함되며, 샤드 1개마다 초당 레코드 수가 1,000개이거나, 혹은 샤드 1개마다 초당 레코드 크기가 1MB로 제한되는 모든 차원에 적용됩니다. 이 지표에서 가장 흔하게 사용되는 통계는 Average입니다.

Minimum 통계가 0이 아닌 값일 때는 지정한 시간 동안 레코드에 샤드 병목 현상이 발생하였다는 것을 의미합니다.

Maximum 통계 값이 0(영)일 때는 지정한 시간 동안 샤드 병목 현상이 발생한 레코드가 없다는 것을 의미합니다.

스트림 수준 지표 이름: WriteProvisionedThroughputExceeded

차원: StreamName, ShardId

통계: Minimum, Maximum, Average, Sum, Samples

단위: 개

Amazon Kinesis Data Streams 지표의 측정기준

측정기준

Description

StreamName

Kinesis 비디오 스트림의 이름입니다. 사용 가능한 모든 통계는 StreamName로 필터링됩니다.

권장되는 Amazon Kinesis Data Streams 지표

Kinesis Data Streams 고객은 몇 가지 Amazon Kinesis Data Streams 지표에 특히 관심을 가질 수 있습니다. 다음은 권장되는 측정치와 그 용도 목록입니다.

지표 사용 관련 참고 사항

GetRecords.IteratorAgeMilliseconds

스트림의 모든 샤드와 소비자에서 읽기 위치를 추적합니다. 반복자 수명이 보존 기간(기본적으로 24시간, 최대 7일까지 구성 가능)의 50%를 경과하면 레코드 만료로 인해 데이터가 손실될 위험이 있습니다. 데이터가 손실되기 전에 알리도록 최대 통계에 CloudWatch 경보를 사용하는 것이 좋습니다. 이 측정치가 사용되는 시나리오의 예는 소비자 레코드 처리 속도가 느려지는 경우를 참조하십시오.

ReadProvisionedThroughputExceeded

소비자 측 레코드 처리 속도가 느려질 때 병목 현상이 일어난 위치를 알기 어려울 때가 있습니다. 이 측정치를 사용하여 읽기 처리량 제한 초과로 인해 읽기가 제한되고 있는지 확인하십시오. 이 지표에서 가장 흔하게 사용되는 통계는 Average입니다.

WriteProvisionedThroughputExceeded ReadProvisionedThroughputExceeded 측정치와 같은 용도지만 스트림의 생산자(넣기) 측에 사용됩니다. 이 지표에서 가장 흔하게 사용되는 통계는 Average입니다.
PutRecord.Success, PutRecords.Success 레코드가 스트림에 대해 실패할지 나타내기 위해 Average 통계에 CloudWatch 경보를 사용하는 것이 좋습니다. 생산자가 무엇을 사용하는지에 따라 put 유형을 한 개 또는 둘 다 선택합니다. Kinesis Producer Library(KPL)를 사용하는 경우 PutRecords.Success를 사용합니다.
GetRecords.Success 레코드가 스트림에서 실패할지 나타내기 위해 평균 통계에 CloudWatch 경보를 사용하는 것이 좋습니다.

Kinesis Data Streams의 Amazon CloudWatch 지표에 액세스

CloudWatch 콘솔, 명령줄 또는 CloudWatch API를 사용하여 Kinesis Data Streams에 대한 지표를 모니터링할 수 있습니다. 다음의 절차는 이처럼 다양한 방법을 사용하여 측정치에 액세스하는 방법을 설명합니다.

CloudWatch 콘솔을 사용하여 지표에 액세스
  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 탐색 모음에서 리전을 선택합니다.

  3. 탐색 창에서 지표(Metrics)를 선택합니다.

  4. CloudWatch Metrics by Category(범주별 CloudWatch 지표) 창에서 Kinesis Metrics(Kinesis 지표)를 선택합니다.

  5. 관련 행을 클릭하여 지정된 MetricNameStreamName의 통계를 봅니다.

    참고: 대부분의 콘솔 통계 이름은 읽기 처리량쓰기 처리량을 제외하고 위에 나열된 해당 CloudWatch 지표 이름과 일치합니다. 이러한 통계는 5분 간격으로 계산됩니다. 쓰기 처리량IncomingBytes 지표를 모니터링하고 읽기 처리량GetRecords.Bytes를 모니터링합니다.

  6. (선택 사항) 그래프 창에서 통계와 시간 기간을 선택한 후 다음 설정을 사용하여 CloudWatch 경보를 생성합니다.

AWS CLI를 사용하여 측정치에 액세스하려면

list-metrics 명령과 get-metric-statistics 명령을 사용합니다.

CloudWatch 콘솔을 사용하여 지표에 액세스

mon-list-metrics 명령과 mon-get-stats 명령을 사용합니다.

CloudWatch API를 사용하여 지표에 액세스

ListMetrics 작업과 GetMetricStatistics 작업을 사용합니다.