最近elasticsearchを触ることがあるので勉強会に行ってきました。
今回のなかで個人的に一番面白かったのは@mats116さんの「AWSで実現するelasticsearchの大規模運用」という話。nodeをmaster/data/searcher/indexerという役割に分けて、インフラを構成しているという話がなるほどという感じ。ある程度大規模になると大体master/data/searcherみたいな構成になりそうに感じる。searcherの部分はhttp.enabledをfalse、node.dataをfalseにするといっていたので、なんかのライブラリを利用してtransport層で通信しているのかなと思った。
またjohtaniさんの紹介していたelasticonの発表の中で、以下の話が面白そうだったので時間がある時にでも見てみたい。
- https://www.elastic.co/elasticon/2015/sf/elasticsearch-in-anger-stories-from-the-github-search-clusters
- https://www.elastic.co/elasticon/2015/sf/scaling-elasticsearch-for-production-at-verizon/
以下は適当に取っていたメモです。聞き逃したりとかしてたので、間違っているところがあったらすいません。
elasticonの報告と商用プラグインの紹介
- 基本的にelasticonの紹介
- elasticonは基本的に動画もスライドも上がってる https://www.elastic.co/elasticon/2015/sf/videos
- 有償プラグインでelasticsearchに認証を追加するやつもある https://www.elastic.co/products/shield
AWSで実現するelasticsearchの大規模運用
- DMPでのデータ管理をESでやってる
- master/data/searcher/indexerの4つのノード構成
- master3台、data80台、searcher3台、indexer1台くらいの構成
- masterはmasterに徹しているnode
- dataはいわゆるdata node
- searcherは検索のクエリを投げるnode、http無効、data無効にして、おそらくjavaかなにかでtransport層を利用して、データを検索している様子
- indexerはインデックスを作成するクエリを投げる専用らしい
- リアルタイム更新はやってなく、1日に2~3回フルインデックスをかける & 古いデータは捨てるということをやっているようなので、indexerが必要になってそう?
- replicaの置き場所をregionでうまくわけるようにすることで、冗長化をしているみたい
- AWSのAutoScalingを利用しているらしい
- elasticsearchのrecoveryをチューニングすることで、lifecycleが来て落ちて新しく立ち上がった時もデータが消えずに何とかなってるということみたい
- ちなみに台数増やすときは手動で増やしている、台数が減ることはない、と言っていたので???となったが、いわゆるAutoScaleはやってなさそう
- searcherとmasterを分けたのは、検索で重いクエリを投げると落ちることがあったため
- 懇親会でパフォーマンス測定にはどういうツールを利用した??と聞いた所
Spark in small or middle scale data processing with Elasticsearch
Elasticsearchのサジェスト機能を使った話
- elastic-analysis-icuというのを利用することで、いろいろな文字を正規化できるようだった
- パフォーマンスのテストツールにはGatling( http://gatling.io/#/ ) というのを利用したらしい
Elasticsearchで作る形態素解析サーバ
- ESのプラグイン機能を利用することで、形態素解析をESにやらせるということが出来たという話
- http://www.slideshare.net/shinsuke/es-analyzeapi201506
開発効率UP! Elasticsearch Client Tool 作ってみた
- Sublime Text 3のプラグインでClientするみたいになっててすごい感じだった
- https://speakerdeck.com/kunihikokido/kai-fa-xiao-lu-atupu-elasticsearch-client-tool-zuo-tutemita