仮想マシンを1時間0.085ドルからの従量課金で利用できるパブリッククラウドサービス「Amazon EC2」。機能と規模で他の追随を許さない最大手だ。本特集では、そのサービス仕様と実際の処理性能を、全5回にわたり検証していく。第1回では、仮想マシンや仮想ストレージといった各種リソースの品揃えとその“売り方”を解説する。

最大で8コア/68.4GBメモリーの仮想マシンを用意

 EC2では、仮想マシンと仮想ストレージをコンピューティングリソースとして用意している。最大の強みは、規模を生かした幅広いリソース群にある。

 2006年8月のサービス開始当初は、仮想CPUコアが1、メモリーが1.7Gバイトの「Small」仕様のみだったが、2007年10月に「Large」と「Extra Large」の2スペックを追加。以降、CPU性能を重視した「High-CPU」シリーズ。メモリー容量を重視した「High-Memory」シリーズといった新仕様を加え、2010年5月時点では8種類の仮想マシンを揃えている。最上位の「High-Memory Quadruple Extra Large」では、仮想CPUコアの数は8、メモリー容量は68.4Gバイトに達する(表1)。

表1●仮想マシンの時間貸しサービス「Amazon EC2」の仮想マシン仕様と従量制の時間課金
欧州とシンガポールは、Linux/UNIX時が米西海岸と同額、Windows時が米東海岸と同額。このほか付加サービスとして「Amazon CloudWatch」によるCPU使用率などの監視機能(1時間当たり0.015ドル)を仮想マシンごとに追加できる。
  米東海岸 米西海岸
名称 主な仕様 Linux/UNIX Windows Linux/UNIX Windows
32ビット
Small 1ECU×1、1.7GBメモリー、160GBストレージ 0.085ドル/時 0.12ドル/時 0.095ドル/時 0.13ドル/時
High-CPU Medium 2.5ECU×2、1.7GBメモリー、350GBストレージ 0.17ドル/時 0.29ドル/時 0.19ドル/時 0.31ドル/時
64ビット
Large 2ECU×2、7.5GBメモリー、850GBストレージ 0.34ドル/時 0.48ドル/時 0.38ドル/時 0.52ドル/時
High-Memory Extra Large 3.25ECU×2、17.1GBメモリー、420GBストレージ 0.50ドル/時 0.62ドル/時 0.57ドル/時 0.69ドル/時
Extra Large 2ECU×4、15GBメモリー、1690GBストレージ 0.68ドル/時 0.96ドル/時 0.76ドル/時 1.04ドル/時
High-CPU Extra Large 2.5ECU×8、7GBメモリー、1690GBストレージ 0.68ドル/時 1.16ドル/時 0.76ドル/時 1.24ドル/時
High-Memory Double Extra Large 3.25ECU×4、34.2GBメモリー、850GBストレージ 1.20ドル/時 1.44ドル/時 1.34ドル/時 1.58ドル/時
High-Memory Quadruple Extra Large 3.25ECU×8、68.4GBメモリー、1690GBストレージ 2.40ドル/時 2.88ドル/時 2.68ドル/時 3.16ドル/時

 仮想マシンを生成するデータセンターは、米国の東海岸または西海岸、欧州、およびシンガポールのいずれかの地域を指定可能だ。日本のユーザーであれば、EC2上で構築するシステムの特性や国内からの距離などを指標に、利用するデータセンターを決めることになる。

 EC2ではCPUの性能を示す指標として、「ECU」という単位を用いている。「2007年当時の1.0G~1.2GHz動作のAMD OpteronまたはIntel Xeon相当」というもので、1ECUがおおよそ1GHz動作のCPU性能に当たる。メモリー仕様は、そのまま額面通りの容量である。

 不確定な要素として覚えておきたいのは、仮想マシンがハイパーバイザに対して発行するI/Oリクエストの優先度が異なることだ。SmallとHigh-Memory Extra Large、High-CPU Mediumの各仕様では、I/O性能(I/O Performance)を「Moderate」と明示している。物理サーバーを共有する仮想マシンのリソース調停において、この3者以外の仮想マシンより優先度が低くなる。事実、運用監視ソフトなどでI/Oを監視していると、不自然に待ち時間が増える時がある。不確定要素を避けたいのであれば、I/O Performanceの項目が「High」の仮想マシン仕様を選ぶのが得策だ。

最上位の仮想マシンは起動に失敗するセンターも

 Amazon EC2のサービス仕様を一見しただけでは分かりにくいが、実際に利用するにあたっては考慮しておくべき要素がほかにもある。稼働開始時期によってデータセンターで利用できる実リソースの仕様が異なる、仮想マシンの仕様が32ビットと64ビットに分かれている、といった制約だ。

 仕様の違いは、必要なスペックの仮想マシンが所望のデータセンターで起動できない可能性があることを意味する。EC2では、米国2、欧州1、アジア1の計4地域でサービスを提供している。それぞれの地域に複数のデータセンターがあり、米国東海岸から順次センターを増やしている。データセンターの拡充と並行して仮想マシンのスペックも拡充してきたことから、スペックの高い仮想マシンを起動できるのは比較的新しいセンターに限られるのだ。

 最上位のHigh-Memory Quadruple Extra Largeは、CPUコアが8、メモリーが68.4Gバイトと、安価なPCサーバーならば物理リソースをほぼ占有するほどのスペックだ。High-Memory Quadruple Extra Largeは、起動に失敗することが少なくない。例えば、EC2初期のセンターである「us-east-1a」や「us-east-1b」での起動を指定すると、エラーメッセージが出て起動しない(画面1)。

画面1●High-Memory Quadruple Extra Large起動の失敗例
画面1●High-Memory Quadruple Extra Large起動の失敗例
2006年から2007年にかけて設置したEC2センターでは、最上位スペックの仮想マシンリソースを確保できない。
[画像のクリックで拡大表示]

 CPUの種類を確認してみると、Xeon X5550搭載機があるセンターでなければ、High-Memory Quadruple Extra Largeは起動できないようだ。EC2の歴史を振り返ると、2006年からあるEC2の初期センターはOpteronとXeonが混在、現在はXeon搭載機が中心と、その時々で価格性能比が高いPCサーバーを調達してきた。また、新規センターの設置に比べ、既存センターにおける性能向上を目的とした設備更新の優先度は低いと見られる。

 32ビット仮想マシンと64ビット仮想マシンの違いは、仮想マシンの仕様に明記してある。ただ32ビット仕様のSmallとHigh-CPU Mediumは、32ビット仕様の仮想マシンイメージしか利用できない。このため「通常時は32ビットでメモリーが1.7GバイトのHigh-CPU Mediumで事足りるが、負荷の高い時間帯はメモリーが7.5GバイトのLargeが必要になる」というケースでは、32ビットと64ビットの仮想マシンイメージをそれぞれメンテナンスする必要がある。32ビット仮想マシンを複数起動して負荷分散(スケールアウト)する形態が向くシステムでなければ、EC2における32ビットと64ビットの壁は制約となる。