Jeśli zamknę instancję Amazon EC2, a następnie uruchomię ją ponownie, czy wszystko będzie w porządku?

12

Mam witrynę internetową, która działa na instancji Amazon EC2 Linux i jest odwzorowana na zwykłą nazwę domeny (x.com). Ta strona komunikuje się z bazą danych na drugiej instancji EC2.

Muszę zamknąć tę instancję i zwiększyć moc obliczeniową ... jeśli to zrobię, ile czasu to zajmie, a następnie, kiedy ponownie uruchomię komputer, czy moja witryna ponownie wróci do trybu online? Czy adres IP, informacje DNS itp. Zostaną zachowane, aby nazwa domeny nadal działała i nadal będzie mogła rozmawiać z bazą danych?

Do zobaczenia to, co obecnie widzę dla serwera internetowego w panelu informacyjnym AWS EC2 (dokładne adresy IP zmieniły się nieznacznie, ale masz pomysł):

Public DNS: ec2-54-1-1-1.us-west-1.compute.amazonaws.com
Private DNS: ip-10-1-1-1.us-west-1.compute.internal
Private IPs: 10.1.1.1
Eric
źródło

Odpowiedzi:

13

Zatrzymanie i uruchomienie instancji rozruchowej EBS jest bardzo podobne do ponownego uruchomienia instancji z kilkoma wyjątkami, z których najbardziej godnym uwagi jest:

  1. Instancji przypisano nowy wewnętrzny adres IP.

  2. Instancji przypisano nowy publiczny adres IP.

  3. Jeśli instancja nie znajduje się w VPC, wówczas dowolny elastyczny adres IP jest odłączony od instancji.

  4. Wszystkie dane dotyczące przechowywania efemerycznego (często poniżej / mnt) zostaną utracone

Istnieją również implikacje dotyczące rozliczeń i dostępności, które opisałem w tym artykule:

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

Instancje VPC mają nieco inne zachowanie, w tym zachowanie elastycznych adresów IP przez stop / start.

Jeśli używasz instancji jako serwera bazy danych i chcesz się z nią połączyć za pomocą wewnętrznego adresu IP (taniej, szybciej) i nie chcesz ponownie konfigurować klientów bazy danych po zatrzymaniu / uruchomieniu, możesz przypisać elastyczny adres IP do instancji i użyj zewnętrznej nazwy elastycznego adresu IP DNS. Spowoduje to przejście do bieżącego wewnętrznego adresu IP po ponownym powiązaniu elastycznego adresu IP ze zrestartowanym wystąpieniem, a Twoi klienci przejdą tam, gdzie przerwali.

Bardziej szczegółowo omawiam to podejście w tym artykule:

Używanie elastycznego adresu IP do identyfikowania instancji wewnętrznych w Amazon EC2
http://alestic.com/2009/06/ec2-elastic-ip-internal

Jak brzmi, jak się spodziewałeś, stop / start jest łatwym sposobem na zmianę sprzętu zasilającego instancję. Napisałem o tym wraz z kilkoma instrukcjami i ostrzeżeniami w tym artykule:

Przenoszenie instancji EC2 do większej (lub mniejszej) instancji Typ
http://alestic.com/2011/02/ec2-change-type

W konkretnej sytuacji zalecam przypisanie elastycznego adresu IP do instancji i zmianę DNS, aby wskazywał na elastyczny adres IP za pomocą CNAME na zewnętrzną nazwę DNS. Możesz to zrobić zaraz po zatrzymaniu / uruchomieniu lub możesz to zrobić wcześniej, upewniając się, że wszystko działa przed zatrzymaniem / uruchomieniem.

Eric Hammond
źródło
Czy to nadal jest dokładne? Rozmawiałem dziś rano z obsługą AWS i powiedzieli, że elastyczne IP nie jest rozłączane po zatrzymaniu instancji. Ponadto nigdy nie widziałem, aby nasze wewnętrzne adresy IP zmieniały się podczas zatrzymywania i uruchamiania instancji.
bshacklett,
@bsacklett Ta odpowiedź była nieco nieaktualna. Zaktualizowałem go, aby wyjaśnić, że tylko instancje inne niż VPC tracą elastyczny adres IP. Obecnie większość przypadków to rzeczywiście VPC.
Eric Hammond,
4

Wygląda na to, że nie używasz elastycznego adresu IP, co widzę na podstawie twoich informacji.

Uważam, że musisz używać CNAME w DNS, aby wskazać to wystąpienie. Po ponownym uruchomieniu komputera ta ec2-54-1-1-1.us-west-1.compute.amazonaws.comnazwa DNS zmieni się, a witryna przestanie działać.

Jeśli chodzi o wewnętrzne IP, to również się zmieni, chyba że używasz VPC, co nie jest.

Tak więc, gdybym był tobą, będę bardzo ostrożny przy ponownym uruchomieniu tej maszyny.

Jeśli chodzi o czas, nie zajmie to więcej niż kilka minut.

Ponadto, jeśli masz instancję iptables działającą w instancji DB, która pozwala tylko temu wewnętrznemu IP połączyć się z DB, to również nie będzie działać, ponieważ twój wewnętrzny IP się zmieni.

Zachowaj ostrożność, jeśli chcesz ponownie uruchomić to wystąpienie, i przemyśl to dobrze.

Napster_X
źródło
2

Wewnętrzny adres IP / nazwa hosta ulegnie zmianie, a elastyczny adres IP się odłączy (chyba że jesteś w VPC).

Ponownie podłącz elastyczny adres IP po zrestartowaniu instancji. Regularnie to robię, aby zmieniać rozmiary instancji, a ty patrzysz tylko na kilka minut przestoju.

Sprawdź Apache i wszelkie inne usługi są ustawione na uruchomienie ( chkconfigjeśli korzystasz z amazona linux ami).

Jason Floyd
źródło
1

O ile pamiętam, zatrzymanie zmiany typu systemu i jego ponowne uruchomienie nie powinno zająć więcej niż 5-10 minut (nie jest powiedziane, że jest to system wspierany przez EBS). Aby usługi uruchomiły się po powrocie systemu, upewnij się, że masz włączone wszystkie usługi do ponownego uruchomienia (tak jak w przypadku lalek na moim Ubuntu 12.04, mam włączone w / etc / default / puppet). Zanotuj adres IP (zrobiłem to dawno temu, więc nie pamiętam wyraźnie) i co najwyżej twoje IP może zostać odłączone od systemu, ale nadal będzie tam na twoim koncie, więc przejdź do sekcji Elastyczne IP i skojarz je ponownie z zrestartowałem system i wszystko będzie dobrze.

APZ
źródło
1

Jak już wspomniano, jeśli masz elastyczny adres IP, zostanie on ponownie dołączony do instancji, więc nie musisz dotykać ustawień DNS. Tak czy inaczej twój prywatny adres IP ulegnie zmianie. To prawdopodobnie oznacza, że ​​będziesz musiał zaktualizować ustawienia GRANT w mysql. Bo nie tylko GRANT ALL PRIVILEGES ON *.* to 'somedude'@'%'… prawda? ;)

chrskly
źródło