Docs Menu
Docs Home
/ /

Cree un clúster de Atlas a partir de una plantilla usando Terraform

Esta página describe cómo utilizar la plantilla Atlas para archivos Terraform incluidos con la extensión MongoDB para Visual Studio Code para crear clústeres Atlas de nivel compartido.

Después de cargar la plantilla, configuramos el clúster y proporcionamos detalles sobre su cuenta de Atlas. Luego se utilizan los comandos de Terraform para planificar, aplicar y destruir el clúster de Atlas.

Antes de utilizar la plantilla Atlas para archivos Terraform incluida con la extensión MongoDB para Visual Studio Code, debe:

  • Instala la extensión MongoDB for VS Code

  • Instalar Terraform

  • Tengo una cuenta Atlas.

  • Tener una organización Atlas.

  • Tener una clave API en una organización con la Organization Owner o Organization Project Creator rol.

Utilice la plantilla Atlas para archivos Terraform incluidos con la extensión VS Code para configurar un clúster Atlas:

1
Sistema operativo
Método
Acciones

Any

Menú de Visual Studio Code

File > New File

macOS

Atajo de teclado

Presione Command + N

Windows y Linux

Atajo de teclado

Presione Control + N

2

Nota

main.tf es el nombre de archivo recomendado para el punto de entrada a un módulo Terraform.

3

La extensión MongoDB para VSCode completa el archivo con una configuración de ejemplo utilizando el proveedor Terraform de MongoDB Atlas para crear un clúster Atlas de nivel compartido.

4

El cursor se mueve para seleccionar el valor del argumento name del recurso mongodbatlas_project.

Proporcione valores para los siguientes argumentos para configurar su clúster:

Tip

Presione la tecla Tab para seleccionar el siguiente argumento en la plantilla que debe actualizar.

Atributo
Valor
mongodbatlas_project
.name

Nombre del proyecto Atlas que crea esta configuración.

mongodbatlas_cluster
.name

Nombre del clúster Atlas que crea esta configuración.

mongodbatlas_cluster
.backing_provider_name

Proveedor en el que se aloja el cluster de Atlas que crea esta configuración. Elige uno de los siguientes valores aceptados:

  • AWS

  • AZURE

  • GCP

mongodbatlas_cluster
.provider_region_name

Región donde se implementa el clúster Atlas creado con esta configuración. Asegúrese de que la región seleccionada admita clústeres Atlas del tamaño de instancia que desea implementar.

Para obtener detalles sobre los tamaños de instancia que admite cada proveedor y región, consulte las siguientes secciones en la documentación de Atlas:

mongodbatlas_cluster
.provider_instance_size_name

Tamaño de instancia del clúster Atlas que crea esta configuración. Introduzca un tamaño de instancia compatible con Atlas para el proveedor y la región elegidos.

Para obtener detalles sobre los tamaños de instancia que admite cada proveedor y región, consulte las siguientes secciones en la documentación de Atlas:

mongodbatlas_cluster
.disk_size_gbs

Tamaño de disco del clúster Atlas que crea esta configuración. Asegúrese de proporcionar un valor igual o menor que el tamaño máximo de disco para el tamaño de instancia seleccionado.

Para obtener detalles sobre los tamaños de disco que cada proveedor admite para cada tamaño de instancia, consulte las siguientes secciones en la documentación de Atlas:

5

Advertencia

Las local variables contienen información confidencial. No guarde estos valores en un repositorio público.

Proporcione valores para las siguientes variables local:

Variable
Valor

mongodb_atlas_api_pub_key

Clave API pública de Atlas.

mongodb_atlas_api_pri_key

Clave API privada de Atlas.

mongodb_atlas_org_id

ID de la organización Atlas en la que desea crear un proyecto.

mongodb_atlas_database_username

Nombre de usuario del usuario de la base de datos MongoDB que Atlas crea para su clúster.

mongodb_atlas_database_user_password

Contraseña para el usuario de la base de datos MongoDB nombrado en mongodb_atlas_database_username.

