■SES・SNS・SQS の比較
SES ... Simple Email Service
SMTPサーバの代替サービス
メールの大量送信や、顧客へのメール送信、メールの受信を行う
信頼されたメールへ送ることを前提としているので、「メールアドレスで仮登録」のような仕組みとは相性が良くない(後述の「SES メール送信 > メール送信のベストプラクティス」を参照)
設定や運用に不備があると、サービスを停止される可能性があるので注意しつつ使用する
SNS ... Simple Notification Service
メッセージをプッシュ通知する
HTTP、メール、SMS、SQS、Push(Apple、Google、Windowsなど)に送ることができる
メールに通知する場合、
「トピック作成 → AWSにメールアドレス登録 → AWSから送信される英語メールでURLをクリックして送信承認」
という承認が必要なフローとなるので注意
SQS ... Simple Queue Service
メッセージキューの管理
キューに対して任意のメッセージを送り、ポーリング(プル)によって別のアプリケーションからそのキューのメッセージを取得する
例えば動画変換など非常に時間がかかる処理があった場合、1リクエストで完結させようとするとタイムアウトやネットワークの専有が発生する
これを「動画変換の受け付け → 動画変換完了の通知」という仕組みにすることにより、バックグラウンドで処理を行わせることができる
その際のキューの管理を行う
「仮登録のためにメールアドレスを入力してもらい、本登録用のURLを送信する」
「問い合わせフォームの自動返信メールを送信する」
のような用途にはどれも向かないかもしれない(不特定多数のアドレスに送ることになるため)
SESやSNSでメールを送信するとしても、EC2からのメール送信が不要になるわけでは無さそう
ただしバウンスの処理をきちんと行うなら、SESでのメール送受信でひととおり対応できるかもしれない