I den här handledningen går vi igenom hur vi ställer in en Amazon RDS-instans i ett privat VPC-undernät och ansluter till det med en SSH-tunnel.
En omvänd SSH-tunnel gör en utgående krypterad anslutning från din VPC till Chartios servrar. Detta gör att du kan ansluta Chartio till en databas i ditt privata VPC-undernät utan att ändra dess rutttabell eller säkerhetsgrupper.
Översikt
Följande diagram visar hur vår slutliga arkitektur kommer att se ut. Vi kommer att skapa en VPC med 2 subnät i us-west-1-regionen; 1 offentligt undernät i tillgänglighetszonen us-west-1a och 1 privat undernät i tillgänglighetszonen us-west-1b. VPC:n kommer att ha en Internet-gateway ansluten, men huvudrutttabellen kommer endast att innehålla en enda lokal rutt som möjliggör kommunikation inom VPC:n. Det offentliga undernätet kommer att ha en anpassad rutttabell som inkluderar den lokala rutten såväl som en rutt som dirigerar all annan trafik över Internet-gatewayen. En Postgres RDS-instans kommer att tillhandahållas i det privata undernätet med en ansluten säkerhetsgrupp som endast tillåter inkommande trafik på port 5432 från det offentliga undernätet. En EC2-instans kommer att tillhandahållas i det offentliga undernätet med en bifogad säkerhetsgrupp som endast tillåter inkommande SSH-trafik från din lokala IP och all utgående trafik. Slutligen kommer vi att SSH in i EC2-instansen, installera Postgres-klienten psql
, skapa en tabell på RDS-instansen och installera och konfigurera en SSH-tunnel.
Skapa en VPC
Navigera till VPC Dashboard i AWS Management Console och skapa en ny VPC.
Skapa och bifoga en Internet-gateway
På fliken Internet Gateways i VPC Dashboard, skapa en ny Internet-gateway.
Fäst gatewayen till den nyskapade VPC:n.
Skapa en anpassad rutttabell
På fliken Rutttabeller i VPC Dashboard skapar du en ny rutttabell.
Lägg till en rutt till rutttabellen för Internet-gatewayen.
Skapa offentliga och privata undernät
Skapa ett undernät i tillgänglighetszonen us-west-1a.
Ändra rutttabellen för det tidigare skapade undernätet från huvudrutttabellen till den anpassade rutttabellen.
Skapa ett undernät i tillgänglighetszonen us-west-1b.
Skapa säkerhetsgrupper
Skapa en säkerhetsgrupp för EC2-instansen som ska tillhandahållas i det offentliga subnätet us-west-1a.
Auktorisera inkommande SSH-trafik från din lokala IP-adress. Standardreglerna för utgående bör vara bra.
Skapa en säkerhetsgrupp för Postgres RDS-instansen som ska tillhandahållas i det privata subnätet us-west-1b.
Auktorisera inkommande trafik från det offentliga undernätet över port 5432.
Ta bort alla utgående regler för RDS-säkerhetsgruppen.
Provisionera en EC2-instans
Tillhandahålla en EC2-instans i det offentliga subnätet us-west-1a. Se till att en offentlig IP tilldelas.
Tilldela den tidigare skapade säkerhetsgruppen.
Provisionera en Postgres RDS-instans
Tillhandahålla en Postgres RDS-instans i det privata subnätet us-west-1b. Se till att en offentlig IP INTE tilldelas.
Installera och konfigurera en SSH-tunnel
SSH till EC2-instansen och kör följande kommandon.
# 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);"
Installera autossh (eller valfri SSH-tunnelhanterare) och upprätta en tunnelanslutning med hjälp av instruktionerna.
Kontrollera Chartio-schemaredigeraren för att säkerställa att RDS-instansens schema har återspeglas. Om den inte har gjort det, försök att klicka på knappen "Uppdatera schema".