Windows Azure の料金系の誤解

田舎のクラウド勉強会、前回はクラウドの5・4・3みたいな話がメインでしたが、*1 *2 *3今回は Windows Azure について。
最初は、上記の5・4・3に関する Windows Azure の対応状況などの話だったのですが、事前に参加者の1人から「Azure の料金で、コンピュート時間の計算がよくわからない」という話を受けていました。そこで、

WebRole と WorkerRole を1づつ作成して、Mサイズで1インスタンスと設定して30日間デプロイすると、コンピュート時間は?

という話を振ってみました。答えは、

2(インスタンス数) × 2(インスタンスサイズ) × 30×24(時間) = 2880時間(従量プランで 32,175.36 円)

となるのですが、6人全員がこれを正しく回答できませんでした。事前に話したときも「そんなことが書いてある資料はどこにあるんだ?」という話になって困りました。Microsoft のどこを探しても、この計算式が一見して判断できる資料がないんですね。そこで、間違えた人たちの誤解をもとに、何がわかりにくいのかを分析したかんじでは、

この2点が理解しにくい部分であったというかんじでした。
一番多く誤解があった点は、「1つのインスタンスに複数のロールを配置できる」という IaaS 的な挙動を期待するものです。これは、Windows Azure について調べ始めた当初に私自身も疑問に思ったことでもあります。技術的な文章を読んでいくと、各ロールが独立した VM の上に展開されるとか、ロールインスタンスという表現が書いてある記事はいくつかあるのですが、わざわざ VM とか ロールインスタンス みたいな違う言葉を使っていることで、コンピュートインスタンスとの関連性が曖昧になり、課金と一直線でつながりません。(特に、料金関連の資料では)最終的に1つのロールが1つのインスタンスを占有するということをきちんと明記している文章って簡単にはみつからないものです。また、Full IIS サポートによって1つの WebRole に複数の Web Site を展開したり、リモートデスクトップ接続が可能になった点も、IaaS 的な挙動を期待する誤解をうけやすい部分の1つではないかと思えます。*4
もう1つの誤解がサービスとデプロイの関係で、「WebRole と WorkerRole を個別にデプロイした場合は2倍のコンピュート時間になる」という回答でした。こちらは、Azure Portal の画面構成を見て誤解しているようなかんじですが、スケーリング単位がパッケージになってしまっているという誤解です。どちらにしても、1インスタンスに複数のロールが配置できるという誤解にはかわりがないようです。どちらにしても、だれもがクラウド環境への対応を考えていて、無い時間を使って各種資料を読み込んできているにも関わらず、この実情はなかなか厳しいものがあると思いました。
というわけで、てきとーに使った図。間違ってたらごめんなさい。この後は、フォールトドメインの話や、開発した Windows Azure 対応パッケージを製品として販売する場合の cscfg の話などを少ししましたが、多くの人が興味をもっているオンプレミス連携については時間も語り手もいなかったという。

*1:5つの柱:オンデマンドなセルフサービス、ネットワーク アクセシビリティ、マルチ テナント モデル、高速で弾力性のあるスケーラビリティ、計測的透過性

*2:4つの形態:プライベート、コミュニティ、パブリック、ハイブリッド

*3:3つの種類:SaaS、PaaS、IaaS

*4:VMRole については、また別の話が必要かもしれませんが、インスタンスの構成方法が違うだけだと捉えれば WebRole/WorkerRole と同じ考え方でいけるかと