NoSQL データベースは、非構造化データの保存に使用されます。非構造化データとは、制約に当てはまらない情報のことです。NoSQL データベースは、データを非リレーショナル形式で格納するため、事前に定義された列に格納する必要はありません。NoSQL データベースは、開発者がソースのデータ構造を知らない場合、リレーショナル・データベースの制約なしに NoSQL データベースにデータを格納する場合によく使用されます。例えば、データをフィールドに格納する代わりに、開発者はデータを JSON ドキュメントに格納できます。
非構造化形式には、ドキュメント、キー値、グラフ、列ファミリーなどの独自のタイプがあります。選択した NoSQL ベンダーは、これらの形式の 1 つにデータを保存しますが、それらは全て、大量のデータを処理できるエンタープライズ・ストレージのサイロに拡張されます。NoSQL ベンダーによっては、クエリでは標準の SQL データベースとは異なるクエリ構文が使用されます。
AWS エコシステムには複数の NoSQL データベースが利用できるため、プロジェクトに適したソリューションの選択に役立つ一般的なデータベースをいくつかご紹介します。
AWS の NoSQL データベースの概要
Amazon Web Services(AWS)には、複数の NoSQL データベースがあります。各ベンダーとデータベースの内容を調査し、オープンソース・アプリケーションを含むビジネス・プロジェクトに適切であることを確認することが重要です。AWS の NoSQL データベースには、長所と短所がいくつか含まれています。
Amazon DynamoDB
Amazon DynamoDB は、クラウドベースのサーバーレス・データベースです。サーバーレス環境では、データベース・プログラムとハードウェアは完全にクラウドで実行されます。これは、仮想マシン、専用サーバー、オンプレミスのハイブリッド環境の構成を管理する必要がないことを意味します。オープンソース・アプリケーションにとって有益です。
開発者は API を使用して、サーバーレスの DynamoDB データベースにクエリを送信します。データベースは、開発者のアプリケーションに JSON 応答を送信します。管理者は、負荷の増加に応じて、データベースを水平方向に動的かつ自動的に拡張できます。つまり、サーバーを追加することを意味します。DynamoDB は、大量のデータを保存しなければならないアプリケーションがある場合に使用し、アプリケーションのユーザーベースとデータ・ストレージの要件が急速に増加すると疑う場合に使用します。
Amazon DocumentDB
MongoDB に精通した開発者にとって、Amazon DocumentDB は MongoDB 構造に似ており、モデル化されています。Amazon DocumentDB は仮想クラウドで実行されるため、データ抽象化を使用して環境内の他のサーバーから分離できます。例えば、Amazon DocumentDB は、インターネットのトラフィックから保護するために非武装地帯(DMZ)を必要とする公開アプリケーションに使用できます。Amazon DocumentDB は、このアーキテクチャに適したリソースです。
Amazon DocumentDB はデータを JSON オブジェクトとして保存し、開発者が容易に解析できるようにします。データベースに挿入するデータを再フォーマットする代わりに、開発者はソースから収集された元の JSON オブジェクトを使用できます。コンピューティング・パワーはストレージから切り離されるため、コンピューティング・パワーを増やすことなくストレージを拡張できるため、コストを節約できます。
Amazon Neptune
Amazon Neptune NoSQL データベースは、グラフ構造で動作します。グラフ・データベースは、データをノードに格納し、各ノード間の関係を構築し、それらをクエリして接続します。ソーシャルメディア・アプリケーションは、グラフ・データベースを使用します。各プロファイルのコメントをさまざまなデータポイントにリンクすることで、プロジェクトが興味のあるカテゴリを含む他のプロジェクトにリンクされているかどうかを確認できます。
大規模なグローバル・データベースを持つ企業は、Amazon Neptune を活用できます。また、人工知能(AI)や生成 AI アプリケーションにも役立ちます。Amazon は、Neptune が毎秒 10 万件以上のクエリを処理し、クラスタあたり 128 TiB に拡張できると主張しています。
Amazon Keyspaces
Amazon Neptune と同様に、Amazon Keyspaces もグラフ・データベースです。IoT のデータ収集やさまざまなソースから収集した大量のデータを扱う企業は、Amazon Keyspaces のメリットを享受できます。例えば、機械を監視するために収集された IoT データを持つメーカーは、Amazon Keyspaces を使用して、データの保存、分析、取得をより迅速に行うことができます。ゲーム業界は、Amazon Keyspaces を使用してプレーヤー・データを収集し、ゲーマーの入力に迅速に応答するために必要なアプリケーションを管理しています。
時系列データは、Amazon Keyspaces データベースに格納されることが多く、この種のデータはリアルタイム・アプリケーションに使用されます。全ての AWS データベース・ソリューションは高速な応答時間を提供しますが、Amazon Keyspaces は 1 ミリ秒以内の応答で最小の遅延を実現します。また、計算能力やストレージ容量の増加に応じて拡張できます。
AWS の NoSQL データベースの比較
全ての AWS の NoSQL データベースは、大規模なデータ・ストレージをサポートしていますが、主な違いは、データの保存方法にあります。DynamoDB や DocumentDB などのドキュメント・データベースは、情報を JSON 形式で保存します。ドキュメント・データベースは、リレーショナル・データベースに精通したほとんどの開発者にとって最も直感的です。グラフ・データベースは、関連する大量のデータがある場合に有益であり、時系列の Amazon Keyspaces データベースは、リアルタイム・アプリケーションに最適です。
4 つの AWS データベースは全て、クラウドでのスケーリングと実行をサポートしていますが、サーバーレスの DynamoDB は、スタッフ管理のオーバーヘッドが少なくて済みます。AWS は、機密データやコンプライアンス規制を保存するデータベースに必要なセキュリティと監視もサポートしています。
まとめ
アプリケーションの構築には、通常データベースが必要です。AWS には、大規模なエンタープライズ・ストレージ要件に対応するソリューションがあります。クラウド上で実行されるため、クエリやストレージを処理するのに十分なリソースを配備すれば、データベースの可用性が高く、待ち時間が少ないことがわかります。ピュア・ストレージは、クラウド・ブロック・ストレージを備えたあらゆるエンタープライズ・アプリケーションのストレージ容量を備えており、この記事でご紹介した AWS データベースをサポートしています。