Häufige Konnektivitätsprobleme von EC2-Instanzen diagnostizieren und beheben

Dieser umfassende Leitfaden hilft Ihnen, häufige Probleme mit der Netzwerkkonnektivität von Amazon EC2-Instanzen zu beheben und zu lösen. Erfahren Sie Schritt für Schritt, wie Sie Probleme diagnostizieren, indem Sie Security Groups, NACLs, Route Tables, Internet Gateways, NAT Gateways und VPC Peering untersuchen. Enthält praktische Beispiele und bewährte Verfahren, um sicherzustellen, dass Ihre EC2-Instanzen jederzeit zugänglich sind und effektiv kommunizieren.

39 Aufrufe

Diagnose und Behebung häufiger Verbindungsprobleme von EC2-Instances

Die Verbindung zu Ihren Amazon Elastic Compute Cloud (EC2)-Instances ist eine grundlegende Aufgabe für die Verwaltung Ihrer Cloud-Infrastruktur. Es können jedoch Netzwerkverbindungsprobleme auftreten, die Sie daran hindern, auf Ihre Instances zuzugreifen, oder die verhindern, dass Instances miteinander oder mit externen Ressourcen kommunizieren. Dieser Leitfaden bietet einen systematischen Ansatz zur Diagnose und Behebung häufiger EC2-Verbindungsprobleme, einschließlich wichtiger Netzwerkkomponenten und potenzieller Fehlkonfigurationen.

Das Verständnis dieser potenziellen Hindernisse ist entscheidend für die Aufrechterhaltung einer gesunden und zugänglichen AWS-Umgebung. Indem Sie die unten beschriebenen Schritte befolgen, können Sie die Ursache von Verbindungsproblemen effizient ermitteln und die notwendigen Korrekturen implementieren, um sicherzustellen, dass Ihre EC2-Instances erreichbar sind und wie erwartet kommunizieren.

Häufige Ursachen für EC2-Verbindungsprobleme

Verbindungsprobleme können auf verschiedenen Ebenen des AWS-Netzwerk-Stacks entstehen. Die Ermittlung der Grundursache erfordert oft die Überprüfung einer Kombination dieser Elemente:

  • Sicherheitsgruppen: Diese fungieren als virtuelle Firewalls für Ihre Instances und steuern den eingehenden und ausgehenden Datenverkehr auf Instance-Ebene.
  • Netzwerk-Zugriffskontrolllisten (NACLs): NACLs arbeiten auf Subnetz-Ebene und bieten eine zusätzliche Schicht der zustandslosen Filterung für Datenverkehr, der Subnetze betritt und verlässt.
  • Routing-Tabellen: Diese Tabellen leiten den Netzwerkverkehr innerhalb Ihrer Virtual Private Cloud (VPC), indem sie festlegen, wohin der Netzwerkverkehr geleitet wird.
  • Instance-Status und Netzwerkkonfiguration: Probleme mit der EC2-Instance selbst, wie z.B. wenn sie gestoppt ist oder falsche Netzwerkschnittstellen-Einstellungen hat.
  • Internet-Gateway (IGW) / NAT-Gateway: Für Instances, die Internetzugang benötigen, ist die Konfiguration des IGW (für öffentliche Subnetze) oder des NAT-Gateways (für private Subnetze) entscheidend.
  • VPC-Peering / Transit Gateway: Wenn Verbindungen zwischen VPCs hergestellt werden, müssen diese Inter-VPC-Konnektivitätsdienste korrekt konfiguriert sein.

Schritt-für-Schritt-Diagnose und -Behebung

Tauchen wir ein in die praktischen Schritte zur Fehlerbehebung häufiger Verbindungsprobleme.

1. Instance-Status und grundlegende Netzwerk-Erreichbarkeit überprüfen

