지표 수식을 사용하여 대상 추적 조정 정책 생성 - Amazon EC2 Auto Scaling

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

지표 수식을 사용하여 대상 추적 조정 정책 생성

지표 수학을 사용하면 여러 CloudWatch 지표를 쿼리하고 수학 표현식을 활용함으로써 이러한 지표에 근거하여 새로운 시계열을 만들 수 있습니다. CloudWatch 콘솔에서 결과 시계열을 시각화하고 대시보드에 추가할 수 있습니다. 지표 수학에 대한 자세한 설명은 Amazon CloudWatch 사용자 가이드에서 지표 수학 사용을 참조하세요.

다음은 지표 수학 표현식에 적용되는 고려 사항입니다.

  • 사용 가능한 모든 CloudWatch 지표를 쿼리할 수 있습니다. 각 지표는 지표 이름, 네임스페이스, 0개 이상의 측정기준으로 이루어진 고유한 조합입니다.

  • 산술 연산자(+ - * / ^), 통계 함수(예: AVG 또는 SUM) 또는 CloudWatch에서 지원하는 기타 함수를 사용할 수 있습니다.

  • 수학 표현식의 공식에서 지표 및 다른 수학 표현식의 결과를 모두 사용할 수 있습니다.

  • 지표 사양에 사용된 표현식은 결국 단일 시계열을 반환해야 합니다.

  • CloudWatch 콘솔 또는 CloudWatch GetMetricData API를 사용하여 지표 수학 표현식이 유효한지 확인할 수 있습니다.

예: 인스턴스당 Amazon SQS 대기열 백로그

인스턴스당 Amazon SQS 대기열 백로그를 계산하려면 대기열에서 검색 가능한 대략적인 메시지 수를 가져와 Auto Scaling 그룹의 실행 용량(InService 상태인 인스턴스의 수)으로 나눠서 인스턴스당 Amazon SQS 대기열 백로그를 산출합니다. 자세한 설명은 Amazon SQS 기반 조정 정책 섹션을 참조하세요.

표현식의 로직은 다음과 같습니다.

sum of (number of messages in the queue)/(number of InService instances)

이 경우, CloudWatch 지표 정보는 다음과 같습니다.

ID CloudWatch 지표 통계 기간
m1 ApproximateNumberOfMessagesVisible Sum 1분
m2 GroupInServiceInstances 평균 1분

지표 수식 ID와 표현식은 다음과 같습니다.

ID 표현식
e1 (m1)/(m2)

다음은 이 지표에 대한 아키텍처를 보여주는 다이어그램입니다.

대기열 아키텍처 다이어그램을 사용한 Amazon EC2 Auto Scaling
이 지표 수학을 사용하여 대상 추적 조정 정책 생성(AWS CLI)
  1. 지표 수학 표현식을 사용자 지정된 지표 사양의 일부로서 config.json이라는 이름의 JSON 파일로 저장합니다.

    다음 표가 시작하는 데 도움이 될 수 있습니다. user input placeholder를 사용자의 정보로 바꿉니다.

    { "CustomizedMetricSpecification": { "Metrics": [ { "Label": "Get the queue size (the number of messages waiting to be processed)", "Id": "m1", "MetricStat": { "Metric": { "MetricName": "ApproximateNumberOfMessagesVisible", "Namespace": "AWS/SQS", "Dimensions": [ { "Name": "QueueName", "Value": "my-queue" } ] }, "Stat": "Sum" }, "ReturnData": false }, { "Label": "Get the group size (the number of InService instances)", "Id": "m2", "MetricStat": { "Metric": { "MetricName": "GroupInServiceInstances", "Namespace": "AWS/AutoScaling", "Dimensions": [ { "Name": "AutoScalingGroupName", "Value": "my-asg" } ] }, "Stat": "Average" }, "ReturnData": false }, { "Label": "Calculate the backlog per instance", "Id": "e1", "Expression": "m1 / m2", "ReturnData": true } ] }, "TargetValue": 100 }

    자세한 설명은 Amazon EC2 Auto Scaling API 참조의 TargetTrackingConfiguration을 참조하세요.

    참고

    다음은 CloudWatch 지표에 대한 지표 이름, 네임스페이스, 차원 및 통계를 찾는 데 도움이 되는 몇 가지 추가 리소스입니다.

    • AWS 서비스에 사용 가능한 지표에 대한 자세한 설명은 Amazon CloudWatch 사용자 가이드CloudWatch 지표를 게시하는AWS 서비스를 참조하세요.

    • AWS CLI를 사용하여 CloudWatch 지표에 대한 정확한 지표 이름, 네임스페이스 및 차원(해당되는 경우)을 얻으려면 list-metrics를 참조하세요.

  2. 이 정책을 생성하려면 다음 예에 나와 있는 것처럼 JSON 파일을 입력으로 사용하여 put-scaling-policy 명령을 실행합니다.

    aws autoscaling put-scaling-policy --policy-name sqs-backlog-target-tracking-scaling-policy \ --auto-scaling-group-name my-asg --policy-type TargetTrackingScaling \ --target-tracking-configuration file://config.json

    이 명령이 성공하면 사용자를 대신하여 생성된 두 CloudWatch 경보의 Amazon 리소스 이름(ARN)과, 정책의 ARN이 반환됩니다.

    { "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-asg:policyName/sqs-backlog-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e", "AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2", "AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2" } ] }
    참고

    이 명령으로 인해 오류가 발생하는 경우 AWS CLI 로컬에서를 최신 버전으로 업데이트했는지 확인합니다.