Warum brauchen wir ein privates Subnetz in VPC?

127

Es gibt 4 Szenarien in AWS VPC configure. Aber schauen wir uns diese beiden an:

  • Szenario 1: 1 öffentliches Subnetz.
  • Szenario 2: 1 öffentliches Subnetz und 1 privates Subnetz.

Da eine im öffentlichen Subnetz gestartete Instanz keine EIP hat (sofern sie nicht zugewiesen ist), kann sie bereits nicht über das Internet adressiert werden. Dann:

  • Warum wird ein privates Subnetz benötigt?
  • Was genau sind die Unterschiede zwischen privaten und öffentlichen Subnetzen?
Tommy
quelle
4
Das private Subnetz ist auch nach dem Zuweisen einer öffentlichen IP zu Maschinen innerhalb des öffentlichen Internets nicht zugänglich. Ich erstelle VPC-Setups zum Beispiel mit einem Webserver in einem öffentlichen Subnetz und meinem Datenbank-Backend im privaten Subnetz. Ich kann mich mit dem Kunden-Gateway verbinden, um auf Computer im privaten und öffentlichen Subnetz zuzugreifen.
user602525

Antworten:

239

Update: Ende Dezember 2015 AWS kündigte ein neues Feature, einen Managed NAT - Gateway für VPC . Dieser optionale Dienst bietet einen alternativen Mechanismus für VPC-Instanzen in einem privaten Subnetz, um auf das Internet zuzugreifen. Bisher war die übliche Lösung eine EC2-Instanz in einem öffentlichen Subnetz innerhalb der VPC, die als "NAT-Instanz" fungiert und die Übersetzung von Netzwerkadressen ermöglicht. technisch port Address Translation) für Fälle , in anderen, privaten Subnetzen, so dass diese Maschinen die NAT - Instanz öffentliche IP - Adresse für ihren Outbound - Internetzugang nutzen.

Der neue verwaltete NAT-Dienst ändert die Anwendbarkeit der folgenden Informationen nicht grundlegend. Diese Option wird jedoch im folgenden Inhalt nicht behandelt. Eine NAT-Instanz kann weiterhin wie beschrieben verwendet werden, oder stattdessen kann der Managed NAT Gateway-Dienst bereitgestellt werden. Eine erweiterte Version dieser Antwort, die weitere Informationen zu NAT Gateway und dessen Vergleich mit einer NAT-Instanz enthält, wird in Kürze verfügbar sein, da beide für das Paradigma des privaten / öffentlichen Subnetzes in VPC relevant sind.

Beachten Sie, dass das Internet-Gateway und das NAT-Gateway zwei verschiedene Funktionen sind. Alle VPC-Konfigurationen mit Internetzugang verfügen über ein virtuelles Internet Gateway-Objekt.


Um die Unterscheidung zwischen "privaten" und "öffentlichen" Subnetzen in Amazon VPC zu verstehen, müssen Sie wissen, wie IP-Routing und NAT (Network Address Translation) im Allgemeinen funktionieren und wie sie speziell in VPC implementiert sind.

Die Kernunterscheidung zwischen einem öffentlichen und einem privaten Subnetz in VPC wird durch die Standardroute dieses Subnetzes in den VPC-Routing-Tabellen definiert.

Diese Konfiguration bestimmt wiederum die Gültigkeit der Verwendung oder Nichtverwendung öffentlicher IP-Adressen für Instanzen in diesem bestimmten Subnetz.

Jedes Subnetz hat genau eine Standardroute, die nur eines von zwei Dingen sein kann:

  • das "Internet Gateway" -Objekt der VPC im Fall eines "öffentlichen" Subnetzes oder
  • ein NAT-Gerät - das heißt, entweder ein NAT-Gateway oder eine EC2-Instanz, die im Fall eines "privaten" Subnetzes die Rolle "NAT-Instanz" ausführt.

