Criar um cluster e a instância principal

Esta página descreve como criar um cluster do AlloyDB e a instância principal.

Antes de começar

  • O projeto do Google Cloud que você está usando precisa ter sido ativado para acessar o AlloyDB.
  • Uma rede VPC no projeto do Google Cloud que você está usando já precisa estar configurada para acesso a serviços particulares ao AlloyDB.
  • É necessário ter uma destas funções do IAM no projeto do Google Cloud que você está usando:
    • roles/alloydb.admin (papel predefinido do IAM de administrador do AlloyDB)
    • roles/owner (o papel básico do IAM "Proprietário")
    • roles/editor (papel básico do IAM de editor)

    Se você não tiver nenhuma dessas funções, entre em contato com o administrador da organização para solicitar acesso.

  • Você também precisa ter a permissão compute.networks.list no projeto do Google Cloud que está usando. Para receber essa permissão seguindo o princípio de privilégio mínimo, peça ao administrador para conceder a você o papel roles/compute.networkUser (usuário da rede do Compute).

Criar um novo cluster

Console

  1. Acesse a página Clusters.

    Acessar Clusters

  2. Clique em Criar cluster.

  3. Escolha uma configuração de cluster. Para mais informações sobre a diferença entre as configurações básicas e de alta disponibilidade, consulte Nós e instâncias.

    Se você não tiver certeza se o novo cluster precisa de instâncias de pool de leitura, escolha uma das configurações sem pools de leitura. É possível adicionar instâncias de pool de leitura ao cluster mais tarde, sempre que necessário.

  4. Clique em Continuar.

  5. Na seção Configurar o cluster, no campo ID do cluster, insira um ID para o cluster.

  6. No campo Senha, insira uma senha inicial para o novo cluster. O AlloyDB atribui a senha fornecida ao usuário do banco de dados postgres ao criar o cluster.

  7. No campo Database version, selecione a versão principal do PostgreSQL com que os servidores de banco de dados do cluster precisam ser compatíveis.

  8. Selecione uma região.

  9. Selecione um caminho de rede.

  10. Opcional: para aplicar um intervalo de endereços IP específico a esse cluster, em vez de permitir que o AlloyDB escolha um intervalo de endereços IP, siga estas etapas:

    1. Clique em Mostrar opção de intervalo de IP alocado.

    2. Na lista Intervalo de IP alocado, selecione um intervalo de endereços IP.

    Para mais informações sobre essa opção, consulte Criar um cluster com um intervalo de endereços IP específico.

  11. Opcional: para criptografar esse cluster usando uma chave de criptografia gerenciada pelo cliente (CMEK) em vez da criptografia gerenciada pelo Google, siga estas etapas:

    1. Clique em Opções de criptografia avançadas.

    2. Selecione Chave de criptografia gerenciada pelo cliente (CMEK).

    3. No menu exibido, selecione uma chave gerenciada pelo cliente.

      O console do Google Cloud limita essa lista a chaves no mesmo projeto e região do Google Cloud que o novo cluster. Para usar uma chave que não está nesta lista, clique em Não encontra sua chave? Insira o nome do recurso da chave e digite o nome do recurso da chave na caixa de diálogo resultante.

      O uso da CMEK com o AlloyDB requer mais configuração. Para mais informações, consulte Como usar a CMEK com o AlloyDB.

    4. Clique em Continuar.

  12. Configure a instância principal:

    1. No campo ID da instância, insira um ID para a instância principal.
    2. Selecione um tipo de máquina.
    3. Opcional: defina flags personalizadas para sua instância. Para cada flag, siga estas etapas:
      1. Clique em Adicionar flag.
      2. Na lista Nova flag do banco de dados, selecione uma flag.
      3. Informe um valor para a flag.
      4. Clique em Concluído.
  13. Se você escolheu um tipo de cluster sem pools de leitura, clique em Criar cluster. Caso não for, vá para a próxima etapa.

  14. Se você escolheu um tipo de cluster com pools de leitura, siga estas etapas:

    1. Clique em Continuar para adicionar uma ou mais instâncias do pool de leitura.
    2. Para adicionar uma instância do pool de leitura:

      1. Clique em Adicionar pool de leitura.

      2. No campo ID da instância do pool de leitura, insira um ID para a instância do pool de leitura.

      3. No campo Contagem de nós, insira uma contagem de nós.

        O número de nós em uma instância de pool de leitura determina a capacidade de computação geral da instância.

      4. Selecione um tipo de máquina.

      5. Opcional: defina flags personalizadas na sua instância. Para cada flag:

        1. Clique em Adicionar flag.
        2. Selecione uma flag na lista Nova flag do banco de dados.
        3. Informe um valor para a flag.
        4. Clique em Concluído.
      6. Clique em Adicionar pool de leitura.

    3. Clique em Criar cluster.

gcloud

