キューワーカー
メッセージキューからタスクを取り出して非同期に処理するバックグラウンドプロセス
キューワーカーとは
キューワーカーは、メッセージキュー (SQS) からタスクを取り出して非同期に処理するバックグラウンドプロセスである。API のレスポンスを高速化し、重い処理をバックグラウンドに逃がす。
同期処理 vs キューワーカー
同期処理と キューワーカー の違いを図で示す。
同期処理:
API → 画像リサイズ (5秒) → レスポンス
→ ユーザーが 5 秒待つ
キューワーカー:
API → SQS にメッセージ送信 → レスポンス (即座)
SQS → Lambda (バックグラウンドで画像リサイズ)
→ ユーザーは待たない
ユースケース
キューワーカーは、リクエストの応答時間に含めたくない重い処理を非同期に実行する場面で使われる。API はメッセージをキューに投入して即座にレスポンスを返し、ワーカーがバックグラウンドで処理を進める。
| ユースケース | 構成 |
|---|---|
| 画像・動画処理 | API → SQS → Lambda |
| メール送信 | API → SQS → Lambda → SES |
| データ変換 | S3 → SQS → Lambda → S3 |
| 注文処理 | API → SQS → Step Functions |
SQS vs EventBridge
SQS と EventBridge の違いを以下にまとめる。
| 観点 | SQS | EventBridge |
|---|---|---|
| パターン | キュー (1 対 1) | イベントバス (1 対多) |
| 順序保証 | FIFO キューで保証 | なし |
| リトライ | 自動 (VisibilityTimeout) | DLQ |
| 用途 | バックグラウンド処理 | イベント駆動 |
実践的な知識は関連書籍でも得られる。
この記事は役に立ちましたか?
関連用語
SNS と SQS
AWS のメッセージングサービスで、SNS がパブリッシュ/サブスクライブ、SQS がメッセージキューを提供する
SQS FIFO キュー
メッセージの順序保証と厳密な 1 回配信を提供する Amazon SQS のキュータイプ
Lambda
AWS のサーバーレスコンピューティングサービスで、コードをイベント駆動で実行する
メッセージキュー
プロデューサーとコンシューマーを非同期に接続し、メッセージを一時的に保持する通信基盤
デッドレターキュー
処理に失敗したメッセージを退避させ、後から調査・再処理するためのキュー
Pub/Sub
発行者と購読者が直接通信せず、メッセージブローカーを介して非同期にメッセージを交換するパターン
関連する記事
セキュリティ本ガイド - Web 開発者が読むべき技術書の選び方
Web セキュリティの基礎から実践まで学べる技術書の選び方マトリクスと、読了後にやるべき 3 つのアクションを紹介します。
エラーメッセージを読めるエンジニアは何が違うのか
エラーが出たときに冷静に原因を特定できる人と、パニックになる人。その差は経験だけでなく、読んできた本の種類にあります。デバッグ力を支える読書の傾向を分析します。
バグを生むのは知識不足ではなく想像力不足である
バグの多くは、コードを書いた時点で「こういうケースもありうる」と想像できなかったことが原因です。想像力を鍛える読書法と、エッジケースへの感度を高める方法を解説します。