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
5
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
69
Other Decks in Technology
See All in Technology
Eight Engineering Unit 紹介資料
sansan33
PRO
0
6.2k
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.9k
Everything As Code
yosuke_ai
0
500
善意の活動は、なぜ続かなくなるのか ーふりかえりが"構造を変える判断"になった半年間ー
matsukurou
0
320
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
19k
Redshift認可、アップデートでどう変わった?
handy
1
130
複雑さを受け入れるか、拒むか? - 事業成長とともに育ったモノリスを前に私が考えたこと #RSGT2026
murabayashi
1
1.4k
RALGO : AIを組織に組み込む方法 -アルゴリズム中心組織設計- #RSGT2026 / RALGO: How to Integrate AI into an Organization – Algorithm-Centric Organizational Design
kyonmm
PRO
3
850
「違う現場で格闘する二人」——社内コミュニティがつないだトヨタ流アジャイルの実践とその先
shinichitakeuchi
0
150
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
530
自己管理型チームと個人のセルフマネジメント 〜モチベーション編〜
kakehashi
PRO
5
2.2k
AI: The stuff that nobody shows you
jnunemaker
PRO
1
160
Featured
See All Featured
New Earth Scene 8
popppiees
0
1.3k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
110
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
How to build a perfect <img>
jonoalderson
1
4.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
The Limits of Empathy - UXLibs8
cassininazir
1
200
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
590
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
31
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 をよろしく