Para dar suporte a cargas de trabalho de leitura e gravação em um cluster do AlloyDB para PostgreSQL, crie uma instância primária usando o console do Google Cloud , a Google Cloud CLI, o Terraform ou a API AlloyDB. A instância principal fornece os recursos de computação que processam transações e coordenam operações de leitura e gravação para o cluster.
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
Acesse a página Clusters.
Clique em um cluster na coluna Nome do Recurso.
Na página Visão geral, acesse Instâncias no seu cluster e clique em Criar instância primária.
Configure a instância primária:
- No campo ID da instância, insira um ID para a instância primária.
- Em Disponibilidade por zona, selecione uma das seguintes opções:
- Para criar uma instância de produção altamente disponível com failover automatizado, selecione Várias zonas (Altamente disponível).
- Para criar uma instância básica que não precisa ser altamente disponível, selecione Zona única.
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.
- C4 (série de máquinas baseadas em x86)
- Z3 (série de máquinas baseadas em Intel Xeon)
Selecione um tipo de máquina.
- A C4A é compatível com 1, 2, 4, 8, 16, 32, 48, 64 e 72 vCPUs
- N2 é compatível com 2, 4, 8, 16, 32, 64, 96 e 128 vCPUs
- A C4 é compatível com 4, 8, 16, 24, 32, 48, 96, 144, 192 e 288 vCPUs
- A Z3 é compatível com 8, 14, 16, 22, 32, 44 e 88 vCPUs
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 uma configuração adicional para garantir uma conexão segura. Para mais informações, consulte Conectar usando IP público.
Por padrão, o IP privado está sempre ativado. Para mais informações, consulte Ativar o acesso a serviços particulares.
Opcional: para ativar o pool de conexões gerenciado, selecione Ativar pool de conexões gerenciado em Pool de conexões gerenciado. Para mais informações, consulte Configurar o pool de conexões gerenciadas.
Opcional: para definir flags personalizadas para sua instância, expanda Opções de configuração avançadas e faça o seguinte para cada flag:
- Clique em Adicionar flag.
- Selecione uma flag na lista Nova flag de banco de dados.
- Forneça um valor para a flag.
- Clique em Concluído.
Opcional: para configurar requisitos de SSL ou conector na instância, expanda Opções de configuração avançada e faça o seguinte:
- 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.
- 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 pelo Google, selecione Aplicar mTLS usando conectores do AlloyDB.
Clique em Criar instância.
gcloud
Para usar a CLI gcloud, você pode instalar e inicializar a Google Cloud CLI 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_IDINSTANCE_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 precisa ou não ser altamente disponível (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, que contém apenas um nó e nenhum failover automatizado.
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_countoumachine_type. - Se apenas
cpu_countfor 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_typeecpu_countforem fornecidos, o valor decpu_countprecisará estar alinhado ao número de vCPUs especificado emmachine_type. Por exemplo, semachine_typeforn2-highmem-4, definacpu_countcomo4.
- É preciso especificar
MACHINE_TYPE: selecione em uma lista de tipos de máquina compatíveis, comon2-highmem-4,c4-highmem-4-lssdouc4a-highmem-4-lssd. Para mais informações, consulte Escolher um tipo de máquina do AlloyDB.Quando você usa
machine_typeecpu_countjuntos, os valores emcpu_countemachine_typeprecisam ser iguais. Por exemplo, semachine_typeforn2-highmem-4, definacpu_countcomo4.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 a criptografia SSL. Para
permitir conexões não SSL com a 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_ENCRYPTEDPara aplicar 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-connectorsPara ativar o pool de conexões gerenciado na 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-poolingTambé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]
}
Este exemplo cria uma instância N2. Para uma lista de outros tipos de máquina compatíveis, como n2-highmem-4, c4-highmem-4-lssd ou c4a-highmem-4-lssd, consulte Escolher um tipo de máquina do AlloyDB.
Preparar o Cloud Shell
Para aplicar a configuração do Terraform em um projeto do Google Cloud , prepare o Cloud Shell da seguinte maneira:
- Inicie o Cloud Shell.
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 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.
- No Cloud Shell, crie um diretório e um novo
arquivo dentro dele. O nome de arquivo precisa ser um
arquivo TF, por exemplo,
main.tf. Neste documento, o arquivo é chamado demain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
- Copie o exemplo de código no
main.tfrecé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
- No diretório
terraform-docs-samples, navegue até o diretórioalloydb.cd terraform-docs-samples/alloydb
- Copie o exemplo de código no
main.tfrecém-criado. Substituacp SAMPLE_FILE main.tf
<var>SAMPLE_FILE</var>pelo nome do arquivo de amostra a ser copiado, por exemplo,main.tf. - Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
- Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
Opcional: para usar a versão mais recente do provedor do Google, inclua a opçãoterraform init
-upgrade:terraform init -upgrade
Aplique as alterações
- Revise a configuração para confirmar se as atualizações do Terraform correspondem às suas expectativas:
Faça as correções necessárias na configuração.terraform plan
- Para aplicar a configuração do Terraform, execute o comando a seguir e digite
yesno prompt: Aguarde até que o Terraform exiba a mensagemterraform apply
Apply complete!.
Abra seu projeto do Google Cloud para ver 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 primária. Para uma lista completa de parâmetros dessa chamada, consulte Método: projects.locations.clusters.instances.create. Para informações sobre as configurações do cluster, consulte Ver as configurações do cluster e da instância.
Não inclua informações confidenciais 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 a solicitação, salve o corpo dela em um arquivo chamado instance_request.json.
{
"instance_type": "PRIMARY",
"machine_config": {
"cpu_count": CPU_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 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
"machine_config": {
"machine_type": "MACHINE_TYPE"
}
Substitua MACHINE_TYPE por um tipo de máquina compatível, como n2-highmem-4, c4-highmem-4-lssd ou c4a-highmem-4-lssd. Para mais informações sobre os tipos de máquina compatíveis, consulte Escolher um tipo de máquina do AlloyDB.
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 em que você quer colocar o cluster.LOCATION_ID: o ID da região do cluster.CLUSTER_ID: o ID do cluster que você está criando. O ID 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 primária que você quer criar.
Use 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/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID -d @instance_request.json