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
モチベーションクラウドを支える非同期処理の変遷
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
リンクアンドモチベーション
PRO
February 01, 2021
Technology
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
モチベーションクラウドを支える非同期処理の変遷
リンクアンドモチベーション
PRO
February 01, 2021
More Decks by リンクアンドモチベーション
See All by リンクアンドモチベーション
余白の作法 〜AI時代の、余白の使いかた〜 / emoasis-12-link-and-motivation
lmi
PRO
0
170
SFDCはなぜ"高額なDB"になるのか 〜現場が変わる運用設計とAI活用の実践〜/sfdc-operation-design-ai-utilization_link-and-motivation
lmi
PRO
0
30
経験より先に、役割がきた —何を学べば、役割に追いつけるか/エンジニアの役割の変化に向き合うConference 2026
lmi
PRO
0
530
AI架電FBでIS新人を3ヶ月で戦力化した話 /ai-feedback-3month-rampup_link-and-motivation
lmi
PRO
0
94
RubyKaigiに参加することで気づいた 「俺、Rubyのこと全然知らなくね?」/ RailsTokyo#4
lmi
PRO
0
93
非エンジニアの私の、AIを動かすコツ ── 振り返る、Whyを伝える、歩み寄る / LT大会&交流会 by QuratedLab
lmi
PRO
0
44
逃げ場をなくしたら見えた景色 — 新人SREがAIで「自分の領域」を作るまで/rookie-sre-no-way-back_link-and-motivation
lmi
PRO
0
110
AI時代の新卒を黄金世代にするために 〜やってよかったこと、まだ足りないこと〜/ai-native-engineers_link-and-motivation
lmi
PRO
0
160
失敗から学ぶ ~サブエージェントの正しい使い方~/subagent-lessons-learned_link-and-motivation
lmi
PRO
0
610
Other Decks in Technology
See All in Technology
フィジカル版Github Onshapeの紹介
shiba_8ro
0
310
「勝手に広まる」人気 AI エージェントを爆速で作ろう!(AWS Summit Japan 2026講演資料)
minorun365
PRO
10
2.4k
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
0
110
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
230
水を運ぶ人としてのリーダーシップ
izumii19
3
840
AIAU_UMEMOGU_ninomiya_slide
ninomiya_ii
0
260
2026年6月23日 Syncable Tech + Start Python Club にて
hamukazu
0
140
AI時代のコスト管理を考えよう〜明日から使える実践AWSノウハウ~
yoshimi0227
0
780
WebGIS AI Agentの紹介
_shimizu
0
500
Comment regagner la souveraineté de vos données tout en étant payé grâce à Nostr !
rlifchitz
0
150
感情と身体を置き去りにしない、エンジニアの生きのこり方 ──いまから、ここから「自分の状態」を扱うという選択
saorimurooka
0
270
When Platform Engineering Meets GenAI
sucitw
0
150
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Building AI with AI
inesmontani
PRO
1
1.1k
RailsConf 2023
tenderlove
30
1.5k
We Have a Design System, Now What?
morganepeng
55
8.2k
Chasing Engaging Ingredients in Design
codingconduct
0
220
Believing is Seeing
oripsolob
1
150
Joys of Absence: A Defence of Solitary Play
codingconduct
1
400
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
210
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
Transcript
モチベーション クラウドを支える 非同期処理の変遷 伊藤遼
自己紹介 伊藤 遼 • (株) リンクアンドモチベーションに新卒入社 2年目 • 配属当初から弊社プロダクトの性能改善チームに所属 (エンジニア歴
1年)
今日話すこと • プロジェクトの背景 • 何をしたか • 苦労したこと • やってよかったこと •
これから目指すところ モチベーションクラウドの非同期処理を刷新した話
非同期処理効率化プロジェクトの背景 • 超大手企業への導入 1社あたりの処理負荷の増大 • 導入社数の増加 同時処理数が増加 プロダクトの成長により....
バッチサーバー1台で、cronを回していたので 1処理の負荷が高まりサーバの限界を超えた... 何が起きたか? part 1 処理 A SaaSだと企業ごとに処理するので、 企業規模が大きくなると1処理の量が増えて許容量を超える 鳴り響くサーバアラート
処理 B 処理 C 処理 A 処理 B 処理 C
単一サーバ + 大量のcron • サイズの大きい単一サーバで運用 • 毎分20超、毎時10超のrake taskが起動 負荷が集中すると1台しかないサーバが耐えきれない 可用性を高めるためにスケーラブルにしたい
課題
A 社 の 処 理 各社の 待ち時間 何が起きたか? part 2
ユーザーからのクレーム SaaSだと企業ごとに処理するので、 導入企業数が多くなると待ち時間がながくなる 直列処理のため耐えられないほどの待ち時間がかかった B 社 の 処 理 C 社 の 処 理 A 社 の 処 理 B 社 の 処 理 C 社 の 処 理 D 社 の 処 理 E 社 の 処 理 F 社 の 処 理 許容待ち時間 許容待ち時間
処理が直列で実行されていた • 企業規模や企業数が多くなると後続の処理が遅延 • 例外発生時、後続の処理が遅延 (もしくは処理されない) 企業毎に処理を並列化したい 課題
検討したgemとアーキテクチャ gem \ 判断基準 ⭐ キュー 運用実績 負荷耐性 運用コスト sidekiq
10.7k redis × ◯ × resque 8.8k redis × ◯ × delayed_job 4.6k DB × × △ shoryuken 1.7k SQS × ◯ ◯ active elastic job 253 SQS ◯ ◯ ◯ 1. 可用性を高めるためにスケーラブルにしたい 2. 企業毎に処理を並列化したい
gem \ 判断基準 ⭐ キュー 運用実績 負荷耐性 運用コスト sidekiq 10.7k
redis × ◯ × resque 8.8k redis × ◯ × delayed_job 4.6k DB × × △ shoryuken 1.7k SQS × ◯ ◯ active elastic job 253 SQS ◯ ◯ ◯ 運用実績、負荷耐性、運用コストの観点で active elastic job (SQS + Worker) 構成に決まった 検討したgemとアーキテクチャ
どうやって解決したか • EC2 1台 SQS + EB worker構成にした
• SQSは重複配信される可能性がある 既存の処理は冪等性が担保されていない 重複実行されないような制御を実装 苦労したこと part 1 処理 A して
処理 A して 処理 A して
• 例外発生時のリトライ処理の実装 SQSには失敗時の自動リトライ用の仕組みがある 処理時間や重要度が様々なのでカスタマイズしたい 処理ごとにリトライ待機時間、回数制限を 定義できるようにした 苦労したこと part 2 処理
A × 5 処理 B × 50
• 実行条件が揃っていない時はリトライさせたい 実行条件が処理ごとにバラバラ 処理ごとに実行可能かどうかを定義できるようにした 苦労したこと part 3 処理 A して
処理 B して 集計処理完了? 一括処理完了?
結果 • 待ち時間が短くなった! • 負荷集中にもAutoScaleで自動対応できるようになった! 実績として、 過去最大社数の同時サーベイの実施も問題なし!
• 1つの処理で複数の責任をもっていたでっかい処理を 適切に分割できた • 非同期処理するためだけのテーブルの削除 副次効果 今後の開発生産性にも寄与
今後の予定 • 残りの非同期処理の SQS + Worker化 (全ての非同期処理の刷新) • 脱cron (ジョブスケジュラーの導入)
• ECS化
今日みたいな根本的なアーキテクチャ変更も 若手がガンガン実施してます! チャレンジしたい人大募集! ※興味がある方はぜひご連絡ください! ↓ ご清聴いただき、ありがとうございました!