DEV Community

Marcelo Magario
Marcelo Magario

Posted on

Como provisionei meu BD PostgreSQL no AWS RDS

Provisionei meu primeiro banco de dados PostgreSQL gerenciado na AWS usando o serviço RDS (Relational Database Service).

Antes de começar, pesquisei sobre os benefícios do AWS RDS e instantaneamente percebi que em vez de eu mesmo instalar, configurar e manter o PostgreSQL em um servidor (EC2), a AWS faria esse trabalho por mim. Além disso, ainda com benefícios de atualizações de versão, patches de segurança, backups automáticos, escalabilidade e monitoramento etc.

Como Criei o Banco de Dados

O processo no Console da AWS foi bem intuitivo. Mas como estou focando no aprendizado e evitar gastos desnecessários, utilizei a opção de "Free Tier" para garantir que não teria custos neste meu ambiente de desenvolvimento.

Credenciais: Defini um DB instance identifier (o nome do meu servidor, que chamei de portfolio-db-instance) e as credenciais de acesso (usuário e senha master). O RDS usou essas informações para criar o usuário principal do banco.

Conectividade: Este foi o ponto mais crítico da configuração!

Public Access: Para conseguir me conectar da minha máquina local, marquei a opção "Public access" como "Yes". Aprendi que em um ambiente de produção, isso é uma má prática de segurança, onde o ideal é manter o banco em uma sub-rede privada, ou seja, só acessado de dentro da AWS.

VPC Security Group: Este era o firewall virtual da minha instância. Criei um novo grupo (portfolio-db-sg) que, por padrão, bloqueava todo o tráfego de entrada.

Após a criação, o RDS me forneceu um Endpoint. Este passou a ser o host do meu banco de dados, um endereço único no formato nome-da-instancia.xxxxxxxxxxxx.regiao.rds.amazonaws.com.

Como Configurei o Acesso 🛡️

Por padrão, mesmo com o acesso público habilitado, descobri que o firewall (Security Group) ainda impedia minha conexão. Para resolver, precisei criar uma regra de liberação.

  1. Naveguei até a configuração do Security Group associado à minha instância RDS.
  2. Adicionei uma Inbound Rule (Regra de Entrada).
  3. Configurei a regra da seguinte forma: Type: PostgreSQL (que já preencheu a porta 5432). Source: My IP (a AWS detectou e preencheu meu IP público). Essa regra declarou para o firewall só permitir conexões na porta 5432 vindas somente do meu endereço de IP.

Agora que está rodando, vou fuçar mais o CloudWatch e RDS Performance Insights.

Image description

Top comments (0)