63
【AWS初心者向けWebinar】 AWSからのEメール送信 2015/8/11 アマゾン データ サービス ジャパン株式会社 ソリューションアーキテクト 舟﨑 健治

Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

0

【AWS初心者向けWebinar】AWSからのEメール送信

2015/8/11

アマゾン データ サービス ジャパン株式会社

ソリューションアーキテクト 舟﨑 健治

Page 2: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

1

AWS初心者向けWebinarのご紹介

• AWSについてこれから学ぶ方向けのソリューションカットのWebinarです

• 過去のWebinar資料– AWSクラウドサービス活用資料集ページにて公開

http://aws.amazon.com/jp/aws-jp-introduction/

• イベントの告知– 国内のイベント・セミナースケジュールページにて告知

http://aws.amazon.com/jp/about-aws/events/

(オンラインセミナー枠)

Page 3: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

2

自己紹介

• 舟﨑 健治(ふなさき けんじ)

• 担当– アマゾン データ サービス ジャパン株式会社

ソリューションアーキテクト

– 業種を問わず幅広くAWS利用をご検討されるお客様をサポート

– AWS初心者向けWebinarを企画・運営中

• 好きなAWSのサービス:AWS OpsWorks

Page 4: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

3

Introduction

AWSからEメールを送信する時に陥り易い注意事項を中心に、そのベストプラクティスを紹介します。

Page 5: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

4

アジェンダ

• Eメール送信の基本

• AWSからのEメール送信の選択肢

• Amazon EC2上にMTAを構築してEメールを送信する

• Amazon SESでEメールを送信する

• まとめ

※MTA: Mail Transfer Agent

Page 6: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

5

アジェンダ

• Eメール送信の基本

• AWSからのEメール送信の選択肢

• Amazon EC2上にMTAを構築してEメールを送信する

• Amazon SESでEメールを送信する

• まとめ

Page 7: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

6

Eメールが送信される用途の例

• ニュースレター(例:食材宅配会員向けのレシピ)

• 受領通知(例:購入の確認)

• 旅行の案内(例:航空券)

• アカウント関連の通知(例:パスワードのリセット)

• 法的通告(例:プライバシーポリシーの変更)

Page 8: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

7

Eメールはどのように配信されるか?

To: [email protected]

Page 9: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

8

EメールのレシーバーとEメール配信

• レシーバは、送信されたメールを配信するかどうか判断する– メール配信を管理するネットワークシステム、ソフトウェア、ポリシーが一体

となってレシーバーを構成

• 送信先のレシーバーの種類を知っておくことが重要

Page 10: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

9

送信先のレシーバーの例

• インターネットサービスプロバイダ(ISP)– Yahoo!、Gmail等

• コーポレートシステム– Microsoft Exchange等のEメールを受信するMTA (Mail Transfer Agent)ソ

リューション

• 個人製システム– 個人所有のサーバ上で運用されているもの

Page 11: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

10

Eメール送信者の成功を決定づけるメトリクスの例

• バウンス率

• 苦情率

• コンテンツの問題※こちらのメトリクスが全てではありません。

Page 12: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

11

バウンス率

• 配信を試みて失敗したことを示す

• レシーバーから送信者に報告される有益な情報

• バウンスの種類– 恒久的な配信失敗:ハードバウンス

– 一時的な配信失敗:ソフトバウンス

• ハードバウンス率が高いと、レシーバーは送信者が受信者のことをあまり知らないと判断する– ハードバウンス率の高さは、送信者の配達可能性にマイナスの影響を与える

Page 13: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

12

苦情率

• Eメールの受信者が、メッセージがスパムであることを示すためにWebメールクライアントの「スパムとして報告」ボタンをクリック

• 苦情が多すぎると、配達到達性が低下する可能性がある

• ISPの中には、受信者の対応を送信者にある程度知らせるために、フィードバックループを設けているところもある

Page 14: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

13

コンテンツの問題

• メールレシーバーは、スパム送信者の悪意のある通信(フィッシング、マルウェア、ウィルス拡散、詐欺等)を防ぐために、堅牢なコンテンツフィルタを実装

• コンテンツの特性がスパムに似ていると判断された場合は、受信トレイとは別のところに配信される

Page 15: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

14

SMTPにおける送信元認証のための技術

• 送信元IPアドレスに基づく認証– Sender Policy Framework (SPF)

