Criar uma instância de banco de dados PostgreSQL e conectar-se a ela - Amazon Relational Database Service

Criar uma instância de banco de dados PostgreSQL e conectar-se a ela

Este tutorial cria uma instância do EC2 e uma instância de banco de dados do RDS para PostgreSQL. O tutorial mostra como acessar a instância de banco de dados pela instância do EC2 usando um cliente PostgreSQL padrão. Como prática recomendada, este tutorial cria uma instância de banco de dados privada em uma nuvem privada virtual (VPC). Na maioria dos casos, outros recursos na mesma VPC, como instâncias do EC2, podem acessar a instância de banco de dados, mas recursos fora da VPC não podem acessá-la.

Depois de concluir o tutorial, haverá uma sub-rede pública e privada em cada zona de disponibilidade na sua VPC. Em uma zona de disponibilidade, a instância do EC2 está na sub-rede pública e a instância de banco de dados está na sub-rede privada.

Importante

Não há cobrança para criar uma conta da AWS. No entanto, ao concluir este tutorial, é possível gerar custos para os recursos da AWS que você usa. Se esses recursos não forem mais necessários após a conclusão do tutorial, você poderá excluí-los.

O diagrama a seguir mostrará a configuração quando o tutorial estiver completo.

Instância do EC2 e instância de banco de dados PostgreSQL.

Esse tutorial permite criar recursos usando um dos seguintes métodos:

  1. Use o AWS Management Console: Etapa 1: Criar uma instância do EC2 e Etapa 2: Criar uma instância de banco de dados PostgreSQL

  2. Use o AWS CloudFormation para criar a instância de banco de dados e a instância do EC2: (Opcional) Criar VPC, instância do EC2 e instância do PostgreSQL usando o AWS CloudFormation

O primeiro método usa Criação fácil para criar uma instância de banco de dados privada do PostgreSQL com o AWS Management Console. Aqui, você especifica somente o tipo de mecanismo de banco de dados, o tamanho da instância de banco de dados e o identificador da instância de banco de dados. A opção Easy create (Criação fácil) usa a configuração padrão para as outras opções de configuração.

Ao usar a opção Criação padrão, é possível especificar mais opções de configuração ao criar uma instância de banco de dados. Essas opções incluem configurações de disponibilidade, segurança, backups e manutenção. Para criar uma instância de banco de dados pública, você deve usar a Criação padrão. Para ter mais informações, consulte Criar uma instância de banco de dados do Amazon RDS.

Pré-requisitos

Antes de começar, conclua as etapas nas seguintes seções:

Etapa 1: Criar uma instância do EC2

Crie uma instância do Amazon EC2 que você usará para se conectar ao banco de dados.

