AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

Terraform と MongoDB Atlas プロバイダーを使い始める

Atlas Terraform プロバイダーのコードとして MongoDB Atlas インフラストラクチャを管理するには、Terraform を使用します。 Atlas Terraform プロバイダーは、Atlas インフラストラクチャをコードとしてプロビジョニング、管理、制御するプロセスを簡素化することで、インフラストラクチャの配置を自動化します。

このガイドでは、既存のMongoDB Atlas組織内で Atlas クラスターを作成および破棄する方法について説明します。

注意

Atlas Terraform プロバイダーは、プロジェクトとリージョンで Atlas がサポートするMongoDBバージョンをサポートします。クラスターのMongoDBバージョンを変更する方法については、「 メジャー バージョンのアップグレード 」を参照してください。

テスト環境を構成したら、MongoDB と HashiCorp の追加リソースを使用して、Terraform が管理するインフラストラクチャの実験を続行します。

Atlas Infinite クラスターは Atlas Terraform プロバイダーをサポートします。 Atlas Infinite の詳細については、 「 MongoDB Atlas Infinite: 概要 」を参照してください。

MongoDB Atlas を Terraform で配置する前に、次の操作を行う必要があります。

1
mkdir terraform-proj
cd terraform-proj
2

main.tf 、 provider.tf 、 variables.tf 、 versions.tfファイルを作成します。

touch main.tf provider.tf variables.tf versions.tf
3

次のコンテンツを provider.tf に追加します。

provider "mongodbatlas" {
client_id = var.client_id
client_secret = var.client_secret
}

次のコンテンツを variables.tf に追加します。

variable "client_id" {
description = "Atlas Service Account client ID"
type = string
}
variable "client_secret" {
description = "Atlas Service Account client secret"
type = string
sensitive = true
}
variable "org_id" {
description = "Atlas organization ID"
type = string
}

次のコンテンツを versions.tf に追加します。

terraform {
required_providers {
mongodbatlas = {
source = "mongodb/mongodbatlas"
version = "~> 2.2"
}
}
required_version = "~> 1.0"
}
4

注意

次の例では、プロジェクトモジュールを使用してプロジェクトを作成し、 mongodatlas_advanced_clusterリソースを使用して無料クラスターを作成します。

次のコンテンツを main.tfファイルに追加します。

module "project" {
source = "terraform-mongodbatlas-modules/project/mongodbatlas"
name = "tenant-example-project"
org_id = var.org_id
}
resource "mongodbatlas_advanced_cluster" "this" {
project_id = module.project.id
name = "TenantCluster"
cluster_type = "REPLICASET"
replication_specs = [
{
region_configs = [
{
provider_name = "TENANT"
backing_provider_name = "AWS"
region_name = "US_EAST_1"
priority = 7
electable_specs = {
instance_size = "M0"
}
}
]
}
]
}

別のクラウドプロバイダーまたはリージョンを使用している場合は、環境に合わせて次のフィールドを更新できます。

フィールド
新しい値

backing_provider_name

プロバイダー。 指定できる値は、 "AWS" 、 "AZURE" 、または"GCP"です。

region_name

使用できるすべてのリージョンについては、「クラウドプロバイダーとリージョン」を参照してください。

重要

専有クラスターを作成する ときに、mongodbatlas_advanced_clusterリソースに database_edition を設定できます。その後は変更できません。また、専有クラスターを 無料クラスターまたは Flex クラスターに増やすはできません。 database_edition は、 無料クラスター( この例の M0 クラスターなど)と Flex クラスターでは 使用できません 。

mongodbatlas_advanced_clusterリソースと、単数形(mongodbatlas_advanced_cluster)と複数形(mongodbatlas_advanced_clusters)の両方のデータソースは、database_edition と読み取り専用の effective_database_edition 属性を公開します。 database_edition は任意であるため、自分で設定しなかった場合でも、effective_database_edition を使用して Atlas に割り当てられたエディションを確認してください。

Atlas Infinite に専有クラスターを作成するには、次の例に示すように、database_edition を "INFINITE" に設定し、auto_scaling に compute_enabled を設定します。

resource "mongodbatlas_advanced_cluster" "infinite" {
project_id = module.project.id
name = "InfiniteCluster"
cluster_type = "REPLICASET"
database_edition = "INFINITE"
replication_specs = [
{
region_configs = [
{
provider_name = "AWS"
priority = 7
region_name = "US_EAST_1"
electable_specs = {
instance_size = "M10"
node_count = 2
}
auto_scaling = {
compute_enabled = true
compute_max_instance_size = "M60_GEN_2"
storage_config = {
shard_size_limit_gb = 10240
}
}
}
]
}
]
}

専用の Atlas Infinite クラスターは REPLICASET クラスタータイプのみをサポートします。

compute_max_instance_size compute_enabledが の場合はtrue が必要です。M30+ Atlas Infinite クラスターはAWS Gen2 _GEN_2でのみ利用できるため、 のように階層名にM60_GEN_2 を追加します。詳細については、「 2生成 専用クラスター 」を参照してください。

Atlas Infinite クラスターには、プライマリとスタンバイの 2 つの選択可能なコンピューティングnode_count 2ノードがあるため、 を に設定します。詳細については、「 レプリケーションとフェイルオーバー 」を参照してください。

より多くの読み取りを処理したり、 分析クエリ を運用ワークワークロードから分離したりするには、同じread_only_specs analytics_specselectable_specsregion_configsオブジェクトで とともに または を設定して読み取り専用ノードまたは分析ノードを追加します。詳細については、「 Atlas Infinite クラスターのワークロード分離 」を参照してください。

storage_config.shard_size_limit_gb storage_configは、 を含める場合にのみ必要です。storage_config を省略すると、Atlas はデフォルトの最大ストレージ制限を適用します。詳細については、「 最大ストレージ制限 」を参照してください。

注意

storage_config.shard_size_limit_gb は、クラスターが保存できるデータの最大量を設定します。詳細については、 Terraform プロバイダーのドキュメント を参照してください。

5

Terraform 構成からターミナル ウィンドウに情報を出力できます。 これは、Atlas 接続 などのリソースを作成するまでstring されない値に役立ちます。

プロジェクトを配置した後にパラメータを表示する場合は、 main.tfファイルに出力行を追加します。

6

プロジェクトを初期化するには、次のコマンドを実行します。

terraform init

このコマンドは、MongoDB Atlas プロバイダーもダウンロードしてインストールします(まだ行っていない場合)。

7

実行プランを表示するには、次のコマンドを実行します。

terraform plan

Terraform は、予定されている変更を詳しく説明します。 出力が期待どおりでない場合は、 main.tfファイルに問題がある可能性があります。

8

インフラストラクチャを配置するには、次のコマンドを実行します。

terraform apply

Do you want to perform these actions?と入力するよう求められたら、yes と入力します。

注意

新しい Atlas リソースがプロビジョニングされるまでに数分かかる場合があります。 Atlas Terraform プロバイダーは、完了するまで 10 秒ごとに更新します。

terraform applyが完了したら、クラスターが配置されていることを確認します。

  • 新しいクラスターがプロジェクトの Atlas UI に表示されます。

  • main.tfに出力値を追加した場合、接続文字列はTerraform出力に表示されます。

Terraform ディレクトリに作成されたリソースをすべて削除するには、次のコマンドを実行します。

terraform destroy

警告

すべてのリソースを削除した場合、復元することはできません。

Do you really want to destroy all resources?と入力するよう求められたら、yes と入力します。

クラスターを配置した後、次の操作を行うことができます。

追加リソース: