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.
Pré-requisitos
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.
Implemente o MongoDB Atlas com Terraform
Preencha os arquivos de suporte.
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.
Configure o conteúdo main.tf.
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 |
|---|---|
| Seu provedor. Os valores possíveis são: |
| 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.
(Opcional) Parâmetros de exibição.
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.
Implemente sua infraestrutura.
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.
Verificar a implantação
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.
Encerrar a Instância do MongoDB Atlas
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.
Próximos passos
Depois de implantar seu cluster, você pode:
Dimensionar para um cluster dedicado: revise o módulo de cluster e a documentação do Atlas Terraform Provider para obter configurações mais completas.
Conecte-se ao cluster: Use a string de conexão do objeto cluster ou dos valores de saída do Terraform.
Recursos adicionais: