Conectar a uma instância de banco de dados do Amazon RDS - Amazon Relational Database Service

Conectar a uma instância de banco de dados do Amazon RDS

Antes de se conectar a uma instância de banco de dados, você deve criar a instância de banco de dados. Para obter mais informações, consulte Criar uma instância de banco de dados do Amazon RDS. Depois que o Amazon RDS provisionar sua instância de banco de dados, use qualquer aplicação ou utilitário cliente padrão para o mecanismo de banco de dados se conectar à instância de banco de dados. Na string de conexão, especifique o endereço DNS do endpoint de instância de banco de dados como o parâmetro de host. Além disso, especifique o número da porta do endpoint da instância de banco de dados como o parâmetro da porta.

Localizando as informações de conexão para uma instância de Amazon RDS banco de dados

As informações de conexão de uma instância de banco de dados incluem seu endpoint, porta e um usuário de banco de dados válido, como o usuário mestre. Por exemplo, para uma instância de banco de dados MySQL, suponha que o valor do endpoint seja mydb.123456789012.us-east-1.rds.amazonaws.com. Nesse caso, o valor da porta é 3306, e o usuário do banco de dados é admin. Com essas informações, você especifica os seguintes valores em uma string de conexão:

  • Para o host, nome de host ou nome DNS, especifique mydb.123456789012.us-east-1.rds.amazonaws.com.

  • Para a porta, especifique 3306.

  • Para usuário, especifique admin.

O endpoint é exclusivo para cada instância de banco de dados e os valores da porta e do usuário podem variar. A seguinte lista mostra a porta mais comum para cada mecanismo de banco de dados:

  • Db2: 50000

  • MariaDB – 3306

  • Microsoft SQL Server – 1433

  • MySQL – 3306

  • Oracle – 1521

  • PostgreSQL – 5432

Para se conectar a uma instância de banco de dados, use qualquer cliente para um mecanismo de banco de dados. Por exemplo, você pode usar o utilitário mysql para se conectar a uma instância de banco de dados MariaDB ou MySQL. Você pode usar o Microsoft SQL Server Management Studio para se conectar a uma instância de banco de dados SQL Server. Você pode usar o Oracle SQL Developer para se conectar a uma instância de banco de dados Oracle. Da mesma forma, você pode usar uma instância local do utilitário de linha de comando psql para se conectar a uma instância de banco de dados do PostgreSQL.

Para encontrar as informações de conexão de uma instância de banco de dados, use o AWS Management Console Você também pode usar o comando describe-db-instances da AWS Command Line Interface (AWS CLI) ou a operação DescribeDBInstances da API do RDS.

Para encontrar as informações de conexão de uma instância de banco de dados no AWS Management Console
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Bancos de dados para exibir uma lista de suas instâncias de banco de dados.

  3. Escolha o nome da instância de banco de dados para mostrar os detalhes.

  4. Na guia Connectivity & security (Conectividade e segurança), copie o endpoint. Além disso, anote o número da porta. Você precisará do endpoint e do número da porta para conectar-se à instância de banco de dados.

    O endpoint e a porta de uma instância de banco de dados
  5. Se você precisar encontrar o nome de usuário mestre, escolha a guia Configuração e visualize o valor do nome de usuário mestre .

Para encontrar as informações de conexão de uma instância de banco de dados usando o AWS CLI, chame o comando describe-db-instances . Na chamada, consulte o ID da instância de banco de dados, o endpoint, a porta e o nome de usuário mestre.

Para Linux, macOS ou Unix:

aws rds describe-db-instances \ --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"

Para Windows:

aws rds describe-db-instances ^ --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"

Sua saída deve ser similar à seguinte.

[ [ "mydb", "mydb.123456789012.us-east-1.rds.amazonaws.com", 3306, "admin" ], [ "myoracledb", "myoracledb.123456789012.us-east-1.rds.amazonaws.com", 1521, "dbadmin" ], [ "mypostgresqldb", "mypostgresqldb.123456789012.us-east-1.rds.amazonaws.com", 5432, "postgresadmin" ] ]

Para localizar as informações de conexão de uma instância de banco de dados usando a Amazon RDS API, chame a operação DescribeDBInstances . Na saída, encontre os valores para o endereço do endpoint, a porta do endpoint e o nome do usuário mestre.

Opções de autenticação do banco de dados

Amazon RDS suporta as seguintes maneiras de autenticar usuários do banco de dados:

  • Com a autenticação com senha, –sua instância de banco de dados executa toda a administração de contas do usuário. Você cria usuários e especifica senhas com instruções SQL. As instruções SQL que você pode usar dependem do mecanismo de banco de dados.

  • Autenticação de banco de dados do AWS Identity and Access Management (IAM): você não precisa usar uma senha ao se conectar a uma instância de banco de dados. Em vez disso, você usa um token de autenticação.

  • Autenticação Kerberos – Você usa autenticação externa de usuários de banco de dados usando Kerberos e Microsoft Active Directory. O Kerberos é um protocolo de autenticação de rede que usa tíquetes e criptografia de chave simétrica para eliminar a necessidade de transmitir senhas pela rede. O Kerberos foi integrado ao Active Directory e foi projetado para autenticar usuários em recursos de rede, como bancos de dados.

IAM autenticação de banco de dados e autenticação Kerberos estão disponíveis apenas para mecanismos de banco de dados específicos e versões.

Para obter mais informações, consulte Autenticação do banco de dados com Amazon RDS.

Conexões criptografadas

