1. Visão geral
Última atualização:23/07/2020
O que é o Cloud Spanner?
O Google Cloud Spanner é um banco de dados distribuído globalmente e compatível com ACID, que lida automaticamente com réplicas, fragmentação e processamento de transações para que você possa rapidamente escalonar e atender a qualquer padrão de uso e garantir o sucesso dos seus produtos.
Principais recursos
- Banco de dados relacional, criado para escalonamento: tudo o que você espera de um banco de dados relacional, como esquemas, consultas SQL e transações ACID, testado na prática e pronto para escalonamento global.
- 99,999% de disponibilidade: o Cloud Spanner oferece 99,999% de disponibilidade líder do setor para instâncias multirregionais, 10 vezes menos tempo de inatividade do que quatro noves, e oferece replicação transparente e síncrona em todas as configurações regionais e multirregionais.
- Fragmentação automática: o Cloud Spanner otimiza o desempenho fragmentando automaticamente os dados com base na carga da solicitação e no tamanho dos dados. Como resultado, você passa menos tempo se preocupando com o escalonamento do banco de dados e, em vez disso, se concentra na expansão dos negócios.
O que você vai aprender
- Como usar o provedor Terraform do Google Cloud.
- Como usar o Terraform para criar instâncias e bancos de dados do Cloud Spanner.
- Como usar o Terraform para modificar recursos do Cloud Spanner.
- Como usar o Terraform para excluir recursos do Cloud Spanner.
2. Configuração e requisitos
Configuração de ambiente autoguiada
Se você ainda não tem uma Conta do Google (Gmail ou Google Apps), crie uma. Faça login no console do Google Cloud Platform ( console.cloud.google.com) e crie um novo projeto:
Lembre-se do código do projeto, um nome exclusivo em todos os projetos do Google Cloud. O nome acima já foi escolhido e não servirá para você. Faremos referência a ele mais adiante neste codelab como PROJECT_ID.
Em seguida, você precisará ativar o faturamento no console do Cloud para usar os recursos do Google Cloud.
A execução por meio deste codelab terá um custo baixo, mas poderá ser mais se você decidir usar mais recursos ou se deixá-los em execução. Consulte a seção "limpeza" no final deste documento.
Novos usuários do Google Cloud Platform estão qualificados para um teste sem custo financeiro de US$300.
Authentication
Instale a ferramenta de linha de comando gcloud, caso ainda não tenha feito isso. Depois que a gcloud estiver instalada, ative as Application Default Credentials executando o seguinte comando no terminal:
$ gcloud auth application-default login
Terraform
Se você ainda não instalou o Terraform antes, instale-o.
3. Provedor do Terraform do Google Cloud
O Provedor do Terraform do Google Cloud oferece quatro recursos do Cloud Spanner:
- google_spanner_instance
- google_spanner_database
- google_spanner_instance_iam
- google_spanner_database_iam
Neste codelab, vamos criar e gerenciar instâncias e bancos de dados do Cloud Spanner.
Ambiente
No seu ambiente de desenvolvimento, crie um novo diretório para seus arquivos de configuração do Terraform.
$ mkdir ~/terraform-spanner $ cd ~/terraform-spanner
Depois, crie um arquivo chamado "main.tf" pelo seguinte conteúdo e substitua PROJECT_ID pelo ID do seu projeto do Google Cloud:
$ cat >> main.tf <<'EOF' provider "google" { project = "PROJECT_ID" } EOF
Neste codelab, vamos modificar esse arquivo e aplicar as mudanças.
4. Criar instâncias e bancos de dados
Modifique o main.tf com o conteúdo a seguir para adicionar uma nova instância do Cloud Spanner:
provider "google" { project = "PROJECT_ID" } resource "google_spanner_instance" "main" { config = "regional-us-central1" display_name = "first-terraform-instance" num_nodes = 3 }
Execute o seguinte comando para aplicar as alterações:
$ terraform apply # ... Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes # ... Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Depois que as alterações forem aplicadas, você poderá ver a instância no console do Google Cloud. A configuração regional não pode ser modificada depois que uma instância é criada.
Depois de criar a instância, vamos criar um banco de dados nas próximas etapas. Modifique main.tf com o seguinte conteúdo:
provider "google" { project = "PROJECT_ID" } resource "google_spanner_instance" "main" { config = "regional-us-central1" display_name = "first-terraform-instance" num_nodes = 3 } resource "google_spanner_database" "database" { instance = google_spanner_instance.main.name name = "my-first-database" }
Novamente, use o seguinte comando para aplicar as alterações:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Após a conclusão, "my-first-database" estará disponível na instância:
5. Como modificar uma instância
Conforme observado na seção anterior, nem todas as propriedades das instâncias podem ser modificadas. No entanto, é possível aumentar/diminuir o número de nós para ajustar os recursos usados pela instância. A instância criada tinha três nós. Ao modificar o arquivo main.tf, vamos aumentar o número de nós para 5:
provider "google" { project = "PROJECT_ID" } resource "google_spanner_instance" "main" { config = "regional-us-central1" display_name = "first-terraform-instance" num_nodes = 5 } resource "google_spanner_database" "database" { instance = google_spanner_instance.main.name name = "my-first-database" }
A próxima etapa é aplicar as alterações:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Após a conclusão, a instância usará cinco nós.
6. Como excluir um banco de dados
É possível excluir um banco de dados permanentemente quando não precisar mais dele. É só remover o banco de dados do arquivo main.tf e aplicar as mudanças.
provider "google" { project = "PROJECT_ID" } resource "google_spanner_instance" "main" { config = "regional-us-central1" display_name = "first-terraform-instance" num_nodes = 5 }
$ terraform apply # ... Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
Após a conclusão, o banco de dados será excluído permanentemente.
7. Excluir uma instância
É possível excluir uma instância permanentemente quando não precisar mais dela. Basta remover a instância do arquivo main.tf e aplicar as alterações.
provider "google" { project = "PROJECT_ID" }
$ terraform apply # ... Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
Após a conclusão, a instância será excluída permanentemente.
8. Parabéns!
Você criou, modificou e excluiu recursos do Cloud Spanner usando o Terraform.
O que vimos
- Como usar o provedor do Terraform para Google Cloud.
- Como usar o Terraform para criar instâncias e bancos de dados do Cloud Spanner.
- Como usar o Terraform para modificar recursos do Cloud Spanner.
- Como usar o Terraform para excluir recursos do Cloud Spanner.
Saiba mais
- Confira a documentação do Google Cloud Spanner.
- Leia sobre o recurso do Terraform para o Google Cloud Spanner.
- Leia sobre a configuração de regras do IAM para instâncias e bancos de dados.