課金は分単位、シャットダウンすれば無課金。Azure VM がさらに倹約家に。

アメリカで Tech Ed が始まったもんだからもうお祭りですよ!Windows 8.1 に Windows Server 2012 R2 に Visual Studio 2013 でしょ…

当然我らが Windows Azure にも新しいお知らせがいろいろあります。

Faster development, global scale, unmatched economics… Windows Azure delivers.

Windows Azure: Announcing New Dev/Test Offering, BizTalk Services, SSL Support with Web Sites, AD Improvements, Per Minute Billing

この中で、Windows Azure 仮想マシンに関するポイントを二つお伝えします。

課金は分単位

今まで、Windows Azure のクラウドサービス (PaaS) や仮想マシン (IaaS) の課金は「1 時間単位、端数は切り上げ」でした。5 分だけ使っても 1 時間分課金されたわけです。

今後は、これが「1 分単位」となります。無駄が減りますね。さらに!

シャットダウンすれば無課金

はい。お待たせしました。今までは、動いていようといまいと、とにかく Azure の Hyper-V 上に仮想マシンが存在する限り、それに対する課金が発生していたわけですが、今後は

シャットダウンされた VM は無課金

シャットダウンされた VM は無課金

シャットダウンされた VM は無課金

となります。BLOB ストレージの冗長性並に 3 回書きました。

シャットダウンされ無課金状態になった仮想マシンは、「停止済み (Deallocated)」という状態になります。(下図参照)

image

“Deallocated” というのは、単に仮想マシンをシャットダウンしただけじゃなくて、Hyper-V 上から消え去って場所取らなくなったんだよーという感じがしますよね。それは課金も止まろうというものです。

アレはどうなる?

さて、賢明なる読者諸兄はすでにお気づきかもしれませんが、仮想マシンを跡形もなく消してしまうこの状態。副作用があります。
まずは以下の図をご覧いただきたい。

image

Windows Azure の仮想マシンは、「ホステッドサービス」に対して「デプロイメント」を配置するという形で存在しています。

  • 「ホステッドサービス」を作成することで FQDN が予約され、
  • その中に「デプロイメント」を配置することで グローバル IP アドレスが確保されます。

ということはですよ、

「VM を Deallocate するってことは、デプロイメントを削除するってことで、グローバル IP アドレスも解放されちゃうんじゃないの?」

はい。これは少なくとも現時点では正しいと言わざるを得ません。

ホステッドサービス内の最後の VM をシャットダウンしようとすると、こんなメッセージが表示されます。image

それは困る!

ですよね。Azure 管理ポータルからシャットダウンする場合、この「デプロイメントを削除する」形でのシャットダウンしか選べないのですが、 Windows Azure PowerShell の Stop-AzureVM に –StayProvisioned オプションを指定することで、「デプロイメントは保持したまま、仮想マシンをシャットダウンする」という以前と同じタイプのシャットダウンが可能です。
※ ただ、この場合以前と同様に課金が続いてしまいます。

なお、 -StayProvisioned オプションは Windows Azure PowerShell のバージョン0.6.15 (2013/06/03 リリース)からの新しいオプションなので、ぜひアップデートをお願いします。Web PI 使うと楽ですよ

マルチインスタンスの場合は?

Windows Azure 仮想マシンでは「1 ホステッドサービス内に複数の VM を配置する」という構成が取れます。こんな風に。

image

この場合、そのうち 1 部の仮想マシンをシャットダウンするとどうなると思いますか?

  • デプロイメントはしっかり残っているわけだから、シャットダウンした VM の分まで課金が続く?
  • シャットダウンした VM だけちゃんと Deallocate されて課金が止まる?

これは幸いにして後者です。こうなります↓

image

Deallocated になった cn03 はもう課金されていません。そして、この場合デプロイメントは残っているわけなので、グローバル IP アドレスもそのまま保持されています。

ということは、IP アドレスを保持する必要がある場合は、「ホステッドサービス内に XS サイズの VM を一つだけ残しておく」ことで最小限の課金で実現できます。(スマートとは言い難い方法ですが…)

そんなわけで、これからは安心して A6 や A7 のインスタンスを作ってジャンジャン使ってくださいね!へばな。

__END__