Azure Cosmos DBとは?使い方や料金・サービスの概要を解説
thumb_azurecosmosdb_01
Azure Cosmos DBとは?使い方や料金・サービスの概要を解説
アンドエンジニア編集部
2022.10.02
この記事でわかること
Azure Cosmos DBとは、マイクロソフト社が提供するAzureのプラットフォーム製品の1つです
フルマネージドのNoSQLデータベースを、サーバーレスでサービス提供します
IoTやモバイル端末から発生する大量データの追加・参照・削除を行うシステムに最適です

Azure Cosmos DBとは

img_azurecosmosdb_01

Azure Cosmos DBとは、マイクロソフト社が提供するAzureクラウドコンピューティングサービスのプラットフォーム製品(PaaS)の1つです。フルマネージドのNoSQLデータベースを、サーバーレスでサービス提供します。

【参考】:Azure Cosmos DB 【参考】:Azure Cosmos DB の概要

サーバーレスとは

サーバーレスとは、事前にキャパシティを計画することなく利用できるサービスです。最小料金も不要で、トラフィックの急増や不定期に発生するワークロードを処理する際の、データベース操作単位の消費リソースに基づいて利用料が発生します。

サーバーレスとは?考え方から各社の提供サービスまで解説!

RDBMSとは

RDBMSとは、リレーショナルデータベース管理システムの略を指します。DBMSの種類の1つで、代表的なデータベースであるリレーショナルデータモデルを管理します。データに属性を持たせて、複数のデータを行と列で表します。全体を表形式で表し、テーブルとして管理します。

RDBMSへのアクセスはSQL(Structured Query Language)を用います。主なソフトウェアは、マイクロソフト社のSQL Server、オラクル社のOracle Database、オープンソースのPostgreSQLやMySQLなどがあります。

SQLとは?概要・できること・プログラミング言語との違いを解説

NoSQLとは

NoSQLとは、Not Only SQLで、大まかに言うと、RDBMS以外のデータベース管理システムを指します。RDBMSで必要とするスキーマやデータモデルを用いず、キーバリュー型やJSON・XMLを用いるドキュメント指向など、いくつかの方式があります。

各方式で共通していることは、SQLを使わないことです。SQLはリレーショナルデータベースで用いられる言語です。主なソフトウェアは、Apache Cassandra・Apache HBase、MongoDBなどがあります。

NoSQLとは?メリット・将来性について分かりやすく解説

Azure Cosmos DBの料金体系

Azure Cosmos DBの料金体系は、実際のデータベース操作や使用済みストレージ、オプションの専用ゲートウェイに応じて課金されます。データベース操作については、事前選択済みの「プロビジョニング済みスループット」と「サーバーレス」の2種類のモデルが設定されており、ニーズに応じて選択できます。

「プロビジョニング済みスループット」モードでは、リソースが事前確保されるので最低料金が発生します。「サーバーレス」では、事前設定の最低料金はありません。

【参考】:Azure Cosmos DB の価格 【参考】:Azure Cosmos DB の価格モデル

Azure Cosmos DBの無料サービス

Azure Cosmos DBには、いくつかの無料サービスがあります。まずは、最初に使ってみたところで、サービス契約を検討するのも良いでしょう。具体的には、30日間無料、Freeレベル、Azure 無料アカウント、Azure Cosmos DB ローカル エミュレーターで、Azure Cosmos DBが無料で開始できます。

Freeレベルの従量課金制では、1,000要求ユニット/秒のプロビジョニング済みスループット、25GBのストレージが無料枠に設定されます。

【参考】:Azure Cosmos DBを無料で試す 【参考】:Azure Cosmos DB の価格

Azure Cosmos DBの特徴

img_azurecosmosdb_02

Azure Cosmos DBは、パフォーマンスと可用性を兼ね備えたNoSQLデータベースです。具体的には、ミリ秒単位のレスポンス時間を持ち、99.999%の可能性が確保されます。実装においては、Apache CassandraやMongoDBなどのオープンソースNoSQL APIで実装されており、アプリ開発を迅速に行うことができます。

【参考】:Azure Cosmos DB 製品の概要

Azure Cosmos DBのメリット

Azure Cosmos DBのメリットは、NoSQLデータベースとクラウドサービスのメリットが活かされていることです。具体的には、以下のポイントが挙げられます。

システムの場所と時間に制限されない Azureのグローバルネットワークを活用し、世界中でサービスを必要な時に開始できます。サーバーレスであり、必要な時に即座にサービスを提供する俊敏性が保証されます。

企業向けのセキュリティと可用性に対応 ビジネスニーズを満たすセキュリティ機能や、99.999%の可能性を確保したことでミッションクリティカルワークロードに対応します。

ニーズを満たしコスト削減効果が高い データベース操作に「プロビジョニング済みスループット」と「サーバーレス」の2つのオプションを用意したことで、ニーズに対応しながらコスト削減を行うことができます。