Der Internet - Gateway führt keine Netzwerkadressübersetzung für Instanzen ohne öffentliche IP - Adressen so eine Instanz ohne eine öffentliche IP - Adresse kann keine Verbindung nach außen an dem Internet - Dinge wie Software - Updates herunterladen oder andere AWS - Ressourcen wie S3 Zugriff auf 1 und SQS - Wenn die Standardroute in seinem VPC-Subnetz das Internet Gateway-Objekt ist. Wenn Sie also eine Instanz in einem "öffentlichen" Subnetz sind, benötigen Sie eine öffentliche IP-Adresse, um eine erhebliche Anzahl von Aufgaben ausführen zu können, die Server normalerweise ausführen müssen.

Für Instanzen mit nur einer privaten IP-Adresse gibt es eine alternative Möglichkeit für den ausgehenden Zugriff auf das Internet. Hier kommen Network Address Translation² und eine NAT-Instanz ins Spiel.

Die Computer in einem privaten Subnetz können auf das Internet zugreifen, da die Standardroute in einem privaten Subnetz nicht das VPC-Objekt "Internet Gateway" ist, sondern eine als NAT-Instanz konfigurierte EC2-Instanz.

Eine NAT-Instanz ist eine Instanz in einem öffentlichen Subnetz mit einer öffentlichen IP und einer bestimmten Konfiguration. Es gibt AMIs, die dafür vorgefertigt sind, oder Sie können Ihre eigenen erstellen.

Wenn die privat adressierten Computer Datenverkehr nach außen senden, wird der Datenverkehr per VPC an die NAT-Instanz gesendet, die die Quell-IP-Adresse des Pakets (die private IP-Adresse des privaten Computers) durch ihre eigene öffentliche IP-Adresse ersetzt und den Datenverkehr sendet aus dem Internet, akzeptiert die Antwortpakete und leitet sie an die private Adresse des Ursprungscomputers zurück. (Möglicherweise wird auch der Quellport neu geschrieben, und in jedem Fall werden die Zuordnungen gespeichert, damit bekannt ist, auf welchem ​​internen Computer die Antwortpakete empfangen werden sollen.) Eine NAT-Instanz lässt keinen "unerwarteten" eingehenden Datenverkehr zu den privaten Instanzen gelangen, es sei denn, sie wurde speziell dafür konfiguriert.

Wenn Sie also von einem privaten Subnetz aus auf eine externe Internetressource zugreifen, durchläuft der Datenverkehr die NAT-Instanz und scheint dem Ziel von der öffentlichen IP-Adresse der NAT-Instanz zu stammen. Der Antwortdatenverkehr wird also an die NAT-Instanz zurückgegeben. Weder die der NAT-Instanz zugewiesene Sicherheitsgruppe noch die der privaten Instanz zugewiesene Sicherheitsgruppe müssen so konfiguriert werden, dass dieser Antwortverkehr "zugelassen" wird, da Sicherheitsgruppen statusbehaftet sind. Sie erkennen, dass der Antwortverkehr mit internen Sitzungen korreliert, sodass er automatisch zulässig ist. Unerwarteter Datenverkehr wird natürlich abgelehnt, es sei denn, die Sicherheitsgruppe ist so konfiguriert, dass er dies zulässt.

Im Gegensatz zum herkömmlichen IP-Routing, bei dem sich Ihr Standard-Gateway in demselben Subnetz befindet, funktioniert es in VPC anders: Die NAT-Instanz für ein bestimmtes privates Subnetz befindet sich immer in einem anderen Subnetz, und dieses andere Subnetz ist immer ein öffentliches Subnetz, weil Die NAT-Instanz muss über eine öffentliche externe IP verfügen, und ihr Standardgateway muss das VPC-Objekt "Internet Gateway" sein.

Ebenso ... können Sie keine Instanz mit einer öffentlichen IP in einem privaten Subnetz bereitstellen. Es funktioniert nicht, da die Standardroute in einem privaten Subnetz (per Definition) eine NAT-Instanz (die NAT für den Datenverkehr ausführt) und nicht das Internet Gateway-Objekt (das dies nicht tut) ist. Eingehender Datenverkehr aus dem Internet würde die öffentliche IP der Instanz treffen, aber die Antworten würden versuchen, durch die NAT-Instanz nach außen zu leiten, wodurch entweder der Datenverkehr unterbrochen würde (da er sich aus Antworten auf Verbindungen zusammensetzt, die ihm nicht bekannt sind) würde als ungültig angesehen werden) oder würde den Antwortverkehr neu schreiben, um seine eigene öffentliche IP-Adresse zu verwenden, was nicht funktionieren würde, da der externe Ursprung keine Antworten akzeptieren würde, die von einer anderen IP-Adresse stammen als der, mit der sie die Kommunikation initiieren wollten .