– Sender ID

各ドメインでメール送信元であるべきホストのIPアドレスやドメイン名をDNSで公開

各DNSドメインにレコードを追加するだけで開始できる

• 送信元による署名に基づく認証– Domain Keys Identified Mail (DKIM)

正当な送信者から送信された改ざんされていないメールかどうかを確認することができるデジタル署名方式の送信元ドメイン認証技術

送信元で各メールに秘密鍵を使って生成したデジタル署名を行い、受信側でDNSで公開された公開鍵を使って検証する

送信者あるいは送信元サーバでの対応が必要

Page 16: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

15

ご参考:NTTドコモ 同報メールを大量に送信されるお客様へ

• https://www.nttdocomo.co.jp/service/communication/imode_mail/notice/mass_send/

※2015/8/11時点

Page 17: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

16

ご参考:SoftBank メール送受信の際の注意

• http://www.softbank.jp/mobile/support/antispam/wrestle/

※2015/8/11時点

Page 18: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

17

ご参考:au EZwebへメール送信する際の注意事項

• http://www.au.kddi.com/mobile/service/mail/attention/request/

※2015/8/11時点

Page 19: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

18

アジェンダ

• Eメール送信の基本

• AWSからのEメール送信の選択肢

• Amazon EC2上にMTAを構築してEメールを送信する

• Amazon SESでEメールを送信する

• まとめ

Page 20: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

19

AWSからのEメール送信の選択肢

1. Amazon Elastic Compute Cloud (EC2)インスタンス上にMail Transfer Agent(MTA)を構築して配信

2. Amazon Simple Email Service (SES)の利用

3. 外部Email配信サービスの利用

3についてはAWS特有の手順はないため、省略して以降1,2について取り扱います

Page 21: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

20

Amazon Elastic Compute Cloud (EC2)

