20111207 11 aws-meister-ses-public

44
AWSマイスターシリーズ ~Simple Email Service (SES)~ 2011127荒木 靖宏 (@ar1 ) ソリューションアーキテクト 玉川憲(@kentamagawa) エバンジェリスト

Upload: amazon-web-services-japan

Post on 24-May-2015

2.076 views

Category:

Technology


3 download

DESCRIPTION

ほぼ週間AWSマイスターシリーズのAmazon Simple Email Serviceの回の資料です。

TRANSCRIPT

Page 1: 20111207 11 aws-meister-ses-public

AWSマイスターシリーズ ~Simple Email Service (SES)~

2011年12月7日

荒木 靖宏 (@ar1 ) ソリューションアーキテクト

玉川憲(@kentamagawa)

エバンジェリスト

Page 2: 20111207 11 aws-meister-ses-public

Amazon Simple Email Service (SES)とは

メール送信のためにMTAを運用する手間から開放するAWSのサービス

初期費用やコミッションなし。低価格。

配送機能のみの提供

Email配送APIの提供

Java, .NET, PHP, Perlによるスクリプトの提供

APIの直接コール(HTTPS)

スケーラブル

稼働時間とメール到達性に最適化

Amazonで証明された配送実績

Page 3: 20111207 11 aws-meister-ses-public

アジェンダ

Amazon SESとは

1枚にまとめました

メールシステム超基本編

これであなたもメール談義ができるように!

メールシステム現実編

これであなたもメール騙りができるように!

Amazon SESの紹介

本編

Page 4: 20111207 11 aws-meister-ses-public

メールシステム 超基本編 これであなたもメールの話題の輪に加われます

キレイゴトの世界

Page 5: 20111207 11 aws-meister-ses-public

インターネット

メールシステム全体

メールサーバ

Mail User Agent (MUA)

Mailbox Mail Transfer Agent (MTA)

Mail Delivery

Agent

DNS

NTP

Page 6: 20111207 11 aws-meister-ses-public

Mail User Agent

ユーザが利用するアプリケーション

メールを読む

メールを書く

メールを保存する

メールを検索する

例 Thunderbird, Outlook, ….

単純な利用者にとってはこれだけがメールとの接点

Page 7: 20111207 11 aws-meister-ses-public

Mail Transfer Agent

メールの受信

送信先の決定

メールの送信

リモートへ(SMTP)

ローカルへ(MDAへ)

キューイング

エラー通知

実装例

Sendmail, qmail, Exchange, Postfix, Exim,..

Page 8: 20111207 11 aws-meister-ses-public

メールメッセージ

Page 9: 20111207 11 aws-meister-ses-public

メールアドレス

発信者と受信者を特定する情報

[email protected]

(失われた)その他形式

user % example.com @ relay

@relay: [email protected]

example.com ! user

ユーザ部 ドメイン部

Page 10: 20111207 11 aws-meister-ses-public

ヘッダと本文

RFC5322(822->2822と変遷)で定義

ヘッダ

ヘッダ名: ヘッダ内容

ヘッダと本文は空行で分ける

To: [email protected]

From: [email protected]

Subject: test

本文の1行目

Page 11: 20111207 11 aws-meister-ses-public

ヘッダとエンベロープ

SMTPのRFCで定義。5321(821->2821と変遷)

エンベロープ

送信手続をした人と、配送先。封書の表書きのイメージ

MUAやMTAが作成する。MTAは配信ホップ毎に書きかえる。

ヘッダ

封書の中身に「だれだれさんから、だれだれさんへ」と書くのに相当

本文を書いた人(From)が読んで欲しい人(To)を記述

ヘッダとエンベロープが一致しない例

個人にあてられたbcc

メーリングリスト

Page 12: 20111207 11 aws-meister-ses-public

インターネット

プロトコル

メールサーバ

ローカル

ファイル操作

DNS

NTP

IMAP

POP3

SMTP

SMTP

Page 13: 20111207 11 aws-meister-ses-public

DNSとメール

[email protected]にどう届く?

送信側: MXレコードに書かれたアドレスのAレコード宛に送信する

MXレコード

