AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

Terraform モジュールを使用してMongoDB Atlas を配置する

このガイドでは、公式のTerraform MongoDB Atlasモジュールを使用して、エンタープライズ対応のMongoDB Atlas環境を配置する方法を説明します。これにより、Terraform を使用して、ゼロから完全な Atlas 配置への移行が容易になります。

各モジュールは、クラウドプロバイダーとの安全でプライベートな接続に必要な依存関係とともに Atlas リソースをプロビジョニングする再利用可能なビルド ブロックです。

このガイドでは、AWS、Azure、または Google Cloud に次のリソースを配置する例を示します。

  • Atlasプロジェクトとシャーディングされたクラスター。

  • PrivateLink 接続によるクラウドプロバイダー ネットワーク。

  • クラウドストレージへのバックアップのエクスポート 。

  • エンドツーエンドの接続を確認するための任意の検証仮想マシン(現在、Google Cloud では利用できません)。仮想マシンは将来の更新で利用可能になる予定です)。

注意

このガイドの例では、必要なクラウドプロバイダーリソースすべてをデフォルトで 作成しています。既存のリソースを使用する必要がある場合は、クラウドプロバイダーに対応する「独自のリソースの移行」セクションを参照してください。

このチュートリアルを開始する前に、次の前提条件があることを確認してください。

このガイドで説明されているプロセスを実行するには、次のツールが必要です。

  • Terraform(v1.9 以降以降)

  • mongosh (Only required for validation steps. When deploying the validation VM, mongosh is installed by default)

このガイドでは、認証に Atlas サービス アカウントを使用します。サービス アカウントは、プログラムによるアクセスに推奨される認証方法です。

  1. MongoDB Atlasアカウントにサインインするか、作成してください。

  2. サービス アカウントの認証情報を環境変数として設定します。

    export MONGODB_ATLAS_CLIENT_ID="<your-client-id>"
    export MONGODB_ATLAS_CLIENT_SECRET="<your-client-secret>"

    注意

    サービス アカウントは、Terraform へのプログラムによるアクセスに推奨される認証方法です。サービス アカウントの設定の詳細については、組織へのプログラムによるアクセスの付与 を参照してください。

次のいずれかの方法を使用してAWSの認証情報を設定します。

  • 環境変数:

    export AWS_ACCESS_KEY_ID="<your-access-key-id>"
    export AWS_SECRET_ACCESS_KEY="<your-secret-access-key>"
  • AWS CLI プロファイル:aws configure AWS CLI の認証情報を保存するには、 を実行します。

  • IAM ロール: AWSで実行中の場合、適切な権限を持つインスタンスまたはタスクに IAM ロールをアタッチします。

    注意

    詳しくは、AWS IAM 認証 を参照してください。

1

Atlas の例のリポジトリからクラウドプロバイダーの完全な例をダウンロードし、例ディレクトリに移動します。

git clone https://github.com/terraform-mongodbatlas-modules/atlas-examples.git
cd atlas-examples/aws/atlas-aws-module-complete
2

例terraform.tfvarsファイルをコピーし、値を入力します。

cp terraform.tfvars.example terraform.tfvars

次の表では、必要な変数について説明します。使用可能な変数の完全なリストについては、クラウドプロバイダーに対応する例ディレクトリ内の variables.tfファイルを参照してください。

一般的な変数

変数
説明

atlas_org_id

MongoDB Atlas組織ID。これを見つけるには、Atlas UIで Organization > Settings に移動します。

atlas_project_name

新しい Atlasプロジェクトの名前。

atlas_cluster_name

Atlas クラスターの名前。

regions

クラスターと PrivateLink エンドポイントとなる接続されたデバイスが配置されるリージョンのリスト。クラウドプロバイダー固有の詳細については、以下を参照してください。

クラウドプロバイダー固有の変数

変数
説明

aws_region

プロバイダーの操作用のプライマリ AWS リージョン (例: us-east-1)

regions[].name

The Atlas region name for the cluster shard (for example, US_EAST_1). For all supported values, see Cloud Providers and Regions.

regions[].vpc_id

このリージョンに既存のVPCのID 。VPCで DNS ホスト名と DNS 解決を有効にする必要があります。

regions[].subnet_ids

