Amazon DynamoDB 定番2012 年〜
ミリ秒レベルのレイテンシを提供するフルマネージド NoSQL データベース
何ができるか
Amazon DynamoDB は、キーバリュー型とドキュメント型の両方に対応するフルマネージド NoSQL データベースです。どんな規模のリクエストでもミリ秒単位のレスポンスを返し、サーバーのプロビジョニングやパッチ適用は一切不要です。オンデマンドモードではリクエスト数に応じた完全従量課金で利用できます。
どのような場面で使うか
モバイルアプリやゲームのユーザーデータ管理、EC サイトのショッピングカート、IoT デバイスのデータ格納、セッション管理など、低レイテンシかつ高スループットが求められるワークロードに最適です。サーバーレスアーキテクチャで Lambda と組み合わせるパターンが特に多く使われています。
身近な例え
超高速の図書カードシステムに例えられます。カード番号 (パーティションキー) を伝えるだけで、何百万枚のカードの中から瞬時に目的のカードを見つけ出します。カードの書式は自由で、項目を後から追加しても問題ありません。
DynamoDB とは
Amazon DynamoDB は、AWS が提供するフルマネージドの NoSQL データベースサービスです。テーブルを作成してデータを読み書きするだけで利用でき、サーバーの管理やキャパシティプランニングの手間がかかりません。データは自動的に 3 つのアベイラビリティゾーンに複製され、99.999% の可用性を実現します。
キー設計とデータモデル
DynamoDB のテーブルはパーティションキーとオプションのソートキーで構成されます。パーティションキーはデータの格納先を決定し、ソートキーは同一パーティション内のデータの並び順を制御します。このキー設計がパフォーマンスに直結するため、アクセスパターンを事前に分析してキーを決めることが重要です。セカンダリインデックス (GSI / LSI) を使えば、異なるキーでのクエリも可能です。
キャパシティモードと料金
DynamoDB にはオンデマンドモードとプロビジョンドモードの 2 つの課金方式があります。オンデマンドモードはリクエスト単位の従量課金で、トラフィックが予測しにくいワークロードに適しています。プロビジョンドモードは読み書きのキャパシティユニットを事前に指定する方式で、安定したトラフィックではコスト効率が良くなります。Auto Scaling を有効にすれば、プロビジョンドモードでも負荷に応じた自動調整が可能です。
はじめかた
DynamoDB コンソールで「テーブルの作成」をクリックし、テーブル名とパーティションキーを指定するだけでテーブルが作成されます。AWS SDK や CLI からすぐにデータの読み書きが可能です。DynamoDB Streams を有効にすると、データの変更をリアルタイムに Lambda 関数でキャプチャでき、イベント駆動型のアーキテクチャを構築できます。
注意点
- パーティションキーの設計がパフォーマンスに直結するため、特定のキーにアクセスが集中するホットパーティションを避ける設計が重要
- オンデマンドモードは便利だが、大量のリクエストが発生するとプロビジョンドモードより割高になる場合がある
- 無料利用枠として、25 GB のストレージと月間 2 億 5000 万回の読み書きリクエストが常時無料で利用可能
参考資料 (AWS 公式)
本ページの一次情報は AWS 公式サイトおよび公式ドキュメントです。最新の仕様 / 料金は次の公式ページで確認できます。
本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。