こんにちは。miyoshiです。
AWSクラウドプラクティショナー試験に向けた学習メモです。
今回はアプリケーションを「つなぐ」ための重要な仕組み
アプリケーションインテグレーション(Application Integration)
その代表サービスを整理しておきます。
前回の記事も一緒にご覧ください
【AWS学習メモ 】API Gatewayとは?サーバレスAPIの玄関口
✅ アプリケーションインテグレーションとは?
複数のアプリや処理を連携・統合して、全体としてスムーズに動作する仕組みのこと。
AWSでは、マイクロサービスやサーバーレス構成でもよく使われます。
たとえば:
- Webアプリで注文 → 在庫確認 → 決済 → 通知
- それぞれの処理を別々のサービスで担当
→ それらを非同期かつ安全に連携するのが「アプリケーションインテグレーション」です。
✅ 代表的なサービスと役割
サービス名 | 主な用途 | 特徴 |
---|---|---|
Amazon SQS | メッセージの順番待ち・バッファ | 後で処理する/非同期化 |
Amazon SNS | 一斉通知・ブロードキャスト | 「1対多」で通知する |
AWS Step Functions | 複雑な処理の流れを定義 | 処理の順番・条件分岐・エラー対応 |
✅ Amazon SQS(Simple Queue Service)
💡 何ができる?
- メッセージを一時的に保管して、順番に処理できる
- 送る側と受け取る側を切り離せる(非同期処理)
✅ よくある使い方
- ユーザーの注文 → SQSに入れる → 後でLambdaが処理
- ログの収集・処理のバッファとして使う
✅ 特徴
- FIFOキューで順番も保証できる
- リトライや再配信も自動
- 大量リクエストでも安定して処理できる
✅ Amazon SNS(Simple Notification Service)
💡 何ができる?
- メッセージを複数の宛先に一斉送信できる
- 通知のパブリッシュ/サブスクライブ型
✅ よくある使い方
- 新規ユーザー登録 → 管理者にメール通知
- ECアプリで注文完了 → SNS経由でメール+Lambda起動+Slack通知
✅ 特徴
- 複数の宛先(Lambda、SQS、メール、SMSなど)に同時配信
- フィルターで宛先ごとに条件分岐も可能
- 信頼性・再送も担保されている
✅ AWS Step Functions
💡 何ができる?
- 複雑な処理の順番・条件・状態遷移をグラフィカルに制御できる
- Lambdaなど複数のAWSサービスをつなげてフローを作成
✅ よくある使い方
- 本人確認 → メール通知 → DB登録 → 結果を通知
- バッチ処理やデータ変換フローを安全に自動化
✅ 特徴
- 状態管理、エラー処理、リトライ、タイムアウトなど自動
- GUIで視覚的にフローが見える(管理しやすい)
- 分岐・並列処理・待機など細かな制御が可能
✅ まとめ:使い分けのポイント
シーン | 適したサービス | 理由 |
---|---|---|
非同期に順番に処理したい | SQS | メッセージを順番待ちにできる |
複数の相手に通知したい | SNS | 一斉通知に最適 |
複雑な処理の流れを制御したい | Step Functions | 条件分岐や状態管理が得意 |
✅ 実際の連携イメージ(フロー)
ユーザーが注文ボタンをクリック
↓
API Gateway が HTTP リクエストを受信
↓
Lambda でバリデーション → SQS にメッセージを送信
↓
別の Lambda が SQS を監視し、在庫確認と処理実行
↓
処理完了後 SNS で通知(メール・Slack・アプリ通知)
↓
全体の流れを Step Functions で定義して自動制御
✅ ポイント
「同期 or 非同期?」 でまず判断
「1対1 or 1対多?」 でSQSかSNSかを選ぶ
処理が複雑なら Step Functions を検討する