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
Sidekiq+Valkey Serverlessでハマった話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yuto Uchima
August 08, 2025
Technology
110
1
Share
Sidekiq+Valkey Serverless でハマった話
Omotesando.rb #112でLT登壇した資料。
Yuto Uchima
August 08, 2025
More Decks by Yuto Uchima
See All by Yuto Uchima
beelt-aws-job
sabinuki
0
8
Other Decks in Technology
See All in Technology
エージェントスキルを作って自分のインプットに役立てよう
tsubakimoto_s
0
360
20年前の「OSS革命」に学ぶ AI時代の生存戦略
samakada
0
430
Data Hubグループ 紹介資料
sansan33
PRO
0
2.9k
みんなの「データ活用」を支えるストレージ担当から持ち込むAWS活用/コミュニティー設計TIPS 10選~「作れる」より、「続けられる」設計へ~
yoshiki0705
0
250
Rebirth of Software Craftsmanship in the AI Era
lemiorhan
PRO
4
2k
AI時代 に増える データ活用先
takahal
0
230
The Journey of Box Building
tagomoris
4
2.7k
Keeping Ruby Running on Cygwin
fd0
0
160
QGISプラグイン CMChangeDetector
naokimuroki
1
400
昔はシンプルだった_AmazonS3
kawaji_scratch
0
330
#jawsugyokohama 100 LT11, "My AWS Journey 2011-2026 - kwntravel"
shinichirokawano
0
350
小説執筆のハーネスエンジニアリング
yoshitetsu
0
690
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Everyday Curiosity
cassininazir
0
200
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
210
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
170
Skip the Path - Find Your Career Trail
mkilby
1
110
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
150
Large-scale JavaScript Application Architecture
addyosmani
515
110k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
520
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Speed Design
sergeychernyshev
33
1.6k
Transcript
Sidekiq+Valkey Serverless でハマった話 2025.08.07 Omotesando.rb #112 株式会社きがるな 内間 悠人
confidential 自己紹介 株式会社きがるな 1 Yuto Uchima (@beerfan_biber) うっちーって呼んでね! • 株式会社きがるな
代表取締役 • フルスタックエンジニア • ビールが好き • Casusult(カジュサル)というサービスを開発しています
confidential プロダクト紹介 Casusult(カジュサル) • SNSクラウドソーシングプラットフォーム • 「カジュアルに相談してから契約」がコンセプト • “スキル×人柄”からワーカーの選定が可能 株式会社きがるな
2
株式会社きがるな 3 ぜひ一度覗いてみてください!
株式会社きがるな 4 みなさん、Sidekiqは使っていますか?
confidential Sidekiqとは バックグラウンドジョブ処理ライブラリ 【開発・運用面のメリット】 • Redisをバックエンドに使用したシンプルな構成 • リトライ、スケジューリング、監視が可能 • ダッシュボード
【パフォーマンス】 • 高速で信頼性の高い処理 • ワーカー数を調整可能でスケーラブル • メモリ使用量が少ない 株式会社きがるな 5
confidential インプレッション集計ジョブ 株式会社きがるな 6 投稿がタイムラインに表示される • 投稿が取得されるたびにインプレッションをカウント • 毎カウントでDB更新するのは負荷が高い •
カウントをキャッシュしてDB更新頻度を下げたい → インプレッション集計ジョブ作成
confidential インプレッション集計ジョブの実装 1. 取得投稿ID+ユーザーID をRedisにキャッシュ 2. Jobをキューイング (5分後に実行) 3. インプレッション数を
Bulk Update 投稿取得 ↓ Redisに投稿IDをキャッシュ ↓ Job実行を5分後に設定 株式会社きがるな 7
confidential インプレッション集計ジョブの実装 株式会社きがるな 8 1. 取得投稿ID+ユーザーID をRedisにキャッシュ 2. Jobをキューイング (5分後に実行)
3. インプレッション数を Bulk Update ジョブ実行 ↓ Redisの排他制御で リロードによる重複カウントを防ぐ ↓ インプレッション数を更新
confidential インプレッション集計ジョブ 株式会社きがるな 9 投稿がタイムラインに表示される 非同期でジョブを実行
confidential インフラ構成簡易図(APIサーバ) 株式会社きがるな 10 Fargate ElastiCache Serverless (Valkey) Amazon Aurora
Serverless v2 Amazon EventBridge Amazon S3
confidential インフラ構成簡易図(APIサーバ) 株式会社きがるな 11 Fargate ElastiCache Serverless (Valkey) Amazon Aurora
Serverless v2 Amazon EventBridge Amazon S3 既存のリソースを利用して FargateにSidekiq用のコンテナを追加 ElastiCacheをSidekiqで利用
confidential Sidekiq用のコンテナを作成 株式会社きがるな 12 Fargate ElastiCache Serverless (Valkey) コンテナ コンテナ
confidential Sidekiq用のコンテナを作成 株式会社きがるな 13 Fargate ElastiCache Serverless (Valkey) コンテナ コンテナ
接続エラー
confidential エラー原因 • 使用していたValkeyがクラスタ構成 • Sidekiqはクラスタ構成のValkey(Redis)に対応していませんでした 以下、SidekiqのGitHubより抜粋 (https://github.com/sidekiq/sidekiq/wiki/Using-Redis#architecture) 株式会社きがるな 14
confidential 構成変更 株式会社きがるな 15 Fargate ElastiCache Serverless (Valkey) コンテナ コンテナ
廃止
confidential 構成変更 株式会社きがるな 16 Fargate コンテナ Amazon SQS Active Job
confidential まとめ • ドキュメントをしっかりと読もう • 特に外部接続が発生する場合、接続先との相性を確認しよう みなさん、最近はVibe Codingでの実装が多いのでは? 最近ドキュメントをちゃんと読んでますか? 株式会社きがるな
17
confidential おわり ご清聴ありがとうございました。 株式会社きがるな 18 <Casusult をよろしく