Amazon EC2で遊んでみる

流行の Amazon EC2をちょっといじってみよう.

EC2はElastic Computer Cloud を指す. Elastic は弾力を持つ, という意味なので, 「弾性の計算機クラウド」ということになる. クラウドはbuzzワードなので気にしない. 要するに, 世界のどこかに, あなたの計算機をホスティングしますよ, というサービスだ. といっても本当の計算機を使うと, 管理コスト, 維持コストがかかってお話にならないので, EC2では仮想計算機を使っている. なかみはXen. その仮想計算機の制御はWeb Serviceをつかって行われる.

使い方

まず, 仮想計算機のイメージを用意する. ただしamazonがあらかじめ用意したものもあるので, それを用いても良い. イメージを指定して, EC2内に仮想計算機「インスタンス」を立ち上げる. インスタンスには事前に登録したSSHのキーが設定されるので, あとはrootでログインして好きなように利用することができる.

ただし, インスタンスを停止するとディスクイメージが消えてしまう. したがって, データは外部のストレージ(Amazon S3とか)にユーザの責任で書き出しておかなければならない.

お値段

特筆するべきはそのお値段. 1時間あたりの課金になっていて,

小さいインスタンス - 0.10 ドル/1時間
   メモリ 1.7 GB, 計算ユニット 1, ストレージ 160GB, 32bit 

大きいインスタンス - 0.40 ドル/1時間
   メモリ 7.5 GB, 計算ユニット 4, ストレージ 850GB, 64bit

特大インスタンス   - 0.80 ドル/1時間
   メモリ 15GB,   計算ユニット 8, ストレージ 1690GB, 64bit

とある意味激安. ただし計算ユニットは, 2007年のOpteronもしくは
Xeon換算で, 1.0 -1.2 GHz とかなり遅め.

注意しないといけないのは, 計算機とは別にデータ転送にも課金されること. なにかのサービスをEC2上でホスティングし, 他のユーザに使わせた場合にも課金されることになる.

EC2への転送
  1Gバイトあたり- 0.10 ドル

EC2からの転送
  1Gバイトあたり- 0.17 ドル  - 最初の10TB/月
  1Gバイトあたり- 0.13 ドル  - つぎの40TB/月
  1Gバイトあたり- 0.11 ドル  - つぎの100TB/月
  1Gバイトあたり- 0.10 ドル  - それ以降

ちなみに, このデータ転送に対する課金体系は, Amazonのストレージサービス S3 と全く同じだ. またS3とEC2の間のデータ転送には課金されない.

Availability Zone

EC2には RegionとAvailability Zoneという概念がある. Regionは地理的に隔絶された場所と言う意味で, Availability Zoneは各Region内の区画を指し, 同時にフェイルすることが無いよう分割されている. 複数の Availability Zoneに自分の計算機をホストするよう指定すれば, より頑健性が得られるわけだ.

これって本当に安いのか?

うえで「ある意味激安」と書いておいてなんだが, 本当に安いのか考えてみよう.

ばりばり計算する場合.

いまどき, 3GHz のCore2Duo, 4Gメモリで8万弱で買える. メモリが貧弱なので比較しにくいが 小さいインスタンスの8000時間分だ. 少なくとも3GHz Core2Duo は 小さいインスタンス2つ分だと考えると, 4000時間で元が取れる. 半年で元が取れる計算になる. メモリがあまり影響しないアプリであれば, 単純計算で小さいインスタンスの5倍程度の性能になるして, 1600時間. 2月強で元が取れる.

もちろん電気代やら, 冷却やら, メンテナンスのコストも考えなければならないわけだが, amazonが激安というわけではない.

Webページをホスティングする場合.

Webページをホスティングするだけならもっと遥かに安い方法がある. 比較するのもなんだが, 「ナウでヤングなレンタルサーバー ロリポップ」なら, 月額263円で200GByte までストレージが使える. もちろんできることは遥かに少ないが, 普通のWebページなら十分だろう.

EC2って, なにに使うんだろう?

EC2が有効になるのは, 計算機の必要性が時期によって大きく変動する場合だろう. 例えば, 給与計算なんかは締め日近辺にだけ発生するとか.

また, 私にはよくわからないが, 計算機保有には税法上や企業会計上のコストが結構掛かるらしい. このあたりを考えるとたとえ割高でも, 常時EC2を使うという解もあるのかもしれない.