Nesta página, descrevemos como usar o Private Service Connect para se conectar a uma instância do AlloyDB para PostgreSQL.
Use o Private Service Connect para se conectar a uma instância primária do AlloyDB ou a qualquer uma das réplicas de leitura dela, ou a uma instância secundária do AlloyDB de várias redes de nuvem privada virtual (VPC) que pertencem a diferentes grupos, equipes, projetos ou organizações.
Funções exigidas
Você precisa conceder todos os papéis a seguir a um usuário na sua rede VPC para se conectar a uma instância do AlloyDB.
Papel | Descrição |
---|---|
compute.networkAdmin |
Concede controle total sobre a rede VPC que inicia uma conexão com uma instância do AlloyDB. Se você usar o Private Service Connect para se conectar a uma instância do AlloyDB de várias redes VPC, cada rede terá o próprio administrador. |
dns.admin |
Concede controle total sobre os recursos do Cloud DNS, incluindo zonas e registros DNS. |
alloydb.admin |
Concede controle total sobre uma instância do AlloyDB e sobre o ciclo de vida dela. |
alloydb.databaseUser (opcional) |
Fornece acesso à instância do AlloyDB. Se você se conecta pelo cliente do proxy de autenticação do AlloyDB, é necessário ter o papel de cliente do AlloyDB. Se a conexão for direta, não serão necessários papéis e permissões do Identity and Access Management (IAM). |
Custom AlloyDB role (opcional) |
Se você estiver usando um papel personalizado, além de conceder os papéis compute.networkAdmin e dns.admin , conceda as seguintes permissões:
|
Criar um endpoint do Private Service Connect
Os endpoints do Private Service Connect são endereços IP internos em uma rede VPC do consumidor, que os clientes dessa rede podem acessar diretamente. Os clientes podem usar esses endpoints para se conectar a instâncias do AlloyDB.
Para que o AlloyDB crie o endpoint do Private Service Connect automaticamente, faça o seguinte:
- Reutilize uma política de conexão de serviço atual ou crie uma nas suas redes VPC. Com essa política, é possível provisionar endpoints do Private Service Connect automaticamente.
- Crie um cluster e uma instância do AlloyDB com o Private Service Connect ativado para a instância e configure a instância para criar endpoints do Private Service Connect automaticamente.
- Recupere o endpoint da instância. Isso permite que você use o endpoint para se conectar à instância.
- (Opcional) Atualize um cluster e uma instância do AlloyDB com o Private Service Connect ativado para gerar endpoints automaticamente.
Também é possível criar o endpoint do Private Service Connect manualmente. Para mais informações, consulte Criar o endpoint manualmente.
Criar o endpoint automaticamente
As próximas seções explicam como configurar sua instância para permitir que o AlloyDB crie o endpoint do Private Service Connect automaticamente.
Criar uma política de conexão de serviço
É possível reutilizar uma política de conexão de serviço ou criar uma usando o console do Google Cloud ou a Google Cloud CLI.
Com uma política de conexão de serviço, você autoriza uma classe de serviço especificada a criar um endpoint do Private Service Connect na sua rede VPC do consumidor. Você pode usar a política de conexão de serviço para permitir que o AlloyDB crie endpoints do Private Service Connect automaticamente.
Console
No console Google Cloud , acesse a página Private Service Connect.
Clique na guia Políticas de conexão.
Clique em Criar política de conexão.
Digite um nome para a conexão.
Especifique a classe de serviço fazendo o seguinte:
- Em Source service class, selecione Google services.
- No menu Classe de serviço, selecione
google-cloud-alloydb
porque o AlloyDB é o serviço gerenciado para a política de conexão.
Na seção Escopo de endpoints de destino, selecione uma Rede e uma Região a que essa política se aplica.
Na seção Política, selecione uma ou mais sub-redes no menu Sub-redes. As sub-redes são usadas para alocar endereços IP para endpoints.
Opcional: especifique um Limite de conexão para a política. O limite determina quantos endpoints o AlloyDB pode criar para essa política de conexão. Se você não especificar um limite de conexão, não haverá limite.
Clique em Criar política.
gcloud
Para criar uma política de conexão de serviço, use o
comando service-connection-policies create
.
gcloud network-connectivity service-connection-policies create POLICY_NAME \ --network=NETWORK \ --project=PROJECT_ID \ --region=REGION \ --service-class=SERVICE_CLASS \ --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \ --psc-connection-limit=LIMIT \ --description="DESCRIPTION" \ --producer-instance-location=PRODUCER_INSTANCE_LOCATION \ --allowed-google-producers-resource-hierarchy-level=LIST_OF_NODES
Substitua:
POLICY_NAME
: o nome da política de conexão de serviço.NETWORK
: a rede em que essa política é aplicada.PROJECT_ID
: o ID do projeto ou o número do projeto da rede VPC. Para redes VPC compartilhadas, implante políticas de conexão de serviço no projeto host, porque elas não são compatíveis com projetos de serviço.REGION
: a região a que essa política se aplica. A mesma política precisa existir para todas as regiões em que você quer automatizar a conectividade do serviço.SERVICE_CLASS
: o identificador de recurso fornecido pelo produtor da classe de serviço. Para o AlloyDB, a classe de serviço égoogle-cloud-alloydb
.SUBNETS
: uma ou mais sub-redes de consumidor regulares usadas para alocar endereços IP para endpoints do Private Service Connect. Esses endereços IP são alocados automaticamente e retornados ao pool da sub-rede à medida que as instâncias de serviço gerenciado são criadas e excluídas. As sub-redes precisam estar na mesma região que a política de conexão do serviço. Se várias políticas de conexão compartilharem a mesma região, será possível reutilizar a mesma sub-rede nessas políticas. É possível fornecer várias sub-redes em uma lista separada por vírgulas.LIMIT
: o número máximo de endpoints que podem ser criados com essa política. Se você não especificar um limite, não haverá nenhum.DESCRIPTION
: uma descrição opcional do política de conexão de serviço.PRODUCER_INSTANCE_LOCATION
: especifica se a política automatiza as conexões com instâncias do AlloyDB. Você pode definir esse valor de uma das seguintes maneiras:none
(padrão): a instância do AlloyDB está no mesmo projeto que a política de conexão de serviço (ou, no caso da VPC compartilhada, em projetos conectados).custom-resource-hierarchy-levels
: exige que você defina o caminho do local do Resource Manager para os projetos em que quer automatizar a conectividade usando o parâmetroallowed-google-producers-resource-hierarchy-level
.
LIST_OF_NODES
: defina esse parâmetro se o local da instância do produtor estiver definido comocustom-resource-hierarchy-levels
. Esse parâmetro é uma lista de projetos, pastas e organizações em que residem as instâncias para as quais você quer automatizar a conectividade. A lista está no formatoprojects/PROJECT_ID
,folders/FOLDER_ID
ouorganizations/ORGANIZATION_ID
.
Por exemplo, o comando a seguir cria uma política de conexão de serviço para a classe de serviço
google-cloud-alloydb
que aloca endereços IP da sub-rede managed-services
. É possível criar até 10 endpoints do Private Service Connect com
esta política. Os endpoints precisam ser criados em projetos que estejam na mesma organização da instância de serviço gerenciado. A instância do AlloyDB está localizada no projeto myproject
.
gcloud network-connectivity service-connection-policies create alloydb-policy \ --network=default \ --project=my-project \ --region=us-central1 \ --service-class=google-cloud-alloydb \ --subnets=managed-service-subnet \ --psc-connection-limit=10 \ --producer-instance-location=custom-resource-hierarchy-levels \ --allowed-google-producers-resource-hierarchy-level=projects/myproject
Criar uma instância do AlloyDB
É possível criar uma instância com o Private Service Connect ativado e configurar a criação automática de endpoints usando o console, CLI gcloud ou o Terraform.
Console
No console Google Cloud , acesse a página Clusters.
Clique em Criar cluster.
Em ID do cluster, insira
my-cluster
.Digite uma senha. Anote essa senha porque você a usará neste guia de início rápido.
Mantenha a versão padrão do banco de dados.
Selecione a região
us-central1 (Iowa)
.Mantenha o ID da instância padrão,
my-cluster-primary
.Em Disponibilidade por zona, mantenha Zona única como a opção selecionada. Embora não recomendemos uma instância de zona única para produção, você vai usar uma única zona neste guia de início rápido para minimizar os custos. Para mais informações, consulte Reduzir custos usando instâncias básicas.
Selecione o tipo de máquina
2 vCPU, 16 GB
.Manter a conectividade de IP particular.
- Selecione Private Service Connect (PSC).
- Clique em Adicionar um endpoint.
- Selecione o projeto em que você quer criar o endpoint.
- Selecione a rede.
- Clique em Verificar política para conferir informações sobre a política de conexão de serviço.
Mantenha as configurações padrão em Segurança de rede.
Não faça mudanças em Mostrar opções avançadas.
Clique em Criar cluster. O AlloyDB pode levar vários minutos para criar o cluster e mostrá-lo na página Visão geral do cluster principal.
gcloud
Para criar o cluster, use o comando gcloud alloydb clusters
create
.
gcloud alloydb clusters create CLUSTER_ID \
--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 hífens.PASSWORD
: a senha a ser usada para o usuário padrãopostgres
.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.
Para criar a instância do AlloyDB, seja primária ou um pool de leitura para usar o Private Service Connect, use o comando gcloud alloydb instances create. Inclua o parâmetro --allowed-psc-projects
para especificar quais projetos consumidores podem criar endpoints para se conectar a essa instância.
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--cpu-count=CPU_COUNT \
--availability-type=AVAILABILITY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--allowed-psc-projects=ALLOWED_PROJECT_LIST \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
--psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT
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 RAM4
: 4 vCPUs, 32 GB de RAM8
: 8 vCPUs, 64 GB de RAM16
: 16 vCPUs, 128 GB de RAM32
: 32 vCPUs, 256 GB de RAM64
: 64 vCPUs, 512 GB de RAM96
: 96 vCPUs, 768 GB de RAM128
: 128 vCPUs, 864 GB de RAM
AVAILABILITY
: indica se a instância precisa 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 que a instância seja colocada.CLUSTER_ID
: o ID do cluster que você criou anteriormente.ALLOWED_PROJECT_LIST
: a lista separada por vírgulas de IDs ou números de projetos que você quer permitir o acesso à instância. Por exemplo,my-project-1
,12345
,my-project-n
.NETWORK_ATTACHMENT_URI
(opcional): o nome completo do recurso do URI de anexo de rede que você cria para conectividade de saída. Por exemplo:projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID
.CONSUMER_NETWORK
: o caminho para a rede VPC em que os endpoints do Private Service Connect precisam ser criados. Por exemplo,projects/my-host-project/global/networks/default
. Essa opção é válida quando você cria endpoints automaticamente. Verifique se a política de conexão de serviço foi criada. É possível criar a política antes ou depois da instância.CONSUMER_PROJECT
: o projeto em que o endpoint do Private Service Connect é criado. Se você estiver usando uma rede VPC compartilhada, pode ser o projeto host ou o projeto de serviço. Todos os projetos especificados nos parâmetros de conexão automática são adicionados automaticamente aos projetos permitidos. Se quiser criar endpoints do Private Service Connect manualmente em algum projeto, adicione esses projetos à sua lista de projetos permitidos.
Um cluster secundário criado para um cluster principal ativado para o Private Service Connect herda automaticamente a configuração do Private Service Connect. Para mais informações, consulte Criar um cluster secundário.
Terraform
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
}
psc_instance_config {
allowed_consumer_projects = ["123456789"]
psc_interface_configs {
network_attachment_resource = google_compute_network_attachment.default.id
}
}
}
resource "google_compute_network" "default" {
name = "alloydb-network"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "default" {
name = "alloydb-subnetwork"
region = "us-central1"
network = google_compute_network.default.id
ip_cidr_range = "10.0.0.0/16"
}
resource "google_compute_network_attachment" "default" {
name = "alloydb-network-attachment"
region = "us-central1"
connection_preference = "ACCEPT_AUTOMATIC"
subnetworks = [
google_compute_subnetwork.default.self_link
]
}
data "google_project" "project" {}
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Recuperar o endpoint
Ao recuperar o endereço IP interno, que é o endpoint do Private Service Connect de uma instância, é possível usar esse endpoint para se conectar à instância.
Para conferir informações sobre uma instância, incluindo o endereço IP que é o endpoint do Private Service Connect para a instância, use o comando gcloud alloydb instances describe
:
gcloud alloydb instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'
Faça as seguintes substituições:
- INSTANCE_NAME: o nome da instância do AlloyDB. Se o Private Service Connect estiver ativado nessa instância, os endpoints do Private Service Connect nas redes VPC poderão se conectar a ela.
- PROJECT_ID: o ID ou número do projeto do projeto Google Cloud que contém a instância.
Na resposta, observe o valor que aparece ao lado do campo pscConfig:pscAutoConnections:ipAddress
. Esse valor é o endereço IP interno que também é o endpoint do Private Service Connect para a instância.
Atualizar uma instância para criar endpoints automaticamente
Para atualizar uma instância e criar endpoints automaticamente, transmita o parâmetro --psc-auto-connections
ao comando gcloud alloydb instances update.
Configurar a conectividade de saída
Se você quiser ativar a conectividade de saída para sua instância do AlloyDB com o Private Service Connect ativado, defina o URI do anexo de rede para a instância. Para mais informações, consulte Configurar a conectividade de saída.
Criar o endpoint manualmente
As próximas seções explicam como criar um endpoint do Private Service Connect manualmente.
Criar uma instância do AlloyDB
É possível criar uma instância com o Private Service Connect ativado e configurar a criação automática de endpoints usando o console, CLI gcloud ou o Terraform.
Console
No console Google Cloud , acesse a página Clusters.
Clique em Criar cluster.
Em ID do cluster, insira
my-cluster
.Digite uma senha. Anote essa senha porque você a usará neste guia de início rápido.
Mantenha a versão padrão do banco de dados.
Selecione a região
us-central1 (Iowa)
.Mantenha o ID da instância padrão,
my-cluster-primary
.Em Disponibilidade por zona, mantenha Zona única como a opção selecionada. Embora não recomendemos uma instância de zona única para produção, você vai usar uma única zona neste guia de início rápido para minimizar os custos. Para mais informações, consulte Reduzir custos usando instâncias básicas.
Selecione o tipo de máquina
2 vCPU, 16 GB
.Manter a conectividade de IP particular.
- Selecione Private Service Connect(PSC).
- Clique em Adicionar um endpoint.
- Selecione o projeto em que você quer criar o endpoint.
- Selecione a rede.
- Clique em Verificar política para conferir informações sobre a política de conexão de serviço.
Mantenha as configurações padrão em Segurança de rede.
Não faça mudanças em Mostrar opções avançadas.
Clique em Criar cluster. O AlloyDB pode levar vários minutos para criar o cluster e mostrá-lo na página Visão geral do cluster principal.
gcloud
Para criar o cluster, use o comando gcloud alloydb clusters
create
.
gcloud alloydb clusters create CLUSTER_ID \
--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 hífens.PASSWORD
: a senha a ser usada para o usuário padrãopostgres
.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.
Para criar a instância principal, use o comando gcloud alloydb instances create.
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--cpu-count=CPU_COUNT \
--availability-type=AVAILABILITY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--allowed-psc-projects=ALLOWED_PROJECT_LIST \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
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 RAM4
: 4 vCPUs, 32 GB de RAM8
: 8 vCPUs, 64 GB de RAM16
: 16 vCPUs, 128 GB de RAM32
: 32 vCPUs, 256 GB de RAM64
: 64 vCPUs, 512 GB de RAM96
: 96 vCPUs, 768 GB de RAM128
: 128 vCPUs, 864 GB de RAM
AVAILABILITY
: indica se a instância precisa 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 que a instância seja colocada.CLUSTER_ID
: o ID do cluster que você criou anteriormente.ALLOWED_PROJECT_LIST
: a lista separada por vírgulas de IDs de projetos ou o número do projeto a que você quer permitir o acesso à instância. Por exemplo,my-project-1
,12345
,my-project-n
.NETWORK_ATTACHMENT_URI
(opcional): o nome completo do recurso do URI de anexo de rede que você cria para conectividade de saída. Por exemplo:projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID
.CONSUMER_NETWORK
: o caminho para a rede VPC de onde os endpoints do Private Service Connect precisam ser criados. Por exemplo,projects/my-host-project/global/networks/default
. Essa opção é válida quando você cria endpoints automaticamente. Verifique se a política de conexão de serviço foi criada. É possível criar a política antes ou depois da instância.CONSUMER_PROJECT
: o projeto em que o endpoint do Private Service Connect é criado. Se você estiver usando uma rede VPC compartilhada, pode ser o projeto host ou o projeto de serviço. Todos os projetos especificados nos parâmetros de conexão automática são adicionados automaticamente aos projetos permitidos. Se quiser criar endpoints do Private Service Connect manualmente em algum projeto, adicione esses projetos à sua lista de projetos permitidos.
Um cluster secundário criado para um cluster principal ativado para o Private Service Connect herda automaticamente a configuração do Private Service Connect. Para mais informações, consulte Criar um cluster secundário.
Terraform
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
}
psc_instance_config {
allowed_consumer_projects = ["123456789"]
psc_interface_configs {
network_attachment_resource = google_compute_network_attachment.default.id
}
}
}
resource "google_compute_network" "default" {
name = "alloydb-network"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "default" {
name = "alloydb-subnetwork"
region = "us-central1"
network = google_compute_network.default.id
ip_cidr_range = "10.0.0.0/16"
}
resource "google_compute_network_attachment" "default" {
name = "alloydb-network-attachment"
region = "us-central1"
connection_preference = "ACCEPT_AUTOMATIC"
subnetworks = [
google_compute_subnetwork.default.self_link
]
}
data "google_project" "project" {}
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Acessar o anexo de serviço
Depois de criar uma instância do AlloyDB com o Private Service Connect ativado, acesse o URL do anexo de serviço e use-o para criar o endpoint do Private Service Connect.
Use o comando gcloud alloydb instances describe
para ver detalhes sobre uma instância.
gcloud alloydb instances describe INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID
Substitua:
INSTANCE_ID
: o ID da instância.CLUSTER_ID
: o ID do cluster.REGION_ID
: a região em que o cluster do AlloyDB é implantado.
Confira a seguir um exemplo de resposta para o comando:
"pscInstanceConfig": {
"serviceAttachmentLink:": "https://www.googleapis.com/compute/v1/projects/my-project/regions/my-region/serviceAttachments/my-service-attachment-id"
"allowedConsumerProjects": {
"45678",
"12345",
"67890",
},
"pscDnsName": "11111111-1111-1111-1111-111111111111.22222222-2222-2222-2222-222222222222.alloydb-psc.goog."
}
O parâmetro serviceAttachmentLink
contém o valor do URL do anexo de serviço.
Criar um endpoint do Private Service Connect
Para criar um endpoint do Private Service Connect, transmita o URL do anexo de serviço junto com um nome de endpoint exclusivo. Para mais informações sobre como criar um endpoint do Private Service Connect, consulte Criar um endpoint.
Também é possível reservar um endereço IP interno para o endpoint do Private Service Connect usando o comando gcloud compute addresses create
e usar o endereço IP reservado ao criar o endpoint.
Configurar a conectividade de saída
Para ativar a conectividade de saída, defina o URI de vinculação de rede ao criar ou atualizar uma instância do AlloyDB. Esse URI permite a conectividade segura entre seu projeto e a instância do AlloyDB durante operações de saída, como migrações.
Criar o anexo de rede
É possível criar um anexo de rede que aceite conexões automaticamente(ACCEPT_AUTOMATIC
) ou manualmente (ACCEPT_MANUAL
). Para mais informações sobre como criar um anexo de rede, consulte Criar e gerenciar anexos de rede.
Se você criar um anexo de rede que aceita conexões automaticamente, não será necessário definir uma lista de projetos aceitos explicitamente. Para aceitar conexões manualmente, adicione o número do projeto de propriedade do serviço em que a instância do AlloyDB está localizada à lista de projetos aceitos.
Para encontrar o número do projeto de propriedade do serviço, execute o seguinte comando:
gcloud alpha alloydb clusters describe CLUSTER_ID --region=REGION_ID
Veja a seguir um exemplo de resposta:
pscConfig:
pscEnabled: true
serviceOwnedProjectNumber: 123456789012
Depois de identificar o número do projeto de propriedade do serviço, adicione o projeto à lista de projetos aceitos e crie o anexo de rede.
Verifique se a região do anexo de rede é a mesma da instância do AlloyDB. Além disso, a sub-rede usada para criar a vinculação de rede precisa pertencer aos intervalos de IP RFC 1918, que são 10.0.0.0/8
, 172.16.0.0/12
e 192.168.0.0/16
.
Atualizar uma instância para conectividade de saída
Para ativar a conectividade de saída de uma instância do AlloyDB com o Private Service Connect ativado, transmita o parâmetro --psc-network-attachment-uri
ao comando gcloud alloydb instances update
.
Não é possível atualizar as instâncias do AlloyDB criadas antes de 1º de março de 2025 para ativar conexões de saída. Como alternativa, recomendamos usar uma das seguintes opções:
- Crie uma réplica regional entre regiões (CRR) da sua instância principal com a conectividade de saída ativada. Em seguida, faça uma alternância para designar a instância de réplica como a nova instância principal.
- Faça um backup do cluster e da instância principal atuais do AlloyDB. Em seguida, crie um cluster do AlloyDB e uma instância principal com a conectividade de saída ativada. Por fim, faça uma restauração do backup criado anteriormente no novo cluster.
Desativar a conectividade de saída
Para desativar a conectividade de saída de uma instância do AlloyDB, transmita o parâmetro --clear-psc-network-attachment-uri
ao comando gcloud alloydb instances update
.
Conectar-se a uma instância do AlloyDB
É possível se conectar a uma instância do AlloyDB com o Private Service Connect ativado usando uma das seguintes opções:
- Conectar-se diretamente usando um registro DNS
- Usar o proxy de autenticação do AlloyDB com um registro DNS
- Usar os conectores de linguagem do AlloyDB com um registro DNS
- Conectar diretamente por um endereço IP interno
Para métodos que usam um registro DNS, crie o registro em uma zona DNS particular na rede VPC correspondente. Depois de criar um registro DNS, você pode usá-lo para se conectar a uma instância ativada para o Private Service Connect.
Configurar uma zona gerenciada de DNS e um registro DNS
Para configurar uma zona gerenciada de DNS e um registro DNS na sua rede, siga estas etapas:
Para ver informações resumidas sobre uma instância do AlloyDB, incluindo o nome DNS da instância, use o comando
gcloud alloydb instances describe
:gcloud alloydb instances describe INSTANCE_ID \ --cluster=CLUSTER_ID --region=REGION_ID
Substitua:
INSTANCE_ID
: o ID da instância.CLUSTER_ID
: o ID do cluster.
Na resposta, verifique se o nome DNS é exibido. O nome DNS tem o padrão
INSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog.
.Para criar uma zona de DNS particular, use o comando
gcloud dns managed-zones create
. Essa zona está associada à rede VPC usada para se conectar à instância do AlloyDB por meio do endpoint do Private Service Connect.gcloud dns managed-zones create ZONE_NAME \ --project=PROJECT_ID \ --description=DESCRIPTION \ --dns-name=DNS_NAME \ --networks=NETWORK_NAME \ --visibility=private
Substitua:
ZONE_NAME
: o nome da zona de DNS.PROJECT_ID
: o ID ou o número do projeto do Google Cloud projeto que contém a zona.DESCRIPTION
: uma descrição da zona (por exemplo, uma zona DNS para a instância do AlloyDB).DNS_NAME
: o nome DNS da zona, comoINSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog.
.NETWORK_NAME
: o nome da rede VPC. No caso de uma rede VPC compartilhada, defina o caminho totalmente qualificado da rede VPC. Por exemplo,projects/cymbal-project/global/networks/shared-vpc-network
.
Depois de criar o endpoint do Private Service Connect, use o comando gcloud dns record-sets create para criar um registro DNS na zona:
gcloud dns record-sets create DNS_NAME \ --project=PROJECT_ID \ --type=RRSET_TYPE \ --rrdatas=RR_DATA \ --zone=ZONE_NAME
Substitua:
DNS_NAME
: o nome de DNS que você recuperou anteriormente neste procedimento.RRSET_TYPE
: o tipo de registro de recurso do conjunto de registros DNS (por exemplo, A).RR_DATA
: o endereço IP alocado para o endpoint do Private Service Connect (por exemplo, 198.51.100.5). Também é possível inserir vários valores, como rrdata1 rrdata2 rrdata3 (por exemplo, 10.1.2.3 10.2.3.4 10.3.4.5).
Conectar-se diretamente usando um registro DNS
Depois de criar um endpoint do Private Service Connect e um registro DNS, é possível se conectar diretamente usando o registro DNS.
Para recuperar o registro DNS do endpoint do Private Service Connect, use o comando
gcloud compute addresses describe
:gcloud compute addresses describe DNS_RECORD \ --project=PROJECT_ID \ --region=REGION_NAME
Substitua:
DNS_RECORD
: o registro DNS do endpoint.PROJECT_ID
: o ID ou número do projeto do Google Cloud projeto que contém o endpoint.REGION_NAME
: o nome da região do endpoint.
Para se conectar à instância do AlloyDB, use o registro DNS.
psql -U USERNAME -h DNS_RECORD
Substitua:
USERNAME
: o nome do usuário que está se conectando à instância.DNS_RECORD
: o registro DNS do endpoint.
Conectar usando o proxy de autenticação do AlloyDB
O proxy de autenticação do AlloyDB é um conector que permite fazer conexões autorizadas e criptografadas com bancos de dados do AlloyDB. O proxy de autenticação do AlloyDB funciona com um cliente local em execução no ambiente local. O aplicativo se comunica com o proxy de autenticação do AlloyDB usando o protocolo de banco de dados padrão do seu banco de dados.
Quando você define a flag --psc
ao iniciar o cliente do proxy de autenticação, o proxy de autenticação do AlloyDB usa o registro DNS criado para se conectar à instância com o Private Service Connect ativado.
Inicie o cliente do proxy de autenticação transmitindo o URI da instância recuperado com o comando gcloud alloydb instances list
e defina a flag --psc
.
Para mais informações sobre como se conectar a uma instância usando o proxy de autenticação, consulte Conectar usando o proxy de autenticação.
Conectar usando os conectores do AlloyDB Language
Os conectores de linguagem do AlloyDB são bibliotecas que fornecem mTLS automatizado com TLS 1.3 e autorização do Identity and Access Management (IAM) ao se conectar a uma instância do AlloyDB.
Depois que o conector de linguagem determina que a instância é compatível com o Private Service Connect, ele usa o registro DNS criado para se conectar à instância.
Java
Se você estiver usando o Private Service Connect para se conectar à instância do AlloyDB, inclua o seguinte:
config.addDataSourceProperty("alloydbIpType", "PSC");
Para mais informações sobre como usar o endpoint do Private Service Connect nos conectores de linguagem Java, consulte o repositório do GitHub.
Python (pg8000)
Se você estiver usando o Private Service Connect para se conectar à instância do AlloyDB, inclua o seguinte:
def getconn() -> pg8000.dbapi.Connection:
conn: pg8000.dbapi.Connection = connector.connect(
inst_uri,
"pg8000",
user=user,
password=password,
db=db,
# use ip_type to specify PSC
ip_type=IPTypes.PSC,
)
return conn
Para mais informações sobre como usar o endpoint do Private Service Connect nos conectores de linguagem Python, consulte o repositório do GitHub.
Python (asyncpg)
Se você estiver usando o Private Service Connect para se conectar à instância do AlloyDB, inclua o seguinte:
async def getconn() -> asyncpg.Connection:
conn: asyncpg.Connection = await connector.connect(
inst_uri,
"asyncpg",
user=user,
password=password,
db=db,
# use ip_type to specify PSC
ip_type=IPTypes.PSC,
)
return conn
Para mais informações sobre como usar o endpoint do Private Service Connect nos conectores de linguagem Python, consulte o repositório do GitHub.
Go (pgx)
Se você estiver usando o Private Service Connect para se conectar à instância do AlloyDB, inclua o seguinte:
d.Dial(ctx, instURI, alloydbconn.WithPSC())
Para mais informações sobre como usar o endpoint do Private Service Connect nos conectores da linguagem Go, consulte o repositório do GitHub.
Go (database/sql)
Se você estiver usando o Private Service Connect para se conectar à instância do AlloyDB, inclua o seguinte:
cleanup, err := pgxv5.RegisterDriver(
"alloydb",
alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC())
)
Para mais informações sobre como usar o endpoint do Private Service Connect nos conectores da linguagem Go, consulte o repositório do GitHub.
Conectar diretamente por um endereço IP interno
Depois de criar um endpoint do Private Service Connect, é possível se conectar diretamente a uma instância do AlloyDB usando o endereço IP configurado.
Para recuperar o endereço IP do endpoint do Private Service Connect, use o comando
gcloud compute addresses describe
:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
Substitua:
ADDRESS_NAME
: o nome do endereço IP do endpoint.PROJECT_ID
: o ID ou número do projeto do Google Cloud projeto que contém o endpoint.REGION_NAME
: o nome da região do endpoint.
Para se conectar à instância do AlloyDB, use o endereço IP interno.
psql -U USERNAME -h IP_ADDRESS"
Substitua:
USERNAME
: o nome do usuário que está se conectando à instância.IP_ADDRESS
: o endereço IP do endpoint.
Limitações
- É possível configurar até 20 endpoints do Private Service Connect que se conectam ao anexo de serviço de uma instância do AlloyDB com o Private Service Connect ativado.
- Não é possível usar a flag
--network
ao criar um cluster com o Private Service Connect ativado porque ela está associada ao acesso a serviços privados. - Não é possível ativar ou desativar o Private Service Connect em uma instância.
- Não é possível configurar uma instância com o Private Service Connect ativado para usar o Acesso a serviços privados.