NoSQL データベースは、柔軟なスキーマと多様なデータモデルでデータを保存できるデータベースです。開発者にとって使いやすく、モダンアプリケーションに必要な高いパフォーマンスと機能を備えています。AWS 上の NoSQL データベースは、大規模データを保持しつつ、低レイテンシーでのアクセスを可能にします。
AWS のデータベースサービスには、6 種類の NoSQL データベースが用意されており、マネージド型とセルフマネージド型の両方を選択可能です。これらのサービスはクラウドネイティブなワークロードをサポートし、既存の AWS リソースとの統合も容易です。
NoSQL という用語は、1998 年に Carlo Strozzi によって最初に提唱されました。当初は、SQL を使用しないオープンソースのリレーショナルデータベースを指していました。その後、2009 年にはこの用語がより広く、非リレーショナルデータベース全般を指す言葉として再び使われるようになりました。NoSQL という名前は、対象となるデータベースの構成に応じて「No SQL(SQL を使わない)」あるいは「Not Only SQL(SQL だけに依存しない)」の意味を持ちます。
NoSQL データベースの発展は、ウェブデータの爆発的な増加によって加速しました。この変化により、非構造化データを迅速に処理できる仕組みの必要性が高まりました。NoSQL システムは分散アーキテクチャ上に構築されることでスケーラビリティを実現し、データやユーザーの近くで処理を行うことが可能になります。その結果、処理速度が大幅に向上しました。
この特徴はビッグデータの成長において特に重要であり、Google、Facebook、Twitter など、多くのテクノロジー企業が NoSQL システムを採用する理由となっています。
AWS では、以下の 6 種類の NoSQL データベースモデルから選択できます。
キー・バリュー型データベースでは、一意の ID(キー)とデータ値(バリュー)のペアとしてデータを保存します。テーブル形式に縛られない柔軟な構造を持ち、任意の形式や量のデータを格納できます。大規模なデータや大量のリクエストにも対応可能です。主なユースケースとしては、ゲームアプリケーション、e コマースシステム、アクセスの多いウェブアプリケーションなどが挙げられます。
AWS サービス例: Amazon DynamoDB
ドキュメント型データベースは、基本的な構造はキー・バリュー型に似ていますが、データを JSON、XML、YAML などのマークアップ言語で記述したドキュメントとして保存します。複数のドキュメントを関連付けることで、階層構造を持つデータを管理できます。主なユースケースとしては、ユーザープロファイル、カタログ、コンテンツ管理などが挙げられます。
AWS サービス例: Amazon DocumentDB、DynamoDB
ワイドカラム型データベースはテーブルベースの構造を持ちながら、厳格なカラム定義には縛られません。各行はすべてのカラムに値を持つ必要がなく、異なるデータ形式を持つ行やカラムを自由に組み合わせることができます。主なユースケースとしては、経路最適化、フリート管理、産業向けメンテナンスアプリケーションなどがあります。
AWS サービス例: Amazon Keyspaces(for Apache Cassandra)
グラフ型データベースは、ノード(データの単位)とエッジ(ノード間の関係)から構成されます。この構造により、従来の表形式では表現しにくい複雑なデータの関係を有機的に追跡できます。主なユースケースとしては、レコメンデーションエンジン、ソーシャルネットワーキング、不正検知などがあります。
AWS サービス例: Amazon Neptune
時系列データベースは、データを値や ID ではなく、収集時刻や取り込み時刻、メタデータに含まれるタイムスタンプに基づいて時系列で保存します。これにより、時間軸に沿ったデータ管理やクエリの実行が可能になります。主なユースケースとしては、産業用テレメトリ、DevOps、IoT アプリケーションなどがあります。
AWS サービス例: Amazon Timestream
台帳型データベースは、データ値に関連するイベントを記録するログに基づいています。これらのログは、透明性、不変性、暗号学的に検証可能な信頼性を備えており、データの真正性と完全性を保証します。主なユースケースとしては、銀行システム、登録システム、サプライチェーン、システム・オブ・レコードなどがあります。
AWS サービス例: Amazon Quantum Ledger Database (QLDB)
必要なデータベースの種類に応じてサービスを選択することも可能ですが、AWS が提供する各サービスの特徴を理解しておくことは有益です。もしこれらのサービスが求める機能や性能を満たさない場合は、サードパーティ製のオプションを検討することもできます。
関連情報: 「AWS Database as a Service ガイド」を参照してください。
DynamoDB は ACID トランザクションをサポートし、デフォルトで暗号化が有効です。
関連情報: 「DynamoDB 料金ガイド」を参照してください。
Amazon ElastiCache は、ディスクベースのデータベースの代替として利用できるインメモリデータストアです。Memcached と Redis をフルマネージドでサポートし、メモリシャーディングによるスケーリングを提供します。
サブミリ秒レベルの応答時間を実現するよう設計されており、キューイング、リアルタイム分析、キャッシュ、セッションストアなどの用途に最適です。
Amazon Neptune は、数十億単位のリレーションシップを効率的に保存できるフルマネージド型グラフデータベースサービスです。W3C の RDF、Property Graph、SPARQL、TinkerPop Gremlin など、さまざまなグラフモデルやクエリ言語に対応しています。
Neptune には、ポイントインタイムリカバリ、マルチ AZ レプリケーション、継続的バックアップ、リードレプリカなどの機能が備わっています。また、ACID トランザクションをサポートし、データの転送中および保存中の暗号化も提供されます。
Amazon Timestream は、フルマネージド型の時系列データベースで、アダプティブクエリ処理エンジンを備えています。サーバーレスサービスとして提供されるため、ハードウェアやソフトウェアのメンテナンス、プロビジョニングは自動で管理されます。
Timestream には、データの自動圧縮、階層化、保持、ロールアップ機能が組み込まれており、さらにデータの近似、スムージング、補間といった分析機能も提供されます。
Amazon QLDB は、データ変更を追跡できる台帳型データベースです。フルマネージド型で提供されるため、リレーショナルデータベースやブロックチェーンで台帳データを管理する際に必要な複雑なセットアップを回避できます。
QLDB は、SQL ライクな API、完全なトランザクションサポート、柔軟なドキュメントデータモデルを提供します。さらに、自動スケーリング、ACID 準拠のトランザクション、マルチ AZ 可用性、Kinesis Data Streams を利用したデータストリーミングもサポートしています。
Amazon DocumentDB は、MongoDB 互換のフルマネージド型ドキュメントデータベースです。アーキテクチャはコンピュートリソースとストレージリソースを分離しており、高いスケーラビリティと柔軟性を提供します。
最大 15 台のリードレプリカをサポートし、3 つのアベイラビリティーゾーン(AZ)にわたるデータレプリケーションにより高い耐久性を実現します。さらに、AWS Database Migration Service を無料で利用です。
Amazon Keyspaces は、Apache Cassandra 互換のフルマネージド型ワイドカラムデータベースです。既存の Cassandra ワークロードやアプリケーションを移行することで、Cassandra ネイティブのコードやツールをそのまま利用できます。
自動スケーリング機能を備えており、オンデマンドリソースとプロビジョンドリソースのいずれかを選択可能です。
NetApp Cloud Volumes ONTAP は、AWS、Azure、Google Cloud 上で利用可能な、エンタープライズグレードのストレージ管理ソリューションです。セキュアで実績のあるストレージ管理を提供し、最大 368TB の容量をサポートします。ファイルサービス、データベース、DevOps、その他のエンタープライズワークロードに対応可能です。
Cloud Volumes ONTAP は、クラウド上のデータベースワークロードにおける課題を解決し、クラウドベースのデータベース機能とパブリッククラウドリソースのギャップを埋めます。SAN ストレージ管理や NoSQL データベース対応に加え、クラウドのビッグデータ分析クラスターから直接アクセスできる NFS 共有もサポートしています。
また、スナップショットやデータクローニングなどの組み込みストレージ効率機能により、NoSQL デプロイメントにおけるコスト削減とデータ保護を実現します。これにより、NoSQL データベース管理者やビッグデータエンジニアは、大規模データを効率的かつ柔軟に管理できます。