Menu Docs
Página inicial do Docs
/
MongoDB para VS Code

Criar um Atlas Cluster a partir de um modelo usando Terraform

Nesta página

  • Pré-requisitos
  • Procedimentos

Esta página descreve como usar o modelo Atlas para arquivos Terraform incluídos com a extensão MongoDB para Visual Studio Code para criar clusters de camada compartilhada.

Após carregar o modelo, você configura o agrupamento e fornece detalhes sobre sua conta do Atlas. Em seguida, você usa os comandos do Terraform para planejar, aplicar e destruir seu Atlas cluster.

Antes de usar o modelo Atlas para arquivos Terraform incluídos na Extensão MongoDB para Visual Studio Code, você deve:

Use o modelo Atlas para arquivos Terraform incluídos com a extensão VS Code para configurar um cluster Atlas:

1
Sistema operacional
Método
Ações
Any
Menu de código do Visual Studio
File > New File
macOS
Atalho de teclado
Pressione Command + N
Windows e Linux
Atalho de teclado
Pressione Control + N
2

Observação

main.tf é o nome do arquivo recomendado para o ponto de entrada de um módulo Terraform.

3

A Extensão MongoDB para VSCode preenche o arquivo com uma configuração de exemplo utilizando o provedor de Terraform MongoDB Atlas para criar um cluster de Camada Compartilhada do Atlas.

4

O cursor se move para selecionar o valor do argumento name do recurso mongodbatlas_project .

Para configurar o cluster, forneça valores para os seguintes argumentos:

Dica

Pressione a tecla Tab para selecionar o próximo argumento no modelo que você deve atualizar.

Atributo
Valor
mongodbatlas_project
.name
Nome do projeto Atlas que esta configuração cria.
mongodbatlas_cluster
.name
Nome do cluster do Atlas que esta configuração cria.
mongodbatlas_cluster
.backing_provider_name

Provedor no qual o cluster Atlas criado por esta configuração está hospedado. Escolha um dos seguintes valores aceitos:

  • AWS

  • AZURE

  • GCP

mongodbatlas_cluster
.provider_region_name

Região à qual o agrupamento do Atlas que esta configuração cria é implantado. Certifique-se que a região que escolheu suporta clusters Atlas do tamanho de instância que pretende implementar.

Por padrão, os agrupamentos de Camada Compartilhada de provisões de modelo: M2 e M5.

Para detalhes sobre os tamanhos de instância que cada provedor e região suporta, consulte as seguintes seções na documentação do Atlas:

mongodbatlas_cluster
.provider_instance_size_name

Tamanho da instância do Atlas cluster que esta configuração cria.

Qualquer:

  • Escolha um dos tamanhos de instância de Nível Compartilhado incluídos no modelo: M2 ou M5.

  • Insira outro tamanho de instância que o Atlas suporta para seu provedor e região escolhidos.

Para detalhes sobre os tamanhos de instância que cada provedor e região suporta, consulte as seguintes seções na documentação do Atlas:

mongodbatlas_cluster
.disk_size_gbs

Tamanho do disco do Atlas cluster que essa configuração cria. Certifique-se de fornecer um valor igual ou menor que o tamanho máximo do disco para o tamanho da instância que você escolheu.

  • Para agrupamentos do M2, insira 2.

  • Para agrupamentos do M5, insira 5.

Para detalhes sobre os tamanhos de disco que cada provedor suporta para cada tamanho de instância, consulte as seguintes seções na documentação do Atlas:

5

Aviso

As variáveis local contêm informações confidenciais. Não insira esses valores em um repositório que esteja disponível publicamente.

Forneça valores para as seguintes local variáveis:

Variável
Valor
mongodb_atlas_api_pub_key
Chave API pública do Atlas.
mongodb_atlas_api_pri_key
Chave API privada do Atlas.
mongodb_atlas_org_id
ID da organização do Atlas em que você deseja criar um projeto.
mongodb_atlas_database_username
Nome de usuário do usuário do banco de dados MongoDB que o Atlas cria para seu cluster.
mongodb_atlas_database_user_password
Senha do usuário do banco de dados MongoDB nomeado em mongodb_atlas_database_username.
mongodb_atlas_whitelistip
Endereço IP ou bloco CIDR a partir do qual o seu Atlas cluster está acessível.

Exemplo

Usar um arquivo de variáveis de entrada para maximizar a segurança

