AWS Service Comparison Matrix (Messaging)¶
メッセージング・キューサービスの選定判断材料。
History¶
| 日付 | 内容 |
|---|---|
| 2026-05-28 | 初版作成 |
| 2026-10-10 | 初版から更新なし。AWS公式ドキュメント・サービス仕様との整合を再確認する必要あり(要レビュー、#911) |
Queue: SQS vs Kinesis Data Streams vs MSK (Kafka)¶
| 比較項目 | SQS | Kinesis Data Streams | MSK (Kafka) |
|---|---|---|---|
| ドキュメント | SQS | Kinesis | MSK |
| 課金モデル | \$0.40/100 万リクエスト (料金) | シャード時間 + PUT (料金) | ブローカー時間 + ストレージ (料金) |
| 主用途 | 非同期タスクキュー、デカップリング | リアルタイムデータストリーミング | 大規模イベントストリーミング |
| SLA | 99.99% | 99.99% | 99.95% |
| 学習コスト | 低い | 中程度 | 高い (Kafka 運用知識必要) |
| スケーリング | 自動 (実質無制限、Standard) | シャード追加 (On-Demand で自動) | ブローカー追加 |
| 主要サービス制限 | メッセージ 256KB、FIFO 3000 msg/s、可視性タイムアウト 12 時間、保持 14 日 (Quotas) | レコード 1MB、シャード書込 1MB/s・1000 rec/s、保持 365 日 (Quotas) | メッセージ 1MB (設定変更可)、ブローカー数/パーティション数はクラスタータイプ依存 (Quotas) |
| コスト (常時高負荷) | 安い (リクエスト従量) | 中程度 (シャード時間) | 高い (ブローカー常時課金) |
| コスト (バースト) | 安い (従量課金) | 中程度 (On-Demand) | 高い (最小構成 ~\$200/月) |
| 配信モデル | Pull (ポーリング) | Pull (シャードイテレータ) | Pull (Consumer Group) |
| 順序保証 | ⚠️ (FIFO キューで保証、Standard は Best Effort) | ✅ (シャード内で保証) | ✅ (パーティション内で保証) |
| 重複排除 | ✅ (FIFO キュー) | ❌ (アプリ側で対応) | ❌ (アプリ側で対応) |
| メッセージ保持 | 最大 14 日 | 最大 365 日 | 無制限 (Tiered Storage) |
| メッセージサイズ | 256 KB (拡張で 2 GB via S3) | 1 MB | 1 MB (設定変更可) |
| スループット | 実質無制限 (Standard)、3,000 msg/s (FIFO) | シャードあたり 1 MB/s 書込、2 MB/s 読取 | ブローカースペック依存 |
| 複数コンシューマー | ❌ (1 メッセージ 1 コンシューマー) | ✅ (Enhanced Fan-Out) | ✅ (Consumer Group) |
| リプレイ | ❌ (消費後削除) | ✅ (任意時点から再読み取り) | ✅ (オフセット指定) |
| Lambda 統合 | ✅ (Event Source Mapping) | ✅ (Event Source Mapping) | ✅ (Event Source Mapping) |
| DLQ | ✅ | ❌ (アプリ側で対応) | ❌ (アプリ側で対応) |
| Terraform 対応 | ✅ | ✅ | ✅ |
Guidelines¶
→ SQS を標準のメッセージキューとして採用する。 サーバーレス、従量課金、DLQ 内蔵で運用負荷が最も低い。
- リアルタイムストリーミング (ログ集約、クリックストリーム) でリプレイ・複数コンシューマーが必要 → Kinesis Data Streams
- 大規模イベントストリーミングで Kafka エコシステム (Connect、Streams) を活用したい → MSK
- 順序保証 + 重複排除が必要な場合は SQS FIFO を採用 (スループット制限に注意)
- MSK は最小コストが高いため、小〜中規模では Kinesis を推奨
Event Bus: EventBridge vs SNS vs SQS¶
| 比較項目 | EventBridge | SNS | SQS |
|---|---|---|---|
| ドキュメント | EventBridge | SNS | SQS |
| 課金モデル | \$1.00/100 万イベント (料金) | リクエスト + 配信 (料金) | \$0.40/100 万リクエスト (料金) |
| 主用途 | イベント駆動アーキテクチャ、AWS サービス連携 | Fan-Out (1:N 配信) | Point-to-Point キュー (1:1) |
| SLA | 99.99% | 99.99% | 99.99% |
| 学習コスト | 中程度 (イベントパターン) | 低い | 低い |
| スケーリング | 自動 | 自動 | 自動 |
| 主要サービス制限 | イベントサイズ 256KB、ルール 300/バス、ターゲット 5/ルール、スループット 10,000/s (リージョン) (Quotas) | メッセージ 256KB、サブスクリプション 12,500,000/トピック (Quotas) | メッセージ 256KB、FIFO 3000 msg/s (Quotas) |
| コスト (常時高負荷) | 中程度 (イベント従量) | 安い | 安い |
| コスト (バースト) | 安い (従量課金) | 安い (従量課金) | 安い (従量課金) |
| 配信モデル | Push (ルールベース) | Push (サブスクリプション) | Pull (ポーリング) |
| ターゲット数 | 最大 5/ルール (複数ルール可) | 最大 12,500,000 サブスクリプション/トピック | 1 (キュー) |
| フィルタリング | ✅ (イベントパターン、詳細) | ✅ (サブスクリプションフィルター) | ❌ |
| スキーマ管理 | ✅ (Schema Registry) | ❌ | ❌ |
| AWS サービスイベント | ✅ (90+ サービスからの自動イベント) | ⚠️ (一部サービスのみ) | ❌ |
| SaaS 統合 | ✅ (Partner Event Sources) | ❌ | ❌ |
| アーカイブ/リプレイ | ✅ | ❌ | ❌ |
| DLQ | ✅ | ✅ (配信失敗時) | ✅ |
| 順序保証 | ❌ | ❌ (FIFO トピックで保証) | ⚠️ (FIFO キューで保証) |
| Terraform 対応 | ✅ | ✅ | ✅ |
Guidelines¶
→ イベント駆動アーキテクチャには EventBridge を標準採用する。
- AWS サービス間のイベント連携、スケジュール実行 → EventBridge
- シンプルな Fan-Out (1 つのイベントを複数 SQS キューに配信) → SNS + SQS
- 非同期タスクキュー (ワーカーパターン) → SQS
- EventBridge → SQS の組み合わせ: イベントフィルタリング + 確実な処理を両立するパターンとして推奨
- SNS → SQS (Fan-Out) パターンは引き続き有効。EventBridge で代替可能だが、既存構成の移行は不要