Im Wesentlichen geht es bei den Bezeichnungen "privat" und "öffentlich" also nicht wirklich um Zugänglichkeit oder Unzugänglichkeit aus dem Internet. Hierbei handelt es sich um die Arten von Adressen, die den Instanzen in diesem Subnetz zugewiesen werden. Dies ist relevant, da diese IP-Adressen für Internetinteraktionen übersetzt oder nicht übersetzt werden müssen.

Da VPC implizite Routen von allen VPC-Subnetzen zu allen anderen VPC-Subnetzen hat, spielt die Standardroute im internen VPC-Verkehr keine Rolle. Instanzen mit privaten IP-Adressen stellen eine Verbindung zu anderen privaten IP-Adressen in der VPC "von" ihrer privaten IP-Adresse her her, nicht "von" ihrer öffentlichen IP-Adresse (falls vorhanden) ... solange die Zieladresse eine andere private Adresse ist innerhalb der VPC.

Wenn Ihre Instanzen mit privaten IP-Adressen unter keinen Umständen ausgehenden Internetverkehr erzeugen müssen, können sie technisch in einem "öffentlichen" Subnetz bereitgestellt werden und sind über das Internet immer noch nicht zugänglich ... aber unter einer solchen Konfiguration Es ist für sie unmöglich, ausgehenden Datenverkehr zum Internet zu generieren, der wiederum Verbindungen zu anderen AWS-Infrastrukturdiensten wie S3 1 oder SQS umfasst.


1. Insbesondere in Bezug auf S3 ist die Aussage, dass ein Internetzugang immer erforderlich ist, eine übermäßige Vereinfachung, die im Laufe der Zeit wahrscheinlich an Umfang zunehmen und sich auf andere AWS-Services ausbreiten wird, da die Funktionen von VPC weiter wachsen und sich weiterentwickeln. Es gibt ein relativ neues Konzept, das als VPC-Endpunkt bezeichnet wirdAuf diese Weise können Ihre Instanzen, einschließlich solcher mit nur privaten IP-Adressen, direkt von ausgewählten Subnetzen innerhalb der VPC auf S3 zugreifen, ohne "das Internet" zu berühren und ohne eine NAT-Instanz oder ein NAT-Gateway zu verwenden. Dies erfordert jedoch eine zusätzliche Konfiguration Nur verwendbar, um auf Buckets innerhalb derselben AWS-Region wie Ihre VPC zuzugreifen. Standardmäßig ist S3 - derzeit der einzige Dienst, der die Möglichkeit zum Erstellen von VPC-Endpunkten bietet - nur über das Internet von VPC aus zugänglich. Wenn Sie einen VPC-Endpunkt erstellen, wird eine Präfixliste erstellt (pl-xxxxxxxx ) ist, den Sie in Ihren VPC-Routentabellen verwenden können, um Datenverkehr, der für diesen bestimmten AWS-Dienst gebunden ist, über das virtuelle "VPC-Endpunkt" -Objekt direkt an den Dienst zu senden. Es löst auch das Problem, den ausgehenden Zugriff auf S3 für eine bestimmte Instanz einzuschränken, da die Präfixliste in ausgehenden Sicherheitsgruppen anstelle einer Ziel-IP-Adresse oder eines Zielblockes verwendet werden kann - und ein S3-VPC-Endpunkt zusätzlichen Richtlinienanweisungen unterliegen kann Einschränkung des Eimerzugangs von innen nach Wunsch.

