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
beelt-aws-job
Search
Yuto Uchima
October 08, 2025
Technology
13
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
beelt-aws-job
環境依存LT会(BEELT #11)での登壇資料。
Yuto Uchima
October 08, 2025
More Decks by Yuto Uchima
See All by Yuto Uchima
Sidekiq+Valkey Serverlessでハマった話
sabinuki
1
180
Other Decks in Technology
See All in Technology
ブラウザで変わるID連携(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
270
顧客の要望は2次情報である 〜アンテナを張るFDEの構造論〜
noriakioji
2
640
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3.2k
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
460
RelayerというPHPのフレームワークを作った
polidog
PRO
0
140
国家プロジェクトを支える「さくらONE」 大規模LLM開発におけるGPU障害を乗り越えるクラスター運用戦略
gpuunite_official
0
290
AI開発に用いられるHPC技術について
gpuunite_official
0
290
AI画像認識を活用したゲーム内決済処理検証の自動化
gree_tech
PRO
0
510
Kiro5兄弟のいまどきのセキュリティ基礎知識
kentapapa
0
270
Kiro WebとCloud Sessions
nagisa53
2
200
巨大気象データと戦う ― サロゲートモデル学習を高速化する圧縮技術
gpuunite_official
0
280
RapidCopy2 Matrix I/Oエンジンによるファイルコピーソフトウェアの設計と実装
kengosawa2
1
410
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
My Coaching Mixtape
mlcsv
0
280
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.8k
We Have a Design System, Now What?
morganepeng
55
8.3k
For a Future-Friendly Web
brad_frost
183
10k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.5k
Transcript
ローカルでは動作するのに AWSリソース上では動作しなかった ジョブのお話し 2025.08.25 個人開発/環境依存LT会【BEELT #11】 うっちー @beerfan_biber
confidential 自己紹介 株式会社きがるな 1 こんにちは、うっちーです! (@beerfan_biber) • 株式会社きがるな 代表取締役 •
ビールが好き • Casusult(カジュサル)というサービスを開発しています
confidential プロダクト紹介 Casusult(カジュサル) • SNSクラウドソーシングプラットフォーム • 「カジュアルに相談してから契約」がコンセプト • “スキル×人柄”からワーカーの選定が可能 株式会社きがるな
2
confidential 使用技術 バックエンド • Ruby on Rails フロントエンド • React
+ TypeScript クラウド • AWS • フロントエンド: Amazon S3 + Amazon CloudFront • バックエンド: Amazon ECS(Fargate) • 監視/ログ: Amazon CloudWatch • CI/CD: GitHub Actions + AWS CodeDeploy 株式会社きがるな 3
confidential インプレッション集計ジョブ 株式会社きがるな 4 投稿がタイムラインに表示される • 投稿が取得されるたびにインプレッションをカウント • 毎カウントでDB更新するのは負荷が高い •
カウントをキャッシュしてDB更新頻度を下げたい → インプレッション集計ジョブ作成
confidential インプレッション集計ジョブ 1. 取得投稿ID+ユーザーID をRedisにキャッシュ 2. Jobをキューイング (5分後に実行) 3. インプレッション数を
Bulk Update 投稿取得 ↓ Redisに投稿IDをキャッシュ ↓ Job実行を5分後に設定 株式会社きがるな 5
confidential インプレッション集計ジョブ 株式会社きがるな 6 1. 取得投稿ID+ユーザーID をRedisにキャッシュ 2. Jobをキューイング (5分後に実行)
3. インプレッション数を Bulk Update ジョブ実行 ↓ Redisの排他制御で リロードによる重複カウントを防ぐ ↓ インプレッション数を更新
confidential インプレッション集計ジョブ 株式会社きがるな 7 投稿がタイムラインに表示される 非同期でジョブを実行
confidential Sidekiqとは バックグラウンドジョブ処理ライブラリ 【開発・運用面のメリット】 • Redisをバックエンドに使用したシンプルな構成 • リトライ、スケジューリング、監視が可能 • ダッシュボード
【パフォーマンス】 • 高速で信頼性の高い処理 • ワーカー数を調整可能でスケーラブル • メモリ使用量が少ない 株式会社きがるな 8
confidential インフラ構成簡易図(APIサーバ) 株式会社きがるな 9 Fargate ElastiCache Serverless (Valkey) Amazon Aurora
Serverless v2 Amazon EventBridge Amazon S3
confidential インフラ構成簡易図(APIサーバ) 株式会社きがるな 10 Fargate ElastiCache Serverless (Valkey) Amazon Aurora
Serverless v2 Amazon EventBridge Amazon S3 既存のリソースを利用して FargateにSidekiq用のコンテナを追加 ElastiCacheをSidekiqで利用
confidential Sidekiq用のコンテナを作成 株式会社きがるな 11 Fargate ElastiCache Serverless (Valkey) コンテナ コンテナ
confidential Sidekiq用のコンテナを作成 株式会社きがるな 12 Fargate ElastiCache Serverless (Valkey) コンテナ コンテナ
接続エラー
confidential エラー原因 • 使用していたValkeyがクラスタ構成 • Sidekiqはクラスタ構成のValkey(Redis)に対応していませんでした 以下、SidekiqのGitHubより抜粋 (https://github.com/sidekiq/sidekiq/wiki/Using-Redis#architecture) 株式会社きがるな 13
confidential 構成変更 株式会社きがるな 14 Fargate ElastiCache Serverless (Valkey) コンテナ コンテナ
廃止
confidential 構成変更 株式会社きがるな 15 Fargate コンテナ Amazon SQS Active Job
confidential どうやって原因を見つけたのか 1. Claude Codeに原因調査をさせる → AWSの環境を理解していないため、嘘をつきまくる (プロンプトエンジニアリングをしっかりやれば結果は変わりそう) 2. エラー内容をGoogle検索する
→ 検索にヒットせず 3. 接続環境の設定とログを調査 → 各リソースのログをすべて確認 4. ローカル環境とAWS環境の差分を調査 → 今回は、RedisではなくValkeyを使用していることが環境差分 株式会社きがるな 16
confidential どうやって原因を見つけたのか 1. AIに原因調査をさせる → AWSの環境を理解していないため、嘘をつきまくる (プロンプトエンジニアリングをしっかりやれば結果は変わりそう) 2. エラー内容をGoogle検索する →
検索にヒットせず 3. 接続環境の設定とログを調査 → 各リソースのログをすべて確認 4. ローカル環境とAWS環境の差分を調査 → 今回は、RedisではなくValkeyを使用していることが環境差分 株式会社きがるな 17 結局ここが大切
confidential 今回のハマりポイント 【Sidekiq(ライブラリ)】 Valkeyは使用可能、クラスタ構成はNG(Redisも同様) 【ログ】 接続エラー系のログのみを出力→接続設定が原因だと思い込む 【サーバーレス環境】 リソースの裏側がブラックボックス 【AI活用】 プロンプトエンジニアリングが足りていない
株式会社きがるな 18
confidential おわり ご清聴ありがとうございました。 株式会社きがるな 19 <Casusult をよろしく