Bevor Sie sich mit komplexen Netzwerkkonfigurationen befassen, stellen Sie sicher, dass sich die Instance selbst in einem fehlerfreien Zustand befindet und über grundlegende Netzwerkkonfigurationen verfügt:

  • Instance-Statusprüfungen: Wählen Sie in der EC2-Konsole Ihre Instance aus und prüfen Sie den Tab „Statusprüfungen“. Stellen Sie sicher, dass sowohl „Systemstatusprüfungen“ als auch „Instance-Statusprüfungen“ erfolgreich sind. Falls nicht, untersuchen Sie die zugrunde liegenden System- oder Instance-Probleme.
  • Öffentliche IP / Private IP: Bestätigen Sie, dass Ihre Instance die erwartete öffentliche IP-Adresse (wenn sie sich in einem öffentlichen Subnetz befindet und Internetzugang benötigt) oder private IP-Adresse hat.
  • DNS-Auflösung: Versuchen Sie, eine externe Ressource über ihre IP-Adresse und dann über ihren Hostnamen anzupingen. Wenn die Hostnamen-Auflösung fehlschlägt, der Ping über die IP-Adresse jedoch funktioniert, liegt möglicherweise ein DNS-Konfigurationsproblem innerhalb Ihrer VPC vor.

2. Sicherheitsgruppen überprüfen

Sicherheitsgruppen sind zustandsbehaftete Firewalls, die den Datenverkehr zu und von Ihren EC2-Instances steuern. Sie sind eine sehr häufige Ursache für Verbindungsprobleme.

2.1. Eingehende Regeln (Inbound Rules)

Wenn Sie keine Verbindung zu Ihrer Instance herstellen können (z.B. über SSH oder RDP):

  • Überprüfen Sie die Sicherheitsgruppe, die Ihrer EC2-Instance zugewiesen ist.
  • Eingehende Regeln überprüfen: Stellen Sie sicher, dass eine eingehende Regel vorhanden ist, die den Datenverkehr auf dem erforderlichen Port (z.B. Port 22 für SSH, Port 3389 für RDP) von Ihrer Quell-IP-Adresse oder einem vertrauenswürdigen IP-Bereich (z.B. 0.0.0.0/0 für überall, aber Vorsicht ist geboten) zulässt. Für Entwicklung oder Tests ist die Verwendung Ihrer spezifischen IP-Adresse (<your_ip>/32) eine sicherere Praxis.
  • Beispiel: Um SSH-Zugriff von Ihrer IP-Adresse zuzulassen:
    Typ: SSH Protokoll: TCP Portbereich: 22 Quelle: <your_ip>/32

2.2. Ausgehende Regeln (Outbound Rules)

Wenn Ihre Instance keine externen Ressourcen erreichen kann (z.B. Pakete herunterladen, eine Verbindung zu anderen AWS-Diensten herstellen):

  • Überprüfen Sie die Sicherheitsgruppe, die Ihrer EC2-Instance zugewiesen ist.
  • Ausgehende Regeln überprüfen: Standardmäßig lassen Sicherheitsgruppen den gesamten ausgehenden Datenverkehr zu. Wenn benutzerdefinierte ausgehende Regeln erstellt wurden, stellen Sie sicher, dass sie den notwendigen Datenverkehr zu Ihren Zielports und IPs zulassen.
  • Beispiel: Um den gesamten ausgehenden Datenverkehr zuzulassen:
    Typ: Gesamter Datenverkehr Protokoll: Alle Portbereich: Alle Ziel: 0.0.0.0/0

3. Netzwerk-Zugriffskontrolllisten (NACLs) untersuchen

NACLs sind zustandslose Firewalls, die auf Subnetz-Ebene arbeiten. Sie filtern den Datenverkehr, bevor er die Sicherheitsgruppe oder Instance erreicht.

  • Identifizieren Sie die NACL, die dem Subnetz Ihrer Instance zugeordnet ist.
  • Eingehende Regeln überprüfen: NACLs werden in der Reihenfolge ihrer Regelnummern ausgewertet. Stellen Sie sicher, dass eine eingehende Regel vorhanden ist, die den Datenverkehr auf dem erforderlichen Port von der Quell-IP zulässt.
  • Ausgehende Regeln überprüfen: Überprüfen Sie entsprechend, ob ausgehende Regeln den Datenverkehr zum Ziel zulassen.
  • Zustandslose Natur: Denken Sie daran, dass NACLs zustandslos sind. Das bedeutet, Sie müssen sowohl eingehende als auch ausgehende Regeln definieren, damit der Datenverkehr in beide Richtungen fließen kann. Wenn Sie beispielsweise eingehenden SSH-Verkehr (Port 22) zulassen, müssen Sie auch ausgehenden Datenverkehr auf ephemeren Ports (typischerweise 1024-65535) zulassen, damit die Antwort zurückkehren kann.
  • Regelnummerierung: Niedrigere Regelnummern werden zuerst ausgewertet. Verwenden Sie explizite Ablehnungsregeln (z.B. Regel 100 zum Ablehnen spezifischen Datenverkehrs) und Zulassungsregeln (z.B. Regel 200 zum Zulassen breiteren Datenverkehrs) sorgfältig.

