Criar uma instância principal

Nesta página, descrevemos como criar a instância principal em um cluster do AlloyDB.

Antes de começar

  • O projeto do Google Cloud que você está usando precisa ter sido ativado para acessar o AlloyDB.
  • Você precisa ter um destes papéis do IAM no Google Cloud projeto que está sendo usado:
    • roles/alloydb.admin (o papel predefinido do IAM de Admin do AlloyDB)
    • roles/owner (o papel básico do IAM de Proprietário)
    • roles/editor (o papel básico do IAM de Editor)

    Se você não tiver nenhum desses papéis, entre em contato com o Administrador da organização para solicitar o acesso.

Criar uma instância principal do AlloyDB

Console

  1. Acesse a página Clusters.

    Acessar Clusters

  2. Clique em um cluster na coluna Nome do Recurso.

  3. Na página Visão geral, acesse Instâncias no seu cluster e clique em Criar instância primária.

  4. Configure a instância primária:

    1. No campo ID da instância, insira um ID para a instância primária.
    2. Em Disponibilidade por zona, selecione uma das seguintes opções:
      1. Para criar uma instância de produção altamente disponível com failover automatizado, selecione Várias zonas (Altamente disponível).
      2. Para criar uma instância básica que não precisa ser altamente disponível, selecione Zona única.
    3. Selecione uma das seguintes séries de máquinas:

      • C4A (série de máquinas baseadas no Google Axion)
      • N2 (série de máquinas baseadas em x86). Essa é a série de máquinas padrão.
    4. Selecione um tipo de máquina.

      • O C4A é compatível com 1, 4, 8, 16, 32, 48, 64 e 72 tipos ou formatos de máquina.
      • O N2 oferece suporte a 2, 4, 8, 16, 32, 64, 96 e 128 tipos ou formatos de máquina.

      Para mais informações sobre como usar a série de máquinas C4A baseada em Axion, incluindo o tipo de máquina de 1 vCPU, consulte Considerações ao usar a série de máquinas C4A baseada em Axion.

    5. Opcional: para conectar seus aplicativos e clientes pela Internet pública, marque a caixa Ativar IP público em Conectividade de IP público. A ativação do IP público pode exigir configuração adicional para garantir uma conexão segura. Para mais informações, consulte Conectar usando IP público.

      Por padrão, o IP particular está sempre ativado. Para mais informações, consulte Ativar o acesso a serviços privados.

    6. Opcional: para ativar e usar o pool de conexões gerenciado, marque a caixa Ativar pool de conexões gerenciado em Pool de conexões gerenciado. Para mais informações, consulte Configurar o pool de conexões gerenciadas.

    7. Opcional: para definir flags personalizadas para sua instância, expanda Opções avançadas de configuração e faça o seguinte para cada flag:

      1. Clique em Adicionar flag.
      2. Selecione uma flag na lista Nova flag de banco de dados.
      3. Informe um valor para a flag.
      4. Clique em Concluído.
    8. Opcional: para configurar requisitos de SSL ou conector na instância, expanda Opções de configuração avançada e faça o seguinte:

      1. Por padrão, as instâncias do AlloyDB exigem que todas as conexões usem a criptografia SSL. Para permitir conexões não SSL, desmarque a caixa de seleção Permitir apenas conexões SSL.
      2. Para exigir que todas as conexões de banco de dados com a instância usem o Proxy de Autenticação do AlloyDB ou as bibliotecas de conectores seguros fornecidas pela Google, selecione Exigir conectores.
  5. Clique em Criar instância.

gcloud

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

Use o comando gcloud alloydb instances create para criar uma instância principal.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --cpu-count=CPU_COUNT \
    --machine-type=MACHINE_TYPE \
    --project=PROJECT_ID
  • 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.
  • AVAILABILITY: se esta instância deve ser de alta disponibilidade (HA), com nós em várias zonas. Valores válidos incluem:
    • REGIONAL: cria uma instância de alta disponibilidade com nós ativos e em espera separados e failover automatizado entre eles. Esse é o valor padrão, adequado para ambientes de produção.
    • ZONAL: cria uma instância básica, contendo apenas um nó e sem failover automático.
  • REGION_ID: a região em que você quer colocar a instância. Por exemplo, us-central1.
  • CLUSTER_ID: o ID do cluster em que você quer colocar a instância.
  • CPU_COUNT: o número de vCPUs que você quer para a instância.

    • É preciso especificar cpu_count ou machine_type.
    • Se apenas cpu_count for fornecido, uma instância N2 será criada com as seguintes especificações:
      • 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
    • Se machine_type e cpu_count forem fornecidos, o valor de cpu_count precisará estar alinhado com o número de vCPUs especificado em machine_type. Por exemplo, se machine_type for n2-highmem-4, defina cpu_count como 4.
  • MACHINE_TYPE: o tipo de máquina da instância.

    • Para a série de máquinas C4A baseadas no Axion, os seguintes valores são válidos:

      • c4a-highmem-1
      • c4a-highmem-4-lssd
      • c4a-highmem-8-lssd
      • c4a-highmem-16-lssd
      • c4a-highmem-32-lssd
      • c4a-highmem-48-lssd
      • c4a-highmem-64-lssd
      • c4a-highmem-72-lssd
    • Para a série de máquinas N2, os seguintes valores são válidos:

      • n2-highmem-2
      • n2-highmem-4
      • n2-highmem-8
      • n2-highmem-16
      • n2-highmem-32
      • n2-highmem-64
      • n2-highmem-96
      • n2-highmem-128

      Quando você usa machine_type e cpu_count juntos, os valores em cpu_count e machine_type precisam corresponder. Por exemplo, se machine_type for n2-highmem-4, defina cpu_count como 4.

  • PROJECT_ID: o ID do projeto em que o cluster está localizado.

