ツナ缶雑記

ぐうたらSEのブログです。主にマイクロソフト系技術を中心に扱います。

ローカルマシンで Cosmos DB を実行する

f:id:masatsuna:20200409010157p:plain

Azure のサービスの 1 つに、 Cosmos DB というデータベースサービスがあります。 データベースと言っても、ドキュメント DB や Key-Value Store など、リレーショナルデータベースではないデータベースサービスです。 こいつの特徴を簡単に言うなら、地理冗長の構成を作るのがめちゃくちゃ簡単であり、高可用性を実現するのが容易、ということでしょうか。

ただ、お値段が非常に高額であるというデメリットもあります。 利用料は、 1 秒間にどれだけのデータを読み書きするかによって決まります。 2020 年になって、 1 つの Azure サブスクリプションに対して 1 つだけ、無償の Cosmos DB を作ることができるようになりましたが、あくまで検証レベルでしか使えません。 またサブスクリプションに対して 1 つだけ、という制限もなかなかに厳しい印象を受けます。

Cosmos DB のエミュレーターを使う

そんなちょっと手の出しにくい存在である Cosmos DB ですが、昔からローカルマシン上で Cosmos DB を実行できるエミュレーターが存在します。 これをローカルマシンにインストールしておけば、 Azure のリソースを使わずに、 ローカルマシン内で Cosmos DB の動作確認ができてしまいます。 ただし、あくまでエミュレーターですので、Azure 上の Cosmos DB とはいろいろな機能差があります。 一番大きいのは SQL APIしか使えないところです。 この辺の詳細情報は、以下を参照してください。

docs.microsoft.com

エミュレーターをインストールする

エミュレーター本体は以下からダウンロードできました。

https://aka.ms/cosmosdb-emulator

こいつをダウンロードして、ローカルマシンに 管理者権限でインストール しましょう。 いくつか途中でインストールする必要があるため、管理者権限で実行しないと怒られます。

エミュレーターを実行する

Cosmos DB のエミュレーターは、スタートメニューから起動できます。 インストールが終わると、スタートメニューにエミュレーターの起動アイコンが追加されます。 こいつを押下して実行しましょう。

f:id:masatsuna:20200409003247p:plain
Cosmos DB のエミュレーター

起動が成功すると、以下のように起動したことをあらわす通知が表示されます。

f:id:masatsuna:20200409003418p:plain
Cosmos DB エミュレーターの起動

そしてもうしばらく待つと、ブラウザが起動して、以下のようなエミュレーターの管理画面が開きます。

f:id:masatsuna:20200409003634p:plain
Cosmos DB エミュレーター

しばらく待っても管理画面が開かない場合は、画面右下にあるインジケーターの中から Cosmos DB エミュレーターのアイコンを右クリックして [Open Data Explorer] を押下します。

f:id:masatsuna:20200409003908p:plain
管理画面の起動

これでブラウザーが自動的に立ち上がってきます。

これで Cosmos DB をローカルマシン上で実行できるようになりました。

データベース、コンテナーの作成

ここまでで準備が整ったので、 Cosmos DB エミュレーターにデータベース、コンテナーを作成していきます。 初期画面は接続情報を表示する画面になっていると思います。 エミュレーターの左側にある [Explorer] メニューを押下すると、Cosmos DB エミュレーター内に保存しているデータを管理できます。

f:id:masatsuna:20200409004317p:plain
Explorer メニュー

まずはデータベース、コンテナーを作成します。 [New Container] のドロップダウンを開いて、 [New Container] を押下します。

f:id:masatsuna:20200409004535p:plain
New Container を押下

画面右側に、作成するデータベース、コンテナーの設定箇所が開くので、データベース名など適宜指定して [OK] ボタンを押下します。

f:id:masatsuna:20200409004945p:plain
データベース名、コンテナー名を入力

この例ではスループットに 400 RU を指定していますが、ちょっとした動作検証程度なら 400 RUで十分です。 またこの例では書籍のデータを登録することを想定しています。 Partition Key には、書籍の ISBN コードを使うものとして設定を行っておきます。

ここまで行うと、データベースとコンテナーの作成が完了します。

f:id:masatsuna:20200409005556p:plain
データベースとコンテナーの作成完了

まとめ

今回は Cosmos DB のエミュレーターをローカルマシンにインストールして、データベースとコンテナーを準備するところまでを解説しました。 次回Explorer の簡単な使い方を解説する予定です。