Azure Cosmos DBを使用するメリット10選|デメリットと導入方法
- システム
エンジニア - クラウドのデータベースは扱ったことがありません……。やはり敷居が高いツールなのでしょうか?
- プロジェクト
マネージャー - 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を作成しました。
- システム
エンジニア - Azure Cosmos DBは世界中にオフィスを展開している企業にとって、メリットがたくさんあるツールですね。まずは自分で無料枠から使い始めてみます。
- プロジェクト
マネージャー - Azure Cosmos DBはNoSQLデータベースサービスですので、ビッグデータを扱うには最適なツールでもあります。今後ますますビッグデータに関しては需要が増すでしょうから、今のうちからAzure Cosmos DBに触れておくことがおすすめです!
無料枠を使ってAzure Cosmos DBに触れてみよう
以前まではAzure Cosmos DBには無料枠は設けられていませんでしたが、今は無料枠が存在し、使う敷居が下がりました。Azure Cosmos DBはエラスティックコンピューティングを活かしたシステム展開やビッグデータ活用の面でメリットがあります。無料枠を使ってどのようなことができるのか、自分の目で確認しましょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)