公開日:2024年10月21日最終更新日: 2024年10月24日
AWSから気軽にメールを送付できるサービスとして「Amazon SES」が存在します。今までにAWSを利用したことがある人は、名称を耳にしたことがあるのではないでしょうか。今回は、AWSでスマートにメールを送付するためにも、Amazon SESについて理解を深めていきましょう。
目次 <Contents>
Amazon SESとは
SESは「Simple Email Service」の頭文字を取ったもので、AWSに含まれるフルマネージド型のメール配信サービスです。本来、システムなどからメールを送信する際は、メールサーバーを準備しなければなりません。メールサーバーとは、以下のような機能を有するものです。
- メール送信(SMTP)
- メール受信(POP3/IMAP)
- ユーザー認証
- スパムフィルタリング/ウイルススキャン
- 自動返信
- メーリングリスト管理
- アーカイブ機能
本来は自分でサーバーを準備し、機能をインストールしなければなりませんが、AWSならサービスを有効化するだけで利用できます。発行される認証情報を利用して、メール送信をリクエストするだけで済むため、開発効率を大きく高められるのです。
なお、シンプルさから「送信専用のメールサーバー」として利用されることが多々あります。しかし、実際にはメールの受信も可能であるため、誤解しないようにしましょう。ただ、一般的なメールシステムのように、パソコンやスマートフォンのメーラーでその内容を受信することはできません。AWSの特定領域に保存されるだけの仕組みです。
AWS SNSとの違い
同じくAWSからメールを配信するサービスとして、AWS SNSが存在します。こちらはメールやプッシュ通知の送信に対応するマネージドサービスです。事前に設定しておいたイベントが発生した際に、登録しておいた内容に沿ってメール送信やプッシュ通知などの送信ができます。ただ、事前に送信するタイミングや内容を登録しておく必要があり、タイミングと内容の柔軟性には欠けるものです。Amazon SESはメール送信に特化していますが、内容は柔軟に変更できるため、どのような用途で利用するかで使い分けします。
Amazon SESのメリット
AWSでのメール配信に、Amazon SESを採用するメリットを紹介します。
設定作業が少ない
「Simple」と銘打っているように、設定作業が少なく、簡単に導入できることがメリットです。AWSのサービスらしく、最短であれば10分ほどで作業が終了します。実際に作業する時間は短く、待機時間が含まれるため、簡単にスタートできるサービスと表現して差し支えないでしょう。
またAWSのサービスからは簡単に呼び出してメール送信できるようになっています。設定作業も送信の実装も簡単なのです。
スケーラビリティを確保できる
フルマネージドサービスであり、スケーラビリティを自動的に確保できることがメリットです。例えば、短時間で大量にメールを送信するようなサービスでも、自動的に多くのリソースを割り当ててくれます。
もし、自分自身でメールサーバーを用意するならば、大量送信時にサーバーへかかる負荷を考慮する必要があります。しかし、Amazon SESならば自動的にリソースの拡張がおこなわれるため、特に考慮は必要ありません。
低価格で利用できる
Amazon SESを経由したメール送信は非常に低価格です、小規模なシステムであれば、ほぼコストインパクトを与えないでしょう。具体的には、インバウンド・アウトバウンドともに「0.10 USD/1,000 件」の基本料金が設定されています。
Amazon SESでメールを送付する基本設定
メールを送信するためには、保有しているドメインとの連携作業が必要です。具体的にどのような作業が必要であるか理解しましょう。
ドメインの準備
最初にメール送信に利用するドメインを手配しなければなりません。個別にレジストラで契約する方法はありますが、今回はAmazonのRoute 53で取得したドメインを利用します。ドメインの取得については割愛しますが、今回はドメインが存在する前提で解説します。
SES(サンドボックス)への登録
ドメインの取得が完了していれば、実際にAmazon SESで利用するために認証を進めます。コンソールに「使用を開始」のボタンが用意されているため、こちらをクリックしましょう。
最初にユーザ認証のような作業が求められます。SESからいくつかメールが送られてくるので、受信できるアドレスを入力してください。
続いて、送信ドメインを入力します。今回はRoute 53で取得したドメインを入力しました。完了すれば「次へ」をクリックしましょう。確認画面が表示されるため、こちらは「Get started」をクリックします。
サンドボックス環境が準備されれば作業が完了です。
送信ドメインを検証
登録したドメインの所有者を確認する手続きが必要であり「DNS レコードを取得」をクリックします。
いくつものレコードが表示されるため、Route 53などドメインを管理しているサービスでDNSレコードを追加してください。
10分ほど待機すると、ドメインが検証済になります。
こちらの作業を完了させることで、メールサーバーへのアクセスに必要な認証情報を利用できるようになります。
SMTP情報の取得
SMTPの設定をアプリケーションなどへ組み込むことで、Amazon SESからメールを送付できます。「SMTP設定」をクリックして情報を取得してください。
Amazon SESでメールサービスを構築する際のポイント
Amazon SESは非常に魅力的なサービスではありますが、利用にあたっては注意点もあるため、理解しておきましょう。
ログの出力設定
デフォルトでは、Amazon SESの動作に関連するログは出力されないようになっています。そのため、メール送信のログを管理したいならば、出力する設定を済ませなければなりません。「Virtual Deliverability Manager」と呼ばれる機能も有効にすることで、メール送信などに関連するログなどを管理できるようになります。
ただ、これはAmazon SESの追加機能であり、別料金が発生してしまいます。有効化する場合、画像の赤枠部分「Virtual Deliverability Manager の使用を開始する」をクリックします。
事前に設定しておくことによって、ログを参照できるようになります。ただ、ログの保存期間が30日と短めであるため、中長期的な保存はS3などに転送する仕組みの構築が必要です。
専用IPアドレスの活用
基本的にAmazon SESからメールを送信する際は、AWSが採番したIPアドレスを利用しています。ただ、場合によっては専用のIPアドレスから送信できるような仕組みを検討しなければなりません。
例えば、受信する側が特定のIPアドレスからのメールを受信するようなセキュリティ制御を掛けている場合などです。このような条件下では、追加機能で専用IPアドレスを割り振らないと、システムが正常に動作しないなどの問題を起こしてしまいます。
ただ、逆に専用IPアドレスを利用することによって問題が生じることも考えられます。例えば、受信側のプロバイダが新しいIPアドレスからの大量送信を自動的に拒否するなどです。この場合はIPアドレスの評価を高める必要があり、既に十分な評価を受けているSESの共有IPアドレスを利用した方が良いかもしれません。絶対に専用IPアドレスが良いというわけではないため、臨機応変な使い分けが求められます。
Mail Managerの活用
Amazon SESの便利機能としてMail Managerと呼ばれるものが、2024年5月にアップデートリリースされました。機能の概要を簡単に述べると「受信メールゲートウェイ」です。今まで、Amazon SESにメールが送信された際に「自動的に検知して、Lambdaで通知する」など、簡単な処理は実装できました。しかし、Mail Managerを利用することで、メール受信時により複雑な処理を実装できるようになります。ただ、月額50ドルの追加料金がかかるため、その点は注意が必要です。
Mail Managerの有効化
利用を開始する際は、コンソールの「Mail Manage」から「Mail Manager の使用を開始」をクリックしましょう。
いくつもの使い方ができるため、それら全てを紹介することはできません。コンソールからどのような機能があるか確認してみてください。
今回は、Mail Managerの機能である「メールを受信した際に自動的にアーカイブする」という仕組みだけに絞って以下は解説します。
まず、トラフィックポリシーの作成をクリックして実際に作成していきます。
受信内容を許可したり拒否したりできますが今回はメールの受信を許可して、それに沿ったアクションを起こせるようにします。「許可」を選択し「トラフィックポリシーを作成」をクリックします。
続いて、具体的なアクションであるルールセットを作成します。基本的には、いきなりルールを作成して差し支えありませんが、アーカイブしたい場合は、事前にアーカイブ先の設定が必要です。今回は例としてアーカイブを紹介するため、以下のとおりアーカイブ先を作成します。
名称と期間を指定して作成します。
こちらを作成した後に「ルールセットの作成」をクリックすることで、ルールの作成画面が表示されます。ルール条件とアクションを指定して保存しましょう。今回はすべてのメールをアーカイブする設定ですが、本来は所定の件名やアドレスだけをアーカイブするなどの使い方が考えられます。
このような設定を済ませておくことで、Amazon SESで受信したメールをS3などにアーカイブすることが可能です。
まとめ
AWSで簡単にメールを送信できるAmazon SESを紹介しました。フルマネージドサービスであり、簡単な事前設定だけでメールサーバを利用できます。送信が中心のアプリケーションであれば、Amazon SESを活用して実装すると良いでしょう。
ただ、事前設定に不足があると、受信側にメールを拒否されるなどの問題に発展しかねません。また、ログを取得したいならば、機能を事前に有効化しておく必要があります。部分的に注意点があるためそれをクリアしてから活用するようにしてください。