VPC内でのPublicIP自動割り当てをAuto Scalingから使う
こんにちは@oko_changです。
少し前に自分で作成したVPC内にEC2インスタンスを起動する時に、PublicIPを自動で割り当て出来るようになりました。
前回のアップデートでは、Auto Scalingで使用する事は出来ませんでしたが、今回アップデートされた内容でAuto Scalingにも対応されたようです。
というわけでちょっと動作確認してみました。
環境
$ as-version Amazon AutoScaling CLI version 1.0.61.3 (API 2011-01-01)
手順
public IP address associationに対応したAuto Scaling Command Line Toolをダウンロードしてセットアップします。
セットアップ方法は以前まとめているエントリが参考になると思います。
$ cd ~/src/ $ unzip AutoScaling-2011-01-01.zip $ mv ./AutoScaling-1.0.61.3 ~/bin/ $ cd ~ $ ln -s /Users/yanase/bin/AutoScaling-1.0.61.3 ./bin/AutoScaling
Launch Configurationを作成するときに以下のようにassociate-public-ip-addressオプションをtrueにするだけなので簡単です。
※以下の例では起動するインスタンスにスポットインスタンスを使っています。
$ as-create-launch-config okochang-lc \ --image-id ami-0756c506 \ --instance-type m1.small \ --key okochang-key \ --group sg-b72d31db \ --spot-price 0.020 \ --associate-public-ip-address true
あとはいつも通りの手順でAuto Scaling Groupを作ります。
$ as-create-auto-scaling-group okochang-asg \ --launch-configuration okochang-lc \ --vpc-zone-identifier subnet-04c5a56d,subnet-b69af6df \ --min-size 2 \ --max-size 4 \ --grace-period 300 \ --default-cooldown 600 \ --load-balancers okochang-lb \ --health-check-type ELB
スケールアウトのポリシーとアラームを作ります。
$ as-put-scaling-policy okochang-scaleout-policy \ --auto-scaling-group okochang-asg \ --type ChangeInCapacity \ --adjustment=2 \ --cooldown 600 $ mon-put-metric-alarm okochang-scaleout-alarm \ --period 300 \ --dimensions "AutoScalingGroupName=okochang-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:111150034499:scalingPolicy:xxxxxxxx-ba15-4652-83eb-6caa1d31f21f:autoScalingGroupName/okochang-asg:policyName/okochang-scaleout-policy
スケールインのポリシーとアラームを作ります。
$ as-put-scaling-policy okochang-scalein-policy \ --auto-scaling-group okochang-asg \ --type ChangeInCapacity \ --adjustment=-2 \ --cooldown 600 $ mon-put-metric-alarm okochang-scalein-alarm \ --period 300 \ --dimensions "AutoScalingGroupName=okochang-asg" \ --namespace "AWS/EC2" \ --metric-name CPUUtilization \ --evaluation-periods 1 \ --statistic Average \ --threshold 30 \ --comparison-operator GreaterThanThreshold \ --alarm-actions arn:aws:autoscaling:ap-northeast-1:111150034499:scalingPolicy:yyyyyyyy-1d8b-4aae-82c9-62cb1a6006b2:autoScalingGroupName/okochang-asg:policyName/okochang-scalein-policy
インスタンス起動後、きちんとPublicIPが割り当てられているか確認しておきます。
$ as-describe-auto-scaling-instances INSTANCE i-2985212c okochang-asg ap-northeast-1b InService HEALTHY okochang-lc INSTANCE i-3f6bad3a okochang-asg ap-northeast-1c InService HEALTHY okochang-lc $ ec2-describe-instances i-2985212c RESERVATION r-0931300c 975450034499 INSTANCE i-2985212c ami-0756c506 running okochang-key 0 m1.small 2013-09-23T01:57:03+0000 ap-northeast-1b aki-44992845 monitoring-enabled 54.238.138.167 10.0.3.6 vpc-0fc5a566 subnet-b69af6df ebs spot sir-e407b05b paravirtual xen 78980db0-8331-4748-a78d-8d0b860dd01a sg-b72d31db default false BLOCKDEVICE /dev/sda1 vol-cb09e09d 2013-09-23T01:57:07.000Z true NIC eni-8ca4e5e4 subnet-b69af6df vpc-0fc5a566 975450034499 in-use 10.0.3.6 true NICATTACHMENT eni-attach-ea5558ef 0 attached 2013-09-23T10:57:03+0900 true NICASSOCIATION 54.238.138.167 amazon 10.0.3.6 GROUP sg-b72d31db okochang-sg PRIVATEIPADDRESS 10.0.3.6 TAG instance i-2985212c aws:autoscaling:groupName okochang-asg $ ec2-describe-instances i-3f6bad3a RESERVATION r-4aa78b4f 975450034499 INSTANCE i-3f6bad3a ami-0756c506 running okochang-key 0 m1.small 2013-09-23T01:57:03+0000 ap-northeast-1c aki-44992845 monitoring-enabled 54.238.137.225 10.0.1.9 vpc-0fc5a566 subnet-04c5a56d ebs spot sir-d7b8225c paravirtual xen ba4ed411-6d1c-44f1-8bbe-006e22a8eb89 sg-b72d31db default false BLOCKDEVICE /dev/sda1 vol-dc6bba8a 2013-09-23T01:57:07.000Z true NIC eni-8da4e5e5 subnet-04c5a56d vpc-0fc5a566 975450034499 in-use 10.0.1.9 true NICATTACHMENT eni-attach-6fc9ad6a 0 attached 2013-09-23T10:57:03+0900 true NICASSOCIATION 54.238.137.225 amazon 10.0.1.9 GROUP sg-b72d31db okochang-sg PRIVATEIPADDRESS 10.0.1.9 TAG instance i-3f6bad3a aws:autoscaling:groupName okochang-asg
どちらのインスタンスもしっかり割り当てられています。
まとめ
オプションがひとつ増えるだけなので、簡単に使うことが出来ますね。
参考
- http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/US_BasicSetup.html
- http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_CreateLaunchConfiguration.html
Amazon Web Services ガイドブック クラウドでWebサービスを作ろう!
- 作者: Jeff Barr,玉川憲,株式会社クイープ
- 出版社/メーカー: インプレスジャパン
- 発売日: 2011/02/18
- メディア: 単行本(ソフトカバー)
- 購入: 10人 クリック: 240回
- この商品を含むブログ (17件) を見る