Skonfiguruj usługę Amazon OpenSearch pod kątem wysokiej dostępności | Usługi sieciowe Amazona

Skonfiguruj usługę Amazon OpenSearch pod kątem wysokiej dostępności | Usługi sieciowe Amazona

Węzeł źródłowy: 2691649

Usługa Amazon OpenSearch to w pełni otwarty silnik wyszukiwania i analizy, który bezpiecznie odblokowuje wyszukiwanie, monitorowanie i analizę danych biznesowych i operacyjnych w czasie rzeczywistym w takich przypadkach użycia, jak silniki rekomendacji, witryny e-commerce i przeszukiwanie katalogów. Aby odnieść sukces w swojej firmie, potrzebujesz systemów o wysokiej dostępności i wydajności, minimalizujących przestoje i unikających awarii. Gdy używasz usługi OpenSearch jako głównego środka monitorowania infrastruktury, musisz również zapewnić jej dostępność. Przestój usługi OpenSearch może mieć znaczący wpływ na wyniki biznesowe, takie jak utrata przychodów, utrata produktywności, utrata wartości marki i inne.

Połączenia branżowy standard pomiaru dostępności jest klasą dziewiątek. Usługa OpenSearch zapewnia 3 dziewiątki dostępności, gdy obserwujesz Najlepsze praktyki, co oznacza, że ​​gwarantuje mniej niż 43.83 minuty przestoju w miesiącu. Z tego wpisu dowiesz się, jak skonfigurować domenę usługi OpenSearch pod kątem wysokiej dostępności i wydajności, stosując się do najlepszych praktyk i zaleceń podczas konfigurowania domeny.

Istnieją dwa zasadnicze elementy, które wpływają na dostępność Twojej domeny: wykorzystanie zasobów Twojej domeny, które jest głównie spowodowane obciążeniem pracą, oraz zdarzenia zewnętrzne, takie jak awarie infrastruktury. Chociaż pierwsze można kontrolować poprzez ciągłe monitorowanie wydajności i kondycji domeny oraz odpowiednie skalowanie domeny, to drugie nie. Aby złagodzić wpływ zdarzeń zewnętrznych, takich jak awaria strefy dostępności, awaria instancji lub dysku albo problemy z siecią w domenie, należy zapewnić dodatkową pojemność, rozłożoną na wiele stref dostępności i przechowywać wiele kopii danych. Niezastosowanie się do tego zalecenia może spowodować pogorszenie wydajności, niedostępność, aw najgorszym przypadku utratę danych.

Przyjrzyjmy się dostępnym opcjom, aby upewnić się, że domena jest dostępna i wydajna.

Konfiguracja klastra

W tej sekcji omówimy różne opcje konfiguracji potrzebne do prawidłowego skonfigurowania klastra, w tym określenie liczby AZ dla wdrożenia, skonfigurowanie węzła głównego i węzłów danych, skonfigurowanie indeksów i fragmentów.

Wdrożenie wielu AZ

Węzły danych są odpowiedzialne za przetwarzanie żądań indeksowania i wyszukiwania w Twojej domenie. Wdrażanie węzłów danych w wielu strefach dostępności poprawia dostępność domeny przez dodanie nadmiarowego przechowywania i przetwarzania danych w poszczególnych strefach. Dzięki wdrożeniu Multi-AZ Twoja domena może pozostać dostępna nawet wtedy, gdy pełna strefa dostępności stanie się niedostępna. W przypadku obciążeń produkcyjnych AWS zaleca użycie trzech stref dostępności dla Twojej domeny. Użyj dwóch stref dostępności dla regionów, które obsługują tylko dwie, aby poprawić dostępność. Dzięki temu Twoja domena będzie dostępna w przypadku awarii Single-AZ.

Dedykowany menedżer klastra (węzły główne)

AWS zaleca używanie trzech dedykowanych węzłów menedżera klastra (CM). dla wszystkich obciążeń produkcyjnych. Węzły CM śledzą kondycję klastra, stan i lokalizację jego indeksów i fragmentów, mapowanie wszystkich indeksów oraz dostępność jego węzłów danych, a także przechowują listę zadań na poziomie klastra w toku. Bez dedykowanych węzłów CM klaster korzysta z węzłów danych, co sprawia, że ​​klaster jest podatny na obciążenia. Rozmiar węzłów CM należy określać na podstawie rozmiaru zadania — przede wszystkim liczby węzłów danych, liczby indeksów i liczby fragmentów. Usługa OpenSearch zawsze wdraża węzły CM w trzech Strefach Dostępności, jeśli jest obsługiwana przez Region (dwa w jednej Strefie Dostępności i jeden w innych Strefach Dostępności, jeśli regiony mają tylko dwie Strefy Dostępności). W przypadku działającej domeny tylko jeden z trzech węzłów CM działa jako wybrany lider. Pozostałe dwa węzły CM biorą udział w wyborach, jeśli wybrany węzeł CM ulegnie awarii.

