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.2k
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
750
EdTech MeetUp #2で話したないようです
nakaearth
1
1.3k
Amazon Elasticsearch Serviceを使ってコンテンツ検索を速くした話
nakaearth
0
760
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Agile that works and the tools we love
rasmusluckow
328
21k
Visualization
eitanlees
146
15k
Automating Front-end Workflow
addyosmani
1366
200k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Facilitating Awesome Meetings
lara
50
6.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
RailsConf 2023
tenderlove
29
940
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
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