I denne øvelse vil vi gennemgå opsætningen af en Amazon RDS-instans i et privat VPC-undernet og oprette forbindelse til det ved hjælp af en SSH-tunnel.
En omvendt SSH-tunnel laver en udgående krypteret forbindelse fra din VPC til Chartios servere. Dette giver dig mulighed for at forbinde Chartio til en database i dit private VPC-undernet uden at ændre rutetabel eller sikkerhedsgrupper.
Oversigt
Følgende diagram viser, hvordan vores endelige arkitektur vil se ud. Vi vil oprette en VPC med 2 undernet i us-west-1 regionen; 1 offentligt undernet i us-west-1a tilgængelighedszonen og 1 privat undernet i us-west-1b tilgængelighedszonen. VPC'en vil have en internetgateway tilknyttet, men hovedrutetabellen vil kun indeholde en enkelt lokal rute, der muliggør kommunikation inden for VPC'en. Det offentlige undernet vil have en brugerdefineret rutetabel, der inkluderer den lokale rute samt en rute, der dirigerer al anden trafik over internetgatewayen. En Postgres RDS-instans vil blive klargjort i det private undernet med en tilknyttet sikkerhedsgruppe, der kun tillader indgående trafik på port 5432 fra det offentlige undernet. En EC2-instans vil blive klargjort i det offentlige undernet med en tilknyttet sikkerhedsgruppe, der kun tillader indgående SSH-trafik fra din lokale IP og al udgående trafik. Til sidst vil vi SSH ind i EC2-instansen, installere Postgres-klienten psql
, opret en tabel på RDS-instansen, og installer og opsæt en SSH-tunnel.
Opret en VPC
Naviger til VPC Dashboard i AWS Management Console og opret en ny VPC.
Opret og vedhæft en internetgateway
På fanen Internet Gateways i VPC Dashboard skal du oprette en ny internetgateway.
Tilslut gatewayen til den nyoprettede VPC.
Opret en brugerdefineret rutetabel
På fanen Rutetabeller i VPC Dashboard skal du oprette en ny rutetabel.
Tilføj en rute til rutetabellen for internetgatewayen.
Opret offentlige og private undernet
Opret et undernet i us-west-1a tilgængelighedszonen.
Skift rutetabellen for det tidligere oprettede undernet fra hovedrutetabellen til den brugerdefinerede rutetabel.
Opret et undernet i us-west-1b tilgængelighedszonen.
Opret sikkerhedsgrupper
Opret en sikkerhedsgruppe til EC2-instansen, der skal klargøres i det offentlige us-west-1a-undernet.
Godkend indgående SSH-trafik fra din lokale IP-adresse. Standardreglerne for udgående bør være i orden.
Opret en sikkerhedsgruppe til Postgres RDS-instansen, der skal klargøres i det private us-west-1b-undernet.
Tillad indgående trafik fra det offentlige undernet over port 5432.
Fjern alle udgående regler for RDS-sikkerhedsgruppen.
Lever en EC2-instans
Lever en EC2-instans i det offentlige us-west-1a-undernet. Sørg for, at en offentlig IP er tildelt.
Tildel den tidligere oprettede sikkerhedsgruppe.
Lever en Postgres RDS-instans
Lever en Postgres RDS-instans i det private us-west-1b-undernet. Sørg for, at der IKKE er tildelt en offentlig IP.
Installer og opsæt en SSH-tunnel
SSH ind i EC2-instansen og kør følgende kommandoer.
# 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);"
Installer autossh (eller SSH tunnel manager efter eget valg), og opsæt en tunnelforbindelse ved hjælp af instruktionerne.
Tjek Chartio-skemaeditoren for at sikre, at RDS-instansens skema er blevet afspejlet. Hvis det ikke er tilfældet, så prøv at klikke på knappen "Opdater skema".