0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon SQSのユースケースとAWSサービスとの連携例

Posted at

Amazon SQSとは?

Amazon Simple Queue Service(SQS)は、分散アプリケーション間で非同期にメッセージを送受信できるマネージド型のメッセージキューサービスです。SQSを活用することで、システムの疎結合化、スケーラビリティ向上、耐障害性の強化が可能になります。


Amazon SQSのユースケース

1. 非同期処理の実装

async_processing.png

:ECサイトの注文処理

  • ユーザーが注文を確定すると、注文情報をSQSに送信。
  • バックエンドで在庫確認や決済処理を非同期で実行。

2. マイクロサービス間の疎結合化

microservices_decoupling.png

:異なるマイクロサービス間のデータ連携

  • 直接API通信をせず、SQSを経由することで、マイクロサービスの独立性を向上。

3. バッチ処理のトリガー

batch_trigger.png

:データ処理パイプライン

  • SQSに蓄積したデータをLambdaやEC2のバッチジョブで一定間隔ごとに処理。

4. システムの耐障害性向上

fault_tolerance.png

:分散システムのリカバリ

  • 一時的な障害が発生しても、SQSがメッセージを保持し、システムが復旧した後に処理を再開可能。

標準キュー(Standard Queue)とFIFOキューの違い

🟢 標準キュー(Standard Queue)

  • 特長

    • 高スループット(秒間数万メッセージ)
    • ベストエフォートの順序保証(順番が変わる可能性あり)
    • 少なくとも1回の配信(メッセージが重複する可能性あり)
  • 適用例

    • スケーラブルな非同期処理(例:ログ処理、行動分析)
    • 順序が厳密でなくてもよいシステム

🔵 FIFOキュー(First-In-First-Out Queue)

  • 特長

    • メッセージの順序保証
    • 重複排除(Exactly-Once Processing)
    • スループットは標準キューより低め(最大3,000メッセージ/秒)
  • 適用例

    • 金融取引の処理(決済処理など)
    • タスクのワークフロー管理(ジョブキュー)

AWSサービスとの連携例

1. AWS Lambda + SQS(イベント駆動の非同期処理)

📌 :画像アップロード → SQS → Lambdaでサムネイル生成

2. Amazon EC2 / ECS + SQS(ワーカー処理)

📌 :動画変換ジョブをキューに送信 → EC2が順次処理

3. Amazon SNS + SQS(ファンアウトパターン)

📌 :注文通知をSNSで複数のSQS(在庫管理、請求処理、メール通知)に配信

4. Amazon EventBridge + SQS(イベント駆動型アーキテクチャ)

📌 :S3のオブジェクト削除イベント → SQS経由でログ保存処理を実行


まとめ

標準キュー:高スループット、順序保証なし、重複あり → 汎用的な非同期処理向け
FIFOキュー:順序保証、重複なし → 厳密な順序管理が必要なケース向け
AWSサービスと組み合わせることで、柔軟でスケーラブルなアーキテクチャを構築可能


Amazon SQSを活用して、より効率的で信頼性の高いシステムを構築しましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?