2. Wie in der Dokumentation erwähnt, wird hier tatsächlich die Übersetzung von Port- und Netzwerkadressen erörtert. Es ist üblich, wenn auch technisch etwas ungenau, die kombinierte Operation als "NAT" zu bezeichnen. Dies ähnelt in gewisser Weise der Art und Weise, wie viele von uns "SSL" sagen, wenn wir tatsächlich "TLS" meinen. Wir wissen, wovon wir sprechen, aber wir verwenden nicht das richtigste Wort, um es zu beschreiben. "Hinweis Wir verwenden den Begriff NAT in dieser Dokumentation, um der gängigen IT-Praxis zu folgen, obwohl die eigentliche Rolle eines NAT-Geräts sowohl die Adressübersetzung als auch die Portadressübersetzung (PAT) ist."

Michael - sqlbot
quelle
16
Detaillierte Antwort, aber ich frage mich immer noch. Was ist der Vorteil eines Servers in einem privaten Subnetz mit einer NAT-Instanz und eines öffentlichen Server-Subnetzes mit einer strengen Sicherheitsrichtlinie?
Abhillman
13
@abhillman es geht nicht wirklich um einen Vorteil. Es geht darum, wie das Networking in VPC funktioniert. Alle Instanzen in einem bestimmten Subnetz müssen dasselbe Standard-Gateway verwenden, das entweder das virtuelle Objekt "Internet-Gateway" ist, das kein NAT ausführt, oder eine NAT-Instanz, die kein NAT ausführt . Sofern nicht alle Ihre Computer öffentliche IP-Adressen haben oder keine von ihnen, möchten Sie beide Arten von Subnetzen. Wenn alles ein mit dem Internet verbundener Webserver ist, benötigen Sie möglicherweise nur ein öffentliches Subnetz, und bei korrekter Sicherheitskonfiguration gibt es keinen Nachteil.
Michael - sqlbot
1
Tatsächlich ist es jetzt möglich, über VPC aws.amazon.com/blogs/aws/new-vpc-endpoint-for-amazon-s3 auf einige AWS-Ressourcen wie S3 zuzugreifen .
Avloss
2
@avloss danke, dass Sie mich auf diesen Punkt und seine Relevanz für diese Antwort aufmerksam gemacht haben. Es ist fast zwei Jahre ohne viel Bearbeitung vergangen und Sie haben Recht - die Dinge entwickeln sich weiter. Ich werde dies aktualisieren, um VPC-Endpunkte zu erwähnen.
Michael - sqlbot
4
@VirtualJasper sollten Sie nicht wollen alle öffentlichen Adressen verwenden. Die Verwendung privater IPv4-Adressen ist nach Möglichkeit eine bewährte Methode. Es reduziert Ihre Angriffsfläche. Es gibt eine bessere Ausgangskontrolle. Der IPv4-Adressraum ist knapp und es wird immer ethischer, mehr von dieser Ressource zu verbrauchen, als Sie benötigen. Es erscheint außerdem logisch, dass AWS-Support irgendwann Fragen stellt, wenn Sie ihn weiterhin um Unterstützung für die zulässige Anzahl von Adressen bitten. VPC wurde entwickelt, um auf diese Weise zu funktionieren. Können Sie das System bocken und alle öffentlichen IPs verwenden? Ja. Ist es eine gute Idee? Nein.
Michael - sqlbot
27

Ich würde ein anderes "privates" Subnetz und NAT-Instanzen / Gateways vorschlagen. Sie sind nicht notwendig. Wenn Sie nicht möchten, dass der Computer über das Internet erreichbar ist, ordnen Sie ihn nicht einer Sicherheitsgruppe zu, die einen solchen Zugriff ermöglicht.

Durch das Löschen der NAT-Instanz / des NAT-Gateways eliminieren Sie die laufenden Kosten der Instanz / des Gateways und das Tempolimit (250 MBit oder 10 GBit).

Wenn Sie einen Computer haben, der auch nicht direkt auf das Internet zugreifen muss (und ich würde fragen, wie Sie ihn patchen *), weisen Sie auf keinen Fall eine öffentliche IP-Adresse zu.

* Wenn die Antwort hier eine Art Proxy ist, entsteht ein Overhead, aber jeder für sich.

