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
4.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ClassiでのElasticsearchの利用について
ClassiでどのようにAmazon Elasticsearch Serviceを利用しているのか、その紹介です。
Nakamura shinichirou
December 10, 2018
More Decks by Nakamura shinichirou
See All by Nakamura shinichirou
2019_10_30_classi_redesign.pdf
nakaearth
0
110
ClassiでのElasticsearchの利用について
nakaearth
0
860
EdTech MeetUp #2で話したないようです
nakaearth
1
1.4k
Amazon Elasticsearch Serviceを使ってコンテンツ検索を速くした話
nakaearth
0
850
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
890
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Designing for Timeless Needs
cassininazir
1
280
Agile that works and the tools we love
rasmusluckow
331
22k
The Curse of the Amulet
leimatthew05
2
13k
The Curious Case for Waylosing
cassininazir
1
430
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
370
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