Amazon CloudWatch
사용 설명서

사용자 지정 메트릭 게시

AWS CLI 또는 API를 사용하여 CloudWatch에 자체 지표를 게시할 수 있습니다. AWS Management 콘솔을 사용하여 게시된 지표의 통계 그래프를 볼 수 있습니다.

CloudWatch에서는 지표에 대한 데이터를 일련의 데이터 요소로 저장합니다. 각 데이터 요소에는 연결된 시간스탬프가 있습니다. 통계 세트라는 집계된 데이터 요소 세트를 게시할 수도 있습니다.

고분해능 지표

각 지표는 다음 중 하나입니다.

  • 표준 분해능 - 1분 세분화 데이터

  • 고분해능 - 1초 세분화 데이터

AWS 서비스에 의해 생성되는 지표는 기본적으로 표준 분해능입니다. 사용자 지정 지표를 게시할 때는 지표를 표준 분해능 또는 고분해능으로 정의할 수 있습니다. 고분해능 지표를 게시할 경우, CloudWatch는 1초 분해능으로 지표를 저장하고, 사용자는 1초, 5초, 10초, 30초 또는 60초의 배수 기간으로 읽고 검색할 수 있습니다.

고분해능 지표는 애플리케이션의 단기(1분 미만) 활동을 보다 즉각적으로 관찰할 수 있게 해줍니다. 사용자 지정 지표에 대해 PutMetricData를 호출할 때마다 요금이 부과되며, 따라서 고분해능 지표에 대해 PutMetricData를 자주 호출할수록 요금이 증가할 수 있다는 점에 유의하십시오. CloudWatch 요금에 대한 자세한 내용은 Amazon CloudWatch Pricing 단원을 참조하십시오.

고분해능 지표에 대해 경보를 설정할 경우 고분해능 경보를 10초 또는 30초 기간으로 지정하거나 60초의 배수 기간으로 정기 경보를 설정할 수 있습니다. 10초 또는 30초 기간의 고분해능 경보는 요금이 더 비쌉니다.

차원 사용

사용자 지정 지표에서 --dimensions 파라미터는 공통입니다. 차원은 지표가 무엇이고 어떤 데이터가 저장되었는지 훨씬 명확하게 보여줍니다. 지표 하나에 차원을 최대 10개까지 가질 수 있으며, 각 차원은 이름-값 페어로 정의됩니다.

서로 다른 명령을 사용하면 차원을 지정하는 방법도 달라집니다. put-metric-data에서는 각 차원을 MyName=MyValue로 지정하고, get-metric-statistics 또는 put-metric-alarm에서는 Name=MyName, Value=MyValue 형식을 사용합니다. 예를 들어, 다음 명령은 이름이 InstanceIdInstanceType인 두 차원으로 Buffers 지표를 게시합니다.

aws cloudwatch put-metric-data --metric-name Buffers --namespace MyNameSpace --unit Bytes --value 231434333 --dimensions InstanceId=1-23456789,InstanceType=m1.small

이 명령은 동일한 지표에 대한 통계를 검색합니다. 단일 차원의 Name 및 Value 부분은 쉼표로 구분하지만, 차원이 여러 개인 경우에는 하나의 차원과 그 다음 차원 사이에 공백을 둡니다.

aws cloudwatch get-metric-statistics --metric-name Buffers --namespace MyNameSpace --dimensions Name=InstanceId,Value=1-23456789 Name=InstanceType,Value=m1.small --start-time 2016-10-15T04:00:00Z --end-time 2016-10-19T07:00:00Z --statistics Average --period 60

단일 지표에 여러 개의 차원이 포함된 경우에는 get-metric-statistics를 사용할 때 정의된 모든 차원에 대해 값을 지정해야 합니다. 예를 들어 Amazon S3 지표의 경우 BucketSizeBytesBucketNameStorageType 차원이 포함되어 있기 때문에 get-metric-statistics에서 두 차원 모두를 지정해야 합니다.

aws cloudwatch get-metric-statistics --metric-name BucketSizeBytes --start-time 2017-01-23T14:23:00Z --end-time 2017-01-26T19:30:00Z --period 3600 --namespace AWS/S3 --statistics Maximum --dimensions Name=BucketName,Value=MyBucketName Name=StorageType,Value=StandardStorage --output table

지표에 정의되는 차원을 확인하려면 list-metrics 명령을 사용합니다.

단일 데이터 요소 게시

신규 또는 기존 지표에서 단일 데이터 요소를 게시하려면 하나의 값과 타임스탬프와 함께 put-metric-data 명령을 사용하십시오. 예를 들어, 다음 각 작업은 데이터 요소 하나를 게시합니다.

aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --value 2 --timestamp 2016-10-20T12:00:00.000Z aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --value 4 --timestamp 2016-10-20T12:00:01.000Z aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --value 5 --timestamp 2016-10-20T12:00:02.000Z

새 지표 이름으로 이 명령을 호출하면 CloudWatch가 지표를 생성합니다. 그렇지 않으면 CloudWatch는 지정된 기존의 지표에 데이터를 연결합니다.

참고

지표를 작성할 때 get-metric-statistics 명령을 사용하여 새 지표에 대한 통계를 검색할 수 있기까지 최대 2분이 소요될 수 있습니다. 그러나 list-metrics 명령을 사용하여 검색된 지표 목록에 새 지표가 나타나려면 최대 15분이 걸릴 수 있습니다.

1,000분의 1초 만큼 세분화된 타임스탬프를 사용하여 데이터 요소를 게시하더라도 CloudWatch에서는 최소 1분으로 세분화되도록 데이터를 집계합니다. CloudWatch는 1분 기간으로 수신된 값의 평균(모든 항목의 합계를 항목 수로 나눈 값)을 비롯해 샘플 수, 동일 기간에 대한 최대값 및 최소값을 기록합니다. 예를 들어, 이전 예의 PageViewCount 지표에는 타임스탬프가 몇 초 간격인 데이터 요소 3개가 있습니다. 데이터 요소 3개의 타임스탬프가 모두 1분 기간 내에 있으므로 CloudWatch에서는 이러한 데이터 요소를 집계합니다.

데이터 요소 집계 시 CloudWatch에서는 1분 경계를 사용합니다. 예를 들어, 데이터 요소 3개가 모두 2016-10-20T12:00:00.000Z에서 시작하여 2016-10-20T12:01:00.000Z에서 끝나는 1분 기간 내에 있으므로 CloudWatch에서는 이전 예의 데이터 요소를 집계합니다.

get-metric-statistics 명령을 사용하여 게시된 데이터 요소에 따라 통계를 검색할 수 있습니다.

aws cloudwatch get-metric-statistics --namespace MyService --metric-name PageViewCount \ --statistics "Sum" "Maximum" "Minimum" "Average" "SampleCount" \ --start-time 2016-10-20T12:00:00.000Z --end-time 2016-10-20T12:05:00.000Z --period 60

다음은 예제 출력입니다.

{ "Datapoints": [ { "SampleCount": 3.0, "Timestamp": "2016-10-20T12:00:00Z", "Average": 3.6666666666666665, "Maximum": 5.0, "Minimum": 2.0, "Sum": 11.0, "Unit": "None" } ], "Label": "PageViewCount" }

통계 세트 게시

CloudWatch에 게시하기 전에 데이터를 집계할 수 있습니다. 분당 여러 데이터 요소가 있는 경우 데이터를 집계하면 put-metric-data에 대한 호출 수가 최소화됩니다. 예를 들어, 서로 3초 내에 있는 데이터 요소 3개에 대해 put-metric-data를 여러 번 호출하는 대신 --statistic-values 파라미터를 사용하여 호출 한 번으로 게시한 통계 세트로 데이터를 집계할 수 있습니다.

aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --statistic-values Sum=11,Minimum=2,Maximum=5,SampleCount=3 --timestamp 2016-10-14T12:00:00.000Z

CloudWatch가 백분위수를 계산하려면 원시 데이터 요소가 필요합니다. 대신 통계 세트를 사용해 데이터를 게시하면 아래 조건 중 하나를 충족하기 전까지 이 데이터에 대한 백분위수 통계를 검색할 수 없습니다.

  • 통계 세트의 SampleCount는 1입니다.

  • 통계 세트의 MinimumMaximum이 동일합니다.

0 값 게시

데이터가 훨씬 산발적이고 연결된 데이터가 없는 기간이 있으면 해당 기간에 대해 0 값(0)을 게시하거나 값을 전혀 게시하지 않도록 선택할 수 있습니다. PutMetricData에 대한 정기적인 호출을 통해 애플리케이션의 상태를 모니터링하는 경우 값을 게시하지 않는 대신 0을 게시하려고 할 수 있습니다. 예를 들어 애플리케이션에서 지표를 게시하는 데 실패한 경우 5분마다 이를 알리도록 CloudWatch 경보를 설정할 수 있습니다. 애플리케이션에서 연결된 데이터가 없는 기간에 대해 0을 게시하도록 하려고 합니다.

또한 데이터 요소의 총 수를 추적하거나 최소값 또는 평균과 같은 통계에 값이 0인 데이터 요소를 포함하려는 경우 0을 게시할 수도 있습니다.