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
Amazon OpenSearch Serviceで 構築するTVerの次世代検索基盤
Search
TVer Inc.
PRO
October 08, 2022
Technology
0
1.3k
Amazon OpenSearch Serviceで 構築するTVerの次世代検索基盤
2022/10/08
JAWS DAYS 2022 - Satellites
イベントURL :
https://jawsdays2022.jaws-ug.jp/
TVer Inc.
PRO
October 08, 2022
Tweet
Share
More Decks by TVer Inc.
See All by TVer Inc.
20240710_HR SUCCESS SUMMIT 2024_テーマセッション「エンジニア採用2.0」登壇資料(株式会社TVer_香坂)
techtver
PRO
0
42
採用応募者の個人情報保護の取扱いについて_株式会社TVer
techtver
PRO
0
300
月間4.5億回再生を超える大規模サービス TVer iOSアプリのリアーキテクチャ戦略 - iOSDC2024
techtver
PRO
1
6.4k
成長し続けるTVerサービスを支える オブザーバビリティとカスタマーサポート
techtver
PRO
4
5.2k
Change Tracking でデプロイを記録してパフォーマンスへの影響を分析しやすくしよう
techtver
PRO
1
190
採用人事の立場で行う採用広報・技術広報の裏側 〜TVerがエンジニア採用を本格化するために継続し続けたこと〜
techtver
PRO
2
640
株式会社TVer 会社紹介資料
techtver
PRO
9
70k
採用人事の立場から、採用広報の立ち上げや技術広報の促進をしている話
techtver
PRO
0
1k
バックエンドで頑張るSEO/OGP対策
techtver
PRO
0
1.9k
Other Decks in Technology
See All in Technology
大規模アジャイルフレームワークから学ぶエンジニアマネジメントの本質
staka121
PRO
3
1.2k
いまからでも遅くない!コンテナでWebアプリを動かしてみよう!コンテナハンズオン編
nomu
0
160
ディスプレイ広告(Yahoo!広告・LINE広告)におけるバックエンド開発
lycorptech_jp
PRO
0
410
DevinでAI AWSエンジニア製造計画 序章 〜CDKを添えて〜/devin-load-to-aws-engineer
tomoki10
0
170
Iceberg Meetup Japan #1 : Iceberg and Databricks
databricksjapan
0
390
Amazon Aurora のバージョンアップ手法について
smt7174
2
150
生成AI×財務経理:PoCで挑むSlack AI Bot開発と現場巻き込みのリアル
pohdccoe
1
750
IoTシステム開発の複雑さを低減するための統合的アーキテクチャ
kentaro
1
120
AIエージェント時代のエンジニアになろう #jawsug #jawsdays2025 / 20250301 Agentic AI Engineering
yoshidashingo
8
3.8k
急成長する企業で作った、エンジニアが輝ける制度/ 20250227 Rinto Ikenoue
shift_evolve
0
140
リクルートのエンジニア組織を下支えする 新卒の育成の仕組み
recruitengineers
PRO
1
110
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
12
4.1k
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
67
11k
Automating Front-end Workflow
addyosmani
1368
200k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
650
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Making Projects Easy
brettharned
116
6k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Agile that works and the tools we love
rasmusluckow
328
21k
Rails Girls Zürich Keynote
gr2m
94
13k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Transcript
Amazon OpenSearch ServiceͰ ߏங͢ΔTVerͷ࣍ੈݕࡧج൫ 2022.10.8 JAWS DAYS 2022 גࣜձࣾ TVer
ࠇ
ࣗݾհ • ໊લɿࠇ ༞ฏ • ॴଐɿגࣜձࣾ TVer • ୲ɿ ◦
σʔλγεςϜ։ൃʢETLʣ ◦ όοΫΤϯυ։ൃʢݕࡧج൫ʣ
ΞδΣϯμ • TVerʹ͍ͭͯ • TVerϦχϡʔΞϧͱ࣍ੈݕࡧج൫ ◦ ϦχϡʔΞϧޙͷݕࡧػೳ ◦ ։ൃମ੍ ◦
Amazon OpenSearch Service • ࣮ݱʹ͚ͯͷऔΓΈ ◦ σʔλཧ ◦ ετϨʔδཧ ◦ αʔϏεͷӡ༻ɾ։ൃ • ·ͱΊ
ΞδΣϯμ • TVerʹ͍ͭͯ • TVerϦχϡʔΞϧͱ࣍ੈݕࡧج൫ ◦ ϦχϡʔΞϧޙͷݕࡧػೳ ◦ ։ൃମ੍ ◦
Amazon OpenSearch Service • ࣮ݱʹ͚ͯͷऔΓΈ ◦ σʔλཧ ◦ ετϨʔδཧ ◦ αʔϏεͷӡ༻ɾ։ൃ • ·ͱΊ
TVerʹ͍ͭͯ TVerຽ์ςϨϏہͷίϯςϯπΛ৴͢Δຽ์ެࣜςϨϏ৴αʔϏε ຖि600൪ΛແྉͰύιίϯɾεϚʔτϑΥϯɾλϒϨοτɾςϨϏʹ৴
TVerʹ͍ͭͯ
ΞδΣϯμ • TVerʹ͍ͭͯ • TVerϦχϡʔΞϧͱ࣍ੈݕࡧج൫ ◦ ϦχϡʔΞϧޙͷݕࡧػೳ ◦ ։ൃମ੍ ◦
Amazon OpenSearch Service • ࣮ݱʹ͚ͯͷऔΓΈ ◦ σʔλཧ ◦ ετϨʔδཧ ◦ αʔϏεͷӡ༻ɾ։ൃ • ·ͱΊ
TVerϦχϡʔΞϧ [TVer] ςϨϏίϯςϯπͷࢹௌମݧࠂମݧͷ্Λࢦ͢ ʮTVer IDʯͷఏڙΛ։࢝ https://tver.co.jp/news/20220404-1.html
ݕࡧػೳ • ݕࡧΩʔϫʔυΛೖྗ͢Δͱɺίϯςϯπใ͕Ϛονͨ͠ެ։த ͷίϯςϯπΛҰཡͰฦ͢ػೳ
ݕࡧػೳ • ैདྷίϯςϯπใͷDBΛݕࡧ • ػೳ֦ுͷ͛ʹͳ͍ͬͯͨ ➢ αʔϏεͷʹ͋Θͤͨػೳ֦ுʹ՝ ݕࡧAPI Amazon Aurora
(MySQL) ݕࡧ݁Ռ CMS ίϯςϯπ ใ
ϦχϡʔΞϧͰͷ։ൃମ੍ͷڧԽ • αʔϏεʹ͋ΘͤͯΤϯδχΞʹΑΔԽΛਪਐ • ΤϯδχΞ͕ઐ֎ͷ։ൃʹઓͰ͖ΔΑ͏ʹ ◦ σʔλγεςϜ୲͕खΛڍ͛ͯόοΫΤϯυ։ൃ ➢ΤϯδχΞ͕։ൃͷମ੍αΠΫϧΛίϯτϩʔϧ ϦχϡʔΞϧ
ݕࡧج൫ ํ • ࣗࣾΤϯδχΞओಋͰγεςϜߏΛ৽ ◦ ݕࡧػೳΛΠϯϑϥ͝ͱಠཱͤ͞Δ ◦ શจݕࡧʹಛԽͨ͠ϛυϧΣΞΛಋೖ ➢ Amazon
OpenSearch ServiceΛ࠾༻ ݕࡧAPI ݕࡧ݁Ռ CMS ίϯςϯπ ใ શจݕࡧ ϛυϧΣΞ
Amazon OpenSearch Service • OpenSearchͷϚωʔδυαʔϏε • AWSͷػೳɾαʔϏεͱγʔϜϨεʹ࿈ ܞՄೳ ◦ VPC
◦ RI ◦ etc. • ϩάϝτϦΫεఏڙ Amazon OpenSearch Service
ΞδΣϯμ • TVerʹ͍ͭͯ • TVerϦχϡʔΞϧͱ࣍ੈݕࡧج൫ ◦ ϦχϡʔΞϧޙͷݕࡧػೳ ◦ ։ൃମ੍ ◦
Amazon OpenSearch Service • ࣮ݱʹ͚ͯͷऔΓΈ ◦ σʔλཧ ◦ ετϨʔδཧ ◦ αʔϏεͷӡ༻ɾ։ൃ • ·ͱΊ
ࢦ͢ͷ • σʔλͷཧ؍ ◦ MySQLͷσʔλมߋʹॊೈʹରԠͰ͖Δ • ετϨʔδ؍ ◦ ӡ༻தͷετϨʔδ༻ྔ૿ՃΛࢭ͢Δ •
αʔϏεӡ༻؍ ◦ ݕࡧAPIͷϝϯςφϯείετΛ࠷খԽ͢Δ
ैདྷͷγεςϜߏ ݕࡧAPI CMS ݕࡧ݁Ռ ίϯςϯπ ࢀর σʔλͷྲྀΕ
ݱࡏͷγεςϜߏ ݕࡧAPI औΓࠐΈ όον CMS ݕࡧ݁Ռ ެ։։࢝ ίϯςϯπ ެ։։࢝ ίϯςϯπ
ެ։த ίϯςϯπ new old Alias ެ։த ίϯςϯπ ࢀর ࢀর ࢀর σʔλͷྲྀΕ
σʔλͷཧ • CMSͷσʔλܗࣜมߋ͞ΕΔ͜ͱ͕͋Δ ެ։தίϯςϯπΛ ಉظ όοΫΞοϓͳͲઐ ༻ͷσʔλͷཧ͕ ඞཁ ➢ େݩͷίϯςϯπใͷཧMySQLʹͤɺίϐʔΛOpenSearch
ʹఆظతʹೖ͢Δ ݕࡧAPI ݕࡧ݁Ռ
σʔλͷཧ ࢀর σʔλͷྲྀΕ ݕࡧAPI औΓࠐΈ όον CMS ެ։։࢝ ίϯςϯπ ެ։த
ίϯςϯπ Index ެ։த ίϯςϯπ ࢀর ͦͷެ։தͷίϯ ςϯπใΛఆظత ʹMySQL͔Βऔಘ͠ ͯೖ͢Δ ݕࡧ݁Ռ
σʔλͷཧ ݕࡧAPI औΓࠐΈ όον CMS ݕࡧ݁Ռ ެ։։࢝ ίϯςϯπ ެ։։࢝ ίϯςϯπ
ެ։த ίϯςϯπ ެ։த ίϯςϯπ ࢀর ࢀর σʔλͷྲྀΕ Index ࢀর ͦͷެ։ɾมߋ͞Εͨ ίϯςϯπΛMySQLͱ OpenSearchʹೖ͢Δ
ετϨʔδ؍ • ݟಀ͠৴ϝΠϯͷͨΊɺଟ͘ͷίϯςϯπ͕1िؒ΄ͲͰެ։ظ ͕ؒऴྃ͠ɺݕࡧର֎ʹͳΔ • ݕࡧର֎͕ੵ͞ΕɺແବͳσΟεΫ༻ྔ͕ʑ૿Ճ ➢ ެ։ظ͕ؒऴྃͨ͠ίϯςϯπIndex͔Βআ Index 2022/09/01
ެ։ 2022/09/08 ެ։ 2022/09/15 ެ։ Index 2022/09/01 ެ։ 2022/09/08 ެ։ 2022/09/15 ެ։ 1िؒޙ
• औΓࠐΈόονຖճ৽͍͠IndexΛ࡞͠ɺͦͪΒʹίϯςϯ πใΛೖ͢Δ • ݹ͍Indexআ͢Δ ετϨʔδ؍ ݕࡧAPI औΓࠐΈ όον ݕࡧ݁Ռ
ެ։த ίϯςϯπ new old ࢀর
αʔϏεӡ༻؍ • IndexΛ࡞Γସ͑Δ͝ͱʹࢀরΛߋ৽͢Δඞཁ͕͋Δ ݕࡧAPI چIndex ৽Index ࢀরͷΓସ͕͑ ඞཁ ݹ͍ ίϯςϯπ
৽͍͠ ίϯςϯπ ➢ ݕࡧAPIʹAliasΛݟ͓͖ͤͯɺཪͰIndexΛߋ৽͢Δ
• ݕࡧ༻AliasΛݕࡧAPIʹݟ͓ͤͯ͘ IndexΓସ͑ ݕࡧAPI औΓࠐΈ όον ݕࡧ݁Ռ old Alias ࢀর
ࢀর ࢀর σʔλͷྲྀΕ
• AliasͷཪͰ࠷৽ͷIndexʹΓସ͑ IndexΓସ͑ ݕࡧAPI औΓࠐΈ όον ݕࡧ݁Ռ ެ։த ίϯςϯπ new
old Alias ࢀর ࢀর ࢀর σʔλͷྲྀΕ
࣮ࡍͷӡ༻ ݕࡧAPI औΓࠐΈ όον CMS ݕࡧ݁Ռ ެ։։࢝ ίϯςϯπ ެ։։࢝ ίϯςϯπ
ެ։த ίϯςϯπ new old Alias ެ։த ίϯςϯπ ࢀর ࢀর ࢀর σʔλͷྲྀΕ
࣮ࡍͷӡ༻ ݕࡧAPI औΓࠐΈ όον CMS ݕࡧ݁Ռ ެ։։࢝ ίϯςϯπ ެ։։࢝ ίϯςϯπ
ެ։த ίϯςϯπ new old Alias ެ։த ίϯςϯπ ࢀর ࢀর ࢀর σʔλͷྲྀΕ ͦͷެ։தͷίϯςϯ πใΛຖேೖ͠ɺ IndexΛ࡞Γସ͑
࣮ࡍͷӡ༻ ݕࡧAPI औΓࠐΈ όον CMS ݕࡧ݁Ռ ެ։։࢝ ίϯςϯπ ެ։։࢝ ίϯςϯπ
ެ։த ίϯςϯπ new old Alias ެ։த ίϯςϯπ ࢀর ࢀর ࢀর σʔλͷྲྀΕ ίϯςϯπऔΓࠐΈ࣌ʹ ࢀর͢ΔIndexΛมߋ
࣮ࡍͷӡ༻ ެ։ɾมߋ͞Εͨί ϯςϯπΛೖ ݕࡧAPI औΓࠐΈ όον CMS ݕࡧ݁Ռ ެ։։࢝ ίϯςϯπ
ެ։։࢝ ίϯςϯπ ެ։த ίϯςϯπ new old Alias ެ։த ίϯςϯπ ࢀর ࢀর ࢀর σʔλͷྲྀΕ
ΞδΣϯμ • TVerʹ͍ͭͯ • TVerϦχϡʔΞϧͱ࣍ੈݕࡧج൫ ◦ ϦχϡʔΞϧޙͷݕࡧػೳ ◦ ։ൃମ੍ ◦
Amazon OpenSearch Service • ࣮ݱʹ͚ͯͷऔΓΈ ◦ σʔλཧ ◦ ετϨʔδཧ ◦ αʔϏεͷӡ༻ɾ։ൃ • ·ͱΊ
·ͱΊ • TVerͷϦχϡʔΞϧʹ͍ɺݕࡧػೳͷΠϯϑϥͱͯ͠ Amazon OpenSearch ServiceΛಋೖͨ͠ • TVerʹదͨ͠ར༻ํ๏Λ࠾༻ͨ͠ ◦ ఆظతʹMySQL͔ΒίϯςϯπใΛೖ͢Δ
◦ Index͝ͱ࡞Γସ͑Δ ◦ ݕࡧAPIʹAlias͚ͩΛݟͤΔ •͜ΕΒͷࢪࡦʹΑΓɺ҆৺ͯ͠ӡ༻Ͱ͖Δݕࡧج൫Λ࣮ݱ
ࠓޙͷ՝ • ͞ΒͳΔӡ༻ϊϋͷੵ • Մ༻ੑͷ্ • ϨίϝϯυͳͲଞͷࢪࡦͱͷ࿈ಈ
None