Esta página examina diferentes formas de estabelecer ligação a um cluster do AlloyDB para PostgreSQL a partir do exterior da respetiva nuvem privada virtual (VPC) configurada. Parte do princípio de que já criou um cluster do AlloyDB.
Acerca das ligações externas
O seu cluster do AlloyDB compreende vários nós numa Google Cloud VPC. Quando cria um cluster, também configura o acesso privado aos serviços entre uma das suas VPCs e a VPC gerida pela Google que contém o novo cluster. Esta ligação de peering permite-lhe usar endereços IP privados para aceder a recursos na VPC do cluster como se fizessem parte da sua própria VPC, usando endereços IP privados.
Existem situações em que a sua aplicação tem de estabelecer ligação ao cluster a partir do exterior desta VPC ligada:
A sua aplicação é executada noutro local no ecossistema Google Cloud , fora da VPC que associou ao cluster através do acesso a serviços privados.
A sua aplicação é executada numa VPC que existe fora da rede da Google.
A sua aplicação é executada "no local", num computador localizado noutro lugar na Internet pública.
Em todos estes casos, tem de configurar um serviço adicional para ativar este tipo de ligação externa ao seu cluster do AlloyDB.
Resumo das soluções de ligação externa
Recomendamos duas soluções gerais para estabelecer ligações externas, dependendo das suas necessidades:
Para o desenvolvimento ou a criação de protótipos de projetos, ou para um ambiente de produção relativamente de baixo custo, configure uma máquina virtual (VM) intermediária, também conhecida como bastion, na sua VPC. Existem vários métodos para usar esta VM intermediária como uma ligação segura entre um ambiente de aplicação externo e o seu cluster do AlloyDB.
Para ambientes de produção que requerem alta disponibilidade, considere estabelecer uma ligação permanente entre a VPC e a sua aplicação através do Cloud VPN ou do Cloud Interconnect.
As secções seguintes descrevem estas soluções de ligação externa em detalhe.
Ligue-se através de uma VM intermediária
Para estabelecer uma ligação a um cluster do AlloyDB a partir de fora da respetiva VPC através de ferramentas de código aberto e um mínimo de recursos adicionais, execute um serviço proxy numa VM intermediária configurada nessa VPC. Pode configurar uma nova VM para este fim ou usar uma VM já em execução na VPC do cluster do AlloyDB.
Como solução autogerida, a utilização de uma VM intermediária geralmente custa menos e tem um tempo de configuração mais rápido do que a utilização de um produto de conetividade de rede. Também tem desvantagens: a disponibilidade, a segurança e a taxa de transferência de dados da ligação passam a depender da VM intermediária, que tem de manter como parte do seu projeto.
Estabeleça ligação através do IAP
Com o Identity-Aware Proxy (IAP), pode ligar-se em segurança ao seu cluster sem ter de expor o endereço IP público da VM intermediária. Usa uma combinação de regras de firewall e gestão de identidade e de acesso (IAM) para limitar o acesso através desta rota. Isto torna as CAs uma boa solução para utilizações que não sejam de produção, como desenvolvimento e criação de protótipos.
Para configurar o acesso da IAP ao seu cluster, siga estes passos:
Instale a CLI Google Cloud no seu cliente externo.
Prepare o seu projeto para o encaminhamento TCP da CNA.
Quando definir a nova regra de firewall, permita o tráfego TCP de entrada para a porta
22
(SSH). Se estiver a usar a rede predefinida do seu projeto com a regradefault-allow-ssh
pré-preenchida ativada, não precisa de definir uma regra adicional.Configure o encaminhamento de portas entre o cliente externo e a VM intermediária usando o SSH através do IAP.
gcloud compute ssh my-vm \ --tunnel-through-iap \ --zone=ZONE_ID \ --ssh-flag="-L PORT_NUMBER:ALLOYDB_IP_ADDRESS:5432"
Substitua o seguinte:
ZONE_ID
: o ID da zona onde o cluster está localizado, por exemplo,us-central1-a
.ALLOYDB_IP_ADDRESS
: o endereço IP da instância do AlloyDB à qual quer estabelecer ligação.PORT_NUMBER
: o número da porta da sua VM.
Teste a ligação através de
psql
no cliente externo, fazendo com que este se ligue à porta local que especificou no passo anterior. Por exemplo, para estabelecer ligação como a função de utilizadorpostgres
para transferir a porta5432
:psql -h localhost -p 5432 -U USERNAME
Substitua o seguinte:
USERNAME
: o utilizador do PostgreSQL ao qual quer ligar-se à instância, por exemplo, o utilizador predefinidopostgres
.
Ligue-se através de um proxy SOCKS
A execução de um serviço SOCKS na VM intermediária oferece uma ligação flexível e escalável ao seu cluster do AlloyDB, com encriptação ponto a ponto fornecida pelo proxy de autorização do AlloyDB. Com a configuração adequada, pode torná-lo adequado para cargas de trabalho de produção.
Esta solução inclui os seguintes passos:
Instale, configure e execute um servidor SOCKS na VM intermediária. Um exemplo é o Dante, uma solução de código aberto popular.
Configure o servidor para associar à
ens4
interface de rede da VM para ligações externas e internas. Especifique qualquer porta que queira para ligações internas.Configure a firewall da VPC para permitir o tráfego TCP do endereço IP ou intervalo adequado para a porta configurada do servidor SOCKS.
Instale o proxy de autenticação do AlloyDB no cliente externo.
Execute o AlloyDB Auth Proxy no seu cliente externo, com a variável de ambiente
ALL_PROXY
definida para o endereço IP da VM intermediária e especificando a porta que o servidor SOCKS usa.Este exemplo configura o proxy Auth do AlloyDB para estabelecer ligação à base de dados em
my-main-instance
, através de um servidor SOCKS em execução em198.51.100.1
na porta1080
:ALL_PROXY=socks5://198.51.100.1:1080 ./alloydb-auth-proxy \ /projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Se estiver a estabelecer ligação a partir de uma VPC com peering, pode usar o endereço IP interno da VM intermediária; caso contrário, use o respetivo endereço IP externo.
Teste a ligação através de
psql
no cliente externo, fazendo com que este se ligue à porta em que o proxy Auth do AlloyDB está a escutar. Por exemplo, para estabelecer ligação como a função de utilizadorpostgres
para transferir a porta5432
:psql -h IP_ADDRESS -p PORT_NUMBER -U USERNAME
Ligue-se através de um pooler do PostgreSQL
Se precisar de instalar e executar o AlloyDB Auth Proxy na VM intermediária, em vez de num cliente externo, pode ativar ligações seguras ao mesmo sincronizando-o com um proxy com reconhecimento de protocolos, também conhecido como pooler. Os poolers de código aberto populares para o PostgreSQL incluem o Pgpool-II e o PgBouncer.
Nesta solução, executa o AlloyDB Auth Proxy e o pooler na VM intermediária. Em seguida, o cliente ou a aplicação podem ligar-se de forma segura diretamente ao pooler através de SSL, sem necessidade de executar serviços adicionais. O pooler encarrega-se de transmitir as consultas do PostgreSQL ao seu cluster do AlloyDB através do proxy de autorização.
Uma vez que cada instância num cluster do AlloyDB tem um endereço IP interno separado, cada serviço de proxy só pode comunicar com uma instância específica: a instância principal, a instância de reserva ou um conjunto de leitura. Por conseguinte, tem de executar um serviço de agrupamento separado com um certificado SSL configurado adequadamente para cada instância no cluster.
Estabeleça ligação através do Cloud VPN ou do Cloud Interconnect
Para o trabalho de produção que requer alta disponibilidade (HA), recomendamos a utilização de um produto Google Cloud Network Connectivity: o Cloud VPN ou o Cloud Interconnect, consoante as necessidades do seu serviço externo e a topologia de rede. Em seguida, configure o Cloud Router para anunciar as rotas adequadas.
Embora a utilização de um produto de conetividade de rede seja um processo mais complexo do que configurar uma VM intermediária, esta abordagem transfere os encargos de tempo de atividade e disponibilidade de si para a Google. Em particular, a VPN de alta disponibilidade oferece um SLA de 99,99%, o que a torna adequada para ambientes de produção.
As soluções de conetividade de rede também libertam o utilizador da necessidade de manter uma VM separada e segura como parte da sua aplicação, evitando os riscos de ponto único de falha inerentes a essa abordagem.
Para começar a saber mais sobre estas soluções, consulte o artigo Escolher um produto de conetividade de rede.
O que se segue?
- Saiba mais acerca do acesso a serviços privados e da conetividade no local nas Google Cloud VPCs.