2011-08-24 21 views
5

Ponownie uruchamiam witrynę (~ 5 mm + odwiedziny dziennie) w EC2 i jestem zdezorientowany, jak rozmieścić węzły w różnych centrach danych. Moją podstawową konfiguracją są dwa węzły za serwerem Varnish.Jakie są najlepsze praktyki dotyczące używania stref dostępności EC2?

Czy powinienem mieć dwie instancje Varnish w różnych strefach dostępności, każda z węzłami WWW, które rozmawiają ze wspólną bazą danych RDS? Każda instancja Varnish może być równoważona obciążeniem w module równoważenia obciążenia Amazon.

Coś jak:

1 równoważenia obciążenia rozmowy z:

  • Varnish w Wirginii, który mówi do własnego us-wschód-x węzły
  • Varnish w Kalifornii, który mówi do własnej nas-west-x węzłów

Wdrażanie w wielu centrach danych to dla mnie nowa koncepcja, więc każda pomoc jest doceniana! Dzięki!

Odpowiedz

7

Używamy szeroko amazon EC2 do równoważenia obciążenia i odporności na awarie. Podczas gdy wciąż nie korzystamy w pełni z LoadBalancerów dostarczonych przez Amazon, mamy własne równoważniki obciążenia (działające poza Amazon). Amazon obiecuje, że LoadBalancery nigdy nie przestaną działać, są wewnętrznie odporne na błędy, ale nie testowałem tego wystarczająco dobrze.

Na ogół hostujemy dwie instancje w jednej strefie dostępności. Jeden działający jako serwer dublowany na prawdziwy serwer. Jeśli w przypadku awarii jednego z serwerów wysyłamy klientów do drugiego. Ale ostatnio Amazon pokazał wzór, że jedna strefa dostępności często spada.

Rozsądną techniką, którą zakładam jest ustawienie serwerów w strefach dostępności, o których wspomniałeś. Używamy PostgreSQL, dzięki czemu możemy replikować zawartość w bazie danych we wszystkich instancjach. W wersji 9.0 istnieje replikacja binarna, która działa doskonale w przypadku replikacji dwukierunkowej. W ten sposób oba serwery mogą pobierać obciążenie, gdy są uruchomione, ale kiedy strefa dostępności przestaje działać, wszyscy użytkownicy są wysyłani na jeden serwer. Ponieważ dostępna jest wspólna baza danych, nie ma znaczenia, dokąd użytkownicy się udają. Wystarczy, że doświadczy niewielkiej powolności, jeśli trafią na niewłaściwy serwer.

Dzięki takiemu podejściu można dokonywać aktualizacji tandemowych stron internetowych. Zaktualizuj jeden upewnij się, że działa dobrze, a następnie zaktualizować następny. Więc nawet jeśli serwer nie uaktualnił się, cała strona jest zawsze dostępna.

+0

Jak wysłać klientów do innych serwerów, gdy jedna strefa dostępności ulegnie awarii? – Carson

+0

Nasze niestandardowe moduły równoważenia obciążenia będą co minutę sprawdzać ładowanie z serwerów. Używamy adresów poddomeny do kierowania klientów. Więc jeśli klaster jest wyłączony, wysyłamy im inny URL poddomeny. Moduł równoważenia obciążenia Amazon działa jako warstwa abstrakcji i wewnętrznie trasuje żądanie HTTP do serwera. Sprawdza dostępność co 10 sekund, żądając strony internetowej z serwera. Możesz po prostu wstawić puste.html. Jeśli instancja jest wyłączona, Amazon nie wysyła żadnych żądań do tego serwera. – arunmur

Powiązane problemy