Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Introdução ao Terraform e ao provedor MongoDB Atlas

Você pode usar o Terraform para gerenciar sua infraestrutura do MongoDB Atlas como código com o provedor Atlas Terraform. O fornecedor Atlas Terraform automatiza os sistemas de infraestrutura simplificando o processo de provisionamento, gerenciamento e controle da infraestrutura do Atlas como código.

Este guia ensina como criar e destruir Atlas clusters em uma organização MongoDB Atlas existente.

Observação

O fornecedor Atlas Terraform é compatível com qualquer versão do MongoDB compatível com o Atlas em seu projeto e região. Para saber como alterar a versão do MongoDB do cluster, consulte Atualizar uma versão principal.

Depois de configurar um ambiente de teste, continue a experimentar uma infraestrutura gerenciada pelo Terraform com recursos adicionais do MongoDB e HashiCorp.

Os clusters Atlas Infinite oferecem suporte ao provedor Atlas Terraform. Para saber mais sobre o Atlas Infinite, consulte MongoDB Atlas Infinite: Visão geral.

Antes de implementar o MongoDB Atlas com Terraform, você deve:

  • Crie uma conta Atlas .

  • Obtenha o ID da organização da qual você é o Organization Owner.

    Dica

    Você pode encontrar sua ID da organização na interface do usuário do Atlas, sob o General Settingsda sua organização.

  • Configure uma autenticação de conta de serviço (SA). O role de Proprietário da organização é necessário para visualizar o ID da organização, gerenciar contas de serviço e criar ou excluir clusters e outros recursos do projeto .

  • Instale Terraform.

1
mkdir terraform-proj
cd terraform-proj
2

Crie os arquivos main.tf, provider.tf, variables.tf e versions.tf .

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

Adicione o seguinte conteúdo a provider.tf:

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

Adicione o seguinte conteúdo 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
}

Adicione o seguinte conteúdo a versions.tf:

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

Observação

O ID do cliente da sua conta do Atlas Service e o segredo do cliente são segredos. Considere armazená-los como variáveis de ambiente.

4

Observação

O exemplo a seguir usa o módulo projeto para criar o projeto e o recurso mongodbotlas_advanced_cluster para criar um cluster gratuito.

Adicione o seguinte conteúdo ao seu arquivo 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"
}
}
]
}
]
}

Se você trabalhar com um provedor de nuvem ou região diferente, poderá atualizar os campos a seguir para corresponder ao seu ambiente.

Campo
Novo valor

backing_provider_name

Seu provedor. Os valores possíveis são: "AWS", "AZURE" ou "GCP".

region_name

Consulte Provedores de nuvem e regiões para ver todas as regiões que você pode usar.

Importante

Você pode definir database_edition no recurso mongodbatlas_advanced_cluster ao criar um cluster dedicado. Você não pode alterá-lo posteriormente e não pode escalar um cluster dedicado de volta para um cluster Free ou Flex. database_edition não está disponível para clusters gratuitos, como o cluster M0 neste exemplo, e para clusters Flex.

O recurso mongodbatlas_advanced_cluster e as fontes de dados singulares (mongodbatlas_advanced_cluster) e plurais (mongodbatlas_advanced_clusters) expõem database_edition e o atributo somente leitura effective_database_edition. Como o database_edition é opcional, utilize o effective_database_edition para confirmar qual edição o Atlas atribuiu, mesmo que você mesmo não tenha definido.

Para criar um cluster dedicado no Atlas Infinite, configure database_edition para "INFINITE" e configure compute_enabled em auto_scaling, como o seguinte exemplo mostra:

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

Os clusters Atlas Infinite dedicados são compatíveis apenas com o tipo de cluster REPLICASET.

compute_max_instance_size é necessário quando compute_enabled é true. M30+ Os clusters Atlas Infinite estão disponíveis apenas na AWS Gen2, portanto, acrescente _GEN_2 ao nome da camada, como em M60_GEN_2. Para saber mais, consulte Clusters dedicados da Ger2.

Um cluster do Atlas Infinite tem dois nós de computação elegíveis, um primary e um standby, portanto, defina node_count como 2. Para saber mais, consulte Replicação e failover.

Para atender a mais leituras ou isolar queries de análise do volume de trabalho operacional, adicione nós somente leitura ou de análise definindo read_only_specs ou analytics_specs ao lado de electable_specs no mesmo objetoregion_configs . Para saber mais, consulte Isolamento de carga de trabalho em clusters Atlas Infinite.

storage_config.shard_size_limit_gb é necessário somente se você incluir storage_config. Se você omitir storage_config, o Atlas aplicará o limite máximo de armazenamento padrão. Para saber mais, consulte Limite máximo de armazenamento.

Observação

storage_config.shard_size_limit_gb Define a quantidade máxima de dados que o cluster pode armazenar. Para saber mais, consulte a documentação do provedor Terraform.

5

Você pode enviar informações da configuração do Terraform para a janela do terminal. Isso é útil para valores que você não saberá até que o Atlas crie os recursos, como sua string de conexão.

Se você quiser exibir seus parâmetros após implantar o projeto, adicione algumas linhas de código de saída ao arquivo main.tf.

6

Para inicializar seu projeto, execute o seguinte comando:

terraform init

Este comando também baixa e instala o MongoDB Atlas Provider, se você ainda não o fez.

7

Para visualizar seu plano de execução, execute o seguinte comando:

terraform plan

O Terraform detalha as mudanças que planeja fazer. Se a saída não for a que você espera, pode haver um problema no seu arquivo main.tf .

8

Para implantar sua infraestrutura, execute o seguinte comando:

terraform apply

Quando solicitado Do you want to perform these actions?, insira yes.

Observação

Novos recursos do Atlas podem levar alguns minutos para serem provisionados. O provedor Atlas Terraform atualiza você a cada dez segundos até que seja concluído.

Depois que terraform apply for concluído, confirme se o cluster está implantado.

  • Um novo cluster aparece na IU do Atlas em seu projeto.

  • Se você adicionou valores de saída a main.tf, a string de conexão aparecerá na saída do Terraform.

Para excluir todos os recursos criados em seu diretório Terraform, execute o seguinte comando:

terraform destroy

Aviso

Se você excluir todos os seus recursos, não poderá recuperá-los.

Quando solicitado Do you really want to destroy all resources?, insira yes.

Depois de implantar seu cluster, você pode:

Recursos adicionais: