Damit eine RDS-Instanz in VPC auf "öffentlich" (Internet) zugreifbar ist, müssen alle Subnetze, mit denen sie verbunden ist, "öffentlich" sein - im Gegensatz zu "privaten" Subnetzen der VPC.
Ein öffentliches Subnetz ist im Wesentlichen als Subnetz definiert, in dem das Internet-Gateway-Objekt (igw-xxxxxxxx) als Route zum "Internet" oder zumindest zu Internetzielen verwendet wird, auf die Sie zugreifen müssen. In der Regel ist dies eine Zieladresse von 0.0.0.0/0
. Öffentliche Subnetze müssen für Instanzen (einschließlich RDS) verwendet werden, denen eine öffentliche IP-Adresse zugeordnet ist, und sollten nicht für Instanzen verwendet werden, denen keine öffentlichen IP-Adressen zugeordnet sind, da private Adressen ohne Übersetzung nicht über das Internet funktionieren.
Im Gegensatz dazu ist die Routing-Tabelle eines privaten Subnetzes so konfiguriert, dass sie Internetziele über eine andere EC2-Instanz, normalerweise eine NAT-Instanz, erreicht. Dies wird in der diesem Subnetz zugeordneten VPC-Routentabelle als i-xxxxxxxx und nicht als "igw" angezeigt. Dieser Computer (der sich selbst in einem anderen Subnetz befindet als das, für das er als Routenziel fungiert) dient als Übersetzer, sodass die Private-IP-only-Instanzen ausgehende Internetanforderungen mithilfe des öffentlichen NAT-Computers transparent ausführen können IP für ihre Internetbedürfnisse. Instanzen mit einer öffentlichen IP-Adresse können nicht ordnungsgemäß mit dem Internet interagieren, wenn sie an ein privates Subnetz angeschlossen sind.
In diesem speziellen Fall waren die mit der RDS-Instanz verknüpften Subnetze nicht wirklich so konfiguriert, dass sie einfach als privates oder öffentliches Subnetz klassifiziert werden konnten, da das Subnetz überhaupt keine Standardroute hatte. Das Hinzufügen einer Standardroute über das "igw" -Objekt oder, wie in OP, das Hinzufügen einer statischen Route zur Internet-IP-Adresse, wo Konnektivität erforderlich war, in die VPC-Routentabelle für die Subnetze behebt das Konnektivitätsproblem.
Allerdings ... Wenn ein ähnliches Problem auftritt, können Sie die Routentabelle nicht einfach ändern oder neue Routentabellen erstellen und die Subnetze mit diesen verknüpfen, es sei denn, in den Subnetzen funktioniert bereits nichts anderes ordnungsgemäß, da dies möglicherweise der Fall ist Es wird erwartet, dass die vorhandene Konnektivität unterbrochen wird. In diesem Fall besteht der richtige Weg darin, die Instanzen in verschiedenen Subnetzen mit den richtigen Routing-Tabelleneinträgen bereitzustellen.
Beim Einrichten einer VPC ist es ideal, die Subnetzrollen klar zu definieren und dann bei der ersten Inbetriebnahme der VPC die erforderlichen Routen vollständig bereitzustellen. Es ist auch wichtig, sich daran zu erinnern, dass das gesamte VPC- "LAN" ein softwaredefiniertes Netzwerk ist. Anders als in einem physischen Netzwerk, in dem der Router zu einem Engpass werden kann und es oft sinnvoll ist, Maschinen mit hohem Datenverkehr im selben Subnetz zu platzieren, hat das Überqueren von Subnetzen auf VPC keinen Leistungsnachteil. Computer sollten in Subnetzen platziert werden, die für die IP-Adressierungsanforderungen des Computers geeignet sind - öffentliche Adresse, öffentliches Subnetz; Keine öffentliche Adresse, privates Subnetz.
Weitere Informationen zur Logistik privater / öffentlicher Subnetze in VPC finden Sie unter Warum benötigen wir ein privates Subnetz in VPC (bei Stack Overflow).
(110)
Fehlermeldung bedeutet "Zeitüberschreitung der Verbindung". Dies ist also definitiv ein IP-Konnektivitätsproblem. Ihre RDS-Instanz scheint mit zwei Subnetzen verbunden zu sein. Wie lautet die Standardroute dieser beiden Subnetze in der VPC-Konsole? Ist es ein "igw-xxxxxxxx" oder ist es ein "i-xxxxxxxx"?