4. Routing-Tabellen überprüfen

Routing-Tabellen legen fest, wohin der Netzwerkverkehr von Ihren Subnetzen geleitet wird. Eine falsche Routenführung kann verhindern, dass der Datenverkehr sein Ziel erreicht.

  • Suchen Sie die Routing-Tabelle, die dem Subnetz Ihrer Instance zugeordnet ist.
  • Auf eine Standardroute prüfen: Damit Instances in einem öffentlichen Subnetz auf das Internet zugreifen können, muss eine Route 0.0.0.0/0 vorhanden sein, die auf ein Internet-Gateway (IGW) zeigt.
    Ziel | Ziel (Target) ----------------|-------- 10.0.0.0/16 | local 0.0.0.0/0 | igw-xxxxxxxxxxxxxxxxx
  • Private Subnetze und NAT-Gateways: Damit Instances in einem privaten Subnetz auf das Internet zugreifen können, benötigt die Routing-Tabelle für dieses Subnetz eine 0.0.0.0/0-Route, die auf ein NAT-Gateway oder eine NAT-Instance zeigt.
    Ziel | Ziel (Target) ----------------|-------- 10.0.0.0/16 | local 0.0.0.0/0 | nat-xxxxxxxxxxxxxxxxx
  • VPC-Peering / VPN: Wenn Ihre Instance mit Ressourcen in einer anderen VPC oder On-Premises kommunizieren muss, stellen Sie sicher, dass die entsprechenden Routen für diese CIDR-Blöcke existieren und auf die korrekte Peering-Verbindung oder das VPN-Gateway zeigen.

5. Fehlerbehebung bei der Konnektivität von Internet-Gateway (IGW) und NAT-Gateway

  • Internet-Gateway (IGW):

    • Stellen Sie sicher, dass das IGW erstellt und Ihrer VPC angefügt ist.
    • Vergewissern Sie sich, dass die Routing-Tabelle für Ihr öffentliches Subnetz eine 0.0.0.0/0-Route aufweist, die auf das IGW zeigt.
    • Bestätigen Sie, dass Ihrer Instance eine öffentliche IP-Adresse oder eine Elastic IP-Adresse zugewiesen ist.
    • Sicherheitsgruppen- und NACL-Regeln müssen den Datenverkehr zu/von 0.0.0.0/0 für den Internetzugang zulassen.
  • NAT-Gateway:

    • Stellen Sie sicher, dass das NAT-Gateway erstellt wurde und sich in einem öffentlichen Subnetz befindet.
    • Vergewissern Sie sich, dass dem NAT-Gateway eine Elastic IP-Adresse zugeordnet ist.
    • Bestätigen Sie, dass die Routing-Tabelle für Ihr privates Subnetz eine 0.0.0.0/0-Route aufweist, die auf das NAT-Gateway zeigt.
    • Sicherheitsgruppen- und NACL-Regeln müssen den Datenverkehr von Ihrem privaten Subnetz zum NAT-Gateway und ausgehend zum Internet zulassen.

6. VPC-Peering und Transit Gateway

Wenn Sie Verbindungsprobleme zwischen VPCs haben:

  • VPC-Peering:
    • Stellen Sie sicher, dass die Peering-Verbindung aktiv ist und von beiden VPCs akzeptiert wurde.
    • Vergewissern Sie sich, dass in den Routing-Tabellen beider VPCs Routen hinzugefügt wurden, um den Datenverkehr zu den CIDR-Blöcken der gepeerten VPC zuzulassen.
    • Stellen Sie sicher, dass Sicherheitsgruppen und NACLs in beiden VPCs den Datenverkehr zwischen den notwendigen IP-Bereichen zulassen.
  • Transit Gateway:
    • Bestätigen Sie, dass das Transit Gateway erstellt wurde und die relevanten VPCs daran angehängt sind.
    • Überprüfen Sie die Transit Gateway-Routing-Tabellen, um sicherzustellen, dass sie den Datenverkehr zwischen VPC-Anhängen korrekt routen.
    • Vergewissern Sie sich, dass die Routing-Tabellen innerhalb jeder VPC auch Routen aufweisen, die auf das Transit Gateway für Datenverkehr zeigen, der für andere VPCs bestimmt ist.
    • Sicherheitsgruppen und NACLs innerhalb jeder VPC müssen den VPC-übergreifenden Datenverkehr zulassen.

