はじめに
こんにちは、SCSKの中村です。
今回は、AWSの疎結合アーキテクチャ(SQS、SNS)について、試験対策に役立ちそうなポイントをまとめていきたいと思います。各サービスの概要についてはご存じの体で記事を書かせていただきます。
AWSの疎結合アーキテクチャで覚えておくべきポイント
Amazon SQS(Amazon Simple Queue Service)
①特徴
- メッセージは処理や削除が終わるまで格納
- 受信者と送信者の間でバッファとして動作
②SQSで実現可能なこと
- 非同期処理を使用して各ステップからの応答を素早く取得
- ジョブインスタンス数を増やすことでパフォーマンスとサービス要件を処理
- メッセージがキューに残るため失敗したステップからの回復が簡単
③キューのタイプ
③-1. 標準キュー
- 少なくとも1回の配信
- APIアクションあたり1秒あたりのトランザクション数はほぼ無制限
- 必ずしも時系列ではない
③-2. FIFOキュー
- メッセージが処理されるのは1回
- 時系列処理
- 1秒当たり最大300件のメッセージをサポート
④ユースケース
④-1. 適したユースケース
- ワークキュー
- バッファ操作
- バッチ操作
- リクエストのオフロード
- スケーリングトリガー
④-2. 適さないケース
- 特定のメッセージを選択して処理
→選択は不可
- 大きなメッセージ
→1メッセージあたりのサイズは最大256KB
⑤デッドレターキューサポート
繰り返し何回失敗したらデッドレターキューに送り込み、正常な処理の邪魔しないようにする
⑥可視性タイムアウト
一旦取り出しをかけるとインビジブル(見えないように)にする。タイムアウト値のチューニングが必要
→複数サーバによる重複処理を避ける
⑦ロングポーリング
アプリケーションサーバがキューの中にメッセージを取りに行く際、メッセージがないと「なし」と返ってくる待機時間を調整。新しくキューが入ってきたらメッセージを取得
→ ポーリング回数がコストにつながる=空のキューにリクエストするとその分コストかかる
Amazon SNS(Amazon Simple Notification Service)
①特徴
- トピックの分岐先(サブスクライバー)を複数作成可能
- 1つのイベントに対して複数のアクション
- 単一発行メッセージ
- オプションの取り消し不可
- HTTP/HTTPSの再試行
- 順序と配信の保証なし
- CloudWatchアラームと連携してメールを飛ぶようにする仕組みに用いられる
②サブスクリプションタイプ
- Eメール
- HTTP/HTTPS
- SMS
- SQS
- Lambda
③ユースケース
- アプリケーションとシステムのアラート
- プッシュ型電子メールとテキストメッセージング
- モバイルプッシュ通知
まとめ
疎結合アーキテクチャ(SQS、SNS)に関連する覚えておくと役立ちそうなポイントは以上です。少しでもお役に立てれば幸いです。
以上