Phil
quelle
5
Ich konnte nicht mehr zustimmen. Je mehr ich mit den Fragen arbeite, desto weniger Nutzen sehe ich für private Subnetze. Es fühlt sich eher wie ein Relikt an, wie On-Premise-Netzwerke früher ausgesehen haben und dass ihre Existenz hauptsächlich in der Vertrautheit liegt. Ich bin mir sicher, dass es Randfälle gibt, in denen sie möglicherweise noch gültig sind, aber im Allgemeinen sage ich, verwenden Sie sie nicht. Die Tatsache, dass die oberste (und sehr lange) Antwort auf diese Frage die eigentliche Frage nicht anspricht, ist ein Hinweis auf ihre Redundanz.
Carl
1
Ich stimme der Theorie hier voll und ganz zu, aber in der Praxis habe ich festgestellt, dass AWS Sie standardmäßig auf 20 EIPs pro Region beschränkt, und ich bin skeptisch, dass sie bereit wären, diese Grenze zu erhöhen, um Hunderte von öffentlichen IPv4-Adressen zuzulassen. Sie sind knappe Ressourcen im Internet.
Nic
1
@Nic Du brauchst keine EIPs, denk dran, hier geht es darum, NAT loszuwerden - es ist uns egal, wie die öffentliche IP einer gesichtslosen Maschine lautet, und es ist uns egal, ob sie sich ändert.
Phil
1
Heute hat AWS IPv6 weltweit veröffentlicht. Lass IPv4 sterben. :-)
Phil
3
Das Löschen privater Subnetze setzt von Natur aus voraus, dass niemals Fehler auftreten. Da sich Dutzende von Instanzen und Hunderte von Sicherheitsregeln kreuzen und mehrere Mitarbeiter an der Wartung beteiligt sind, kann die Möglichkeit nicht übersehen werden, dass jemand versehentlich einen Port für die Welt öffnet. Eine defensive Haltung, die den öffentlichen Zugang von Natur aus auf die wenigen Instanzen beschränkt, die ihn benötigen, ist ein besserer Sicherheitsansatz. Für diejenigen von euch, die unfehlbar sind, rockt weiter. Für den Rest von uns Sterblichen ist es keine so schreckliche Idee, auf der Seite der Vorsicht zu irren.
Jim Walker
23

Ich habe nicht den Ruf, Michaels Antwort oben einen Kommentar hinzuzufügen, daher füge ich meinen Kommentar als Antwort hinzu.

Es ist erwähnenswert, dass das von AWS verwaltete Gateway im Vergleich zum Ausführen einer eigenen Instanz etwa dreimal so teuer ist wie bisher. Dies setzt natürlich voraus, dass Sie nur eine NAT-Instanz benötigen (dh Sie haben nicht mehrere NAT-Instanzen für das Failover usw. konfiguriert), was im Allgemeinen für die meisten kleinen bis mittleren Anwendungsfallszenarien gilt. Unter der Annahme einer monatlichen Datenübertragung von 100 GB über das NAT-Gateway,

Monatliche Kosten für verwaltete NAT-Instanzen = 33,48 USD / Monat (0,045 USD / Stunde * 744 Stunden pro Monat) + 4,50 USD (0,045 USD pro verarbeitete GB-Daten * 100 GB) + 10 USD (0,10 USD / GB Standard-AWS-Datenübertragungsgebühren für alle über die NAT-Gateway) = 47,98 USD

Als NAT-Instanz konfigurierte t2.nano-Instanz = 4,84 USD / Monat (0,0065 USD * 744 Stunden pro Monat) + 10 USD (0,10 USD / GB Standard-AWS-Datenübertragungsgebühren für alle über die NAT-Instanz übertragenen Daten) = 14,84 USD

