コンテンツにスキップ

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. アーキテクチャおよび技術要素

  1. クライアントアプリケーションは、MongoDB 互換のドライバーを使用して DocumentDB に接続。
  2. DocumentDB は、複数のアベイラビリティーゾーンにデータを分散して保存。
  3. クライアントからの読み取り/書き込みリクエストを処理。
  4. ストレージとコンピューティングリソースは、必要に応じて個別にスケーリング。
  5. 自動バックアップ機能により、データを安全に保護。

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. 設定・デプロイ手順(ハンズオン例)

  1. AWS コンソールで DocumentDB クラスタを作成。
  2. EC2 インスタンスから DocumentDB クラスタに接続。
  3. MongoDB 互換のドライバーを使用して、JSON ドキュメントを挿入、更新、削除。
  4. クエリを実行してデータを検索。
  5. インデックスを作成してクエリパフォーマンスを向上。

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 型。