Azure Central Azure逆引きリファレンス[PR]
分かりにくいAzure BLOBの料金を事前にある程度推測する方法[PR]
新規作成時にVMサイズや価格レベルを選択できるサービスに比べて、従量課金型のBLOBストレージは実際に使ってみるまでいくらになるのか料金が分からない。実際の料金と照らし合わせながら、使い始める前にその推測値を計算する方法を紹介する。
Azureなどのクラウドプラットフォームにサービスを乗せて運用する際に、予測しづらく最も気がかりなのが「料金」ではないだろうか。もちろんある程度予測しやすいサービスもあり、例えばAzureのVirtual Machines(VM: 仮想マシン)やApp Serviceであれば、その作成時にVMサイズ(もしくは価格レベル)を選択する場面で、図1に示すように、月額の推定料金が表示されるので分かりやすい。
しかし、一部のサービスでは料金体系として従量課金が採用されており、使ってみるまでどれくらいの金額になるのかを予想しづらい。例えば、AzureのBLOBストレージは、作成時に価格レベルの選択などはないので、自ら利用料を推計しなれければならない。このため、これから使い始める人にとっては、「気付かないうちに、大金が課金されてしまうのではないか」と不安になりやすい(実際に筆者もそうだった)。
そこで本稿では、Azure BLOBの料金計算方法を、Build Insiderの実際の料金と照らし合わせながら説明する。
Build InsiderのBLOBストレージの料金例
まずは参考例として、Build Insiderにおける2016年11月2日~12月1日まで(30日間)のAzure BLOBの料金を示す(ちなみにBuild Insiderでは、スタティックな画像ファイルなどはBLOBストレージに配置しており、読者がブラウザーで記事ページを開くと、BLOBストレージからそれらが直接ダウンロードされるようになっている)。
- BLOB 料金(11月2日~12月1日): 3932円
- トランザクション数: 1601万6730件
- BLOB 容量(Capacity): 約680MB
- BLOB オブジェクト数: 約1万個
- サイト全体のページビュー数: 455,143PV
上記の「3932円」という料金の内訳が表1である。この内訳は、Azureポータルの[サブスクリプション]-[課金と使用量]-[2016/11/2 ~ 2016/12/1]を選択して、[サービスごとのコスト]ブレードの内容を転記したものだ(※ただし、名称を翻訳したたり、単位を補ったり、端数の数値は切り上げたりしている)。
課金項目名 | 使用量 | 費用 |
---|---|---|
データ転送[送信]*1 | 240GB | 3380円 |
データ転送[受信]*1 | 6GB | 0円 |
標準入出力[ブロックBLOB] | ||
├─ リスト操作 *2 | 120件 | 0円 |
├─ 書き込み操作 *2 | 21万5070件 | 1円 |
├─ 読み取り操作 *2 | 1579万8700件 | 58円 |
├─ 削除操作 *2 | 2840件 | 0円 |
└─ Geo冗長レプリケーション | 101GB | 493円 |
合計 | 3932円 |
*1 これらデータ転送の送受信は、BLOB以外のApp ServiceからのHTML(テキスト)データの送信などが含まれているので、注意してほしい。1つのHTMLファイルが約200KBであると仮定すると、87GBはHTMLファイルの送受信となり、「データ転送[送信]」の実際の値は153GB前後であると推測される。
*2 「件」と表記しているのはトランザクション数を表す。合計すると、前述の「1601万6730件」になる。
この表の内容は後述するが、BLOBストレージの料金をページビュー(PV)で割ると、1000PV当たり24円となっている。必ずしも全てのサイトで同じような金額感になるとは限らないが、Build InsiderのようなほぼスタティックなWebサイト上でBLOBストレージに配置した画像をページ内で使う場合は、目安として参考にできるだろう。
BLOBストレージの料金計算
それでは、上記の料金データと比較しつつ、料金計算する方法を示そう。Azureには、
が公式に用意されているので、これを使うのがベストだろう。
Azure料金計算ツールの使い方
料金計算ツールのページを開き、図2の手順に従い、料金計算を行う。
筆者自身もそうだったが、まずは各項目を選択して適切な値を入力するのが、これからAzureを始める人にとっては難しい。そこで参考までに上記のBuild Insiderの事例を基に、値を選択・入力してみよう。その場合、以下のように入力すればよい。
- [リージョン]: 東日本
- [種類]: ブロックBLOB
- [価格レベル]: General Purpose Storage Account(汎用ストレージアカウント)
- [データの冗長性]: GRS(Geographically Redundant Storage: Geo冗長ストレージ)
- [容量]: 680GB(※前述)
- [ストレージ トランザクション]: 160ユニット(※1ユニット=10万件、表1における「標準入出力[ブロックBLOB]」の「リスト操作」「書き込み操作」「読み取り操作」「削除操作」を合算した「1601万6730件」から算出)
各項目の選択肢の意味が分からない場合は、公式ドキュメントの「Storage の概要」を一読することをお勧めする(本稿では項目内容の説明は割愛する)。
料金計算ツールと実際の課金額の比較
計算の結果、前掲の図2に表示されているように約3388円となる。実際の3932円より少し(14%ほど)安く見積もられており、11月は30日間で31日間の月より1日分さらに安い費用だったことも考慮すると、推定料金と実際料金には少し差があるのは間違いない(※筆者はこの原因として、汎用ストレージアカウントの計算では「Geo冗長レプリケーション」のデータ分が含まれていないせいではないかと想像している。汎用ストレージアカウントを作成する場合に、計算ツールを使う場合はこの点にも注意されたい)。しかしながら、20%前後のブレを想定した大体の費用感の目安としては参考にできるのではないだろうか(※もちろん計算結果はあくまで概算であり、自己責任で判断してほしい)。
ここではBuild Insiderの実績データを基に計算してみたが、Build Insiderとほとんど同じようなストレージの使い方が想定されるのであれば、
- [容量]に関しては、配置するファイルから実数値を算出した方がよいが
- [ストレージ トランザクション]に関しては、今回のデータを応用して1PV当たり35トランザクションで計算してみる
とよいだろう。ストレージの使い方が異なる場合は、BLOBストレージからのデータ取得(トランザクション)の頻度を推計するか、上記の数値を参考基準としてトランザクション数を推測で前後させて計算してみることなども考えられるだろう。いずれにしてもトランザクション数については、実際に使ってみないと正確な数値が分からない点は依然として悩ましいが、今回公表した数値が基準値して何らかの形で応用できれば筆者としてうれしい。
BOLBストレージの料金について
本稿ではここまで、料金計算ツールによるBLOBストレージ課金の推測方法を簡単に説明した。最後に、Azure BLOBの料金体系を詳しく説明しているページを示しておこう。
Azureストレージアカウントには、クラシックな汎用ストレージアカウントと、新しいBLOBストレージアカウントの2種類が存在し、それぞれ料金計算が異なるので注意してほしい。
これから新たにBLOBストレージを作成するのであれば、当然、後者のBLOBストレージアカウントを選択した方がよい(※今後は後者に新機能が追加されていくため)。これを選択した場合、ストレージトランザクションとしてひとまとめにしていた各種操作は個別に入力するなど、入力項目が少し異なってくる。具体的には、表2のようになる。
表1の項目名 | ⇒ | 計算ツールの項目名 | 値 |
---|---|---|---|
データ転送[送信] | ⇒ | データ取得 | 240GB |
データ転送[受信] | ⇒ | データ書き込み | 6GB |
標準入出力[ブロックBLOB] | |||
├─ リスト操作 | ⇒ | PUT 操作 (Put、List、Create Container) | 21万5190件(合算) |
├─ 書き込み操作 | |||
├─ 読み取り操作 | ⇒ | その他の操作 | 1580万1540件(合算) |
├─ 削除操作 | |||
└─ Geo冗長レプリケーション | ⇒ | データ geo レプリケーション | 101GB |
※表1と同じように、上記の「データ転送[送信]」と「データ転送[受信]」にはBLOB以外も含まれているので注意。
表2に示した各項目の値を、料金計算ツールに入力してみた結果が図3だ。
※[PUT 操作 (Put、List、Create Container)]と[その他の操作]は「1万件当たり」なので、1万で割った値の「21」と「1580」を入力することに注意。
表2で示していない値については、以下のように入力すればよい。
- [リージョン]: 東日本
- [種類]: ブロックBLOB
- [価格レベル]: Blob Storage Account(BLOBストレージアカウント)
- [データの冗長性]: GRS(Geographically Redundant Storage: Geo冗長ストレージ)
- [アクセス層]: ホット
[アクセス層]は、BLOBストレージアカウントで登場した概念で、頻繁にアクセスされるデータに向いた「ホット」か、アクセス頻度は低いが保管期間が長いデータに向いた「クール」が選択できる。選択した値によって金額が変わるので注意してほしい。詳しくは、公式ドキュメントの「Azure Blob Storage: ホット ストレージ層とクール ストレージ層」を一読することをお勧めする(本稿では説明を割愛する)。
図2の汎用ストレージアカウントの計算結果が約3388円だったのに対し、図3のBLOBストレージアカウントの方は約4256円([アクセス層]がホットの場合。クールの場合は約3256円)と表示されており、Build Insiderの場合、BLOBストレージアカウントに移行すると、ホットなら少し高くなり、クールなら少し安くなることが分かる。
Build Insiderの場合、データ取得中心のサイトなので[データ取得]が多く、[データ書き込み]が少ない。BLOBストレージアカウントでは、クールの場合は[データ取得]よりも[データ書き込み]の方が安くなっているので、データ書き込み中心のサイトであればより安くなると考えられる。
■
以上、筆者がAzureを使い始める際に不安だったAzure BLOBストレージ料金の推測値を計算する方法を、実際の課金データと照らし合わせながら説明した。これがAzureを使い始めようと考える方の参考になれば幸だ。
なお、言うまでもないと思うが念のため記載しておくと、本稿の内容で計算したことによる結果に対して、筆者および本サイトは一切の責任を負わないのでご了承いただきたい。繰り返しになるが、本稿で示した料金は執筆時点の概算値であり、あくまで自己責任で判断してほしい。
※以下では、本稿の前後を合わせて5回分(第5回~第9回)のみ表示しています。
連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。
5. 設計時に使えるAzure/AWSサービス・アイコン集とダウンロード方法[PR]
クラウド上のシステムやサービスを設計する際には、視覚的に分かりやすいアイコンを使おう。アイコンセットのダウンロード方法を示し、各アイコンを用いてAzure/AWSサービスの対応一覧表をまとめる。
6. Azureアカウントを取得したら最初にやっておくべき初期設定[PR]
Azureを使い始めたら、特に重要なセキュリティ設定を初めに済ませよう! Azureアカウント保護(二段階認証)/アクセス制御(IAM)/セキュリティセンターの設定方法を説明。さらに各種アラートの作成方法や、入門者にお勧めのコンテンツも紹介する。
7. iPhone/Androidの2段階認証アプリ「Authy」で複数デバイス対応(Microsoftアカウント編)[PR]
パスワード漏えい問題が頻発する現在ではログインの2段階認証は必須だ。人気アプリ「Authy」を使って、各種スマホ&PCブラウザーなど複数デバイスで2段階認証用のトークンを取得する方法を紹介する。
8. Azure VMでLinuxインスタンスを起動したら最初にやっておくべき初期設定[PR]
Azure仮想マシンでLinuxインスタンスを立ち上げたら、SSH接続のための設定や、スワップファイルの有効化、タイムゾーンの設定、Azure CLIのインストールは必ず行いたい。その設定方法を紹介する。