表●Windows Azure Platformの価格体系と他サービスの比較
広範な従量制を採る「Google App Engine」と「Amazon Web Services」を比較対象とした。
[画像のクリックで拡大表示]

 米Microsoftは2009年7月14日,11月に商用化するPaaSサービス「Windows Azure」の料金体系を一部明らかにした(関連記事)。1時間0.12ドルからの時間課金,各種割引を用意するなど,後発ならではの弾力的なモデルを提示している。先行するPaaSの「Google App Engine(GAE)」,さらにはIaaSサービス「Amazon EC2」と料金体系を比較してみた。

 今回比較した3サービスは,コンピューティング・リソースを従量課金で利用できるタイプのPaaSおよびIaaSである()。仮想マシンの時間貸しサービスが基本のEC2については,PaaSであるAzureおよびGAEとの比較を分かりやすくするため,EC2以外のPaaSサービスを加えたAmazon Web Servicesとして扱った。また欧米の各センターごとに利用料が異なるが,今回比較したのは米国版の料金である。ほかに米salesfoece.comの「Force.com」が有力なPaaSサービスとしてユーザーを増やしているが,ユーザー課金のSaaSに近い料金体系のため比較対象からは外してある(関連記事)。

 三つのサービスを額面だけで比べると,Azure(1時間当たり0.12ドル)はWindows版EC2(0.125~2ドル)より若干安価で,GAE(同0.1ドル)よりは若干高い。額面以外のコストを考えると,Azure並みの環境を構築するのにEC2では手間がかかりすぎ,GAEはPythonまたはJava(とJavaで動く言語処理系)に開発言語が限られる。GAEはまだSLAの提供準備中で,SLA前提の案件では最初に脱落しかねない。Azureは総じて直接競合する相手よりは割安感を持たせ,そうではないサービスより高価な「Windows開発者のためのPaaS」としてプレミアムを付けている印象だ。

CPUリソースの前提がはっきりしない

 条件を細かく見てみよう。

 Azureはローカルの仮想Azure環境で本番環境と同じ開発・テストが可能なので,課金されるのはほぼ本番環境に入ってからになる。GAEは開発・テストにCPUリソースを消費するが,1日6.5時間分は無料で使える。GAEのCPU時間は実際に処理を行っているときだけの課金なので,1日6.5時間無料というのはかなり使いでがある。利用リソースの上限を設定でき,予期せぬ負荷増がコスト負担に直結しないのも特徴だ。中小規模のWebサイトなら無償利用分でまかなえてしまう(関連記事)。EC2は,EC2の仮想マシン・イメージをローカルで動かせず,自動負荷分散機能をローカルでテストできないため,基本的に開発・テストで課金が発生する。

 また,今のところAzureの計算リソースの名称である「Compute」が具体的に何を指しているのかはっきりしない。GAEは1.2GHz動作のx86 CPU相当の仮想CPUの積算利用時間,EC2では1G~1.2GHz動作のx86 CPU相当の仮想CPUの「数」(実際は5種類ある仮想マシンのスペック)で料金が変動する。AzureがGAEとEC2のどちらに似た算出手法なのか,仮想CPUの性能指標は何なのかで話が違ってくる(モンテカルロ法で円周率を求めるシングル・スレッドの簡単な計算を評価版のAzure上で行ったところ,ローカルにおける1.2GHz動作 Core 2 Duo搭載機のほぼ半分の時間で終了した)。ただ,評価版Azureの仮想マシンの存在を意識させる実装を見る限り,GAEほどきめ細かな課金体系は想像しにくい。

クラウドRDB「SQL Azure」初期版は“先行投資”

 仮想ストレージおよびデータベースの比較は一筋縄ではいかない。データベースの種類が千差万別だからだ。

  Azureは,分散処理に向くKey-Valueストア(関連記事)の「Windows Azure Storage」と関係モデルを使えるRDBの「SQL Azure」の大きく2種類を用意している。前者は.NET開発者にとって初物のサービスで,後者はMicrosoft SQL Serverに似た感覚で扱える従来型からの延長にあるサービスだ。Azure Storageの料金は1Gバイト容量で月額0.15ドル。SQL Azureは月額9.99ドルで最大1GバイトまでのWeb Editionと,月額99.99ドルで最大10GバイトまでのBusiness Editionに分かれている。Web EditionとBusiness Editionの違いは当初は1データベース当たりの最大容量だけだが,第2版以降はBusiness版にストアド・プロシジャなどの付加機能が加わる予定だ。

 対するGAEは,Key-Valueストアの「Datastore」(通称BigTable)一本とシンプルである。料金は1Gバイト当たり月額0.15ドル。スケーラビリティの確保に気を使わなくて済む一方で,単純なファイル・ストレージを扱いたいときなどは外部サービスとの連携が必要になる。

  最も自由度が高いのはEC2で,従量制で使えるサービスだけでも,仮想マシン内ストレージ,仮想ハードディスク,ファイル・ストレージの「Amazon S3」,Key-Valueストア型データベースの「Amazon SimpleDB」,Microsoft SQL ServerやIBM DB2などをプリインストールした仮想マシンと,大きく5種類ある。料金は永続性や性能,APIの違いに応じて無料から3.3ドルと幅がある。このほかにも,従量制ではなく通常ライセンスが必要になるOracle Database 11gやオープンソースの定番RDBのMySQLがプリインストールされた仮想マシンが用意されているなど,選択肢の広さはIaaSならではだ。

 結局のところ,格納するデータやアプリケーションの要件に合わせて,総合コストを判断することになる。

 まずRDBを使わない場合は,無料条件がある点でGAEやAmazon SimpleDBが目を引く。ただ同等の利用状況ならAzure Storageであっても数ドル前後に収まってしまう。

 次にRDBを前提にする場合を考えてみる。SQL Azureが自動でスケールするRDBであれば最右翼と言えるのだが,分散クエリや自動パーティショニングといったクラウド向きの機能はサービス開始時には用意されない。この時点で,RAC(Real Application Clusters)非対応のEC2のOracleと大差なく,開発者にとって手慣れたRDBを組み合わせるのがベター,というあまり面白くない結論になる。

商用化でさらに分かりにくくなるAzureの料金体系

  以上,Azureの価格体系を駆け足で比較してきた。やはり後発だけに割安感は高い。11月の開発者向けイベント「Professional Developer Conference(PDC) 2009」では,従量制に加えて定額制の料金体系が明らかになる。おそらくEC2の年間契約による時間課金の値引きサービス「Reserved Instances」と同様に,月単位や年単位での契約に応じて値引きするメニューになるだろう。料金との兼ね合いで見るSLAについては,AzureとEC2のインスタンスが99.95%,SQL AzureとAmazon S3が99.9%(Amazon SimpleDBはベータ版)。ほぼ同じと言って差し支えない。

  未知数なのは,PDC 2009以降に発表予定のボリューム・ディスカウント制度だ。AzureでSaaSサービスを構築するような大口顧客に対して,これまでの Microsoft製品群と同様の大幅な値引きを提供する見込みである。価格に弾力性があればあるほど,うまく使えば支払う料金を抑えられる。さらに既に発表済みのパートナー施策「マイクロソフト パートナー ネットワーク」参加の企業への5%値引き,MSDN Premium契約者への開発環境の提供,「Development Accelerator」と呼ぶプロモーションなどでAzureデビューに花を添える。

 ただ,ここまで来ると,よほど細かく条件を詰めてからでないと,料金を試算できない。パッケージ版Windowsの料金体系も複雑怪奇だが,クラウド版でも.NET開発者は課金体系を見て試算するのが馬鹿らしくなるのではないか。