Para maximizar a segurança, considere seguir as seguintes etapas:

  1. Defina as variáveis local em um arquivo de variáveisde entrada.

    variable "mongodb_atlas_api_pub_key" {
    default = "my-public-key"
    }
    variable "mongodb_atlas_api_pri_key" {
    default = "my-private-key"
    }
  2. Exclua o arquivo de variáveis de entrada do repositório. Por exemplo, adicione o nome do arquivo ao arquivo .gitignore do seu repositório.

  3. Variáveis de referência do arquivo de variáveis de entrada no arquivo main.tf prefaciando-as com vars..

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

Para uma lista completa de opções de configuração suportadas, consulte a documentação do provedor de Terraformes do Atlas do MongoDB.

Observação

Os clusters do Atlas de camada compartilhada não suportam todas as configurações disponíveis com o provedor MongoDB Atlas Terraform. Para obter uma lista de configurações não suportadas, consulte a documentação do Atlas.

7

Após criar um arquivo de Terraform utilizando o modelo, crie o cluster do Atlas:

1
2
terraform init

A saída a seguir indica que o MongoDB Atlas Terraform Provider está instalado e pronto para uso:

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

A seguinte saída mostra o que acontece quando você aplica a configuração 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_instance_size_name = "M2"
42 + provider_name = "TENANT"
43 + provider_region_name = "providerRegionName"
44 + provider_volume_type = (known after apply)
45 + replication_factor = (known after apply)
46 + snapshot_backup_policy = (known after apply)
47 + srv_address = (known after apply)
48 + state_name = (known after apply)
49
50 + labels {
51 + key = (known after apply)
52 + value = (known after apply)
53 }
54
55 + replication_specs {
56 + id = (known after apply)
57 + num_shards = (known after apply)
58 + zone_name = (known after apply)
59
60 + regions_config {
61 + analytics_nodes = (known after apply)
62 + electable_nodes = (known after apply)
63 + priority = (known after apply)
64 + read_only_nodes = (known after apply)
65 + region_name = (known after apply)
66 }
67 }
68 }
69
70 # mongodbatlas_database_user.my_user will be created
71 + resource "mongodbatlas_database_user" "my_user" {
72 + auth_database_name = "admin"
73 + id = (known after apply)
74 + password = (sensitive value)
75 + project_id = (known after apply)
76 + username = "jww"
77 + x509_type = "NONE"
78
79 + labels {
80 + key = (known after apply)
81 + value = (known after apply)
82 }
83
84 + roles {
85 + collection_name = (known after apply)
86 + database_name = "admin"
87 + role_name = "atlasAdmin"
88 }
89 }
90
91 # mongodbatlas_project.my_project will be created
92 + resource "mongodbatlas_project" "my_project" {
93 + cluster_count = (known after apply)
94 + created = (known after apply)
95 + id = (known after apply)
96 + name = "atlasProjectName"
97 + org_id = "5d3716bfcf09a21576d7983e"
98 }
99
100 # mongodbatlas_project_ip_whitelist.my_ipaddress will be created
101 + resource "mongodbatlas_project_ip_whitelist" "my_ipaddress" {
102 + aws_security_group = (known after apply)
103 + cidr_block = (known after apply)
104 + comment = "My IP Address"
105 + id = (known after apply)
106 + ip_address = "204.210.139.18"
107 + project_id = (known after apply)
108 }
109
110Plan: 4 to add, 0 to change, 0 to destroy.
111
112------------------------------------------------------------------------
113
114Note: You didn't specify an "-out" parameter to save this plan, so Terraform
115can't guarantee that exactly these actions will be performed if
116"terraform apply" is subsequently run.

Avance para a próxima etapa se as informações estiverem corretas.

4
terraform apply

Digite yes quando solicitado para confirmar que você deseja aplicar a configuração.

Observação

O comando terraform apply pode levar vários minutos para ser concluído.

A seguinte saída indica que seu cluster do Atlas foi criado. Você pode criar uma conexão com essa implantação usando a extensão VS Code com as strings de conexão exibidas:

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]

Aviso

Excluir um cluster destrói bancos de dados, coleções e documentos armazenados nele e todos os outros recursos definidos na configuração Terraform na qual você configurou o cluster.

Prossiga com cuidado.

Para excluir o Atlas cluster:

1
2
terraform destroy

Digite yes quando solicitado para confirmar que você deseja destruir os recursos definidos na configuração.

Observação

O comando terraform destroy pode levar vários minutos para ser concluído.

A seguinte saída indica que o agrupamento Atlas e todos os recursos associados são excluídos:

Destroy complete! Resources: 4 destroyed.

Voltar

AI & Data Usage