Dies ändert sich natürlich, wenn Sie sich für redundante NAT-Instanzen entscheiden, da das von AWS verwaltete NAT-Gateway über eine integrierte Redundanz für hohe Verfügbarkeit verfügt. Wenn Sie sich nicht für die zusätzlichen 33 US-Dollar pro Monat interessieren, ist die verwaltete NAT-Instanz definitiv den reduzierten Aufwand wert, keine weitere Instanz warten zu müssen. Wenn Sie eine VPN-Instanz (z. B. OpenVPN) für den Zugriff auf Ihre Instanzen innerhalb der VPC ausführen, können Sie diese Instanz einfach so konfigurieren, dass sie auch als NAT-Gateway fungiert, und dann müssen Sie keine zusätzliche Instanz nur für NAT verwalten ( obwohl einige Leute die Idee, VPN und NAT zu kombinieren, missbilligen mögen).

Jim Walker
quelle
4
Einverstanden - mit der t2.nano-Instanz sehen Sie jedoch einen maximalen Durchsatz von vielleicht 250 Mbit / s, verglichen mit dem schreienden Peak von 10 Gbit / s vom NAT-Gateway. Versteh mich nicht falsch, ich finde die Preise auch etwas hoch und es gibt andere Einschränkungen - ich verwende immer noch praktisch überall NAT-Instanzen ... aber fairerweise zahlen Sie teilweise dafür einige ziemlich ernsthafte Rohpaketvermittlungsleistung und Netzwerkkonnektivität mit dem Gateway.
Michael - sqlbot
1
Aber warum ist NAT Gateway so teuer? Benötigt es viele Computerressourcen, um Adressen zu übersetzen? Ich kann verstehen, dass NAT für wirklich große Anwendungen viele Anfragen aus VPC herausstellen kann, aber wenn wir über übliche mittelständische und kleine Projekte sprechen, werden 0,045 USD pro Stunde und jedes GB ziemlich überschätzt.
Sergey Cherepanov
15

Die Antwort von Michael - sqlbot geht implizit davon aus, dass private IP-Adressen erforderlich sind. Ich denke, es lohnt sich, diese Annahme in Frage zu stellen - müssen wir überhaupt private IP-Adressen verwenden? Mindestens ein Kommentator stellte dieselbe Frage.

Was ist der Vorteil eines Servers in einem privaten Subnetz mit einer NAT-Instanz [gegenüber] einem Server [in einem] öffentlichen Subnetz mit einer strengen Sicherheitsrichtlinie? - Abhillman 24. Juni 14 um 23:45 Uhr

Stellen Sie sich ein Szenario vor, in dem Sie eine VPC verwenden und allen Ihren EC2-Instanzen öffentliche IP-Adressen zuweisen. Keine Sorge, das bedeutet nicht, dass sie unbedingt über das Internet erreichbar sind, da Sie Sicherheitsgruppen verwenden, um den Zugriff genauso einzuschränken, wie es mit EC2 classic funktioniert hat. Durch die Verwendung öffentlicher IP-Adressen haben Sie den Vorteil, dass Sie bestimmte Dienste problemlos einer begrenzten Zielgruppe zugänglich machen können, ohne eine ELB verwenden zu müssen. Dies befreit Sie von der Notwendigkeit, eine NAT-Instanz oder ein NAT-Gateway einzurichten. Und da Sie halb so viele Subnetze benötigen, können Sie eine kleinere CIDR-Zuordnung für Ihre VPC verwenden oder größere Subnetze mit der gleichen VPC-Größe erstellen. Und weniger Subnetze bedeuten, dass Sie auch für Inter-AZ-Verkehr weniger bezahlen.

Warum machen wir das nicht? Warum ist laut AWS die beste Vorgehensweise die Verwendung privater IPs?

Amazon Web Services verfügt nur über ein begrenztes Angebot an öffentlichen IPv4-Adressen, da das Internet insgesamt nur über ein begrenztes Angebot an öffentlichen IPv4-Adressen verfügt. Es liegt in ihrem besten Interesse, dass Sie private IP-Adressen verwenden, die praktisch unbegrenzt sind, anstatt übermäßig knappe öffentliche IPv4-Adressen zu verbrauchen. Sie können einige Beweise dafür darin sehen, wie AWS elastische IPs bewertet; Eine an eine Instanz angehängte EIP ist kostenlos, eine nicht verwendete EIP kostet jedoch Geld.

Nehmen wir jedoch an, dass uns der Mangel an öffentlichen IPv4-Adressen im Internet egal ist. Immerhin ist meine Bewerbung etwas Besonderes. Was passiert als nächstes?

