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
SQS の使い方を わかっていなかった / I didn't know how to use ...
Search
Kizashi Nagata
September 21, 2023
Technology
0
520
SQS の使い方を わかっていなかった / I didn't know how to use SQS correctly
Kizashi Nagata
September 21, 2023
Tweet
Share
More Decks by Kizashi Nagata
See All by Kizashi Nagata
ビルドが遅い
kizashi1122
0
320
aws-vault を使った セキュアなアクセスキー管理 / Manage AWS Access Key More Securely By Using aws-vault
kizashi1122
0
810
inotify の話 / About inotify
kizashi1122
0
550
B2Bクラウドサービスをゼロから立ち上げて、利用社数が1000社を超えるまでの道のり / a startup started B2B SaaS business from ground zero
kizashi1122
0
870
Rails でつくるマルチテナント型Webアプリケーション / multi-tenant web application building with Rails
kizashi1122
1
2.5k
Other Decks in Technology
See All in Technology
私なりのAIのご紹介 [2024年版]
qt_luigi
1
120
フロントエンド設計にモブ設計を導入してみた / 20241212_cloudsign_TechFrontMeetup
bengo4com
0
1.9k
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
260
PHPからGoへのマイグレーション for DMMアフィリエイト
yabakokobayashi
1
170
ハイテク休憩
sat
PRO
2
140
Amazon Kendra GenAI Index 登場でどう変わる? 評価から学ぶ最適なRAG構成
naoki_0531
0
110
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
530
Jetpack Composeで始めるServer Cache State
ogaclejapan
2
170
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
100
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
290
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
33
1.5k
How to Ace a Technical Interview
jacobian
276
23k
Unsuck your backbone
ammeep
669
57k
Gamification - CAS2011
davidbonilla
80
5.1k
Code Reviewing Like a Champion
maltzj
520
39k
Speed Design
sergeychernyshev
25
670
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
2
170
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Practical Orchestrator
shlominoach
186
10k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
440
Transcript
SQS の使い方を わかっていなかった nakanoshima.dev #34 - 開発しくじり先生 LT会 2023/09/21 株式会社インゲージ
永田 兆
自己紹介 • 永田 兆(ながた きざし) • @kizashi1122 • 2014年よりインゲージ社(創業メンバー) ◦ 創業時よりCTO ◦
Re:lation(次のページ)の開発 ◦ バックエンドやインフラを担当 2
サービス紹介
Re:lation では非同期処理が多い 4
非同期処理 5 ECS ECS Elasticache (Redis) • Rails を使ってるので非同期処理といえば ActiveJob
(バックエンドは Sidekiq) • Rails で閉じているのであればこれが便利で楽
非同期処理 6 ECS ECS SQS Lambda • S3 の PUT
タイミングでSQSにメッセージをおくることができる • Lambda から ECS にコミュニケーションをとるのであればSQSが楽 • エンキュー側とデキュー側で言語が分かれるのであればSQSが楽 Send (enqueue) Receive (dequeue) S3
最初の構成 7 ECS ECS SQS • ほぼリアルタイムにさばけている
最初の構成(ユーザ数増) 8 ECS ECS SQS • エンキュー>>デキューとなる。 • キュー内にメッセージが滞留することが多くなる。 •
処理が追いつかない。遅延。対策せねば。
9 ここでしくじった 当時、しっかりとSQSを理解できていなかった
実際にとった対策 10 ECS ECS SQS • 2つめのキューを作成した • エンキュー側はリクエストに応じて複数キューにメッセージを振り分けた •
遅延問題は解消はした ECS SQS
さらに増えた 11 ECS ECS SQS ECS SQS ECS SQS ECS
何が問題なのか • 負荷が増えるたびに以下の作業とデプロイが必要になる ◦ キュー増設 ◦ エンキュー側のプログラム修正 ◦ デキュー側のプログラム追加 •
負荷が少ないときにリソースが無駄になる • デキューサイドが 1 タスクなので耐障害性がさがる 12
現在 13 ECS SQS ECS • キューは 1 つでデキューするタスクを増やした •
これらのタスクは同一なので(同じタスク定義)なのでスケール可能 • SQS上のメッセージ数をトラッキングしてデキュー側のタスクをオートスケールし ている CloudWatch
14 インゲージではエンジニアを募集しています!