Para criar uma instância do EC2
  1. Faça login no AWS Management Console e abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No canto superior direito do AWS Management Console, selecione a Região da AWS em que você deseja criar a instância do EC2.

  3. Escolha Painel do EC2 e Executar instância, conforme mostrado na imagem a seguir.

    Painel do EC2.

    A página Iniciar uma instância é aberta.

  4. Escolha as configurações a seguir na página Iniciar uma instância.

    1. Em Name and tags (Nome e etiquetas), em Name (Nome), insira ec2-database-connect.

    2. Em Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon), selecione Amazon Linux e, depois, AMI do Amazon Linux 2023. Mantenha as seleções padrão nas outras opções.

      Escolha uma imagem de máquina da Amazon.
    3. Em Instance type (Tipo de instância), escolha t2.micro.

    4. Em Key pair (login) (Par de chaves (login)), escolha um Key pair name (Nome do par de chaves) para usar um par de chaves existente. Para criar um par de chaves para a instância do Amazon EC2, escolha Create new key pair (Criar um novo key pair), depois use a janela Create key pair (Criar par de chaves) para criá-lo.

      Consulte mais informações sobre como criar um par de chaves em Criar um par de chaves no Guia do usuário do Amazon EC2.

    5. Para Permitir tráfego SSH, em Configurações de rede, selecione a origem das conexões SSH com a instância do EC2.

      Você pode escolher My IP (Meu IP) se o endereço IP exibido estiver correto para conexões SSH. Caso contrário, determine o endereço IP a ser usado para se conectar a instâncias do EC2 em sua VPC usando Secure Shell (SSH). Para determinar seu endereço IP público, em uma janela ou guia diferente do navegador, é possível usar o serviço em https://checkip.amazonaws.com. Um exemplo de endereço IP é 192.0.2.1/32.

      Em muitos casos, você pode se conectar por meio de um provedor de serviços de Internet (ISP) ou atrás de um firewall sem um endereço IP estático. Em caso afirmativo, determine o intervalo de endereços IP utilizado por computadores cliente.

      Atenção

      Se usar 0.0.0.0/0 para acesso do SSH, você possibilitará que todos os endereços IP acessem suas instâncias públicas do EC2 usando SSH. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias do EC2 usando SSH.

      A imagem a seguir mostra um exemplo da seção Configurações de rede.

      Configurações de rede para uma instância do EC2.
    6. Mantenha os valores padrão para as seções restantes.

    7. Revise um resumo da configuração da instância do EC2 no painel Resumo e, quando estiver com tudo pronto, escolha Executar instância.

  5. Na página Status de inicialização, anote o identificador de sua nova instância do EC2, por exemplo: i-1234567890abcdef0.

    Identificador de instância do EC2 na página Status de inicialização.
  6. Selecione o identificador de instância do EC2 para abrir a lista de instâncias do EC2 e, depois, selecione sua instância do EC2.

  7. Na guia Detalhes, observe os seguintes valores, necessários ao se conectar utilizando SSH:

    1. No Resumo da instância, observe o valor do DNS IPv4 público.

      Nome do DNS público do EC2 na guia Detalhes da página Instâncias.
    2. Em Detalhes da instância, observe o valor do nome do par de chaves.

      Nome do par de chaves do EC2 na guia Detalhes da página Instâncias.
  8. Espere até o Estado da instância para a instância do EC2 ficar como Executando antes de continuar.

Etapa 2: Criar uma instância de banco de dados PostgreSQL

O bloco de construção básico do Amazon RDS é a instância do banco de dados. Este ambiente é onde você executa seus bancos de dados PostgreSQL.

Neste exemplo, use a Criação fácil para criar uma instância de banco de dados executando o mecanismo de banco de dados PostgreSQL com uma classe de instância de banco de dados db.t3.micro.

Para criar uma instância de banco de dados PostgreSQL com a criação fácil
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No canto superior direito do console do Amazon RDS, escolha a região da AWS na qual você deseja criar a instância de banco de dados.

  3. No painel de navegação, escolha Databases (Bancos de dados).

  4. Selecione a opção Create database (Criar banco de dados) e verifique se a opção Easy Create (Criação fácil) está habilitada.

    Opção Criação fácil.
  5. Em Configuration (Configuração), escolha PostgreSQL.

  6. Em DB instance size (Tamanho da instância de banco de dados), escolha Free tier (Nível gratuito).

  7. Em Identificador de instância de banco de dados, insira database-test1.

  8. Em Nome do usuário principal, insira um nome para o usuário principal ou deixe o nome padrão (postgres).

    A página Create database (Criar banco de dados) deve ser semelhante à imagem a seguir.

    Página Criar banco de dados.
  9. Para usar uma senha primária gerada automaticamente para a instância de banco de dados, marque a opção Gerar uma senha automaticamente.

    Para inserir sua senha primária, desmarque a opção Gerar uma senha automaticamente, depois insira a mesma senha em Senha primária e em Confirmar senha.

  10. Para configurar uma conexão com a instância do EC2 que você criou anteriormente, abra Configurar conexão do EC2: opcional.

    Selecione Conectar-se a um recurso computacional do EC2. Selecione a instância do EC2 que você criou anteriormente.

    Configure a opção de conexão do EC2.
  11. Abra Visualizar as configurações padrão da criação fácil.

    Configurações padrão da criação fácil para RDS para PostgreSQL.

    Você pode examinar as configurações padrão usadas com a opção Easy Create (Criação fácil). A coluna Editável após a criação do banco de dados mostra quais opções podem ser alteradas após a criação do banco de dados.

    • Se uma configuração tiver Não nessa coluna e você quiser uma configuração diferente, poderá usar a opção Criação padrão para criar a instância de banco de dados.

    • Se uma configuração tiver Sim nessa coluna e você quiser uma configuração diferente, poderá usar a opção Criação padrão para criar a instância de banco de dados, ou modificar a instância de banco de dados depois de criá-la para alterar a configuração.

  12. Selecione Criar banco de dados.

    Para exibir o nome de usuário mestre e a senha da instância de banco de dados, escolha View credential details (Ver detalhes da credencial).

    Use o nome de usuário e a senha que aparecem para se conectar à instância de banco de dados como o usuário mestre.

    Importante

    Você não pode visualizar a senha do usuário principal novamente. Caso você não a registre, talvez seja necessário alterá-la.

    Se for necessário alterar a senha do usuário mestre depois que a instância de banco de dados estiver disponível, será possível modificar a instância de banco de dados para fazer isso. Para ter mais informações sobre a modificação de uma instância de banco de dados, consulte Modificar uma instância de banco de dados do Amazon RDS.

  13. Na lista Bancos de dados, selecione o nome da nova instância de banco de dados PostgreSQL para mostrar seus detalhes.

    A instância de banco de dados permanecerá no status Criando até estar pronta para ser usada.

    Detalhes da instância de banco de dados.

    Quando o status muda para Available (Disponível), você pode se conectar à instância de banco de dados. Dependendo da classe da instância de banco de dados e da quantidade de armazenamento, pode levar até 20 minutos para que a nova instância esteja disponível.