7. AWS Netzwerk-Erreichbarkeitstools verwenden

AWS bietet Tools zur Diagnose von Netzwerkproblemen:

  • VPC Reachability Analyzer: Dieses Tool ermöglicht es Ihnen, die Erreichbarkeit zwischen zwei Endpunkten innerhalb Ihrer VPC oder über VPCs hinweg zu analysieren. Sie können den Datenverkehrsfluss simulieren und Pfadausfälle aufgrund von Sicherheitsgruppen, NACLs, Routing-Tabellen oder anderen Netzwerkkonfigurationen identifizieren. Sie finden es in der VPC-Konsole unter „Netzwerk-Erreichbarkeit“.
  • VPC Flow Logs: Obwohl sie Verbindungsfehler nicht direkt diagnostizieren, erfassen VPC Flow Logs Informationen über den IP-Verkehr zu und von Netzwerkschnittstellen in Ihrer VPC. Die Analyse dieser Logs kann Muster von blockiertem oder unerwartetem Datenverkehr aufdecken und Ihnen helfen, Fehlkonfigurationen in Sicherheitsgruppen oder NACLs zu identifizieren.

8. Weitere potenzielle Probleme

  • Elastic Network Interface (ENI): Stellen Sie sicher, dass das ENI an die Instance angehängt und korrekt konfiguriert ist.
  • Zuordnung der Routing-Tabelle des Subnetzes: Überprüfen Sie, ob das Subnetz korrekt seiner vorgesehenen Routing-Tabelle zugeordnet ist.
  • DNS-Konfiguration: Wenn Sie benutzerdefiniertes DNS verwenden, stellen Sie sicher, dass es korrekt auflöst. Überprüfen Sie für das standardmäßige VPC-DNS, ob die DNS-Auflösung für Ihre VPC aktiviert ist.
  • Proxy-Server: Wenn Ihre Instance für die Verwendung eines Proxys konfiguriert ist, stellen Sie sicher, dass der Proxy selbst zugänglich und korrekt konfiguriert ist.

Best Practices zur Vermeidung von Verbindungsproblemen

  • Geringstes Berechtigungsprinzip (Least Privilege): Konfigurieren Sie Sicherheitsgruppen und NACLs mit den minimal notwendigen Berechtigungen. Vermeiden Sie die Verwendung von 0.0.0.0/0 für sensible Ports, es sei denn, dies ist absolut erforderlich und anderweitig geschützt.
  • Tagging: Kennzeichnen Sie Ihre Netzwerkressourcen (VPCs, Subnetze, Sicherheitsgruppen, Routing-Tabellen) konsistent, um deren Zweck und die zugehörigen Instances leicht zu identifizieren.
  • Dokumentation: Pflegen Sie eine klare Dokumentation Ihrer Netzwerktopologie, IP-Adressierungsschemata und Sicherheitsregeln.
  • Regelmäßige Audits: Überprüfen Sie regelmäßig Ihre Sicherheitsgruppen- und NACL-Regeln, um sicherzustellen, dass sie immer noch relevant und sicher sind.
  • AWS-Tools nutzen: Machen Sie sich mit dem VPC Reachability Analyzer und VPC Flow Logs für proaktive Überwachung und Fehlerbehebung vertraut.

Fazit

Die Diagnose von Verbindungsproblemen von EC2-Instances erfordert einen methodischen Ansatz, bei dem jede Ebene des AWS-Netzwerk-Stacks systematisch überprüft wird. Indem Sie Sicherheitsgruppen, NACLs, Routing-Tabellen und Gateway-Konfigurationen verstehen und überprüfen, können Sie die meisten gängigen Verbindungsprobleme effektiv identifizieren und beheben. Die Nutzung von Tools wie dem VPC Reachability Analyzer und VPC Flow Logs kann den Fehlerbehebungsprozess weiter optimieren und dazu beitragen, eine robuste und zugängliche Cloud-Umgebung aufrechtzuerhalten.