Einrichten gemeinsamer Datenbankverbindungen
Amazon RDS Proxy ist eine vollständig verwaltete, hochverfügbare Datenbank-Proxy-Funktion für Amazon Relational Database Service (Amazon RDS), die dafür sorgt, dass Anwendungen skalierbarer, widerstandsfähiger gegen Datenbankausfälle und sicherer sind.
Viele Anwendungen, einschließlich solcher, die auf modernen serverlosen Architekturen mit AWS Lambda aufgebaut sind, können eine große Anzahl offener Verbindungen zum Datenbankserver haben und Datenbankverbindungen mit hoher Geschwindigkeit öffnen und schließen, was den Datenbankspeicher und die Rechenressourcen erschöpft. Mit Amazon RDS Proxy können Anwendungen etablierte Datenbankverbindungen bündeln und gemeinsam nutzen, was die Effizienz der Datenbank und die Skalierbarkeit der Anwendung verbessert. Mit RDS Proxy werden die Failover-Zeiten für Aurora- und RDS-Datenbanken um bis zu 66 % reduziert, und durch die Integration mit AWS Secrets Manager und AWS Identity and Access Management (IAM) können Datenbank-Anmeldeinformationen, Authentifizierung und Zugriff verwaltet werden.
Amazon RDS Proxy kann für die meisten Anwendungen ohne Codeänderung aktiviert werden und Sie müssen keine zusätzliche Infrastruktur bereitstellen oder verwalten. Die Preisgestaltung ist einfach und vorhersehbar: Sie zahlen pro vCPU der Datenbank-Instance, für die der Proxy aktiviert ist. Amazon RDS Proxy unterstützt Amazon RDS for MySQL und Amazon Aurora mit MySQL-Kompatibilität.
In diesem Tutorial lernen Sie, wie Sie einen Amazon RDS-Proxy erstellen und ihn mit einer bestehenden Amazon RDS-MySQL-Datenbank verbinden können. Sie verwenden den MySQL-Client auf einer Amazon EC2-Instance, um über den RDS-Proxy eine Verbindung zur RDS-MySQL-Datenbank herzustellen. Diese Konzepte lassen sich auch auf die serverlose Architektur mit Amazon RDS anwenden.
Voraussetzungen
Amazon RDS Proxy erfordert, dass Sie über eine Reihe von Netzwerkressourcen verfügen, wie z. B.:
- eine Amazon Virtual Private Cloud (Amazon VPC),
- zwei oder mehr Subnetze in unterschiedlichen Availability Zones,
- eine Amazon RDS-Datenbank und Amazon EC2-Instances in derselben VPC sowie
- ein Internet-Gateway.
Wenn Sie erfolgreich eine Verbindung zu bestehenden RDS-MySQL-Datenbank-Instances hergestellt haben, haben Sie bereits die erforderlichen Netzwerkressourcen eingerichtet. Dieses Tutorial setzt voraus, dass Ihr Konto mit einer EC2-Instance und einer RDS MySQL-Instance in derselben VPC eingerichtet ist. Wenn Sie diese Instances nicht eingerichtet haben, können Sie die RDS- und EC2-Anweisungen befolgen, um die Instances in der Standard-VPC bereitzustellen.
Über dieses Tutorial | |
---|---|
Zeit | 10 Minuten |
Kosten | Weniger als 1 USD |
Anwendungsfall | Datenbanken |
Produkte | Amazon RDS, AWS Secrets Manager |
Zielgruppe | Datenbankadministratoren, Entwickler |
Level | Fortgeschritten |
Letzte Aktualisierung | 16. März 2020 |
Schritt 1: Überprüfen der Sicherheitsgruppen und der Datenbankkonnektivität
In diesem Schritt überprüfen Sie die ein- und ausgehenden Regeln Ihrer Sicherheitsgruppen und verifizieren dann die Konnektivität von einer aktuellen EC2-Instance zu einer vorhandenen RDS-Datenbank-Instance.
1.1 – Öffnen Sie das Amazon VPC Dashboard und melden Sie sich mit Ihren AWS-Kontodaten an. Wenn Sie kein AWS-Konto haben, erstellen Sie ein neues AWS-Konto, um anzufangen.
Sie haben bereits ein Konto? Melden Sie sich bei Ihrem AWS-Konto an.
1.3 – Wählen Sie im linken Navigationsbereich Sicherheitsgruppen aus.
Für dieses Tutorial verwenden wir zwei VPC-Sicherheitsgruppen:
- EC2-sg: Diese Sicherheitsgruppe ist mit der EC2-Instance verbunden und erlaubt nur SSH-Verbindungen, die bei der EC2-Instance eingehen, sowie alle ausgehenden Verbindungen.
- RDS-sg: Diese Sicherheitsgruppe ist mit der RDS-Instance verbunden und erlaubt nur TCP-Verbindungen auf Port 3306 von der EC2-Instance (dargestellt als EC2-sg) und jegliche ausgehenden Verbindungen.
1.6 – Navigieren Sie zur RDS-Konsole, wählen Sie Datenbanken aus und dann Ihre vorhandene RDS-MySQL-DB-Instance. Notieren Sie sich auf der Registerkarte Konnektivität & Sicherheit die Instance Endpunkt.
1.7 – Navigieren Sie zur EC2-Konsole, wählen Sie Ausgeführte Instances aus und wählen Sie dann die EC2-Instance aus, von der Sie die Verbindung zur RDS DB-Instance testen möchten. Wählen Sie Verbinden aus.
1.9 – Testen Sie in der EC2-Instance CLI die Konnektivität zur RDS DB-Instance mit dem folgenden Befehl:
mysql -h <RDS DB endpoint> -P 3306 -u <username> -p
Wenn Sie dazu aufgefordert werden, geben Sie Ihr Passwort ein und drücken Sie die Eingabetaste.
Die CLI gibt eine Meldung zurück, die anzeigt, dass Sie erfolgreich eine Verbindung mit der RDS DB-Instance hergestellt haben. Wenn Sie keine Verbindung zwischen der EC2-Instance und der RDS-Instance herstellen können, überprüfen Sie, ob sich beide Instances in derselben VPC befinden und ob die Sicherheitsgruppen korrekt eingerichtet sind.
Schritt 2: Speichern Sie die Datenbankanmeldeinformationen in AWS Secrets Manager
In diesem Schritt speichern Sie Ihre Datenbank-Anmeldeinformationen im AWS Secrets Manager. Jedes Datenbankbenutzerkonto, auf das der Proxy zugreift, benötigt ein entsprechendes Geheimnis im AWS Secrets Manager. Amazon RDS Proxy nutzt diese Geheimnisse, um einen Verbindungs-Pool zu Ihrer Datenbank zu unterhalten.
2.1 – Navigieren Sie zum Abschnitt Secrets Manager Ihrer AWS-Managementkonsole und wählen Sie Neues Geheimnis speichern aus.
2.2 – Wählen Sie im Feld Geheimnistyp wählen Anmeldedaten für die RDS-Datenbank aus. Geben Sie dann den Benutzernamen und das Passwort ein, das Sie bei der Erstellung Ihrer Datenbank verwendet haben.
2.3 – Wählen Sie den DefaultEncryptionKey aus und dann die entsprechende RDS-Datenbank, auf die das Geheimnis zugreifen soll. Wählen Sie Weiter aus.
2.4 – Im Abschnitt Geheimnis-Name und -Beschreibung geben Sie Ihrem Geheimnis einen Namen und eine Beschreibung, damit Sie es später leicht finden können. Wählen Sie dann Weiter aus.
2.5 – Der AWS Secrets Manager ermöglicht es Ihnen, eine automatische Rotation der Geheimnisse für Ihre Geheimnisse zu konfigurieren. Dies ist eine intelligente, einfache Möglichkeit, die Sicherheit Ihrer Anwendung zu erhöhen. Weitere Informationen finden Sie unter Rotieren Ihrer AWS Secrets Manager-Geheimnisse.
Das Einrichten der Rotation der Geheimnisse liegt außerhalb des Rahmens dieses Tutorials. Wählen Sie daher die Option Automatische Rotation deaktivieren und dann Weiter aus.
Schritt 3: Erstellen einer IAM-Rolle und -Richtlinie
In diesem Schritt erstellen Sie die AWS Identity and Access Management (IAM)-Rolle und -Richtlinie, die dem RDS Proxy den Zugriff auf die von Ihnen im AWS Secrets Manager erstellten Geheimnisse ermöglicht.
3.1 – Navigieren Sie zum IAM-Dashboard in der AWS-Managementkonsole. Wählen Sie im Navigationsbereich des IAM-Dashboards Rollen und dann Rolle erstellen aus.
3.5 – Fügen Sie die folgende neue Richtlinienanweisung hinzu und ersetzen Sie das unten aufgeführte Beispiel durch Ihren geheimen ARN-Wert. Wählen Sie dann Richtlinie überprüfen aus.
(Diese Richtlinienanweisung wird in Einrichten von AWS Identity and Access Management (IAM)-Richtlinien im Amazon RDS-Benutzerhandbuch beschrieben).
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"secretsmanager:GetRandomPassword",
"secretsmanager:CreateSecret",
"secretsmanager:ListSecrets"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "secretsmanager:*",
"Resource": [
"your_secret_ARN"
]
}
]
}
3.9 – Überspringen Sie den Tagging-Abschnitt und wählen Sie Weiter: Überprüfen aus.
Schritt 4: Erstellen eines RDS Proxys
In diesem Schritt erstellen Sie einen RDS-Proxy und konfigurieren den Proxy für die Sicherheitsgruppe, die Sie in Schritt 1 verifiziert haben, das Geheimnis, das Sie in Schritt 2 erstellt haben, und die Rolle, die Sie in Schritt 3 erstellt haben.
4.1 – Navigieren Sie zur RDS-Konsole. Wählen Sie im RDS-Navigationsfenster Proxys und dann Proxy erstellen aus.
4.2 – Gehen Sie im Abschnitt Proxy-Konfiguration wie folgt vor:
- Geben Sie dem Proxy bei Proxy-Identifikator einen leicht identifizierbaren Namen.
- Deaktivieren Sie das Kontrollkästchen Transport-Layer-Sicherheit erforderlich.
- Belassen Sie das Timeout für inaktive Client-Verbindungen bei der Standardeinstellung von 30 Minuten.
4.3 – Wählen Sie im Abschnitt Zielgruppenkonfiguration für Datenbank die RDS MySQL DB-Instance aus, die mit diesem RDS-Proxy verknüpft werden soll. (Diese RDS DB-Instance ist dieselbe Instance, mit der Sie in Schritt 1 die Konnektivität überprüft haben). Behalten Sie für Maximal Verbindungen des Verbindungs-Pools den Standardwert 100 bei.
4.4 – Gehen Sie im Abschnitt Konnektivität wie folgt vor:
- Wählen Sie bei Secrets Manager-Geheimnis das Geheimnis aus, das Sie in Schritt 2 erstellt haben.
- Wählen Sie bei IAM-Rolle die Rolle aus, die Sie in Schritt 3 angelegt haben.
- Behalten Sie bei IAM-Authentifizierung die Standardeinstellung Deaktiviert bei. (Dieses Tutorial verwendet DB-Anmeldeinformationen zur Verbindung mit dem RDS-Proxy, sodass keine IAM-Authentifizierung verwendet wird).
- Wählen Sie bei Subnetze mindestens zwei Subnetze in verschiedenen Availability Zones aus.
- Klappen Sie Zusätzliche Konnektivitätskonfiguration auf und wählen Sie für die VPC-Sicherheitsgruppe die vorhandene RDS-sg-Sicherheitsgruppe aus.
4.5 – Behalten Sie im Abschnitt Erweiterte Konfiguration die Standardauswahl für Erweiterte Protokollierung bei. Aktivieren Sie das Kontrollkästchen "Servicevertrag" und wählen Sie Proxy erstellen aus.

