AWS

[aws cli] cloudwatch 지표 통계 확인

비번변경 2022. 10. 19. 01:35

개요

AWS는 각 리소스의 모니터링 탭이나 Cloudwatch를 통해 AWS가 지원하는 지표 정보, 예로 들어 EC2의 경우 CPU 사용륭이나 상태 검사 실패 건 등의 정보를 확인할 수 있다.

EC2 콘솔 모니터링

이러한 정보는 AWS 콘솔 뿐만 아니라 aws cli를 이용해 확인할 수도 있는데, 이 글에서는 해당 명령어 사용 방법에 대해 정리한다.

 

 

GetMetricData VS GetMetricStatistics

AWS cli/API를 사용하여 AWS CloudWatch 지표를 검색하는 방법으로는 GetMetricData 또는 GetMetricStatistics를 사용할 수 있다. 

GetMetricData는 대규모 데이터를 빠르게 검색할 수 있을 뿐만 아니라 지표 수식도 지원하지만, 프리 티어에 포함되어 있지 않다.

  호출당 지표 수 호출당 데이터 포인트 수 지표 수식 지원  정렬된 결과를 여러 페이지로 반환 프리 티어 한도에 포함됨
GetMetricData 500  100,800  아니요 
GetMetricStatistics 1 1,440  아니요 아니요 

비용 차이도 있을 뿐만 아니라, GetMetricData을 호출할 권한도 없기 때문에 이 글에서는 GetMetricStatistics 사용 방법을 정리할 것이다.

 

 

GetMetricStatistics

지정된 메트릭에 대한 통계를 가져온다. aws cli로는 get-metric-statistics에 해당한다.

aws cloudwatch get-metric-statistics \
	--namespace <value> \
	--metric-name <value> \
	[--dimensions <value>] \
	--start-time <value> \
	--end-time <value> \
	--period <value> \
	[--statistics <value>] \
	[--extended-statistics <value>] \
	[--unit <value>] \

각 옵션에 대한 설명은 다음과 같다.

  • namespace : 메트릭의 네임스페이스.
      예 ) AWS/EC2, AWS/RDS, AWS/S3 등
  • metric-name : 지표 이름
      예 ) EC2의 CPUUtilization 등
  • demensions : 지표 차원. 'Name=string,Value=string' 형식으로 여러 차원을 나열할 수 있다. 차원은 공백으로 구분한다.
  • start-time : 반환할 첫 번째 데이터의 시작 시간. ISO 8601 UTC 형식이어야 한다.
      예 ) 2016-10-03T23:00:00Z
  • end-time : 반환할 데이터의 마지막 시간. ISO 8601 UTC 형식이어야 한다. start-time과 end-time 범위 내의 데이터가 반환된다.
  • period : 데이터를 반환하는 시간 간격. 가령 start-time이 2016-10-03T23:00:00Z, end-time이 2016-10-03T23:05:00Z, period가 60이면 1분 간격의 데이터를 5개 반환된다.
  • statistics : 메트릭 통계. 최대값, 최솟값, 평균값 등에 해당한다.
  • unit : 측정값의 단위.
      예 ) Seconds, Byte, Gigabytes 등

 

명령어 예시 ) EC2 CPU 사용률 확인

aws cloudwatch get-metric-statistics \
	--namespace AWS/EC2 \
	--metric-name CPUUtilization \
	--dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
	--statistics Maximum \
	--start-time 2016-10-18T23:18:00 \
	--end-time 2016-10-19T23:18:00
	--period 360
 
# 결과
{
    "Datapoints": [
        {
            "Timestamp": "2016-10-19T00:18:00Z", 
            "Maximum": 0.33000000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2016-10-19T03:18:00Z", 
            "Maximum": 99.670000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2016-10-19T07:18:00Z", 
            "Maximum": 0.34000000000000002, 
            "Unit": "Percent"
        }, 
        ...
    ], 
    "Label": "CPUUtilization"
}

 

💡 각 리소스, 서비스의 네임스페이스, 지표, 차원, 단위 등에 대한 정보는 AWS 공식 문서의 각 서비스 사용 설명서 중 CloudWatch를 사용한 모니터링, CloudWatch 지표 문서 등에서 찾을 수 있다.

예시 )
- EC2 : 인스턴스에 사용 가능한 CloudWatch 지표 나열
- RDS : Amazon RDS에 대한 Amazon CloudWatch 지표
- SQS : Amazon SQS에 사용할 수 있는 CloudWatch 지표

단순 지표 목록은 Amazon CloudWatch Application Insights에서 지원하는 로그 및 지표에서 찾을 수 있다.

 

 

참고 문서

https://aws.amazon.com/ko/premiumsupport/knowledge-center/cloudwatch-getmetricdata-api/

https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/get-metric-statistics.html

https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html