Esta página descreve como criar um cluster do AlloyDB e a respetiva instância principal.
Antes de começar
- O Google Cloud projeto que está a usar tem de estar
ativado para aceder ao AlloyDB.
- Uma rede VPC no Google Cloud projeto que está a usar já tem de estar configurada para acesso a serviços privados 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 da organização para pedir acesso.
- Também tem de ter a autorização
compute.networks.list
no projetoGoogle Cloud que está a usar. Para obter esta autorização enquanto segue o princípio do menor privilégio, peça ao seu administrador para lhe conceder a função Utilizador da rede de computação (roles/compute.networkUser
). - Para cargas de trabalho de desenvolvimento e sandbox, tenha em atenção a sua região e o tipo de máquina. Se pretender usar o formato de 1 vCPU, certifique-se de que seleciona uma região que suporte esse formato. Para mais informações, consulte o artigo Considerações ao usar 1 vCPU.
Crie um novo cluster e uma instância principal
Consola
Aceda à página Clusters.
Clique em Criar cluster.
Escolha uma configuração de cluster. Para mais informações acerca da diferença entre as configurações de alta disponibilidade e básicas, consulte o artigo Nós e instâncias.
Se não tiver a certeza de que o novo cluster precisa de instâncias do conjunto de leitura, escolha uma das configurações sem conjuntos de leitura. Pode adicionar instâncias do conjunto de leitura ao cluster mais tarde, sempre que necessário.
Clique em Continuar.
Na secção Configure o cluster, no campo ID do cluster, introduza um ID para o cluster.
No campo Palavra-passe, introduza uma palavra-passe inicial para o novo cluster. O AlloyDB atribui a palavra-passe fornecida ao utilizador da base de dados
postgres
durante a criação do cluster.Opcional: para definir manualmente a flag
alloydb.iam_authentication
, desmarque a opção Criar um utilizador da base de dados do IAM. Para mais informações, consulte o artigo Edite uma instância.Por predefinição, a opção Criar um utilizador da base de dados de IAM está selecionada, o que faz o seguinte:
Ativa a flag
alloydb.iam_authentication
na instância principal.Cria um utilizador da base de dados de IAM para si.
No campo Versão da base de dados, selecione a versão principal do PostgreSQL com a qual quer que os servidores de base de dados do cluster sejam compatíveis.
Selecione uma região. Para cargas de trabalho de desenvolvimento e de teste, considere o formato de 1 vCPU, que está disponível em regiões selecionadas. Para mais informações, consulte o artigo Considerações ao usar 1 vCPU.
Selecione um caminho de rede.
Opcional: para aplicar um intervalo de endereços IP específico a este cluster, em vez de permitir que o AlloyDB escolha um intervalo de endereços IP, siga estes passos:
Clique em Mostrar opção de intervalo de IPs atribuídos.
Na lista Intervalo de IPs atribuído, selecione um intervalo de endereços IP.
Para mais informações acerca desta opção, consulte o artigo Crie um cluster com um intervalo de endereços IP específico.
Opcional: para encriptar este cluster com uma chave de encriptação gerida pelo cliente (CMEK) em vez da encriptação gerida pela Google, siga estes passos adicionais:
Clique em Opções de encriptação avançadas.
Selecione Chave de encriptação gerida pelo cliente (CMEK).
No menu apresentado, selecione uma chave gerida pelo cliente.
A Google Cloud consola limita esta lista a chaves no Google Cloud mesmo projeto e região que o novo cluster. Para usar uma chave que não está nesta lista, clique em Não vê a sua chave? Introduza o nome do recurso da chave e, de seguida, escreva o nome do recurso da chave na caixa de diálogo resultante.
Tenha em atenção que a utilização da CMEK com o AlloyDB requer alguma configuração adicional. Para mais informações, consulte o artigo Usar CMEK com o AlloyDB.
Clique em Continuar.
Configure a sua instância principal:
- No campo ID da instância, introduza um ID para a sua instância principal.
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.
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 baseada em Axion C4A, incluindo o tipo de máquina de 1 vCPU, consulte as Considerações ao usar a série de máquinas baseada em Axion C4A.
Opcional: defina flags personalizadas para a sua instância. Para cada denúncia, siga estes passos:
- Clique em Adicionar flag.
- Na lista Novo marcador de base de dados, selecione um marcador.
- Indique um valor para a flag.
- Clique em Concluído.
Se escolheu um tipo de cluster sem pools de leitura, clique em Criar cluster.
gcloud
Para usar a CLI gcloud, pode instalar e inicializar a CLI Google Cloud ou usar a Cloud Shell.
Tem de criar um cluster e uma instância principal do AlloyDB antes de começar a usar o AlloyDB.
Crie um cluster
Para criar o cluster com o acesso privado ao serviço ou o Private Service Connect ativado, use o comando
gcloud alloydb clusters create
.Acesso a serviços privados
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 o seguinte:
CLUSTER_ID
: o ID do cluster que está a criar. Tem de começar com uma letra minúscula e pode incluir letras minúsculas, números e hífenes.VERSION
: a versão principal do PostgreSQL com a qual quer que os servidores de base de dados do cluster sejam compatíveis. Selecione uma das seguintes opções:14
, para compatibilidade com o PostgreSQL 1415
, para compatibilidade com o PostgreSQL 15, que é a versão predefinida do PostgreSQL suportada16
, para compatibilidade com o PostgreSQL 16
PASSWORD
: a palavra-passe a usar para o utilizadorpostgres
predefinido.NETWORK
(Opcional): o nome da rede VPC que configurou para o acesso a serviços privados ao AlloyDB. Se omitir o sinalizador--network
, o AlloyDB usa a rededefault
.No caso de uma rede VPC partilhada, defina o caminho totalmente qualificado da rede VPC, por exemplo,
projects/cymbal-project/global/networks/shared-vpc-network
.--enable-private-service-connect
(Opcional): defina como ativar o Private Service Connect como o método de conetividade para o cluster e as respetivas instâncias.REGION_ID
: a região onde quer colocar o cluster.
PROJECT_ID
: o ID do projeto onde quer colocar o cluster.
Este comando inicia uma operação de longa duração, devolvendo um ID da operação.
Opcional: para aplicar um intervalo de endereços IP específico a este 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 quer que este cluster use para o acesso a serviços privados.Para mais informações acerca desta opção, consulte o artigo Crie um cluster com um intervalo de endereços IP específico.
Opcional: para encriptar este cluster com uma chave de encriptação gerida pelo cliente (CMEK) em vez da encriptação gerida pela Google predefinida, forneça os seguintes argumentos:
--kms-key=KEY_ID \ --kms-keyring=KEYRING_ID \ --kms-location=LOCATION_ID \ --kms-project=PROJECT_ID
Substitua o seguinte:
KEY_ID
: o ID da chave CMEK a usar.KEYRING_ID
: o ID do conjunto de chaves da chave.LOCATION_ID
: o ID da região do conjunto de chaves, que tem de ser igual à região do cluster.PROJECT_ID
: o ID do projeto do conjunto de chaves.
Confirme se a operação foi bem-sucedida.
gcloud alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_ID
Substitua
OPERATION_ID
pelo ID da operação que foi devolvido no passo anterior.
Depois de criar o cluster principal, tem de criar uma instância principal.
Crie 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 \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--allowed-psc-projects=ALLOWED_PROJECT_LIST
Substitua o seguinte:
INSTANCE_ID
: o ID da instância que está a criar. Tem de começar por uma letra minúscula e pode conter letras minúsculas, números e hífenes.REGION_ID
: a região onde quer que a instância esteja localizada.CLUSTER_ID
: o ID do cluster que criou anteriormente.PROJECT_ID
: o ID do projeto onde o cluster foi criado.CPU_COUNT
: o número de vCPUs que quer para a instância.- Tem de especificar
cpu_count
oumachine_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
ecpu_count
, o valor decpu_count
tem de estar alinhado com o número de vCPUs especificado emmachine_type
. Por exemplo, semachine_type
forn2-highmem-4
, tem de definircpu_count
como4
.
- Tem de especificar
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
ecpu_count
em conjunto, os valores emcpu_count
emachine_type
têm de corresponder. Por exemplo, semachine_type
forn2-highmem-4
, tem de definircpu_count
como4
.
ALLOWED_PROJECT_LIST
: (Opcional) se estiver a usar o Private Service Connect,ALLOWED_PROJECT_LIST
é a lista de IDs dos projetos separados por vírgulas ou o número do projeto ao qual quer permitir o acesso à instância.
Terraform
Crie um cluster e uma instância principal
Para criar um cluster e a respetiva instância principal, use um recurso do Terraform.
Segue-se um fragmento de código para criar um cluster e uma instância principal com base no exemplo AlloyDB instance full:
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" "cluster_abc" { cluster_id = "alloydb-cluster" location = "us-central1" network_config { network = google_compute_network.default.id } database_version = "POSTGRES_16" 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 criar uma instância C4A, use o campo machine_type
na estrutura machine_config
, como 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:
- Inicie o Cloud Shell.
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.
- 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 é denominadomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
- 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. - Reveja o ficheiro
main.tf
e modifique os parâmetros de exemplo para aplicar ao seu ambiente. - Guarde as alterações.
- Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
Opcional: para usar a versão mais recente do fornecedor Google, inclua aterraform init
-upgrade
opção:terraform init -upgrade
Aplique as alterações
- Reveja a configuração para confirmar que as atualizações do Terraform correspondem às suas expetativas:
Faça as correções necessárias à configuração.terraform plan
- Aplique a configuração do Terraform executando o seguinte comando e introduzindo
yes
no comando: Aguarde até que o Terraform apresente a mensagemterraform apply
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 um cluster
Este exemplo cria um cluster. Para ver uma lista completa dos parâmetros desta chamada, consulte o artigo Método: projects.locations.clusters.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. Isto é feito automaticamente sempre que adequado, por exemplo, nos ficheiros de registo.
Para enviar o seu pedido, guarde o corpo do pedido num ficheiro denominado cluster_request.json
:
{
"databaseVersion": "<var>DATABASE_VERSION</var>",
"initialUser": {
"user": "<var>INITIAL_USERNAME</var>",
"password": "<var>INITIAL_USER_PASSWORD</var>"
},
"labels": {
"test": "alloydb-cluster-full"
}
}
Faça as seguintes substituições:
DATABASE_VERSION
: string de enumeração da versão da base de dados, por exemplo,POSTGRES_16
.INITIAL_USERNAME
: o nome de utilizador que usa para o utilizador postgres predefinido.INITIAL_USER_PASSWORD
: a palavra-passe que usa para o utilizador postgres predefinido.
Use o seguinte método HTTP e URL:
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters?cluster_id=CLUSTER_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 do cluster tem de começar por uma letra minúscula e pode conter letras minúsculas, números e hífenes.
Pode usar o seguinte curl para executar o pedido anterior:
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=CLUSTER_ID -d @cluster_request.json
Crie uma instância principal
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 a sua solicitação, guarde o seguinte corpo da solicitação num ficheiro com o nome
instance_request.json
.
{ "instance_type": "PRIMARY", "machine_config": { "cpu_count": "vCPU_COUNT" } }
Faça a seguinte substituição:
VCPU_COUNT
: o número de núcleos de 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 C4A 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, 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
Clone um cluster ativo
Para criar um clone de um cluster ativo, que contenha uma cópia de todos os dados do cluster de origem e seja executado na mesma região, faça uma recuperação num determinado momento nesse cluster. Pode especificar um ponto no tempo muito recente quando o fizer, por exemplo, o primeiro segundo do minuto atual.
Este processo copia apenas os dados do cluster de origem para o clone e não a configuração do cluster de origem. Para encriptar os dados do clone com a CMEK, tem de especificar os detalhes da CMEK como parte do comando de recuperação num ponto específico no tempo, mesmo que os dados do cluster de origem já estejam encriptados com a CMEK. Depois de criar o novo cluster, tem de adicionar instâncias, flags de base de dados, programações de cópias de segurança e qualquer outra configuração necessária para satisfazer as suas necessidades.
Um cluster criado desta forma existe independentemente da sua origem, e os respetivos dados não têm relação com os dados do cluster de origem após a duplicação inicial estar concluída. Se quiser criar clusters secundários que monitorizem e repliquem automaticamente as alterações de dados feitas nos respetivos clusters de origem, consulte o artigo Acerca da replicação entre regiões.
Crie um cluster com um intervalo de endereços IP específico
O AlloyDB usa o acesso a serviços privados para permitir que os recursos internos de um cluster comuniquem entre si. Antes de poder criar um cluster, a sua rede de nuvem virtual privada (VPC) tem de conter, pelo menos, um intervalo de endereços IP configurado com uma ligação de acesso privado a serviços.
Se a sua rede VPC contiver mais do que um intervalo de endereços IP que tenha sido configurado com acesso privado a serviços, tem a opção de especificar o intervalo que o AlloyDB atribui a um novo cluster.
Para especificar um intervalo de endereços IP, consulte os passos opcionais em Crie um cluster.
Se não especificar um intervalo, o AlloyDB realiza uma das seguintes ações ao criar um cluster:
Se tiver vários intervalos de endereços IP com acesso a serviços privados disponíveis, o AlloyDB escolhe um desses intervalos.
Se tiver configurado exatamente um intervalo de endereços IP na sua VPC com acesso a serviços privados, o AlloyDB aplica esse intervalo ao novo cluster.
Para mais informações sobre a criação de intervalos de endereços IP para utilização com o AlloyDB, consulte o artigo Ative o acesso a serviços privados.
Considerações sobre a utilização da série de máquinas baseada em C4A Axion
O AlloyDB oferece uma série de máquinas C4A baseada no Google Axion, o processador personalizado da Google baseado em ARM. As máquinas virtuais (VM) C4A estão disponíveis como configurações predefinidas para 1, 4, 8, 16, 32, 48, 64 e 72 vCPUs, com até 576 GB de memória de taxa de dados dupla 5 (DDR5).
Quando escolher a C4A, tenha em atenção o seguinte:
- Para mudar uma instância N2 existente para uma instância C4A, modifique o
machine_type
tipo de máquina Google Cloud da instância atual através da consola, da CLI gcloud, do Terraform ou da API. - Não elimine a instância N2 e crie uma nova instância C4A no mesmo cluster.
Os C4A são suportados nas seguintes regiões:
asia-east1
asia-southeast1
europe-west1
europe-west2
europe-west3
europe-west4
us-central1
us-east1
us-east4
Considerações sobre a utilização do tipo de máquina de 1 vCPU
O AlloyDB oferece um formato de 1 vCPU com C4A e destina-se apenas a fins de desenvolvimento e teste. Para cargas de trabalho de produção, escolha duas ou mais vCPUs.
Quando escolhe 1 vCPU, tenha em atenção as seguintes limitações:
- É oferecida 1 vCPU com 8 GB de memória sem suporte de cache ultrarrápida.
- A configuração de 1 vCPU é recomendada para ambientes de desenvolvimento e sandbox com tamanhos de base de dados mais pequenos, na ordem das dezenas de gigabytes. Para bases de dados maiores e cargas de trabalho de produção, considere usar 2 vCPUs ou mais.
- Pode configurar com elevada disponibilidade (HA), mas não são oferecidos SLAs de tempo de atividade.
- Para saber onde pode implementar 1 vCPU, consulte as regiões suportadas do C4A.