EC2でホストされているWebアプリケーションがあります。 2つのUbuntuサーバーを使用します。1つはWebサーバー、もう1つはデータベースサーバーです。 WebサーバーにはパブリックElasticIPが割り当てられています。次に、アプリケーションから通知メール(他のユーザーによるシステムの変更に関する通知)を送信します。最も簡単な解決策は、Postfix SMTPサーバーをWebサーバーにインストールし、そのElastic IPをAmazon電子メールサーバー登録フォームに登録することです(逆引きDNSの登録、メール転送制限の削除など)。これが問題なく機能することを願っています(間違っている場合は修正してください)。
Webサーバーの負荷が増加した場合は、Webサーバーのレプリカを使用して追加のEC2インスタンスを開始し、それらの前にAmazonのロードバランサーをセットアップし、Elastic IPをこのロードバランサーに再マッピングして、外部からは単一のように見えるようにする予定です。サーバ。しかし、SMTPサーバーではどうでしょうか。
最善の解決策は、これらの各WebサーバーでローカルPostfixサーバーを実行することだと思います。これにより、すべてのWebサーバーで実行されているアプリケーションは、常にlocalhost経由でローカルPostfixサーバーに接続します。それでも、1つのパブリックIPがあるため、外部からは1つのメールサーバーが実行されているように見えます。しかし、私はSMTPに関する専門家ではなく、メール送信プロセスの仕組みなども専門ではありません。
おそらく私はそのようなセットアップを壊す原因となる何かに気づいていません。このアプローチは大丈夫だと思いますか?
AWS IPの多く(すべて?)がすでにスパムソースとしてブラックリストに登録されているので、それらから送信されるメールの配信可能性はあまり良くないというのが私の印象です。
また、AWSホストをメールサーバーとして使用することは、未配信の電子メールと一緒にいつでも消えてしまう可能性があるため、私には悪い選択のように思えます。
各AWSホストに、アウトバウンドメールを処理するために支払われるサービス、または約24時間年中無休で利用できるVPSまたは制御する従来のサーバーのいずれかにメールを渡す方が理にかなっています。これにより、SPFレコードの設定などがはるかに簡単になり、誰かがあなたのメールを見る可能性が最大になります。
その他のアイデアについては、 大量メール送信用のSMTPサービスの推奨事項 または Amazon EC2からのSendmailリレー? を参照してください。
私はすでに答えを知っていると思います。 SMTPサーバーはエラスティックロードバランサーを介してトンネリングせずに直接メールを送信するため、これは機能しません。そのため、それらのIPはロードバランサーに割り当てられたパブリックIPとは異なり、逆引きDNSは一致しないため、メールはスパムとしてマークされる可能性があります。したがって、SMTPサーバーを実行するには、IPが一定のサーバーが1つ必要なようです。