🗂

【AWS SAA-C03】Amazon DynamoDB とは?

2025/01/08に公開

Amazon DynamoDB は、AWSが提供するフルマネージド型のNoSQLデータベースサービスです。高速でスケーラブル、かつ低遅延なキー/バリューストア型とドキュメントストア型のデータベースを提供します。


特徴

  1. スケーラビリティ

    • 自動スケーリング機能により、トラフィックに応じてキャパシティを自動で調整可能。
    • 1秒あたり数百万リクエストを処理するスケールを持つ。
  2. 高速・低遅延

    • ミリ秒単位の応答時間を実現。
  3. フルマネージド

    • サーバー管理やパッチ適用が不要。
  4. 高可用性と耐障害性

    • データを複数のアベイラビリティゾーン(AZ)間で自動的にレプリケート。
  5. セキュリティ

    • データは保存時に暗号化。
    • AWS IAMを使用してアクセス制御。
  6. データモデル

    • キー/バリューストア: プライマリキーでアクセス。
    • ドキュメントストア: JSON形式で構造化データを保存。
  7. トランザクション

    • ACIDトランザクションをサポート。

ユースケース

  1. モバイルアプリやウェブアプリ

    • ユーザー設定やプロファイルデータの保存。
  2. IoTデバイス

    • 大量のセンサーデータをリアルタイムで保存。
  3. リアルタイム分析

    • eコマースのショッピングカート、在庫管理。
  4. ゲーム

    • リーダーボードやスコア追跡。
  5. セッション管理

    • ウェブアプリケーションのセッション情報を高速に保存。

DynamoDB の重要な概念

項目 説明
テーブル データを保存するためのコンテナ。キー/バリューペアまたはドキュメント形式で構成。
プライマリキー 各アイテムを一意に識別するキー。パーティションキー単体、またはパーティションキー+ソートキー。
プロビジョンドスループット 読み取り/書き込みキャパシティを事前設定。使用量を超えるとスロットリングが発生。
オンデマンドキャパシティ 使用量に応じて自動スケール。トラフィックが予測できない場合に最適。
グローバルセカンダリインデックス (GSI) 別のキーでデータをクエリ可能にするインデックス。
ローカルセカンダリインデックス (LSI) 同じパーティションキーで異なるソートキーを使用するインデックス。
ストリーム データの変更履歴(挿入、更新、削除)をキャプチャ。Lambdaとの連携が可能。

DynamoDB の重要な機能

  1. トランザクション

    • ACIDトランザクションをサポートし、複数のアイテムを一括して安全に更新。
  2. DAX (DynamoDB Accelerator)

    • インメモリキャッシュを提供し、読み取り性能を大幅に向上。
  3. オンデマンドキャパシティモード

    • 読み取り/書き込みスループットの管理不要。使用量に応じて自動スケーリング。
  4. バックアップと復元

    • フルバックアップやポイントインタイムリカバリ(PITR)をサポート。
  5. グローバルテーブル

    • 複数のリージョンでデータを同期して高可用性を実現。

AWS SAA-C03 試験で覚えるべきポイント

  1. ユースケースの適合

    • DynamoDBはNoSQLデータベース。低遅延が必要なアプリケーションや非構造化データに最適。
    • リレーショナルデータベースが必要な場合は、RDSを使用。
  2. プロビジョンド vs オンデマンド

    • プロビジョンドスループット: トラフィックが予測可能で固定キャパシティを設定。
    • オンデマンドキャパシティ: トラフィックが予測不能な場合に最適。
  3. インデックス

    • GSI: プライマリキー以外の属性でクエリする場合。
    • LSI: 同じパーティションキーで別のソートキーを使う場合。
  4. DAX

    • キャッシュを活用して読み取り性能を向上。
  5. グローバルテーブル

    • リージョン間でデータを自動同期する場合に使用。
  6. コストモデル

    • 保存データ量、読み取り/書き込みリクエスト、ストリーム処理に基づいて課金。
  7. 他のAWSサービスとの統合

    • Lambda: DynamoDBストリームでリアルタイム処理。
    • Athena: DynamoDBデータを直接クエリ。

DynamoDB と 他のデータベースサービスの比較

特徴 DynamoDB RDS ElastiCache
ストレージタイプ NoSQL(キー/バリュー、ドキュメント) リレーショナル インメモリ
ユースケース 高スループットな非構造化データ トランザクション処理、リレーショナルデータ キャッシュ、セッション管理
スケーラビリティ 自動スケーリング ストレージは手動でスケール 手動またはオートスケール
レイテンシ ミリ秒単位 数十ミリ秒 マイクロ秒

まとめ

AWS SAA-C03試験では、DynamoDBのユースケース、スケーリングオプション、インデックス(GSIとLSI)、ACIDトランザクション、グローバルテーブルについて理解しておくことが重要です。NoSQL特有の要件(スキーマレス設計、低遅延、高スループット)に適した選択を問われる問題が頻出します。

Discussion