Database
 sql >> Datenbank >  >> RDS >> Database

So verbinden Sie eine Datenbank mit einer Amazon VPC

In diesem Tutorial gehen wir durch die Einrichtung einer Amazon RDS-Instance in einem privaten VPC-Subnetz und die Verbindung mit ihr über einen SSH-Tunnel.

Ein umgekehrter SSH-Tunnel stellt eine ausgehende verschlüsselte Verbindung von innerhalb Ihrer VPC zu den Servern von Chartio her. Dadurch können Sie Chartio mit einer Datenbank in Ihrem privaten VPC-Subnetz verbinden, ohne die Routing-Tabelle oder Sicherheitsgruppen zu ändern.

Übersicht

Das folgende Diagramm zeigt, wie unsere endgültige Architektur aussehen wird. Wir erstellen eine VPC mit 2 Subnetzen in der Region us-west-1; 1 öffentliches Subnetz in der Verfügbarkeitszone „us-west-1a“ und 1 privates Subnetz in der Verfügbarkeitszone „us-west-1b“. An die VPC ist ein Internet-Gateway angeschlossen, die Hauptroutentabelle enthält jedoch nur eine einzige lokale Route, die die Kommunikation innerhalb der VPC ermöglicht. Das öffentliche Subnetz verfügt über eine benutzerdefinierte Routing-Tabelle, die die lokale Route sowie eine Route enthält, die den gesamten anderen Datenverkehr über das Internet-Gateway leitet. Eine Postgres-RDS-Instance wird im privaten Subnetz mit einer angehängten Sicherheitsgruppe bereitgestellt, die nur eingehenden Datenverkehr auf Port 5432 aus dem öffentlichen Subnetz zulässt. Eine EC2-Instance wird im öffentlichen Subnetz mit einer angehängten Sicherheitsgruppe bereitgestellt, die nur eingehenden SSH-Datenverkehr von Ihrer lokalen IP und den gesamten ausgehenden Datenverkehr zulässt. Schließlich werden wir uns per SSH in die EC2-Instanz einloggen und den Postgres-Client psql installieren , erstellen Sie eine Tabelle auf der RDS-Instanz und installieren und richten Sie einen SSH-Tunnel ein.

Erstellen Sie eine VPC

Navigieren Sie zum VPC-Dashboard in der AWS Management Console und erstellen Sie eine neue VPC.

Erstellen und verbinden Sie ein Internet-Gateway

Erstellen Sie auf der Registerkarte Internet-Gateways des VPC-Dashboards ein neues Internet-Gateway.

Hängen Sie das Gateway an die neu erstellte VPC an.

Erstellen Sie eine benutzerdefinierte Routing-Tabelle

Erstellen Sie auf der Registerkarte Routing-Tabellen des VPC-Dashboards eine neue Routing-Tabelle.

Fügen Sie der Routing-Tabelle für das Internet-Gateway eine Route hinzu.

Öffentliche und private Subnetze erstellen

Erstellen Sie ein Subnetz in der Verfügbarkeitszone us-west-1a.

Ändern Sie die Routing-Tabelle für das zuvor erstellte Subnetz von der Haupt-Routing-Tabelle in die benutzerdefinierte Routing-Tabelle.

Erstellen Sie ein Subnetz in der Verfügbarkeitszone us-west-1b.

Sicherheitsgruppen erstellen

Erstellen Sie eine Sicherheitsgruppe für die EC2-Instanz, die im öffentlichen Subnetz us-west-1a bereitgestellt werden soll.

Autorisieren Sie eingehenden SSH-Datenverkehr von Ihrer lokalen IP-Adresse. Die standardmäßigen ausgehenden Regeln sollten in Ordnung sein.

Erstellen Sie eine Sicherheitsgruppe für die Postgres-RDS-Instanz, die im privaten Subnetz us-west-1b bereitgestellt werden soll.

Autorisieren Sie eingehenden Datenverkehr aus dem öffentlichen Subnetz über Port 5432.

Entfernen Sie alle ausgehenden Regeln für die RDS-Sicherheitsgruppe.

Stellen Sie eine EC2-Instanz bereit

Stellen Sie eine EC2-Instance im öffentlichen Subnetz us-west-1a bereit. Stellen Sie sicher, dass eine öffentliche IP zugewiesen ist.

Weisen Sie die zuvor erstellte Sicherheitsgruppe zu.

Stellen Sie eine Postgres-RDS-Instanz bereit

Stellen Sie eine Postgres-RDS-Instance im privaten Subnetz „us-west-1b“ bereit. Stellen Sie sicher, dass KEINE öffentliche IP zugewiesen wird.

Installieren und richten Sie einen SSH-Tunnel ein

Stellen Sie eine SSH-Verbindung zur EC2-Instance her und führen Sie die folgenden Befehle aus.

# 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);"

Installieren Sie autossh (oder einen SSH-Tunnelmanager Ihrer Wahl) und richten Sie eine Tunnelverbindung gemäß den Anweisungen ein.

Überprüfen Sie den Schema-Editor von Chartio, um sicherzustellen, dass das Schema der RDS-Instanz wiedergegeben wurde. Wenn dies nicht der Fall ist, klicken Sie auf die Schaltfläche "Schema aktualisieren".