Crie uma instância principal

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

Antes de começar

  • O Google Cloud projeto que está a usar tem de ter sido ativado para aceder ao AlloyDB.
  • Tem de ter uma destas funções de IAM no Google Cloud projeto que está a usar:
    • roles/alloydb.admin (a função IAM predefinida de administrador do AlloyDB)
    • roles/owner (a função de IAM básica de proprietário)
    • roles/editor (a função de IAM básica de editor)

    Se não tiver nenhuma destas funções, contacte o administrador organizacional para pedir acesso.

Crie uma instância principal do AlloyDB

Consola

  1. Aceda à página Clusters.

    Aceda a Clusters

  2. Clique num cluster na coluna Nome do recurso.

  3. Na página Vista geral, aceda a Instâncias no cluster e clique em Criar instância principal.

  4. Configure a sua instância principal:

    1. No campo ID da instância, introduza um ID para a sua instância principal.
    2. Em Disponibilidade zonal, selecione uma das seguintes opções:
      1. Para criar uma instância de produção de elevada disponibilidade com comutação por falha automática, selecione Várias zonas (elevada disponibilidade).
      2. Para criar uma instância básica que não precise de estar altamente disponível, selecione Zona única.
    3. Selecione uma das seguintes séries de máquinas:

      • C4A (série de máquinas baseada no Google Axion)
      • N2 (série de máquinas baseadas em x86). Esta é a série de máquinas predefinida.
    4. Selecione um tipo de máquina.

      • O C4A suporta 1, 4, 8, 16, 32, 48, 64 e 72 tipos ou formas de máquinas.
      • O N2 suporta 2, 4, 8, 16, 32, 64, 96 e 128 tipos ou formas de máquinas.

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

    5. Opcional: para ligar as suas aplicações e clientes através da Internet pública, selecione a caixa Ativar IP público em Conetividade de IP público. A ativação do IP público pode exigir uma configuração adicional para garantir que tem uma ligação segura. Para mais informações, consulte o artigo Estabeleça ligação através do IP público.

      Por predefinição, o IP privado está sempre ativado. Para mais informações, consulte o artigo Ative o acesso a serviços privados.

    6. Opcional: para ativar e usar o conjunto de ligações gerido, selecione a caixa Ativar conjunto de ligações gerido em Conjunto de ligações gerido. Para mais informações, consulte o artigo Configure a partilha de ligações gerida.

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

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

      1. Por predefinição, as instâncias do AlloyDB requerem que todas as ligações usem encriptação SSL. Para permitir ligações não SSL, desmarque a caixa de verificação Permitir apenas ligações SSL.
      2. Para exigir que todas as ligações à base de dados da instância usem o proxy Auth do AlloyDB ou as bibliotecas de conetores seguros fornecidas pela Google, selecione Exigir conetores.
  5. Clique em Criar instância.

gcloud

Para usar a CLI gcloud, pode instalar e inicializar a CLI Google Cloud ou usar a 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 está a criar. Tem de começar por uma letra minúscula e pode incluir letras minúsculas, números e hífenes.
  • AVAILABILITY: se esta instância deve ou não ter alta disponibilidade (HA), com nós em várias zonas. Os valores válidos incluem:
    • REGIONAL: cria uma instância de HA com nós ativos e em espera separados e com comutação por falha automática entre eles. Este é o valor predefinido, adequado para ambientes de produção.
    • ZONAL: cria uma instância básica, que contém apenas um nó e nenhuma comutação por falha automática.
  • REGION_ID: a região onde quer colocar a instância. Por exemplo, us-central1.
  • CLUSTER_ID: o ID do cluster onde quer colocar a instância.
  • CPU_COUNT: o número de vCPUs que quer para a instância.

    • Tem de especificar cpu_count ou machine_type.
    • Se apenas for fornecido cpu_count, é criada uma instância N2 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 forem fornecidos machine_type e cpu_count, o valor de cpu_count tem de estar alinhado com o número de vCPUs especificado em machine_type. Por exemplo, se machine_type for n2-highmem-4, tem de definir cpu_count como 4.
  • MACHINE_TYPE: o tipo de máquina da instância.

    • Para a série de máquinas baseada no C4A Axion, os seguintes são 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, os seguintes são 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

      Quando usa machine_type e cpu_count em conjunto, os valores em cpu_count e machine_type têm de corresponder. Por exemplo, se machine_type for n2-highmem-4, tem de definir cpu_count como 4.

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

