Esta página descreve a conetividade a bases de dados fornecidas pelo AlloyDB para PostgreSQL. Para mais informações, consulte o artigo Escolha como estabelecer ligação ao AlloyDB.
Redes: as instâncias do AlloyDB usam IPs públicos ou privados numa nuvem virtual privada (VPC). Várias técnicas permitem ligações seguras a partir de aplicações executadas fora da VPC.
Autorização: o proxy Auth do AlloyDB permite-lhe usar a gestão de identidade e de acesso (IAM) para controlar quem tem acesso aos seus dados. A firewall da VPC permite-lhe ajustar ainda mais o acesso aos recursos do AlloyDB.
Autenticação: use técnicas de autenticação de utilizadores do PostgreSQL padrão para iniciar sessão nas suas instâncias. O AlloyDB também suporta a autenticação baseada em IAM através de funções de utilizador padrão do PostgreSQL.
Agrupamento: para melhorar a fiabilidade, o desempenho e a escalabilidade, use o agrupamento de ligações do lado do cliente do PostgreSQL padrão e o agrupamento de ligações gerido do lado do servidor.
Redes
Embora uma instância do AlloyDB contenha muitos nós, as suas aplicações ligam-se a uma instância através de um único endereço IP estático. Este endereço pode ser um endereço privado para a VPC que especifica quando configura pela primeira vez o cluster de uma instância ou um IP público que permite ligações diretas a partir do exterior da VPC.
IP privado
Quando configura o AlloyDB com IP privado, a sua instância recebe um endereço IP privado na sua VPC.
Os endereços IP privados afetam as ligações à sua aplicação de duas formas:
As aplicações executadas noutro local na VPC do seu projeto podem estabelecer ligação à instância, ou a um proxy que representa a instância, sem passos nem recursos adicionais.
Por exemplo, o artigo Associe um cliente psql a uma instância mostra como associar a sua instância do AlloyDB executando o programa de linha de comandos
psqlnuma VM do Compute Engine na sua VPC.As aplicações executadas fora da VPC requerem um serviço intermediário para estabelecer ligação à instância do AlloyDB. As soluções incluem a execução de serviços de proxy numa VM dentro da VPC da instância ou a utilização de outros produtos para estabelecer uma ligação permanente entre a sua aplicação e a sua VPC.Google Cloud
Para mais informações, consulte o artigo Estabeleça ligação a um cluster a partir do exterior da respetiva VPC.
Normalmente, as ligações através de IP privado oferecem uma latência inferior e vetores de ataque limitados, uma vez que não requerem o atravessamento da Internet.
Para saber mais sobre o IP privado no AlloyDB, consulte a vista geral do IP privado.
IP público
Quando configura o AlloyDB com um IP público, a sua instância recebe um endereço IP público para ligações de entrada, que é acessível na Internet pública. Opcionalmente, pode usar redes externas autorizadas para especificar um intervalo de endereços IP no formato CIDR que podem aceder à sua instância.
Recomendamos a utilização do IP público com os AlloyDB Language Connectors para garantir ligações seguras entre o cliente e a sua instância.
Para mais informações sobre como adicionar um IP público e redes externas autorizadas à sua instância, consulte o artigo Estabeleça ligação através do IP público.
O AlloyDB também suporta ligações de saída
à sua instância. Pode ativar o IP público de saída para migrar uma base de dados
para o AlloyDB diretamente a partir de uma origem externa através do serviço de migração de bases de dados
ou configurações pglogical autogeridas. O AlloyDB também suporta a ligação a uma origem de dados externa através de wrappers de dados externos, como o postgres_fdw ou o oracle_fdw.
Para mais informações sobre como ativar o IP público de saída, consulte o artigo Adicione conetividade de saída a uma instância.
Autorização
Pode controlar o acesso a um cluster do AlloyDB através dos AlloyDB Language Connectors, do AlloyDB Auth Proxy ou das regras de firewall da VPC.
Conetores de idiomas do AlloyDB
Os conetores de linguagem do AlloyDB são bibliotecas de cliente que fornecem mTLS automatizado através do TLS 1.3 e autorização da IAM quando se ligam a um cluster do AlloyDB.
Pode usar estas bibliotecas diretamente a partir das respetivas linguagens de programação. Oferecem as mesmas capacidades que o AlloyDB Proxy sem necessitar de um processo externo. Isto oferece uma segurança melhorada e requisitos de configuração reduzidos para estabelecer ligação ao AlloyDB.
Para mais informações, consulte o artigo Vista geral dos conectores de linguagem do AlloyDB.
Controle o acesso com o IAM e o proxy de autenticação do AlloyDB
Embora possa ligar-se diretamente a uma instância através do respetivo endereço IP, recomendamos que use o proxy Auth do AlloyDB em ambientes de produção. Fornece controlo de acesso baseado na IAM e encriptação ponto a ponto entre o proxy e o seu cluster.
Para mais informações, consulte o artigo Acerca do AlloyDB Auth Proxy.
Limite o acesso à VPC com regras de firewall
Tal como acontece com qualquer projeto baseado na nuvem, deve ajustar as regras de firewall da sua VPC para restringir o acesso à rede apenas aos intervalos de IP ou às sub-redes a partir dos quais as suas aplicações se ligam. Isto é especialmente importante com aplicações externas, conforme detalhado no artigo Estabeleça ligação a um cluster a partir do exterior da respetiva VPC.
Para mais informações sobre a configuração da firewall da VPC, consulte as Regras da firewall da VPC.
Autenticação
O AlloyDB suporta dois tipos de utilizadores da base de dados, cada um dos quais tem a sua própria forma de autenticação com as suas bases de dados:
As funções de utilizador padrão do PostgreSQL autenticam-se através de um nome de utilizador e uma palavra-passe. Pode gerir estas contas através de técnicas de gestão de utilizadores do PostgreSQL comuns. Para mais informações, consulte o artigo Gerir funções de utilizador do AlloyDB.
As contas de serviço e os utilizadores do IAM autenticam-se como utilizadores da base de dados através de tokens OAuth 2.0. Gerir estas contas através do Google Cloud sistema IAM. Para mais informações, consulte o artigo Faça a gestão da autenticação da IAM.
Depois de autenticada com uma instância do AlloyDB, uma aplicação pode
tratar a instância como um servidor PostgreSQL normal. Depois de estabelecer
rotas de rede e autorização para uma instância, pode usar técnicas padrão do
PostgreSQL para iniciar sessão numa instância e aceder aos seus dados. Isto é
verdadeiro quer inicie sessão manualmente com uma ferramenta como o psql ou se ligue à sua
base de dados de forma programática através de uma biblioteca de código do PostgreSQL.
Normalmente, a primeira autenticação com um novo cluster do AlloyDB envolve iniciar sessão na respetiva instância principal como utilizador postgres, usando a palavra-passe que especifica quando cria o cluster. A partir daí, deve criar utilizadores da base de dados sem privilégios administrativos para utilização pela sua aplicação.
Agrupamento
A agrupamento de ligações é uma técnica que ajuda a garantir que a sua carga de trabalho tem uma ligação fiável e com bom desempenho à sua base de dados. É útil do lado do cliente e do servidor.
Conjunto de ligações de clientes
Quando se liga ao AlloyDB, use um conjunto de ligações de cliente. O conjunto de ligações do cliente cria várias ligações à sua base de dados e garante que essas ligações permanecem ativas e em bom estado durante todo o ciclo de vida da sua carga de trabalho. Esta abordagem garante que a sua carga de trabalho tem uma ligação fiável à sua base de dados.
- Quando executa consultas manualmente a partir da linha de comandos.
- Quando usa um idioma que não suporta o agrupamento de ligações de clientes.
- Quando a carga de trabalho é efémera e não mantém uma ligação duradoura.
Pode usar qualquer conjunto de ligações de cliente padrão que suporte o PostgreSQL. Tenha em atenção o seguinte:
- Por vezes, a biblioteca de pool de ligações do cliente está separada do controlador do PostgreSQL.
- Por vezes, o controlador PostgreSQL inclui a funcionalidade de agrupamento de ligações de clientes na mesma biblioteca.
Seguem-se as bibliotecas de pool de ligações usadas frequentemente:
- HikariCP para Java
- SQLAlchemy para Python
- pgxpool para Go
- node-postgres para Node.js
- Npgsql para .NET
Se a biblioteca suportar o PostgreSQL, pode usá-la com o AlloyDB.
Configure pools de ligações de clientes
Para obter o melhor desempenho do conjunto de ligações de clientes, pode ter de configurar o tamanho do conjunto. Use a seguinte fórmula como ponto de partida:
connections = (vCPU count * 2) + 1
Para mais informações, consulte o artigo Acerca do dimensionamento do conjunto. Consoante os carregamentos do mundo real, pode ter de fazer ajustes adicionais.
Use a pool de ligações gerida
Além da partilha de ligações de clientes, o AlloyDB também suporta a partilha de ligações do lado do servidor com a partilha de ligações gerida.
Embora possa usar a pool de ligações gerida para qualquer carga de trabalho transacional, a pool de ligações gerida é mais adequada para aplicações que contenham mais ligações de curta duração ou aplicações que possam sofrer um aumento repentino de ligações. Para mais informações, consulte o artigo Configure a partilha de ligações gerida.
O que se segue?
- Escolha como estabelecer ligação ao AlloyDB.
Saiba como estabelecer ligação a uma instância do AlloyDB com a
psqlshell de linha de comandos. Isto inclui instruções para configurar uma VM na sua VPC e instalar opsqlna mesma.Saiba como criar uma base de dados.
Saiba como instalar e usar o proxy Auth do AlloyDB para estabelecer ligações seguras com a sua instância do AlloyDB.
Saiba como estabelecer ligação através dos conetores de linguagem do AlloyDB.