Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
1
Amazon  Simple  Email  Service  
(Amazon  SES)
AWS  Black  Belt  Tech  Webinar  2014  (旧マイスターシリーズ)
吉荒  祐⼀一
2
アジェンダ
•  Amazon SESとは?
•  Amazon SES利利⽤用開始までの流流れ
•  メール配信の信頼性を維持するために
–  SPF
–  DKIM
–  バウンス処理理
•  EC2インスタンスからのメール送信
•  ...
3
Amazon  SESとは?
•  スケーラブル・⾼高信頼・低コストなEmail送信サービス
–  AWSが管理理するクリーンに保たれた(Spammer登録などされていない)⼤大きなIPア
ドレスプールを使ってメール送信可能
–  MTAを...
4
Amazon  SESのコンセプト
Bounce
Complaint
Suppression  List
Verification
Authentication
Sending  Limits
Content  Filtering
Reput...
5
Amazon  SESによるEmail送信
〜~HTTP  REST  API〜~
•  他のAWSサービスと同様にSDK等からコール
–  SendEmail  API:  From,  To,  Subject,  Bodyだけを⽤用意...
6
Amazon  SESによるEmail送信
〜~SMTPエンドポイント〜~
•  ⽣生成済みEmailメッセージを受け取って送信するSESのSMTP
エンドポイント
–  ポート:  25  /  465(SMTP  over  SSL) ...
7
SMTPエンドポイント⽤用IAMユーザの作成-‐‑‒1
8
SMTPエンドポイント⽤用IAMユーザの作成-‐‑‒2
送信⽤用ユーザの
名前(任意)を⼊入⼒力力
9
SMTPエンドポイント⽤用IAMユーザの作成-‐‑‒IAM
10
SMTPエンドポイント⽤用IAMユーザの作成-‐‑‒3
このクレデンシャルを
SMTPクライアントに
設定
11
SMTPエンドポイントを使う際の注意点
•  デフォルトではEC2から外向きTCP  25番ポートは制限対象
–  Spamのリレーを防ぐ
–  誤ったSpam送信から利利⽤用者様を守る
•  リージョンが異異なる場合、SESのエンドポイ...
12
配信メトリクスのモニタリング
•  配信メトリクスはコンソール  /  APIでモニタリング可
–  Deliveries:  
–  Bounces:  
–  Complaints:
–  Rejects:  
13
配信メトリクスの表⽰示:rate
14
配信メトリクスの表⽰示:number
15
送信クォータ
•  送信クォータ:送信可能メール数及びレート
§  2つのしきい値
§  SendingQuota:  24時間で送信出来るメールの最⼤大数
§  現時点で送れる数  =  SendingQuota  -‐‑‒  直...
16
送信クォータについて
•  24時間あたりの送信クォータは、送信要求を⾏行行った時
から24時間以前の送信数で判断します。⽇日付が変わっ
てもリセットされません。
•  送信クォータは、受信者の数で計算されます。50件の
受信者を持つメー...
17
Amazon  SES  Dashboard
18
アクセスレベル
•  アクセスレベル
–  サンドボックス(初期状態)
•  指定されたアドレスにのみ送信可(Verify済みのe-‐‑‒mailアドレス)
•  ⼩小さな送信クォータ
–  200通/24時間
–  最⼤大送信率率率 1...
19
Suppression  List機能
•  Suppression  List:ハードバウンスしたEmailアドレス
が登録されるリスト
–  登録済みアドレスに送信を試みた場合は、SESへのCallは成功するが、
SESから外部へは送...
20
コンテンツフィルタリング
•  多くのISPやユーザーにおいて、望まないメールの流流⼊入を防⽌止するため
にコンテンツフィルタリングを実施
•  Amazon  SESでもコンテンツフィルタリングを実施
•  アプリケーションからの送信リ...
21
料料⾦金金
•  メッセージ送信リクエスト料料⾦金金
–  1,000  通当たり  0.10  USD
•  但し、複数の受信者に送信された単⼀一のEメールは、各受信者への固有のメッセージとしてカウント
•  添付ファイル料料⾦金金
–...
22
無料料利利⽤用枠
•  Amazon  EC2インスタンスから直接、またはAWS  
Elastic  Beanstalkを介してAmazon  SESを呼び出す際
には、毎⽇日無料料で2,000件のメッセージを送信可能。
•  1年年が...
23
Amazon  SES利利⽤用時の注意点
•  コンテンツ・送信先リストの正しい管理理運⽤用が必須
–  BounceやComplaintの処理理を⾏行行っていないと送信レートの抑制や送信停⽌止
措置が取られる事もある
(IPアドレスプー...
24
Amazon  SES利利⽤用開始までの流流れ
25
利利⽤用開始までの流流れ
•  (SMTPエンドポイント⽤用IAMユーザの作成)
•  送信元Emailアドレス  /  ドメインの登録
•  Emailが送信できることを確認
•  バウンス処理理の実装とテスト
•  プロダクションアク...
26
1-‐‑‒a.  送信元Emailアドレスの登録
•  単⼀一のEmailアドレスを登録する場合
この後届く確認メールに
書かれたリンクをクリック
すれば登録完了了
27
1-‐‑‒a.  送信元Emailアドレスの登録
28
1-‐‑‒a.  送信元Emailアドレスの登録
29
1-‐‑‒b.  送信元ドメインの登録  
表⽰示されたレコードをド
メインのDNSレコードに
登録してしばらく待てば
登録完了了
30
1-‐‑‒b.  送信元ドメインの登録  
31
1-‐‑‒b.  送信元ドメインの登録
Amazon  Route  53によるTXTレコード作成
32
1-‐‑‒b.  送信元ドメインの登録
Amazon  Route  53によるTXTレコード作成
33
1-‐‑‒c.  メールアドレス/ドメイン登録の注意点
•  登録はリージョン単位です
•  ドメインを登録すると、そのサブドメインからもSESを使⽤用してメールを送信可能
–  例例えば「example.com」を登録すると、「a.ex...
34
2.  Emailが送信できることを確認
•  マネージメント
コンソール
•  CLI
•  SDK
$  aws  ses  send-‐‑‒email  
–from  alice@example.com  
-‐‑‒-‐‑‒to ...
35
3.  バウンス処理理の実装とテスト
36
3.  バウンス処理理の実装とテスト
SNSトピックを設定することでSNSが
対応する各種プロトコルへの通知も可
例例:  HTTP,  HTTPS,  SQS
デフォルトではBounce、Complaint
のNotificationがE...
37
SESメールボックスシミュレータ
•  success@simulator.amazonses.com
•  正常配信
•  bounce@simulator.amazonses.com
•  Delivery  Status  Noti...
38
SESメールボックスシミュレータ
•  success@simulator.amazonses.com
•  正常配信
•  bounce@simulator.amazonses.com
•  Delivery  Status  Noti...
39
4.  プロダクションアクセスの申請
http://aws.amazon.com/ses/fullaccessrequest/
40
5.  Notoficationをモニタリング
•  バウンスレートは5%未満を推奨
•  Complaintは0.1%未満を推奨
https://sesblog.amazon.com/blog/tag/complaint+rate
htt...
41
メール配信の信頼性を維持するために
42
SMTPにおける送信元認証のための技術
•  送信元IPアドレスに基づく認証
–  Sender  Policy  Framework  (SPF)
–  Sender  ID
à 各ドメインでメール送信元であるべきホストのIPアドレス...
43
SPFの設定例例  (SESの場合)
•  送信元サーバの逆引き結果が*.example.comである場合に正
当な送信者であると宣⾔言する場合の設定例例
–  ⼀一致しない場合はソフトフェイルとする場合
example.com. TXT...
44
2.  署名付きEmail送信
From:  foo@sender.com
To:  bar@receiver.com
DKIM-‐‑‒Signature:  s=xyz;  d=sender.com  …1.  Email送信
From...
45
2.  署名付きEmail送信
From:  foo@sender.com
To:  bar@receiver.com
DKIM-‐‑‒Signature:  s=xyz;  d=sender.com  …1.  Email送信
From...
46
SESの簡単DKIM設定機能
1.  ドメインを選択
2.  DKIMタブで有効化
3.  DNSにレコードを追加
•  Route53なら2クリック!
4.  設定完了了通知を待つ
47
SESの簡単DKIM設定機能 1.  ドメインを選択
2.  DKIMタブで有効化
3.  DNSにレコードを追加
•  Route53なら2クリック!
4.  設定完了了通知を待つ
48
SESの簡単DKIM設定機能
1.  ドメインを選択
2.  DKIMタブで有効化
3.  DNSにレコードを追加
•  Route53なら2クリック!
4.  設定完了了通知を待つ
49
SESの簡単DKIM設定機能-‐‑‒Amazon  Route  53
50
Bounce処理理の実装
51
SMTPの正常時のシグナリング
sender.example.com
HELO  sender.example.com
250  OK
MAIL  FROM:  user@example.com
250  OK
RCPT  TO:  us...
52
SMTPのステータスコード
•  200番台
–  正常応答
–  情報提供
•  300番台
–  データ⼊入⼒力力を促す(354)
•  400番台
–  ⼀一時的なエラー:  サーバシャットダウン、メールボックスbusy、メール
ボ...
53
配信エラーメール
•  SMTPセッション時のエラー
–  送信元のMTAが作成。
–  エンベロープの発信者メールアドレスにエラーメールが戻る
(Return-‐‑‒Path  or  Errors-‐‑‒To  ヘッダに記載)
•  ...
54
バルク配信とバウンス処理理の例例(SESの場合)
顧客情報
Message  to  
each  receiver
Message
Producer
Bounce記録のあ
る宛先を除いて
送信先を抽出
送信ステート
テーブル
Amazo...
55
SESの配信通知
•  SESが正常に受信者の電⼦子メール
サーバーにメッセージを配信するた
びに、Amazon  SNSの通知を受け取
ることを選択可能に
–  E-‐‑‒mailはBounce、Complaintsのみ
•  配信、バ...
56
参考情報:  Sendy  (http://sendy.co)
•  Sendy:  メールの作成からSESでの配信やレポート作
成をワンストップで実現するパッケージソフトウェア
–  PHPとMySQLの環境があれば動作
–  Boun...
57
送信停⽌止措置について
•  下記のような場合、送信停⽌止措置が適⽤用される可能性有り
–  Bounce/Complaintレートが⾼高い状態が続く
–  Spam  Filterのヒットレートが⾼高い
•  送信停⽌止措置の警告とPr...
58
Probationの通知があった場合の対処⽅方法
•  まず理理由とProbationの間に送信可能な数を確認
–  メッセージ例例:
•  原因を取り除き、効果を確認した後、実施した改善内容を返信
–  nの値は普段送信しているボリュー...
59
SES以外のメール送信選択肢
60
AWSからのメール配信の選択肢
1.  EC2上にMail  Transfer  Agent  (MTA)を構築して配信
2.  Amazon  Simple  Email  Service  (SES)の利利⽤用
3.  外部Email...
61
EC2上にMTAを構築して配信
•  利利点
–  慣れたMTAや既存のノウハウを活かして構築・運⽤用が可能
–  携帯キャリア向けの送信ルールの適⽤用など、柔軟な制御が可能
•  注意点
–  構築・運⽤用・障害対策やスケールの調整など...
62
2つの選択肢から適切切な⽅方法を選ぶ基準
Bounce処理理
を実装予定
No
Bounce処理理はどちら
の⽅方法でも重要です。
実装しましょう。
携帯キャリア
のアドレスに
送信予定あり
Yes
Yes 1.  EC2上のMTA構築
...
63
EC2からメール送信を⾏行行う前の準備
64
SMTPエンドポイントを使う際の注意点
•  デフォルトではEC2から外向きTCP  25番ポートは制限対象
–  Spamのリレーを防ぐ
–  誤ったSpam送信から利利⽤用者様を守る
Tokyo  Region
SMTP
(TCP: ...
65
EC2でMTAを構築するまで
1.  MTAのホスト名とIPアドレスを⽤用意
–  ホスト名を決める
–  Elastic  IPを取得
–  ホストのAレコードをドメインに登録する
2.  制限解除と逆引きDNSの登録を申請する
3. ...
66
構成とDNSレコードの例例
•  DNSレコード例例
;;  example.com
@  IN  A    203.0.113.3
@  IN  MX  10  mx1
@  IN  MX  20  mx2
mx1  IN  A    ...
67
1.  MTAのホスト名とIPアドレス
•  MTAのホスト名を決める
–  例例:mta1.example.com,  mta2.example.com  
•  IPアドレスの取得
–  通常通りElastic  IPをホスト名の数だ...
68
2.  制限解除と逆引きDNSの登録を申請
•  専⽤用フォームより申請
–  AWSのHP下部
69
申請フォーム
•  メール送信の⽬目的を記⼊入
•  申請対象のEIP
•  EIPの逆引き結果
となるべきホスト
名を記⼊入
DNSの正引きの
⼀一致が必要
70
申請時の注意点
•  ユースケースはUS側で対応するため英語でご記⼊入下さ
い
–  難しい場合は担当営業にご相談下さい
•  DNS
–  正引き結果が申請内容と⼀一致する場合のみ逆引き設定を⾏行行います
–  正引きの設定をした上で申...
71
SPFの設定例例
•  送信元サーバの逆引き結果が*.example.comである場合に正当な送信者である
と宣⾔言する場合の設定例例
•  ⼀一致しない場合はソフトフェイルとする場合
example.com.TXT "v=spf1  i...
72
バルク配信とバウンス処理理の例例(EC2の場合)
smtp
顧客情報
Message  to  
each  receiver
Message
Producer
Bounce記録のあ
る宛先を除いて
送信先を抽出
送信ステート
テーブル
...
73
まとめ
•  スケーラブル・⾼高信頼・低コストなEmail送信サービス
–  AWSが管理理するクリーンに保たれた(Spammer登録などされていない)
⼤大きなIPアドレスプールを使ってメール送信可能
•  ただし、メール送信のお作法や...
74
最後に
•  メール配信の仕組みをつくるにあたって、必ず覚えて置
いていただきたい重要な点が⼆二つあります
•  受信者に価値を届けてください
•  あなたのメールが欲しい⼈人にだけ送信してください
•  Happy  Sending!
75
参考資料料
•  Amazon  Simple  Email  Service  Email  Sending  Best  
Practicesホワイトペーパー
–  http://media.amazonwebservices.com...
76
その他の参考情報
•  携帯キャリア各社からのメール送信に関する注意事項
–  送信ドメイン認証(Sender  ID/SPF)について  |  NTTドコモ
•  http://www.nttdocomo.co.jp/service/c...
77
Q&A
78
Webinar資料料の配置場所
•  AWS  クラウドサービス活⽤用資料料集
–  http://aws.amazon.com/jp/aws-‐‑‒jp-‐‑‒introduction/
Upcoming SlideShare
Loading in …5
×
Upcoming SlideShare
AWS Black Belt Tech シリーズ 2016 - Amazon SES
Next
Download to read offline and view in fullscreen.

28

Share

Download to read offline

AWS Black Belt Techシリーズ Amazon SES

Download to read offline

AWS Black Belt Tech Webinar 2014
(旧マイスターシリーズ)

Amazon SES

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

AWS Black Belt Techシリーズ Amazon SES

  1. 1. 1 Amazon  Simple  Email  Service   (Amazon  SES) AWS  Black  Belt  Tech  Webinar  2014  (旧マイスターシリーズ) 吉荒  祐⼀一
  2. 2. 2 アジェンダ •  Amazon SESとは? •  Amazon SES利利⽤用開始までの流流れ •  メール配信の信頼性を維持するために –  SPF –  DKIM –  バウンス処理理 •  EC2インスタンスからのメール送信 •  まとめ
  3. 3. 3 Amazon  SESとは? •  スケーラブル・⾼高信頼・低コストなEmail送信サービス –  AWSが管理理するクリーンに保たれた(Spammer登録などされていない)⼤大きなIPア ドレスプールを使ってメール送信可能 –  MTAを⾃自前で⽴立立てなくてもAPIを叩く事でメール送信可 •  HTTP  REST  API •  SMTP/SMTPS  endpoint –  世界3箇所のリージョンで提供(2014年年10⽉月現在) •  US-‐‑‒east-‐‑‒1,  US-‐‑‒west-‐‑‒2,  EU-‐‑‒west-‐‑‒1 •  利利⽤用⽤用途例例 –  マーケティングメールやメルマガの配信等 –  各種サービス/アプリからエンドユーザへの通知
  4. 4. 4 Amazon  SESのコンセプト Bounce Complaint Suppression  List Verification Authentication Sending  Limits Content  Filtering Reputation High-‐‑‒Quality  Email Notifications Usage  Statistics
  5. 5. 5 Amazon  SESによるEmail送信 〜~HTTP  REST  API〜~ •  他のAWSサービスと同様にSDK等からコール –  SendEmail  API:  From,  To,  Subject,  Bodyだけを⽤用意すればAmazon   SES側でメッセージを⽣生成して送信 –  SendRawEmail  API:    メッセージ全体をアプリケーション側で⽣生成し て送信 •  認証はAWS  アクセスキーとシークレットアクセスキー を使⽤用 •  アプリケーションから直接メール送信を⾏行行う場合に便便利利
  6. 6. 6 Amazon  SESによるEmail送信 〜~SMTPエンドポイント〜~ •  ⽣生成済みEmailメッセージを受け取って送信するSESのSMTP エンドポイント –  ポート:  25  /  465(SMTP  over  SSL)  /  587(Message  Submission) –  要TLS(Transport  Layer  Security) –  要認証 •  認証には専⽤用IAMユーザを作成してそのクレデンシャルを使 ⽤用 •  既存の送信⽤用SMTPサーバからリレーしたり、SMTPを前提 としてプログラムから直接利利⽤用する場合などに便便利利
  7. 7. 7 SMTPエンドポイント⽤用IAMユーザの作成-‐‑‒1
  8. 8. 8 SMTPエンドポイント⽤用IAMユーザの作成-‐‑‒2 送信⽤用ユーザの 名前(任意)を⼊入⼒力力
  9. 9. 9 SMTPエンドポイント⽤用IAMユーザの作成-‐‑‒IAM
  10. 10. 10 SMTPエンドポイント⽤用IAMユーザの作成-‐‑‒3 このクレデンシャルを SMTPクライアントに 設定
  11. 11. 11 SMTPエンドポイントを使う際の注意点 •  デフォルトではEC2から外向きTCP  25番ポートは制限対象 –  Spamのリレーを防ぐ –  誤ったSpam送信から利利⽤用者様を守る •  リージョンが異異なる場合、SESのエンドポイントもこの制限の対象 Tokyo  Region SMTP (TCP:  25) SMTPS (TCP:  465  /  587) 認証付きで外部サービスを 利利⽤用するのは特に制限なし !この制限は申請ベースで解除出来ます MTA N.  Virginia  /   Oregon  / Ireland
  12. 12. 12 配信メトリクスのモニタリング •  配信メトリクスはコンソール  /  APIでモニタリング可 –  Deliveries:   –  Bounces:   –  Complaints: –  Rejects:  
  13. 13. 13 配信メトリクスの表⽰示:rate
  14. 14. 14 配信メトリクスの表⽰示:number
  15. 15. 15 送信クォータ •  送信クォータ:送信可能メール数及びレート §  2つのしきい値 §  SendingQuota:  24時間で送信出来るメールの最⼤大数 §  現時点で送れる数  =  SendingQuota  -‐‑‒  直近24時間に送信した数 §  SendingRate:  秒間あたりに送信出来るメールの最⼤大数 §  GetSendQuota  API  or  マネージメントコンソールで確認可 –  送信クォータを超えるとスロットリング •  送信クォータを増やすには? –  実績に応じて⾃自然に増えていく •  良良質なコンテントをQuotaに近い量量送信していると増えます –  急にクォータを増やす必要があるときには? •  下記フォームからご申請下さい http://aws.amazon.com/ses/extendedaccessrequest/ 454  Throttling  failure:  Maximum  sending  rate  exceeded 454  Throttling  failure:  Daily  message  quota  exceeded
  16. 16. 16 送信クォータについて •  24時間あたりの送信クォータは、送信要求を⾏行行った時 から24時間以前の送信数で判断します。⽇日付が変わっ てもリセットされません。 •  送信クォータは、受信者の数で計算されます。50件の 受信者を持つメールを1通発信した場合、クォータの計 算では50とカウントされます。
  17. 17. 17 Amazon  SES  Dashboard
  18. 18. 18 アクセスレベル •  アクセスレベル –  サンドボックス(初期状態) •  指定されたアドレスにのみ送信可(Verify済みのe-‐‑‒mailアドレス) •  ⼩小さな送信クォータ –  200通/24時間 –  最⼤大送信率率率 1通/秒 –  プロダクション •  送信先に制限なし •  送信クォータは実績によって決定、下記からのスタート –  1,000通/24時間 –  最⼤大送信率率率 5通/秒 •  アクセスレベルをプロダクションに上げるには? –  申請フォームからご申請下さい •  http://aws.amazon.com/ses/fullaccessrequest/
  19. 19. 19 Suppression  List機能 •  Suppression  List:ハードバウンスしたEmailアドレス が登録されるリスト –  登録済みアドレスに送信を試みた場合は、SESへのCallは成功するが、 SESから外部へは送信されずにハードバウンスとして処理理される –  アカウントを越えて共有 –  ⼀一度度登録されると2週間程度度は残る(⼿手動削除は可) •  Suppression  Listの役割 –  バウンスを起こし続ける事で送信元ドメインやSESのIPアドレスプー ルの評判が落落ちないよう保護
  20. 20. 20 コンテンツフィルタリング •  多くのISPやユーザーにおいて、望まないメールの流流⼊入を防⽌止するため にコンテンツフィルタリングを実施 •  Amazon  SESでもコンテンツフィルタリングを実施 •  アプリケーションからの送信リクエストを受け取ると、Amazon  SES はメールメッセージを組⽴立立て(assemble)、ISPがSpamと⾒見見做さないか、 HeaderとBodyをスキャンします。もしAmazon  SESによりSpamの ように⾒見見えると判断された場合は、Amazon  SES内の評価 (Reputation)が低下 •  ウイルスやマルウェアが含まれるメッセージを検出するとブロックし、 これらが送信されるのを未然に防⽌止
  21. 21. 21 料料⾦金金 •  メッセージ送信リクエスト料料⾦金金 –  1,000  通当たり  0.10  USD •  但し、複数の受信者に送信された単⼀一のEメールは、各受信者への固有のメッセージとしてカウント •  添付ファイル料料⾦金金 –  0.12  USD  /  GB •  データ転送料料⾦金金はEC2のデータ転送料料⾦金金と同じ –  受信は無料料 –  送信は複数Tier •  各⽉月の最初の1GBまでは無料料(その他のサービスも合算) •  各⽉月の次の10TBまでは0.12  USD/GB  (us-‐‑‒east-‐‑‒1,  us-‐‑‒west-‐‑‒2,  eu-‐‑‒west-‐‑‒1) •  詳細は  http://aws.amazon.com/ec2/pricing/#DataTransfer 注:リージョンを越えた送信は送信元リージョンからのリージョン間転送料料⾦金金が追加適⽤用 (2014年年10⽉月現在、Tokyoリージョンでは0.09  USD/GB)
  22. 22. 22 無料料利利⽤用枠 •  Amazon  EC2インスタンスから直接、またはAWS   Elastic  Beanstalkを介してAmazon  SESを呼び出す際 には、毎⽇日無料料で2,000件のメッセージを送信可能。 •  1年年が過ぎても有効期限は切切れません。 •  注:  ただしデータ転送料料⾦金金は適⽤用されます。
  23. 23. 23 Amazon  SES利利⽤用時の注意点 •  コンテンツ・送信先リストの正しい管理理運⽤用が必須 –  BounceやComplaintの処理理を⾏行行っていないと送信レートの抑制や送信停⽌止 措置が取られる事もある (IPアドレスプールをクリーンに保つとともに、世の中のメールの信頼 性・健全性向上を促すため) –  Spamと判定されるようなメールを定常的に配信していると送信停⽌止措置 の可能性あり •  国内モバイルキャリア等の迷惑メールフィルタとは相性悪い 1.  迷惑メールフィルタに引っかかった場合にBounceエラーが返る 2.  SESのSuppression  Listに送信先アドレスが登録される 3.  ホワイトリストされたドメインからもメールが送れなくなる
  24. 24. 24 Amazon  SES利利⽤用開始までの流流れ
  25. 25. 25 利利⽤用開始までの流流れ •  (SMTPエンドポイント⽤用IAMユーザの作成) •  送信元Emailアドレス  /  ドメインの登録 •  Emailが送信できることを確認 •  バウンス処理理の実装とテスト •  プロダクションアクセスを申請 •  NotoficationをモニタリングしながらEmail送信
  26. 26. 26 1-‐‑‒a.  送信元Emailアドレスの登録 •  単⼀一のEmailアドレスを登録する場合 この後届く確認メールに 書かれたリンクをクリック すれば登録完了了
  27. 27. 27 1-‐‑‒a.  送信元Emailアドレスの登録
  28. 28. 28 1-‐‑‒a.  送信元Emailアドレスの登録
  29. 29. 29 1-‐‑‒b.  送信元ドメインの登録   表⽰示されたレコードをド メインのDNSレコードに 登録してしばらく待てば 登録完了了
  30. 30. 30 1-‐‑‒b.  送信元ドメインの登録  
  31. 31. 31 1-‐‑‒b.  送信元ドメインの登録 Amazon  Route  53によるTXTレコード作成
  32. 32. 32 1-‐‑‒b.  送信元ドメインの登録 Amazon  Route  53によるTXTレコード作成
  33. 33. 33 1-‐‑‒c.  メールアドレス/ドメイン登録の注意点 •  登録はリージョン単位です •  ドメインを登録すると、そのサブドメインからもSESを使⽤用してメールを送信可能 –  例例えば「example.com」を登録すると、「a.example.com」や「a.b.example.com」等は登録不不要 –  RFC  1034にあるように、DNS  label  は63⽂文字まで、ドメイン名全体は255⽂文字まで •  ドメイン、サブドメイン、メールアドレスの登録を⾏行行い、そのルートドメインが同じ場合、 設定は以下の様に適⽤用される –  E-‐‑‒mailアドレスの設定は、サブドメイン・ドメインの設定に優先する –  サブドメインの設定は、より上位のサブドメインや、ドメインの設定に優先する •  ドメイン名は⼤大⽂文字⼩小⽂文字を区別しない •  AWSアカウントあたり、1000ID(ドメイン、e-‐‑‒mailアドレス)登録可能
  34. 34. 34 2.  Emailが送信できることを確認 •  マネージメント コンソール •  CLI •  SDK $  aws  ses  send-‐‑‒email   –from  alice@example.com   -‐‑‒-‐‑‒to  bob@example.com   -‐‑‒-‐‑‒subject  Hello  -‐‑‒-‐‑‒text  SES   Java Python PHP .NET Ruby nodeJS
  35. 35. 35 3.  バウンス処理理の実装とテスト
  36. 36. 36 3.  バウンス処理理の実装とテスト SNSトピックを設定することでSNSが 対応する各種プロトコルへの通知も可 例例:  HTTP,  HTTPS,  SQS デフォルトではBounce、Complaint のNotificationがEmailで届く Amazon  SES Amazon   SNS bounce
  37. 37. 37 SESメールボックスシミュレータ •  success@simulator.amazonses.com •  正常配信 •  bounce@simulator.amazonses.com •  Delivery  Status  Notification:  DSNの550(ユーザ⾮非存在)メッセージ (RFC6533) •  ooto@simulator.amazonses.com •  不不在メッセージ(RFC5436) •  complaint@simulator.amazonses.com •  送信先がメッセージをSPAMと認識識して、Abuse  Reporting  Formatを返す (RFC6650) •  suppressionlist@simulator.amazonses.com •  SESのSuppression  Listに載ったアドレスへの送信をシミュレート
  38. 38. 38 SESメールボックスシミュレータ •  success@simulator.amazonses.com •  正常配信 •  bounce@simulator.amazonses.com •  Delivery  Status  Notification:  DSNの550(ユーザ⾮非存在)メッセージ (RFC6533) •  ooto@simulator.amazonses.com •  不不在メッセージ(RFC5436) •  complaint@simulator.amazonses.com •  送信先がメッセージをSPAMと認識識して、Abuse  Reporting  Formatを返す (RFC6650) •  suppressionlist@simulator.amazonses.com •  SESのSuppression  Listに載ったアドレスへの送信をシミュレート Sandboxでも送れます 秒あたりの送信レートの制約を受けます メトリクスにはあらわれません 24時間送信クォータにはカウントされません 課⾦金金されます
  39. 39. 39 4.  プロダクションアクセスの申請 http://aws.amazon.com/ses/fullaccessrequest/
  40. 40. 40 5.  Notoficationをモニタリング •  バウンスレートは5%未満を推奨 •  Complaintは0.1%未満を推奨 https://sesblog.amazon.com/blog/tag/complaint+rate https://sesblog.amazon.com/blog/tag/bounce+rate <  5% <  0.1%
  41. 41. 41 メール配信の信頼性を維持するために
  42. 42. 42 SMTPにおける送信元認証のための技術 •  送信元IPアドレスに基づく認証 –  Sender  Policy  Framework  (SPF) –  Sender  ID à 各ドメインでメール送信元であるべきホストのIPアドレスやドメイン 名をDNSで公開 à 各DNSドメインにレコードを追加するだけで開始できる •  送信元による署名に基づく認証 –  Domain  Keys  Identified  Mail  (DKIM) à送信元で各メールにデジタル署名をし、公開鍵をDNSで公開 à送信者あるいは送信元サーバでの対応が必要
  43. 43. 43 SPFの設定例例  (SESの場合) •  送信元サーバの逆引き結果が*.example.comである場合に正 当な送信者であると宣⾔言する場合の設定例例 –  ⼀一致しない場合はソフトフェイルとする場合 example.com. TXT "v=spf1  include:amazonses.com  ~∼all“ example.com. SPF"v=spf1  include:amazonses.com  ~∼all“ –  ⼀一致しない場合はハードフェイルとする場合 (⼀一致しない場合に受信側MTAに受信拒否を要求) example.com. TXT "v=spf1  include:amazonses.com  -‐‑‒all“ example.com. SPF"v=spf1  include:amazonses.com  -‐‑‒all“ 注:RFC4408によれば、SPFかTXTどちらかが定義されていれば動作するも のの、両⽅方のレコードに同内容を設定することが推奨される
  44. 44. 44 2.  署名付きEmail送信 From:  foo@sender.com To:  bar@receiver.com DKIM-‐‑‒Signature:  s=xyz;  d=sender.com  …1.  Email送信 From:  foo@sender.com To:  bar@receiver.com DKIM有効化時のメール送受信の流流れ •  MTAでキーペアを管理理、公開鍵をTXTレコードで送信元 ドメインに設定 sender.com MTA smtp.receiver.com 3.  公開鍵問い合わせ   TXT  xyz._̲domainkey.sender.com 4.  公開鍵返答   TXT  “公開鍵” MTA及びDNSに必要な設定をすることで導⼊入
  45. 45. 45 2.  署名付きEmail送信 From:  foo@sender.com To:  bar@receiver.com DKIM-‐‑‒Signature:  s=xyz;  d=sender.com  …1.  Email送信 From:  foo@sender.com To:  bar@receiver.com DKIM有効化時のメール送受信の流流れ (SESの場合) •  SES側でキーペアを管理理、公開鍵をCNAMEでユーザド メインに設定 sender.com amazonses.com SES smtp.receiver.com3.  公開鍵問い合わせ   TXT  xyz._̲domainkey.sender.com 4.  CNAMEレコード返答   CNAME  xyz.dkim.amazonses.com 5.  公開鍵問い合わせ   TXT  xyz.dkim.amazonses.com 6.  公開鍵返答   TXT  “公開鍵”
  46. 46. 46 SESの簡単DKIM設定機能 1.  ドメインを選択 2.  DKIMタブで有効化 3.  DNSにレコードを追加 •  Route53なら2クリック! 4.  設定完了了通知を待つ
  47. 47. 47 SESの簡単DKIM設定機能 1.  ドメインを選択 2.  DKIMタブで有効化 3.  DNSにレコードを追加 •  Route53なら2クリック! 4.  設定完了了通知を待つ
  48. 48. 48 SESの簡単DKIM設定機能 1.  ドメインを選択 2.  DKIMタブで有効化 3.  DNSにレコードを追加 •  Route53なら2クリック! 4.  設定完了了通知を待つ
  49. 49. 49 SESの簡単DKIM設定機能-‐‑‒Amazon  Route  53
  50. 50. 50 Bounce処理理の実装
  51. 51. 51 SMTPの正常時のシグナリング sender.example.com HELO  sender.example.com 250  OK MAIL  FROM:  user@example.com 250  OK RCPT  TO:  user1@example.jp 250  OK example.jp DATA 354  Start ヘッダ,本⽂文..  <CRLF>.<CRLF> 250  OK QUIT 250  OK MTA MUA
  52. 52. 52 SMTPのステータスコード •  200番台 –  正常応答 –  情報提供 •  300番台 –  データ⼊入⼒力力を促す(354) •  400番台 –  ⼀一時的なエラー:  サーバシャットダウン、メールボックスbusy、メール ボックス溢れ •  500番台 –  システムエラー:  コマンド間違い –  転送エラー:  メールアドレスなし、処理理失敗通知
  53. 53. 53 配信エラーメール •  SMTPセッション時のエラー –  送信元のMTAが作成。 –  エンベロープの発信者メールアドレスにエラーメールが戻る (Return-‐‑‒Path  or  Errors-‐‑‒To  ヘッダに記載) •  SMTPセッション時以外 –  送信先のMTAが作成 –  エンベロープの発信者メールアドレスにエラーメールが戻る エラー発⽣生時、ユーザが存在しないなどの恒久的なエラー(ハードバウンス) については再度度送信しないように送信側で対処(バウンス処理理)が必要
  54. 54. 54 バルク配信とバウンス処理理の例例(SESの場合) 顧客情報 Message  to   each  receiver Message Producer Bounce記録のあ る宛先を除いて 送信先を抽出 送信ステート テーブル Amazon  SES Amazon  SNS 送信中/送信済 ステートを記録 (送信中/送信済 はスキップ) Bounce/ Complaint
  55. 55. 55 SESの配信通知 •  SESが正常に受信者の電⼦子メール サーバーにメッセージを配信するた びに、Amazon  SNSの通知を受け取 ることを選択可能に –  E-‐‑‒mailはBounce、Complaintsのみ •  配信、バウンス、Complaintsの全 てをSNSトピックへの通知を介して 追跡可能 {"notificationType":"Delivery",    "mail":{    "timestamp":"2014-‐‑‒05-‐‑‒28T22:40:59.638Z",                     "messageId":"0000014644fe5ef6-‐‑‒9a483358-‐‑‒9170-‐‑‒4cb4-‐‑‒ a269-‐‑‒f5dcdf415321-‐‑‒000000",                    "source":"test@ses-‐‑‒example.com",    "destination":[    "success@simulator.amazonses.com",    "recipient@ses-‐‑‒example.com"  ]    },    "delivery":{        "timestamp":"2014-‐‑‒05-‐‑‒28T22:41:01.184Z",        "recipients":["success@simulator.amazonses.com"],        "processingTimeMillis":1546,                          "reportingMTA":"a8-‐‑‒70.smtp-‐‑‒out.amazonses.com",                "smtpResponse":"250  ok:    Message  64111812   accepted"    }   }
  56. 56. 56 参考情報:  Sendy  (http://sendy.co) •  Sendy:  メールの作成からSESでの配信やレポート作 成をワンストップで実現するパッケージソフトウェア –  PHPとMySQLの環境があれば動作 –  Bounce/Complaint処理理なども対応
  57. 57. 57 送信停⽌止措置について •  下記のような場合、送信停⽌止措置が適⽤用される可能性有り –  Bounce/Complaintレートが⾼高い状態が続く –  Spam  Filterのヒットレートが⾼高い •  送信停⽌止措置の警告とProbation(猶予) –  SESから警告のメールが管理理者アドレスに届く –  メッセージ例例: Dear  Amazon  Simple  Email  Service  Customer:   We  have  detected  a  problem  with  your  Amazon  Simple   Email  Service  (Amazon  SES)  sending  that  has  put  your   Amazon  SES  account  on  probationary  status. !上記のような通知を受け取った場合には次のページを参照の上で注意深く対応のこと
  58. 58. 58 Probationの通知があった場合の対処⽅方法 •  まず理理由とProbationの間に送信可能な数を確認 –  メッセージ例例: •  原因を取り除き、効果を確認した後、実施した改善内容を返信 –  nの値は普段送信しているボリュームを鑑みて設定される •  但し、リスクを考えると改善適⽤用までは代替⼿手段でメール配信を⾏行行うことを推奨    *Unacceptably  Low  Content  Quality:  Over  the  last  approximately  xxx  email   messages  you  sent,  an  unacceptably  high  percentage  were  identified  as   spam  by  our  filters.      *This  issue  must  be  fixed  within  the  next  n  emails  you  send. à上記の場合次のn通のメッセージを送り終えるまでにメールのコンテンツを改善(*) しないと送信停⽌止措置適⽤用へ *  個別のメールがSpam  Filterにかかるかどうかはご案内出来ないので⼀一般的なSpam  Filter ソフトウェアでご確認下さい 改善⽅方法や改善結果のアピールに不不安があれば担当営業/SAまでご相談ください
  59. 59. 59 SES以外のメール送信選択肢
  60. 60. 60 AWSからのメール配信の選択肢 1.  EC2上にMail  Transfer  Agent  (MTA)を構築して配信 2.  Amazon  Simple  Email  Service  (SES)の利利⽤用 3.  外部Email配信サービスの利利⽤用 3.についてはAWS特有の⼿手順はないため省省略略
  61. 61. 61 EC2上にMTAを構築して配信 •  利利点 –  慣れたMTAや既存のノウハウを活かして構築・運⽤用が可能 –  携帯キャリア向けの送信ルールの適⽤用など、柔軟な制御が可能 •  注意点 –  構築・運⽤用・障害対策やスケールの調整などは⾃自⾝身で⾏行行わなければな らない –  Email送信のための制限解除やDNS逆引きなどフォームによる申請が必 要な項⽬目あり(後述)
  62. 62. 62 2つの選択肢から適切切な⽅方法を選ぶ基準 Bounce処理理 を実装予定 No Bounce処理理はどちら の⽅方法でも重要です。 実装しましょう。 携帯キャリア のアドレスに 送信予定あり Yes Yes 1.  EC2上のMTA構築 も検討 No Bounceやコンテン ツの問題による送信 レート抑制を受⼊入可 No 2.  SESの利利⽤用も考慮に Yes
  63. 63. 63 EC2からメール送信を⾏行行う前の準備
  64. 64. 64 SMTPエンドポイントを使う際の注意点 •  デフォルトではEC2から外向きTCP  25番ポートは制限対象 –  Spamのリレーを防ぐ –  誤ったSpam送信から利利⽤用者様を守る Tokyo  Region SMTP (TCP:  25) SMTPS (TCP:  587) ポート587番で認証付きで外部 サービスを利利⽤用するのは特に制 限なし!この制限は申請ベースで解除出来ます MTA
  65. 65. 65 EC2でMTAを構築するまで 1.  MTAのホスト名とIPアドレスを⽤用意 –  ホスト名を決める –  Elastic  IPを取得 –  ホストのAレコードをドメインに登録する 2.  制限解除と逆引きDNSの登録を申請する 3.  メール関連のDNS設定を⾏行行う –  SPFレコード –  DKIM –  MXレコード  (Optional:  受信もする場合)
  66. 66. 66 構成とDNSレコードの例例 •  DNSレコード例例 ;;  example.com @  IN  A    203.0.113.3 @  IN  MX  10  mx1 @  IN  MX  20  mx2 mx1  IN  A    203.0.113.4 mx1  IN  A    203.0.113.5 mta1  IN  A  203.0.113.6 mta2  IN  A  203.0.113.7 @    IN  TXT  "v=sfp1  ip……" @    IN  SPF  "v=sfp1  ip……” mta1 mta2 mx1 mx2 DNS *.113.0.203 1.   RCPT  TO  alice@receiver.com MAIL  FROM  bounce@example.com mx.receiver.com 2.   203.0.113.6? 3.  PTR mta1.example.com (Bounce/error)  * DNS example.com 4.  SPF? 5.  SPF "v=sfp1  ip…" 逆引き申請 で登録 *⼀一般にバウンス等のエラーは受信側MXサーバによりセットされるreturn-‐‑‒pathヘッダに記載のア ドレスに返される。
  67. 67. 67 1.  MTAのホスト名とIPアドレス •  MTAのホスト名を決める –  例例:mta1.example.com,  mta2.example.com   •  IPアドレスの取得 –  通常通りElastic  IPをホスト名の数だけ取得 •  DNS  Aレコードを登録 –  mta1.example.com IN   A <EIP  1> –  mta2.example.com IN A <EIP  2>
  68. 68. 68 2.  制限解除と逆引きDNSの登録を申請 •  専⽤用フォームより申請 –  AWSのHP下部
  69. 69. 69 申請フォーム •  メール送信の⽬目的を記⼊入 •  申請対象のEIP •  EIPの逆引き結果 となるべきホスト 名を記⼊入 DNSの正引きの ⼀一致が必要
  70. 70. 70 申請時の注意点 •  ユースケースはUS側で対応するため英語でご記⼊入下さ い –  難しい場合は担当営業にご相談下さい •  DNS –  正引き結果が申請内容と⼀一致する場合のみ逆引き設定を⾏行行います –  正引きの設定をした上で申請をお願いします
  71. 71. 71 SPFの設定例例 •  送信元サーバの逆引き結果が*.example.comである場合に正当な送信者である と宣⾔言する場合の設定例例 •  ⼀一致しない場合はソフトフェイルとする場合 example.com.TXT "v=spf1  include:example.com  ~∼all example.com.SPF "v=spf1  include:example.com  ~∼all“ •  ⼀一致しない場合はハードフェイルとする場合 (⼀一致しない場合に受信側MTAに受信拒否を要求) example.com.TXT "v=spf1  include:example.com  -‐‑‒all“ example.com.SPF "v=spf1  include:example.com  -‐‑‒all“ 注:RFC4408によれば、SPFかTXTどちらかが定義されていれば動作するも のの、両⽅方のレコードに同内容を設定することが推奨される
  72. 72. 72 バルク配信とバウンス処理理の例例(EC2の場合) smtp 顧客情報 Message  to   each  receiver Message Producer Bounce記録のあ る宛先を除いて 送信先を抽出 送信ステート テーブル 送信中/送信済 ステートを記録 (送信中/送信済 はスキップ)
  73. 73. 73 まとめ •  スケーラブル・⾼高信頼・低コストなEmail送信サービス –  AWSが管理理するクリーンに保たれた(Spammer登録などされていない) ⼤大きなIPアドレスプールを使ってメール送信可能 •  ただし、メール送信のお作法や受取⼿手に迷惑にならない 使い⽅方をしないと最悪利利⽤用停⽌止措置も –  àでもこれって本来やるべきことですよね? •  EC2からのメール送信も可能 –  ⽤用途に合わせた使い分け –  いざという時の切切り替え先としての利利⽤用も
  74. 74. 74 最後に •  メール配信の仕組みをつくるにあたって、必ず覚えて置 いていただきたい重要な点が⼆二つあります •  受信者に価値を届けてください •  あなたのメールが欲しい⼈人にだけ送信してください •  Happy  Sending!
  75. 75. 75 参考資料料 •  Amazon  Simple  Email  Service  Email  Sending  Best   Practicesホワイトペーパー –  http://media.amazonwebservices.com/ AWS_̲Amazon_̲SES_̲Best_̲Practices.pdf •  Amazon  SES  Blog –  http://sesblog.amazon.com/
  76. 76. 76 その他の参考情報 •  携帯キャリア各社からのメール送信に関する注意事項 –  送信ドメイン認証(Sender  ID/SPF)について  |  NTTドコモ •  http://www.nttdocomo.co.jp/service/communication/imode_̲mail/notice/ sender_̲id/ –  同報メールを⼤大量量に送信されるお客様へ  |  NTTドコモ •  http://www.nttdocomo.co.jp/service/communication/imode_̲mail/notice/ mass_̲send/ –  EZwebへメール送信する際の注意事項(概要)│au •  http://www.au.kddi.com/mobile/service/mail/attention/ –  メール送信時のお願い│EZwebへメール送信する際の注意事項(概要)│au •  http://www.au.kddi.com/mobile/service/mail/attention/request/ –  迷惑メールに対するソフトバンクモバイルの取り組み  |  ソフトバンクモバイル •  http://www.softbank.jp/mobile/support/antispam/wrestle/ •  メールシステムのおはなし  #Mailerstudy –  http://www.slideshare.net/ar_̲maniacs/mailerstudy
  77. 77. 77 Q&A
  78. 78. 78 Webinar資料料の配置場所 •  AWS  クラウドサービス活⽤用資料料集 –  http://aws.amazon.com/jp/aws-‐‑‒jp-‐‑‒introduction/
  • soskaykakehi

    May. 9, 2019
  • TakanobuFunayama

    Mar. 5, 2016
  • coga2000

    Jan. 18, 2016
  • YoshikaHinoki

    Dec. 9, 2015
  • ssuser585696

    Nov. 11, 2015
  • igei-yh

    May. 18, 2015
  • edgejp

    May. 13, 2015
  • ikedadai

    Mar. 26, 2015
  • toshimitsusogo

    Mar. 7, 2015
  • yuichiroyamamoto351

    Jan. 17, 2015
  • TsuyoshiShimizu

    Dec. 25, 2014
  • Machamoto

    Dec. 9, 2014
  • HayashiShinichiro

    Nov. 29, 2014
  • konishika

    Nov. 4, 2014
  • hirot78

    Oct. 21, 2014
  • shinodogg

    Oct. 15, 2014
  • ssuser450ae1

    Oct. 14, 2014
  • ryo0301

    Oct. 13, 2014
  • sinyaanayama

    Oct. 12, 2014
  • nobuhikofutagami

    Oct. 11, 2014

AWS Black Belt Tech Webinar 2014 (旧マイスターシリーズ) Amazon SES

Views

Total views

11,404

On Slideshare

0

From embeds

0

Number of embeds

825

Actions

Downloads

109

Shares

0

Comments

0

Likes

28

×