Amazon Web Services ブログ

Amazon DocumentDB (MongoDB 互換) を使って大規模なアプリケーションの構築と管理を行う方法

Amazon DocumentDB (MongoDB 互換) は、MongoDB のワークロードをサポートする高速でスケーラブル、かつ可用性に優れた完全マネージド型のドキュメントデータベースサービスです。Amazon DocumentDB 内のデータは JSON に似たドキュメントとして保存され、アプリケーションにおけるデータのモデル化方法に自然に対応します。このアプローチは、アプリケーションと Amazon DocumentDB の間でのデータの保存、クエリ、および処理を素早く直観的なものにします。

ドキュメントの柔軟な半構造の階層的性質は、各ドキュメントがアプリケーションのニーズと共に進化することを可能にします。このドキュメントモデルは、特に各ドキュメントがユニークで時間の経過とともに進化し得るカタログ、ユーザープロファイル、およびコンテンツ管理システムに適しています。MongoDB API を使用することにより、Amazon DocumentDB クラスターのために強力で直観的なクエリを作成することができます。これらのクエリは、単一のドキュメント、複数のドキュメント、またはドキュメントの集計にあるデータにアクセスできます。

Amazon DocumentDB は、AWS が提供する最新の専用データベースです。Amazon DocumentDB のオンデマンド料金により、長期間の契約や前払い料金なしで時間単位の料金を支払うことができます。これによって、ニーズに先立ってデータベースの容量を計画して購入するコストと複雑性から解放されます。料金と対応 AWS リージョンの詳細については、Amazon DocumentDB 料金を参照してください。

このブログ記事では、Amazon DocumentDB について紹介し、そのユニークな側面を明らかにしていきます。また、Amazon DocumentDB のアーキテクチャが、大規模なアプリケーションの構築と管理にどのように役立つかについても説明します。

Amazon DocumentDB の使用の開始

Amazon DocumentDB の使用は簡単に開始することができます (以下の動画をご覧ください)。Amazon DocumentDB クラスターは、AWS マネジメントコンソールもしくは AWS CLI、または AWS CloudFormation を使用することによって、数分でスピンアップできます。クラスターは、必要なくなれば削除することができます。スピンアップしたら、現在 MongoDB で使用しているものと同じアプリケーションコード、ドライバ、およびツールを使って、Amazon DocumentDB での開発を開始できます。

この記事では、以下のスクリーンショットにあるように、3 個の db.r4.large インスタンスで myBlogCluster という名前のクラスターをプロビジョニングするとしましょう。

Amazon DocumentDB は、Virtual Private Cloud (VPC) 内に 1 つのストレージレイヤーと 3 個のインスタンスをプロビジョニングし、これらが組み合わさってクラスターを形成します。Amazon DocumentDB のアーキテクチャは、以下のアーキテクチャ図で説明されているように、ストレージレイヤーとコンピューティングレイヤーを分離させるため、各レイヤーを単独でスケールできます。この設計は、クラウドに対して可用性に優れたスケーラブルなアーキテクチャも提供します。

ストレージレイヤーは一意で分散型の耐障害性を備えた自己修復ストレージシステムで、設定を一切行うことなく、クラスターごとに 64 TB のデータまで自動でスケールアップします。優れた耐久性を提供するため、このストレージレイヤーは 3 つの AWS アベイラビリティーゾーンにまたがってデータのコピーを 6 個レプリケートします (3 つのアベイラビリティーゾーンそれぞれに 2 個のコピー = 6 個のコピー)。ストレージレイヤーにある保管時のデータは、AWS Key Management Service (AWS KMS) とカスタマイズされた方法で管理されるキーを使って暗号化することができます。

クラスターのスケーリング

クラスター内のインスタンスはコンピューティング能力であり、クエリの処理を行います。前述した 3 個のインスタンスがあるクラスターにより、ユーザーには読み取りと書き込み両方のためのプライマリーインスタンス、および読み取りスケーリングと高可用性を提供する 2 個のレプリカインスタンスがあります。読み取りキャパシティーは、低レイテンシーのリードレプリカを最大 15 個追加することによって、毎秒何百万ものリクエストに拡大することができます。インスタンスはコンピューティング能力だけを担い、データを保有しないため、新しいレプリカの追加は、データのサイズにかかわらず、ほんの数分で実行できます。

