AWS-SAA(データベース)
DynamoDB¶
1. サービス概要¶
Amazon DynamoDB は、高速かつ柔軟な NoSQL データベースサービス。
ユーザーは、任意の規模でデータを保存、検索でき、高いスループットと低いレイテンシーを実現できる。
DynamoDB は、フルマネージドサービスであり、ユーザーはデータベースのプロビジョニングや管理を行う必要はない。
キーバリューストアとドキュメントストアの両方の機能を持ち、様々なデータモデルに対応できる。
主なユースケースとして、
- Web アプリケーション
- モバイルアプリケーション
- ゲームアプリケーション
- IoT アプリケーション
- 広告テクノロジー
- e コマース
などが挙げられる。
Amazon DynamoDB は、これらのユースケースに対応するための様々な機能と、AWS の他のサービスとの統合を提供する。
2. 主な特徴と機能¶
2. 主な特徴と機能¶
2.1 キーバリューストアとドキュメントストア¶
DynamoDB は、キーバリューストアとドキュメントストアの両方の機能をサポートしている。
キーバリューストアでは、キーと値のペアでデータを保存し、高速に読み書きできる。
ドキュメントストアでは、JSON のような半構造化データを保存し、柔軟なデータモデルをサポートできる。
2.2 フルマネージドサービス¶
DynamoDB は、フルマネージドサービスであるため、ユーザーはデータベースのプロビジョニング、スケーリング、パッチ適用などの管理を行う必要はない。
AWS が、これらの管理作業を自動的に行う。
2.3 スケーラビリティ¶
DynamoDB は、ストレージ容量とスループットを自動的にスケーリングできる。
これにより、トラフィックの変動に対応し、安定したパフォーマンスを提供できる。
2.4 高い可用性¶
DynamoDB は、複数のアベイラビリティゾーンにデータを複製することで、高い可用性を実現している。
これにより、ハードウェア障害やゾーン障害が発生した場合でも、アプリケーションの可用性を維持できる。
2.5 グローバルテーブル¶
複数の AWS リージョン間でデータをレプリケーションし、グローバルに分散されたアプリケーションをサポートできる。
これにより、リージョン障害が発生した場合でも、別のリージョンでアプリケーションを継続して利用できる。
2.6 ACID トランザクション¶
複数のアイテムに対して、ACID(Atomicity, Consistency, Isolation, Durability)トランザクションをサポートしている。
これにより、データの整合性を維持できる。
2.7 統合性と拡張性¶
Amazon DynamoDB は、AWS Lambda, Amazon S3, Amazon Kinesis, AWS AppSync など、AWS の他のサービスと密接に統合されている。
また、API を利用して、データの読み書きやテーブルの管理を自動化することもできる。
3. アーキテクチャおよび技術要素¶
- ユーザーは、DynamoDB テーブルを作成し、プライマリーキーを定義。
- アプリケーションは、DynamoDB API を使って、データの読み書き。
- DynamoDB は、データを複数のストレージノードに分散し、自動的にスケーリング。
- 必要に応じて、グローバルテーブルを有効にし、複数のリージョン間でデータレプリケーション。
- DynamoDB は、データの耐久性と可用性を確保。
Amazon DynamoDB は、AWS のインフラ上に構築されており、高い可用性、スケーラビリティ、パフォーマンスを提供する。
データベースのプロビジョニングや管理は AWS が行うため、ユーザーはインフラの管理を行う必要はない。
4. セキュリティと認証・認可¶
Amazon DynamoDB は、データのセキュリティを確保するために、以下の機能を提供する:
- IAM 統合: AWS Identity and Access Management (IAM) を利用して、DynamoDB へのアクセスを制御する。
- データ暗号化: データは転送中および保存時に暗号化される。
- VPC エンドポイント: VPC 内から DynamoDB にアクセスする際に、インターネットを経由せずにアクセスできる。
- アクセス制御: IAM ポリシーを通じて、ユーザーやグループごとに、DynamoDB テーブルの操作権限を詳細に制御できる。
- 監査ログ: CloudTrail を通じて、DynamoDB の利用状況を監査できる。
これらのセキュリティ対策により、データの不正アクセスを防止し、機密情報を保護できる。
5. 料金形態¶
Amazon DynamoDB の料金は主に以下に基づく:
- ストレージ: テーブルで使用されたストレージ容量に応じて課金。
- 読み込み/書き込みキャパシティユニット (RCU/WCU): データ読み書きに必要なキャパシティユニットに応じて課金。
- データ転送: データ転送量に応じて課金。
- バックアップと復元: バックアップデータの保存容量とデータ復元量に応じて課金。
6. よくあるアーキテクチャ・設計パターン¶
Amazon DynamoDB は、様々なアプリケーションに利用できます。一般的なパターンは以下の通り:
- Web アプリケーション: Web アプリケーションのセッションデータ、ユーザーデータ、コンテンツなどを保存。
- モバイルアプリケーション: モバイルアプリケーションのユーザーデータ、ゲームデータ、セッションデータなどを保存。
- ゲームアプリケーション: ゲームのユーザーデータ、ゲーム状態、ランキングデータなどを保存。
- IoT アプリケーション: IoT デバイスから送信されたデータを保存し、リアルタイムで分析。
- 広告テクノロジー: 広告表示に必要なデータやクリックデータなどを高速に保存、検索。
- e コマース: e コマースサイトの商品情報、顧客データ、注文履歴などを保存。
7. 設定・デプロイ手順(ハンズオン例)¶
- AWS マネジメントコンソールから Amazon DynamoDB を開き、新しいテーブルを作成。
- プライマリキーを定義し、テーブルの設定を構成。
- DynamoDB コンソールまたは AWS CLI を使って、テーブルにデータを挿入。
- API を使って、データを読み書き。
- 必要に応じて、グローバルテーブルを有効にし、リージョン間のデータレプリケーションを設定。
8. 試験で問われやすいポイント¶
8.1 キーバリューストアとドキュメントストア¶
- 機能: キーと値のペアでデータを保存(キーバリューストア)、JSON のような半構造化データを保存(ドキュメントストア)。
- 利点: 柔軟なデータモデルに対応。
- 試験対策: 各ストレージ形式の特徴、利用ケースが問われる。
8.2 フルマネージドサービス¶
- 管理: データベースのプロビジョニング、スケーリング、パッチ適用などを AWS が担当。
- 利点: ユーザーはインフラの管理が不要。
- 試験対策: フルマネージドのメリット、管理範囲が問われる。
8.3 スケーラビリティ¶
- 機能: ストレージ容量とスループットを自動的にスケーリング。
- 目的: トラフィックの変動に対応し、安定したパフォーマンスを提供。
- 試験対策: 自動スケーリングの仕組み、重要性が問われる。
8.4 高い可用性¶
- 実現方法: 複数のアベイラビリティゾーンにデータを複製。
- 目的: 障害発生時でもアプリケーションの可用性を維持。
- 試験対策: 高可用性の仕組み、耐障害性が問われる。
8.5 料金体系¶
- 課金対象: ストレージ、読み込み/書き込みキャパシティユニット (RCU/WCU)、データ転送量、バックアップと復元。
- 最適化: キャパシティユニットの適切な設定、不要なデータの削除がコスト削減に有効。
- 試験対策: 料金体系、課金要素が問われる。
8.6 類似・関連サービスとの比較¶
- Amazon RDS: リレーショナルデータベースサービス。DynamoDB は NoSQL データベース。
- Amazon ElastiCache: インメモリキャッシュサービス。DynamoDB は永続的なストレージサービス。
8.7 試験で頻出となる具体的な問われ方と答え¶
- Q: Amazon DynamoDB は何を提供するサービス?
- A: 高速かつ柔軟な NoSQL データベースサービスを提供。
- Q: Amazon DynamoDB は、どのようなデータモデルをサポートしているか?
- A: キーバリューストアとドキュメントストアの両方の機能をサポートしている。
- Q: Amazon DynamoDB は、どのようにスケーリングするか?
- A: ストレージ容量とスループットを自動的にスケーリングする。
- Q: Amazon DynamoDB は、どのように可用性を確保しているか?
- A: 複数のアベイラビリティゾーンにデータを複製することで、高い可用性を実現している。
- Q: Amazon DynamoDB の料金はどのように計算されるか?
- A: ストレージ、読み込み/書き込みキャパシティユニット (RCU/WCU)、データ転送量、バックアップと復元などに基づいて計算される。