優先度を指定できる(数値が小さいほうが優先される)

たまに見る間違い

CNAMEを指定する(RFC2181で禁止)

MTAによってはメールが届かない

Page 14: 20111207 11 aws-meister-ses-public

DNSを使った送信先決定

MTA DNS

cache server

DNS root server

.com SOA

.example.com SOA

1,5

2

3

4

1. Example.comのMXレコード?

2. Example.comのMXレコード?→.comに聞け

3. Example.comのMXレコード?→.example.comに聞け

4. Example.comのMXレコード?→10 mail.example.comだよ

5. Mail.example.comのAレコード?....

Page 15: 20111207 11 aws-meister-ses-public

$ dig mx hiroba.org

;; QUESTION SECTION:

;hiroba.org. IN MX

;; ANSWER SECTION:

hiroba.org. 86400 IN MX 5 alt1.aspmx.l.google.com.

hiroba.org. 86400 IN MX 5 alt2.aspmx.l.google.com.

hiroba.org. 86400 IN MX 10 aspmx2.googlemail.com.

hiroba.org. 86400 IN MX 10 aspmx3.googlemail.com.

hiroba.org. 86400 IN MX 10 aspmx4.googlemail.com.

hiroba.org. 86400 IN MX 10 aspmx5.googlemail.com.

hiroba.org. 86400 IN MX 1 aspmx.l.google.com.

;; AUTHORITY SECTION:

hiroba.org. 170129 IN NS ns-165.awsdns-20.com.

hiroba.org. 170129 IN NS ns-1624.awsdns-11.co.uk.

hiroba.org. 170129 IN NS ns-1347.awsdns-40.org.

hiroba.org. 170129 IN NS ns-1003.awsdns-61.net.

;; ADDITIONAL SECTION:

aspmx.l.google.com. 185 IN A 74.125.127.27

alt1.aspmx.l.google.com. 187 IN A 74.125.45.27

alt2.aspmx.l.google.com. 197 IN A 74.125.93.27

aspmx2.googlemail.com. 2212 IN A 74.125.43.27

aspmx3.googlemail.com. 2213 IN A 74.125.127.27

aspmx4.googlemail.com. 2945 IN A 209.85.229.27

aspmx5.googlemail.com. 1888 IN A 74.125.157.27

ns-165.awsdns-20.com. 44352 IN A 205.251.192.165

ns-1003.awsdns-61.net. 44352 IN A 205.251.195.235

ns-1347.awsdns-40.org. 162645 IN A 205.251.197.67

Page 16: 20111207 11 aws-meister-ses-public

SMTP

Sender.example.com

HELO sender.example.com

250 OK

MAIL FROM: [email protected]

250 OK

RCPT TO: [email protected]

250 OK

example.jp

DATA

354 Start

ヘッダ,本文.. <CRLF>.<CRLF>

250 OK

QUIT

250 OK

MTA

MUA

Page 17: 20111207 11 aws-meister-ses-public

SMTPのステータスコード

200番台

正常応答

情報提供

300番台

データ入力を促す(354)

400番台

一時的なエラー: サーバシャットダウン、メールボックスbusy、メールボックス溢れ

500番台

システムエラー: コマンド間違い

転送エラー: メールアドレスなし、処理失敗通知

Page 18: 20111207 11 aws-meister-ses-public

メーリングリスト配送の場合

MLプログラム

HELO sender.example.com

250 OK

MAIL FROM: [email protected]

250 OK

RCPT TO: [email protected]

250 OK

配送サーバ

DATA

354 Start

ヘッダ,本文.. <CRLF>.<CRLF>

250 OK

QUIT

250 OK

RCPT TO: [email protected]

250 OK

参加者分くりかえし

SMTPの規

定ではすくなくとも50

まで

Page 19: 20111207 11 aws-meister-ses-public

配信エラーメール

SMTPセッション時のエラー

送信元のMTAが作成。

エンベロープの発信者メールアドレスにエラーメールが戻る

SMTPセッション時以外

送信先のMTAが作成

エンベロープの発信者に戻る or Errors-To:

Page 20: 20111207 11 aws-meister-ses-public

メールシステム 現実編 これであなたもメール管理者の穴にはいれます

