aws-cliを使ったAuto Scalingの薄い説明書
こんにちは。
近所の会場で開催されるHey!Say!JUMPのライブに行く女子の多さに驚いた、
ニイヌマ(twinuma)です。
さて、前回のエントリーでaws-cliのインストールと設定手順までについて書きました。
EC2 API ToolおよびPython版CLIインストール・設定手順まとめ
aws-cliが使えるようになったので、次はAutoScalingについて調べてみました。
ちなみに、"AutoScaling"とは、
定義する条件に応じて、Amazon EC2 の能力を、自動的に縮小・拡張することができます。Auto Scaling では、お客様が使用中の Amazon EC2 インスタンスの数を、需要が急上昇した時はシームレスに増やしてパフォーマンスを維持し、需要が弱まる時に自動的に減らすことにより、コストを最小化することができます。
簡単に言うと、自動でサーバを必要なときに必要なだけ増やして要らなくなったら減らすということです。
参考資料
こちら、オススメです!
以下のコマンドで使用可能な一覧は、こちらです。
aws autoscaling
上記のスライドを参考に、以下のコマンドをaws-cliで実行してみます(`・ω・´)ゞ
- 設定項目
- Launch Configuration
- Auto Scaling Group
- Scale Out/In Policy
- Scale Out/In Alarm
# Launch Configuration aws autoscaling create-launch-configuration --launch-configuration-name myLC --image-id ami-8538b384 --instance-type t1.micro --key-name awskey --security-groups ELB_EC2 # Auto Scaling Group aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo-asg --launch-configuration-name myLC --availability-zones ap-northeast-1b --min-size 2 --max-size 4 --load-balancer-names hogeELB --health-check-grace-period 30 # Scale Out Policy aws autoscaling put-scaling-policy --policy-name demo-policy --auto-scaling-group-name demo-asg --scaling-adjustment 2 --adjustment-type ChangeInCapacity # Scale In Policy aws autoscaling put-scaling-policy --policy-name demo-scalin --auto-scaling-group-name demo-asg --scaling-adjustment -2 --adjustment-type ChangeInCapacity --cooldown 600 # Scale Out/In Alarm ここ分かりませんでしたm(_ _)m
上記にも記述した通り、Scale Out/In Alarmの設定コマンドはどれを使うか分かりませんでした。
AWSドキュメントにも記載がないのでご存知の方がいらっしゃいましたらコメント下さい。
追記:2013/06/23
c9katayamaさんから、
でしたね・・・お恥ずかしい。
気を取り直しして、Scale Out/In Alarmはこちらのコマンドを実行します。
# Scale Out Alarm aws cloudwatch put-metric-alarm --period 300 --alarm-name demo-scal-out-alerm --dimensions name=AutoScalingGroupName,value=demo-asg --namespace "AWS/EC2" --metric-name CPUUtilization --evaluation-periods 1 --statistic Average --threshold 70 --comparison-operator GreaterThanThreshold --alarm-actions arn:aws:autoscaling:ap-northeast-1:XXXXXXXXXXXX:scalingPolicy:9f1c0e48-2f85-44ba-bff3-f166fcd3a124:autoScalingGroupName/demo-asg:policyName/demo-policy # Scale In Alarm aws cloudwatch put-metric-alarm --period 300 --alarm-name demo-scal-in-alerm --dimensions name=AutoScalingGroupName,value=demo-asg --namespace "AWS/EC2" --metric-name CPUUtilization --evaluation-periods 1 --statistic Average --threshold 70 --comparison-operator GreaterThanThreshold --alarm-actions arn:aws:autoscaling:ap-northeast-1:XXXXXXXXXXXX:scalingPolicy:c3fbb90a-ea54-48da-aaac-8d21dfe6404e:autoScalingGroupName/demo-asg:policyName/demo-scalin
aws-cliはJSON形式なので、[name=String,value=String]という形式でパラメータを設定します。
以下のコマンドで使用可能な一覧は、こちらです。
aws cloudwatch
今回、作成した設定を削除する場合は以下のコマンドを実行します。
尚、削除する順序が大切なので注意しましょう。
aws autoscaling update-auto-scaling-group --auto-scaling-group-name demo-asg --min-size 0 --max-size 0 aws autoscaling delete-policy --policy-name demo-policy --auto-scaling-group-name demo-asg aws autoscaling delete-policy --policy-name demo-scalin --auto-scaling-group-name demo-asg aws cloudwatch delete-alarms --alarm-names demo-scal-out-alerm aws cloudwatch delete-alarms --alarm-names demo-scal-in-alerm aws autoscaling delete-auto-scaling-group --auto-scaling-group-name demo-asg aws autoscaling delete-launch-configuration --launch-configuration-name myLC
「やってみた」系の記事になってしまいましが、
_人人人人人人人人人人人人人人_
> 難しいのでペンディング <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
ってなってしまった方が、一度見てくれればいいかなと思ってます。
最後に、Hey!Say!JUMPのLIVE会場へ向かうバスはAutoScalingしないのでバス待ち行列が凄かったです。