.net column
.NET開発者のためのブログメディア

クラウドデータベース

Azure Cosmos DBを使用するメリット10選|デメリットと導入方法

2020年09月25日
SE
クラウドのデータベースは扱ったことがありません……。やはり敷居が高いツールなのでしょうか?
PM
Azureは基本的にはサブスクリプションのサービス形態をとっていますが、Azure Cosmos DBは無料で利用できる枠が設けられました。まずは、どういったサービスか触れてみるのも良いでしょう。

Azure Cosmos DBとは?


Azure Cosmos DBとは、Microsoftが提供しているNoSQLデータベースサービスです。Azure DocumentDBを進化させたもので、あらゆるスケールに対応できるようにしたグローバルな分散型マルチモデルデータベースとなっています。

Azure Cosmos DBの特徴

Azure Cosmos DBは「グローバル分散」と「マルチモデルのデータベース」の2つが大きな特徴として挙げられます。
まずグローバル分散によって、Azureが世界中に展開しているリージョン(データベースセンター)へのデータのレプリケーションをサポートします。ユーザーは現在地に一番近いリージョンのCosmos DBからデータ取得することが可能となり、ネットワーク遅延による待機時間の削減が期待できます。

またマルチモデルのデータベースにより、ユーザーは複数のデータモデルの中から選択して、データベースを作成することができます。
下記、Cosmos DBがサポートするデータモデルです。

■Azure Cosmos DBのデータモデル

データモデル 概要 API
ドキュメント型 JSON形式のドキュメントを保存できるデータモデル SQL API MongoDB API
グラフ型 データとデータのつながりをグラフ構造で保持するデータモデル Graph API
テーブル型 スキーマレスなテーブル構造でデータを保持するデータモデル Table API
列ファミリ型 Apache Cassandraベースのデータモデル Cassandra API

Azure Cosmos DBのこれまでの経緯

Azure Cosmos DBはもともとMicrosoft内での大規模アプリケーション開発に関する問題に対応するため、2010年に「Project Florence」として運用を開始したものです。

その後、大規模アプリケーション開発に関する問題はMicrosoftだけの問題ではないことがわかったことから、2015年からは「Azure Document DB」という形になりAzureでリリースされ、現在のAzure Cosmos DBになりました。

Azure Cosmos DBを使用するメリット10選


グローバル分散型の大規模アプリケーション開発の問題を解決するために進化したAzure Cosmos DBですが、Azure Cosmos DBを利用することで具体的にどのようなメリットがあるのでしょうか。

ここではAzure Cosmos DBを使用するメリット10選をご紹介しますので、参考にしてみてはいかがでしょうか。

1:世界規模で接続可能

Azureは全世界にデータベースを分散配置しており、マルチスターによって連携したり、同期させたりすることもできます。そのため、世界中の拠点を利用したデータベース構成を行うこともでき、グローバルにビジネス展開を行っている企業にもおすすめです。

2:コスト効果が高い

Azure Cosmos DBはアプリケーションごとの個々のニーズに対応して、必要な容量に自動スケーリングすることができます。自動的に容量管理ができることから、非常にコスト効果が高いというメリットがあります。

3:応用性が高い

Azure Cosmos DBはドキュメント以外にもグラフなどのデータモデルが追加されたマルチモデルとなっており、データモデルによって異なるAPLが利用できるマルチAPLとなっているため、マルチモデルデータにも容易にアクセス可能です。

このような特徴を持っていることから、Azure DocumentDBは非常に応用性が高いというメリットがあります。

4:ストレージ容量の上限がない

Azure Cosmos DBは「要求ユニット」と呼ばれる単位でCPUやメモリが割り当てられるようになっています。また、ストレージの容量に関しては上限がなく、データを作成した分だけGB単位での課金となっています。

5:オンプレミスからクラウド環境へ移行が容易

Azure Cosmos DBはオンプレミスのデータベースをクラウド環境へリストやシフトを行うための環境整備にも力を入れていることから、短期間に容易にクラウドへ移行することが可能です。

6:大量のデータを蓄積することが可能

