Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ClassiでのElasticsearchの利用について
Search
Nakamura shinichirou
December 10, 2018
0
4.1k
ClassiでのElasticsearchの利用について
ClassiでどのようにAmazon Elasticsearch Serviceを利用しているのか、その紹介です。
Nakamura shinichirou
December 10, 2018
Tweet
Share
More Decks by Nakamura shinichirou
See All by Nakamura shinichirou
2019_10_30_classi_redesign.pdf
nakaearth
0
84
ClassiでのElasticsearchの利用について
nakaearth
0
730
EdTech MeetUp #2で話したないようです
nakaearth
1
1.3k
Amazon Elasticsearch Serviceを使ってコンテンツ検索を速くした話
nakaearth
0
750
Featured
See All Featured
Teambox: Starting and Learning
jrom
132
8.7k
The Mythical Team-Month
searls
218
43k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
Designing Experiences People Love
moore
138
23k
Rails Girls Zürich Keynote
gr2m
93
13k
RailsConf 2023
tenderlove
28
850
Documentation Writing (for coders)
carmenintech
65
4.4k
How STYLIGHT went responsive
nonsquared
95
5.1k
BBQ
matthewcrist
85
9.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
7
590
Speed Design
sergeychernyshev
22
490
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
1
310
Transcript
Copyright © 2018 Classi Corp. All Rights Reserved. Classiでの Amazon
Elasticsearch Serviceの活用 Copyright © 2018 Classi Corp. All Rights Reserved. プロダクト部 中村真一郎
Copyright © 2018 Classi Corp. All Rights Reserved. • 中村真一郎
• twitter: s_nakamura, github: nakaearth • 株式会社ヒトメディアからClassiへ出向 • 職歴 • sIer: 8年 • BtoCやBtoBのサービスやっている会社に10年近く • 現在は • Classiで、Railsエンジニアとして働いています 1 自己紹介
Copyright © 2018 Classi Corp. All Rights Reserved. • ClassiでElasticsearchをどう使っているのか
• 運用している時に出てきた問題、課題など a. コンテンツボックス検索機能 b. 校内グループ • その他 2 目次
Copyright © 2018 Classi Corp. All Rights Reserved. • 現在Amazon
Elasticsearch Serviceを使っているのは以下の機能 • テスト、問題、アンケート等の検索機能(コンテンツボックス) • 先生/生徒がメッセージをやり取りする機能(校内グループ) • その他様々なデータの検索 • この中の最初の二つについて話します 3 ClassiでElasticsearchをどう使っているのか
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をどう使っているのか
Copyright © 2018 Classi Corp. All Rights Reserved. コンテンツボックス •
作り直した結果どうなったか・・・。 • レスポンスが10秒以上掛かっていたものが1~2秒まで短縮でき た・・。 • テストも結構細かく追加した。 • まずは機能として使えないという危機は脱した で、リプレースしてから月日が流れ、新たな課題が・・・。 5 ClassiでElasticsearchをどう使っているのか
Copyright © 2018 Classi Corp. All Rights Reserved. コンテンツボックス •
運用して感じた課題、それは「 バージョンアップ」 • 既に6系が出ているElasticsearch。で今使っているのは・・・・・ 2.3!!!!!!! 6 運用している時に出てきた問題、課題など
Copyright © 2018 Classi Corp. All Rights Reserved. コンテンツボックス •
随分差があるように見えるが・・・ • Elasticsearchは2系の次は5系。だからそこまで古くはない・・・・とは 言えない・・・。 • やっぱり古い・・・。 • アップデートしないとダメ • どうやるか・・・。 • reindex apiはまだ使えない • バックアップデータのrestoreだと差分がでる 7 運用している時に出てきた問題、課題など
Copyright © 2018 Classi Corp. All Rights Reserved. コンテンツボックス •
Elasticsearchのバージョンを上げて新規にindexを作成して、そこに 対し既存のデータをimport。 • データimport中も並行して新規データも入れるようにする • 割と泥臭いかもしれないけど、この方式が無難 8 運用している時に出てきた問題、課題など ver2.3でindex ver5でindex作成 APP
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ •
バージョン5系 • 当初、学校毎にindexを作成。 • 学校毎にデータが別れている。 • messageとcommentが1対多の構造。それを一つのJSONで表して登 録。 • 本文に対してキーワード検索を行う 9 ClassiでElasticsearchをどう使っているのか
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ •
学校数が多くなりindexの数は〜千以上に。 • index作成ができない状態に・・・・。 • master nodeを置いてないとindexの作成やindexの更新が検索側に 影響する • 結局master nodeを追加し、index数も抑えた形で作り直してリリース 10 ClassiでElasticsearchをどう使っているのか
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ •
index数は〜十個。学校を各Indexに適宜分散させる • master nodeを3つ(推奨)にし、データnodeを2つ • 安定した。 11 ClassiでElasticsearchをどう使っているのか
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ •
今は6系が出てます。→バージョンアップしないと!! • 最近AWSからAmazon Elasticsearch Serviceのupdateに関して使えそ うな機能がリリース!! 12 ClassiでElasticsearchをどう使っているのか
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ •
5系から使える機能。 • ドメインのアップグレードから今のバージョンから次のバージョンに アップグレードすることができる(ノーメンテで) 13 ClassiでElasticsearchをどう使っているのか
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ •
「アップグレードの適格性の確認」を実行するとアップグレードがこ のままできるかの確認ができる。 • 結果は「アップグレード履歴」から確認できる 14 ClassiでElasticsearchをどう使っているのか
Copyright © 2018 Classi Corp. All Rights Reserved. 校内グループ •
5系から使える機能なので、2系から5系へは今までのように運用側 で工夫してやるしかないが、幸い5系を使っているのでこの機能につ いてはAWSのこの機能が使えるかも • まだテスト環境でしか試してない。本番適用は近日中の予定。 15 ClassiでElasticsearchをどう使っているのか
Copyright © 2018 Classi Corp. All Rights Reserved. その他 •
バージョンアップの追従が早くなった。 → 使える機能は限られている マシンラーニングなど使えない機能が結構ある。 →運用コストは抑えられる。 • バックアップ。自由にやりたいなら自前でスクリプト書いてやる。 • kibanaを使って中身を見ることはできる 16 ClassiでElasticsearchをどう使っているのか
Copyright © 2018 Classi Corp. All Rights Reserved. 以上です。ご静聴ありがとうございます! 17