Esta página descreve a conectividade com bancos de dados veiculados pelo AlloyDB para PostgreSQL. Para mais informações, consulte Escolher como se conectar ao AlloyDB.
Rede: as instâncias do AlloyDB usam IPs públicos ou particulares em uma nuvem privada virtual (VPC). Várias técnicas permitem conexões seguras de aplicativos executados fora da VPC.
Autorização: o proxy de autenticação do AlloyDB permite usar o Identity and Access Management (IAM) para controlar quem tem acesso aos seus dados. O firewall da VPC permite ajustar ainda mais o acesso aos recursos do AlloyDB.
Autenticação:use técnicas padrão de autenticação de usuário do PostgreSQL para fazer login nas instâncias. O AlloyDB também oferece suporte à autenticação baseada em IAM usando papéis de usuário padrão do PostgreSQL.
Pooling:para melhorar a confiabilidade, o desempenho e a escalonabilidade, use o pool de conexões padrão do lado do cliente do PostgreSQL e o pool de conexões gerenciado do lado do servidor.
Rede
Embora uma instância do AlloyDB contenha muitos nós, seus aplicativos se conectam a uma instância por um único endereço IP estático. Esse endereço pode ser particular da VPC especificada ao configurar o cluster de uma instância ou um IP público que permite conexões diretas de fora da VPC.
IP particular
Ao configurar o AlloyDB com IP particular, a instância recebe um endereço IP particular na VPC.
Os endereços IP particulares afetam as conexões com o aplicativo de duas maneiras:
Os aplicativos executados em outro lugar na VPC do projeto podem se conectar à instância ou a um proxy que representa a instância sem etapas ou recursos adicionais.
Como exemplo, Conectar um cliente psql a uma instância mostra como se conectar à instância do AlloyDB executando o
psqlprograma de linha de comando em uma VM do Compute Engine na VPC.Os aplicativos executados fora da VPC exigem um serviço intermediário para se conectar à instância do AlloyDB. As soluções incluem a execução de serviços de proxy em uma VM na VPC da instância ou o uso de outros Google Cloud produtos para estabelecer uma conexão permanente entre o aplicativo e a VPC.
Para mais informações, consulte Conectar-se a um cluster de fora da VPC.
As conexões por IP privado geralmente fornecem menor latência e vetores de ataque limitados porque não exigem a passagem da Internet.
Para saber mais sobre o IP particular no AlloyDB, consulte Visão geral do IP particular.
IP público
Ao configurar o AlloyDB com IP público, a instância recebe um endereço IP público para conexões de entrada, que pode ser acessado na Internet pública. Opcionalmente, é possível usar redes externas autorizadas para especificar um intervalo de endereços IP no formato CIDR que podem acessar a instância.
Recomendamos o uso de IP público com conectores de linguagem do AlloyDB para garantir conexões seguras entre o cliente e a instância.
Para mais informações sobre como adicionar um IP público e redes externas autorizadas à sua instância, consulte Conectar usando IP público.
O AlloyDB também oferece suporte a conexões de saída da instância para a Internet pública. Quando você ativa o IP público de saída, o AlloyDB fornece um endereço IP de origem consistente e previsível para o tráfego que sai da instância do AlloyDB para a Internet pública. Ao ativar esse recurso, o AlloyDB provisiona um par de endereços IP públicos estáticos que são usados exclusivamente para conexões de saída da instância.
As conexões de saída são especialmente úteis para os seguintes cenários:
Migração de banco de dados: ao migrar dados de um banco de dados externo para o AlloyDB usando o Database Migration Service (DMS), é possível configurar o firewall do banco de dados externo para permitir conexões dos endereços IP de saída específicos da instância do AlloyDB, garantindo um caminho de transferência de dados seguro.
Wrappers de dados externos: se você precisar consultar dados de um banco de dados externo no AlloyDB usando wrappers de dados externos, como
postgres_fdwouoracle_fdw, adicione os endereços IP de saída da instância à lista de permissões do banco de dados externo. Isso permite que o AlloyDB se conecte e consulte a fonte de dados externa com segurança.
Ao ativar o IP público de saída, é possível conferir os endereços IP atribuídos no Google Cloud console ou usando a gcloud ferramenta de linha de comando. Em seguida, use esses endereços IP para configurar regras de firewall ou listas de controle de acesso (ACLs) nos sistemas externos para conceder acesso da instância do AlloyDB aos sistemas externos.
Para mais informações sobre como ativar o IP público de saída, consulte Adicionar conectividade de saída a uma instância.
Autorização
É possível controlar o acesso a um cluster do AlloyDB usando conectores de linguagem do AlloyDB, o proxy de autenticação do AlloyDB ou regras de firewall da VPC.
Conectores de linguagem do AlloyDB
Os conectores de linguagem do AlloyDB são bibliotecas de cliente que fornecem mTLS automatizado usando TLS 1.3 e autorização do IAM ao se conectar a um cluster do AlloyDB.
É possível usar essas bibliotecas diretamente das respectivas linguagens de programação. Elas fornecem os mesmos recursos que o proxy do AlloyDB sem exigir um processo externo. Isso oferece maior segurança e requisitos de configuração reduzidos para se conectar ao AlloyDB.
Para mais informações, consulte Visão geral dos conectores de linguagem do AlloyDB.
Conectar usando o gcloud
Para sessões de banco de dados interativas, use o comando gcloud beta alloydb connect. Esse comando simplifica o processo de conexão gerenciando automaticamente uma instância local do proxy de autenticação do AlloyDB e iniciando uma sessão de cliente psql para você.
Para mais informações, consulte Conectar usando o gcloud.
Controlar o acesso com o IAM e o proxy de autenticação do AlloyDB
Embora seja possível se conectar diretamente a uma instância pelo endereço IP, recomendamos o uso do proxy de autenticação do AlloyDB em ambientes de produção. Ele fornece controle de acesso baseado em IAM e criptografia de ponta a ponta entre o proxy e o cluster.
Para mais informações, consulte Sobre o proxy de autenticação do AlloyDB.
Limitar o acesso à VPC com regras de firewall
Como em qualquer projeto baseado na nuvem, é necessário ajustar as regras de firewall da VPC para restringir o acesso à rede apenas aos intervalos de IP ou sub-redes de que os aplicativos se conectam. Isso é especialmente importante com aplicativos externos, conforme detalhado em Conectar-se a um cluster de fora da VPC.
Para mais informações sobre como configurar o firewall da VPC, consulte Regras de firewall da VPC.
Autenticação
O AlloyDB oferece suporte a dois tipos de usuários de banco de dados, cada um com sua própria maneira de autenticar com os bancos de dados:
Os papéis de usuário padrão do PostgreSQL são autenticados usando um nome de usuário e uma senha. Essas contas são gerenciadas usando técnicas comuns de gerenciamento de usuários do PostgreSQL. Para mais informações, consulte Gerenciar papéis de usuário do AlloyDB.
As contas de usuário e de serviço do IAM são autenticadas como usuários de banco de dados usando tokens OAuth 2.0. Essas contas são gerenciadas usando o Google Cloud sistema do IAM. Para mais informações, consulte Gerenciar a autenticação do IAM.
Depois de autenticado com uma instância do AlloyDB, um aplicativo pode tratar a instância como um servidor PostgreSQL comum. Depois de estabelecer rotas de rede e autorização para uma instância, é possível usar técnicas padrão do PostgreSQL para fazer login em uma instância e acessar seus dados. Isso é válido para fazer login manualmente com uma ferramenta como psql ou se conectar ao banco de dados de maneira programática usando uma biblioteca de código do PostgreSQL.
Normalmente, a primeira autenticação com um novo cluster do AlloyDB envolve fazer login na instância principal como usuário postgres, usando a senha especificada ao criar o cluster. A partir daí, crie usuários de banco de dados sem privilégios administrativos para uso do aplicativo.
Se você não definir uma senha para postgres ao criar um cluster, não será possível fazer login nele. Para fazer login, defina uma senha para postgres ou crie outro usuário. Para mais informações,
consulte Gerenciar usuários do PostgreSQL com autenticação integrada.
Pooling
O pool de conexões é uma técnica que ajuda a garantir que sua carga de trabalho tenha uma conexão confiável e de bom desempenho com o banco de dados. Ele é útil tanto no cliente quanto no servidor.
Pool de conexões do cliente
Ao se conectar ao AlloyDB, use um pool de conexões do cliente. O pool de conexões do cliente cria várias conexões com o banco de dados e garante que essas conexões permaneçam ativas e íntegras durante todo o ciclo de vida da carga de trabalho. Essa abordagem garante que a carga de trabalho tenha uma conexão confiável com o banco de dados.
- Ao executar consultas manualmente na linha de comando.
- Ao usar uma linguagem que não oferece suporte ao pool de conexões do cliente.
- Quando a carga de trabalho é temporária e não mantém uma conexão de longa duração.
É possível usar qualquer pool de conexões do cliente padrão que ofereça suporte ao PostgreSQL. Lembre-se do seguinte:
- A biblioteca de pool de conexões do cliente às vezes é separada do driver do PostgreSQL.
- O driver do PostgreSQL às vezes inclui a funcionalidade de pool de conexões do cliente na mesma biblioteca.
Confira as bibliotecas de pool de conexões usadas com frequência:
- HikariCP para Java
- SQLAlchemy para Python
- pgxpool para Go
- node-postgres para Node.js
- Npgsql para .NET
Se a biblioteca oferece suporte ao PostgreSQL, é possível usá-la com o AlloyDB.
Configurar pools de conexões do cliente
Para ter o melhor desempenho do pool de conexões do cliente, talvez seja necessário configurar o tamanho do pool. Use a fórmula a seguir como ponto de partida:
connections = (vCPU count * 2) + 1
Para mais informações, consulte Sobre o dimensionamento do pool. Dependendo das cargas reais, talvez seja necessário realizar ajustes adicionais.
Usar o pool de conexões gerenciado
Além do pool de conexões do cliente, o AlloyDB também oferece suporte ao pool de conexões do lado do servidor com pool de conexões gerenciado.
Embora seja possível usar o pool de conexões gerenciado para qualquer carga de trabalho transacional, ele é mais adequado para aplicativos que contêm mais conexões de curta duração ou aplicativos que podem sofrer um aumento de conexões. Para mais informações, consulte Configurar o pool de conexões gerenciado.
A seguir
- Escolher como se conectar ao AlloyDB.
- Saiba como se conectar usando a ferramenta de linha de comando
gcloud. Saiba como se conectar a uma instância do AlloyDB com o
psqlshell de linha de comando. Isso inclui instruções para configurar uma VM na VPC e instalar opsqlnela.Saiba como criar um banco de dados.
Saiba como instalar e usar o proxy de autenticação do AlloyDB para estabelecer conexões seguras com a instância do AlloyDB.
Saiba como se conectar usando os conectores de linguagem do AlloyDB.