はじめに
AWS DVA取得に向けた勉強の一環です。
新たな学びがあったら随時追記していきます。
正確性は保証しませんので参考程度に見てください。
概要
- Simple Queue Service
- メッセージキューイングサービス
- マイクロサービスなどで、システム間を非同期接続して疎結合にする
- SQSでは送信側=プロデューサー、受信側=コンシューマー
タイプ
Standardキュー
- 配信順序と重複排除を保証しない
FIFOキュー
- 配信順序(FIFO)と重複排除を保証する
- 処理効率は低い
メッセージの取得
ポーリング
- ショートポーリング
- デフォルト
- すぐにレスポンスを返す
- ロングポーリング
- 一定時間(最大20秒)の滝後にレスポンスを返す
- リクエスト回数が減ってコストは抑えられるが、レイテンシが発生する
メッセージ制御
- 可視性タイムアウト
- ポーリングされたキューが一定期間ほかのコンシューマから見えなくなる
- 30秒~12時間を設定可能
- 配信遅延
- メッセージが入ってから、取得できるようにするまで遅延させる
- 最大90秒を設定可能
- デッドレターキュー
- 処理に失敗したメッセージを別のキューに移動させる
メッセージの属性
- メッセージボディ
- メッセージ属性の設定と利用
セキュリティ
- IAMポリシーを使用したアクセス制御
- 暗号化
- サイバーサイドの暗号化が可能(SSE-SQS、SSE-KMS)
エラーハンドリング
- デッドレターキュー(DLQ)の設定と利用方法
- エラーハンドリングのベストプラクティス
SQSのスケーラビリティ
- 高可用性と耐障害性
- 負荷分散の仕組み
SQSと他のAWSサービスの連携
- AWS Lambdaとの統合
- SNS(Simple Notification Service)との併用
パフォーマンスとコスト
- SQSのパフォーマンスに関する考慮事項
- コストモデルと料金の計算
SQSのベストプラクティス
- メッセージ設計の注意点
- 適切なキューの選択と管理