EC2: Ist das öffentliche DNS einer Instanz stabil? Kann ich mich darauf verlassen, dass sich nichts ändert?

41

Ich habe meine erste Instanz gestartet und verwende sie als Webserver. Ich sehe, dass es einen öffentlichen DNS (eine öffentliche URL) hat, zB:

ec2-123-45-6-789.compute-1.amazonaws.com

Ich kann in meinem Browser erfolgreich auf diesen Server zugreifen und ihn über cURL usw. aufrufen.

Ich möchte diesen Webserver für einen Back-End-Service in einer App verwenden, die ich erstelle. Daher habe ich diese URL in die Konfiguration meiner App eingefügt und sie funktioniert hervorragend.

Aber wenn ich meine Instanz manuell stoppe und neu starte, sehe ich, dass sich das öffentliche DNS ändert! Ich habe gelesen, dass dies passiert, wenn Sie explizit anhalten und neu starten, aber nicht, wenn Sie nur "neu starten".

Ich habe nicht vor, diesen Server explizit anzuhalten und neu zu starten, aber meine Frage ist: Wird sich dieser öffentliche DNS jemals aus irgendeinem Grund von selbst ändern? ZB wenn die Maschine abnormal abstürzt oder was auch immer.

Mit anderen Worten, ist es sicher, eine App zu versenden, die mit dieser URL verbunden ist?

Aseem Kishore
quelle

Antworten:

67

Der öffentliche DNS-Name stimmt immer mit der öffentlichen IP-Adresse überein.

Die öffentliche IP-Adresse bleibt für eine Instanz unverändert, bis sie beendet oder gestoppt wird. Ein Neustart ändert die öffentliche IP-Adresse nicht.

Befindet sich eine EC2-Instanz in einer VPC, behält diese beim Beenden und Starten dieselbe öffentliche IP-Adresse bei.

Wenn eine EC2-Instanz, die sich nicht in einer VPC befindet, gestoppt und dann erneut gestartet wird, erhält sie wahrscheinlich eine andere öffentliche IP-Adresse.

Instanzen können fehlschlagen. Wenn Sie eine neue Instanz starten, um eine ausgefallene oder abgebrochene Instanz zu ersetzen, erhält diese möglicherweise eine andere öffentliche IP-Adresse.

Da Instanzen fehlschlagen können und Sie möglicherweise die Größe einer Instanz (mit Stopp / Start) ändern möchten, wird nicht empfohlen, eine App zu versenden, die mit [der öffentlichen IP-Adresse] (oder dem DNS-Namen) verbunden ist. Sobald Ihre Instanz gestoppt / beendet / fehlgeschlagen ist, könnte ein anderer Benutzer diese IP-Adresse seiner Instanz zuweisen, und der gesamte Datenverkehr würde an ihn weitergeleitet.

Es wird empfohlen, elastische IP-Adressen zu verwenden, um öffentliche Dienste mit Ihrer Instanz zu verknüpfen. Sie behalten die elastische IP-Adresse und können sie im Laufe der Zeit jeder gewünschten Instanz zuweisen, auch wenn es sich nach einem Stopp / Start um dieselbe Instanz handelt.

Jede elastische IP-Adresse wird mit einem öffentlichen DNS-Namen geliefert. Sie sollten jedoch Ihren eigenen Hostnamen der elastischen IP-Adresse zuordnen, damit der Name für den Menschen sinnvoller ist.

Hier ist eine Anleitung zu elastischen IP-Adressen:

http://aws.amazon.com/articles/1346

Hier ist ein Artikel, den ich geschrieben habe und der die Unterschiede zwischen Neustart und Stopp / Start einer Instanz beschreibt:

Neustart vs. Stopp / Start der Amazon EC2-Instanz
http://alestic.com/2011/09/ec2-reboot-stop-start

In diesem Artikel habe ich einen Grund angegeben, warum Sie eine Instanz möglicherweise stoppen / starten möchten, obwohl Sie nicht glauben, dass dies heute der Fall ist:

Verschieben einer EC2-Instanz auf eine größere Größe
http://alestic.com/2011/02/ec2-change-type

Eric Hammond
quelle
Nun, per Info, ich habe meine ec2-Instanz neu gestartet und festgestellt, dass die öffentliche DNS auf eine neue IP geändert wurde. Vielleicht ist die Instanz dazwischen abgestürzt, aber ich bin mir nicht sicher.
Nicolas Manzini
Amazon empfiehlt nur, dass elastische IPs für Load Balancer verwendet werden. Wenn Sie also einen privaten Dienst auf einer ec2-Instanz haben, müssen Sie die IPS manuell aktualisieren. docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Jesse
@ Jesse ELBs (Elastic Load Balancers) verwenden keine elastischen IP-Adressen. Tatsächlich ändern ELBs die IP-Adressen ständig und können überhaupt nicht permanent gemacht werden. Elastische IPs werden auf EC2-Instanzen angewendet und sind genau das, was für die ursprüngliche Frage benötigt wird.
Eric Hammond