Azure Cosmos DBはIoTを活用して植物と人間のインターフェースの開発を行うという研究によって誕生したDBサービスとなっていることから、非常に多くのデータを蓄積することができます。

さらに容量制限がないコレクションも作成できるため、あらゆる種類のデータの蓄積に対応できます。

7:データベース管理が不要

Azure Cosmos DBはユーザー側でデータベース管理を行う必要がないフルマネージドなデータベースサービスとなっています。また、スキーマやインデックスなどの管理を行う必要もないことから、管理に時間をかける必要がありません。

8:読み取り・書き込みの待ち時間が短い

Azure Cosmos DBは待機時間の短さも特徴となっており、インデックス付きの読み取りや書き込みはどちらも世界規模で10ミリ秒未満の待機時間を99.999%保証しています。

9:高速にクエリを実行できる

Azure Cosmos DBではデータ転送量を維持したまま非常に高速でのクエリ処理が可能となっています。そのため、高速なクエリを利用できる応用性が高いアプリケーションの構築が可能となっています。

10:無償利用枠がある

Azureは基本的には使用した分だけ請求される従量課金制となっていますが、Azure Cosmos DBはAzureサブスクリプションの契約や課金を行っていなくても30日間無料で試すことができる無償利用枠を設けています。そのため、無料でAzure Cosmos DBを試すことも可能です。

Azure Cosmos DBを使用するデメリット3選


ここまでさまざまなAzure Cosmos DBのメリットをご紹介しましたが、一方でデメリットも存在します。そのため、Azure Cosmos DBを利用する場合はデメリットについても十分に把握しておきましょう。

ここではAzure Cosmos DBを使用するデメリット3選をご紹介していきます。

1:間違ってリソースを削除すると復元できない

Azure Cosmos DBはリソースを削除すると元に戻すことができません。そのため、リソースのロックを行い、権限を持っていない人が操作を誤っても間違ってリソース削除ができないようにしておきましょう。

2:エラー発生を回避するため稼働状態の監視が必要

Azure Cosmos DBでは突発的なアクセス増加などによる負荷でエラーが発生し、システムが停止するリスクがあります。そのため、システム停止を防止するためには稼働状態を監視する必要があります。

3:設定によっては課金が発生する

Azure Cosmos DBはデータベース操作とストレージに費用が発生することから、多数の要求ユニットでデータベース要求を行ってしまった場合など、設定によっては想定外の課金が発生するケースがあります。

Azure Cosmos DBの導入方法


それでは早速、導入方法を簡単に解説します。

1.アカウント作成します。無料枠で利用する場合は、赤枠のトグルスイッチをApplyへ変更します。今回のデータベースモデルはSQLを選択します。

2.作成できました。

3.リソースへ移動します。

4.データエクスプローラーへ移動し、データ置き場としてContainerを作成します。

◆Database id:データベースのID
◆Throughput:データベースのスループット(400RUまでは無料で作れます)
※ここでいうRUとは、Cosmos DB上での単位のことで、CPUやIOPSやメモリを統合的考えたものです。
◆Container id:コンテナのID
◆Partition key:複数サーバー間で自動的にパーティション分割するために使われる値です。

5.Containerを作成しました。

SE
Azure Cosmos DBは世界中にオフィスを展開している企業にとって、メリットがたくさんあるツールですね。まずは自分で無料枠から使い始めてみます。
PM
Azure Cosmos DBはNoSQLデータベースサービスですので、ビッグデータを扱うには最適なツールでもあります。今後ますますビッグデータに関しては需要が増すでしょうから、今のうちからAzure Cosmos DBに触れておくことがおすすめです!

無料枠を使ってAzure Cosmos DBに触れてみよう


以前まではAzure Cosmos DBには無料枠は設けられていませんでしたが、今は無料枠が存在し、使う敷居が下がりました。Azure Cosmos DBはエラスティックコンピューティングを活かしたシステム展開やビッグデータ活用の面でメリットがあります。無料枠を使ってどのようなことができるのか、自分の目で確認しましょう。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags