Налаштуйте Amazon OpenSearch Service для високої доступності | Веб-сервіси Amazon

Налаштуйте Amazon OpenSearch Service для високої доступності | Веб-сервіси Amazon

Вихідний вузол: 2691649

Служба Amazon OpenSearch це пошукова та аналітична система з повністю відкритим вихідним кодом, яка безпечно розблоковує пошук, моніторинг і аналіз бізнес-даних і операційних даних у режимі реального часу для таких випадків використання, як системи рекомендацій, сайти електронної комерції та пошук по каталогу. Щоб бути успішним у своєму бізнесі, вам потрібно, щоб ваші системи були високодоступними та продуктивними, зводили до мінімуму простої та уникали збоїв. Якщо ви використовуєте OpenSearch Service як основний засіб моніторингу вашої інфраструктури, ви також повинні забезпечити її доступність. Час простою служби OpenSearch може значно вплинути на результати вашого бізнесу, наприклад втрату доходу, продуктивності, вартості бренду тощо.

Команда промисловий стандарт для вимірювання доступності це клас дев'яток. Служба OpenSearch забезпечує 3 9 доступності, якщо ви слідкуєте передового досвіду, що означає, що він гарантує менше 43.83 хвилин простою на місяць. У цій публікації ви дізнаєтесь, як налаштувати домен OpenSearch Service для високої доступності та продуктивності, дотримуючись найкращих практик і рекомендацій під час налаштування домену.

Є два важливі елементи, які впливають на доступність вашого домену: використання ресурсів вашого домену, яке здебільшого залежить від вашого робочого навантаження, і зовнішні події, такі як збої інфраструктури. Хоча першим можна керувати за допомогою постійного моніторингу продуктивності та працездатності домену та відповідно масштабувати домен, другий – ні. Щоб пом’якшити вплив зовнішніх подій, таких як збій у зоні доступності, збій екземпляра чи диска або проблеми з мережею у вашому домені, ви повинні надати додаткову ємність, розподілену між кількома зонами доступності, і зберігати кілька копій даних. Недотримання цієї вимоги може призвести до зниження продуктивності, недоступності та, у гіршому випадку, втрати даних.

Давайте розглянемо доступні для вас параметри, щоб переконатися, що домен доступний і продуктивний.

Конфігурація кластера

У цьому розділі ми розповімо про різні параметри конфігурації, необхідні для правильного налаштування кластера, включаючи вказівку кількості AZ для розгортання, налаштування головного вузла та вузлів даних, налаштування індексів і сегментів.

Розгортання кількох зон доступності

Вузли даних відповідають за обробку індексації та пошукових запитів у вашому домені. Розгортання вузлів даних у кількох зонах доступності покращує доступність вашого домену, додаючи резервне зберігання та обробку даних для кожної зони. Завдяки розгортанню Multi-AZ ваш домен може залишатися доступним, навіть якщо повна зона доступності стає недоступною. Для виробничих навантажень, AWS рекомендує використовувати три зони доступності для вашого домену. Використовуйте дві зони доступності для регіонів, які підтримують лише дві, для покращення доступності. Це гарантує, що ваш домен буде доступним у разі збою Single-AZ.

Виділений менеджер кластерів (головні вузли)

AWS рекомендує використовувати три виділені вузли менеджера кластерів (CM). для всіх виробничих навантажень. Вузли CM відстежують працездатність кластера, стан і розташування його індексів і шардів, відображення для всіх індексів і доступність вузлів даних, а також зберігають список завдань на рівні кластера, що виконуються. Без виділених вузлів CM кластер використовує вузли даних, що робить кластер вразливим до вимог робочого навантаження. Розмір вузлів CM слід визначати залежно від розміру завдання — насамперед, кількість вузлів даних, кількість індексів і кількість фрагментів. Служба OpenSearch завжди розгортає вузли CM у трьох зонах доступності, якщо це підтримується регіоном (два в одній зоні доступності та один в інших зонах доступності, якщо регіони мають лише дві зони доступності). Для запущеного домену лише один із трьох вузлів CM працює як обраний лідер. Інші два вузли CM беруть участь у виборах, якщо обраний вузол CM зазнає невдачі.