Es gibt nur zwei Möglichkeiten, eine öffentliche IP-Adresse an eine EC2-Instanz in einer VPC anzuhängen.

1. Öffentliche IP-Adresse zuordnen

Sie können beim Starten einer neuen EC2-Instanz eine öffentliche IP-Adresse anfordern. Diese Option wird in der Konsole als Kontrollkästchen, bei Verwendung von aws-cli als Flag --associate-public-ip-address und bei Verwendung von CloudFormation als Flag AssociatePublicIpAddress für ein eingebettetes Netzwerkschnittstellenobjekt angezeigt. In jedem Fall wird die öffentliche IP-Adresse zugewiesen eth0(DeviceIndex = 0). Sie können diesen Ansatz nur verwenden, wenn Sie eine neue Instanz starten. Dies bringt jedoch einige Nachteile mit sich.

Ein Nachteil besteht darin, dass das Ändern der Sicherheitsgruppe einer Instanz, die ein eingebettetes Netzwerkschnittstellenobjekt verwendet, das sofortige Ersetzen der Instanz erzwingt, zumindest wenn Sie CloudFormation verwenden.

Ein weiterer Nachteil ist, dass eine auf diese Weise zugewiesene öffentliche IP-Adresse beim Stoppen der Instanz verloren geht.

2. Elastische IP

Im Allgemeinen sind elastische IPs der bevorzugte Ansatz, da sie sicherer sind. Es wird garantiert, dass Sie weiterhin dieselbe IP-Adresse verwenden, Sie riskieren nicht, versehentlich EC2-Instanzen zu löschen, Sie können jederzeit eine elastische IP frei anhängen / trennen und Sie haben die Freiheit, Sicherheitsgruppen zu ändern, die auf Ihre EC2-Instanzen angewendet werden.

... Aber AWS beschränkt Sie auf 5 EIPs pro Region. Sie können mehr anfordern, und Ihre Anfrage wird möglicherweise gewährt. Aber AWS könnte diese Anfrage genauso wahrscheinlich ablehnen, basierend auf den oben erwähnten Überlegungen. Sie möchten sich also wahrscheinlich nicht auf EIPs verlassen, wenn Sie planen, Ihre Infrastruktur jemals über 5 EC2-Instanzen pro Region hinaus zu skalieren.

Zusammenfassend lässt sich sagen, dass die Verwendung öffentlicher IP-Adressen einige Vorteile mit sich bringt. Wenn Sie jedoch versuchen, ausschließlich öffentliche IP-Adressen zu verwenden, treten Verwaltungs- oder Skalierungsprobleme auf. Hoffentlich hilft dies zu veranschaulichen und zu erklären, warum die Best Practices so sind, wie sie sind.

Nic
quelle
3
Das Standardlimit für EIPs beträgt 5 pro Region und nicht 20. "Schließlich ist meine Anwendung etwas Besonderes." Dieser Satz verdient eine eigene Gegenstimme.
Michael - sqlbot
4
Woher kommt die Idee, dass Sie die Sicherheitsgruppen für einen Computer mit einer öffentlichen IP-Adresse, die keine EIP ist, nicht im laufenden Betrieb ändern können? Es ist einfach nicht wahr!
Phil
1
@Phil Richtig. Diese Aussage ist falsch. Wenn Sie sagen, dass Sie die Sicherheitsgruppe einer Instanz, an die eine öffentliche IP-Adresse angehängt ist, nicht ändern können, wird seine gesamte Antwort ungültig. Ich weiß, dass es etwas hart sein mag, aber wie können Sie Leser mit falschen Aussagen irreführen, die den Kern Ihres Beitrags ausmachen? Wie auch immer, ich stimme Nic zu, dass Sie private Subnetze loswerden und nur öffentliche mit einem geeigneten Firewall-Setup verwenden können
Geo C.
1
Ich habe jetzt die falschen Aussagen darüber entfernt, dass die Sicherheitsgruppe nicht geändert werden kann.
JP
Einige dieser Aussagen sind noch da;)
Tim Malone