翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
MongoDB Atlas を含む AWS ランディングゾーンを構築する
Igor Alekseev、Amazon Web Services
概要
このパターンでは、MongoDB Atlas クラスターと統合された AWS ランディングゾーンを構築する方法について説明します。インフラストラクチャは Terraform スクリプトを使用して自動的にデプロイされます。
ランディングゾーンと呼ばれるよく構造化されたマルチアカウント AWS 環境は、特に企業にスケーラビリティとセキュリティを提供します。ワークロードとアプリケーションの迅速なデプロイの基盤として機能し、セキュリティとインフラストラクチャの信頼性を確保するのに役立ちます。ランディングゾーンを構築するには、アカウント構造、ネットワーク、セキュリティ、アクセス管理などの技術的およびビジネス上の要因を慎重に検討する必要があります。これらの考慮事項は、組織の将来の成長とビジネス目標と一致する必要があります。
このパターンのユースケースは次のとおりです。
エンタープライズ SaaS および PaaS プラットフォーム: で実行されるマルチテナント Software as a Service (SaaS) アプリケーションおよび Platform as a Service (PaaS) プラットフォーム AWS では、この設定を使用して、パブリックインターネット経由でデータを公開することなく、MongoDB Atlas への安全なプライベートアクセスを提供できます。
規制の厳しい業界: 医療保険の相互運用性と説明責任に関する法律 (HIPAA)、Payment Card Industry Data Security Standard (PCI DSS)、System and Organization Controls 2 (SOC2)、一般データ保護規則 (GDPR) などの基準に厳密に準拠する必要がある銀行、金融サービス、ヘルスケア、政府のワークロードには、次の利点があります。
を介した暗号化されたプライベート接続 AWS PrivateLink
MongoDB レプリカセットのマルチ AZ 高可用性
安全な AI/ML ワークロード: Amazon Bedrock、Amazon SageMaker AI、またはカスタム AI モデルのトレーニングまたは推論パイプラインは、PrivateLink 経由で MongoDB Atlas にデータを安全に取得して保存できます。
ディザスタリカバリとビジネス継続性: マルチ AZ 設計により、単一のアベイラビリティーゾーンの障害によってワークロードが中断されることはありません。アベイラビリティーゾーン間で設定された Atlas レプリカにより、自動フェイルオーバーが保証されます。これは、金融技術 (フィンテック) アプリ、デジタルバンキング、医療モニタリングなどの常時稼働サービスにとって重要です。
前提条件と制限
前提条件
組織の所有者が MongoDB Atlas にアクセスして、Atlas API キーを作成できるようにします。この要件の詳細については、MongoDB ドキュメントの「組織アクセスの管理
」を参照してください。 アクティブな AWS アカウント
。 Terraform
、インストールおよび設定済み。 MongoDB バージョン 6.0 以降で作成された MongoDB Atlas クラスター。
MongoDB と MongoDB Atlas に精通していること。詳細については、MongoDB Atlas ドキュメント
を参照してください。
制約事項
一部の AWS のサービス は では使用できません AWS リージョン。リージョンの可用性については、AWS のサービス 「リージョン別
」を参照してください。特定のエンドポイントについては、「サービスエンドポイントとクォータ」を参照して、サービスのリンクを選択します。
アーキテクチャ
次のリファレンスアーキテクチャ図は、MongoDB Atlas プライベートエンドポイントと統合された AWS ランディングゾーンのデプロイ設定を示しています。このリファレンスアーキテクチャは、MongoDB Atlas と統合された安全でスケーラブルで可用性の高い AWS ランディングゾーンを確立する方法を示しています。マルチ AZ 配置、最小特権のセキュリティコントロール、プライベート接続などの AWS ベストプラクティスを組み合わせることで、組織は最新のアプリケーション向けに堅牢な環境をプロビジョニングできます。

