AWSのAuto ScalingとElastic Load Balancingの設定してみた
AWS超初心者ですが、Auto ScalingとElastic Load Balancingの設定してみました。
http://aws.amazon.com/jp/documentation/
公式マニュアルで、いろんなところにeasyだのeaseだの書いているけど、普通にこういうような設定をやった事ない俺にとっては十分に難しかったです。
一応本買ったけど
Amazon Web Services ガイドブックってのを買ったけど、
なんか自分にとっては余計な説明が多すぎ&欲しい情報がない。あんまり役に立たなかったです。
あと、Auto ScalingとElastic Load Balancingの設定については、本の通りに進めていくとコマンドがDEPRECATEDになっていたりして、
公式マニュアルとか --help とかみながらやった方がよいかもです。その方がわかりやすいし。
で、
いまさら設定手順とかをブログに書いても特に需要も無いと思う&面倒くさいので書かない。
ハマったところ、わかりにくかったところをテキトーに書きます。
Auto Scalingの設定はClodWatchのWebUIから出来そうで出来ない?
なんか出来そう感はあるんだけど、よくわからず。結局時間の無駄だった。
(できるのはアラートメールの設定だけ?)
一回コマンドラインから作成するとしきい値の変更等はWebUIからもできる。
as-create-or-update-triggerは使えない
Amazon Web Services ガイドブックに載っているコマンドですけどDEPRECATEDです。
ここは(というか最初から)
http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/
User Scenarios > Auto Scaling with Alarms and Load Balancing > Command Line Tools Example
あたりをみながらやるのが良いかと。
オプションについては --helpで確認したりGoogle検索したり
公式ドキュメントのautoscalingのリージョン確認コマンドの説明が間違っている
この間違いはここでは気がつかず、あとの方でエラーになってハマるタイプの嫌な間違いです
http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/index.html?UsingTheCommandLineTools.html
How to Change the Regionのところです。
自分の場合は東京リージョンなので
autoscaling.ap-northeast-1.amazon.com が正しいのですが、
ここの説明どおりのコマンド「ec2-describe-regions」で確認すると、
ec2.ap-northeast-1.amazon.com
が表示されます。
AWS初心者&正直者の僕は、何の疑いもなくこの値をそのまま設定して先に進んで、結構な時間を無駄にしました。
さらに、この間違いによるエラーメッセージが超意味不明
as-put-scaling-policy: Malformed input-The requested version (2010-08-01) of service AmazonEC2 does not exist To specify a different Region
なんのこっちゃ。
これもエラーメッセージが意味不明
http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/
User Scenarios > Auto Scaling with Alarms and Load Balancing > Command Line Tools Example
の4.のところで、
mon-put-metric-alarm: Malformed input-Invalid region ap-northeast-1 specified. Only us-east-1 is supported.
が出て、AWS初心者の僕は、「もしかして、ここまでやらせてAutoScalingは東京リージョンはサポートしてないの?もっと早く言えよバカ」みたいなバカみたいな事を思ってしまいました。
ここは、コマンドオプションに「--region ap-northeast-1」 をつければ通ります。
なんとかAuto ScalingとElastic Load Balancingの設定できたけど、Elastic IPsのところに出てこない…
ちょい戸惑ったけど、Load Balancersの方に書いてましたね。
Note: Because the set of IP addresses associated with a LoadBalancer can change over time, you should never create an "A" record with any specific IP address. If you want to use a friendly DNS name for your LoadBalancer instead of the name generated by the Elastic Load Balancing service, you should create a CNAME record for the LoadBalancer DNS name. For more information about CNAME records, see the CNAME Record Wikipedia article.
って事でCNAMEレコードに登録したら無事つながりました。
ということで
すげぇ大変でした。
まぁ一回やっとけば次からはすんなりできるんじゃないかと。