W tej sekcji podsumowujemy nasze sprawdzone metody i przedstawiamy zalecenia dotyczące używania OPDK w chmurze AWS.
Cassandra jest używana jako backend i magazyn danych dla niemal wszystkich zasad oraz kluczowa część środowiska wykonawczego Apigee Edge. Ten dokument dotyczy optymalizacji Casssandra pod kątem środowiska AWS.
Wymagania dotyczące miejsca na dane i I/O
Większość wejścia-wyjścia Cassandra jest sekwencyjna, ale są też sytuacje, w których wymagasz losowego wejścia/wyjścia. Przykładem może być odczytywanie posortowanych tabel ciągów znaków podczas operacji odczytu. Dysk SSD jest zalecanym mechanizmem przechowywania danych w przypadku Cassandra, ponieważ zapewnia bardzo krótki czas oczekiwania na odpowiedzi losowych operacji odczytu, a jednocześnie zapewnia wystarczającą wydajność podczas zapisu sekwencyjnego na potrzeby operacji kompresowania. Pod uwagę brana jest też replikacja.
W AWS EC2 wiele instancji ma pamięć lokalną, w której dysk twardy jest fizycznie podłączony do sprzętu, na którym jest hostowana instancja EC2. Apigee zaleca korzystanie zarówno z magazynów SSD, jak i magazynów instancji podczas uruchamiania Cassandra w środowisku produkcyjnym. Jeśli używasz typu instancji z więcej niż 1 SSD, możesz użyć macierzy RAID0, aby zwiększyć przepustowość i miejsce na dane.
Wymagania związane z siecią
Cassandra wykorzystuje protokół Gossip do wymiany informacji z innymi węzłami o topologii sieci. Wykorzystanie Gossip i rozproszona natura Cassandry, która obejmuje komunikację z wieloma węzłami w celu wykonywania operacji odczytu i zapisu, powoduje duże przesyłanie danych przez sieć. 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 sieci VPC z CIDR /16. Podsieci w AWS nie mogą rozciągać się na więcej niż 1 interfejs Apigee, więc Apigee zaleca następujące działanie:
- Utwórz 1 podsieć na strefę dostępności (AZ)
- Użyj 3 prywatnych podsieci na potrzeby instalacji Apigee, z 1 węzłem Cassandra w każdym AZ. Te 3 podsieci powinny mieć wystarczającą liczbę bloków CIDR, aby obsłużyć poziome rozwinięcie klastra Cassandra.
- Skonfiguruj 3 podsieci publiczne z dedykowanym NAT dla Cassandra, aby mieć możliwość komunikacji z internetem w celu pobierania oprogramowania i aktualizacji zabezpieczeń.
Inaczej niż w starszych architekturach master-slave, Cassandra oferuje architekturę pozbawioną masterów, w której wszystkie węzły odgrywają identyczną rolę, więc nie ma jednego punktu awarii. Rozważ rozłożenie węzłów Cassandra na wiele interfejsów AZ, aby umożliwić wysoką dostępność. Rozmieszczając węzły między AZ, nadal możesz utrzymać dostępność i dostępność w przypadku katastrofy.
Wybieranie rodziny instancji
Patrząc na wymagania dotyczące procesora Cassandra, warto pamiętać, że zadania o dużej ilości danych są powiązane z procesorem w systemie Cassandra, zanim zostaną powiązane z IO. Innymi słowy, wszystkie operacje zapisu trafiają do logu zobowiązania, ale Cassandra działa tak wydajnie, że czynnikiem ograniczającym staje się procesor. System Cassandra jest wysoce równoczesny i wykorzystuje jak najwięcej rdzeni procesora.
Apigee zaleca użycie rodziny instancji, która zapewnia równowagę między procesorami i pamięcią. W szczególności zalecamy używanie instancji z rodziny C5, jeśli są dostępne w regionie AWS, oraz instancji C3 jako opcji zastępczej. W niektórych przypadkach instancja 4xlarge jest optymalną instancją w obu rodzinach, która oferuje najlepszą cenę/wydajność.
Apigee zaleca też użycie domyślnego najemcy dla instancji Cassandra. Jeśli skalujesz do więcej niż 1 instancji na AZ, najprawdopodobniej wszystkie instancje Cassandra zostaną umieszczone na tym samym bazowym sprzęcie, jeśli ustawisz najemcę jako dedykowany. W przypadku awarii sprzętu prawdopodobnie stracisz wszystkie instancje w tym AZ.
Podsumowanie rekomendacji
W tabeli poniżej znajdziesz zalecenia Apigee dotyczące używania AWS z Apigee Edge dla Private Cloud:
Rodzina instancji | C5d (preferowane) lub C3 |
Typ instancji | C(x).4xlarge |
Magazyn instancji | SSD (pamięć lokalna) z RAID0 |
Typ najemcy | domyślnie |
Umiejscowienie węzła | 1 węzeł Cassandra na AZ |
Środowisko VPC i podsieć | 1 podsieć na AZ i 1 sieć VPC na region |
Więcej informacji znajdziesz w artykule o typach instancji Amazon.