Amazon DynamoDBについて解説!
本日の記事では、AWSのNoSQLデータベースサービスであるAmazon DynamoDBについて解説します!
Amazon DynamoDBとは?
Amazon DynamoDBは、AWSが提供するフルマネージド型NoSQLデータベースサービスです。高い可用性、安定性、スケーラビリティを持ち、大量のデータや高いトラフィックを瞬時に処理することができます。
NoSQLとは?
NoSQL("Not Only SQL")は、リレーショナルデータベースの制約を持たないデータベースシステムの総称です。
これらのデータベースは、水平スケーラビリティや柔軟なデータモデルなどの要件を満たすために設計されています。伝統的なリレーショナルデータベースとは異なり、テーブル、行、列という固定的なスキーマに依存せず、JSONのような形式でデータを保存することがよくあります。
主なNoSQLのタイプには、ドキュメントベース、キー値ストア、カラムストア、グラフベースなどがあります。大規模なWebアプリケーションやリアルタイムアナリティクスなど、従来のリレーショナルデータベースが適していない用途での利用が増えています。
Amazon DynamoDBの主な機能
DAX (DynamoDB Accelerator)
DynamoDBの読み取りパフォーマンスを向上させるためのインメモリキャッシュで、応答時間をマイクロ秒単位まで短くすることができます。
DynamoDBストリーム
DynamoDBのテーブルにおけるItemの変更ログを最大24時間保存し、データの変更を追跡します。
グローバルテーブル
複数のAWSリージョンにわたってDynamoDBテーブルのデータをレプリケーションする機能。これにより、地域間でのデータの一貫性と可用性が向上します。
パーティション
DynamoDBのデータは、パーティションという領域に分散して保存されます。
パーティションはSSDに割り当てられたデータ領域のことを指しますが、容量が不足するなど性能が足りないときにパーティションを追加することで、負荷を分散しています。
パーティションキー (Partition Key)
パーティションキー(以前はハッシュキーとも呼ばれていました)は、DynamoDBでデータを一意に識別するための主要なキーです。
データはパーティションキーの値に基づいて物理的に分散され、内部のパーティションに保存されます。
パーティションキーの値によって、データの保存場所が決まります。これにより、高いスケーラビリティとパフォーマンスが確保されます。
また、パーティションキーを使用して、アイテムを効率的にクエリしたりアクセスしたりすることができます。
ソートキー (Sort Key)
ソートキーは、パーティションキーと組み合わせて使用されるオプションのキーです。一つのパーティションキーの中で複数のアイテムをソートキーの値に基づいて順序付けすることができます。
ソートキーを持つテーブルでは、特定のパーティションキーの値を指定して、関連するアイテムをソートキーの値に基づいてクエリすることができます。
時系列データや階層データなど、順序に意味があるデータモデルに適しています。例えば、ユーザIDをパーティションキーとし、そのユーザのアクティビティのタイムスタンプをソートキーとして使用するなどのケースが考えられます。
レプリケーション
データを複数の物理的な場所にコピーするプロセスを指します。DynamoDBでは、データの耐久性と可用性を高めるために、複数のデータセンターにデータをレプリケートします。
DynamoDB AutoScaling
プロビジョンドキャパシティモードの使用時、トラフィックの変動に応じて、自動的にDynamoDBのキャパシティユニットを調整する機能のことです。
グローバルセカンダリインデックス (GSI)
異なるパーティションキーをもつItemを含むデータから、迅速なクエリを使った絞り込みを行うインデックスのことです。
スキャン
テーブル内のすべてのアイテムを調査する操作のことです。
PartiQL
SQLに似た言語で、DynamoDB上でデータのクエリや操作を行うための言語のことです。
キャパシティモード
DynamoDBの読み書き容量を設定するモードで、DynamoDBでは事前にプロビジョニングされたユニット(DynamoDBの読み書き操作に必要なリソースの量を示す指標)数に応じて処理能力を提供します。
主に「プロビジョンドキャパシティ」と「オンデマンドキャパシティ」の2つがあります。
プロビジョンドキャパシティモード
事前に1秒あたりの読み込み、書き込みユニットを決めておき、そのユニットの数に応じて料金がかかります。
オンデマンドキャパシティモード
プロビジョンドキャパシティモードとは逆に、事前にユニットをきめず、実際に消費されたユニット数にコストがかかります。
まとめ
Amazon DynamoDBは、高いスケーラビリティとパフォーマンスを持つNoSQLデータベースサービスです。
上記の用語は、DynamoDBを理解する上での基本となるものです。AWS初心者でも、これらの用語と概念を理解することで、DynamoDBの効果的な使用が可能となります。