Por padrão, as novas instâncias exigem que todas as conexões usem criptografia SSL. Para permitir conexões não SSL à instância, adicione a flag --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED ao comando:

gcloud alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED

Para forçar uma conexão segura entre o cliente e uma instância do AlloyDB pelo proxy de autenticação ou outros aplicativos que usam bibliotecas de conectores fornecidas pelo Google, adicione a flag --require-connectors ao comando:

gcloud alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --project=PROJECT_ID \
  --require-connectors

Para ativar o pool de conexões gerenciadas na sua instância do AlloyDB, adicione a flag --enable-connection-pooling ao comando gcloud alloydb instances create:

gcloud alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --project=PROJECT_ID \
  --enable-connection-pooling

Também é possível criar uma instância do AlloyDB com o Private Service Connect ativado. Para informações sobre como criar uma instância principal para um cluster com o Private Service Connect ativado, consulte Criar uma instância do AlloyDB.

Terraform

Criar uma instância

Para criar uma instância no cluster de banco de dados, use um recurso do Terraform.

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"

  machine_config {
    cpu_count = 2
  }

  depends_on = [google_service_networking_connection.vpc_connection]
}

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

  initial_user {
    password = "alloydb-cluster"
  }
}

data "google_project" "project" {}

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

resource "google_compute_global_address" "private_ip_alloc" {
  name          =  "alloydb-cluster"
  address_type  = "INTERNAL"
  purpose       = "VPC_PEERING"
  prefix_length = 16
  network       = google_compute_network.default.id
}

resource "google_service_networking_connection" "vpc_connection" {
  network                 = google_compute_network.default.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name]
}

Uma instância N2 é criada no exemplo anterior. Para criar uma instância do C4A, use o campo machine_type na estrutura machine_config, conforme mostrado no exemplo a seguir:

machine_config { 
  machine_type = "c4a-highmem-4-lssd" 
} 

Preparar o Cloud Shell

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

  1. Inicie o Cloud Shell.
  2. Defina o projeto Google Cloud padrão 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 serã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 dentro dele. 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 de ponta a ponta.
    git clone https://github.com/terraform-google-modules/terraform-docs-samples
  3. No diretório terraform-docs-samples, navegue até o diretório alloydb.
    cd terraform-docs-samples/alloydb
  4. Copie o exemplo de código no main.tf recém-criado.
    cp SAMPLE_FILE
    Substitua <var>SAMPLE_FILE</var> pelo nome do arquivo de amostra a ser copiado, por exemplo, main.tf.
  5. Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
  6. Salve as alterações.
  7. 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!.

Abra seu Google Cloud projeto para conferir os resultados. No console do Google Cloud , navegue até seus recursos na UI para verificar se foram criados ou atualizados pelo Terraform.

REST v1

Criar uma instância

Este exemplo cria uma instância principal. Para uma lista completa de parâmetros dessa chamada, consulte Método: projects.locations.clusters.instances.create. Para informações sobre as configurações de cluster, consulte Ver configurações de cluster e instância.

Não inclua informações sensíveis ou de identificação pessoal no ID do cluster, porque ele é visível externamente. Não é necessário incluir o ID do projeto no nome do cluster, porque isso é feito automaticamente quando apropriado, por exemplo, nos arquivos de registro.

Para enviar sua solicitação, salve o corpo da solicitação em um arquivo chamado instance_request.json.

{
  "instance_type": "PRIMARY",
  "machine_config": {
    "cpu_count": "vCPU_COUNT",
  },
}

Faça a seguinte substituição:

  • CPU_COUNT: o número de núcleos de CPU visíveis na instância que você quer criar.

O exemplo anterior cria uma instância N2 com as seguintes especificações:

  • 2: 2 vCPUs, 16 GB de RAM
  • 4: 4 vCPUs, 32 GB RAM
  • 8: 8 vCPUs, 64 GB RAM
  • 16: 16 vCPUs, 128 GB RAM
  • 32: 32 vCPUs, 256 GB RAM
  • 64: 64 vCPUs, 512 GB RAM
  • 96: 96 vCPUs, 768 GB RAM
  • 128: 128 vCPUs, 864 GB RAM

Para criar uma instância do C4A, use o campo machine_type em vez de cpu_count na estrutura machine_config, conforme mostrado no exemplo a seguir:

machine_config: {
  machine_type : MACHINE_TYPE,
},

Para a série de máquinas C4A baseada em Axion, use os seguintes valores válidos:

  • c4a-highmem-1
  • c4a-highmem-4-lssd
  • c4a-highmem-8-lssd
  • c4a-highmem-16-lssd
  • c4a-highmem-32-lssd
  • c4a-highmem-48-lssd
  • c4a-highmem-64-lssd
  • c4a-highmem-72-lssd

Para a série de máquinas N2, use os seguintes valores válidos:

  • n2-highmem-2
  • n2-highmem-4
  • n2-highmem-8
  • n2-highmem-16
  • n2-highmem-32
  • n2-highmem-64
  • n2-highmem-96
  • n2-highmem-128

Use o método HTTP e o URL a seguir:

POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID

Faça as seguintes substituições:

  • PROJECT_ID: o ID do projeto em que você quer localizar o cluster.
  • LOCATION_ID: o ID da região do cluster.
  • CLUSTER_ID: o ID do cluster que você criou. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hifens.
  • INSTANCE_ID: o nome da instância principal que você quer criar.

É possível usar curl para executar a solicitação, conforme mostrado no exemplo a seguir:

curl -X POST   -H "Authorization: Bearer $(gcloud auth print-access-token)"   -H "Content-Type: application/json"   https://alloydb.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID   -d @instance_request.json

A seguir