У наступній таблиці наведено рекомендації AWS щодо розміру CM. Вузли CM працюють на основі кількості вузлів, індексів, фрагментів і відображення. Чим більше роботи, тим більше обчислювальних ресурсів і пам’яті потрібно утримувати та працювати зі станом кластера.

Кількість екземплярів Розмір оперативної пам'яті вузла диспетчера кластера Максимально підтримувана кількість сегментів Рекомендований мінімальний виділений тип екземпляра диспетчера кластерів
1-10 8 Гб 10,000 m5.large.search або m6g.large.search
11-30 16 Гб 30,000 c5.2xlarge.search або c6g.2xlarge.search
31-75 32 Гб 40,000 c5.4xlarge.search або c6g.4xlarge.search
76 - 125 64 Гб 75,000 r5.2xlarge.search або r6g.2xlarge.search
126 - 200 128 Гб 75,000 r5.4xlarge.search або r6g.4xlarge.search

Індекси та шарди

Індекси - це логічна конструкція, яка містить колекцію документів. Ви розділяєте свій індекс для паралельної обробки, вказуючи первинну кількість шардів, де сегменти являють собою фізичну одиницю для зберігання та обробки даних. У службі OpenSearch шард може бути як основним, так і реплікою. Ви використовуєте репліки для довговічності — якщо основний шард буде втрачено, OpenSearch Service робить одну з реплік основною — і для покращення пропускної здатності пошуку. Служба OpenSearch гарантує, що основний шард і шард-репліка розміщені в різних вузлах і в різних зонах доступності, якщо їх розгортати в кількох зонах доступності. Для високої доступності AWS рекомендує налаштувати принаймні дві репліки для кожного індексу в тризонній установці, щоб уникнути перебоїв у продуктивності та доступності. У налаштуваннях Multi-AZ, якщо вузол виходить з ладу або, у найгіршому випадку, виходить з ладу зона доступності, ви все одно матимете копію даних.

Моніторинг і управління кластером

Як обговорювалося раніше, вибір конфігурації на основі найкращих практик – це лише половина справи. Нам також потрібно постійно відстежувати використання ресурсів і продуктивність, щоб визначити, чи потрібно масштабувати домен. Недостатньо забезпечений або надмірно використаний домен може призвести до зниження продуктивності та, зрештою, до недоступності.

Утилізація процесора

Ви використовуєте ЦП у своєму домені для виконання робочого навантаження. Як правило, ви повинні націлити середнє використання ЦП на 60% для будь-якого вузла даних з піковим значенням 80% і допускати невеликі стрибки до 100%. Коли ви розглядаєте доступність, і особливо враховуючи недоступність повної зони, є два сценарії. Якщо у вас є дві зони доступності, кожна зона обробляє 50% трафіку. Якщо зона стає недоступною, інша зона забирає весь цей трафік, подвоюючи використання ЦП. У такому випадку вам потрібно мати середнє використання ЦП у кожній зоні приблизно на 30–40%, щоб підтримувати доступність. Якщо ви використовуєте три зони доступності, кожна зона займає 33% трафіку. Якщо зона стане недоступною, кожна інша зона отримає приблизно 17% трафіку. У цьому випадку ви повинні орієнтуватися на 50–60% середнього використання ЦП.

Використання пам’яті

