Einrichten gemeinsamer Datenbankverbindungen

mit Amazon RDS Proxy

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.

1.2 – Klicken Sie auf die Dropdown-Liste Region und wählen Sie die AWS-Region aus, in der sich Ihre vorhandenen RDS- und EC2-Instances befinden. Für dieses Tutorial verwenden wir die Region USA Ost (Ohio).

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.4 – Wählen Sie EC2-sg aus.

  • Wählen Sie die Registerkarte Eingangsregeln aus und überprüfen Sie, ob der Typ SSH ist.
  • Wählen Sie die Registerkarte Ausgangsregeln aus und vergewissern Sie sich, dass der Typ Sämtlicher Datenverkehr ist.

1.5 – Wählen Sie RDS-sg aus.

  • Wählen Sie die Registerkarte Eingangsregeln aus und überprüfen Sie, ob die Quelle EC2-sg ist.
  • Wählen Sie die Registerkarte Ausgangsregeln aus und vergewissern Sie sich, dass der Typ Sämtlicher Datenverkehr ist.

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.8 – Wählen Sie im Dialogfeld "Mit Ihrer Instance verbinden" die Option EC2-Instance-Verbindung (browserbasierte SSH-Verbindung). Es öffnet sich ein Browserfenster, das die Befehlszeilenschnittstelle (CLI) der EC2-Instance anzeigt.

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.

2.6 – Die Secrets Manager-Konsole zeigt Ihnen die Konfigurationseinstellungen für Ihr Geheimnis und einige Beispielcodes, die die Verwendung Ihres Geheimnisses demonstrieren. Scrollen Sie bis zum Ende der Seite und wählen Sie Speichern, um Ihr Geheimnis zu speichern.

2.7 – Nachdem Sie das Geheimnis erstellt haben, zeigt die Seite "Secrets Manager" Ihre erstellten Geheimnisse an. Wählen Sie das Tutorial-Geheimnis aus.

Im Feld Geheimnisdetails wird der ARN Ihres Geheimnisses angezeigt. Kopieren Sie diesen Wert, da Sie ihn später in diesem Tutorial benötigen.

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.2 – Wählen Sie bei Typ der vertrauenswürdigen Entität auswählen AWS-Service aus. Wählen Sie bei Anwendungsfall auswählen RDS aus.

3.3 – Wählen Sie bei Ihren Anwendungsfall auswählen RDS – Rolle zu Datenbank hinzufügen aus und danach Weiter: Berechtigungen.

3.4 – Wählen Sie Richtlinie erstellen und dann die Registerkarte JSON aus. Löschen Sie die vorhandenen Richtlinienanweisungen.

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.6 – Im Abschnitt Richtlinie überprüfen geben Sie Ihrer Richtlinie einen Namen und eine Beschreibung, damit Sie sie später leicht finden können. Wählen Sie dann Richtlinie erstellen aus.

3.7 – Wählen Sie Rollen und dann Aktualisieren aus.

3.8 – Geben Sie im Suchfeld Tutorial ein und wählen Sie die Tutorial-Richtlinie aus. Wählen Sie Weiter: Tags aus.

3.9 – Überspringen Sie den Tagging-Abschnitt und wählen Sie Weiter: Überprüfen aus.

3.10 – Im Abschnitt Überprüfen geben Sie Ihrer Rolle einen Namen und eine Beschreibung, damit Sie sie später leicht finden können. Wählen Sie dann Rolle erstellen aus.

3.11 – Bestätigen Sie, dass die Rolle erstellt wurde.

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.2 – Wählen Sie im Dialogfeld Mit Ihrer Instance verbinden die Option EC2-Instance-Verbindung (browserbasierte SSH-Verbindung) aus und wählen Sie danach 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.2 – Geben Sie im Suchfeld den Namen Ihres Proxys ein.

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.

War dieses Tutorial hilfreich?

Vielen Dank
Bitte teilen Sie uns mit, was Ihnen gefallen hat.
Schließen
Es tut uns leid Sie zu enttäuschen
Ist etwas veraltet, verwirrend oder ungenau? Bitte helfen Sie uns, dieses Tutorial zu verbessern, indem Sie Feedback geben.
Schließen

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.