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-dimensionec2:spot-fleet-request:TargetCapacity
\ --resource-idspot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
\ --min-capacity2
--max-capacity10
Windows
aws application-autoscaling register-scalable-target --service-namespace
ec2
^ --scalable-dimensionec2:spot-fleet-request:TargetCapacity
^ --resource-idspot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
^ --min-capacity2
--max-capacity10
출력
이 명령이 성공하면 확장 가능 대상의 ARN이 반환됩니다. 출력의 예시는 다음과 같습니다.
{
"ScalableTargetARN": "arn:aws:application-autoscaling:region
:account-id
:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
}
2단계: 대상 추적 조정 정책 생성
대상 추적 조정 정책을 생성하려면 시작하는 데 도움이 되는 다음 예제를 사용할 수 있습니다.
대상 추적 조정 정책을 생성하려면
-
다음
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을 참조하세요.
-
다음 put-scaling-policy 명령을 생성한
config.json
파일과 함께 사용하여cpu50-target-tracking-scaling-policy
라는 조정 정책을 생성합니다.Linux, macOS 또는 Unix
aws application-autoscaling put-scaling-policy --service-namespace
ec2
\ --scalable-dimensionec2:spot-fleet-request:TargetCapacity
\ --resource-idspot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
\ --policy-namecpu50-target-tracking-scaling-policy
--policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configurationfile://config.json
Windows
aws application-autoscaling put-scaling-policy --service-namespace
ec2
^ --scalable-dimensionec2:spot-fleet-request:TargetCapacity
^ --resource-idspot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
^ --policy-namecpu50-target-tracking-scaling-policy
--policy-type TargetTrackingScaling ^ --target-tracking-scaling-policy-configurationfile://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
}
]