Apache Cassandraとのシームレスな連携 Apache Cassandra APIとAzure Managed Instance for Apache Cassandraをシームレスに連携し、NoSQLデータベースを使用したリフトアンドシフトで、ハイブリッドクラウド活用が可能です。

【参考】:Azure Managed Instance for Apache Cassandra

Azure Cosmos DBのデメリット

Azure Cosmos DBのデメリットと言い切れるわけではありませんが、RDBMSのメリットが上回る場合はRDBMSを利用するのが得策です。

具体的には、RDBMSは業務トランザクションの安定性と一貫性があり、最も利用されています。同一のフォーマットの処理が連続する、銀行口座のようなレコードの参照や更新はトランザクションが一定で処理時間が予測しやすいRDBMSに分があります。

逆に、突発的に発生する処理やSNSなどのメッセージ集計などは、大量のデータが生成されるにつれてNoSQLデータベースの方が優位性が高まる領域です。ただし、管理を成り行きに任せてしまうと不要な費用が発生し、請求が高額になる恐れもありますので、やはりキャパシティ計画は注意すべき点です。

Azure Cosmos DBの活用用途

Azure Cosmos DBは、NoSQLデータベースであり、非構造化データのようなテキストや画像・映像、あるいはその組み合わせで活用すると効果的です。膨大な更新・参照・削除に対応できます。

例えば、IoTやモバイル端末から発生するデータは、あらゆる場所から送られてきます。そのデータを分析するために、データベースに蓄積が必要です。その際のデータ蓄積には、Azure Cosmos DBを活用すると良いでしょう。事例データでは、IoTのデータ処理や、小売サービス、分散アプリケーションの活用性などが掲載されています。

【参考】:Azure Cosmos DB お客様事例 【参考】:Microsoft Ignite Cosmos DB ソリューションアーキテクチャ 【参考】:Azure Cosmos DB の一般的なユース ケース

IoTと5Gの活用事例5選!2022年開催の注目展示会も紹介

Azure Cosmos DBの使い方

img_azurecosmosdb_03

Azure Cosmos DBを使うには、Azure Cosmos DBアカウントを作成し、そこでデータベースとデータが格納されるコンテナーを作成します。Azure Cosmos DBアカウントは、Azure portalやAzure PowerShell、Azure CLIなどを用いて管理します。

【参考】:Azure Cosmos DB の概要 【参考】:Azure portal を使用して Azure Cosmos アカウントを管理する

アカウントの作成

アカウントは、Azure portalのホームから「リソースの作成」「新規」ページで、「Azure Cosmos DB」を検索し選択します。そこで「API オプションの選択」から5種類のAPIから必要なAPIを選択します。選択できるのは、コア(SQL) および MongoDB・Gremlin・Azure Table・Cassandraです。

その後、「Azure Cosmos DB アカウントの作成」のページで基本設定を進めていきます。なお、Azure Cosmos DBアカウント毎に1つのAPIのみが選択可能です。サブスクリプション全体では、最大50件ものAzure Cosmos DBアカウントが作成できます。

【参考】:Azure Cosmos DB リソース モデル 【参考】:Azure Cosmos DB を無料で試す

Azure Cosmos DB APIを使ってみる

Azure Cosmos DB APIは、用途別に5種類用意されています。すでに MongoDBやApache Cassandra、Gremlinをお使いの場合は、該当するAPIを利用することで移行を容易にします。

【参考】:Azure Cosmos DB で API を選択する

SQL APIでは、NoSQLながらSQLのクエリが利用できます。Oracle Database・Amazon DynamoDB・Apache HBaseなどからの移行や、JSONオブジェクトを参照する際に有効です。Table APIは、Azure Table Storage用APIで、オブジェクトストレージサービスの利用に用います。

【参考】:Azure Cosmos DB SQL API のドキュメント 【参考】:Azure Cosmos DB MongoDB API のドキュメント 【参考】:Azure Cosmos DB Cassandra API のドキュメント 【参考】:Azure Cosmos DB Gremlin API のドキュメント 【参考】:Azure Cosmos DB Table API のドキュメント

Azure Cosmos DB ローカル エミュレーターを使ってみる

Azure Cosmos DB向けに開発をする場合ですが、Azure Cosmos DB ローカル エミュレーター(Azure Cosmos DB Emulator)が提供されます。アプリケーションの開発とテストをローカル環境で行い、クラウドサービスのリソースを使用せずに作業することができます。

エミュレータは、Windowsで提供されます。macOS・Linuxでは、Windows仮想マシンあるいはLinux Emulator(プレビュー)を使用します。

【参考】:ローカルでの開発とテストのために Azure Cosmos DB Emulator をインストールして使用する

今後も増加が見込まれる大量データに対応しましょう

img_azurecosmosdb_04

Azure Cosmos DBは、NoSQLデータベースのフルマネージドサービスです。IoTやモバイル端末から発生する大量データの追加・参照・削除を行うシステムに最適です。テキスト・画像・動画問わず発生する非構造化データは今後も増加が予測されます。

Azure Cosmos DBはサーバーレスを有効活用し、大量データを効率的に管理する際におすすめのサービスです。

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT