🗂
【AWS SAA-C03】Amazon DynamoDB とは?
Amazon DynamoDB は、AWSが提供するフルマネージド型のNoSQLデータベースサービスです。高速でスケーラブル、かつ低遅延なキー/バリューストア型とドキュメントストア型のデータベースを提供します。
特徴
-
スケーラビリティ
- 自動スケーリング機能により、トラフィックに応じてキャパシティを自動で調整可能。
- 1秒あたり数百万リクエストを処理するスケールを持つ。
-
高速・低遅延
- ミリ秒単位の応答時間を実現。
-
フルマネージド
- サーバー管理やパッチ適用が不要。
-
高可用性と耐障害性
- データを複数のアベイラビリティゾーン(AZ)間で自動的にレプリケート。
-
セキュリティ
- データは保存時に暗号化。
- AWS IAMを使用してアクセス制御。
-
データモデル
- キー/バリューストア: プライマリキーでアクセス。
- ドキュメントストア: JSON形式で構造化データを保存。
-
トランザクション
- ACIDトランザクションをサポート。
ユースケース
-
モバイルアプリやウェブアプリ
- ユーザー設定やプロファイルデータの保存。
-
IoTデバイス
- 大量のセンサーデータをリアルタイムで保存。
-
リアルタイム分析
- eコマースのショッピングカート、在庫管理。
-
ゲーム
- リーダーボードやスコア追跡。
-
セッション管理
- ウェブアプリケーションのセッション情報を高速に保存。
DynamoDB の重要な概念
項目 | 説明 |
---|---|
テーブル | データを保存するためのコンテナ。キー/バリューペアまたはドキュメント形式で構成。 |
プライマリキー | 各アイテムを一意に識別するキー。パーティションキー単体、またはパーティションキー+ソートキー。 |
プロビジョンドスループット | 読み取り/書き込みキャパシティを事前設定。使用量を超えるとスロットリングが発生。 |
オンデマンドキャパシティ | 使用量に応じて自動スケール。トラフィックが予測できない場合に最適。 |
グローバルセカンダリインデックス (GSI) | 別のキーでデータをクエリ可能にするインデックス。 |
ローカルセカンダリインデックス (LSI) | 同じパーティションキーで異なるソートキーを使用するインデックス。 |
ストリーム | データの変更履歴(挿入、更新、削除)をキャプチャ。Lambdaとの連携が可能。 |
DynamoDB の重要な機能
-
トランザクション
- ACIDトランザクションをサポートし、複数のアイテムを一括して安全に更新。
-
DAX (DynamoDB Accelerator)
- インメモリキャッシュを提供し、読み取り性能を大幅に向上。
-
オンデマンドキャパシティモード
- 読み取り/書き込みスループットの管理不要。使用量に応じて自動スケーリング。
-
バックアップと復元
- フルバックアップやポイントインタイムリカバリ(PITR)をサポート。
-
グローバルテーブル
- 複数のリージョンでデータを同期して高可用性を実現。
AWS SAA-C03 試験で覚えるべきポイント
-
ユースケースの適合
- DynamoDBはNoSQLデータベース。低遅延が必要なアプリケーションや非構造化データに最適。
- リレーショナルデータベースが必要な場合は、RDSを使用。
-
プロビジョンド vs オンデマンド
- プロビジョンドスループット: トラフィックが予測可能で固定キャパシティを設定。
- オンデマンドキャパシティ: トラフィックが予測不能な場合に最適。
-
インデックス
- GSI: プライマリキー以外の属性でクエリする場合。
- LSI: 同じパーティションキーで別のソートキーを使う場合。
-
DAX
- キャッシュを活用して読み取り性能を向上。
-
グローバルテーブル
- リージョン間でデータを自動同期する場合に使用。
-
コストモデル
- 保存データ量、読み取り/書き込みリクエスト、ストリーム処理に基づいて課金。
-
他のAWSサービスとの統合
- Lambda: DynamoDBストリームでリアルタイム処理。
- Athena: DynamoDBデータを直接クエリ。
DynamoDB と 他のデータベースサービスの比較
特徴 | DynamoDB | RDS | ElastiCache |
---|---|---|---|
ストレージタイプ | NoSQL(キー/バリュー、ドキュメント) | リレーショナル | インメモリ |
ユースケース | 高スループットな非構造化データ | トランザクション処理、リレーショナルデータ | キャッシュ、セッション管理 |
スケーラビリティ | 自動スケーリング | ストレージは手動でスケール | 手動またはオートスケール |
レイテンシ | ミリ秒単位 | 数十ミリ秒 | マイクロ秒 |
まとめ
AWS SAA-C03試験では、DynamoDBのユースケース、スケーリングオプション、インデックス(GSIとLSI)、ACIDトランザクション、グローバルテーブルについて理解しておくことが重要です。NoSQL特有の要件(スキーマレス設計、低遅延、高スループット)に適した選択を問われる問題が頻出します。
Discussion