Para usar a CLI gcloud, você pode instalar e inicializar a Google Cloud CLI ou usar o Cloud Shell.

  1. Para criar o cluster com o acesso a serviços particulares ou o Private Service Connect ativado, use o comando gcloud alloydb clusters create.

    Acesso privado a serviços

    gcloud alloydb clusters create CLUSTER_ID \
        --database-version=POSTGRES_VERSION \
        --password=PASSWORD \
        --region=REGION_ID \
        --project=PROJECT_ID \
        --network=NETWORK

    Private Service Connect

    gcloud alloydb clusters create CLUSTER_ID \
        --database-version=POSTGRES_VERSION \
        --password=PASSWORD \
        --region=REGION_ID \
        --project=PROJECT_ID \
        --enable-private-service-connect 

    Substitua:

    • CLUSTER_ID: o ID do cluster que você está criando. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hifens.

    • VERSION: a versão principal do PostgreSQL com que os servidores de banco de dados do cluster precisam ser compatíveis. Escolha uma destas opções:

      • 14, para compatibilidade com o PostgreSQL 14

      • 15, para compatibilidade com o PostgreSQL 15, que é a versão padrão do PostgreSQL compatível

      • 16, para compatibilidade com o PostgreSQL 16

    • PASSWORD: a senha a ser usada para o usuário postgres padrão.

    • NETWORK (opcional): o nome da rede VPC configurada para acesso a serviços particulares ao AlloyDB. Se você omitir a flag --network, o AlloyDB vai usar a rede default.

    • --enable-private-service-connect (opcional): definido para ativar o Private Service Connect como o método de conectividade do cluster e das instâncias.

    • REGION_ID: a região em que você quer colocar o cluster.

    • PROJECT_ID: o ID do projeto em que você quer colocar o cluster.

    Esse comando inicia uma operação de longa duração, retornando um ID de operação.

  2. Opcional: para aplicar um intervalo de endereços IP específico a esse cluster, em vez de permitir que o AlloyDB escolha um intervalo de endereços IP, forneça o seguinte argumento:

    --allocated-ip-range-name=RANGE
    

    Substitua RANGE pelo nome do intervalo de endereços IP que você quer que o cluster use para acesso a serviços particulares.

    Para mais informações sobre essa opção, consulte Criar um cluster com um intervalo de endereço IP específico.

  3. Opcional: para criptografar esse cluster usando uma chave de criptografia gerenciada pelo cliente (CMEK) em vez da criptografia padrão gerenciada pelo Google, forneça os seguintes argumentos:

    --kms-key=KEY_ID \
    --kms-keyring=KEYRING_ID \
    --kms-location=LOCATION_ID \
    --kms-project=PROJECT_ID
    

    Substitua:

    • KEY_ID: o ID da chave CMEK a ser usada.

    • KEYRING_ID: o ID do keyring da chave.

    • LOCATION_ID: o ID da região do chaveiro, que precisa ser o mesmo que a região do cluster.

    • PROJECT_ID: o ID do projeto do keyring.

  4. Confirme se a operação foi concluída.

    gcloud alloydb operations describe OPERATION_ID \
        --region=REGION_ID \
        --project=PROJECT_ID

    Substitua OPERATION_ID pelo ID da operação retornado na etapa anterior.

Depois de criar o cluster principal, você precisa criar uma instância principal.

Criar uma instância principal

Para criar uma instância principal, use o comando gcloud alloydb instances create.

    gcloud alloydb instances create INSTANCE_ID \
        --instance-type=PRIMARY \
        --cpu-count=CPU_COUNT \
        --region=REGION_ID \
        --cluster=CLUSTER_ID \
        --project=PROJECT_ID \
        --allowed-psc-projects=ALLOWED_PROJECT_LIST

Substitua:

  • INSTANCE_ID: o ID da instância que você está criando. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hifens.
  • CPU_COUNT: o número de vCPUs que você quer para a instância. Os valores válidos incluem:
    • 2: 2 vCPUs, 16 GB de RAM
    • 4: 4 vCPUs, 32 GB de RAM
    • 8: 8 vCPUs, 64 GB de RAM
    • 16: 16 vCPUs, 128 GB de RAM
    • 32: 32 vCPUs, 256 GB de RAM
    • 64: 64 vCPUs, 512 GB de RAM
    • 96: 96 vCPUs, 768 GB de RAM
    • 128: 128 vCPUs, 864 GB de RAM
  • REGION_ID: a região em que você quer que a instância seja colocada.
  • CLUSTER_ID: o ID do cluster que você criou anteriormente.
  • PROJECT_ID: o ID do projeto em que o cluster
  • ALLOWED_PROJECT_LIST (opcional): a lista separada por vírgulas de IDs de projeto ou número de projeto que você quer permitir o acesso à instância, se estiver usando o Private Service Connect.

Terraform

Para criar um cluster, use uma recurso do Terraform.

