Azure Cosmos DBの特徴やメリット8選!デメリットもあわせて紹介

Azure Cosmos DBの特徴やメリット8選!デメリットもあわせて紹介
基本情報技術者試験の試験対策はこちら>>

Azureエンジニア 案件・求人一覧はこちら

Azure Cosmos DBって何?


Azure Cosmos DBとはMicrosoftが提供するフルマネージドのNoSQLデータベースサービスです。

最新のアプリケーション開発に対応しており、あらゆるスケールに対応できる自動かつ即時のスケーラビリティをもっています。

また、MongoDB Cassandra用のオープンソースAPIを備えており、世界中のどこででも自由に書きこみや読み取りを高パフォーマンスで行うことができます。

NoSQLについて

「NoSQL」は一般的に「Not only SQL」を略したものとされています。

基本的にNoSQLとは、RDBMS以外のデータベースと解釈されることが多いでしょう。しかし、別の意味で使われていることもあるので注意が必要です。

例えばデータべース製品や非SQLのインターフェースを指す場合があります。または非RDBMSを目指す標語として使われているケースもあるでしょう。

プロジェクトフローレンスとは

Azure Cosmos DBの原点はプロジェクトフローレンスです。

「プロジェクトフローレンス」とはMicrosoftが2010年にスタートした社内プロジェクトで、このプロジェクトでは植物と人間のインターフェースの研究が行われていました。

この研究にはグローバルで低遅延のデータアクセスを実現する必要があり、結果としてAzure Cosmos DBの誕生に結びつきました。

Azure Cosmos DBの特徴やメリット8つ


Azure Cosmos DBの特徴やメリットをご紹介します。

Azure Cosmos DBには具体的にどのような特徴があるのでしょうか。

ここではAzure Cosmos DBの特徴8つをご紹介しますので、Azure Cosmos DBについて詳しく知るための参考にしてみてください。

1:マルチAPI・マルチモデルで応用性が高い

Azure Cosmos DBにはマルチAPI・マルチモデルという特徴があります。

Azure Cosmos DBはAzure DocumentDBから進化したことで、ドキュメントだけでなくキーバリューや列指向、グラフといったデータモデルが追加されてマルチモデルになりました。

また、データモデルごとに異なるAPLを用意したマルチAPIとなっているため、マルチモデルデータに簡単にアクセスできます。

2:世界中に接続可能

Azure Cosmos DBには世界中に接続可能という特徴があります。

グローバルにビジネスを展開している企業の場合、世界中にある拠点のデータベースの構成が複雑で、実装自体が難しくなるケースもあります。

しかしAzure Cosmos DBであれば、世界中に点在しているデータベースをマルチスターにより連携し、同期させることも可能です。

3:応用性が高い

Azure Cosmos DBには応用性が高いという特徴があります。

Azure Cosmos DBは柔軟なアプリケーション開発が可能で、一般的によく使用される言語に適したSDKやSQL、MongoDB、Cassandraなどに対応しています。

4:エラスティックコンピューティングを実現

Azure Cosmos DBではエラスティックコンピューティングを実現している点も、見逃せないメリットです。

トラフィックは常に一定という訳ではありません。トラフィックが増減するたびに設定し直して対応するのは、コストがかかり大変です。

その点、Azure Cosmos DBはエラスティックコンピューティングが実現可能で、処理リソースやメモリリソースなどを常に気にする必要がなくなります。

5:リフト&シフトに対応

Azure Cosmos DBにはリフト&シフトに対応できるという特徴があります。

近年はこれまでオンプレミスでデータベースを稼働させてきた企業が、クラウドにリフトしたり、シフトする事例も増えてきました。

Microsoftはデータベースをクラウドにリフト&シフトする環境を整えてきたため、Azure Cosmos DBであればスムーズにクラウド環境へ移行することができます。

6:膨大な量のコレクションの作成可能

Azure Cosmos DBには膨大な量のコレクションが作成できるという特徴があります。

Azure Cosmos DBはもともとIoTを活用した植物と人間のインターフェースを開発する研究から生まれたデータベースとなっています。そのため、容量制限のないコレクションも作成できるため、さまざまな種類の大量のデータを蓄積するのに適しています。

7:常時接続が可能

Azure Cosmos DBには常時接続が可能という特徴があります。

近年のアプリケーションには常時接続が求められますが、接続までの待機時間の短縮するためには、アプリケーションのインスタンスを近くのデータセンターに配置しなければいけません。

その点、Azure Cosmos DBであれば世界中にあるAzureリージョンに分散できるため、データベースに接続できない状態を回避することが可能です。

8:スキーマやインデックスの管理が不要である

Azure Cosmos DBの特徴として、スキーマやインデックスを管理する必要がないという点が挙げられます。

Azure Cosmos DBデータベースは、スキーマに依存しないという特徴を持っています。

またAzure Cosmos DBは2種類のインデックス作成モードがサポートされていますが、事前にインデックス作成や管理を考慮しなくてもよいため、それらに時間をとられることがなくなるメリットがあります。

Azure Cosmos DBのデメリット3つ


ここではAzure Cosmos DBがもつデメリットについてご紹介します。

Azure Cosmos DBはその特徴からメリットが多い印象を受けますが、デメリットがまったくないという訳ではありません。

リソースに関するデメリットやエラーが発生するリスク、また予定外のコストが発生するリスクといったデメリットが発生する可能性があります。

これらの3つのデメリットについてご紹介しますので、それぞれ見ていきましょう。

1:突発的な負荷でエラーが発生する可能性がある

Azure Cosmos DBにはスパイクアクセスなどの突発的な負荷でエラーが発生する可能性があるというデメリットもあります。

