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
新卒で始めるパフォーマンス改善【OpenSearchで苦労した話】
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kandalog
February 24, 2025
Programming
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
新卒で始めるパフォーマンス改善【OpenSearchで苦労した話】
kandalog
February 24, 2025
More Decks by kandalog
See All by kandalog
must can willで振り返る新卒1年目とこれから
kandalog
0
140
失敗から学ぶチームコミュニケーション
kandalog
0
100
Other Decks in Programming
See All in Programming
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
200
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
500
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
2
420
MySQLとPostgreSQLって何が違うの?
akagami
0
130
Go 1.27 における memory allocation の高速化
andpad
0
300
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
290
VibeCodingからAgenticWorkflowへ
starfish719
0
770
今さら聞けない .NET CLI
htkym
0
210
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
400
Android CLI
fornewid
0
230
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
220
Hono + Inertia + React で LP を構築した話
oukayuka
2
150
Featured
See All Featured
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
GraphQLとの向き合い方2022年版
quramy
50
15k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
550
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
420
The Curse of the Amulet
leimatthew05
2
14k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
730
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
The browser strikes back
jonoalderson
0
1.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Scaling GitHub
holman
464
140k
The Limits of Empathy - UXLibs8
cassininazir
1
610
Transcript
©2024 Metaps Holdings, Inc. 新卒で始めるパフォーマンス改善 【OpenSearchで苦労した話】 株式会社メタップスホールディングス 新卒エンジニア 神⽥ 崇彰
©2024 Metaps Holdings, Inc. ⾃⼰紹介 神⽥ 崇彰 株式会社メタップスホールディングス 新卒エンジニア Takaaki
Kanda @tee_develop 2020年からWebアプリケーション開発を独学で学習。イタンジ株式会社に てPythonエンジニアとして経験を積んだ後、Simple株式会社にてフロン トエンドのリプレスを技術選定から担当し、開発に従事。 ⼤学卒業後は株式会社メタップスホールディングス、プラットフォーム戦 略部にて、srestの開発に従事 2
©2024 Metaps Holdings, Inc. srestはAWSファンデーショナルテクニカルレビュー (FTR)認証を取得しています
©2024 Metaps Holdings, Inc. 無料トライアル実施中!詳しくはお声がけください。
©2024 Metaps Holdings, Inc. OpenSearch
©2024 Metaps Holdings, Inc. OpenSearch 検索 集約 ログ分析 サイト検索 アプリのモニタリング
⾼速な検索エンジン 爆速
©2024 Metaps Holdings, Inc. OpenSearch srestでの使い⽅ AWSのイベントデータ コスト情報
©2024 Metaps Holdings, Inc. OpenSearch 検索条件 集計条件 作業⼿順 ▶ indexを作成
▶ データを投⼊ ▶ 検索条件の記述 ▶ 集計条件の記述
©2024 Metaps Holdings, Inc. OpenSearch 付属のDashBoardが便利
©2024 Metaps Holdings, Inc. 課題(パフォーマンス改善が必要だった理由) 30秒もユーザーを待たせたくない レスポンスが遅すぎてタイムアウトが発⽣する AWSの料⾦を可視化する機能 1年分のAWS Service毎のコスト情報を詳しく取得
AWS Lambdaで利⽤しているAPI GateWayの制限に引っかかる(30秒)
©2024 Metaps Holdings, Inc. そもそもなんで遅かったのか データの集計処理を全てRubyでやっていた ▶ 万単位データ集計をRubyで頑張ってた ▶ Rubyはそんなに速くない
▶ nested loopを含む関数を複数通す必要がある
©2024 Metaps Holdings, Inc. 私のレベル感
©2024 Metaps Holdings, Inc. 私のレベル感 検索エンジン?
©2024 Metaps Holdings, Inc. ブラウザの話?
©2024 Metaps Holdings, Inc. ⼀旦遊んでみる OpenSearchを好きに動かしてみる ▶ Docker環境の⽤意 ▶ 公式ドキュメントを読む
▶ Qiitaの記事読みながら好きにさわってみる ▶ ⽣成系AIを先⽣に壁打ち 初めての技術領域で右も左もわからない状態なので、まずは感覚を掴む
©2024 Metaps Holdings, Inc. 苦労した話
©2024 Metaps Holdings, Inc. 苦労した話 1 投⼊すべきデータの整形 ▶ タスクを進めるにあたって投⼊すべきデータを整形する必要があった ▶
何万⾏のデータに圧倒される ▶ ./jqコマンドが便利
©2024 Metaps Holdings, Inc. 苦労した話 1 投⼊すべきデータの整形 ▶ 不要なJSONを取り除く ▶
JSONの改⾏を取り除く ▶ {“index”: {}}{データ}の順で1⾏ずつ繰り返す
©2024 Metaps Holdings, Inc. 苦労した話 2 index構造が定まらない ▶ indexは既に作られていて検索と集計を担当してた ▶
途中でこの構造だと無理だと悟る ▶ 何度が構造を変更しながら試⾏錯誤が続く
©2024 Metaps Holdings, Inc. 苦労した話 3 仕様の漏れ ▶ 仕様の考慮漏れにより、index構造の再定義とクエリの再考が必要になった ▶
振り出しへ
©2024 Metaps Holdings, Inc. 苦労した話 3 仕様の漏れ ▶ 仕様の考慮漏れにより、index構造の再定義とクエリの再考が必要になった ▶
振り出しへ index構造を単純化
©2024 Metaps Holdings, Inc. 結果どうなった?
©2024 Metaps Holdings, Inc. 結果 タイムアウト 5.23秒 タイムアウト問題の解決 Web検証ツール 10秒以上
0.1秒 処理部分
©2024 Metaps Holdings, Inc. 結果 集計を⽬的とした関数:10 集計処理の関数: 0 ⼤量の集計処理の削除 移⾏後
©2024 Metaps Holdings, Inc. 感想
©2024 Metaps Holdings, Inc. 感想 ⼤変だったけど良い学びになった ▶ クリティカルなバグを含む重要なタスクを⼀任されてうれしい ▶ 仕様はちゃんと把握しよう
▶ 最後はやり切るぞという気合いが重要 ▶ OpenSearchの⾼速ドキュメント検索は多くの企業で需要ありそう
©2024 Metaps Holdings, Inc. 初LT登壇でした ありがとうございました