Confira a seguir o snippet de código para criar um cluster com base no exemplo de cluster completo do AlloyDB:

resource "google_alloydb_cluster" "cluster_abc" {
  cluster_id = "alloydb-cluster"
  location   = "us-central1"
  network_config {
    network = google_compute_network.default.id
  }
  database_version = "POSTGRES_15"

  initial_user {
    user     = "postgres"
    password = "postgres"
  }

  continuous_backup_config {
    enabled              = true
    recovery_window_days = 14
  }

  automated_backup_policy {
    location      = "us-central1"
    backup_window = "1800s"
    enabled       = true

    weekly_schedule {
      days_of_week = ["MONDAY"]

      start_times {
        hours   = 23
        minutes = 0
        seconds = 0
        nanos   = 0
      }
    }

    quantity_based_retention {
      count = 1
    }

    labels = {
      test = "alloydb-cluster-backup-policy-labels"
    }
  }

  labels = {
    test = "alloydb-cluster-labels"
  }
}

data "google_project" "project" {}

resource "google_compute_network" "default" {
  name = "alloydb-cluster-network"
}

Preparar o Cloud Shell

Para aplicar a configuração do Terraform a um projeto do Google Cloud, prepare o Cloud Shell da seguinte maneira:

  1. Inicie o Cloud Shell.
  2. Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.

    Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    As variáveis de ambiente são substituídas se você definir valores explícitos no arquivo de configuração do Terraform.

Preparar o diretório

Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.

  1. No Cloud Shell, crie um diretório e um novo arquivo nele. O nome do arquivo precisa ser um arquivo TF, por exemplo, main.tf. Neste documento, o arquivo é chamado de main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Copie o exemplo de código no main.tf recém-criado. Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução completa.
  3. Revise o arquivo main.tf e modifique os parâmetros de amostra para aplicar ao seu ambiente.
  4. Salve as alterações.
  5. Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
    terraform init
    Opcional: para usar a versão mais recente do provedor do Google, inclua a opção -upgrade:
    terraform init -upgrade

Aplique as alterações

  1. Revise a configuração para confirmar se as atualizações do Terraform correspondem às suas expectativas:
    terraform plan
    Faça as correções necessárias na configuração.
  2. Para aplicar a configuração do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply
    Aguarde até que o Terraform mostre a mensagem Apply complete!.
  3. Abra seu projeto do Google Cloud para conferir os resultados. No console do Google Cloud, navegue até seus recursos na UI para verificar se foram criados ou atualizados pelo Terraform.

Clonar um cluster ativo

Para criar um clone de um cluster ativo, contendo uma cópia de todos os dados do cluster de origem e em execução na mesma região, faça uma recuperação de ponto no tempo nesse cluster. É possível especificar um ponto muito recente ao fazer isso, por exemplo, o primeiro segundo do minuto atual.

Esse processo copia apenas os dados do cluster de origem para o clone, e não qualquer configuração do cluster de origem. Para criptografar os dados do clone usando a CMEK, é necessário especificar os detalhes da CMEK como parte do comando de recuperação de ponto no tempo, mesmo que os dados do cluster de origem já estejam criptografados com a CMEK. Depois que o novo cluster for criado, você vai precisar adicionar instâncias, sinalizações de banco de dados, programações de backup e qualquer outra configuração necessária para atender às suas necessidades.

Um cluster criado dessa forma existe independentemente da origem, e os dados dele não têm relação com os dados do cluster de origem após a duplicação inicial. Se você quiser criar clusters secundários que rastreiem e reproduzam automaticamente as mudanças de dados feitas nos clusters de origem, consulte Sobre a replicação entre regiões.

Criar um cluster com um intervalo de endereços IP específico

O AlloyDB usa o acesso a serviços particulares para permitir que os recursos internos de um cluster se comuniquem entre si. Antes de criar um cluster, sua rede de nuvem privada virtual (VPC) precisa conter pelo menos um intervalo de endereços IP configurado com uma conexão de acesso a serviços particulares.

Se a rede VPC tiver mais de um intervalo de endereços IP configurado com o acesso a serviços particulares, você poderá especificar o intervalo que o AlloyDB atribui a um novo cluster.

Para especificar um intervalo de endereços IP, consulte as etapas opcionais em Criar um cluster.

Se você não especificar um intervalo, o AlloyDB vai realizar uma das seguintes ações ao criar um cluster:

  • Se você tiver vários intervalos de endereços IP com acesso a serviços particulares disponível, o AlloyDB vai escolher um deles.

  • Se você tiver configurado exatamente um intervalo de endereços IP na VPC com acesso a serviços particulares, o AlloyDB vai aplicar esse intervalo ao novo cluster.

Para mais informações sobre como criar intervalos de endereços IP para uso com o AlloyDB, consulte Ativar o acesso a serviços particulares.

A seguir