• 特徴 (http://aws.amazon.com/jp/ec2/)

– 必要な時に必要なだけ1時間単位の従量課金で利用できる仮想サーバリソース

– 世界11箇所のリージョンで利用可能

– 様々なスペック・OSを選択可能

• 価格体系 (http://aws.amazon.com/jp/ec2/pricing/)

– インスタンス利用料($0.02/hour 〜)

– データ転送量(OUT $0.14/GB )

仮想クラウドサーバ

Page 22: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

21

EC2上にMTA(Mail Transfer Agent)を構築して配信

• 利点– 慣れたMTAや既存のノウハウを活かして構築・運用が可能

– 携帯キャリア向けの送信ルールの適用など、柔軟な制御が可能

• 注意点– 構築・運用・障害対策やスケールの調整などは自身で行わなければならない

– Email送信のための制限解除やDNS逆引きなどフォームによる申請が必要な項目あり(後述)

Page 23: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

22

Amazon Simple Email Service (SES)

• 特徴 (http://aws.amazon.com/jp/ses/)

– SMTP / REST APIによるメール送信

– バージニア、オレゴン、ダブリンで提供

• 価格体系 (http://aws.amazon.com/jp/ses/pricing/)

– 月62000件までの送信は無料

– 1000ドルあたり0.10ドル

– 添付ファイルは0.12ドル/GB

スケーラブル、高信頼、低コストなEmail送信サービス

Amazon SES

Page 24: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

23

Amazon SESを利用して配信

• 利点– AWSが管理するクリーンに保たれた(Spammer登録などされていない)⼤きなIPア

ドレスプールを使ってメール送信可能

– MTAを自前で⽴てなくてもAPIを叩く事でメール送信可

– 簡単DKIM設定

• 注意点– 現状⽇本国内の携帯キャリアの制限を⼗分考慮した配信アルゴリズムにはなっていな

い(特に迷惑メールフィルタの考慮など)

– BounceやComplaintの処理を行っていないと送信レートの抑制や送信停⽌措置が取られる事もある(IPアドレスプールをクリーンに保つとともに、世の中のメールの信頼性・健全性向上を促すため)

– SESのエンドポイント及び送信元IPアドレスは米国東部、EU、米国西部となる(2015年8月現在)

Page 25: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

24

EC2、SESのどちらを選ぶか?

Bounce処理を実装予定

NoBounce処理はどちらの方法でも重要です。

実装しましょう。

携帯キャリアのアドレスに送信予定あり

Yes

Yes 1. EC2上のMTA構築も検討

No

Bounceやコンテンツの問題による送信レート抑制を受入可

No

2. SESの利用も考慮に

Yes

Page 26: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

25

アジェンダ

• Eメール送信の基本

• AWSからのEメール送信の選択肢

• Amazon EC2上にMTAを構築してEメールを送信する

• Amazon SESでEメールを送信する

• まとめ

Page 27: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

26

EC2でMTAを構築するまで

1. EC2上でMTAを構築する

2. MTAのホスト名とIPアドレスを用意– ホスト名を決める– Elastic IPを取得– ホストのAレコードをドメインに登録する

3. 制限解除と逆引きDNSの登録を申請する

4. メール関連のDNS設定を行う– SPFレコード– DKIM– MXレコード (Optional: 受信もする場合)

Page 28: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

27

1. EC2上でMTAを構築する

• MTAの例– Postfix

– Sendmail

– qmail

– Exim

– MS Exchange

• EC2 1インスタンス上で複数IPから送信可能

• ENIとElastic IPは1:1で紐づけ可能

EC2MTA

ENI 1Private IP: 10.0.0.10

ENI 2Private IP: 10.0.0.11

Elastic IP:x.x.x.x

Elastic IP:x.x.x.x

Page 29: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

28

Elastic Network Interfaces

• EC2インスタンスごとに仮想ネットワークインタフェースを複数持てる機能– VPC内でのみ利用可能

• 以下をENIに紐づけて維持可能– Private IP

– Elastic IP

– MACアドレス

– セキュリティグループ

• インスタンスによって割り当て可能な数が異なる。詳細は以下。– http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-eni.html

EC2MTA

ENI 1IP: 10.0.0.10

ENI 2IP: 10.0.0.11

Page 30: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

29

Elastic IP

• 静的なパブリックIPアドレス

• EC2インスタンスに割り当てたENIと紐づけ可能

• ネットワークアドレス変換(NAT)により、プライベートIPアドレスにEIPがマッピングされる

Page 31: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

30

EC2上でSMTPエンドポイントを使う際の注意点

• デフォルトではEC2から外向きTCP 25番ポートは制限対象

– Spamのリレーを防ぐため

– 誤ったSpam送信から利用者様を守るため

Tokyo Region

SMTP(TCP: 25)

SMTPS(TCP: 587)

ポート587番で認証付きで外部サービスを利用するのは特に制

限なしこの制限は申請ベースで解除出来ます(後述)

MTA

Page 32: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

31

2. MTAのホスト名とIPアドレス

• MTAのホスト名を決める– 例:mta1.example.com, mta2.example.com

• IPアドレスの取得– 通常通りElastic IPをホスト名(または使用するENI)の数だけ取得

• DNS Aレコードを登録– mta1.example.com IN A <EIP 1>

– mta2.example.com IN A <EIP 2>

※これらは送信制限解除に必要な項目です。

※送信制限解除申請時点でに正引きが出来る必要があります。

※お使いの既存のDNS、またはAmazon Route 53をDNSとして利用可能です。

Page 33: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

32

Amazon Route53

• 特徴 (http://aws.amazon.com/jp/route53/)

– 高い可用性:Amazon Route53は世界中に配置されたサーバーによって、非常に高い可用性を提供。

– 多様な機能:管理ホストに対するヘルスチェックや様々なアルゴリズムによるラウンドロビンなど、柔軟なアプリケーションの運用を助ける機能が豊富。

– アプリケーションの内部DNSをとしても利用可能。

• 価格体系 (http://aws.amazon.com/jp/route53/pricing/)

– 非常に低価格なのが特徴。

– ホストするゾーンあたり 0.5USD/月

– 標準クエリ: 10億クエリあたり0.4USD

高い可用性と豊富な機能を提供するフルマネージドな権威DNS

• 各ネームサーバは冗長化され世界中に分散配置。

• ヘルスチェック/DNSフェイルオーバー• 重み付けラウンドロビン• レイテンシーベースルーティング• ジオルーティング• ドメイン取得と管理

Route53の特徴的な機能

Page 34: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

33

3. 制限解除と逆引きDNSの登録を申請

DNSの正引きの一致が必要

以下リンクより申請https://aws.amazon.com/forms/ec2-email-limit-rdns-request

メール送信の目的を記入

申請のEIPを記入

EIPの逆引き結果となるべきホスト名を記入

Page 35: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

34

申請時の注意点

• ユースケースはUS側で対応するため英語でご記入下さい– 難しい場合は弊社担当営業にご相談下さい

• DNS– 正引き結果が申請内容と一致する場合のみ逆引き設定を行います

– 正引きの設定をした上で申請をお願いします

Page 36: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

35

4. メール関連のDNS設定を行う

• DNSレコード例

;; example.com@ IN A 203.0.113.3@ IN MX 10 mx1@ IN MX 20 mx2

mx1 IN A 203.0.113.4mx1 IN A 203.0.113.5

mta1 IN A 203.0.113.6mta2 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 [email protected] FROM [email protected]

mx.receiver.com

2. 203.0.113.6?

3. PTRmta1.example.com

(Bounce/error) *

DNSexample.com

4. SPF?

5. SPF"v=sfp1 ip…"

逆引き申請で登録

*一般にバウンス等のエラーは受信側MXサーバによりセットされるreturn-pathヘッダに記載のアドレスに返される。

Page 37: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

36

SPFの設定例(EC2の場合)

• 送信元サーバの逆引き結果が*.example.comである場合に正当な送信者であると宣言する場合の設定例

• 一致しない場合はソフトフェイルとする場合

example.com. TXT "v=spf1 include:example.com ~allexample.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どちらかが定義されていれば動作するものの、両方のレコードに同内容を設定することが推奨される

Page 38: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

37

2. 署名付きEmail送信From: [email protected]: [email protected]: s=xyz; d=sender.com …1. Email送信

From: [email protected]: [email protected]

DKIM有効化時のメール送受信の流れ

• MTAでキーペアを管理、公開鍵をTXTレコードで送信元ドメインに設定

sender.com

MTA smtp.receiver.com3. 公開鍵問い合わせTXT xyz._domainkey.sender.com

4. 公開鍵返答TXT “公開鍵”

MTA及びDNSに必要な設定をすることで導入

Page 39: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

38

EC2でバウンスを防ぐ(例:MTAとしてPostfixを使用した場合)

• MTAからメッセージ送信後、通過するMTAのどこかで配送が失敗したときに、送信者にEメールで通知する

• 一時的に配送不能なメッセージ– Deferキューにメッセージごとのログファイルが作成される

– 一時的に配送不能な状態がmaximal_queue_lifetimeで指定した時間(初期値は5⽇間)に達したメッセージは、永続的に配送不能として処理される

• 永続的に配送不能なメッセージ– Bounceキューにメッセージごとのログファイルが作成される

– ログファイルに基づき、バウンスメッセージを作成、通常はエンベロープ上のメッセージ発信メールアドレスに宛てて送信する

Page 40: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

39

バルク配信とバウンス処理の例(EC2の場合)

smtp

顧客情報

Message to each receiver

MessageProducer

Bounce記録のある宛先を除いて送信先を抽出

送信ステートテーブル

送信中/送信済ステートを記録(送信中/送信済はスキップ)

Page 41: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

40

アジェンダ

• Eメール送信の基本

• AWSからのEメール送信の選択肢

• Amazon EC2上にMTAを構築してEメールを送信する

• Amazon SESでEメールを送信する

• まとめ

Page 42: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

41

Amazon SESでEメールを送信する方法

• HTTP REST APIを利用する方法– 他のAWSサービスと同様にSDK等からコール

• SendEmail API: From, To, Subject, Bodyだけを用意すればAmazon SES側でメッセージを生成して送信

• SendRawEmail API: メッセージ全体をアプリケーション側で生成して送信– 認証はAWS アクセスキーとシークレットアクセスキーを使用– アプリケーションから直接Eメール送信を行う場合に便利

• SMTPエンドポイントを利用する方法– 生成済みEmailメッセージを受け取って送信するSESのSMTPエンドポイント

• ポート: 25 / 465(SMTP over SSL) / 587(Message Submission)• 要TLS(Transport Layer Security)• 要認証

– 認証用にSMTPユーザー名とパスワードを作成– 既存の送信用SMTPサーバからリレーしたり、SMTPを前提としてプログラムから直接

利用する場合などに便利

Page 43: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

42

Amazon SES利用時の注意点

• コンテンツ・送信先リストの正しい管理運用が必須– BounceやComplaintの処理を行っていないと送信レートの抑制や送信停⽌措置が取

られる事もある(IPアドレスプールをクリーンに保つとともに、世の中のメールの信頼性・健全性向上を促すため)

– Spamと判定されるようなメールを定常的に配信していると送信停⽌措置の可能性あり

• 国内モバイルキャリア等の迷惑メールフィルタとは相性悪い1. 迷惑メールフィルタに引っかかった場合にBounceエラーが返る

2. SESのSuppression Listに送信先アドレスが登録される

3. ホワイトリストされたドメインからもメールが送れなくなる

Page 44: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

43

Amazon SESでEメール送信をするために正しく管理運用するために考慮すべきこと

• Amazon SES利用開始時の送信制限

• 送信クォータによる制限

• 送信元認証

• バウンス

• 苦情

• コンテンツフィルタリング

Page 45: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

44

Amazon SES利用開始時の送信制限について

• 初めてAmazon SESにサインアップすると、Amazon SESサンドボックス環境にある

• サンドボックス環境下の制限– 最⼤で1秒間に1通、24時間に200通までのEメール送信に制限される– 送信先のEメールアドレスは確認済みのもののみ

• プロダクション環境下の制限– 送信先に制限なし– 送信クォータは実績によって決定、下記からのスタート

• 1000通/24時間• 最⼤送信率 5通/秒

• プロダクションに上げるには?– 下記申請フォームから申請する

• http://aws.amazon.com/ses/fullaccessrequest/

Page 46: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

45

送信クォータによる制限

• 送信クォータ:送信可能メール数及びレート 2つのしきい値

SendingQuota: 24時間で送信出来るメールの最⼤数 現時点で送れる数 = SendingQuota - 直近24時間に送信した数

SendingRate: 秒間あたりに送信出来るメールの最⼤数 GetSendQuota API or マネージメントコンソールで確認可– 送信クォータを超えるとスロットリング

• 送信クォータを増やすには?– 実績に応じて自然に増えていく

• 良質なコンテンツをQuotaに近い量送信していると増えます– 急にクォータを増やす必要があるときには?

• 下記フォームからご申請下さいhttp://aws.amazon.com/ses/extendedaccessrequest/

454 Throttling failure: Maximum sending rate exceeded454 Throttling failure: Daily message quota exceeded

Page 47: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

46

認証 - SESでのSPFとSenderID

• Amazon SESを利用するときには、すぐに使用できる構成済みのDNSレコードが用意される

• SPFもセットアップ済み

• amazonses.comから送信するIPアドレスはすべてSPF経由で認証される

• ただし、SenderIDによる認証も行うことを推奨– SenderIDによる認証を行うには、Amazon SESのドメインへのポインタを送信

者のTXTレコードに追加する(設定例は次頁)

• RFC4408によれば、SPFかTXTどちらかが定義されていれば動作するものの、両方のレコードに同内容を設定することが推奨されるため

Page 48: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

47

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“

Page 49: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

48

2. 署名付きEmail送信From: [email protected]: [email protected]: s=xyz; d=sender.com …1. Email送信

From: [email protected]: [email protected]

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 “公開鍵”

Page 50: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

49

Amazon SESでバウンス・苦情を防ぐ

• 基本的にバウンス率は5%以下に維持することを推奨

• 基本的に苦情率は0.1%未満に維持することを推奨– 苦情率の制限(上限)は公開されていない

• バウンスや苦情はEメール、またはAmazon SNS両方で通知するよう設定可能– 詳細は以下FAQの「Q: Amazon SES では、バウンス、苦情、および配信の通

知はどこから送信されますか?」を参照https://aws.amazon.com/jp/ses/faqs/

Page 51: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

50

バルク配信とバウンス処理の例(SESの場合)

顧客情報

Message to each receiver

MessageProducer

Bounce記録のある宛先を除いて送信先を抽出

送信ステートテーブル

Amazon SES

Amazon SNS

送信中/送信済ステートを記録(送信中/送信済はスキップ)

Bounce/Complaint

Page 52: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

51

Amazon Simple Notification Service (SNS)

• 特徴 (http://aws.amazon.com/jp/sns/)

– 個々のメッセージ送信や、多数の受信者にメッセージをファンアウトすることが可能

– AWSの様々なサービスと連携して通知可能– フルマネージドなので高速かつスケーラブルで管理不要で

非常に安価

• 価格体系 (http://aws.amazon.com/jp/sns/pricing/)

– 無料枠: • Email/Email-JSON: 1,000件

• HTTP/HTTPS: 100,000件• Simple Queue Service(SQS): 無料

– リクエスト単価(64KBのチャンク毎に1リクエストとして課金)

• Email/Email-JSON: 100,000件あたり2 USD• HTTP/HTTPS: 100万件あたり0.6 USD• Simple Queue Service(SQS): 無料

マルチプロトコルに対応したフルマネージド通知サービス

Publish

1.Topicにメッセージを送信

2. マルチプロトコルで通知

Amazon SNSPublisher Topic

HTTPHTTPS

EMAIL

SQS

Mobile Push

Subscriber

Page 53: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

52

Amazon SESでのコンテンツフィルタリング

• アプリケーションからの送信リクエストを受け取ると、Amazon SESはメールメッセージを組⽴て(assemble)、ISPがSpamと見做さないか、HeaderとBodyをスキャンする

• もしAmazon SESによりSpamのように見えると判断された場合は、Amazon SES内の評価(Reputation)が低下

• ウイルスやマルウェアが含まれるメッセージを検出するとブロックし、これらが送信されるのを未然に防⽌

Page 54: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

53

詳細はAWS Blackbelt Tech Webinar資料をご覧ください

• http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-amazon-ses

Page 55: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

54

アジェンダ

• Eメール送信の基本

• AWSからのEメール送信の選択肢

• Amazon EC2上にMTAを構築してEメールを送信する

• Amazon SESでEメールを送信する

• まとめ

Page 56: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

55

まとめ

• AWSからEメールを送信する場合も、通常通りバウンス対策や送信元認証を行う必要があります

• Amazon SESを利用する場合は以下点を⼗分に考慮しましょう– 現状⽇本国内の携帯キャリアの制限を⼗分考慮した配信アルゴリズムにはなっていな

い(→場合によっては、EC2上のMTAからの送信を検討しましょう)

– BounceやComplaintの処理を行っていないと送信レートの抑制や送信停⽌措置が取られる事もある(IPアドレスプールをクリーンに保つとともに、世の中のメールの信頼性・健全性向上を促すため)

• EC2上でのMTAの利用や外部Eメール配信サービスの利用も検討しましょう

Page 57: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

56

EC2、SESのどちらを選ぶか?(再掲)

Bounce処理を実装予定

NoBounce処理はどちらの方法でも重要です。

実装しましょう。

携帯キャリアのアドレスに送信予定あり

Yes

Yes 1. EC2上のMTA構築も検討

No

Bounceやコンテンツの問題による送信レート抑制を受入可

No

2. SESの利用も考慮に

Yes

Page 58: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

57

Q&A

Page 59: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

58

参考文献・リンク

• Amazon Simple Email ServiceEメール送信のベストプラクティスhttp://d36cz9buwru1tt.cloudfront.net/jp/wp/AWS_Amazon_SES_Best_Practices.pdf

Page 60: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

59

詳しくは、http://aws.amazon.com/training をご覧ください

メリット

• AWS について実習や実践練習を通じて学習できる

• AWS を熟知したエキスパートから直接 AWS の機能について学び、疑問の答えを得られる

• 自信をもって IT ソリューションに関する決定を下せるようになる

提供方法

e ラーニングや動画

セルフペースラボ

クラスルームトレーニング

AWSトレーニングでは様々な学習方法をご提供しています

Page 61: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

60

公式Twitter/FacebookAWSの最新情報をお届けします

@awscloud_jp

検索

最新技術情報、イベント情報、お役⽴ち情報、お得なキャンペーン情報などを⽇々更新しています!

もしくはhttp://on.fb.me/1vR8yWm

Page 62: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

61

AWSの導入、お問い合わせのご相談

• AWSクラウド導入に関するご質問、お見積り、資料請求をご希望のお客様は、以下のリンクよりお気軽にご相談くださいhttps://aws.amazon.com/jp/contact-us/aws-sales/

※「AWS 問い合わせ」で検索してください

Page 63: Presentation Title Here€¦ · 1. Amazon Elastic Compute Cloud (EC2)インスタンス 上にMail Transfer Agent(MTA)を構築して配信 2. Amazon Simple Email Service (SES)の利用

62

ご参加頂きありがとうございました