[Microsoft Build 2021]インテグレーテッドキャッシュ、Linuxエミュレータ、サーバレス―大幅にパワーアップされた「Azure Cosmos DB」アップデート

5月25日(米国時間)から3日間に渡ってオンラインで開催されたMicrosoftの開発者向けカンファレンス「Microsoft Build 2021」では、多くの興味深いアップデートが発表されました。主だったニュースとしてはMicrosoft CEOのサティア・ナデラ(Satya Nadella)氏がオープニングキーノートで触れた「まもなく登場する(very soon⁠⁠」という次世代Windows(the next generation of Windows)やMicrosoftがビルドしたOpenJDKの一般提供開始(Java 11ベース、LTS⁠⁠、Microsoft社内のサービス向けに開発されていたAIツールをベースにした「Azure Applied AI Services」の一般提供開始などが挙げられます。

Build 2021のオープニングキーノートに登壇したサティア・ナデラCEO。Azureのデータサービスについて「Azureはデータ、アナリティクス、ガバナンスに無限のケイパビリティを与えられる唯一のクラウド」と強調
Build 2021のオープニングキーノートに登壇したサティア・ナデラCEO。Azureのデータサービスについて「Azureはデータ、アナリティクス、ガバナンスに無限のケイパビリティを与えられる唯一のクラウド」と強調

本稿ではその多岐にわたる発表の中からMicrosoft Azureで提供されているNoSQLデータベース「Azure Cosmos DB」関連のアップデートについて、Microsoft Azureデータエンジニアリング部門 コーポレートバイスプレジデント ローハン・クマール(Rohan Kumar)氏のセッション内容をもとに紹介します。

Microsfot Azureでデータベース事業(Azure Data Engineering)をリードするコーポレートバイスプレジデントのローハン・クマール氏
Microsfot Azureでデータベース事業(Azure Data Engineering)をリードするコーポレートバイスプレジデントのローハン・クマール氏

Walmartの繁忙期を10ms以内のレスポンスで捌く「Azure Cosmos DB」

Azure上では現在、以下の6つのデータベースサービス(Azure Data Services)が提供されています。

  • Azure Cosmos DB … Microsfotがもともと社内向けに開発した、マルチリージョン/マルチモデルを前提とするクラウドネイティブなNoSQLデータサービス。あらゆるスケールで数ミリ秒のレスポンスという超低レイテンシを実現、リアルタイムアプリケーションやテレメトリサービスなどに最適
  • Azure SQL … マルチテナントのSaaSアプリケーションなどモダナイズドアプリケーションに適したSQLデータベース(SQL Serverのクラウドバージョン)
  • Azure PostgreSQL … PostgreSQLのフルマネージド/ハイパースケールなサービス、高トランザクション処理に適している
  • Azure Database for MySQL … MySQLのマネージドサービス、高可用性やエラスティックスケールなどエンタープライズレディな特徴を備え、MySQLコミュニティエディションと100%互換
  • Azure Database for MariaDB … MariaDBをフルマネージドで提供するコミュニティデータベース
  • Azure Cache for Redis … Redisをベースにしたフルマネージドなインメモリキャッシュ、パフォーマンスを最大11倍まで向上
Azureが提供するフルマネージドなデータベースサービス群
Azureが提供するフルマネージドなデータベースサービス群

このうち他のデータベースサービスと比較したCosmos DBの魅力として、世界中どこにいてもミリ秒単位のレスポンスと99.99%の高可用性がSLAで保証されていること、またクリックするだけでデータを保存するリージョンを選択でき(ターンキーグローバルディストリビューション⁠⁠、即座にスケーリングできることが挙げられます。1つのインスタンスで最大5ペタバイトまでのデータを格納できるため、グローバル規模で大量のデータをリアルタイムで処理する必要があるオンラインゲームやショッピングサイト、IoTシステムの構築などに最適といえます。さらにSQL(Core)だけでなく、Cassandra、MondDB、Gremlin、テーブルAPIなど複数のAPIモード(マルチデータモデル/マルチAPI)を扱える点も特徴のひとつです。

クマール氏はCosmos DBによる大規模アプリケーション構築の最適なユースケースとしてWalmartの導入事例を紹介しています。世界最大手の小売事業者であるWalmartですが、オンラインの売上は年間数十億ドルにもなり、コロナ禍にあった2020年は前年比79%増の成長を遂げています。Walmartは米国の小売事業者にとってもっとも多忙な時期であるホリデーシーズンに備えるため、⁠ミリ秒のレイテンシをペタバイトスケールで実現」⁠1日あたり数十億のリクエストとそれに伴う会計処理」を実現できるクラウドネイティブなデータベースを求めていました。

そのニーズを満たしたのがCosmos DBで、Walmart.comで発生する膨大なトランザクションをマルチリージョンに分散して処理し、高可用性を保証しながら10ミリ秒以下のレスポンスを実現、ホリデーシーズンの膨大なワークロードを捌ききり、Walmartのユーザに「彼らが望む商品と、期待するエクスペリエンス」⁠クマール氏)を提供することに成功しました。

「⁠⁠ホリデーシーズンという)Walmartにとってのビジネスの最大の繁忙期にAzure Cosmos DBを選択してくれたことをとても光栄に思う。あのパフォーマンスをグローバルスケールでSLAで保証できるデータベースは世界中にCosmos DBのほかにない」⁠クマール氏)