mongodb_atlas_whitelistip

Dirección IP o bloque CIDR desde el que se puede acceder a su clúster Atlas.

Ejemplo

Utilice un archivo de variables de entrada para maximizar la seguridad

Para maximizar la seguridad, considere tomar las siguientes medidas:

  1. Define las local variables en un archivo de variables de entrada.

    variable "mongodb_atlas_api_pub_key" {
    default = "my-public-key"
    }
    variable "mongodb_atlas_api_pri_key" {
    default = "my-private-key"
    }
  2. Excluya el archivo de variables de entrada de su repositorio. Por ejemplo, añada el nombre del archivo al archivo .gitignore de su repositorio.

  3. Haga referencia a las variables del archivo de variables de entrada en el archivo main.tf anteponiéndolas con vars..

    provider "mongodbatlas" {
    public_key = vars.mongodb_atlas_api_pub_key
    private_key = vars.mongodb_atlas_api_pri_key
    }
6

Para obtener una lista completa de las opciones de configuración admitidas, consulte la documentación del proveedor Terraform de MongoDB Atlas.

Nota

Los clústeres Atlas de nivel compartido no admiten todas las configuraciones disponibles con el proveedor Terraform de MongoDB Atlas. Para obtener una lista de las configuraciones no compatibles, consulte la documentación de Atlas.

7

Después de crear un archivo Terraform usando la plantilla, cree el clúster Atlas:

1
2
terraform init

La siguiente salida indica que el proveedor Terraform de MongoDB Atlas está instalado y listo para usarse:

1Initializing the backend...
2
3Initializing provider plugins...
4- Checking for available provider plugins...
5- Downloading plugin for provider "mongodbatlas" (terraform-providers/mongodbatlas) 0.5.1...
6
7The following providers do not have any version constraints in configuration,
8so the latest version was installed.
9
10To prevent automatic upgrades to new major versions that may contain breaking
11changes, it is recommended to add version = "..." constraints to the
12corresponding provider blocks in configuration, with the constraint strings
13suggested below.
14
15* provider.mongodbatlas: version = "~> 0.5"
16
17Terraform has been successfully initialized!
3
terraform plan

La siguiente salida muestra lo que sucede cuando se aplica la configuración de Terraform:

