- 2009-05-19 (Tue) 5:01
- Amazon EC2

Amazon EC2で、Amazon CloudWatch(インスタンス監視サービス)、Amazon Elastic Loadbalancer(ロードバランサー), Amazon AutoScaling(自動スケールアウト機構)がリリースされました。

- New Features for Amazon EC2: Elastic Load Balancing, Auto Scaling, and Amazon CloudWatch by Jeff Barr
- Automating the management of Amazon EC2 using Amazon CloudWatch, Auto Scaling and Elastic Load Balancing by Werner Vogels
各サービスへのリンクです。
CloudWatchはEC2上のインスタンスを監視する仕組みです。AutoScalingは、自動スケールアウトを実現する仕組みで、CloudWatchで得たデータを使用します。Elastic Load Balancingは、EC2上のインスタンスにパケットをロードバランシングする仕組みです。
これらのサービスを利用すると、負荷に応じて自動でマシンを起動する、”AutoScaling”という仕組みを作ることができます。
具体的には、インスタンス群をCloudWatchでリアルタイムで監視します。クラスタがある一定以上のロードになった時、AutoScalingが自動でインスタンスを起動し、LoadBalancerにインスタンスを自動追加します。これにより、唐突にトラフィックが増えた場合などでも、システムが自動的にマシンをサービスに追加し、負荷に耐えることが出来るようになります。ついにここまで来たか~という感じですね。
CloudWatchのお値段は、1インスタンス/1時間当たり$0.015です。1か月にすると$10.8です。AutoScalingは、CloudWatchを使っていると無料で使用することが出来ます。Elastic Load Balancingは、ロードバランサー1個/1時間当たり$0.025かかり、1か月にすると$18です。さらに1Gの転送当たり$0.008かかります。
仮想シナリオとして、10台のマシン+1つのロードバランサー(100Gの転送)を1か月、EC2上で運用した場合を考えてみると、以下のようになります。
- Small Instance * 10 : $720
- CloudWatch * 10 : $108
- Load Balancing * 1 : $18
- Load Balancing (Transfer 100G) : $0.8
全部込みで月に$846.8となります。もっと強力なインスタンスを使うと高くなりますし、Elastic IPを降ったり、それ経由で転送もしたりしますが、Smallインスタンスでの大体の価格感はこのぐらいになります。この金額でAutoScaling付きのクラスタが手に入るというのは凄いです。
Webアプリケーションのボトルネックの多くはRDBMSなので、手動オペレーション無しのマシンの追加は厳しいかもしれません。その辺はソフトウェア側のレイヤーで頭を使って行く必要が有りそうです。マシンを自動追加/削除出来るデータストア、それを使用するWebフレームワークが確立されれば、それが使えますね(key-val store? 自動でshardingするdbms middleware?)。
手始めにCloudWatchだけ使ってみました。現状のところはコマンドラインからしか使えなくて、モニタリング結果もコマンドラインでしか見れないので、自分でgangliaなりmuninなりを入れたほうが良いです。そのうちAWS Management Consoleで視覚的に見れるようになるのかな…?
まずインスタンスを監視対象に加えます。ec2-describe-instancesでinstanceIDを確認します。この時点では、monitoring-disabledになっています。
$ ec2-describe-instances RESERVATION r-3aee6c53 566960732458 default INSTANCE i-54f7933d ami-1109ee78 ec2-174-129-216-68.compute-1.amazonaws.com ip-10-250-18-181.ec2.internal running ec2 0 m1.small 2009-03-28T14:13:53+0000 us-east-1b aki-a71cf9ce ari-a51cf9cc monitoring-disabled
次に、ec2-monitor-instancesコマンドでインスタンスの監視を開始します。
$ ec2-monitor-instances i-54f7933d i-54f7933d monitoring-pending
しばらくしてec2-describe-instancesコマンドを打つと、monitoring-enabled状態に変わっていることが分かります。
$ ec2-describe-instances RESERVATION r-3aee6c53 566960732458 default INSTANCE i-54f7933d ami-1109ee78 ec2-174-129-216-68.compute-1.amazonaws.com ip-10-250-18-181.ec2.internal running ec2 0 m1.small 2009-03-28T14:13:53+0000 us-east-1b aki-a71cf9ce ari-a51cf9cc monitoring-enabled
結果を取得するには、mon-get-statsコマンドを使用します。
$ mon-get-stats CPUUtilization --start-time 2009-05-19T04:00:00+09:00 --end-time 2009-05-19T04:10:00+09:00 --period 60 --statistics Average --namespace AWS\/EC2 --dimensions "InstanceId=i-54f7933d" 2009-05-18 19:00:00 1.0 9.98 Percent 2009-05-18 19:01:00 1.0 2.3 Percent 2009-05-18 19:02:00 1.0 0.77 Percent 2009-05-18 19:03:00 1.0 2.3 Percent 2009-05-18 19:04:00 1.0 2.69 Percent 2009-05-18 19:05:00 1.0 9.22 Percent 2009-05-18 19:06:00 1.0 0 Percent 2009-05-18 19:07:00 1.0 0.39 Percent 2009-05-18 19:08:00 1.0 1.92 Percent 2009-05-18 19:09:00 1.0 3.4 Percent
自分で日付指定をするのが面倒です。データは2週間蓄積されるようです。CPUUtilizationのほかにも、Disk・Networkの値が取得できます。取得できる値はmon-list-metrics –headersで確認出来ます。
CloudWatchが出来るのはこのぐらいです。CloudWatchは監視用というか、AutoScaling用に使用するものという感じがしました。AutoScaling, Elastic Loadbalancingについてはまた今度。なんか作ってみないと。
Similar Posts:
- Newer: 上海より無事帰国しました
- Older: CCGRID 2009 参加中
Trackbacks (Close):1
- pingback from 5月21日 「著者座談会:「クラウド本」でこれを伝えたかった!」 | P2P today ダブルスラッシュ 09-05-21 (Thu) 1:10
-
[...] [クラウド]Amazon CloudWatch を使ってみた - moratorium [...]