(Opcional) Criar VPC, instância do EC2 e instância do PostgreSQL usando o AWS CloudFormation

Em vez de usar o console para criar a VPC, a instância do EC2 e a instância do PostgreSQL, você pode usar o AWS CloudFormation para provisionar recursos da AWS tratando a infraestrutura como código. Para ajudar a organizar os recursos da AWS em unidades menores e mais gerenciáveis, você pode usar a funcionalidade de pilha aninhada do AWS CloudFormation. Consulte mais informações em Criar uma pilha no console do AWS CloudFormation e Trabalhar com pilhas aninhadas.

Importante

O AWS CloudFormation é gratuito, mas os recursos que o CloudFormation são ativos. Você incorre nas taxas de uso padrão para esses recursos até que os encerre. O total de cobranças será mínimo. Consulte informações de como minimizar as cobranças em Nível gratuito da AWS.

Para criar recursos usando o console do AWS CloudFormation, conclua as seguintes etapas:

  • Etapa 1: baixar o modelo do CloudFormation

  • Etapa 2: configurar recursos usando o CloudFormation

Baixar o modelo do CloudFormation

Um modelo do CloudFormation é um arquivo de texto JSON ou YAML que contém as informações da configuração dos recursos que você deseja criar na pilha. Esse modelo também cria uma VPC e um bastion host para você junto com a instância do RDS.

Para baixar o arquivo de modelo, abra o link PostgreSQL CloudFormation template.

Na página do Github, clique no botão Baixar arquivo bruto para salvar o arquivo YAML do modelo.

Configurar recursos usando o CloudFormation

nota

Antes de iniciar esse processo, verifique se você tem um par de chaves para uma instância do EC2 na Conta da AWS. Para obter mais informações, consulte Pares de chaves do Amazon EC2 e instâncias do Linux.

