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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuto Uchima
October 08, 2025
Technology
0
7
beelt-aws-job
環境依存LT会(BEELT #11)での登壇資料。
Yuto Uchima
October 08, 2025
Tweet
Share
More Decks by Yuto Uchima
See All by Yuto Uchima
Sidekiq+Valkey Serverlessでハマった話
sabinuki
1
83
Other Decks in Technology
See All in Technology
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.5k
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
350
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.5k
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
0
930
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
68k
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
170
What happened to RubyGems and what can we learn?
mikemcquaid
0
300
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
450
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
180
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
170
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.9k
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
Building Applications with DynamoDB
mza
96
6.9k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
110
The Limits of Empathy - UXLibs8
cassininazir
1
210
The Pragmatic Product Professional
lauravandoore
37
7.1k
Docker and Python
trallard
47
3.7k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
sira's awesome portfolio website redesign presentation
elsirapls
0
150
The untapped power of vector embeddings
frankvandijk
1
1.6k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
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 をよろしく