지표 수학을 사용하여 목표 추적 조정 정책을 생성하십시오. - 아마존 EC2 오토 스케일링

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

지표 수학을 사용하여 목표 추적 조정 정책을 생성하십시오.

지표 수학을 사용하면 여러 CloudWatch 지표를 쿼리하고 수학 식을 사용하여 이러한 지표를 기반으로 새 시계열을 만들 수 있습니다. CloudWatch 콘솔에서 결과 시계열을 시각화하고 대시보드에 추가할 수 있습니다. 지표 수학에 대한 자세한 내용은 Amazon 사용 CloudWatch 설명서의 지표 수학 사용을 참조하십시오.

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

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

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

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

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

  • CloudWatch 콘솔이나 를 사용하여 메트릭 수학 표현식이 유효한지 확인할 수 있습니다. CloudWatch GetMetricDataAPI

참고

AWS CLI AWS CloudFormation, 또는 an을 사용하는 경우에만 메트릭 수학을 사용하여 목표 추적 조정 정책을 생성할 수 SDK 있습니다. 이 기능은 콘솔에서는 아직 사용할 수 없습니다.

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

인스턴스당 Amazon SQS 대기열 백로그를 계산하려면 대기열에서 검색할 수 있는 대략적인 메시지 수를 가져와서 이 수를 Auto Scaling 그룹의 실행 용량 (상태 내 인스턴스 수) 으로 나눕니다. InService 자세한 내용은 아마존 기반 규모 조정 정책 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. 메트릭 수학 표현식을 사용자 지정된 지표 사양의 일부로 라는 JSON 파일에 저장합니다. config.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 지표 이름, 네임스페이스, 차원 및 통계를 찾는 데 도움이 되는 몇 가지 추가 리소스입니다.

  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

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

    { "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 로컬에서 최신 버전으로 업데이트했는지 확인하십시오.