teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

使い分けについて追記。

2020/08/18 13:45

投稿

Umeeeh
Umeeeh

スコア1493

answer CHANGED
@@ -1,6 +1,8 @@
1
1
  SNS の配送が失敗した場合、SNS は時間を開けて 最大 3回まで再試行します。
2
2
  再試行がすべて失敗した場合はSNSは配送を諦めてしまうので、通知は取りこぼされます。
3
3
 
4
- http の場合は、サーバーがダウンしたとき、応答がなくタイムアウト(15秒)したとき、HTTP 500応答が有ったとき、などに失敗します。
4
+ http の場合は、サーバーがダウンしたとき、応答がなくタイムアウト(15秒)したとき、HTTP 500応答が有ったとき、などに失敗します。SQSの場合は、アプリケーションの処理が成功するまでキューに残ってますので、取りこぼしが起きにくいのがメリットです。
5
5
 
6
+ 使い分けとしては、通知の取りこぼしを許容できる場合かつ、上記で書いたような失敗するケースは気にしなくていいなら httpで問題ないと思います。取りこぼしが許容できない場合、または、通知が失敗する可能性が高い場合は、SQSを考えたいところです。また、サーバーのスペック、台数などを試算して、費用が安い方を選ぶという考え方もあると思います。
7
+
6
- SQSの場合、アプリケーションの処理成功するまでキューに残てますので、取りこぼしが起きにくいがメリットで
8
+ ただ、SQSは 順序保証されない、重複することがあるといた、クセがあるので、SQSの特徴をよ理解してから採用しなと、困ったことになる場合ありますので、ドキュなどを読ん 理解した上で使ってください

1

再試行の時間について一言追記。

2020/08/18 13:45

投稿

Umeeeh
Umeeeh

スコア1493

answer CHANGED
@@ -1,4 +1,4 @@
1
- SNS の配送が失敗した場合、SNS は 3回まで再試行します。
1
+ SNS の配送が失敗した場合、SNS は時間を開けて 最大 3回まで再試行します。
2
2
  再試行がすべて失敗した場合はSNSは配送を諦めてしまうので、通知は取りこぼされます。
3
3
 
4
4
  http の場合は、サーバーがダウンしたとき、応答がなくタイムアウト(15秒)したとき、HTTP 500応答が有ったとき、などに失敗します。