このアーキテクチャは、以下で構成されます。
VPC
1 つの仮想プライベートクラウド (VPC) は 3 つのアベイラビリティーゾーンにまたがります。
VPC は、各アベイラビリティーゾーンに合わせてサブネットに分割されます。これらのサブネットは、高可用性のためにワークロードを分散します。
インターネットアクセス
インターネットゲートウェイは、アプリケーションや踏み台ホストなど、それを必要とするリソースのアウトバウンドインターネット接続を提供します。
パブリックサブネットには NAT ゲートウェイを格納できます。これにより、プライベートサブネットのワークロードは、パブリックインターネットに直接公開することなく、更新、パッチ、その他の必要なパッケージをダウンロードできるようになります。
プライベートサブネットとルートテーブル
アプリケーションコンポーネント、マイクロサービス、またはその他の機密性の高いリソースは通常、プライベートサブネットにあります。
専用ルートテーブルはトラフィックフローを制御します。プライベートサブネットから NAT ゲートウェイに直接アウトバウンドトラフィックをルーティングして、Egress-Only の安全なインターネットアクセスを実現します。
インターネットからのインバウンドリクエストは、パブリックサブネットの Elastic Load Balancer または踏み台ホスト (使用する場合) を通過し、プライベートサブネットリソースに適切にルーティングされます。
PrivateLink を介した MongoDB Atlas 接続
このアーキテクチャでは、(VPC エンドポイントを介して) PrivateLink を使用して、データをパブリックインターネットに公開することなくMongoDB Atlas に安全に接続します。
リクエストは AWS バックボーンネットワークに残ります。転送中のデータは PrivateLink 暗号化の利点があり、パブリックインターネット経由でルーティングされることはありません。
MongoDB Atlas 専用 VPC は、プライマリノードとセカンダリノードをホストし、マネージドデータベースクラスターに安全で隔離された環境を提供します。
マルチ AZ 配置
重要なインフラストラクチャコンポーネント (NAT ゲートウェイやアプリケーションサブネットなど) は、少なくとも 3 つのアベイラビリティーゾーンに分散されます。アベイラビリティーゾーンで機能停止が発生した場合、このアーキテクチャにより、残りのアベイラビリティーゾーンのワークロードが引き続き動作します。
MongoDB Atlas は、デフォルトでレプリカセットを通じて高可用性を提供し、データベースレイヤーの耐障害性を維持します。重要なインフラストラクチャは、回復力のために少なくとも 3 つのアベイラビリティーゾーンに分散されます。
ツール
AWS のサービス
AWS Secrets Manager は、パスワードを含むコード内のハードコードされた認証情報を、プログラムでシークレットを取得するための API コールに置き換えるのに役立ちます。
その他の製品とツール
MongoDB Atlas
は、MongoDB データベースをクラウドにデプロイおよび管理するためのフルマネージド型 Database as a Service (DbaaS) です。 「Terraform
」は、HashiCorpのinfrastructure as code (IaC) ツールで、クラウドとオンプレミスのリソースの作成と管理を支援します。このパターンでは、Terraform を使用してスクリプトを実行し、 AWS と MongoDB Atlas に必要なリソースのデプロイを容易にします。
コードリポジトリ
このパターンのコードは、 AWS および MongoDB Atlas Landing Zone
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
主要な利害関係者を識別します。 | ランディングゾーンプロジェクトに関与するすべての主要な利害関係者とチームメンバーを特定します。これには、次のようなロールが含まれる場合があります。
| 移行リード |
構造設計図を作成します。 | AWS と MongoDB Atlas 対応ランディングゾーンの必要な構造の概要を示す設計図を作成します。 | 移行リード |
アーキテクチャプランを作成します。 | アプリケーションアーキテクトと協力して要件を分析し、耐障害性と回復力に優れたアーキテクチャを設計します。このパターンは、リファレンス用のスターターアーキテクチャテンプレートを提供します。このテンプレートは、組織のセキュリティとインフラストラクチャのニーズに合わせてカスタマイズできます。 | クラウドアーキテクト |
セットアップとデプロイを計画します。 | すべてのステークホルダーとともに、アーキテクチャのデプロイ方法、セキュリティ対策の実装方法、その他の側面を決定し、組織とリクエスト元のチームの両方の利益との整合性を確保します。 | 移行リーダー、DevOps エンジニア、DBA |
タスク | 説明 | 必要なスキル |
---|---|---|
リポジトリをクローン作成します。 | コマンドを実行して、GitHub リポジトリ
| アプリ開発者、DevOps エンジニア |
Atlas 組織 ID を取得します。 | DBA | |
Atlas 組織レベルの API キーを生成します。 | Atlas で組織レベルの API キーを生成するには、MongoDB ドキュメント | DBA |
でシークレットを作成します AWS Secrets Manager。 | 前のステップで生成された MongoDB Atlas API キーをキーと値のシークレットとして Secrets Manager に保存します。手順については、「Secrets Manager のドキュメント」を参照してください。 | DevOps エンジニア |
Atlas クラスター層を選択します。 | 正しい Atlas クラスター階層を選択するには、MongoDB ドキュメント | DBA |
タスク | 説明 | 必要なスキル |
---|---|---|
Terraform スクリプトを変更します。 | GitHub リポジトリのローカルコピーで、Modules/mongodb-atlas/main.tf | DevOps エンジニア |
AWS アクセスキー ID とシークレットキーを作成します。 | AWS アクセスキー ID とシークレットキーを作成するには、 AWS 「re:Post」の記事AWS 「アクセスキーの作成方法」の手順に従います。 必要な最小限の権限でポリシーを割り当てるのがベストプラクティスですが、この場合は アクセスキーを作成したら、IAM のセキュリティのベストプラクティスを確認して、アクセスキーを管理するためのベストプラクティスを確認してください。 | DevOps エンジニア |
Elastic IP アドレスを割り当てます。 | 少なくとも 2 つの Elastic IP アドレス IDs。手順については、Amazon Virtual Private Cloud (Amazon VPC) のドキュメントを参照してください。 | DevOps エンジニア |
S3 バケットを作成する。 | Amazon Simple Storage Service (Amazon S3) ドキュメントの手順に従って、Terraform デプロイの状態を保存する S3 バケットを作成します。 Amazon S3 | DevOps エンジニア |
ストレージ用に S3 バケットを更新します。 | 前のステップで作成したバケットの名前とリージョンと一致するように、ローカルバージョンの environments/development/main.tf
この例では、キープレフィックスを使用して Terraform 状態ファイルを整理 Amazon S3 キープレフィックスの詳細については、Amazon S3 ドキュメントの「プレフィックスを使用してオブジェクトを整理する」を参照してください。 | DevOps エンジニア |
Terraform 変数を設定します。 | サンプルランディングゾーンは、Terraform 変数定義ファイルを使用して入力変数 変数ファイルは environments/development/variables.tf | DevOps エンジニア |
環境変数を設定します。 | ローカルマシンで Terraform スクリプトを実行する予定がある場合は、次の環境変数を設定します。
環境変数の設定の詳細については、 AWS Command Line Interface (AWS CLI) ドキュメントを参照してください。 | DevOps エンジニア |
VPC 設定を確認します。 | が推奨するベストプラクティスに従うには AWS、組織のニーズに合わせて Terraform スクリプトで VPC とサブネット CIDRs、NAT ゲートウェイ、ルート、ルートテーブルを設定します。詳細については、GitHub リポジトリの Readme ファイル | DevOps エンジニア |
リソースにタグ付けします。 | AWS リソースにタグを付けて、Terraform スクリプトによってデプロイされたときにモニタリングできます。例については、GitHub リポジトリの Readme ファイル | DevOps エンジニア |
複数の環境を使用します。 | GitHub リポジトリは 環境を追加するには、 | DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
ディレクトリから Terraform を開始します。 | 作業ディレクトリを初期化し、必要なパッケージをダウンロードするには、 コマンドを実行します。
| DevOps エンジニア |
実行計画を作成します。 | 実行計画を作成し、Terraform がインフラストラクチャに加える変更を視覚化するには、 コマンドを実行します。
| DevOps エンジニア |
変更をデプロイします。 | コードの説明に従ってインフラストラクチャに変更を実装するには、 コマンドを実行します。
| DevOps エンジニア |
デプロイを検証します。 | Terraform がインフラストラクチャで作成または変更したコンポーネントを検証します。 セットアップをテストするには、 または VPC にアタッチされたコンピューティングリソース (Amazon EC2 インスタンスや AWS Lambda 関数など) をプロビジョニングします。 | DevOps エンジニア、アプリ開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
クリーンアップを行います。 | テストが完了したら、次のコマンドを実行して、Terraform がインフラストラクチャにデプロイしたリソースを破棄します。
| DevOps エンジニア |
関連リソース
発見と評価
ランディングゾーンのセットアップに関する管理上のヒント (AWS Control Tower ドキュメント)
ランディングゾーン設定の期待 (AWS Control Tower ドキュメント)
ランディングゾーンの更新に関するベストプラクティス (AWS Control Tower ドキュメント)
MongoDB Atlas と AWS 環境のセットアップ
MongoDB Atlas の取得
(AWS Marketplace) メモリ
(MongoDB Atlas ドキュメント) Atlas サンプルデータセットを使用したサイジングの例
(MongoDB Atlas ドキュメント) モバイルアプリケーションのサイズ設定の例
(MongoDB Atlas ドキュメント) ネットワークトラフィック
(MongoDB Atlas ドキュメント) クラスターの自動スケーリング
(MongoDB Atlas ドキュメント) Atlas サイジングテンプレート
(MongoDB Atlas ドキュメント) ネットワークピアリング接続を設定する
(MongoDB Atlas ドキュメント) Atlas のプライベートエンドポイント
(MongoDB Atlas ドキュメント) クライアント側のフィールドレベルの暗号化
(MongoDB データベースドキュメント) 自動暗号化
(MongoDB データベースドキュメント) クラスター階層の選択
(MongoDB Atlas ドキュメント)
ランディングゾーンのデプロイ
の Terraform AWS (ホワイトペーパーの 5G ネットワークの CI/CD AWS)
MongoDB Atlas with Terraform
(MongoDB ドキュメント)