参加者みなさまと

おはなししていきたい

Page 21: 20111207 11 aws-meister-ses-public

vs SPAM

メールの悲しみ

他者からの入力を認証なしにうけつけてしまったのが発端

個人として

受信したときの対応はどうとでもなる: フィルタでもなんでもできる

自分のメールアドレスでSPAMを送信されたときは大変。

サーバ管理者として

受信する側: 下手な対応はできない

送信する側: ものすごく厳しくするのオススメ

Page 22: 20111207 11 aws-meister-ses-public

Port25 blocking

ターゲットの主体は動的IPアドレス

動的っぽい(機械生成チック)アドレス名を手で更新する例も。

動的IPアドレスから外向きPort25のブロック

全てのEmailはISPのMTA経由に

submission portへの対応

AWSでも外向き25のブロックは頻繁に行われます

動的IPアドレスからの内向きPort25のブロック

MAPS DUL (Dynamic User List)等

Page 23: 20111207 11 aws-meister-ses-public

メールブロック(AntiSpam)手法:受信側

ネットワーク事業者によるもの

Portブロック

受け手によるもの

IPアドレスブロック

国ブロック

地域ブロック

DNS逆引きブロック

DNS性逆一致ブロック

ヘッダブロック

本文ブロック

維持管理団体の出現

Page 24: 20111207 11 aws-meister-ses-public

DNSBL (DNS Blacklist)

フィルタリング情報をDNSにのせて配布

メジャーどころ

spamhous

Trendmicro(MAPS)

日本

スパムちゃんぷるーdnsbl

• http://spam-champuru.livedoor.com/dnsbl/

rbl.jp

他にも山のように存在

http://en.wikipedia.org/wiki/Comparison_of_DNS_blacklists

Page 25: 20111207 11 aws-meister-ses-public

spam扱いされない送信側作法

超基本の第三者中継チェック http://spamlinks.net/prevent-secure-relay-test.htm

DBの定期的確認 http://www.dnsbl.info/dnsbl-database-check.php http://www.senderbase.org/help/blocked

DNS 逆引きを忘れずに

• 正逆一致しないと受けとらないMTA多数あり SPFレコード

• RFC4408参照。 DKIM DKIM導入リコメンド

• http://www.dkim.jp/dkim-jp/recommend/ 国内の主要送信事業者11社がDKIMに対応完了(2011年7月26日)

Page 26: 20111207 11 aws-meister-ses-public

現状のメール環境の意識は人によって大きく異なる

対Spam意識が高い(=メールボックスが割りとクリーン)

メールアドレスの使い分け(ステアドレスの使用)

MUAでのアンチスパム機能の利用とDBメンテナンス

一方でメールを諦める人も

各種ソーシャルネットワーキングサービスの利用

SMS

Page 27: 20111207 11 aws-meister-ses-public

受信側の現実解

アプライアンス

メール専用機:

• Mirapoint, Ironport…..

UTM:

• Sonicwall, UTM-1 (checkpoint)….

SaaS

Gmail, McAfee, Trend Micro HES…

Page 28: 20111207 11 aws-meister-ses-public

送信側の現実解

アプリケーション

MailPublisher(エイケア), Cuenote (ユミルリンク), SIELLA (レピカ), WEBCAS(エイジア)

Amazon Simple Email Service

Page 29: 20111207 11 aws-meister-ses-public

Amazon Simple Email Serviceのご紹介

Page 30: 20111207 11 aws-meister-ses-public

SESはメール配送機能のみを提供

Bodyやヘッダを使ったサービスを提供するものではありません。

Page 31: 20111207 11 aws-meister-ses-public

メール送信API

SendEmailAPI (定形フォーマット)

From, To, Subject, BodyをAPIで指定

SendRawEmailAPI (自由フォーマット)

すべて設定する必要あり

• ヘッダ

• MIME Type

• Body

既存MTAからのリレーも可能

PostfixやSendmail等で使えるAPIコールスクリプト公開

Page 32: 20111207 11 aws-meister-ses-public

Feedback API

GetSendStatistics API

配送終了

拒否されたメッセージ

