AWS CLI를 사용하여 Application Auto Scaling의 대상 추적 조정 정책 생성 - Application Auto Scaling

AWS CLI를 사용하여 Application Auto Scaling의 대상 추적 조정 정책 생성

이 예제에서는 AWS CLI 명령을 사용하여 Amazon EC2 스팟 플릿에 대한 대상 추적 정책을 생성합니다. 다른 규모 조정 가능 대상을 지정하려면 --service-namespace에 네임스페이스, --scalable-dimension에 규모 조정 가능 차원, --resource-id에 리소스 ID를 지정합니다.

AWS CLI를 사용할 때는 프로필에 구성된 AWS 리전에서 명령이 실행된다는 점을 기억해야 합니다. 다른 리전에서 명령을 실행하려는 경우 프로필의 기본 리전을 변경하거나 명령에 --region 파라미터를 사용합니다.

1단계: 규모 조정 가능 대상 등록

아직 하지 않았다면 확장 가능 대상을 등록합니다. register-scalable-target 명령을 사용하여 대상 서비스의 특정 리소스를 확장 가능 대상으로 등록합니다. 다음 예제에서는 Application Auto Scaling으로 스팟 플릿 요청을 등록합니다. Application Auto Scaling에서는 스팟 플릿의 인스턴스 수를 최소 2개와 최대 10개 사이에서 조정할 수 있습니다. user input placeholder를 사용자의 정보로 바꿉니다.

Linux, macOS 또는 Unix

aws application-autoscaling register-scalable-target --service-namespace ec2 \ --scalable-dimension ec2:spot-fleet-request:TargetCapacity \ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --min-capacity 2 --max-capacity 10

Windows

aws application-autoscaling register-scalable-target --service-namespace ec2 ^ --scalable-dimension ec2:spot-fleet-request:TargetCapacity ^ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE ^ --min-capacity 2 --max-capacity 10
출력

이 명령이 성공하면 확장 가능 대상의 ARN이 반환됩니다. 출력의 예시는 다음과 같습니다.

{ "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123" }

2단계: 대상 추적 조정 정책 생성

대상 추적 조정 정책을 생성하려면 시작하는 데 도움이 되는 다음 예제를 사용할 수 있습니다.

대상 추적 조정 정책을 생성하려면
  1. 다음 cat 명령을 사용하여 홈 디렉터리에 config.json라는 이름의 JSON 파일에 조정 정책에 대한 목표값과 사전 정의된 지표 사양을 저장합니다. 다음은 평균 CPU 사용률을 50%로 유지하는 대상 추적 구성의 예입니다.

    $ cat ~/config.json { "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "EC2SpotFleetRequestAverageCPUUtilization" } }

    자세한 내용은 Application Auto Scaling API 참조PredefinedMetricSpecification을 참조하세요.

    또는 사용자 지정된 지표 사양을 생성하고 CloudWatch의 각 파라미터에 대한 값을 추가하여 조정을 위한 사용자 지정 지표를 사용할 수 있습니다. 다음은 지정된 지표의 평균 사용률을 100으로 유지하는 대상 추적 구성의 예입니다.

    $ cat ~/config.json { "TargetValue": 100.0, "CustomizedMetricSpecification":{ "MetricName": "MyUtilizationMetric", "Namespace": "MyNamespace", "Dimensions": [ { "Name": "MyOptionalMetricDimensionName", "Value": "MyOptionalMetricDimensionValue" } ], "Statistic": "Average", "Unit": "Percent" } }

    자세한 내용은 Application Auto Scaling API 참조CustomizedMetricSpecification을 참조하세요.

  2. 다음 put-scaling-policy 명령을 생성한 config.json 파일과 함께 사용하여 cpu50-target-tracking-scaling-policy라는 조정 정책을 생성합니다.

    Linux, macOS 또는 Unix

    aws application-autoscaling put-scaling-policy --service-namespace ec2 \ --scalable-dimension ec2:spot-fleet-request:TargetCapacity \ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --policy-name cpu50-target-tracking-scaling-policy --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration file://config.json

    Windows

    aws application-autoscaling put-scaling-policy --service-namespace ec2 ^ --scalable-dimension ec2:spot-fleet-request:TargetCapacity ^ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE ^ --policy-name cpu50-target-tracking-scaling-policy --policy-type TargetTrackingScaling ^ --target-tracking-scaling-policy-configuration file://config.json
    출력

    이 명령이 성공하면 사용자를 위해 생성된 두 CloudWatch 경보의 ARN과 이름이 반환됩니다. 출력의 예시는 다음과 같습니다.

    { "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:resource/ec2/spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE:policyName/cpu50-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ] }

3단계: 대상 추적 조정 정책 설명

다음 describe-scaling-policies 명령을 사용하여 지정된 서비스 네임스페이스에 대한 모든 조정 정책을 설명할 수 있습니다.

aws application-autoscaling describe-scaling-policies --service-namespace ec2

--query 파라미터를 사용하여 대상 추적 조정 정책으로 결과를 필터링할 수 있습니다. query의 구문에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서AWS CLI의 명령 출력 제어를 참조하세요.

Linux, macOS 또는 Unix

aws application-autoscaling describe-scaling-policies --service-namespace ec2 \ --query 'ScalingPolicies[?PolicyType==`TargetTrackingScaling`]'

Windows

aws application-autoscaling describe-scaling-policies --service-namespace ec2 ^ --query "ScalingPolicies[?PolicyType==`TargetTrackingScaling`]"
출력

출력의 예시는 다음과 같습니다.

[ { "PolicyARN": "PolicyARN", "TargetTrackingScalingPolicyConfiguration": { "PredefinedMetricSpecification": { "PredefinedMetricType": "EC2SpotFleetRequestAverageCPUUtilization" }, "TargetValue": 50.0 }, "PolicyName": "cpu50-target-tracking-scaling-policy", "ScalableDimension": "ec2:spot-fleet-request:TargetCapacity", "ServiceNamespace": "ec2", "PolicyType": "TargetTrackingScaling", "ResourceId": "spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ], "CreationTime": 1515021724.807 } ]