2016-04-19 45 views
7

Używam Web Instancji & DBS w AWS EC2 i chcę, aby były one wysoko dostępne, więc jeśli jeden serwer ulegnie awarii (serwer główny), to drugi jest włączony (serwer pomocniczy) .EC2 Amazon High Availability Always On

Znalazłem wiele informacji dla wysokiej dostępności RDS, ale nie dla instancji EC2, które nie są RDS.

  1. Czy możesz podać mi kilka linków do dobrego przewodnika, jak to zrobić?
  2. Czy mógłbyś powiedzieć mi w kilku słowach, jaki proces powinienem wykonać, aby osiągnąć wysoką dostępność?

Dzięki.

Odpowiedz

1

Pytanie, które należy zadać, brzmi: w jaki sposób mogę ustawić HA aplikacji na AWS, a nie w jaki sposób przygotować EC2 HA. Krótka odpowiedź jest taka, że ​​musisz poinformować AWS o tym, jak najpierw zdefiniujesz i wdrożysz aplikację.

W przypadku RDS, jest bardzo jasne, czym jest aplikacja - jest to serwer bazy danych do wyboru. Najprościej mówiąc, AWS może ustawić instancję HA RDS z domyślnymi ustawieniami bez dużego wkładu od ciebie.

Jednak w przypadku wniosku należy przekazać AWS więcej informacji. Istnieje kilka sposobów, aby to zrobić:

  • utworzyć ELB z grupą instancji EC2 w różnych strefach dostępności
  • stworzenia ELB z auto-scaling group który doprowadzi Cię ścieżką tworzenia AMI i launch configuration ; W tym trybie, można nawet powiedzieć ASG użyć lekarskie ELB aby określić, kiedy wystąpienie EC2 nie jest już zdrowy
  • pan nie wspomniał, co aplikacja jest, ale może chcesz dostać CodeDeploy zaangażowane powiedzieć jak AWS aby wdrożyć najnowszy kod do nowo uruchomionej instancji EC2; CodeDeploy działa dobrze w połączeniu z ELB i ASG
  • zamiast definiować poszczególne komponenty osobno, można je zdefiniować razem w postaci Elastic Beanstalk; to jest determinacja, którą będziesz musiał sam podjąć - czy chcesz większej elastyczności poprzez samodzielne definiowanie poszczególnych komponentów, czy możesz uprościć rzeczy i korzystać z EB?
  • wreszcie, jeśli używasz Döcker i można dockerize aplikacji lub różnych składników tej samej aplikacji, AWS obsługuje EB z multi-container docker

Niezależnie od wybranej trasy zdecydować, AWS CloudFormation szablony są dobrym sposobem, aby związać wszystko razem i zdefiniuj swój stos. Jedną z zalet tego jest to, że gdy chcesz zmienić swój stos, zmienisz szablon CloudFormation, zastosujesz zmianę i pozwolisz AWS dowiedzieć się, jakie są zależności, w jakiej kolejności je zaktualizować i jak.

9

istnieje kilka możliwości osiągnięcia ha EC2:

  • utworzyć grupę AutoScaling MIN pojemności = 1 i maksymalnej wydajności = 1. Tak więc, gdy twoja instancja się nie powiedzie, grupa autoskalowania utworzy nową. Grupa autoskalowania jest dostępna za darmo, więc nie jest to złe rozwiązanie w zależności od umowy SLA.
  • użyj funkcji e2 auto-recovery, tworząc alarm chmury ruchu, który zastąpi instancję, jeśli się nie powiedzie.
  • utworzyć dwie instancje EC2 i użyć przełączania awaryjnego DNS trasy 53, aby rozwiązać problem ze zdrową instancją.
  • Ostatni, ale nie najmniej ważny: najlepszym rozwiązaniem jest na pewno utworzenie kilku instancji w kilku strefach dostępności i użycie elastycznego systemu równoważenia obciążenia w celu dystrybucji ruch drogowy. W ten sposób, nawet jeśli instancja się nie powiedzie, masz już dostępne inne. AWS zaleca to rozwiązanie, ponieważ ma umowę SLA w wysokości 99,95% dla swojej instancji w AZ. Poprzez umieszczenie w kilku AZS można mieć 100% dostępności

EDIT: dodanie informacji, dlaczego nie ma takiego natywna funkcja dla EC2.

nie ma natywnej funkcji HA w EC2 w porównaniu do RDS, ponieważ EC2 jest czystym IaaS, gdy RDS jest bardziej PaaS. Tak więc w przypadku RDS po wybraniu HA, za sceną w rzeczywistości pojawia się baza danych niewolników w innej strefie dostępności i replikuje swojego mastera. Ilekroć master się nie powiedzie, masz automatyczne przełączanie awaryjne DNS do bazy slave, która jest wybrana jako master i tworzona jest nowa baza danych slave.

2

Co powiesz na temat używania Elastic Beanstalk (oficjalna dokumentacja - patrz: here)?

Zasadniczo korzysta z wielu usług AWS przy użyciu konfiguracji szczegółowej here.

Jego głównym celem jest ułatwienie tworzenia kilku zestawów środowisk do uruchamiania aplikacji, przy jednoczesnym monitorowaniu stanu zdrowia i obciążenia aplikacji oraz wywoływaniu instancji w celu dystrybucji obciążenia.

Możliwe jest jednak skonfigurowanie środowiska jako pojedynczej instancji (patrz główna dokumentacja w sekcji Environment Types). Oznacza to, że możesz skorzystać z monitorowania zdrowia, a system AWS zajmie się dostępnością.

Dokładniej, aby odpowiedzieć na pytania: 1) Oficjalne dokumenty AWS są dość szczegółowe i powinny zacząć.Istnieje kilka zasobów wideo wyjaśniających podstawową konfigurację. 2) Można połączyć kilka instancji EBS w różnych regionach, aby utrzymać serwery w pobliżu ruchu.