VPC内の異なるアベイラビリティーゾーンにある少なくとも 2 つのプライベート サブネット ID のリスト。PrivateLink エンドポイントとなる接続されたデバイス配置に使用されます。

例は、AWSの最小のterraform.tfvarsを示しています。

atlas_org_id = "<YOUR_ATLAS_ORG_ID>"
atlas_project_name = "my-atlas-project"
atlas_cluster_name = "my-atlas-cluster"
aws_region = "us-east-1"
regions = [
{
name = "US_EAST_1"
vpc_id = "<YOUR_VPC_ID>"
subnet_ids = ["<YOUR_SUBNET_ID_1>", "<YOUR_SUBNET_ID_2>"]
}
]
3

次の Terraform コマンドを実行して、作業ディレクトリを初期化し、インフラストラクチャを配置します。

terraform init
terraform plan -var-file terraform.tfvars
terraform apply -var-file terraform.tfvars

terraform init は、必要なプロバイダーとモジュール プラグインをダウンロードします。terraform plan は作成されるリソースをプレビューします。適用する前に、プランを慎重に確認してください。

terraform apply が完了すると、アカウントに次のリソースがプロビジョニングされます。

  • MongoDB Atlas: 組織アクセス、新しいプロジェクト、およびマルチリージョンのシャーディングされたクラスター。

  • AWS IAM ロール: Atlas が AWS アカウントと交流するために想定するクラウドプロバイダー アクセスのロール。

  • AWS VPCエンドポイント: リージョンごとに 1 つのVPCエンドポイント。プライベートで安全な接続のために Atlas PrivateLink サービスに接続されます。

  • AWS S3 バケット: Atlasバックアップエクスポート 用のバケット。

  • 検証 VM (任意、デフォルトで有効になっている ): PrivateLink 経由で Atlas 接続を検証するための最初のリージョンのサブネットの EC2インスタンス。

4

配置は、例が作成する仮想マシン(VM)を使用するか、PrivateLink接続文字列を使用して mongosh に直接接続することで検証できます。

仮想マシンによる接続とテスト

検証 VM(デフォルトで有効)を配置した場合は、それを使用してプライベート ネットワーク内から Atlas 接続を検証できます。VM には mongosh が事前インストールされ、接続文字列が事前構成されています。

  1. インスタンスIDとアクセス コマンドの validation_vm 出力に注目してください。

    terraform output validation_vm
  2. AWS Systems Manager(SSM)セッション マネージャー経由で接続します(デフォルト、SSH は必要ありません)。

    aws ssm start-session --target <instance-id>

    あるいは、validation_vm_create_ec2_instance_connect_endpoint = true を設定した場合は、EC2 インスタンス Connect 経由で接続します。

    aws ec2-instance-connect ssh --instance-id <instance-id> --os-user ubuntu
  3. VM で検証スクリプトを実行して接続をテストします。

    ./validate-atlas

    スクリプトは、mongosh が接続できることを確認し、クラスターに対してCRUD操作を実行します。

を使用した接続とテスト mongosh

また、プライベート ネットワークへのアクセス権を持つ任意のホストからの接続をテストすることもできます。

  1. 接続文字列を取得します。

    配置が完了したら、Terraform の出力から PrivateLink接続文字列を取得します。

    terraform output connection_string

    接続文字列はプライベートエンドポイント SRV形式を使用し、PrivateLink 接続を介してトラフィックをルーティングします。

  2. 次のコマンドを実行し、<connection-string> を terraform output connection_string コマンドの値に置き換えます。

    mongosh "<connection-string>"
  3. 接続後、次のコマンドを実行することで、テストドキュメントを書き込み、検索します。

    db.test.insertOne({ msg: "Hello Atlas" })
    db.test.findOne()

応答が成功させると、クラスターにアクセス可能で、読み取りおよび書き込み (write) 操作が受け入れられることを確認します。

5

この配置によってプロビジョニングされたすべてのリソースを破棄し、不要な料金を回避するには、次のコマンドを実行します。

terraform destroy -var-file terraform.tfvars

警告

terraform destroy は、Atlas クラスターとそのデータを含む、この構成によってマネージドされるすべてのリソースを永続的に削除します。このコマンドを実行中前に、保持したいデータをバックアップしてください。

このページを評価