はじめに
この記事はAWS SAA試験勉強のための、DynamoDBに関する知識のまとめです。
DynamoDBとは
DynamoDBとはシームレスで拡張性のある高速パフォーマンスを提供する、フルマネージドでサーバーレスの key-value NoSQLデータベースサービスです。
SQLクエリ処理は実行できません。
DynamoDBの基本的性質
-
JSON形式のデータを保存・処理するドキュメント型データベースとして利用することが可能。セッションデータの処理に向いていて、高速でデータ処理を実行できます
-
自動的に3つのAZにデータが保存されます
-
ユーザーが設定することなく、初めからマルチAZ構成のフォールトトレランスを考慮して設計されています
-
パーティションキーとソートキーを組み合わせたものをテーブルのプライマリキーとして定義できます
キャパシティ設定
DynamoDB テーブルにおいて、利用負荷があらかじめ予測できる場合はプロビジョンドスループットモードを選択します。
逆に、予測できない場合はオンデマンドモードを設定します。
データ整合性モデル
Amazon DynamoDBテーブルからデータを読み込む際に、ユーザーはその読み込み処理実行時に結果整合性のある読み込みを利用するか、強い整合性モデルを利用するかを指定できます。
Auto Scaling
DynamoDBテーブルに対してAuto Scalingを設定することで、DynamoDBテーブルへの処理負荷に応じて、テーブルとグローバルセカンダリインデックス(GSI)のパフォーマンス向上を自動化できます。
この機能により予測不能なスループットキャパシティの自動管理ができます。
DAX
Amazon DynamoDB Accelerator (DAX) は、フルマネージド型高可用性インメモリキャッシュで、DynamoDB 用に特化しています。インメモリ型のキャッシュレイヤーなので高コストです。
DAXを有効化することで、1 秒あたりのリクエスト数が数百万件になる処理に対しても、ミリセカンドからマイクロセカンドまでの最大 10 倍のパフォーマンス向上を実現します。
キャッシュを利用して読み込みは高速化できますが、書き込みは高速化できません。
DynamoDB ストリーム
データベースに保存されたデータ項目に対する追加・変更・削除の 発生時に履歴を保持します。
DynamoDBストリームはDynamoDBテーブルのデータに変更が発生した場合に、それをトリガーに変更データをキャプチャする機能です。したがって、月次でAmazon S3バケットにデータをエクスポートすることはできません。
ポイントインタイムリカバリ
ポイントインタイムリカバリを有効にすると、テーブルデータが自動でバックアップされます。バックアップデータは35日間保存され、現在時刻から5分前までの任意の時点(day:hour:minute:second)のデータに復旧できます。
オンデマンドバックアップとは違い、差分バックアップが定期的に自動で取得されます。
DynamoDBのS3へのエクスポート機能は、内部的にDynamoDBの継続的バックアップの機能(ポイントインタイムリカバリの前提となる機能)を使用しています。
TTL(Time to Live)
アイテムごとにTTLを属性で指定することにより、DynamoDBは期限切れのアイテムを見つけて削除します。