Sprawdzone metody AWS

W tej sekcji podsumowujemy nasze sprawdzone metody i przedstawiamy zalecenia dotyczące korzystania z OPDK w chmurze AWS.

Cassandra jest używana jako backend i magazyn danych dla prawie wszystkich zasad i jest kluczową częścią środowiska wykonawczego Apigee Edge. Ten dokument dotyczy optymalizacji Cassandry pod kątem środowiska AWS.

Wymagania dotyczące miejsca na dane i operacji wejścia/wyjścia

Większość operacji wejścia/wyjścia w systemie Cassandra jest sekwencyjna, ale w niektórych przypadkach wymagane są operacje losowe. Przykładem jest odczytywanie posortowanych tabel ciągów znaków podczas operacji odczytu. SSD jest zalecanym mechanizmem przechowywania danych w przypadku Cassandry, ponieważ zapewnia bardzo krótki czas odpowiedzi na losowe operacje odczytu, a jednocześnie wystarczającą wydajność zapisu sekwencyjnego na potrzeby operacji kompaktowania. W tym przypadku uwzględniana jest też replikacja.

Wiele instancji w AWS EC2 ma pamięć lokalną, w której dysk twardy jest fizycznie podłączony do sprzętu, na którym hostowana jest instancja EC2. Apigee zaleca korzystanie zarówno z dysków SSD, jak i magazynów instancji podczas uruchamiania Cassandry w środowisku produkcyjnym. Jeśli używasz typu instancji z więcej niż 1 dyskiem SSD, możesz użyć RAID0, aby uzyskać większą przepustowość i pojemność pamięci.

Wymagania związane z siecią

Cassandra używa protokołu Gossip do wymiany informacji o topologii sieci z innymi węzłami. Korzystanie z protokołu Gossip oraz rozproszony charakter bazy Cassandra, który wymaga komunikacji z wieloma węzłami w celu wykonywania operacji odczytu i zapisu, powodują, że przez sieć przesyłanych jest wiele danych. Apigee zaleca używanie typu instancji o przepustowości sieci co najmniej 1 Gb/s i większej niż 1 Gb/s w przypadku systemów produkcyjnych.

Użyj VPC z CIDR /16. Podsieci w AWS nie mogą obejmować więcej niż 1 strefy dostępności, dlatego Apigee zaleca:

  • Utwórz 1 podsieć na strefę dostępności.
  • Użyj 3 podsieci prywatnych na potrzeby instalacji Apigee, z 1 węzłem Cassandra w każdej strefie dostępności. Te 3 podsieci powinny mieć wystarczającą liczbę bloków CIDR, aby umożliwić poziome rozszerzanie klastra Cassandra.
  • Skonfiguruj 3 podsieci publiczne z dedykowanym NAT, aby Cassandra mogła łączyć się z internetem w celu pobierania oprogramowania i aktualizacji zabezpieczeń.

W przeciwieństwie do starszych architektur typu master-slave Cassandra ma architekturę bez węzła nadrzędnego, w której wszystkie węzły odgrywają identyczną rolę, więc nie ma pojedynczego punktu awarii. Aby zapewnić wysoką dostępność, rozważ rozłożenie węzłów Cassandra na wiele stref dostępności. Rozmieszczając węzły w różnych strefach dostępności, możesz zachować dostępność i czas działania w przypadku awarii.

Wybór rodziny instancji

Jeśli chodzi o wymagania Cassandry dotyczące procesora, warto zauważyć, że zbiory zadań z dużą liczbą operacji wstawiania są w Cassandrze ograniczone przez procesor, zanim zostaną ograniczone przez operacje wejścia/wyjścia. Innymi słowy, wszystkie operacje zapisu trafiają do dziennika zatwierdzeń, ale Cassandra jest tak wydajna w zapisywaniu, że czynnikiem ograniczającym staje się procesor. Cassandra jest wysoce równoległa i wykorzystuje tyle rdzeni procesora, ile jest dostępnych.

Apigee zaleca używanie rodziny instancji, która ma zrównoważone wykorzystanie procesora i pamięci. Zalecamy używanie instancji z rodziny C5, jeśli są dostępne w Twoim regionie AWS, a jako opcji zapasowej – instancji C3. W niektórych przypadkach 4xlarge jest optymalną instancją w obu rodzinach, która zapewnia najlepszy stosunek ceny do wydajności.

Apigee zaleca też używanie domyślnej dzierżawy w przypadku instancji Cassandra. Jeśli ustawisz dzierżawę na dedykowaną, to gdy przeskalujesz do więcej niż 1 instancji na strefę dostępności, najprawdopodobniej wszystkie instancje Cassandra zostaną umieszczone na tym samym sprzęcie. W przypadku awarii sprzętu prawdopodobnie utracisz wszystkie instancje w tej strefie.

Podsumowanie rekomendacji

W tabeli poniżej znajdziesz podsumowanie rekomendacji Apigee dotyczących korzystania z AWS z Apigee Edge dla chmury prywatnej:

Rodzina instancji C5d (preferowane) lub C3
Typ instancji C(x).4xlarge
Magazyn instancji SSD (pamięć lokalna) z RAID0
Typ najmu domyślna
Umieszczenie węzła 1 węzeł Cassandra na strefę dostępności
Sieć VPC i podsieć 1 podsieć na strefę dostępności i 1 sieć VPC na region

Więcej informacji znajdziesz w artykule na temat typów instancji Amazon.