aws simple email service詳細 -ほぼ週刊awsマイスターシリーズ第11回-

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

Upload: -ken-tamagawa-amazon-web-services

Post on 14-Jan-2015

7.973 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

AWSAWSAWSAWSマイスターシリーズマイスターシリーズマイスターシリーズマイスターシリーズ

~~~~Simple Email Service (SES)Simple Email Service (SES)Simple Email Service (SES)Simple Email Service (SES)~~~~

2011年12月7日

荒木靖宏 (@ar1 )

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

玉川憲(@kentamagawa)

エバンジェリスト

Page 2: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

ほぼ週刊AWSマイスターシリーズへようこそ!

~GoToMeetingの使い方~

参加者は、自動的にミュートになっています

質問を投げることができます!

� GoToMeetingのChatの仕組みを使って、随時書き込んでください

� ただし環境によっては、日本語の直接入力ができないので、

お手数ですが、テキストエディタ等に打ち込んでから、貼り付けててください

� 最後のQ&Aの時間で、できるだけ回答させて頂きます

� 書き込んだ質問は、主催者にしか見えません

� オーガナイザーが書きこんだ場合には参加者全員から見えます。

Twitterのハッシュタグは#jawsugでどうぞ

Copyright © 2011 Amazon Web Services

Page 3: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

プレゼントプレゼントプレゼントプレゼント

本日一番良い質問を頂いた方に、

をプレゼントします!

LEGOブロック キーホルダー

Page 4: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

Webセミナーセミナーセミナーセミナー

ほぼ週刊ほぼ週刊ほぼ週刊ほぼ週刊AWSマイスターシリーズ(全マイスターシリーズ(全マイスターシリーズ(全マイスターシリーズ(全10回)回)回)回)

� 12/7 第11回 SES

� 12/15 第12回 SimpleDB, SQS, SNS

http://aws.amazon.com/jp/event_schedule/

申し込みサイト

Page 5: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

Amazon Simple Email Service (SES)とは

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

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

� 配送機能のみの提供

Email配送APIの提供

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

� APIの直接コール(HTTPS)

スケーラブル

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

� Amazonで証明された配送実績

Page 6: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

アジェンダ

Amazon SESとは

� 1枚にまとめました

メールシステム超基本編

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

メールシステム現実編

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

Amazon SESの紹介

� 本編

Page 7: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

メールシステム 超基本編

これであなたもメールの話題の輪に加われます

キレイゴトの世界

Page 8: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

インターネット

メールシステム全体

メールサーバ

Mail User Agent (MUA)

MailboxMail Transfer Agent (MTA)

Mail Delivery Agent

DNS

NTP

Page 9: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

Mail User Agent

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

� メールを読む

� メールを書く

� メールを保存する

� メールを検索する

� Thunderbird, Outlook, ….

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

Page 10: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

Mail Transfer Agent

メールの受信

送信先の決定

メールの送信

� リモートへ(SMTP)

� ローカルへ(MDAへ)

キューイング

エラー通知

実装例

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

Page 11: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

メールメッセージ

Page 12: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

メールアドレス

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

[email protected]

(失われた)その他形式

� user % example.com @ relay

� @relay: [email protected]

� example.com ! user

ユーザ部

ドメイン

ドメイン

Page 13: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

ヘッダと本文

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

ヘッダ

� ヘッダ名: ヘッダ内容

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

To: [email protected]: [email protected]: test

本文の1行目

Page 14: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

ヘッダとエンベロープ

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

エンベロープ

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

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

ヘッダ

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

に相当

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

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

� 個人にあてられたbcc

� メーリングリスト

Page 15: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

インターネット

プロトコル

メールサーバ

ローカル

ファイル操作

DNS

NTP

IMAPPOP3SMTP

SMTP

Page 16: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

DNSとメール

[email protected]にどう届く?

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

MXレコード

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

たまに見る間違い

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

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

Page 17: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

DNSを使った送信先決定

MTADNS 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 18: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

$ 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 19: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

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

MTAMUA

Page 20: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

SMTPのステータスコード