Hard Bounces(永続的配送エラー)

Complaints(受信者がSpamとして処理)

Page 33: 20111207 11 aws-meister-ses-public

配送環境管理

制限

自動でだんだんと緩和

GetSendQuota API

• 24時間毎の配送数制限

• 配送速度(秒単位)制限

Web Formから緩和リクエスト可能

Anti-Spam

配信内容はAWSにより全スキャン

DKIM, SPF, SenderIDのサポート

ISPからのフィードバックのリアルタイム監視

Page 34: 20111207 11 aws-meister-ses-public

利用までの流れ

登録

送信元メールアドレス(ホワイトリスト)の登録

サンドボックス環境でのテスト

Amazon SES script または APIのダイレクトコール

定形形式または自由形式

production accessへのリクエスト

Amazon SES Production Access formへの入力

Page 35: 20111207 11 aws-meister-ses-public

送信メールアドレスの登録

Page 36: 20111207 11 aws-meister-ses-public

確認メールが届きます

Page 37: 20111207 11 aws-meister-ses-public

確認画面

Page 38: 20111207 11 aws-meister-ses-public

配送のリミット

同時に扱えるアドレス数は50まで

SMTPのRFCに準拠

メッセージサイズは10MBまで

配送能力制限

Page 39: 20111207 11 aws-meister-ses-public

配送コスト

メール総数+転送量

1000通毎に0.1ドル。添付ファイル GB 当たり 0.12ドル

転送量

Page 40: 20111207 11 aws-meister-ses-public

コスト例

20KBのメールを月間2億通

配送数課金:200 * 10^6 * 0.1 / 10^3 = 20000ドル

転送量課金:10000 * 0.15 + 22000 * 0.11 = 3920ドル

100KBのメールを毎日1000通:10.7ドル

10KBのメールを毎日1000通:3.73ドル

EC2からのAPIで配送すると一日2000通までは無料

Page 41: 20111207 11 aws-meister-ses-public

追加情報

Amazon SES Detail Page:

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

Amazon SES FAQs:

http://aws.amazon.com/ses/faqs/

Amazon SES Documentation:

http://aws.amazon.com/documentation/ses/

Tools:

http://aws.amazon.com/developertools/Amazon-SES

Amazon SES Production Access:

http://aws.amazon.com/ses/fullaccessrequestsuccess

Amazon SES Limit Increase:

http://aws.amazon.com/ses/extendedaccessrequest

Page 42: 20111207 11 aws-meister-ses-public

日本のお客様からのFAQ

配送元は国内か?

現在は米国から(US-EASTから)

携帯キャリア対応?

SenderID, DKIM, SPFに対応しています

特定接続サービス等は未対応とお考え下さい

絵文字対応?

変換サービスなどはありません。

開封確認?

SESは配送機能のみの提供です。

既存メールサーバとの統合?

APIをコールするスクリプト等を使ったリレーが可能

Page 43: 20111207 11 aws-meister-ses-public

AWSプレミアムサポート アーキテクチャ設計に関するガイダンス、ベストプラクティスも日本語でご案内できます aws.amazon.com/jp/premiumsupport/

Copyright © 2011 Amazon Web Services

ブロンズ シルバー ゴールド プラチナ

初回応答時間 12時間 4時間 1時間 15分

サポート連絡先 1人 2人 3人 無制限

24/365対応 なし なし あり あり

TEL可能 不可 不可 可能 可能

専任スタッフ なし なし なし あり

特別サポート なし なし なし あり

料金 $49 AWS利用総額の

5%

AWS利用総額の

$0~$10K: 10%

$10K~$80K: 7%

$80K~: 5%

(最低$400)

AWS利用総額の

10%

(最低$15K)

Page 44: 20111207 11 aws-meister-ses-public

Amazon Simple Email Service (SES)とは

メール送信のためにMTAを運用する手間から開放するAWSのサービス

初期費用やコミッションなし。低価格。

配送機能のみの提供

Email配送APIの提供

Java, .NET, PHP, Perlによるスクリプトの提供

APIの直接コール(HTTPS)

スケーラブル

稼働時間とメール到達性に最適化

Amazonで証明された配送実績