一般的なデータベースでも同様ですが、Azure Cosmos DBは急激なアクセスなどで負荷が上昇すると瞬間的なエラーが発生し、システムが止まってしまう可能性があります。

そのため、システム停止を避けるためには稼働状態を監視していなければいけないでしょう。

2:リソースを削除すると復元できない

Azure Cosmos DBでリソースを削除した場合、復元できなくなるというデメリットがあります。

もしも誤って作業してしまいリソースを削除すると、元に戻せないので注意する必要があります。

リソースをロックすることで、権限のある人以外が誤った作業でリソースを変更したり削除しないようにして、予防しましょう。

3:設定によっては不要な費用が発生する

Azure Cosmos DBではデータベース操作とストレージに対して費用が発生しますが、データベースの要求やコンテナー容量の設定などにより、不要な費用が発生する場合もあります。

必要がないほど多くの要求ユニットでデータベース要求してしまった場合や、コンテナーの容量を増やした場合はその分費用が増えることになります。

Azure Cosmos DBで何に対して課金が発生するのかを理解し、適切に設定しましょう。

Azure SQL DatabaseとAzure Cosmos DBの違い4つ


Azure SQL DatabaseとAzure Cosmos DBの違いをご紹介します。

ここではAzure SQL DatabaseとAzure Cosmos DBの違い4つをご紹介しますので、Azure SQL DatabaseとAzure Cosmos DBの使い分けの参考にしてみてはいかがでしょうか。

1:容量の制限

Azure SQL DatabaseはAzure Cosmos DBと違い、容量の制限があります。

Azure Cosmos DBのストレージには容量の上限がありません。テーブルやデータなどを使用した分だけ課金されることになります。

一方、Azure SQL Databaseはデータ容量が制限されているという違いがあります。

2:複雑な検索の可否

Azure SQL DatabaseはAzure Cosmos DBと違い、複雑な検索ができます。

Azure SQL DatabaseはJOINすることで複雑な検索も可能です。一方、Azure Cosmos DBではAzure SQL Databaseほど難しい検索はできません。

検索INDEXをAzure SQL Databaseに配置し、実態をAzure Cosmos Dに配置した構成はおすすめです。

3:不定なデータの扱い

Azure SQL DatabaseはAzure Cosmos DBと違い、不定なデータの扱いには向いていないという特徴があります。

Azure SQL DatabaseはAzure Cosmos DBと比べて、JSONなどの不定なデータフォーマットは扱いにくいでしょう。

4:自動バックアップ

Azure SQL DatabaseはAzure Cosmos DBと違い、自動的にバックアップが35日間続きます。

Azure SQL Databaseでは自動バックアップによって最大35日間バックアップを取ることができます。さらに長期リテンションにより、完全バックアップを最大10年格納することができます。

Azure Cosmos DBが無料で使えるFree Tierとは


Free Tierは無期限かつ無料でAzure Cosmos DBを利用できるサービスです。

Free Tierは無料で利用できるため、開発環境やテスト環境としてクラウドサービスを試すのに最適です。

また、Free TierはMicrosoft AzureだけでなくAmazon Web Servicesなどでも無料利用枠として設けられており、さまざまなクラウドサービスを無料で利用することができます。

Cosmos DC以外のFree Tierの対象のサービス

Microsoft AzureではCosmos DC以外のサービスもFree Tierの対象になっています。

Microsoft Azureのサービスでは「Azure App Service」「Azure Functions」「Azure DevOps」などがFree Tierの対象となっています。

また、他にもAWSやGoogle Cloud、IBM Cloudなどさまざまなクラウドサービスが無料無期限で利用できます。

Azure Cosmos DBを使ってみよう


Azure Cosmos DBは世界中にあるAzureのリージョンを利用することで、世界中で利用でき、常時接続できるNoSQLデータベースサービスです。

また、膨大な量のコレクションを作成することができます。ぜひこの記事でご紹介したAzure Cosmos DBの特徴やAzure SQL DatabaseとAzure Cosmos DBの違いなどを参考に、Azure Cosmos DBを利用してみてはいかがでしょうか。

Azureエンジニア 案件・求人一覧はこちら

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。

合わせて読みたい

Azure学習の本5選|初心者でもわかりやすい勉強のポイント3つをご紹介!... hbspt.cta.load(20723875, '658a5ac0-e7ce-406d-a790-8de45d7867cd', {"useNewLoader":"true","region":"na1"}); Azureとは? Azureとはマイクロソフトが提供しているクラウドプラ...
今話題のクラウドインフラサービスのご紹介【Azure編】... hbspt.cta.load(20723875, '658a5ac0-e7ce-406d-a790-8de45d7867cd', {"useNewLoader":"true","region":"na1"}); 今後も注目されるクラウドインフラサービス。 今回はMicrosoftが提供するサ...
Azure Storage Explorerの特徴4つ|使い方をOS別に解説... hbspt.cta.load(20723875, '658a5ac0-e7ce-406d-a790-8de45d7867cd', {"useNewLoader":"true","region":"na1"}); Azure Storage Explorerとはどんなツール? Azur...
Microsoft Azureとは?使用するための方法3つとメリットを解説... hbspt.cta.load(20723875, '658a5ac0-e7ce-406d-a790-8de45d7867cd', {"useNewLoader":"true","region":"na1"}); Microsoft Azure(Windows Azure)とは? Micr...
Azureのロードバランサーとは?種類や使うメリット10個をご紹介... hbspt.cta.load(20723875, '658a5ac0-e7ce-406d-a790-8de45d7867cd', {"useNewLoader":"true","region":"na1"}); Azureロードバランサーとは? Azureロードバランサーは、レイヤー4(...