Poniższa tabela przedstawia zalecenia AWS dotyczące rozmiaru CM. Węzły CM działają na podstawie liczby węzłów, indeksów, fragmentów i mapowania. Im więcej pracy, tym więcej mocy obliczeniowej i pamięci trzeba przechowywać i pracować ze stanem klastra.

Liczba wystąpień Rozmiar pamięci RAM węzła menedżera klastra Maksymalna obsługiwana liczba fragmentów Zalecany minimalny typ instancji dedykowanego menedżera klastra
1-10 8 GiB 10,000 m5.large.search lub m6g.large.search
11-30 16 GiB 30,000 c5.2xlarge.search lub c6g.2xlarge.search
31-75 32 GiB 40,000 c5.4xlarge.search lub c6g.4xlarge.search
76 - 125 64 GiB 75,000 r5.2xlarge.search lub r6g.2xlarge.search
126 - 200 128 GiB 75,000 r5.4xlarge.search lub r6g.4xlarge.search

Indeksy i fragmenty

Indeksy to logiczna konstrukcja zawierająca zbiór dokumentów. Partycjonujesz swój indeks do przetwarzania równoległego, określając podstawową liczbę fragmentów, gdzie fragmenty reprezentują fizyczną jednostkę do przechowywania i przetwarzania danych. W usłudze OpenSearch fragment może być fragmentem podstawowym lub fragmentem repliki. Używasz replik, aby zapewnić trwałość — w przypadku utraty podstawowego fragmentu, usługa OpenSearch awansuje jedną z replik do poziomu podstawowego — oraz w celu zwiększenia przepustowości wyszukiwania. Usługa OpenSearch gwarantuje, że fragmenty podstawowe i repliki zostaną umieszczone w różnych węzłach i różnych strefach dostępności, jeśli zostaną wdrożone w więcej niż jednej strefie dostępności. Aby zapewnić wysoką dostępność, AWS zaleca skonfigurowanie co najmniej dwóch replik dla każdego indeksu w konfiguracji z trzema strefami, aby uniknąć zakłóceń w wydajności i dostępności. W konfiguracji Multi-AZ, jeśli węzeł ulegnie awarii lub w rzadkim najgorszym przypadku ulegnie awarii strefa dostępności, nadal będziesz mieć kopię danych.

Monitorowanie i zarządzanie klastrami

Jak omówiono wcześniej, wybranie konfiguracji w oparciu o najlepsze praktyki to tylko połowa sukcesu. Musimy również stale monitorować wykorzystanie zasobów i wydajność, aby określić, czy domena wymaga skalowania. Niedostarczana lub nadmiernie wykorzystywana domena może spowodować spadek wydajności i ostatecznie niedostępność.

Zużycie procesora

Używasz procesora w swojej domenie do uruchamiania obciążenia. Zgodnie z ogólną zasadą należy dążyć do średniego wykorzystania procesora na poziomie 60% dla dowolnego węzła danych, ze szczytami na poziomie 80%, i tolerować małe skoki do 100%. Jeśli weźmiesz pod uwagę dostępność, a zwłaszcza biorąc pod uwagę niedostępność pełnej strefy, istnieją dwa scenariusze. Jeśli masz dwie strefy dostępności, każda strefa obsługuje 50% ruchu. Jeśli strefa stanie się niedostępna, druga strefa przejmie cały ten ruch, podwajając wykorzystanie procesora. W takim przypadku musisz mieć około 30–40% średniego wykorzystania procesora w każdej strefie, aby utrzymać dostępność. Jeśli korzystasz z trzech stref dostępności, każda ze stref pochłania 33% ruchu. Jeśli strefa stanie się niedostępna, każda inna strefa zyska około 17% ruchu. W takim przypadku należy dążyć do średniego wykorzystania procesora na poziomie 50–60%.

Wykorzystanie pamięci