1Refreshing Terraform state in-memory prior to plan...
2The refreshed state will be used to calculate this plan, but will not be
3persisted to local or remote state storage.
4
5
6------------------------------------------------------------------------
7
8An execution plan has been generated and is shown below.
9Resource actions are indicated with the following symbols:
10 + create
11
12Terraform will perform the following actions:
13
14 # mongodbatlas_cluster.my_cluster will be created
15 + resource "mongodbatlas_cluster" "my_cluster" {
16 + advanced_configuration = (known after apply)
17 + auto_scaling_disk_gb_enabled = false
18 + backing_provider_name = "AWS"
19 + backup_enabled = false
20 + bi_connector = (known after apply)
21 + cluster_id = (known after apply)
22 + cluster_type = (known after apply)
23 + connection_strings = (known after apply)
24 + disk_size_gb = 2
25 + encryption_at_rest_provider = (known after apply)
26 + id = (known after apply)
27 + mongo_db_major_version = "4.2"
28 + mongo_db_version = (known after apply)
29 + mongo_uri = (known after apply)
30 + mongo_uri_updated = (known after apply)
31 + mongo_uri_with_options = (known after apply)
32 + name = "atlasClusterName"
33 + num_shards = 1
34 + paused = (known after apply)
35 + pit_enabled = (known after apply)
36 + project_id = (known after apply)
37 + provider_backup_enabled = false
38 + provider_disk_iops = (known after apply)
39 + provider_disk_type_name = (known after apply)
40 + provider_encrypt_ebs_volume = (known after apply)
41 + provider_name = "TENANT"
42 + provider_region_name = "providerRegionName"
43 + provider_volume_type = (known after apply)
44 + replication_factor = (known after apply)
45 + snapshot_backup_policy = (known after apply)
46 + srv_address = (known after apply)
47 + state_name = (known after apply)
48
49 + labels {
50 + key = (known after apply)
51 + value = (known after apply)
52 }
53
54 + replication_specs {
55 + id = (known after apply)
56 + num_shards = (known after apply)
57 + zone_name = (known after apply)
58
59 + regions_config {
60 + analytics_nodes = (known after apply)
61 + electable_nodes = (known after apply)
62 + priority = (known after apply)
63 + read_only_nodes = (known after apply)
64 + region_name = (known after apply)
65 }
66 }
67 }
68
69 # mongodbatlas_database_user.my_user will be created
70 + resource "mongodbatlas_database_user" "my_user" {
71 + auth_database_name = "admin"
72 + id = (known after apply)
73 + password = (sensitive value)
74 + project_id = (known after apply)
75 + username = "jww"
76 + x509_type = "NONE"
77
78 + labels {
79 + key = (known after apply)
80 + value = (known after apply)
81 }
82
83 + roles {
84 + collection_name = (known after apply)
85 + database_name = "admin"
86 + role_name = "atlasAdmin"
87 }
88 }
89
90 # mongodbatlas_project.my_project will be created
91 + resource "mongodbatlas_project" "my_project" {
92 + cluster_count = (known after apply)
93 + created = (known after apply)
94 + id = (known after apply)
95 + name = "atlasProjectName"
96 + org_id = "5d3716bfcf09a21576d7983e"
97 }
98
99 # mongodbatlas_project_ip_whitelist.my_ipaddress will be created
100 + resource "mongodbatlas_project_ip_whitelist" "my_ipaddress" {
101 + aws_security_group = (known after apply)
102 + cidr_block = (known after apply)
103 + comment = "My IP Address"
104 + id = (known after apply)
105 + ip_address = "204.210.139.18"
106 + project_id = (known after apply)
107 }
108
109Plan: 4 to add, 0 to change, 0 to destroy.
110
111------------------------------------------------------------------------
112
113Note: You didn't specify an "-out" parameter to save this plan, so Terraform
114can't guarantee that exactly these actions will be performed if
115"terraform apply" is subsequently run.

Continúe al siguiente paso si la información es correcta.

4
terraform apply

Escriba yes cuando se le solicite para confirmar que desea aplicar la configuración.

Nota

El comando terraform apply puede tardar varios minutos en completarse.

La siguiente salida indica que tu clúster de Atlas está creado. Puedes crear una conexión a esta implementación usando la extensión de VS Code con las cadenas de conexión mostradas:

1Apply complete! Resources: 4 added, 0 changed, 0 destroyed.
2
3Outputs:
4
5connection_strings = [
6 [
7 {
8 "aws_private_link" = {}
9 "aws_private_link_srv" = {}
10 "private" = ""
11 "private_srv" = ""
12 "standard" = "mongodb://myCluster-shard-00-00-xxxxx.mongodb.net:27017,myCluster-shard-00-01-xxxxx.mongodb.net:27017,myCluster-shard-00-02-xxxxx.mongodb.net:27017/?ssl=true&authSource=admin&replicaSet=myCluster-shard-0"
13 "standard_srv" = "mongodb+srv://myCluster-xxxxx.mongodb.net"
14 },
15 ],
16]

Advertencia

Al eliminar un clúster se destruyen las bases de datos, las colecciones y los documentos almacenados en él,así como todos los demás recursos definidos en la configuración de Terraform en la que configuró el clúster.

Proceda con precaución.

Para eliminar el clúster Atlas:

1
2
terraform destroy

Escriba yes cuando se le solicite para confirmar que desea destruir los recursos definidos en la configuración.

Nota

El comando terraform destroy puede tardar varios minutos en completarse.

La siguiente salida indica que el clúster de Atlas y todos los recursos asociados se eliminan:

Destroy complete! Resources: 4 destroyed.

Volver

AI & Data Usage

En esta página