Application Integration
カテゴリ概要
AWS の Application Integration サービスは、分散システムにおけるコンポーネント間の疎結合な連携を実現するための基盤を提供する。メッセージキュー、Pub/Sub、イベントバス、ワークフローオーケストレーションなど、イベント駆動アーキテクチャとメッセージベースのデカップリングを中心とするサービス群である。マイクロサービス間の非同期通信やサーバーレスアプリケーションの構築に不可欠となる。
サービス連携の全体像
Application Integration サービスは、イベント駆動アーキテクチャの各段階を担うサービスを組み合わせて使う。典型的な流れは以下の通り。
イベント発生 メッセージング/ルーティング 処理オーケストレーション 後続処理
API Gateway ──→ ┌─ Step Functions ──→ Lambda
AppSync ─────→ EventBridge ──→ SNS ──→ SQS ──┤ ECS
外部サービス ──→ MQ └─ 直接実行 ─────────→ 外部 API
S3
- イベント発生: API Gateway や AppSync がクライアントからのリクエストを受け取り、外部サービスや AWS サービスがイベントを発行する
- メッセージング/ルーティング: EventBridge がイベントをルールベースでルーティングし、SNS がファンアウト(1対多)配信、SQS がキューイング(バッファリング)を担う
- 処理オーケストレーション: Step Functions が複数ステップにまたがるワークフローを可視化・制御し、エラーハンドリングやリトライを管理する
- 後続処理: Lambda、ECS、外部 API など、実際のビジネスロジックを実行するコンピューティングサービスに処理を引き渡す
主要サービス
Amazon SQS(Simple Queue Service)
フルマネージドのメッセージキューサービス。プロデューサーとコンシューマーを疎結合にし、処理の非同期化とバッファリングを実現する。標準キュー(高スループット・at-least-once)と FIFO キュー(順序保証・exactly-once)の2種類を提供する。
Amazon SNS(Simple Notification Service)
フルマネージドの Pub/Sub メッセージングサービス。1つのメッセージを複数のサブスクライバー(SQS、Lambda、HTTP エンドポイント、メール等)にファンアウト配信する。メッセージフィルタリングにより、サブスクライバーごとに必要なメッセージだけを受信できる。
Amazon EventBridge
サーバーレスのイベントバスサービス。AWS サービス、SaaS アプリケーション、カスタムアプリケーションからのイベントをルールベースでルーティングする。スキーマレジストリによるイベント構造の管理、Pipes によるポイントツーポイント統合、Scheduler による時刻ベースのイベント発行にも対応する。
AWS Step Functions
サーバーレスのワークフローオーケストレーションサービス。複数の AWS サービスをステートマシンとして可視化・連携し、分岐・並列処理・エラーハンドリング・リトライを宣言的に定義できる。Standard ワークフロー(長時間実行・exactly-once)と Express ワークフロー(短時間・高スループット)を使い分ける。
Amazon MQ
Apache ActiveMQ と RabbitMQ のマネージドブローカーサービス。既存のオンプレミスアプリケーションが JMS、AMQP、STOMP、MQTT などの業界標準プロトコルを使用している場合に、最小限のコード変更でクラウドに移行できる。
AWS AppSync
GraphQL と Pub/Sub API のフルマネージドサービス。DynamoDB、Lambda、RDS、OpenSearch など複数のデータソースを統合し、単一の GraphQL エンドポイントで提供する。リアルタイムサブスクリプションとオフラインデータ同期にも対応する。
Amazon API Gateway
REST API、HTTP API、WebSocket API を作成・公開・管理するフルマネージドサービス。認証・認可、スロットリング、キャッシュ、リクエスト変換などの API 管理機能を提供する。Networking カテゴリでも重要な位置づけのサービスである。
サービス選定の指針
| ユースケース | 推奨サービス |
|---|---|
| 非同期処理のキューイング・バッファリング | SQS |
| 1対多のファンアウト配信 | SNS |
| イベントベースのルーティング・SaaS 連携 | EventBridge |
| 複数ステップのワークフロー管理 | Step Functions |
| 既存 MQ プロトコル(JMS/AMQP 等)の移行 | Amazon MQ |
| GraphQL API・リアルタイムサブスクリプション | AppSync |
| REST / HTTP / WebSocket API の公開・管理 | API Gateway |
| SNS + SQS の組み合わせ | ファンアウト後の個別キュー処理 |
| EventBridge + Step Functions の組み合わせ | イベント駆動ワークフロー |