さらに、個別のストレージレイヤーとコンピューティングレイヤーがあることから、単一のインスタンスで耐久性に優れたクラスターをプロビジョニングすることができます。耐久性はストレージレイヤーによって制御されます。このため、クラスターにあるインスタンスが 1 個または 16 個であっても、データは常に 3 つの AWS アベイラビリティーゾーン (AZ) にまたがって 6 方向にレプリケートされます。これは、データの高い耐久性と可用性を確保するために、データの 2 個のコピーが 3 つの異なる AZ に保存されることを意味します。単一インスタンスのクラスターは、低コストでの開発シナリオとテストシナリオに有用です (以下の図にあるシナリオ 1)。インスタンスは、データのサイズにかかわらず、より優れた可用性と読み取りスケールのために数分で追加することができます。可用性に優れたアプリケーションの設計に関する詳細については、AWS Reliability Pillar を参照してください。

クラスター内では、インスタンスを数分でスケールアップおよびスケールダウンすることができます。例えば、db.r4.large インスタンスが 3 個あるクラスターから始めるとします。この場合、これらのインスタンスは、コンソールまたは AWS CLI で数回クリックするだけで db.r4.xlarge にスケールアップできます。読み取りスケーリングについては、トラフィックの急増に対処するために、追加のレプリカを素早くプロビジョニングできます (前の図にあるシナリオ 2)。分析クエリを実行する場合は、そのワークロードを処理するために、より大きなインスタンスをプロビジョニングすることができます (前の図にあるシナリオ 3)。Amazon DocumentDB のアーキテクチャは、ユーザー固有のユースケースに適切なクラスターを設定し、アプリケーションの需要を満たすために迅速にスケールする柔軟性を提供します。

完全マネージド型サービス

Amazon DocumentDB では、ハードウェアのプロビジョニング、パッチ適用、セットアップ、設定、またはバックアップなどのデータベース管理タスクについて心配する必要がありません。それに加えて、Amazon DocumentDB は Amazon VPCAWS Identity and Access ManagementAmazon CloudWatchAWS CloudFormation、および AWS CloudTrail などのサービスと深く統合されています。

Amazon DocumentDB は、データベースを自動で継続的に監視し、Amazon S3 にバックアップするため、ポイントインタイムリカバリ (テーブルを過去 35 日間の任意の時点に復元) が可能になります。さらに、クラスター全体の整合性のあるスナップショットバックアップをいつでも作成し、これらのスナップショットを維持したい期間だけ維持できます。スナップショットバックアップを同じリージョン内のアカウント間で共有することも可能です。Amazon DocumentDB のアーキテクチャではストレージレイヤーとコンピューティングレイヤーが分離されているため、バックアップはインスタンスのパフォーマンス、そしてアプリケーションのパフォーマンスにも影響しません。その代わりに、バックアップは Amazon S3 に対して変更を継続的にストリーミングするストレージレイヤーによって処理されます (以下の図を参照)。

完全マネージド型サービスとして、Amazon DocumentDB はクラスターに安全な初期設定と複数レベルのセキュリティを提供します。これには、Amazon VPC を使用したネットワークの分離、AWS KMS 経由で作成して制御するキーを使用した保管時の暗号化、および Transport Layer Security (TLS) を使用した転送時の暗号化が含まれます。

Amazon DocumentDB への移行

Amazon DocumentDB に移行する場合は、AWS Database Migration Service (DMS) を 6 ヵ月間無料で利用できます。これは、オンプレミス、または Amazon EC2 上の MongoDB データベース (レプリカセットまたは共有クラスターのいずれか) を実質的にダウンタイムなしで簡単に移行することを可能にします。Amazon DocumentDB への移行を開始するには、「Amazon DocumentDB への移行」と「ウォークスルー: MongoDB から Amazon DocumentDB への移行」を参照してください。


著者について

Joseph Idziorek は、アマゾン ウェブ サービスのプリンシパルプロダクトマネージャーです。