Usługa OpenSearch obsługuje dwa rodzaje wyrzucania elementów bezużytecznych. Pierwszym z nich jest wyrzucanie elementów bezużytecznych G1 (G1GC), z którego korzystają węzły usługi OpenSearch obsługiwane przez AWS Graviton 2. Drugi to Concurrent Mark Sweep (CMS), który jest używany przez wszystkie węzły zasilane przez inne procesory. Z całej pamięci przydzielonej do węzła, połowa pamięci (do 32 GB) jest przypisana do sterty Java, a reszta pamięci jest używana przez inne zadania systemu operacyjnego, pamięć podręczną systemu plików i tak dalej. Aby utrzymać dostępność domeny, zalecamy utrzymywanie maksymalnego wykorzystania maszyny JVM na poziomie około 80% w CMS i 95% w G1GC. Wszystko poza tym wpłynie na dostępność Twojej domeny i sprawi, że Twój klaster będzie w złej kondycji. Zalecamy również włączenie automatycznego dostrajania, które aktywnie monitoruje wykorzystanie pamięci i wyzwala moduł wyrzucania elementów bezużytecznych.

Wykorzystanie pamięci

OpenSearch Service publikuje kilka wskazówek dla wymiarowanie domen. Zapewniamy wzór empiryczny, dzięki któremu możesz określić odpowiednią ilość pamięci wymaganej do Twoich wymagań. Jednak ważne jest, aby mieć oko na wyczerpywanie się pamięci masowej w czasie i zmiany w charakterystyce obciążenia. Aby upewnić się, że w domenie nie zabraknie miejsca i będzie można nadal indeksować dane, należy skonfigurować Amazon Cloud Watch alarmy i monitoruj swoją wolną przestrzeń dyskową.

AWS zaleca również wybranie podstawowej liczby odłamków, tak aby każdy odłamek mieścił się w optymalnym przedziale wielkości. Możesz określić optymalny rozmiar fragmentu, przeprowadzając testy sprawdzające słuszność swoich danych i ruchu. Używamy podstawowych rozmiarów fragmentów 10–30 GB dla przypadków użycia wyszukiwania i 45–50 GB podstawowych rozmiarów fragmentów dla przypadków użycia analizy logów jako wytycznych. Ponieważ shardy są procesami roboczymi w Twojej domenie, są bezpośrednio odpowiedzialne za dystrybucję obciążenia między węzłami danych. Jeśli Twoje shardy są zbyt duże, możesz zaobserwować obciążenie sterty Java z powodu dużych agregacji, gorszą wydajność zapytań i gorszą wydajność zadań na poziomie klastra, takich jak ponowne równoważenie fragmentów, migawki i migracje z gorącej na ciepłą. Jeśli odłamki są zbyt małe, mogą przytłoczyć przestrzeń sterty Java domeny, pogorszyć wydajność zapytań z powodu nadmiernej sieci wewnętrznej i spowolnić zadania na poziomie klastra. Zalecamy również, aby liczba fragmentów na węzeł była proporcjonalna do dostępnej sterty (połowa pamięci RAM instancji do 32 GB) — 25 fragmentów na GB sterty Java. Oznacza to praktyczny limit 1,000 odłamków w dowolnym węźle danych w Twojej domenie.

Wnioski

W tym poście poznałeś różne porady i wskazówki, jak skonfigurować domenę o wysokiej dostępności za pomocą usługi OpenSearch, która pomaga utrzymać wydajność i dostępność usługi OpenSearch, uruchamiając ją w trzech strefach dostępności.

Bądź na bieżąco z serią postów skupiających się na różnych funkcjach usługi OpenSearch. Jeśli masz uwagi dotyczące tego posta, prześlij je w sekcji komentarzy. Jeśli masz pytania dotyczące tego posta, rozpocznij nowy wątek na stronie Forum usługi OpenSearch lub kontakt Wsparcie AWS.


O autorach

Rohin Bhargawa jest starszym menedżerem produktu w zespole Amazon OpenSearch Service. Jego pasją w AWS jest pomaganie klientom w znalezieniu odpowiedniej kombinacji usług AWS, aby osiągnąć sukces w realizacji ich celów biznesowych.

Prashanta Agrawala jest starszym architektem rozwiązań specjalizujących się w wyszukiwaniu w usłudze Amazon OpenSearch. Ściśle współpracuje z klientami, pomagając im w migracji obciążeń do chmury, a obecnym klientom dostraja ich klastry w celu uzyskania lepszej wydajności i obniżenia kosztów. Zanim dołączył do AWS, pomagał różnym klientom w korzystaniu z OpenSearch i Elasticsearch w przypadkach użycia wyszukiwania i analizy dzienników. Kiedy nie pracuje, można go znaleźć w podróży i odkrywaniu nowych miejsc. Krótko mówiąc, lubi robić Jedz → Podróżuj → Powtarzaj.

Znak czasu:

Więcej z Duże zbiory danych AWS!