Por predefinição, as novas instâncias requerem que todas as ligações usem encriptação SSL. Para permitir ligaçõ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 aplicar uma ligação segura entre o cliente e uma instância do AlloyDB através do proxy de autorização ou de outras aplicações que usam bibliotecas de conetores fornecidas pela 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 a partilha de ligações gerida 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 pode criar uma instância do AlloyDB com o Private Service Connect ativado. Para obter informações sobre como criar uma instância principal para um cluster com o Private Service Connect ativado, consulte o artigo Crie uma instância do AlloyDB.

Terraform

Crie uma instância

Para criar uma instância no cluster da base 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]
}

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

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

Prepare o Cloud Shell

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

  1. Inicie o Cloud Shell.
  2. Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.

    Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

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

Prepare o diretório

Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório, também denominado módulo raiz.

  1. No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ser um ficheiro TF, por exemplo, main.tf. Neste documento, o ficheiro é denominado main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Copie o exemplo de código para o ficheiro main.tf criado recentemente. Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.
    git clone https://github.com/terraform-google-modules/terraform-docs-samples
  3. No diretório terraform-docs-samples, navegue para o diretório alloydb.
    cd terraform-docs-samples/alloydb
  4. Copie o exemplo de código para o ficheiro main.tf criado recentemente.
    cp SAMPLE_FILE
    Substitua <var>SAMPLE_FILE</var> pelo nome do ficheiro de exemplo a copiar, por exemplo, main.tf.
  5. Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
  6. Guarde as alterações.
  7. Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
    terraform init
    Opcional: para usar a versão mais recente do fornecedor Google, inclua a -upgradeopção:
    terraform init -upgrade

Aplique as alterações

  1. Reveja a configuração para confirmar que as atualizações do Terraform correspondem às suas expetativas:
    terraform plan
    Faça as correções necessárias à configuração.
  2. Aplique a configuração do Terraform executando o seguinte comando e introduzindo yes no comando:
    terraform apply
    Aguarde até que o Terraform apresente a mensagem Apply complete!.

Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.

REST v1

Crie uma instância

Este exemplo cria uma instância principal. Para ver uma lista completa de parâmetros para esta chamada, consulte Method: projects.locations.clusters.instances.create. Para obter informações sobre as definições do cluster, consulte o artigo Veja as definições do cluster e da instância.

Não inclua informações confidenciais nem de identificação pessoal no ID do cluster, uma vez que é visível externamente. Não tem de incluir o ID do projeto no nome do cluster, porque isto é feito automaticamente quando adequado, por exemplo, nos ficheiros de registo.

Para enviar o pedido, guarde o corpo do pedido num ficheiro denominado 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 da CPU visíveis na instância que 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 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

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

machine_config: {
  machine_type : MACHINE_TYPE,
},

Para a série de máquinas baseada em Axion C4A, 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 são 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 seguinte método HTTP e URL:

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 onde quer que o cluster esteja localizado.
  • LOCATION_ID: o ID da região do cluster.
  • CLUSTER_ID: o ID do cluster que cria. O ID tem de começar com uma letra minúscula e pode conter letras minúsculas, números e hífenes.
  • INSTANCE_ID: o nome da instância principal que quer criar.

Pode usar o curl para executar o pedido, conforme mostrado no exemplo seguinte:

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

O que se segue?