Служба OpenSearch підтримує два типи збирання сміття. Перший — це збирання сміття G1 (G1GC), яке використовується вузлами OpenSearch Service, які працюють від AWS Гравітон 2. Другий — Concurrent Mark Sweep (CMS), який використовується всіма вузлами, що працюють від інших процесорів. З усієї пам’яті, виділеної для вузла, половина пам’яті (до 32 ГБ) призначена для купи Java, а решта пам’яті використовується іншими завданнями операційної системи, кеш-пам’яттю файлової системи тощо. Щоб підтримувати доступність для домену, ми рекомендуємо підтримувати максимальне використання JVM на рівні приблизно 80% у CMS і 95% у G1GC. Все, що виходить за межі цього, вплине на доступність вашого домену та зробить ваш кластер несправним. Ми також рекомендуємо ввімкнути автоматичне налаштування, яке активно стежить за використанням пам’яті та запускає збирач сміття.

Використання сховища

Служба OpenSearch публікує кілька вказівок для розмір доменів. Ми надаємо емпіричну формулу, щоб ви могли визначити правильний обсяг пам’яті, необхідний для ваших вимог. Однак важливо стежити за вичерпанням пам’яті з часом і змінами характеристик робочого навантаження. Щоб гарантувати, що в домені не закінчиться пам’ять і він зможе продовжувати індексувати дані, вам слід налаштувати Amazon CloudWatch сигналізації та стежити за вільним місцем для зберігання.

AWS також рекомендує вибрати первинну кількість шардів, щоб кожен сегмент був у межах оптимального розміру. Ви можете визначити оптимальний розмір фрагмента за допомогою перевірки концепції з вашими даними та трафіком. Ми використовуємо основні розміри шардів 10–30 ГБ для випадків використання пошуку та розміри основних сегментів 45–50 ГБ для випадків використання аналітики журналів як орієнтир. Оскільки сегменти є працівниками у вашому домені, вони безпосередньо відповідають за розподіл робочого навантаження між вузлами даних. Якщо ваші фрагменти занадто великі, ви можете помітити стрес у купі Java через великі агрегації, нижчу продуктивність запитів і нижчу продуктивність завдань на рівні кластера, як-от ребалансування сегментів, знімки та міграції з гарячого на теплий. Якщо ваші шарди замалі, вони можуть переповнювати простір купи Java домену, погіршувати продуктивність запитів через надмірну внутрішню мережу та сповільнювати завдання на рівні кластера. Ми також рекомендуємо, щоб кількість сегментів на вузол була пропорційна доступній купі (половина оперативної пам’яті екземпляра до 32 ГБ) — 25 сегментів на ГБ купи Java. Це робить практичний ліміт у 1,000 сегментів на будь-якому вузлі даних у вашому домені.

Висновок

У цій публікації ви дізналися про різні поради та підказки щодо налаштування високодоступного домену за допомогою служби OpenSearch, яка допомагає підтримувати продуктивність і доступність служби OpenSearch, запускаючи її в трьох зонах доступності.

Слідкуйте за серією публікацій, присвячених різноманітним можливостям служби OpenSearch. Якщо у вас є відгуки про цю публікацію, надішліть їх у розділі коментарів. Якщо у вас є запитання щодо цієї публікації, створіть нову тему на Форум служби OpenSearch або зв'яжіться з Підтримка AWS.


Про авторів

Рохін Бхаргава є старшим менеджером з продуктів у команді Amazon OpenSearch Service. Його пристрасть у AWS полягає в тому, щоб допомогти клієнтам знайти правильне поєднання послуг AWS для досягнення успіху для досягнення їхніх бізнес-цілей.

Прашант Агравал є старшим архітектором рішень спеціаліста з пошуку Amazon OpenSearch Service. Він тісно співпрацює з клієнтами, щоб допомогти їм перенести робочі навантаження в хмару, а також допомагає існуючим клієнтам налаштувати свої кластери для досягнення кращої продуктивності та економії коштів. До того як приєднатися до AWS, він допомагав різним клієнтам використовувати OpenSearch і Elasticsearch для пошуку та аналітики журналів. Коли він не працює, він подорожує та досліджує нові місця. Коротше кажучи, йому подобається Їсти → Подорожувати → Повторювати.

Часова мітка:

Більше від Великі дані AWS