前提条件
AutoScalingへの権限
- AutoScalingに対してフル権限があること。
EC2への権限
- EC2に対してフル権限があること。
AWS CLIのバージョン
-
以下のバージョンで動作確認済
- AWS CLI 1.7.42
aws --version
結果(例):
aws-cli/1.7.42 Python/2.7.5 Darwin/13.4.0
- 準備
=======
0.1. リージョンの決定
変数の設定:
AWS_DEFAULT_REGION='ap-northeast-1'
0.2. 変数の確認
変数の確認:
aws configure list
結果(例):
Name Value Type Location
---- ----- ---- --------
profile ec2as_full-prjZ-mbp13 env AWS_DEFAULT_PROFILE
access_key ****************LOAQ shared-credentials-file
secret_key ****************I1O1 shared-credentials-file
region ap-northeast-1 env AWS_DEFAULT_REGION
- 情報確認
===========================
1.0. アカウント上限
aws autoscaling describe-account-limits
結果
{
"MaxNumberOfLaunchConfigurations": 100,
"MaxNumberOfAutoScalingGroups": 20
}
1.1. 通知関連
aws autoscaling describe-auto-scaling-notification-types
結果
{
"AutoScalingNotificationTypes": [
"autoscaling:EC2_INSTANCE_LAUNCH",
"autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
"autoscaling:EC2_INSTANCE_TERMINATE",
"autoscaling:EC2_INSTANCE_TERMINATE_ERROR",
"autoscaling:TEST_NOTIFICATION"
]
}
1.2. ライフサイクルフック関連
aws autoscaling describe-lifecycle-hook-types
結果
{
"LifecycleHookTypes": [
"autoscaling:EC2_INSTANCE_LAUNCHING",
"autoscaling:EC2_INSTANCE_TERMINATING"
]
}
1.3. スケーリングポリシー関連
aws autoscaling describe-adjustment-types
結果(例)
{
"AdjustmentTypes": [
{
"AdjustmentType": "ChangeInCapacity"
},
{
"AdjustmentType": "ExactCapacity"
},
{
"AdjustmentType": "PercentChangeInCapacity"
}
]
}
1.4. スケーリングプロセス関連
aws autoscaling describe-scaling-process-types
結果(例)
{
"Processes": [
{
"ProcessName": "AZRebalance"
},
{
"ProcessName": "AddToLoadBalancer"
},
{
"ProcessName": "AlarmNotification"
},
{
"ProcessName": "HealthCheck"
},
{
"ProcessName": "Launch"
},
{
"ProcessName": "ReplaceUnhealthy"
},
{
"ProcessName": "ScheduledActions"
},
{
"ProcessName": "Terminate"
}
]
}
1.5. メトリックコレクション関連
aws autoscaling describe-metric-collection-types
結果(例)
{
"Metrics": [
{
"Metric": "GroupMinSize"
},
{
"Metric": "GroupMaxSize"
},
{
"Metric": "GroupDesiredCapacity"
},
{
"Metric": "GroupInServiceInstances"
},
{
"Metric": "GroupPendingInstances"
},
{
"Metric": "GroupTerminatingInstances"
},
{
"Metric": "GroupStandbyInstances"
},
{
"Metric": "GroupTotalInstances"
}
],
"Granularities": [
{
"Granularity": "1Minute"
}
]
}