Ao usar o modelo do AWS CloudFormation, você deve selecionar os parâmetros certos para garantir que os recursos sejam criados corretamente. Siga as etapas abaixo:

  1. Faça login no AWS Management Console e abra o console AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. Selecione Create Stack (Criar pilha).

  3. Na seção Especificar modelo, selecione Fazer upload de um arquivo de modelo do computador e escolha Próximo.

  4. Na página Especificar detalhes da pilha, defina os seguintes parâmetros:

    1. Defina o Nome da pilha como PostgreSQLTestStack.

    2. Em Parâmetros, defina Zonas de disponibilidade selecionando três zonas de disponibilidade.

    3. Em Configuração do bastion host do Linux, em Nome da chave, selecione um par de chaves para fazer login na instância do EC2.

    4. Em Configurações do bastion host do Linux, defina o Intervalo de IP permitido para o endereço IP. Para conectar instâncias do EC2 à VPC usando o Secure Shell (SSH), determine o endereço IP público usando o serviço em https://checkip.amazonaws.com. Um exemplo de endereço IP é 192.0.2.1/32.

      Atenção

      Se usar 0.0.0.0/0 para acesso do SSH, você possibilitará que todos os endereços IP acessem suas instâncias públicas do EC2 usando SSH. Essa abordagem é aceitável por um período curto em um ambiente de teste, mas não é seguro em ambientes de produção. Em produção, autorize somente um endereço IP específico ou um intervalo de endereços para acessar suas instâncias do EC2 usando SSH.

    5. Em Configuração geral do banco de dados, defina a Classe da instância do banco de dados como db.t3.micro.

    6. Defina o Nome do banco de dados como database-test1.

    7. Em Nome de usuário principal do banco de dados, insira um nome para o usuário principal.

    8. Defina a Gerenciar senha de usuário principal do banco de dados com o Secrets Manager como false para esse tutorial.

    9. Em Senha do banco de dados, defina uma senha de sua escolha. Lembre-se dessa senha para as etapas seguintes do tutorial.

    10. Em Configuração de armazenamento de banco de dados, defina o Tipo de armazenamento do banco de dados como gp2.

    11. Em Configuração de monitoramento de banco de dados, defina Habilitar o Performance Insights do RDS como falso.

    12. Deixe todas as outras configurações com os valores padrão. Clique em Próximo para continuar.

  5. Na página Configurar opções de pilha, mantenha todas as opções padrão. Clique em Próximo para continuar.

  6. Na página Revisar pilha, selecione Enviar depois de verificar as opções do banco de dados e do bastion host do Linux.

Depois que o processo de criação da pilha for concluído, visualize as pilhas com os nomes BastionStack e RDSNS para anotar as informações necessárias para se conectar ao banco de dados. Consulte mais informações em Viewing AWS CloudFormation stack data and resources on the AWS Management Console.

Etapa 3: Conectar-se a uma instância de banco de dados PostgreSQL

Você pode se conectar à instância de banco de dados usando o pgadmin ou o psql. Este exemplo explica como se conectar a uma instância de banco de dados PostgreSQL usando o cliente da linha de comando psql.

