ClassiでのElasticsearchの利用について
by
Nakamura shinichirou
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Copyright © 2018 Classi Corp. All Rights Reserved. Classiでの Amazon Elasticsearch Serviceの活用 Copyright © 2018 Classi Corp. All Rights Reserved. プロダクト部 中村真一郎
Slide 2
Slide 2 text
Copyright © 2018 Classi Corp. All Rights Reserved. • 中村真一郎 • twitter: s_nakamura, github: nakaearth • 株式会社ヒトメディアからClassiへ出向 • 職歴 • sIer: 8年 • BtoCやBtoBのサービスやっている会社に10年近く • 現在は • Classiで、Railsエンジニアとして働いています 1 自己紹介
Slide 3
Slide 3 text
Copyright © 2018 Classi Corp. All Rights Reserved. • ClassiでElasticsearchをどう使っているのか • 運用している時に出てきた問題、課題など a. コンテンツボックス検索機能 b. 校内グループ • その他 2 目次
Slide 4
Slide 4 text
Copyright © 2018 Classi Corp. All Rights Reserved. • 現在Amazon Elasticsearch Serviceを使っているのは以下の機能 • テスト、問題、アンケート等の検索機能(コンテンツボックス) • 先生/生徒がメッセージをやり取りする機能(校内グループ) • その他様々なデータの検索 • この中の最初の二つについて話します 3 ClassiでElasticsearchをどう使っているのか
Slide 5
Slide 5 text
Copyright © 2018 Classi Corp. All Rights Reserved. コンテンツボックス • これはもともとMysqlのmroongaストレージエンジンを使って作られて いたがパフォーマンス悪化のためElasticsearchに変更して改善を試 みた • 何故変更したかというと、そもそもデータ構造がmroongaに適し てなかった • 階層構造のデータ • データの属性(科目だったり難易度だったり)が検索対象1に対してN。 • ElasticsearchはDocument指向DBでjson形式のデータを登録。 • json形式のデータを検索できるので、階層構造になっていても大丈 夫。 • AWSにはAmazon Elasticsearch Serviceがある。 → Elasticsearchに変更することに。 4 ClassiでElasticsearchをどう使っているのか
Slide 6
Slide 6 text
Copyright © 2018 Classi Corp. All Rights Reserved. コンテンツボックス • 作り直した結果どうなったか・・・。 • レスポンスが10秒以上掛かっていたものが1~2秒まで短縮でき た・・。 • テストも結構細かく追加した。 • まずは機能として使えないという危機は脱した で、リプレースしてから月日が流れ、新たな課題が・・・。 5 ClassiでElasticsearchをどう使っているのか
Slide 7
Slide 7 text
Copyright © 2018 Classi Corp. All Rights Reserved. コンテンツボックス • 運用して感じた課題、それは「 バージョンアップ」 • 既に6系が出ているElasticsearch。で今使っているのは・・・・・ 2.3!!!!!!! 6 運用している時に出てきた問題、課題など
Slide 8
Slide 8 text
Copyright © 2018 Classi Corp. All Rights Reserved. コンテンツボックス • 随分差があるように見えるが・・・ • Elasticsearchは2系の次は5系。だからそこまで古くはない・・・・とは 言えない・・・。 • やっぱり古い・・・。 • アップデートしないとダメ • どうやるか・・・。 • reindex apiはまだ使えない • バックアップデータのrestoreだと差分がでる 7 運用している時に出てきた問題、課題など
Slide 9
Slide 9 text
Copyright © 2018 Classi Corp. All Rights Reserved. コンテンツボックス • Elasticsearchのバージョンを上げて新規にindexを作成して、そこに 対し既存のデータをimport。 • データimport中も並行して新規データも入れるようにする • 割と泥臭いかもしれないけど、この方式が無難 8 運用している時に出てきた問題、課題など ver2.3でindex ver5でindex作成 APP
Slide 10
Slide 10 text
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ • バージョン5系 • 当初、学校毎にindexを作成。 • 学校毎にデータが別れている。 • messageとcommentが1対多の構造。それを一つのJSONで表して登 録。 • 本文に対してキーワード検索を行う 9 ClassiでElasticsearchをどう使っているのか
Slide 11
Slide 11 text
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ • 学校数が多くなりindexの数は〜千以上に。 • index作成ができない状態に・・・・。 • master nodeを置いてないとindexの作成やindexの更新が検索側に 影響する • 結局master nodeを追加し、index数も抑えた形で作り直してリリース 10 ClassiでElasticsearchをどう使っているのか
Slide 12
Slide 12 text
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ • index数は〜十個。学校を各Indexに適宜分散させる • master nodeを3つ(推奨)にし、データnodeを2つ • 安定した。 11 ClassiでElasticsearchをどう使っているのか
Slide 13
Slide 13 text
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ • 今は6系が出てます。→バージョンアップしないと!! • 最近AWSからAmazon Elasticsearch Serviceのupdateに関して使えそ うな機能がリリース!! 12 ClassiでElasticsearchをどう使っているのか
Slide 14
Slide 14 text
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ • 5系から使える機能。 • ドメインのアップグレードから今のバージョンから次のバージョンに アップグレードすることができる(ノーメンテで) 13 ClassiでElasticsearchをどう使っているのか
Slide 15
Slide 15 text
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ • 「アップグレードの適格性の確認」を実行するとアップグレードがこ のままできるかの確認ができる。 • 結果は「アップグレード履歴」から確認できる 14 ClassiでElasticsearchをどう使っているのか
Slide 16
Slide 16 text
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ • 5系から使える機能なので、2系から5系へは今までのように運用側 で工夫してやるしかないが、幸い5系を使っているのでこの機能につ いてはAWSのこの機能が使えるかも • まだテスト環境でしか試してない。本番適用は近日中の予定。 15 ClassiでElasticsearchをどう使っているのか
Slide 17
Slide 17 text
Copyright © 2018 Classi Corp. All Rights Reserved. その他 • バージョンアップの追従が早くなった。 → 使える機能は限られている マシンラーニングなど使えない機能が結構ある。 →運用コストは抑えられる。 • バックアップ。自由にやりたいなら自前でスクリプト書いてやる。 • kibanaを使って中身を見ることはできる 16 ClassiでElasticsearchをどう使っているのか
Slide 18
Slide 18 text
Copyright © 2018 Classi Corp. All Rights Reserved. 以上です。ご静聴ありがとうございます! 17