DocumentDB
1. サービス概要¶
Amazon DocumentDB (with MongoDB compatibility) は、スケーラブルで可用性の高い、フルマネージドのドキュメントデータベースサービスである。
MongoDB との互換性があり、既存の MongoDB アプリケーションを容易に移行できる。
DocumentDB は、JSON 形式のドキュメントデータを柔軟に格納・管理でき、高いパフォーマンス、可用性、耐久性を提供する。
開発者は、インフラの管理に煩わされることなく、アプリケーションの開発に集中できる。
主なユースケースとして、
- コンテンツ管理システム
- カタログ管理
- モバイルアプリケーションのバックエンド
- IoT データの格納
- パーソナライズされたレコメンデーション
などが挙げられる。
2. 主な特徴と機能¶
2.1 MongoDB 互換性¶
Amazon DocumentDB は、MongoDB のワイヤプロトコル、API、ドライバーをサポートしており、既存の MongoDB アプリケーションを大幅な変更なしに移行できる。
これにより、開発者は既存の知識やツールをそのまま活用できる。
2.2 フルマネージドサービス¶
インフラのプロビジョニング、スケーリング、パッチ適用、バックアップなどの運用管理は AWS が自動で行う。
これにより、開発者はデータベースの運用管理に煩わされることなく、アプリケーションの開発に集中できる。
2.3 スケーラビリティとパフォーマンス¶
DocumentDB は、ストレージとコンピューティングリソースを個別にスケールできるため、アプリケーションの需要に合わせて柔軟にリソースを調整できる。
高いスループットと低いレイテンシを実現し、大規模なアプリケーションにも対応できる。
2.4 高い可用性と耐久性¶
DocumentDB は、複数のアベイラビリティーゾーンにデータを分散して保存し、自動的にフェイルオーバーを処理する。
これにより、高い可用性と耐久性を実現し、データの損失を防ぐ。
2.5 JSON ドキュメントのサポート¶
DocumentDB は、JSON 形式のドキュメントデータを柔軟に格納・管理できる。
スキーマレスであるため、データ構造の変更に柔軟に対応できる。
2.6 柔軟なクエリ¶
DocumentDB は、豊富なクエリ機能を提供し、JSON ドキュメントに対して効率的な検索や集計を行うことができる。
インデックスを活用して高速な検索を実現できる。
2.7 セキュリティ¶
DocumentDB は、データの暗号化、アクセス制御、ネットワーク分離などのセキュリティ機能を提供する。
IAM によるアクセス制御、転送中のデータ暗号化、保存中のデータ暗号化、VPC 内でのプライベート接続をサポートしている。
- IAM 連携: AWS IAM を使用してアクセス制御と権限管理。
- データ暗号化: 転送中および保存中のデータを暗号化。
- VPC サポート: Amazon VPC 内でのプライベート接続。
2.8 統合性¶
DocumentDB は、AWS の他のサービス(AWS Lambda、Amazon EC2、Amazon ECS など)と統合されており、様々なアプリケーションアーキテクチャに対応できる。
AWS Glue と連携してデータの ETL 処理を行うことができる。
3. アーキテクチャおよび技術要素¶
- クライアントアプリケーションは、MongoDB 互換のドライバーを使用して DocumentDB に接続。
- DocumentDB は、複数のアベイラビリティーゾーンにデータを分散して保存。
- クライアントからの読み取り/書き込みリクエストを処理。
- ストレージとコンピューティングリソースは、必要に応じて個別にスケーリング。
- 自動バックアップ機能により、データを安全に保護。
DocumentDB は、フルマネージドサービスとして提供され、高い可用性、スケーラビリティ、耐久性を内包している。
MongoDB の互換性により、既存の MongoDB アプリケーションを容易に移行できる。
4. セキュリティと認証・認可¶
セキュリティは DocumentDB の重要な要素である:
- IAM によるアクセス制御: AWS IAM を利用して、DocumentDB リソースへのアクセスを制御し、権限を管理。
- データ暗号化: 転送中および保存中のデータを暗号化し、データの機密性を保護。
- VPC サポート: Amazon VPC 内で DocumentDB を使用する場合、プライベート接続を確立。
- 監査ログ: AWS CloudTrail を利用して、API 呼び出しやリソース変更を記録。
これにより、データの安全性とコンプライアンスを確保できる。
5. 料金形態¶
Amazon DocumentDB の料金は主に以下に基づく:
- インスタンス料金: データベースインスタンスの実行時間に応じた従量課金。
- ストレージ料金: データベースに保存されたデータ量に応じた従量課金。
- I/O 料金: データベースへの読み書き I/O リクエスト数に応じた従量課金。
- バックアップ料金: 自動バックアップに利用されるストレージ量に応じた課金。
6. よくあるアーキテクチャ・設計パターン¶
一般的なパターンは以下の通りである:
- コンテンツ管理システム (CMS): JSON ドキュメント形式のコンテンツデータを格納し、柔軟なクエリでコンテンツを検索。
- カタログ管理: 製品カタログ情報を格納し、検索やフィルタリングを効率化。
- モバイルアプリケーションのバックエンド: モバイルアプリケーションのユーザーデータ、設定データ、コンテンツを格納。
- IoT データ格納: IoT デバイスからのセンサーデータを JSON 形式で格納し、分析。
- パーソナライズされたレコメンデーション: ユーザーの行動履歴や好みを格納し、レコメンデーションを生成。
7. 設定・デプロイ手順(ハンズオン例)¶
- AWS コンソールで DocumentDB クラスタを作成。
- EC2 インスタンスから DocumentDB クラスタに接続。
- MongoDB 互換のドライバーを使用して、JSON ドキュメントを挿入、更新、削除。
- クエリを実行してデータを検索。
- インデックスを作成してクエリパフォーマンスを向上。
8. 試験で問われやすいポイント¶
8.1 MongoDB 互換性¶
- ワイヤプロトコル: MongoDB のワイヤプロトコルとの互換性について理解。
- API: MongoDB の API との互換性について理解。
- ドライバー: MongoDB ドライバーをそのまま利用できることを理解。
8.2 フルマネージドサービス¶
- 運用管理: インフラのプロビジョニング、スケーリング、パッチ適用、バックアップなどの運用管理が AWS に自動化されていることを理解。
- 開発への集中: 開発者がデータベース運用に煩わされることなく、アプリケーション開発に集中できることを理解。
8.3 スケーラビリティとパフォーマンス¶
- リソーススケーリング: ストレージとコンピューティングリソースを個別にスケーリングできることを理解。
- 高パフォーマンス: 高いスループットと低いレイテンシを実現できることを理解。
8.4 高い可用性と耐久性¶
- マルチ AZ: 複数アベイラビリティーゾーンにデータを分散して保存することを理解。
- 自動フェイルオーバー: 自動フェイルオーバー機能で高い可用性を実現することを理解。
8.5 JSON ドキュメントのサポート¶
- JSON 形式: JSON 形式のデータを柔軟に格納できることを理解。
- スキーマレス: スキーマレスであるため、データ構造の変更に柔軟に対応できることを理解。
8.6 柔軟なクエリ¶
- クエリ機能: 豊富なクエリ機能で JSON ドキュメントを効率的に検索、集計できることを理解。
- インデックス: インデックスを活用して高速な検索ができることを理解。
8.7 セキュリティ¶
- IAM: IAM によるアクセス制御と権限管理について理解。
- データ暗号化: 転送中および保存中のデータを暗号化することについて理解。
- VPC サポート: VPC 内でのプライベート接続について理解。
8.8 料金体系¶
- インスタンス料金: データベースインスタンスの実行時間による従量課金について理解。
- ストレージ料金: 保存データ量による従量課金について理解。
- I/O 料金: データベースへの読み書き I/O リクエスト数による従量課金について理解。
- バックアップ料金: 自動バックアップに利用されるストレージ量による課金について理解。
8.9 類似・関連サービスとの比較¶
- Amazon DynamoDB: Key-Value 型データベース。DocumentDB は JSON ドキュメント型データベース。
- MongoDB Atlas: マネージドな MongoDB サービス。DocumentDB は AWS プラットフォームに統合されたサービス。
8.10 試験で頻出となる具体的な問われ方と答え¶
- Q: Amazon DocumentDB の主な用途は?
- A: JSON ドキュメントデータを格納・管理する、フルマネージドデータベースサービス。
- Q: DocumentDB はどのデータベースと互換性がある?
- A: MongoDB。
- Q: DocumentDB のフルマネージドとは?
- A: インフラの運用管理が AWS に自動化されていること。
- Q: DocumentDB のデータストレージ形式は?
- A: JSON ドキュメント。
- Q: DocumentDB のセキュリティ対策は?
- A: IAM によるアクセス制御、データ暗号化、VPC サポートなど。
- Q: DocumentDB の料金体系は?
- A: インスタンス、ストレージ、I/O、バックアップ量に応じた従量課金。
- Q: DocumentDB と DynamoDB の違いは?
- A: DocumentDB は JSON ドキュメント型、DynamoDB は Key-Value 型。