Azure VM ストレージ(Standard Storage)の課金についてまとめ
Azure VM のストレージ課金って少し特殊ですが、ちゃんとまとまったサイトがないなぁと思ったのでここに記載しておきます。(もしあったら、そっち見てください)
まず前提としてAzure VMのストレージとして使えるのは以下の4種類です。
- ローカルディスク(一時領域) Hyper-Vホストのローカルディスクです。ホストに依存するのでインスタンスサイズの変更やメンテナンス等でデータが見えなくなる可能があります。このディスクはインスタンスの種類によってサイズや性能が異なります。
- データディスク(Standard Storage) データはハードディスクベースのページBLOBに保存されます。 (※BLOBの種類についてはこちらをご確認ください)
- データディスク(Premium Storage) データはハードディスクではなくSSDに保存されます。高速な入出力が可能です。
- Azure File Storage ディスクとして追加できるわけではありませんがSMB2.1と3.0をサポートした共有ファイルサービス。ふつうにOSからマウントして使えます。
Standard Storage
Premium Storageはちょっとだけ値段がお高いので、Standard Storageで・・・という話はありますが価格の見積もり方が少し特殊です。一般的なストレージは確保した容量分課金が発生するのに対して、Standard Storageは**利用量(ページBLOBの割り当て済みサイズ)に応じた課金**になります。(このあたりはMS佐々木さんのセミナーやブログでも言及されています。)
では実際に試してみましょう。
私の環境でWindows Server 2012 R2 (クイックフォーマットしたディスク1本、フルフォーマット1本)とついでにCentOSベースのOpenLogicを立ち上げました。佐々木さん作成のツールでページBLOBの利用量を確認してみます。(※すべて初期状態です)
Windows Server
11608906752/136367309312 10.8/127 (8.5% used) vmclassicdns-vmclassic-2015-12-26.vhd (※OSディスク)
31618560/10737418752 0.0/10 (0.3% used) disk1.vhd (※クイックフォーマット)
10734236672/10737418752 10.0/10 (100.0% used) disk2.vhd (※フルフォーマット)
OpenLogic
2931819008/32212255232 2.7/30 (9.1% used) cent-classicdns-cent-classic-2015-12-28.vhd(※OSディスク)
このような結果でした。
OSディスク自体が確保した容量に対する利用量が9%程度と、かなり安く使える感覚です。また、節約のため、ちょこちょこディスクを追加していくのではなく、クイックフォーマットで大きめの容量を確保して運用することも可能だと思います。ストレージアカウント単位であればAzureの管理サービスから容量を監視してアラートをあげることもできます。
あとバックアップに関してですが例えばBLOBのスナップショットとAzure Backupを利用する方法があります。(他にもあるので例えばにしてます)
BLOBのスナップショット
詳細はこちらに記載されています。Premium StorageとStandard Storage両方で使えるスナップショット機能で、BLOBストレージの料金が発生します。
Premiumには次の制限事項があります。
- 単一の BLOB のスナップショットの数は 100 に制限されています。スナップショットは最大で 10 分間隔で取得できます。
- Premium Storage アカウントあたりのスナップショットの最大容量は 10 TB (テラバイト) です。
ちなみにスナップショットをサクッと試せるストアアプリが公開されています。その名もAzure Blob Explorer。
ただ、スナップショットをとった際も、ディスクと同様に確保される容量だけが表示され、実際の利用量、料金の計算ができません。
また、スナップショットは
https://hogehoge.blob.core.windows.net/vhds/vmclassicdns-vmclassic-2015-12-26.vhd?snapshot=2015-12-28T07:16:01.0084652Z
とうかたちで、通常のBLOBと異なりベースになるデータ(ここではvhd)のURLにタイムスタンプを追加するかたちで作成、管理されます。ポータルにも表示されません。
そこでアカウント、コンテナ単位でスナップショット込みのBLOBストレージの利用量を計算するツールが提供されているので、これを使おうと思ったら・・・・
Get Billable Size of Windows Azure Blobs (w/Snapshots) in a Container or Account
古い!ですがご安心を。既にアップデートしている人がいました。
https://gist.github.com/sjkp/f7c708ab9166ad4846a3
Storageアカウントを指定してコマンドを実行すると
CalculatedBlobCost.ps1 -StorageAccountName "hogehoge"
詳細: Container 'vhds' with 12 blobs has a size of 90621.57MB.
Total size calculated for 2 containers is 88.50GB
Storageアカウント全体で88.50GBという合計の利用量が表示されました。ここから実際のコストを算出できますね。ちなみにコマンドの実行完了後にブラウザが自動的に立ち上がって料金計算もしてくれる親切仕様になっています。では、10GBフルフォーマットしたDisk2のスナップショットをとると、どのようにかわるでしょうか?
実行した結果がこちらです。そのまま10GB分増えていますね。
詳細: Container 'vhds' with 13 blobs has a size of 100858.74MB.
Total size calculated for 2 containers is 98.49GB.
VMが使うページBLOBでは(利用している容量を)フルでバックアップをとるかたちになるようです。2回スナップショットをとるとさらに10GB増えます。なお、クイックフォーマットされたDisk1のスナップショットをとると0.02GBほど増えました。
「スナップショットの課金方法について」にも課金方法が記載されているので参考にしてください。ページではなくブロックBLOBはシナリオ別に課金方法が細かくのっています。
Azure Backup
また、バックアップという観点ではAzure Backupが便利です。こいつは「アプリケーションレベルで整合性を維持しながらオンラインバックアップ」がとれるのが特徴です。ただし、Windowsの場合だけで、Linuxは「ファイルシステムレベルでの整合性が確保される」となります。
また現時点(2015/12/28)では、制限事項として以下の2つがあります。(なる早で対応する方針)
- IaaS V2で利用できない。
- Premium Storageでは利用できない。
※Windows に AgentをインストールするタイプのものならOK
さてさて、私は一足早く最終出社日です。本年はとってもお世話になりました。来年もまたよろしくお願いいたします。