OpenSearch с бессерверной точки зрения
1 апреля 2022 г.Dashbird получил обновление, и теперь вы можете отслеживать кластеры OpenSearch, настроенные с помощью Amazon OpenSearch Service. Но что это вообще значит? Многие люди даже не знают, что такое OpenSearch! Разве раньше не было сервиса Elasticsearch? Итак, давайте немного поясним, прежде чем мы проверим поддержку OpenSearch в Dashbirds.
Elastic и AWS не пришли к соглашению о добросовестном использовании Elasticsearch
После жаркого спора между Elastic, основным участником проекта Elasticsearch (ES), и AWS. Затем Elastic изменил лицензию ES, чтобы запретить AWS предлагать свой сервис Amazon Elasticsearch. Поскольку версии ES до этого изменения все еще находились под старой лицензией Apache 2.0, AWS создала ответвление от них и назвала его OpenSearch (OS).
Проще говоря: две компании не пришли к единому мнению относительно программного обеспечения, которое они внедрили, и каждая из них придерживалась своего видения этого проекта. Таким образом, ОС — это всего лишь форк ES, и эти два проекта с открытым исходным кодом, вероятно, в будущем будут отличаться друг от друга с точки зрения совместимости и функций.
Что касается управляемых поисковых сервисов, AWS отказался от Amazon Elasticsearch Service, и Amazon OpenSearch Service (AOS) — это то, что нужно.
Что такое OpenSearch?
ОС — это поисковая система, такая же, как Google или Bing, но для ваших собственных данных. Он проиндексирует ваши данные и сделает их доступными для поиска через HTTP-интерфейс.
Вы можете скачать ОС и установить ее на любой компьютер, который вам нравится. Установите его на свой локальный компьютер, настройте экземпляр EC2 на AWS и установите его там или позвольте AWS помочь вам запустить его с помощью AOS.
Получите полноразмерную инфографику [здесь] (https://dashbird.io/wp-content/uploads/2022/03/dashbird_opensearch-1432x2048.png).
OpenSearch и Elasticsearch
Они очень похожи, но у каждого своя траектория. Некоторым разработчикам не нравится, что AWS так относится к Elastic. Другие говорят, что переход на менее разрешительную лицензию — это не путь с открытым исходным кодом, и хотя им не нравится, как AWS может относиться к Elastic, они считают, что лицензия Apache 2.0 — это то, что нужно, если все должно оставаться открытым.
Если вы хотите использовать управляемую систему, подобную ES, на AWS, вам придется использовать более старые версии ES или ОС.
Что такое Amazon OpenSearch Service?
Во-первых, хотя AOS является управляемой службой, она не является бессерверной; вы должны платить за простаивающие серверы.
Но что такое AOS на самом деле?
AOS — это сервис на AWS, который управляет развертыванием ОС для вас. Как RDS для реляционных баз данных, EKS для кластеров Kubernetes, а Elasticsearch Service для ES, так и AOS для ОС.
В то время как AOS отлично помогает запустить ОС в облаке, ES и, в свою очередь, ОС, как известно, сложно настроить и масштабировать. Настолько сложные, что их бессерверных версий не существует.
Хотя AOS не так прост в использовании, он все же проще, чем управление экземплярами ОС вручную. AOS помогает масштабировать кластеры, развертывать виртуальные машины и управлять базовой сетью и хранилищем. Он также установит исправления ошибок.
Если вам нужна облачная поисковая система для вашего проекта, вы можете не возиться с ОС и AOS.
Amazon OpenSearch Service и Cloudwatch Log Insights
Когда вы развертываете свою инфраструктуру в облаке, скорее всего, большая часть данных, которые вы создаете, — это рабочие журналы. Если вы хотите облегчить доступ к этим журналам для команды эксплуатации, вы можете закачать их в AOS. Но это может дорого обойтись.
Как упоминалось выше, AOS не является бессерверной системой, поэтому вы платите за каждый час ее развертывания, даже если вы ее не используете. Эта неиспользуемая мощность может привести к огромным счетам за данные оперативного мониторинга.
Cloudwatch Log Insights — это управляемая служба поверх журналов Cloudwatch, которая, в свою очередь, оптимизирована именно для этого варианта использования. Он масштабируется автоматически, и вам нужно платить только за анализируемые данные, поэтому его можно считать бессерверным сервисом.
AOS — это сервис более низкого уровня, который вы используете, если вам нужна максимальная гибкость. Он стоит дороже и его нелегко масштабировать, но он дает вам всю необходимую свободу для индивидуальной поисковой системы.
Сервис Amazon OpenSearch в бессерверных архитектурах
Как объяснялось ранее, AOS не является бессерверной службой. Это может помочь с масштабированием, но не сводится к нулю, поэтому вы будете платить за бездействие базовых инстансов EC2.
Это затрудняет интеграцию AOS в вашу архитектуру. Но трудный выбор между какими вариантами?
Если с деньгами туго или вы считаете, что по какой-либо причине система должна масштабироваться до нуля, вы должны спросить себя, каковы ваши требования к поиску.
AOS здесь является ядерным вариантом; это распределенная поисковая система на основе Lucene, которая находит все, что вы проиндексировали, с помощью функций, подобных Google, таких как нечеткое сопоставление и тому подобное.
Но если ваши требования к поиску не так уж высоки, вы можете обойтись функциями запросов DynamoDB. Ваши результаты могут отличаться и не соответствовать уровням OpenSearch, но этого может быть достаточно для простой функции поиска. Но самое главное, вы не платите за простаивающие инстансы EC2.
Настройка OpenSearch на AWS
Как было сказано ранее, существуют разные способы установки ОС на AWS, но здесь мы выберем самый простой. Используя CDK, мы настроим домен AOS всего за несколько строк кода.
Имейте в виду, что в этом примере, взятом из документации CDK, будет развернут готовый к работе кластер ОС, содержащий 25 экземпляров m3.medium
, что может быстро стать дорогостоящим.
```машинопись
const aosDomain = новый opensearch.Domain(this, 'AosDomain', {
версия: opensearch.EngineVersion.OPENSEARCH_1_0,
емкость: {masterNodes: 5, dataNodes: 20},
ebs: {объемРазмер: 20},
ZoneAwareness: {availabilityZoneCount: 3},
Ведение журнала: {
slowSearchLogEnabled: правда,
апплогенаблед: правда,
slowIndexLogEnabled: правда,
Исходя из ES, вы, возможно, слышали о кластере и о том, как он состоит из одного или нескольких узлов. Домен AOS — это такой кластер, а также все, что связано с запуском такого кластера, о чем AOS позаботится за вас. Например, сети, обновления, распределение ресурсов и т. д.
Мы должны использовать правильную версию ядра, чтобы получить кластер ОС, поскольку AOS также поддерживает устаревшие кластеры ES.
Узлы представляют собой экземпляры EC2 типа экземпляра по умолчанию m3.medium.search.
Мы используем пять мастер-узлов, что означает, что будет один мастер и пять нод, подходящих для мастеров, которые могут занять место мастера, если что-то пойдет не так.
Мы также используем двадцать узлов данных, которые будут использоваться для хранения всех осколков индекса (т. е. фактических данных) нашего кластера. Каждый из этих узлов данных получит эластичное блочное хранилище объемом 20 ГиБ.
Информация о зонах гарантирует, что AOS развернет наши 25 инстансов EC2 в трех зонах доступности. Таким образом, кластер не выйдет из строя, если одна зона станет недоступной.
Конфигурация ведения журнала гарантирует, что запросы и индексы, которые работают плохо, регистрируются, чтобы, когда кластер работает в течение некоторого времени, вы почувствовали узкие места.
Мониторинг OpenSearch с Dashbird
С последним обновлением Dashbird все домены AOS будут автоматически добавлены в ваш инвентарь Dashbird.
Это обновление предоставляет вам готовую панель управления со всеми показателями работоспособности, связанными с вашими доменами. Включая, помимо прочего, использование различных типов узлов и задержку запросов.
Хотя это отличное начало для оценки состояния ваших существующих кластеров в контексте их истории, более интересными являются хорошо структурированные аналитические данные Dashbird.
Аналитические данные представляют собой периодические проверки на основе AWS Well-Architected Framework. Это означает, что они проверяют ваши домены AOS на предмет передового опыта и уведомляют вас, если вы не следуете им.
Информация также включает некоторые повторяющиеся проверки доступности и использования ваших доменов AOS. В конце концов, вы должны заплатить за них, если они развернуты, а если они никогда не используются, вы можете также вывести их из эксплуатации, чтобы сэкономить несколько долларов.
Резюме
ОС — это программное обеспечение поисковой системы, которое теперь будет использовать AWS. Если вы хотите остаться с ES, вам нужно либо использовать более старую версию, либо развернуть свой кластер вручную с помощью EC2, ECS или EKS.
Но будьте уверены, что Dashbird поддержал вас с этой новой вилкой ES. Таким образом, вы всегда будете в курсе событий благодаря мониторингу показателей и продуманной аналитике для ваших доменов AOS.
Оригинал