Amazon CloudWatch 지표를 사용하여 Amazon Elastic Block Store(Amazon EBS) 볼륨의 평균 처리량과 초당 입출력 작업량(IOPS) 수를 계산하려고 합니다.
간략한 설명
볼륨의 평균 처리량과 IOPS 수를 계산하려면 CloudWatch 지표와 함께 수학 표현식을 사용하십시오. EBS 볼륨의 데이터를 모니터링하려면 CloudWatch 경보를 생성하십시오.
또는 AWSSupport-CalculateEBSPerformanceMetrics 자동화 문서를 사용하십시오. 자동화는 CloudWatch 지표를 사용하여 EBS 볼륨의 집계 처리량, IOPS 수, I/O 크기를 계산합니다. 개별 EBS 볼륨 또는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 연결된 모든 EBS 볼륨에 대한 지표를 계산할 수 있습니다.
해결 방법
처리량을 수동으로 계산
다음 단계를 완료합니다.
- CloudWatch 콘솔을 엽니다.
- Metrics(지표)에서 All metrics(모든 지표)를 선택합니다.
- EBS namespace(EBS 네임스페이스)를 선택한 다음 Per-Volume metrics(볼륨별 지표)를 선택합니다.
- EBS 볼륨에 대해 다음 지표를 선택합니다.
실제 평균 IOPS를 그래프로 표시하려면, VolumeReadOps, VolumeWriteOps 및 VolumeIdleTime을 선택합니다.
실제 평균 처리량을 그래프로 표시하려면, VolumeReadBytes, VolumeWriteBytes, VolumeIdleTime을 선택합니다.
- 그래프로 표시된 지표 탭을 선택합니다.
- 통계에서 합계를 선택합니다.
- Period(기간)에서 보려는 기간을 선택합니다.
- m1, m2, m3 등과 같이 그래프로 표시된 각 지표 앞에 있는 지표 ID를 기록해 둡니다.
- Add math(수학 추가)에서 Start with empty expression(빈 표현식으로 시작)을 선택하고 다음 식을 입력하여 예상 평균값을 계산합니다.
초당 Ops의 평균 IOPS를 계산합니다.
(m1+m2)/(PERIOD(m1))
참고: 이전 표현식에서, m1은 VolumeReadOps이고 m2는 VolumeWriteOps입니다.
볼륨이 활성 상태일 때의 평균 처리량을 초당 바이트 수로 계산합니다.
(m1+m2)/(PERIOD(m1)-(IF(m3>59, 59, m3)))
참고: 이전 표현식에서, m1은 VolumeReadBytes, m2는 VolumeWriteBytes, m3은 VolumeIdleTime입니다.
평균 처리량을 초당 바이트 수로 계산합니다.
(m1+m2)/(PERIOD(m1))
참고: 이전 표현식에서, m1은 VolumeReadBytes이고 m2는 VolumeWriteBytes입니다.
처리량과 IOPS는 초당 측정값입니다. 따라서 VolumeIdleTime이 59초보다 길면 VolumeIdleTime X 기간 계산을 기반으로 하는 지표 데이터 포인트가 예상보다 높은 값을 생성할 수 있습니다. 또한 마이크로 버스트로 인해 처리량과 IOPS의 평균값이 실제 평균값과 다를 수 있습니다. CloudWatch는 EBS 볼륨 지표를 초당 간격으로 집계하지 않습니다. 자세한 내용은 Amazon EBS 볼륨이 마이크로 버스팅인지 확인하고 성능에 영향을 주지 않도록 하려면 어떻게 해야 합니까?를 참조하십시오.
자동화를 사용하여 처리량 계산
시작하기 전에 분석하려는 리소스의 볼륨 ID 또는 인스턴스 ID를 복사합니다. 자동화 문서를 실행하려면 리소스 ID가 필요합니다.
(선택 사항) 자동화를 위한 AWS Identity and Access Management(IAM) 역할을 생성하고 지정합니다. 역할을 선택하지 않으면 Automation는 문서를 실행하는 사용자의 권한을 사용합니다.
AWS Systems Manager 콘솔 또는 AWS CLI를 사용하여 자동화를 실행할 수 있습니다.
Systems Manager 콘솔
다음 단계를 완료합니다.
- Systems Manager 콘솔에서 리소스가 위치한 AWS 리전의 문서를 엽니다.
- Execute automation document(자동화 문서 실행) 섹션에서 Simple execution(간단한 실행)을 선택합니다.
- 입력 파라미터 섹션에 다음 파라미터를 입력합니다.
ResourceId에 대해 분석하려는 EBS 볼륨 또는 EC2 인스턴스의 ID를 입력합니다.
StartTime에 대해 yyyy-mm-ddThh:mm:ss 형식과 UTC 기준으로 시간을 입력합니다. 예를 들어, 2021-06-09T13:30:10을 입력합니다.
EndTIme에 대해 yyyy-mm-ddThh:mm:ss 형식과 UTC 기준으로 시간을 입력합니다. 예를 들어, 2021-06-16T13:30:10을 입력합니다.
(선택 사항) AutomationAssumeRole에 대해 IAM 역할을 선택합니다.
- Execute(실행)를 선택합니다.
최종 출력은 대시보드의 URL입니다. URL을 보려면 Outputs(출력) 필드를 확장합니다. 대시보드를 사용하여 분석된 지표와 그 할당량을 확인합니다.
참고: 대시보드를 삭제하려면 cloudwatch:DeleteDashboards IAM 권한이 필요합니다.
AWS CLI
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
start-automation-execution AWS CLI 명령을 실행합니다.
aws ssm start-automation-execution --document-name "AWSSupport-CalculateEBSPerformanceMetrics" --document-version "\\$DEFAULT" --parameters '{"ResourceId":\["i-example12345"\], "StartTime":\["2021-06-09T13:30:10"\], "EndTime":\["2021-06-16T13:30:10"\], "Period":\["60"\], "AutomationAssumeRole":\[""\]}' --region us-east-1
참고: 이전 명령에서 ResourceId를 분석하려는 리소스 ID로 바꿉니다. CloudWatch에서 데이터를 보려면 StartTime과 EndTime을 시작 시간과 종료 시간으로 바꿉니다. us-east-1을 리소스의 리전으로 바꿉니다. 자동화를 실행하기 위해 IAM 역할을 생성한 경우 AutomationAssumeRole을 IAM 역할로 바꿉니다.