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
0
3
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
53
Other Decks in Technology
See All in Technology
データ戦略部門 紹介資料
sansan33
PRO
1
3.7k
RDS の負荷が高い場合に AWS で取りうる具体策 N 連発/a-series-of-specific-countermeasures-available-on-aws-when-rds-is-under-high-load
emiki
1
310
このままAIが発展するだけでAGI達成可能な理由
frievea
0
100
綺麗なデータマートをつくろう_データ整備を前向きに考える会 / Let's create clean data mart
brainpadpr
3
520
Codexとも仲良く。CodeRabbit CLIの紹介
moongift
PRO
0
210
React19.2のuseEffectEventを追う
maguroalternative
0
250
OCI Network Firewall 概要
oracle4engineer
PRO
2
7.9k
AWS IoT 超入門 2025
hattori
0
340
今この時代に技術とどう向き合うべきか
gree_tech
PRO
1
1.6k
Digitization部 紹介資料
sansan33
PRO
1
5.5k
『OCI で学ぶクラウドネイティブ 実践 × 理論ガイド』 書籍概要
oracle4engineer
PRO
3
220
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3k
Featured
See All Featured
Music & Morning Musume
bryan
46
6.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
Producing Creativity
orderedlist
PRO
347
40k
How to train your dragon (web standard)
notwaldorf
97
6.3k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Building Adaptive Systems
keathley
44
2.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
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 をよろしく