【IT】Amazon SES 構築ガイド(1)|設定手順と運用ベストプラクティス
皆さま、こんにちは
今回から3回に渡りAmazon SES 構築について対応内容を投稿させていただきます。
はじめに
最近、個人開発で「安定して通知メールを送信したい」というニーズが高まっています。
私の場合は、会員ログイン時の二要素認証(ワンタイムパスコード送信) にメールを利用したいと考えました。
ところが実際にメール送信サービスを探すと、いくつか壁がありました。
SendGrid:以前は個人でも使えましたが、現在は法人契約が前提で個人開発では利用が難しい。(有償であっても個人契約不可)
他のメール配信サービス(無料プラン):無料枠はあっても到達率が低く、迷惑メールに入りやすい。
他のメール配信サービス(有償プラン):品質は高いものの、月額費用が高額で個人開発にはオーバースペック。
そんな中で見つけたのが Amazon SES (Simple Email Service) です。
AWS アカウントさえあれば利用可能
送信数ベースの従量課金(東京リージョンで 1,000通あたり $0.10)
DKIM / SPF / DMARC に標準対応し、高い到達率を実現
👉 「コストを抑えつつ、高い到達率を確保できる」という点で、個人開発の二要素認証メール用途に最適だと感じました。
この記事では、そんな Amazon SES を実際に使い始めるための 設定手順とベストプラクティス をまとめます。
1. SESとは?
Amazon Simple Email Service (SES) は、AWS が提供する高可用・低コストなメール送信サービス。
通知メール・取引メール・認証メールなどを安全に配信できる。
特徴
高い到達率(DKIM/SPF/DMARC対応)
AWSのインフラで大規模送信にも対応
SMTP/SDK/CLIで利用可能
2. 初期設定
AWSアカウントにログイン
リージョンを ap-northeast-1(東京) に設定
SESサービスを開く
3. 認証方法
メールアドレス認証
簡易利用時は送信元アドレスを検証ドメイン認証(推奨)
本番運用では必須。ドメインを所有していることを証明し、DNSレコードを追加する。
4. DNSレコード設定(合計6つ)
SESで本番運用するには、ドメインに以下のレコードを設定する必要がある。
(1) DKIM(DomainKeys Identified Mail)
3つの CNAMEレコード を設定
鍵長は RSA 2048bit が推奨
(2) カスタム MAIL FROM ドメイン
2つのレコードを設定
MXレコード
TXTレコード (SPF)
(3) DMARC(Domain-based Message Authentication, Reporting & Conformance)
1つの TXTレコード を設定
👉 合計で 6レコード をDNSに登録する。
DNS登録について
DNS登録は、契約されているプロバイダーの手順に従ってください。
多くの場合、Web管理画面から実施でき、反映には数時間〜1日程度かかる場合があります。
参考:お名前.comの手順
5. SPFについて
SPF(Sender Policy Framework)は「このドメインから送信していいサーバーはこれです」と宣言する仕組みです。
📌 例えるなら → 郵便物に押される「差出人証明スタンプ」 のようなものです。
スタンプが押されていれば「正規の差出人から来た」と判断される
スタンプが無ければ「怪しい郵便物(迷惑メール)」とみなされる
もし SPF を設定していないと:
なりすましメール扱いで迷惑フォルダ行き
受信側サーバーで拒否される
👉 Amazon SES では、カスタム MAIL FROM ドメインを設定する際に SPF レコードを置くことで、このチェックを通過できます。
記述例:
mail.example.com. IN TXT "v=spf1 include:amazonses.com -all"・`include:amazonses.com` → SES サーバーからの送信を許可
・`-all` → それ以外のサーバーからの送信は不正とみなす
👉 SPF を設定することで、受信側に「このメールは正しい経路で送られている」と証明でき、到達率が大幅に改善します。
💡Tips:MAIL FROM と SPF の関係
SPF 判定は「表示されるFrom」ではなく MAIL FROM ドメイン に対して行われます。
一方、もし From を `no-reply@example.com` にしたい場合は、MAIL FROM も `example.com` になるため、`example.com` 側に SPF を追加する必要があります。
DMARC 判定は ヘッダーFrom(表示用アドレス) に対して行われるため、どちらのドメインをFromに使うかで配置場所が変わります。
👉 ベストプラクティスは、MAIL FROM 専用のサブドメイン(例:`mail.example.com`)を用意し、From も合わせて運用することです。
6. 検証方法
dig/nslookup コマンドで DNS伝播を確認
Gmail で受信後、右上の︙メニュー → 「メッセージのソースを表示」 以下を確認します。
`spf=pass`
`dkim=pass`
`dmarc=pass`
7. チェックリスト
DKIM 3件設定済み
MAIL FROM ドメイン設定済み
SPF(TXT)がMAIL FROMに反映済み
DMARC TXT設定済み
GmailでSPF/DKIM/DMARC=pass 確認済み
📖 Amazon SES 構築ガイド シリーズ一覧
(1)Amazon SES 構築ガイド(1)|設定手順と運用ベストプラクティス(本記事)
では
次回に!