「もっともお気に入りのCosmos DB事例のひとつ」とクマールしが紹介したWalmartのケースでは、ホリデーシーズンにおける膨大なリクエストをCosmos DBが10ミリ秒以下の超低レイテンシでさばききった
「もっともお気に入りのCosmos DB事例のひとつ」とクマールしが紹介したWalmartのケースでは、ホリデーシーズンにおける膨大なリクエストをCosmos DBが10ミリ秒以下の超低レイテンシでさばききった

開発者には嬉しい新機能も装備

今回発表されたCosmos DBのおもな新機能は以下になります。

  • インテグレーテッドキャッシュ(integrated cache)
  • エンタープライズグレードセキュリティ
  • Linuxエミュレータ
  • 無償利用枠(free tier)の拡大
今回の「Build 2021」で発表されたCosmos DBのおもなアップデート
今回の「Build 2021」で発表されたCosmos DBのおもなアップデート

インテグレーテッドキャッシュはCosmos DBの専用ゲートウェイ(dedicated gateway)にビルトインされたインメモリキャッシュで、⁠読み込みのコストを最大で96%削減でき、読み込み中心のワークロードのパフォーマンスを最大300%向上する」⁠クマール氏)という読み込みのパフォーマンス改善に特化した機能です。専用ゲートウェイはCosmos DBのフロントエンドコンピューティングで、キャッシュされたデータをストアしたりバックエンドデータベースにリクエストを送信する機能を備えており、インテグレーテッドキャッシュは専用ゲートウェイ内に自動的に構成されます。読み込みの多いワークロードや同じポイントを繰り返し読み込むワークロードに適しており、クマール氏によれば現在、英国のファッションブランドASOSなど複数のユーザがインテグレーテッドキャッシュを試用中で、数ヵ月以内には詳細を共有できるようにするとのことです。なお、インテグレーテッドキャッシュは現時点ではパブリックプレビュー段階で、Core(SQL⁠⁠ APIのみの提供となります。

専用ゲートウェイのプロビジョニング画面。インテグレーテッドキャッシュはフロントエンドの専用ゲートウェイ内に作成されるインメモリキャッシュ。インテグレーテッドキャッシュにヒットした読み取りやクエリはRUにカウントされないので、何度も同じ読み取りを実行するワークロードなどではコストを大幅に削減できる
専用ゲートウェイのプロビジョニング画面。インテグレーテッドキャッシュはフロントエンドの専用ゲートウェイ内に作成されるインメモリキャッシュ。インテグレーテッドキャッシュにヒットした読み取りやクエリはRUにカウントされないので、何度も同じ読み取りを実行するワークロードなどではコストを大幅に削減できる

セキュリティに関してもいくつかアップデートが行われており、クマール氏は「ロールベースのアクセス制御(roll-based access controll: RBAC⁠⁠」のGAと「Always Encrypted for Cosmos DB」のパブリックプレビューを発表しています。SQL Serverにも実装されているAlways Encryptedは、クレジットカード番号などのセンシティブなデータをデータベースに入れる前にクライアントアプリケーション内で暗号化できるため、エンタープライズアプリケーションのセキュリティを飛躍的に向上することになります(鍵の認証はAzure Active Directoryで行われる⁠⁠。

「今回発表されたパブリックプレビューの中でデベロッパにとってもっともアグレッシブな機能」とクマール氏が強調したのがCosmos DBのLinuxエミュレータです。Linux/macOS開発者はこのエミュレータをローカルマシンにダウンロードして、Cosmos DBアプリを開発/デプロイすることが可能になります。Linuxエミュレータの利用にあたってAzureのサブスクリプション契約は必要ありませんが、クラウド上に展開する場合にはCosmos DBのアカウントが必要になります。

LinuxおよびmacOS開発者に対し、ローカル環境で利用可能なLinuxエミュレータが登場。エミュレータ単体の利用ならサブスクリプション契約は不要で、無料で利用できる
LinuxおよびmacOS開発者に対し、ローカル環境で利用可能なLinuxエミュレータが登場。エミュレータ単体の利用ならサブスクリプション契約は不要で、無料で利用できる

Cosmos DBアップデートの最後としてクマール氏が発表したのが無償利用枠(free tier)の大幅な拡大です。これまでの無償利用枠は5Gバイトのストレージと400RU(request unit: 1秒あたりの要求ユニット)のプロビジョニングスループットでしたが、今回のアナウンスと同時にストレージは25Gバイトに、プロビジョニングスループットは最大1000RUまで拡大しました。クマール氏は「コミュニティのフィードバックを参考に、デベロッパのエクスペリエンスをより良いものするために無償枠を拡大した」と語っており、Linuxエミュレータとあわせ、Cosmos DBの裾野を拡大するための施策となります。

サーバレスモデルが正式提供に

これらの4つのアップデートの紹介のあと、クマール氏は2020年8月にパブリックプレビューとして公開された「Azure Cosmos DB Serverless」⁠Cosmos DBのサーバレスモデル)のGA(一般提供開始)を発表しました。このGAはSQL APIだけでなく、すべてのAPIに対して行われています。

2020年にパブリックプレビューとして登場したAzure Cosmos DB ServerlessがGAに。プロビジョニングスループットよりも本来の従量課金に沿った利用が可能に
2020年にパブリックプレビューとして登場したAzure Cosmos DB ServerlessがGAに。プロビジョニングスループットよりも本来の従量課金に沿った利用が可能に

Cosmos DBはもともと、1秒間に消費するリクエストの最大値(RU)をプロビジョニングスループットとして予約し、これに対して課金が行われます。このプロビジョニングスループットモデルでは、RUの値にもとづいて必要なリソースがコンテナまたはデータベースごとに確保されるため、ワークロードを何も実行しない場合でも最低利用料金が発生することになります。

これに対し、今回GAとなったサーバレスモデルは、データベース操作によって消費されたリクエスト(RU)とストレージのみに課金されるので、ミニマムチャージもキャパシティプランニングの必要もありません。サーバレスコンテナはプロビジョニングしなくても1秒あたり数千リクエストに対応できます。プロビジョニングスループットモデルよりもサーバレスモデルのほうが本来の"従量課金"により即したモデルだといえます。

サーバレスモデルが適しているのは、トラフィックに一時的なバーストが発生する場合や、断続的で不連続なトラフィックで増減の予測が困難な場合、または開発中のコストをできるけ抑えたい場合などが相当するでしょう。またクマール氏は「Azure FunctionsとCosmos DB Serverlessを組み合わせることで、ユニークでモダンなイベントドリブンアプリケーションの作成が可能になる」とも指摘していますが、すでにCosmos DBとAzure Functionsを組み合わせたユースケースは数多く存在しており、これらの事例がさらに"サーバレス化"していくという点でも興味深いといえます。なお、クマール氏によれば米国の食料品会社であるAlbertsonsやスイスの保険サービス企業であるSwiss Reが先行ユーザとしてすでにCosmos DB Serverlessをワークロード処理に活用しているとのことです。

「Azure Cosmos DBがサーバレスになったことで、Cosmos DBとエラスティックなAzure Funtionsと組み合わせれば、ミッションクリティカルなイベントドリブンアプリケーションを非常にユニークな構成で構築できる」とクマール氏
「Azure Cosmos DBがサーバレスになったことで、Cosmos DBとエラスティックなAzure Funtionsと組み合わせれば、ミッションクリティカルなイベントドリブンアプリケーションを非常にユニークな構成で構築できる」とクマール氏

エンタープライズクオリティと「開発者へのアピール」の両立へ

Build 2021ではAzure Cosmos DB以外のデータベースサービスに関してもいくつか大きな発表が行われました。たとえばAzure Database for PostgreSQLおよびAzure Database for MySQL Flexible Serverの12カ月間(最大750時間)の無償提供(6月から⁠⁠、Azure Database PostgreSQL HyperscaleでのPostgreSQL 13サポート(プレビュー⁠⁠、金融やヘルスケアなどセンシティブなデータの操作に特化したAzure SQL Databaseでの台帳機能(ledger capabilities)の提供(まもなく米国で提供開始)などです。全体的に既存のデータベースの機能やパフォーマンスの改善が中心で、デベロッパにとってはよりリーズナブルな料金体系と選択肢が提示された印象を受けました。無償枠の提供拡大なども、Azureデータベースサービスの裾野を拡げる上では有効な施策だと思えます。

今回メインで紹介したCosmos DBは、Azureのデータベースサービスのなかでもミッションクリティカルなエンタープライズワークロードを稼働させることに最適化させたマネージドサービスであり、クラウドネイティブなデータベースとしてより先進的な機能を期待されるプロダクトでもあります。エンタープライズアプリケーションに求められる厳しい要件をクリアしつつ、デベロッパを熱狂させる魅力をいかに維持し続けるのか、AWSやGoogle Cloudという強力なライバルと互角に戦っていくうえでも、Azureにはこれからもその両立がつねに求められることになりそうです。

データベースサービスとしてのAzure Cosmos DBは現在、トランザクションが前年比170パーセントの増加、アクティブデータベースの数は120万以上、シングルインスタンスで扱えるデータ量は5ペタバイトとなっている。これらの数字が1年後にどれだけ上積みされるかにも注目
データベースサービスとしてのAzure Cosmos DBは現在、トランザクションが前年比170パーセントの増加、アクティブデータベースの数は120万以上、シングルインスタンスで扱えるデータ量は5ペタバイトとなっている。これらの数字が1年後にどれだけ上積みされるかにも注目

おすすめ記事

記事・ニュース一覧