DynamoDBとは
AWSが提供する完全マネージド型のNoSQLデータベースであり,AP型データベースの代表例。リレーショナルデータベースのように,テーブル構造を固定することなく(スキーマレス)様々な形式のデータを格納できる。データサイズ上限は1項目あたり400KB。
水平スケーラビリティに優れた特徴を持つ。
DynamoDBでは親キーをパーティションキー,子キーをソートキーと呼ぶ。ルールとしては以下である。
- 親キーで配置されるノード(データ)が決定
- ノード内のデータ順序を決定する子キーを任意に設定可。子キーを作成しない場合は親キーでデータを特定できるようにする必要がある。
- キーにはインデックスを設定可。
AP型データベース
一貫性(Consistency)が下がる代わりに,可用性(Availability)とネットワーク分断耐性(Partition Tolerance)を高めている。単一障害点が無いことが特徴で,どこのノードからでもデータ更新が可能。
しかし,複数のノード間で整合性の取れないケースが発生するため,回避するためにReadRepair機能(読み込み時に最新のデータで古いノードのデータを更新)やQuorumで結果整合性を取るなどを行う。
タイプは4種類ある。
- キーバリュー型
- ドキュメント型
- グラフ指向
- カラム型
DynamoDBのメリットは以下の通りである。
ストレージ
無制限に増やすことができる
サーバーレス
フルマネージドサービスのため,サーバの管理等はAWSが実施。
可用性
複数のAZでデータを保存。自動的にマルチAZ構成になっている。
パフォーマンス
数ミリ秒台の応答時間をサポート。またDynamoDB ACccelatorを使用することで,最大10倍のパフォーマンス向上が可能。
利用料金
DynamoDBには2種類の課金体系がある。
料金体系 | 説明 |
---|---|
オンデマンドキャパシティモード | リクエスト数に応じた従量課金 |
プロビジョンドキャパシティモード | キャパシティユニットの設定に応じた時間単位の従量課金 |