EC2: czy publiczny DNS instancji jest stabilny? Czy mogę polegać na tym, że się nie zmienia?

41

Uruchomiłem moją pierwszą instancję i używam jej jako serwera WWW. Widzę, że ma publiczny DNS (publiczny adres URL), np .:

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

Mogę z powodzeniem przejść do tego serwera w przeglądarce, uderzyć go za pomocą cURL itp.

Chcę używać tego serwera WWW do obsługi zaplecza w tworzonej przeze mnie aplikacji, więc umieściłem ten adres URL w konfiguracji mojej aplikacji i działa świetnie.

Ale kiedy ręcznie zatrzymuję i ponownie uruchamiam instancję, widzę, że publiczny DNS się zmienia! Czytałem, że dzieje się tak, gdy wyraźnie się zatrzymujesz i uruchamiasz ponownie, ale nie dzieje się tak, jeśli po prostu „uruchomisz ponownie”.

Nie planuję nigdy jawnego zatrzymywania i ponownego uruchamiania tego serwera, ale moje pytanie brzmi: czy ten publiczny DNS kiedykolwiek zmieni się sam z jakiegokolwiek powodu? Np. Jeśli maszyna nienormalnie się zawiesi lub coś takiego.

Innymi słowy, czy bezpiecznie jest wysłać aplikację podłączoną do tego adresu URL?

Aseem Kishore
źródło

Odpowiedzi:

67

Publiczna nazwa DNS zawsze pasuje do publicznego adresu IP.

Publiczny adres IP pozostaje taki sam dla instancji, dopóki nie zostanie zakończony lub zatrzymany. Ponowne uruchomienie nie zmienia publicznego adresu IP.

Jeśli instancja EC2 znajduje się w VPC, wówczas zachowa ten sam publiczny adres IP przez przystanek i start.

Jeśli instancja EC2, która nie znajduje się w VPC, zostanie zatrzymana, a następnie uruchomiona ponownie, prawdopodobnie otrzyma inny publiczny adres IP.

Instancje mogą zawieść. Po uruchomieniu nowej instancji w celu zastąpienia nieudanej lub zakończonej instancji prawdopodobnie otrzyma ona inny publiczny adres IP.

Ponieważ instancje mogą zawieść, a ponieważ możesz chcieć zmienić rozmiar instancji (z zatrzymaniem / uruchomieniem), nie jest zalecane „wysyłanie aplikacji, która jest połączona przewodowo z [publicznym adresem IP]” (lub nazwą DNS). Gdy Twoja instancja zostanie zatrzymana / zakończona / nie powiedzie się, inny użytkownik może otrzymać ten adres IP przypisany do swojej instancji i cały Twój ruch będzie do nich kierowany.

Zaleca się stosowanie elastycznych adresów IP do kojarzenia usług publicznych z instancją. Możesz zachować Elastyczny adres IP i możesz przypisać go do dowolnego wystąpienia, które chcesz z czasem, nawet jeśli jest to to samo wystąpienie po zatrzymaniu / uruchomieniu.

Każdy elastyczny adres IP ma publiczną nazwę DNS, ale prawdopodobnie lepiej byłoby zmapować własną nazwę hosta na elastyczny adres IP, aby ta nazwa była bardziej sensowna dla ludzi.

Oto przewodnik po elastycznych adresach IP:

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

Oto artykuł, który napisałem, który mówi o różnicach między ponownym uruchomieniem komputera a zatrzymaniem / uruchomieniem instancji:

Ponowne uruchamianie vs. Stop / Start wystąpienia Amazon EC2
http://alestic.com/2011/09/ec2-reboot-stop-start

Oto artykuł, który napisałem, który podaje powód, dla którego możesz chcieć zatrzymać / założyć instancję, nawet jeśli nie uważasz, że dzisiaj:

Przenoszenie instancji EC2 do większego rozmiaru
http://alestic.com/2011/02/ec2-change-type

Eric Hammond
źródło
Cóż, według informacji zrestartowałem moją instancję ec2 i właśnie odkryłem, że publiczne dns zmieniły się na nowy ip. Może instancja uległa awarii między nimi, ale nie jestem tego pewien.
Nicolas Manzini,
Amazon zaleca jedynie stosowanie elastycznych adresów IP do równoważenia obciążenia. Więc jeśli masz prywatną usługę w instancji ec2, musisz ręcznie zaktualizować ips. docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Jesse
@Jesse ELB (Elastic Load Balancers) nie używają elastycznych adresów IP. W rzeczywistości ELB cały czas zmieniają adresy IP i nie mogą być w ogóle trwałe. Elastyczne adresy IP są stosowane do instancji EC2, a więc dokładnie to, co jest potrzebne do pierwotnego pytania.
Eric Hammond