É possível usar o Security Socket Layer (SSL) ou o Transport Layer Security (TLS) na aplicação para criptografar uma conexão com a uma instância de banco de dados. Cada mecanismo de banco de dados tem seu próprio processo de implementação do SSL/TLS. Para obter mais informações, consulte Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados.

Cenários para acessar uma instância de banco de dados em uma VPC

Usando o Amazon Virtual Private Cloud (Amazon VPC) você pode executar recursos da AWS, como instâncias de bancos de dados do Amazon RDS, em uma nuvem privada virtual (VPC). Ao usar uma Amazon VPC, você tem controle sobre o ambiente de rede virtual. É possível escolher seu próprio intervalo de endereços IP, criar sub-redes e configurar o roteamento e listas de controle de acesso.

Um grupo de segurança da VPC controla o acesso a uma instância de banco de dados dentro de uma VPC. Cada regra de grupo de segurança de VPC permite que uma origem específica acesse uma instância de banco de dados em uma VPC que esteja associada a esse grupo de segurança de VPC. A origem pode ser uma gama de endereços (por exemplo, 203.0.113.0/24) ou outro grupo de segurança da VPC. Ao especificar um grupo de segurança de VPC como origem, você permite o tráfego recebido de todas as instâncias (geralmente servidores de aplicativos) que usam o grupo de segurança de VPC de origem.

Antes de tentar se conectar à sua instância de banco de dados, configure a VPC para o caso de uso. Estes são alguns cenários comuns para acessar uma instância de banco de dados em uma VPC:

  • Uma instância de banco de dados em uma VPC acessada por uma instância Amazon EC2 na mesma VPC – Um uso comum de uma instância de banco de dados em uma VPC é compartilhar dados com um servidor de aplicações que estiver sendo executada em uma instância do EC2 na mesma VPC. A instância do EC2 pode executar um servidor Web com uma aplicação que interaja com a instância de banco de dados.

  • Uma instância de banco de dados em uma VPC acessada por uma instância do EC2 em uma VPC diferente: em alguns casos, sua instância de banco de dados está em uma VPC diferente da instância do EC2 que você está usando para acessá-la. Nesse caso, você pode usar o emparelhamento de VPC para acessar a instância de banco de dados.

  • Uma instância de banco de dados em uma VPC acessada por uma aplicação cliente pela Internet: para acessar uma instância de banco de dados em uma VPC de uma aplicação cliente pela Internet, configure uma VPC com uma única sub-rede pública. Não há nenhum gateway da Internet para permitir comunicação pela Internet.

    Para se conectar a uma instância de banco de dados de fora de sua VPC, a instância de banco de dados deve estar acessível publicamente. Além disso, o acesso deve ser concedido usando as regras de entrada do grupo de segurança da instância de banco de dados, e os outros requisitos devem ser atendidos. Para obter mais informações, consulte Não é possível conectar-se à instância de banco de dados do Amazon RDS.

  • Uma instância de banco de dados em uma VPC acessada por uma rede privada: se sua instância de banco de dados não estiver acessível ao público, você poderá usar uma das seguintes opções para acessá-la de uma rede privada:

    • Uma conexão do AWS Site-to-Site VPN.

    • Uma conexão do AWS Direct Connect.

    • Uma conexão do AWS Client VPN.

Para obter mais informações, consulte Cenários para acessar uma instância de banco de dados em uma VPC.

Conectar-se a instâncias de banco de dados com os drivers da AWS

O pacote de drivers da AWS foram projetados para comportar tempos mais rápidos de transição e de failover, além de autenticação com o AWS Secrets Manager, o AWS Identity and Access Management (IAM) e identidades federadas. Os drivers da AWS dependem do monitoramento do status da instância de banco de dados e do conhecimento da topologia da instância para determinar a nova instância primária. Essa abordagem reduz os tempos de transição e de failover para segundos de um dígito, em comparação com dezenas de segundos para drivers de código aberto.

A tabela a seguir lista os recursos aceitos para cada um dos drivers. Como novos recursos do serviço são introduzidos, o objetivo do pacote de drivers da AWS é ter suporte integrado para esses recursos do serviço.

Atributo Driver JDBC da AWS Driver Python da AWS
Suporte a failover Sim Sim
Monitoramento aprimorado de failover Sim Sim
Divisão de leituras/gravações Sim Sim
Conexão de metadados do driver Sim N/D
Telemetria Sim Sim
Secrets Manager  Sim Sim
Autenticação do IAM Sim Sim
Identidades federadas (AD FS) Sim Sim
Identidade federada (Okta) Sim Não
Clusters de banco de dados multi-AZ Sim Sim

Para ter mais informações sobre os drivers da AWS, consulte o driver de linguagem correspondente para a instância de banco de dados do RDS para MariaDB, RDS para MySQL ou RDS para PostgreSQL.

nota

Os únicos recursos compatíveis com o RDS para MariaDB são a autenticação com o AWS Secrets Manager, o AWS Identity and Access Management (IAM) e a identidade federada.

Conectar-se a uma instância de banco de dados que está executando um mecanismo de banco de dados específico

Para obter informações sobre a conexão a uma instância de banco de dados que esteja executando um mecanismo de banco de dados específico, siga as instruções do mecanismo de banco de dados:

Gerenciar conexões com o RDS Proxy

Também é possível usar o Amazon RDS Proxy para gerenciar conexões com instâncias de banco de dados do RDS para MariaDB, do RDS para Microsoft SQL Server, do RDS para MySQL e do RDS para PostgreSQL. O RDS Proxy permite que as aplicações agrupem e compartilhem conexões de banco de dados para melhorar a escalabilidade. Para obter mais informações, consulte Usar o Amazon RDS Proxy.