CA.io で「Amazon ES 移行」をテーマに LT してきた

昨日は Elasticsearch をテーマに開催された CA.io に参加してきた.サイバーエージェントグループのマッチング系サービスが対象なのに,友情出演という形で,特別に LT をさせてもらった.楽しかった!

cyberagent.connpass.com

発表資料

タイトルは「Amazon ES に移行をしたら幸せになれるのか?」にした.最近そこそこ大規模で,レガシーな Elasticsearch を Amazon ES に移行するプロジェクトを担当して,そこで学んだことをザックリと話した.LT だと全然時間が足りなくて,ネタっぽくなってしまった感はある.

speakerdeck.com

雰囲気

f:id:kakku22:20170912214903j:plain

補足

自動スナップショット

Amazon ES のダメな点として「自動スナップショットをリストアする場合はサポートに依頼する必要がある」という話をしたら,LT 中に大谷さんから「数日前に改善されたよ!」と指摘をもらって,実際に調べたら本当にリリースが出ていた.ただし,Amazon ES (Elasticsearch 5.5) 以降で使えるらしく,Amazon ES (Elasticsearch 2.3) では,引き続きダメだった.知れて良かった!!!

運用面

今回は時間が無くて話さなかった Amazon ES の運用面の話は去年に作った資料にまとめてある.参考になればと!

kakakakakku.hatenablog.com

Elasticsearch 6.0 is coming / @johtani

  • Elastic Pioneer Program で Elastic 6.0 を使うと粗品がもらえる!
  • Elastic 6.0 の特徴
    • ダウンタイムなしで 5.x から 6.x にアップデートできる
    • Upgrade Assistant
    • ソートクエリのパフォーマンスが改善する (index sorting)
      • 簡単に言うと,インデックスのときに順番を入れ替えてしまう
    • Elastic 7.0 からインデックスの _type を削除するので,警告が出るようになる

メジャーバージョンが上がるたびに進化していて凄いなと思う.Elasticsearch SQL の話を懇親会で大谷さんに聞いたら,6.0 では入らなそうとのことだった.良し悪しはありそうだけど,SQL 形式で書けることのメリットはありそうなので,期待してる.

タップル誕生が Elasticsearch を導入した3つの理由

  • MongoDB から Elasticsearch に移行した
  • 複数の検索項目があり,柔軟に実装できる点がメリット
  • 全文検索も現在実装中

位置情報を用いたElasticsearchの活用事例

  • すれ違いを検索するときに Elasticsearch を使っている
    • geo_point type でデータを格納している
    • geo_distance で検索をしている
  • 逆 Geocoding (緯度経度から住所を検索する)
    • 国土交通省のデータを Elasticsearch に入れている
  • Geo Shape を使うと Elasticsearch で範囲の中に特定の場所があるかを検索できる

Elasticsearch 活用 & 運用事例

  • mimi はマニアックな属性で検索ができるのが特徴
    • 完全一致 (年齢,住所…)
    • スコアマッチ (目/鼻/メガネ…)
  • インデックス再構築
    • エイリアスも reindex も採用しなかった

トルテが実践したマッチしたユーザーを除く3つの方法

  • マッチしたユーザーを除外する
  • Elastic Cloud と Amazon ES を検証した

speakerdeck.com

まとめ

最近は July Tech Festa 2017 / CROSS 2017 など,発表が多くてバタバタしているけど,移行事例を話せて良かった.また他社の事例を聞いて,まだまだ Elasticsearch を活用できるなと感じることができたため,適材適所に技術選定をしていきたい.