200番台

� 正常応答

� 情報提供

300番台

� データ入力を促す(354)

400番台

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

busy、メールボックス溢れ

500番台

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

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

Page 21: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

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

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 22: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

配信エラーメール

SMTPセッション時のエラー

� 送信元のMTAが作成。

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

SMTPセッション時以外

� 送信先のMTAが作成

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

Page 23: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

メールシステム 現実編

これであなたもメール管理者の穴にはいれます

参加者みなさまと

おはなししていきたい

Page 24: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

vs SPAM

メールの悲しみ

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

個人として

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

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

サーバ管理者として

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

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

Page 25: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

Port25 blocking

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

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

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

� 全てのEmailはISPのMTA経由に

� submission portへの対応

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

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

� MAPS DUL (Dynamic User List)等

Page 26: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

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

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

� Portブロック

受け手によるもの

� IPアドレスブロック

� 国ブロック

� 地域ブロック

� DNS逆引きブロック

� DNS性逆一致ブロック

� ヘッダブロック

� 本文ブロック

維持管理団体の出現

Page 27: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

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 28: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

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 29: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

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

なる

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

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

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

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

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

� SMS

Page 30: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

受信側の現実解

アプライアンス

� メール専用機:

• Mirapoint, Ironport…..

� UTM:

• Sonicwall, UTM-1 (checkpoint)….

SaaS

� Gmail, McAfee, Trend Micro HES…

Page 31: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

送信側の現実解

アプリケーション

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

Amazon Simple Email Service

Page 32: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

Amazon Simple Email Serviceのご紹介

Page 33: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

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

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

Page 34: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

メールメールメールメール送信送信送信送信API

SendEmailAPI (定形フォーマット)

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

SendRawEmailAPI (自由フォーマット)

� すべて設定する必要あり

• ヘッダ

• MIME Type

• Body

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

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

Page 35: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

Feedback API

GetSendStatistics API

� 配送終了

� 拒否されたメッセージ

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

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

Page 36: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

配送環境配送環境配送環境配送環境管理管理管理管理

制限

� 自動でだんだんと緩和

� GetSendQuota API

• 24時間毎の配送数制限

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

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

Anti-Spam

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

� DKIM, SPF, SenderIDのサポート

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

Page 37: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

利用までの流れ利用までの流れ利用までの流れ利用までの流れ

登録

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

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

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

� 定形形式または自由形式

production accessへのリクエスト

� Amazon SES Production Access formへの入力

Page 38: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

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

Page 39: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

確認メールが届きます確認メールが届きます確認メールが届きます確認メールが届きます

Page 40: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

確認画面確認画面確認画面確認画面

Page 41: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

配送のリミット配送のリミット配送のリミット配送のリミット

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

� SMTPのRFCに準拠

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

配送能力制限

Page 42: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

配送コスト配送コスト配送コスト配送コスト

メール総数+転送量

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

� 転送量

Page 43: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

コスト例コスト例コスト例コスト例

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 44: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

追加追加追加追加情報情報情報情報

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 45: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

日本のお客様からの日本のお客様からの日本のお客様からの日本のお客様からのFAQ

配送元は国内か?

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

携帯キャリア対応?

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

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

絵文字対応?

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

開封確認?

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

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

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

Page 46: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

AWSプレミアムサポート

アーキテクチャ設計に関するガイダンス、ベストプラク

ティスも日本語でご案内できます

aws.amazon.com/jp/premiumsupport/

Copyright © 2011 Amazon Web Services

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

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

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

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

TEL可能可能可能可能 不可 不可 可能 可能

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

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

料金料金料金料金 $49AWS利用総額の

5%

AWS利用総額の

$0~$10K: 10%$10K~$80K: 7%$80K~: 5%(最低$400)

AWS利用総額の

10%

(最低$15K)

Page 47: AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-

Amazon Simple Email Service (SES)とは

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

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

� 配送機能のみの提供

Email配送APIの提供

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

� APIの直接コール(HTTPS)

スケーラブル

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

� Amazonで証明された配送実績