Como se conectar a uma instância de banco de dados PostgreSQL usando psql
  1. Encontre o endpoint (nome de DNS) e o número da porta para sua instância de banco de dados.

    1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

    2. No canto superior direito do console do Amazon RDS, escolha a Região da AWS da instância de banco de dados.

    3. No painel de navegação, escolha Bancos de dados.

    4. Escolha o nome da instância de banco de dados do PostgreSQL para exibir os detalhes.

    5. 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.

      Conecte-se à instância de banco de dados PostgreSQL.
  2. Conecte-se à instância do EC2 que você criou anteriormente, seguindo as etapas em Conecte-se à sua instância do Linux no Guia do usuário do Amazon EC2.

    Recomendamos que você se conecte à sua instância do EC2 utilizando SSH. Se o utilitário cliente SSH estiver instalado no Windows, Linux ou Mac, você poderá se conectar à instância utilizando o seguinte formato de comando:

    ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name

    Por exemplo, suponha que ec2-database-connect-key-pair.pem esteja armazenado em /dir1 no Linux e que o DNS IPv4 público para sua instância do EC2 seja ec2-12-345-678-90.compute-1.amazonaws.com. Seu comando SSH teria a seguinte aparência:

    ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
  3. Obtenha as últimas correções de bugs e atualizações de segurança atualizando o software na instância do EC2. Para fazer isso, execute o seguinte comando.

    nota

    A opção -y instala as atualizações sem solicitar confirmação. Para examinar atualizações antes da instalação, omita essa opção.

    sudo dnf update -y
  4. Para instalar o cliente da linha de comando psql do PostgreSQL no Amazon Linux 2023, execute o seguinte comando:

    sudo dnf install postgresql15
  5. Conecte-se à instância de banco de dados PostgreSQL. Por exemplo, insira o comando a seguir em um prompt de comando em um computador cliente. Essa ação permite que você se conecte à instância de banco de dados PostgreSQL usando o cliente psql.

    Substitua o endpoint da instância de banco de dados (nome DNS) por endpoint, substitua o nome do banco de dados --dbname que você deseja acessar por postgres e substitua o nome do usuário principal usado por postgres. Forneça a senha mestra usada quando for solicitada uma senha.

    psql --host=endpoint --port=5432 --dbname=postgres --username=postgres

    Depois de inserir a senha do usuário, você deverá ver uma saída semelhante à seguinte:

    psql (14.3, server 14.6) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. postgres=>

    Para ter mais informações sobre como se conectar à sua instância de banco de dados do PostgreSQL, consulte Conectar a uma instância de banco de dados executando o mecanismo de banco de dados do PostgreSQL. Se você não conseguir se conectar à sua instância de banco de dados, consulte Solucionar problemas de conexões com a sua instância RDS for PostgreSQL.

    Por questões de segurança, é uma prática recomendada usar conexões criptografadas. Use uma conexão PostgreSQL não criptografada apenas quando o cliente e o servidor estiverem na mesma VPC e a rede for confiável. Para obter informações sobre como usar conexões criptografadas, consulte Conectar-se à instância de banco de dados PostgreSQL via SSL.

  6. Executar comandos SQL.

    Por exemplo, o seguinte comando SQL mostra a data e a hora atuais:

    SELECT CURRENT_TIMESTAMP;

Etapa 4: Excluir a instância do EC2 e a instância de banco de dados

Depois de se conectar e explorar a instância do EC2 e a instância de banco de dados criadas, exclua-as para não receber mais cobranças por elas.

Se você usou o AWS CloudFormation para criar recursos, ignore essa etapa e passe para a próxima.

Como excluir a instância do EC2
  1. Faça login no AWS Management Console e abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Selecione a instância do EC2 e escolha Estado da instância, Encerrar instância.

  4. Quando a confirmação for solicitada, escolha Terminate (Encerrar).

Consulte mais informações sobre como excluir uma instância do EC2 em Como encerrar uma instância no Guia do usuário do Amazon EC2.

Para excluir uma instância de banco de dados sem snapshot de banco de dados final
  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 Databases (Bancos de dados).

  3. Escolha a instância de banco de dados que você deseja excluir.

  4. Em Actions, selecione Delete.

  5. Desmarque Criar snapshot final? e Reter backups automatizados.

  6. Conclua a confirmação e escolha Excluir.

(Opcional) Excluir a instância do EC2 e a instância de banco de dados criada com o CloudFormation

Se você usou o AWS CloudFormation para criar recursos, exclua a pilha do CloudFormation depois de conectar e explorar a amostra de instância do EC2 e de instância de banco de dados para não receber mais cobranças por elas.

Para excluir os recursos do CloudFormation
  1. Abra o console do AWS CloudFormation.

  2. Na página Pilhas no console do CloudFormation, selecione a pilha raiz (a pilha sem o nome VPCStack, BastionStack ou RDSNS).

  3. Escolha Excluir.

  4. Selecione Excluir pilha quando a confirmação for solicitada.

Consulte mais informações de como excluir uma pilha no CloudFormation em Deleting a stack on the AWS CloudFormation console no Guia do usuário do AWS CloudFormation.

(Opcional) Conectar a instância de banco de dados a uma função do Lambda

Você também pode conectar a instância de banco de dados do RDS para PostgreSQL a um recurso de computação sem servidor do Lambda. As funções do Lambda permitem que você execute código sem provisionar nem gerenciar a infraestrutura. Uma função do Lambda também permite que você responda automaticamente a solicitações de execução de código em qualquer escala, de dezenas de eventos por dia a centenas por segundo. Para ter mais informações, consulte Conectar automaticamente uma função do Lambda e uma instância de banco de dados.