Cloud Service
Amazon SES (Simple Email Service)
アプリからメールを送受信するためのスケーラブルなメール配信サービス。到達性とコストに優れる。
基礎DVA-C02運用上の優秀性
最終更新: 2026-06-14公式ドキュメント ↗
TL;DR要点だけ先に
- 1.アプリのメール送受信を担うマネージドなメール配信基盤。
- 2.API/SMTPで送信し、受信や認証・到達性の機能も備える。
- 3.通知やマーケメールを安価に大量送信でき、従量課金。
解決する課題
- アプリから確認メール・通知・パスワードリセットなどを送りたい
- 自前のメールサーバを持たず到達性とスケールを確保したい
- 大量のトランザクション/マーケメールを安価に従量課金で送りたい
- 受信メールを受け取り、後続処理(S3保存やLambda起動)へ流したい
主要概念と用語
- 検証済みID(Verified Identity): 送信元として使うドメインまたはメールアドレス。送信前に所有を検証する
- サンドボックス: 初期状態の制限モード。検証済み宛先にしか送れない。本番利用は解除申請が必要
- SMTPインターフェース / SES API: メール送信の2つの経路。既存SMTPクライアントからも、API直叩きからも送れる
- 設定セット(Configuration Set): 送信に紐づけるルールの束。イベント発行やIP管理などをまとめる
- イベント発行: 送信・配信・バウンス・苦情・開封などのイベントをSNSやデータ配信先へ送る仕組み
- バウンス / 苦情(Complaint): 宛先不達や受信者の迷惑メール報告。放置すると評価が下がる
- 専用IP / 共有IP: 送信に使うIPアドレス。専用IPは評価を自分で管理できる
- SES受信(Inbound): 受信メールをルールセットでS3保存・Lambda起動・SNS通知などへ振り分ける
仕様・制限・クォータ
- 送信はSES APIまたはSMTPから行う
- アカウントには送信レート(秒あたり)と1日あたり送信上限のクォータがあり、利用実績に応じて拡大される
- 初期はサンドボックスで、検証済みの宛先にしか送信できない。本番送信には解除が必要
- バウンス率・苦情率には許容上限の目安があり、超えると送信停止のリスクがある
- 添付やメッセージサイズには上限がある
まずサンドボックス解除
新規アカウントはサンドボックス状態で、任意の宛先に送れません。本番でユーザーへ送るには本番アクセス(サンドボックス解除)の申請が前提になります。
内部の仕組み
アプリはAPIまたはSMTPでSESにメッセージを渡し、SESがマネージドな送信基盤から実際のメールを配信します。送信時にはDKIM署名やSPF/DMARCといった認証情報を付与でき、受信側からの信頼を高めて到達性を確保します。
送信の結果として生じる配信・バウンス・苦情・開封・クリックなどのイベントは、設定セットを介してSNSやデータ配信先へ流せます。これにより、不達アドレスの除外やダッシュボード集計といった運用を自動化できます。
受信側では、受信ルールセットにマッチしたメールをS3への保存やLambdaの起動、SNS通知などへ振り分けられ、メールをトリガーにした処理を組めます。
到達性は認証で決まる
DKIM・SPF・DMARCを正しく設定することが、迷惑メール判定を避け到達率を保つ近道です。送信ドメインの認証はSESの肝です。
設計パターン / ベストプラクティス
- **アプリ→SES(API/SMTP)**でトランザクションメール(登録確認・通知・領収書)を送る
- 設定セット+イベント発行→SNS/データ配信先でバウンス・苦情を捕捉し、不達アドレスを自動で除外
- 専用IPのウォームアップ: 大量送信前に徐々に量を増やし、IP評価を育てる
- マーケメールとトランザクションメールで送信元・IPを分離し、評価への影響を切り分ける
- 受信フローはSES受信→S3/Lambdaでサーバーレスに処理する
- 認証情報は環境変数やSecrets Managerに置き、コードへ直書きしない
運用・監視
- バウンス率・苦情率を継続監視し、しきい値に近づいたら原因の宛先リストを是正する
- バウンス・苦情イベントを購読し、サプレッションリスト(送信抑止リスト)を活用して不達先への再送を防ぐ
- 送信レート/日次上限の使用状況を把握し、必要に応じて引き上げを申請する
- CloudWatchで送信数・配信・バウンス・苦情などのメトリクスを可視化しアラームを設定する
バウンス・苦情の放置は危険
不達や苦情を放置すると評価が低下し、最悪は送信停止に至ります。イベントを必ず購読し、問題のある宛先を送信対象から外してください。
コスト
- 送信したメール数に対する従量課金が基本で、自前のメールサーバ運用より安価になりやすい
- 受信メール数や、専用IPの利用、データ転送などに応じた料金が加わる
- 大量送信でも固定費が小さく、トラフィックに比例してコストが伸びる
セキュリティ
- IAMで送信・受信操作の権限を制御し、SMTPは専用の認証情報を発行して使う
- 送信元IDの検証(ドメイン/アドレス)で、なりすまし送信を防ぐ
- DKIM署名で改ざん検知と認証を行い、SPF/DMARCと組み合わせて信頼性を高める
- VPC内からの送信や、受信メールのS3保存時の**暗号化(KMS)**を利用できる
Well-Architected の観点
- 運用上の優秀性: イベント発行とサプレッションで、バウンス対応や到達性管理を自動化できる
- 信頼性: マネージドな送信基盤で、スケールと冗長性をAWS側に任せられる
- コスト最適化: 従量課金で、メール基盤の固定費と運用負荷を削減できる
試験で問われるポイント
頻出
- アプリからのメール送信=SES(通知の同報はSNS、メールサーバ自体はSES)
- 新規アカウントはサンドボックスで、本番送信には解除申請が必要
- バウンス・苦情の管理とDKIM/SPF/DMARCによる到達性確保が要点
- 送信はAPI/SMTP、受信はS3/Lambda連携で処理できる
関連サービス・比較
| 観点 | SES | SNS |
|---|---|---|
| 主な用途 | アプリからのメール送受信 | Pub/Subの通知同報 |
| 宛先 | 個別の受信者へメール | 購読者全員へプッシュ |
| チャネル | メール(API/SMTP) | メール/SMS/Lambda/SQS等 |
| 強み | 大量メールの到達性とコスト | 疎結合な同報・ファンアウト |
ハンズオン / CLI例
# 送信元IDを検証 → サンドボックス内で検証済み宛先へテスト送信
aws ses verify-email-identity --email-address sender@example.com
aws ses send-email \
--from sender@example.com \
--destination "ToAddresses=verified-user@example.com" \
--message "Subject={Data=Hello},Body={Text={Data=SES test mail}}"
AWS Service
Amazon SES (Simple Email Service)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
アプリ統合
比較で見る軸
クラウド: AWS / カテゴリ: アプリ統合 / 難易度: basic
導入後に効く点
API/SMTPで送信し、受信や認証・到達性の機能も備える。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
数字・仕様の読み方
- クラウド
- AWS
- カテゴリ
- アプリ統合
- 難易度
- basic
- 関連資格
- DVA-C02
- 設計柱
- operational
判断チェックリスト
- 自社の用途が「アプリ統合 / operational」に近いか確認する。
- 強みである「アプリのメール送受信を担うマネージドなメール配信基盤。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。