4.6 – Warten Sie, bis sich der Proxy-Status von "Wird erstellt" auf "Verfügbar" ändert, und wählen Sie dann den Proxy aus.

4.7 – Notieren Sie sich im Abschnitt Proxy-Konfigurationen den Proxy-Endpunkt und bestätigen Sie, dass alle anderen Parameter korrekt sind.

Schritt 5: Stellen Sie eine Verbindung mit RDS DB über RDS Proxy her.
In diesem Schritt verbinden Sie Ihre EC2-Instance mit der RDS DB-Instance. Anstatt sich jedoch direkt zu verbinden, verbindet sich die EC2-Instance über Ihren RDS-Proxy mit der RDS-DB-Instance.
5.1 – Navigieren Sie zur EC2-Konsole. Wählen Sie im EC2-Navigationsbereich Ausgeführte Instances aus und wählen Sie dann die EC2-Instance aus, deren Konnektivität Sie in Schritt 1 getestet haben. Wählen Sie Verbinden aus.
5.3 – Verwenden Sie in der EC2-Instance-CLI den folgenden Befehl, um über den RDS-Proxy-Endpunkt eine Verbindung zur RDS-Instance herzustellen:
mysql -h <proxy endpoint> -P 3306 -u <username> -p
Wenn Sie dazu aufgefordert werden, geben Sie Ihr Passwort ein und drücken Sie die Eingabetaste.
Die CLI gibt eine Meldung zurück, die anzeigt, dass Sie erfolgreich eine Verbindung mit der RDS DB-Instance über den RDS Proxy-Endpunkt hergestellt haben.
Schritt 6: Überwachen Ihrer RDS Proxy-Verbindung
In diesem Schritt verwenden Sie Amazon CloudWatch zur Überwachung von Proxy-Metriken, wie z. B. Client- und Datenbankverbindungen.
6.1 – Navigieren Sie zur CloudWatch-Konsole. Wählen Sie im Navigationsbereich von CloudWatch Kennzahlen aus und dann RDS, Pro-Proxy-Kennzahlen.
6.3 – Wählen Sie in der Kennzahlenliste ClientConnections und DatabaseConnections aus. Legen Sie als Anzeigeoption Nummer fest.
Die ClientConnections-Kennzahl zeigt die aktuelle Anzahl der Client-Verbindungen zum RDS-Proxy an, die jede Minute gemeldet werden. Die DatabaseConnections-Kennzahl zeigt die aktuelle Anzahl der Datenbankverbindungen an, die jede Minute vom RDS-Proxy gemeldet werden. Einzelheiten zu allen Kennzahlen finden Sie unter Überwachen von RDS-Proxy.
In der angezeigten Grafik sehen Sie, dass es eine Client-Verbindung (EC2 zu RDS-Proxy) und eine Datenbankverbindung (RDS-Proxy zu RDS-DB-Instance) gibt. Diese Daten bestätigen die Verbindung, die Sie in Schritt 5 hergestellt haben.
Schritt 7: Bereinigen
In den folgenden Schritten bereinigen Sie die Ressourcen, die Sie in diesem Tutorial erstellt haben.
Löschen von RDS Proxy
7.1 – Navigieren Sie zur RDS-Konsole und wählen Sie im linken Bereich die Option Proxys aus.
7.2 – Wählen Sie den Tutorial-Proxy aus.
7.3 – Wählen SieAktionen und dann Löschen aus.
7.4 – Geben Sie in das Dialogfeld Löschen ein und wählen Sie Löschen aus.
Der Status des Proxys ändert sich zu Wird gelöscht. Nach Abschluss wird der Proxy von der Liste entfernt.
Löschen eines Geheimnisses
7.5 – Navigieren Sie zur Secrets Manager-Konsole.
7.6 – Wählen Sie das Tutorial-Geheimnis aus.
7.7 – Wählen SieAktionen und dann Geheimnis löschen aus.
7.8 – Aus Sicherheitsgründen benötigt Secrets Manager eine Wartezeit, bevor ein Geheimnis dauerhaft gelöscht wird. Verwenden Sie den Standardzeitraum von 30 Tagen und wählen Sie Löschen planen aus.
Löschen einer IAM-Rolle und -Richtlinie
7.9 – Navigieren Sie zur IAM-Konsole und wählen Sie im Navigationsbereich Rollen aus.
7.10 – Suchen Sie nach der Tutorial-Rolle und aktivieren Sie dann das Kontrollkästchen neben der Rolle.
7.11 – Wählen Sie oben auf der Seite Rolle löschen aus.
7.12 – Wählen Sie im Bestätigungsdialogfeld die Option Ja, löschen aus.
7.12 – Wählen Sie Richtlinien im Navigationsbereich aus.
7.13 – Suchen Sie nach der Tutorial-Richtlinie und aktivieren Sie dann das Kontrollkästchen neben der Rolle.
7.14 – Wählen Sie Richtlinienaktionen und dann Löschen aus.
7.15 – Bestätigen Sie, dass Sie die Richtlinie löschen möchten, und wählen Sie dann Löschen aus.
Löschen anderer Ressourcen
Wenn Sie eine neue EC2-Instance, eine neue RDS-Instance und entsprechende Sicherheitsgruppen für dieses Tutorial erstellt haben, löschen Sie auch diese Ressourcen.
Herzlichen Glückwunsch!
Sie haben einen Amazon RDS-Proxy zur Zusammenführung und gemeinsamen Nutzung von Datenbankverbindungen erstellt, der Proxy-Metriken überwacht und die Verbindungsaktivität des Proxys überprüft.
Empfohlene nächste Schritte
Weitere Informationen zu Amazon RDS-Funktionen
Weitere Informationen über die Funktionen von Amazon RDS finden Sie im Amazon RDS-Benutzerhandbuch.
Bewährte Methoden für Amazon RDS
Informieren Sie sich über allgemeine bewährte Methoden und Optionen für die Zusammenarbeit mit Amazon RDS.
Weitere Informationen zu Amazon RDS Proxy
Weitere Infos hierzu finden Sie im Blog-Eintrag Amazon RDS Proxy mit AWS Lambda verwenden und unter Verbindungen mit Amazon RDS Proxy verwalten.