Wer für seine EC2 Instanzen Internetzugriff einrichten möchte, hat bestimmt schon über die Verwendung einer NAT Lösung nachgedacht.
Wie man ein NAT Gateway oder eine NAT Instance einrichtet wird hier beschrieben:
Zwei Subnetze müssen mindestens vorhanden sein. Eines für den WAN Traffic z.B DMZ und eines für den internen Traffic.
Vorstellen kann man sich das am Besten mit zwei LAN Kabeln (Internet und LAN), welche an einen "Router/Gateway" angeschlossen werden.
Das NAT Gateway ist die fertige Lösung von AWS. Die Funktionsweise und Preise sind hier
https://docs.aws.amazon.com/de_de/vpc/latest/userguide/vpc-nat-gateway.html dokumentiert.
Schritt für Schritt lässt sich ein Gateway wie folgt einrichten:
Unter Services VPC aufrufen
Unter Subnets ggf. zweites Subnetz für das WAN/Public Network anlegen
Unter Routes für das erstelle Subnet die 0.0.0.0/0 zum Internet Gateway hinzufügen (igw-..)
Unter NAT Gateways -> Create NAT Gateway auswählen
Unter Subnet das erstellte Subnet auswählen
Create New EIP wählen
Create a NAT Gateway wählen
Edit Route Tables wählen
Unter dem Reiter „Routes“ -> Edit Routes wählen und die Route 0.0.0.0/0 zum Target NAT Gateway hinzufügen und „Save Routes“ klicken.
Anschließend sollten Instanzen die mit dem privaten Subnet verbunden sind, Zugriff zum Internet haben.
Eine Alternative wäre die Installation und Konfiguration einer EC2 Instanz. Untet dem Link https://docs.aws.amazon.com/de_de/vpc/latest/userguide/VPC_NAT_Instance.html wird die Funktionsweise sehr gut erklärt. Im folgenden Videobeitrag zeige ich euch, wie eine solche Instanz erstellt werden kann:
Attribut |
NAT-Gateway |
NAT-Instance |
---|---|---|
Verfügbarkeit |
Hochverfügbar. NAT-Gateways werden innerhalb jeder Availability Zone redundant implementiert. Erstellen Sie ein NAT-Gateway in jeder Availability Zone, um eine zonenunabhängige Architektur sicherzustellen. |
Den Failover zwischen Instances können Sie mithilfe eines Skripts verwalten. |
Bandbreite |
Kann bis auf 45 Gbit/s skaliert werden. |
Abhängig von der Bandbreite des Instance-Typs |
Wartung |
Von AWS verwaltet. Wartung ist nicht erforderlich. |
Von Ihnen verwaltet, beispielsweise zur Installation von Softwareupdates oder Betriebssystem-Patches auf der Instance |
Leistung |
Software auf NAT-Datenverkehr optimiert |
Generisches, für NAT konfiguriertes Amazon Linux-AMI |
Kosten |
Gebühren abhängig von der Anzahl der verwendeten NAT-Gateways, der Nutzungsdauer und dem über die NAT-Gateways gesendeten Datenvolumen |
Gebühren abhängig von der Anzahl der verwendeten NAT-Instances, der Nutzungsdauer und dem Instance-Typ sowie der Instance-Größe |
Typ und Größe |
Einheitliches Angebot, keine Auswahl von Typ oder Größe |
Auswahl des geeigneten Instance-Typs und der Instance-Größe anhand des erwarteten Workloads |
Öffentliche IP-Adresse |
Sie ordnen beim Erstellen eines NAT-Gateways eine Elastic IP-Adresse zu. |
Für NAT-Instances können Sie eine Elastic IP-Adresse oder eine öffentliche IP-Adresse verwenden. Sie können die öffentliche IP-Adresse jederzeit ändern, indem Sie der Instance eine neue Elastic IP-Adresse zuordnen. |
Private IP-Adressen |
Die private IP-Adresse wird beim Erstellen des Gateways automatisch aus dem IP-Adressbereich des Subnetzes zugewiesen. |
Weisen Sie beim Starten der Instance eine bestimmte private IP-Adresse aus dem IP-Adressbereich des Subnetzes zu. |
Sicherheitsgruppen |
Kann einem NAT-Gateway nicht zugeordnet werden. Sie können den Ressourcen hinter dem NAT-Gateway Sicherheitsgruppen zuordnen, um den ein- und ausgehenden Datenverkehr zu steuern. |
Ordnen Sie sie NAT-Instances und den Ressourcen hinter der NAT-Instance zu, um ein- und ausgehenden Datenverkehr zu steuern. |
Netzwerk-ACLs |
Verwenden Sie eine Netzwerk-ACL, um den Datenverkehr zu und von dem Subnetz zu steuern, in dem sich das NAT-Gateway befindet. |
Verwenden Sie eine Netzwerk-ACL, um den Datenverkehr zu und von dem Subnetz zu steuern, in dem sich die NAT-Instance befindet. |
Flow-Protokolle |
Verwenden Sie Flow-Protokolle, um den Datenverkehr zu erfassen. |
Verwenden Sie Flow-Protokolle, um den Datenverkehr zu erfassen. |
Port-Weiterleitung |
Nicht unterstützt |
Manuelle Anpassung der Konfiguration zur Unterstützung von Port-Weiterleitung |
Bastion Hosts |
Nicht unterstützt |
Als Bastion Host verwenden |
Datenverkehr-Metriken |
Anzeigen von CloudWatch-Metriken für den NAT-Gateway. |
Anzeigen von CloudWatch-Metriken für die Instance. |
Timeout-Verhalten |
Wenn eine Verbindung abläuft, gibt ein NAT-Gateway ein RST-Paket an die Ressourcen hinter dem NAT-Gateway zurück, um zu versuchen, die Verbindung wiederaufzunehmen (es wird kein FIN-Paket gesendet). |
Wenn eine Verbindung abläuft, sendet eine NAT-Instance ein FIN-Paket an die Ressourcen hinter der NAT-Instance, um die Verbindung zu beenden. |
IP-Fragmentierung |
Weiterleitung von IP-fragmentierten Paketen für das UDP-Protokoll wird unterstützt. Fragmentierung für das TCP- und ICMP-Protokoll wird nicht unterstützt. Fragmentierte Pakete werden für diese Protokolle verworfen. |
Zusammenführung von IP-fragmentierten Paketen wird für das UDP-, TCP- und ICMP-Protokoll unterstützt. |
Quelle: https://docs.aws.amazon.com/de_de/vpc/latest/userguide/vpc-nat-comparison.html