Criar um cluster de banco de dados do Aurora PostgreSQL e se conectar a ele
Este tutorial cria uma instância do EC2 e um cluster de banco de dados do Aurora PostgreSQL. O tutorial mostra como acessar o cluster de banco de dados pela instância do EC2 usando um cliente PostgreSQL padrão. Como prática recomendada, este tutorial cria um cluster de banco de dados privado em uma nuvem privada virtual (VPC). Na maioria dos casos, outros recursos na mesma VPC, como instâncias do EC2, podem acessar o cluster de banco de dados, mas recursos fora da VPC não podem acessá-lo.
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, você poderá incorrer em custos para os recursos da AWS utilizados. 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.
Esse tutorial permite criar recursos usando um dos seguintes métodos:
-
Use o AWS Management Console: Etapa 1: Criar uma instância do EC2 e Etapa 2: Criar um cluster de banco de dados do Aurora PostgreSQL
-
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 cluster do Aurora PostgreSQL usando o AWS CloudFormation
O primeiro método usa Criação fácil para criar um cluster de banco de dados privado do Aurora PostgreSQL com o AWS Management Console. Aqui, especifique apenas o tipo do mecanismo de banco de dados, o tamanho da instância de banco de dados e o identificador do cluster 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 um cluster de banco de dados. Essas opções incluem configurações de disponibilidade, segurança, backups e manutenção. Para criar um cluster de banco de dados público, você deve usar a Criação padrão. Para ter mais informações, consulte Criar um cluster de bancos de dados do Amazon Aurora.
Tópicos
- Pré-requisitos
- Etapa 1: Criar uma instância do EC2
- Etapa 2: Criar um cluster de banco de dados do Aurora PostgreSQL
- (Opcional) Criar VPC, instância do EC2 e cluster do Aurora PostgreSQL usando o AWS CloudFormation
- Etapa 3: Conectar-se a um cluster de bancos de dados do Aurora PostgreSQL
- Etapa 4: Excluir a instância do EC2 e o cluster de banco de dados
- (Opcional) Excluir a instância do EC2 e o cluster de banco de dados criado com o CloudFormation
- (Opcional) Conectar o cluster de banco de dados a uma função do Lambda
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
Faça login no AWS Management Console e abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. -
No canto superior direito do AWS Management Console, selecione a Região da AWS em que você deseja criar a instância do EC2.
-
Escolha Painel do EC2 e Executar instância, conforme mostrado na imagem a seguir.
A página Iniciar uma instância é aberta.
-
Escolha as configurações a seguir na página Iniciar uma instância.
-
Em Name and tags (Nome e etiquetas), em Name (Nome), insira
ec2-database-connect
. -
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.
-
Em Instance type (Tipo de instância), escolha t2.micro.
-
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.
-
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.
-
Mantenha os valores padrão para as seções restantes.
-
Revise um resumo da configuração da instância do EC2 no painel Resumo e, quando estiver com tudo pronto, escolha Executar instância.
-
-
Na página Status de inicialização, anote o identificador de sua nova instância do EC2, por exemplo:
i-1234567890abcdef0
. -
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.
-
Na guia Detalhes, observe os seguintes valores, necessários ao se conectar utilizando SSH:
-
No Resumo da instância, observe o valor do DNS IPv4 público.
-
Em Detalhes da instância, observe o valor do nome do par de chaves.
-
-
Espere até o Estado da instância para a instância do EC2 ficar como Executando antes de continuar.
Etapa 2: Criar um cluster de banco de dados do Aurora PostgreSQL
Neste exemplo, use a opção Criação fácil para criar um cluster de banco de dados do Aurora PostgreSQL com uma classe de instância de banco de dados db.t4g.large.
Como criar um cluster de banco de dados do Aurora PostgreSQL com a criação fácil
-
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. No canto superior direito do console do Amazon RDS, selecione a Região da AWS na qual você deseja criar o cluster de banco de dados.
-
No painel de navegação, escolha Bancos de dados.
-
Selecione a opção Criar banco de dados e verifique se a opção Criação fácil está selecionada.
-
Em Configuração, selecione Aurora (compatível com PostgreSQL) para Tipo de mecanismo.
-
Em DB instance size (Tamanho da instância de banco de dados), escolha Dev/Test (Desenvolvimento/teste).
-
Em Identificador do cluster de banco de dados, insira
database-test1
.A página Create database (Criar banco de dados) deve ser semelhante à imagem a seguir.
-
Em Nome de usuário principal, insira um nome para o usuário ou mantenha o nome padrão (
postgres
). -
Para usar uma senha primária gerada automaticamente para o cluster 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.
-
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.
-
Abra Visualizar as configurações padrão da criação fácil.
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 o cluster 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 o cluster de banco de dados, ou modificar o cluster de banco de dados depois de criá-lo para alterar a configuração.
-
-
Selecione Criar banco de dados.
Para visualizar o nome do usuário principal e a senha do cluster de banco de dados, escolha Visualizar detalhes da credencial.
Use o nome de usuário e a senha que aparecem para se conectar ao cluster de banco de dados como o usuário principal.
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 primário depois que o cluster de banco de dados estiver disponível, será possível modificar o cluster de banco de dados para fazer isso. Para ter mais informações sobre como modificar um cluster de banco de dados, consulte Modificar um cluster de bancos de dados Amazon Aurora.
-
Na lista Bancos de dados, selecione o nome do novo cluster de banco de dados do Aurora PostgreSQL para mostrar seus detalhes.
A instância do gravador tem o status Criando até o cluster de banco de dados estar pronto para uso.
Quando o status da instância do gravador muda para Disponível, você pode se conectar ao cluster 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 o novo cluster de banco de dados esteja disponível.
(Opcional) Criar VPC, instância do EC2 e cluster do Aurora PostgreSQL usando o AWS CloudFormation
Em vez de usar o console para criar a VPC, a instância do EC2 e o cluster de banco de dados do Aurora 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ê com o cluster do Aurora.
Para baixar o arquivo de modelo, abra o link Aurora 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:
Faça login no AWS Management Console e abra o console AWS CloudFormation em https://console.aws.amazon.com/cloudformation
. Selecione Create Stack (Criar pilha).
Na seção Especificar modelo, selecione Fazer upload de um arquivo de modelo do computador e escolha Próximo.
Na página Especificar detalhes da pilha, defina os seguintes parâmetros:
Defina o Nome da pilha como AurPostgreSQLTestStack.
Em Parâmetros, defina Zonas de disponibilidade selecionando duas zonas de disponibilidade.
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.
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.Em Configuração geral do banco de dados, defina a Classe da instância de banco de dados como db.t4g.large.
Defina o Nome do banco de dados como
database-test1
.Em Nome de usuário principal do banco de dados, insira um nome para o usuário principal.
Defina a Gerenciar senha de usuário principal do banco de dados com o Secrets Manager como
false
para esse tutorial.Em Senha do banco de dados, defina uma senha de sua escolha. Lembre-se dessa senha para as etapas seguintes do tutorial.
Defina Implantação multi-AZ como
false
.Deixe todas as outras configurações com os valores padrão. Clique em Próximo para continuar.
Na página Configurar opções de pilha, mantenha todas as opções padrão. Clique em Próximo para continuar.
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 APGNS 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 um cluster de bancos de dados do Aurora PostgreSQL
Você pode usar qualquer aplicação cliente padrão PostgreSQL para se conectar ao cluster de banco de dados. Neste exemplo, você se conecta a um cluster de banco de dados do Aurora PostgreSQL usando o cliente da linha de comando psql.
Como se conectar ao cluster de banco de dados do Aurora PostgreSQL
-
Encontre o endpoint (nome de DNS) e o número da porta da instância do gravador para seu cluster de banco de dados.
-
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. No canto superior direito do console do Amazon RDS, escolha a Região da AWS do cluster de banco de dados.
-
No painel de navegação, escolha Bancos de dados.
-
Escolha o nome do cluster de banco de dados do Aurora PostgreSQL para exibir os detalhes.
-
Na guia Conectividade e segurança, copie o endpoint da instância do gravador. Além disso, anote o número da porta. Você precisará do endpoint e do número da porta para conectar-se ao cluster de banco de dados.
-
-
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 sejaec2-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
Obtenha as últimas correções de bugs e atualizações de segurança atualizando o software na instância do EC2. Para fazer isso, use o comando a seguir.
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
-
Instale o cliente da linha de comando psql do PostgreSQL no Amazon Linux 2023, usando o seguinte comando:
sudo dnf install postgresql15
-
Conecte-se ao cluster de banco de dados do Aurora PostgreSQL. Por exemplo, insira o comando a seguir. Essa ação permite que você se conecte ao cluster de banco de dados do Aurora PostgreSQL usando o cliente psql.
Substitua o endpoint da instância do gravador por
, substitua o nome do banco de dadosendpoint
--dbname
que você deseja acessar por
e substitua o nome do usuário principal usado porpostgres
. Forneça a senha mestra usada quando for solicitada uma senha.postgres
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 a conexão com um cluster de bancos de dados do Aurora PostgreSQL, consulte Como conectar-se a um cluster de bancos de dados Amazon Aurora PostgreSQL. Se você não conseguir se conectar ao seu cluster de banco de dados, consulte Não é possível conectar-se à instância de banco de dados do Amazon RDS.
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 Como proteger dados do Aurora PostgreSQL com SSL/TLS.
-
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 o cluster de banco de dados
Depois de se conectar e explorar a instância do EC2 e o cluster de banco de dados criados, exclua-os para não receber mais cobranças por eles.
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
Faça login no AWS Management Console e abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. -
No painel de navegação, escolha Instances (Instâncias).
-
Selecione a instância do EC2 e escolha Estado da instância, Encerrar instância.
-
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 um cluster de banco de dados
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
Escolha Databases (Bancos de dados) e depois a instância de banco de dados associada ao cluster de banco de dados.
-
Em Actions, selecione Delete.
-
Escolha Delete (Excluir).
Depois que todas as instâncias de banco de dados associadas a um cluster de banco de dados forem excluídas, o cluster de banco de dados será excluído automaticamente.
(Opcional) Excluir a instância do EC2 e o cluster de banco de dados criado 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 cluster de banco de dados para não receber mais cobranças por eles.
Para excluir os recursos do CloudFormation
Abra o console do AWS CloudFormation.
-
Na página Pilhas no console do CloudFormation, selecione a pilha raiz (a pilha sem o nome VPCStack, BastionStack ou APGNS).
-
Escolha Excluir.
-
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 o cluster de banco de dados a uma função do Lambda
Você também pode conectar o cluster de banco de dados do Aurora 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 um cluster de banco de dados do Aurora.