In deze zelfstudie lopen we door het opzetten van een Amazon RDS-instantie in een privé VPC-subnet en er verbinding mee te maken via een SSH-tunnel.
Een reverse SSH-tunnel maakt een uitgaande versleutelde verbinding vanuit uw VPC naar de servers van Chartio. Hierdoor kunt u Chartio verbinden met een database in uw privé VPC-subnet zonder de routetabel of beveiligingsgroepen te wijzigen.
Overzicht
Het volgende diagram laat zien hoe onze uiteindelijke architectuur eruit zal zien. We zullen een VPC maken met 2 subnetten in de regio us-west-1; 1 openbaar subnet in de us-west-1a-beschikbaarheidszone en 1 privé-subnet in de us-west-1b-beschikbaarheidszone. De VPC heeft een aangesloten internetgateway, maar de hoofdroutetabel bevat slechts een enkele lokale route die communicatie binnen de VPC mogelijk maakt. Het openbare subnet heeft een aangepaste routetabel die de lokale route bevat, evenals een route die al het andere verkeer via de internetgateway leidt. Een Postgres RDS-instantie wordt ingericht in het privésubnet met een gekoppelde beveiligingsgroep die alleen inkomend verkeer op poort 5432 vanaf het openbare subnet toestaat. Een EC2-instantie wordt in het openbare subnet ingericht met een gekoppelde beveiligingsgroep die alleen inkomend SSH-verkeer van uw lokale IP-adres en al het uitgaande verkeer toestaat. Ten slotte zullen we SSH naar de EC2-instantie sturen, de Postgres-client psql
installeren , maak een tabel op de RDS-instantie en installeer en stel een SSH-tunnel in.
Maak een VPC
Navigeer naar het VPC-dashboard in de AWS-beheerconsole en maak een nieuwe VPC aan.
Een internetgateway maken en koppelen
Maak op het tabblad Internetgateways van het VPC-dashboard een nieuwe internetgateway.
Bevestig de gateway aan de nieuw gemaakte VPC.
Maak een aangepaste routetabel
Maak op het tabblad Routetabellen van het VPC-dashboard een nieuwe routetabel.
Voeg een route toe aan de routetabel voor de internetgateway.
Creëer openbare en privé-subnetten
Maak een subnet in de us-west-1a-beschikbaarheidszone.
Wijzig de routetabel voor het eerder gemaakte subnet van de hoofdroutetabel naar de aangepaste routetabel.
Maak een subnet in de us-west-1b-beschikbaarheidszone.
Beveiligingsgroepen maken
Maak een beveiligingsgroep voor de EC2-instantie die moet worden ingericht in het openbare us-west-1a-subnet.
Autoriseer inkomend SSH-verkeer vanaf uw lokale IP-adres. De standaard uitgaande regels zouden in orde moeten zijn.
Maak een beveiligingsgroep voor de Postgres RDS-instantie die moet worden ingericht in het privé-us-west-1b-subnet.
Autoriseer inkomend verkeer van het openbare subnet via poort 5432.
Verwijder alle uitgaande regels voor de RDS-beveiligingsgroep.
Een EC2-instance inrichten
Zorg voor een EC2-instantie in het openbare us-west-1a-subnet. Zorg ervoor dat er een openbaar IP-adres is toegewezen.
Wijs de eerder gemaakte beveiligingsgroep toe.
Een Postgres RDS-instantie inrichten
Richt een Postgres RDS-instantie in in het private us-west-1b-subnet. Zorg ervoor dat er GEEN openbaar IP is toegewezen.
Een SSH-tunnel installeren en instellen
SSH naar de EC2-instantie en voer de volgende opdrachten uit.
# 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);"
Installeer autossh (of SSH-tunnelmanager naar keuze) en zet een tunnelverbinding op volgens de instructies.
Controleer de Chartio-schema-editor om te controleren of het schema van de RDS-instantie is weergegeven. Als dit niet het geval is, probeer dan op de knop "Schema vernieuwen" te klikken.