はじめに
2020/08/19 (米国時間)にて、Azure Cosmos DB チームより Azure Cosmos DB サーバレス がパプリックプレビュー
に入ったとの発表がありました。今回はその内容を確認していきます。
ブログ情報
概説
今回のサーバレスは、MongoDB、Gremlin (グラフ)、(Azure) テーブル、および Cassandra API をサポートするCore (SQL) API がプレビューで使えるようになったよ、というものです。サーバレスについては、今年の5月に開催された MS Build 2020 で発表があったものです。詳細はこちらをみてください。
- 2020年から始める Azure Cosmos DB 入門 with Azure Synapse Link
- 2020年から始める Azure Cosmos DB 入門 with Azure Synapse Link recap
Azure ポータルから Azure Cosmos DB アカウント (SQL API) を作成する際に、Capacity mode
(キャパシティ モード)を選択できるようになりました。こちらで Serverless (preview) を選択すると、サーバレスモードの Azure Cosmos DB コンテナーを作成できるようになります。
すでにプロビジョニングされたスループットで (400 RU/s、5 GB まで無料になる) Free Tier が利用できている状況なので、こちらとの比較は必要になりますね。
プロビジョニングスループットとサーバレスの違い
サーバーレスモードで作成したコンテナーは、プロビジョニングスループット モードで作成されたコンテナーと同じ機能を有しているということです。
プロビジョニングされたスループット | サーバレス | |
---|---|---|
アカウントあたりの Azure リージョンの最大数 | 無制限 | 1つのみ |
コンテナーあたりの最大スループットのバースト性 | 無制限 | 5,000 RU/s |
コンテナーあたりの最大ストレージ | 無制限 | 50 GB |
つまり、Azure Cosmos DB サーバレスは、
- Free Tier のような
1サブスクリプション1アカウント
のような制限はなく、Azure Cosmos DB アカウント単位で作成可能 - 1コンテナーあたりで設定できるスループット(RU/s)は 5000 RU/s でそれ以降は Http 429 が発生する
- 1コンテナーあたりで使用できるデータの(ストレージ)容量は、50 GB まで
といった感じのようです。なお、この内容はプレビューのため、変わる可能性があるとのこと。変わるためには、Azure Cosmos DB チームへのフィードバックをお願い、とのことです。(メール泣)
ユースケース
以下のユースケースにおいて Azure Cosmos DB サーバレスを使用してほしいとのこと。
- 開発
- テスト
- プロトタイピング
- 概念実証
- トラフィックがまばらな非クリティカルなアプリケーション
ブログでは、500 RU/s、月間計算だと 20,000,000 RU/month のコンテナーの例が挙げられています。まあ、一定以上使えばプロビジョニングされたスループットの方が安上がりになるので、この計算が重要になってきそうです。
なお、ブログでの計算はあくまで RU に関する話のみであり、ストレージの課金については触れられていない点、注意です。(プロビジョニングされたスループットで作成してもこの話は同じなのですが)
(not accounting for the storage cost, which is the same between the 2 modes)
環境作成方法
ここはブログをみてあげてください。まあ、ざっくり言うと環境作成時の設定項目がシンプルになったよ、ということです。
ここで注意したい点は、RU/s の設定項目がなくなった という点です。つまり、5000 RU/s まで自動的にスケーリングされるので、プロビジョニングされたスループットの時みたいに、400 RU/s 以上の管理ができなくなるため、課金調整が難しくなっている
ということです。調子に乗ってガンガン大量処理を投げれば、あっという間に 5000 RU/s に到達して課金がすごいことになるため、Azure Cosmos DB 初心者には向いていない気もしています。
公式ドキュメント情報
公式 Microsoft Docs では英語版の資料は出ているが、日本語版はまだ登場していないようだったので、自分で翻訳して作ってみました。非公式なので参考まで (2020/08/20 7:20 時点)
-
Azure Cosmos DB サーバレス (プレビュー) ※非公式
- Azure Cosmos DB serverless (Preview) ※公式 (English)
- プロビジョニングされたスループットとサーバーレスの選択方法 ※非公式
そのうち他の Docs も翻訳します。もし大丈夫なら GitHub で日本語のリポジトリに PR しておきます。
(2020/08/20 追記)
一応、日本語版のリポジトリに PR を送ってみました。※承認されるかどうかはわかりません