Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Comienza con Terraform y el proveedor de MongoDB Atlas

Puede usar Terraform para gestionar su infraestructura de MongoDB Atlas como Infrastructure as Code con el proveedor de Atlas Terraform. El proveedor Atlas Terraform automatiza las implementaciones de infraestructura al simplificar el proceso de provisionamiento, gestionar y controlar la infraestructura de Atlas como Infrastructure as Code.

Esta guía le enseña cómo crear y eliminar clústeres de Atlas en una organización de MongoDB Atlas existente.

Nota

El proveedor Atlas Terraform admite cualquier versión de MongoDB compatible con Atlas en su proyecto y región. Para obtener información sobre cómo cambiar la versión de MongoDB de su clúster, consulte la sección «Actualizar una versión principal».

Una vez que hayas configurado un entorno de prueba, continúa experimentando con una infraestructura gestionada por Terraform con recursos adicionales de MongoDB y HashiCorp.

Los clústeres de Atlas Infinite son compatibles con el proveedor Atlas Terraform. Para obtener más información sobre Atlas Infinite, consulte MongoDB Atlas Infinite: Descripción general.

Antes de implementar MongoDB Atlas con Terraform, debe:

  • Crear una cuentaen Atlas.

  • Obtén tu Identificador de la Organización de la que eres el Organization Owner.

    Tip

    Se puede encontrar el Identificador de la organización en la interfaz de usuario de Atlas, en General Settings de la organización.

  • Configure la autenticación de la cuenta de servicio (SA). Se requiere el rol de Propietario de la organización para ver el ID de la organización, administrar las cuentas de servicio y crear o eliminar clústeres y otros recursos del proyecto.

  • Instala Terraform.

1
mkdir terraform-proj
cd terraform-proj
2

Crea los archivos main.tf, provider.tf, variables.tf y versions.tf.

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

Agregue el siguiente contenido a provider.tf:

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

Agregue el siguiente contenido a 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
}

Agregue el siguiente contenido a versions.tf:

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

Nota

Su ID de cliente y su clave secreta de la cuenta de servicio de Atlas son información confidencial. Considere almacenarlos como variables de entorno.

4

Nota

El siguiente ejemplo utiliza el módulo project para crear el proyecto y el recurso mongodbatlas_advanced_cluster para crear un clúster gratuito.

Agregue el siguiente contenido a su archivo 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"
}
}
]
}
]
}

Si trabaja con un proveedor de nube o una región diferente, puede actualizar los siguientes campos para que coincidan con su entorno.

Campo
Nuevo valor

backing_provider_name

Tu proveedor. Los posibles valores son: "AWS", "AZURE" o "GCP".

region_name

Consulta Proveedores de nube y regiones para conocer todas las regiones que puedes utilizar.

Importante

Puedes configurar database_edition en el recurso mongodbatlas_advanced_cluster al crear un clúster dedicado. No podrás modificarlo posteriormente, ni tampoco podrás convertir un clúster dedicado en un clúster gratuito o flexible. database_edition no está disponible para clústeres gratuitos, como el clúster M0 de este ejemplo, ni para clústeres flexibles.

El recurso mongodbatlas_advanced_cluster, y las fuentes de datos singular (mongodbatlas_advanced_cluster) y plural (mongodbatlas_advanced_clusters), exponen database_edition y el atributo de solo lectura effective_database_edition. Dado que database_edition es opcional, utilice effective_database_edition para confirmar qué edición asignó Atlas, incluso si usted no la configuró.

Para crear un clúster dedicado en Atlas Infinite, configure database_edition en "INFINITE" y compute_enabled en auto_scaling, como se muestra en el siguiente ejemplo:

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
}
}
}
]
}
]
}

Los clústeres dedicados de Atlas Infinite solo admiten el tipo de clúster REPLICASET.

compute_max_instance_size es necesario cuando compute_enabled es true. Los clústeres M30+ Atlas Infinite solo están disponibles en AWS Gen2, así que agregue _GEN_2 al nombre del nivel, como en M60_GEN_2. Para obtener más información, consulte Clústeres dedicados Gen2.

Un clúster Atlas Infinite tiene dos nodos de cómputo seleccionables, uno principal y otro en espera, así que configure node_count en 2. Para obtener más información, consulte Replicación y conmutación por error.

Para gestionar más lecturas o aislar las consultas analíticas de la carga de trabajo operativa, añada nodos de solo lectura o analíticos configurando read_only_specs o analytics_specs junto con electable_specs en el mismo objeto region_configs. Para obtener más información, consulte Aislamiento de carga de trabajo en clústeres de Atlas Infinite.

storage_config.shard_size_limit_gb Solo es necesario si incluye storage_config. Si omite storage_config, Atlas aplica el límite máximo de almacenamiento predeterminado. Para obtener más información, consulte Límite máximo de almacenamiento.

Nota

storage_config.shard_size_limit_gb Establece la cantidad máxima de datos que el clúster puede almacenar. Para obtener más información, consulte la documentación del proveedor de Terraform.

5

Puedes mostrar información desde tu configuración de Terraform en la ventana de tu terminal. Esto resulta útil para valores que no conocerás hasta que Atlas cree los recursos, como tu cadena de conexión.

Si deseas mostrar tus parámetros después de implementar tu proyecto, agrega algunas líneas de código de salida a tu archivo main.tf.

6

Para inicializar tu proyecto, ejecuta el siguiente comando:

terraform init

Este comando también descarga e instala el proveedor de MongoDB Atlas, si aún no lo has hecho.

7

Para ver el plan de ejecución, ejecute el siguiente comando:

terraform plan

Terraform describe los cambios que planea realizar. Si el resultado no es lo que esperas, podría haber un problema en tu archivo main.tf.

8

Para implementar su infraestructura, ejecute el siguiente comando:

terraform apply

Cuando se le pida Do you want to perform these actions?, introduzca yes.

Nota

Los nuevos recursos de Atlas pueden tardar algunos minutos en aprovisionarse. El proveedor de Terraform de Atlas te actualiza cada diez segundos hasta que se complete.

Una vez que terraform apply se complete, confirme que el clúster está implementado.

  • Aparece un nuevo clúster en la interfaz de usuario de Atlas en su proyecto.

  • Si agregó valores de salida a main.tf, la cadena de conexión aparece en la salida de Terraform.

Para borrar todos los recursos creados en tu directorio de Terraform, ejecuta el siguiente comando:

terraform destroy

Advertencia

Si elimina todos sus recursos, no podrá recuperarlos.

Cuando se le pida Do you really want to destroy all resources?, introduzca yes.

Después de implementar el clúster, puede:

Recursos adicionales: