Database
 sql >> Base de Dados >  >> RDS >> Database

Como conectar um banco de dados com uma Amazon VPC


Neste tutorial, veremos como configurar uma instância do Amazon RDS dentro de uma sub-rede VPC privada e conectar-se a ela usando um túnel SSH.

Um túnel SSH reverso faz uma conexão criptografada de saída de dentro de sua VPC para os servidores do Chartio. Isso permite que você conecte o Chartio a um banco de dados em sua sub-rede VPC privada sem modificar sua tabela de rotas ou grupos de segurança.

Visão geral


O diagrama a seguir mostra como será nossa arquitetura final. Criaremos uma VPC com 2 sub-redes na região us-west-1; 1 sub-rede pública na zona de disponibilidade us-west-1a e 1 sub-rede privada na zona de disponibilidade us-west-1b. A VPC terá um gateway da Internet anexado, porém a tabela de rotas principal conterá apenas uma única rota local que permite a comunicação dentro da VPC. A sub-rede pública terá uma tabela de rotas personalizada que inclui a rota local, bem como uma rota direcionando todos os outros tráfegos pelo gateway da Internet. Uma instância do Postgres RDS será provisionada na sub-rede privada com um grupo de segurança anexado que permite apenas tráfego de entrada na porta 5432 da sub-rede pública. Uma instância do EC2 será provisionada na sub-rede pública com um grupo de segurança anexado que permite apenas o tráfego SSH de entrada do seu IP local e todo o tráfego de saída. Por fim, faremos o SSH na instância do EC2, instalaremos o cliente Postgres psql , crie uma tabela na instância do RDS e instale e configure um túnel SSH.


Criar uma VPC


Navegue até o VPC Dashboard no AWS Management Console e crie uma nova VPC.


Criar e anexar um gateway de Internet


Na guia Gateways da Internet do Painel da VPC, crie um novo gateway da Internet.



Anexe o gateway à VPC recém-criada.


Criar uma tabela de rotas personalizada


Na guia Route Tables do VPC Dashboard, crie uma nova tabela de rotas.



Adicione uma rota à tabela de rotas para o gateway da Internet.


Criar sub-redes públicas e privadas


Crie uma sub-rede na zona de disponibilidade us-west-1a.



Altere a tabela de rotas da sub-rede criada anteriormente da tabela de rotas principal para a tabela de rotas personalizada.



Crie uma sub-rede na zona de disponibilidade us-west-1b.


Criar grupos de segurança


Crie um grupo de segurança para a instância do EC2 a ser provisionada na sub-rede pública us-west-1a.



Autorize o tráfego SSH de entrada do seu endereço IP local. As regras de saída padrão devem estar bem.



Crie um grupo de segurança para a instância do Postgres RDS a ser provisionada na sub-rede privada us-west-1b.



Autorize o tráfego de entrada da sub-rede pública pela porta 5432.



Remova todas as regras de saída para o grupo de segurança RDS.


Provisionar uma instância do EC2


Provisione uma instância do EC2 na sub-rede pública us-west-1a. Certifique-se de que um IP público seja atribuído.



Atribua o grupo de segurança criado anteriormente.


Provisionar uma instância Postgres RDS


Provisione uma instância do Postgres RDS na sub-rede privada us-west-1b. Certifique-se de que um IP público NÃO seja atribuído.


Instale e configure um túnel SSH


SSH na instância do EC2 e execute os comandos a seguir.
# Substitute 54.153.81.83 with your instance's public IP.
ssh [email protected]

# Create a table so Chartio has something to reflect.
# Substitute chartio.cacziwncd30i.us-west-1.rds.amazonaws.com with your instance's endpoint.
sudo apt-get update
sudo apt-get install postgresql-client
psql -h chartio.cacziwncd30i.us-west-1.rds.amazonaws.com -p 5432 -d chartio -U chartio -c "CREATE TABLE foo(id int);"

Instale o autossh (ou gerenciador de túnel SSH de sua escolha) e configure uma conexão de túnel usando as instruções.

Verifique o editor de esquema do Chartio para garantir que o esquema da instância do RDS foi refletido. Se não tiver, tente clicar no botão “Atualizar esquema”.