Wie behebe ich Verbindungsprobleme zwischen meinen Amazon-ECS-Aufgaben für einen Amazon-EC2-Starttyp und einer Amazon-RDS-Datenbank?

Lesedauer: 3 Minute
0

Meine Anwendung wird als eine Reihe von Aufgaben ausgeführt, die von Amazon Elastic Container Service (Amazon ECS) auf Amazon Elastic Compute Cloud (Amazon EC2) -Instances gestartet wurden. Meine Anwendung kann nicht mit der Amazon Relational Database Service (Amazon RDS)-Datenbank kommunizieren.

Behebung

Überprüfen Sie Ihre Netzwerkkonfigurationen

Um zu überprüfen, ob eine Container-Instance eine Verbindung zur Datenbank herstellen kann, führen Sie die folgenden Schritte für Linux- oder Windows-basierte Container-Instances aus:

Für Linux-basierte Container-Instances:

1.    Verwenden Sie SSH, um eine Verbindung zu der Container-Instance herzustellen, in der Ihre Aufgabe platziert ist.

2.    Führen Sie den folgenden Befehl aus, um eine Verbindung zu Ihrer RDS-Datenbank herzustellen:

$ telnet test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306

Hinweis: Ersetzen Sie test.ab12cde3fg4.us-east-1.rds.amazonaws.com durch Ihren Datenbankendpunkt. Ersetzen Sie 3306 durch Ihren Datenbankport.

Die Ausgabe sieht ähnlich wie die folgende aus:

> Trying 172.31.122.28
 > Connected to test.ab12cde3fg4.us-east-1.rds.amazonaws.com
 > Escape character is '^]'.

Wichtig: Telnet ist auf Amazon-ECS-optimierten Amazon Machine Images (AMIs) nicht vorinstalliert. Führen Sie den Befehl sudo yum install telnet -y aus, um Telnet zu installieren.

Für Windows-basierte Container-Instances:

1.    Verwenden Sie das Remote Desktop Protocol (RDP), um eine Verbindung zu der Container-Instance herzustellen, auf der Ihre Aufgabe platziert ist.

2.    Um eine Verbindung zu Ihrer RDS-Datenbank herzustellen, führen Sie den folgenden Befehl entweder über die Windows-Befehlszeile oder über Windows PowerShell aus:

$ telnet test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306

**Hinweis:**Ersetzen Sie test.ab12cde3fg4.us-east-1.rds.amazonaws.com durch Ihren Datenbankendpunkt. Ersetzen Sie 3306 durch Ihren Datenbankport.

Wichtig: Telnet ist auf Amazon-ECS-optimierten Windows-AMIs nicht vorinstalliert. Um Telnet zu installieren, führen Sie den Befehl Install-WindowsFeature -Name Telnet-Client mit PowerShell als Administrator aus.

Wenn die Verbindung hergestellt ist, erscheint eine leere Seite.

Wenn die Verbindung nicht hergestellt wird und Sie die Fehler „Connection Timed Out“ oder „Connection failed“ erhalten, gehen Sie wie folgt vor:

1.    Prüfen Sie, ob die angehängten Sicherheitsgruppen den Zugriff auf die RDS-Datenbank zulassen. Sie können entweder den API-Aufruf DescribeInstances oder die Registerkarte Beschreibung für Ihre ausgewählte Instance-ID in der Amazon-EC2-Konsole verwenden.

Hinweis: Im Netzwerkmodus Bridge und Host regeln Sicherheitsgruppen, die an die Container-Instance angehängt sind, den Zugriff auf die Datenbank. Im Netzwerkmodus awsvpc regeln die Sicherheitsgruppen, die beim Start des Dienstes oder der Aufgabe verknüpft sind, den Zugriff.

Tipp: Es hat sich bewährt, eine Sicherheitsgruppe zu erstellen, die eingehenden Datenverkehr vom Datenbankport zulässt. Hängen Sie dann die Sicherheitsgruppe an die Datenbank und die Container-Instance an oder verknüpfen Sie die Sicherheitsgruppe mit Aufgaben, die auf awsvpc basieren.

2.    Prüfen Sie, ob die Netzwerkzugriffskontrollliste (Netzwerk-ACL) und die dem Subnetz zugeordnete Routing-Tabelle den Zugriff auf die Datenbank zulassen.

Überprüfen Sie die Datenbankverbindungsparameter

1.    Übergeben Sie im AbschnittUmgebung Ihrer Container-Definition Ihre Umgebungsvariablen sicher. Um sie sicher zu übergeben, verweisen Sie im AWS Systems Manager Parameter Store oder AWS Secrets Manager auf Ihre Umgebungsvariablen.

Hinweis: Eine Anwendung verwendet Parameter (wie Datenbankendpunkt, Datenbankport und Datenbankzugriffsanmeldeinformationen), um eine Verbindung mit der Datenbank herzustellen. Diese Parameter werden normalerweise als Umgebungsvariablen an die Aufgabe übergeben.

2.    Wenn der Container in Ihrer Aufgabe eine Verbindung mit der Datenbank herstellen kann, sich aber aufgrund falscher Verbindungsparameter (wie Datenbankbenutzername oder Datenbankkennwort) nicht authentifizieren kann, setzen Sie Ihr Datenbankkennwort zurück.

3.    Entfernen Sie alle führenden oder abschließenden Zeichen aus Ihren Verbindungsparametern.

Hinweis: Syntaxfehler können dazu führen, dass die Verbindung zwischen Ihrem Container und der RDS-Datenbank fehlschlägt.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Jahren