aws simple email service詳細 -ほぼ週刊awsマイスターシリーズ第11回-
DESCRIPTION
TRANSCRIPT
AWSAWSAWSAWSマイスターシリーズマイスターシリーズマイスターシリーズマイスターシリーズ
~~~~Simple Email Service (SES)Simple Email Service (SES)Simple Email Service (SES)Simple Email Service (SES)~~~~
2011年12月7日
荒木靖宏 (@ar1 )
ソリューションアーキテクト
玉川憲(@kentamagawa)
エバンジェリスト
ほぼ週刊AWSマイスターシリーズへようこそ!
~GoToMeetingの使い方~
参加者は、自動的にミュートになっています
質問を投げることができます!
� GoToMeetingのChatの仕組みを使って、随時書き込んでください
� ただし環境によっては、日本語の直接入力ができないので、
お手数ですが、テキストエディタ等に打ち込んでから、貼り付けててください
� 最後のQ&Aの時間で、できるだけ回答させて頂きます
� 書き込んだ質問は、主催者にしか見えません
� オーガナイザーが書きこんだ場合には参加者全員から見えます。
Twitterのハッシュタグは#jawsugでどうぞ
Copyright © 2011 Amazon Web Services
プレゼントプレゼントプレゼントプレゼント
本日一番良い質問を頂いた方に、
をプレゼントします!
LEGOブロック キーホルダー
Webセミナーセミナーセミナーセミナー
ほぼ週刊ほぼ週刊ほぼ週刊ほぼ週刊AWSマイスターシリーズ(全マイスターシリーズ(全マイスターシリーズ(全マイスターシリーズ(全10回)回)回)回)
� 12/7 第11回 SES
� 12/15 第12回 SimpleDB, SQS, SNS
http://aws.amazon.com/jp/event_schedule/
申し込みサイト
Amazon Simple Email Service (SES)とは
メール送信のためにMTAを運用する手間から開放するAWSのサービス
� 初期費用やコミッションなし。低価格。
� 配送機能のみの提供
Email配送APIの提供
� Java, .NET, PHP, Perlによるスクリプトの提供
� APIの直接コール(HTTPS)
スケーラブル
� 稼働時間とメール到達性に最適化
� Amazonで証明された配送実績
アジェンダ
Amazon SESとは
� 1枚にまとめました
メールシステム超基本編
� これであなたもメール談義ができるように!
メールシステム現実編
� これであなたもメール騙りができるように!
Amazon SESの紹介
� 本編
メールシステム 超基本編
これであなたもメールの話題の輪に加われます
キレイゴトの世界
インターネット
メールシステム全体
メールサーバ
Mail User Agent (MUA)
MailboxMail Transfer Agent (MTA)
Mail Delivery Agent
DNS
NTP
Mail User Agent
ユーザが利用するアプリケーション
� メールを読む
� メールを書く
� メールを保存する
� メールを検索する
例
� Thunderbird, Outlook, ….
単純な利用者にとってはこれだけがメールとの接点
Mail Transfer Agent
メールの受信
送信先の決定
メールの送信
� リモートへ(SMTP)
� ローカルへ(MDAへ)
キューイング
エラー通知
実装例
� Sendmail, qmail, Exchange, Postfix, Exim,..
メールメッセージ
メールアドレス
発信者と受信者を特定する情報
(失われた)その他形式
� user % example.com @ relay
� @relay: [email protected]
� example.com ! user
ユーザ部
ドメイン
部
ドメイン
部
ヘッダと本文
RFC5322(822->2822と変遷)で定義
ヘッダ
� ヘッダ名: ヘッダ内容
ヘッダと本文は空行で分ける
To: [email protected]: [email protected]: test
本文の1行目
ヘッダとエンベロープ
SMTPのRFCで定義。5321(821->2821と変遷)
エンベロープ
� 送信手続をした人と、配送先。封書の表書きのイメージ
� MUAやMTAが作成する。MTAは配信ホップ毎に書きかえる。
ヘッダ
� 封書の中身に「だれだれさんから、だれだれさんへ」と書くの
に相当
� 本文を書いた人(From)が読んで欲しい人(To)を記述
ヘッダとエンベロープが一致しない例
� 個人にあてられたbcc
� メーリングリスト
インターネット
プロトコル
メールサーバ
ローカル
ファイル操作
DNS
NTP
IMAPPOP3SMTP
SMTP
DNSとメール
[email protected]にどう届く?
� 送信側: MXレコードに書かれたアドレスのAレコード宛に送信する
MXレコード
� 優先度を指定できる(数値が小さいほうが優先される)
たまに見る間違い
� CNAMEを指定する(RFC2181で禁止)
� MTAによってはメールが届かない
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レコード?....
$ 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
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
SMTPのステータスコード
200番台
� 正常応答
� 情報提供
300番台
� データ入力を促す(354)
400番台
� 一時的なエラー: サーバシャットダウン、メールボックス
busy、メールボックス溢れ
500番台
� システムエラー: コマンド間違い
� 転送エラー: メールアドレスなし、処理失敗通知
メーリングリスト配送の場合
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まで
配信エラーメール
SMTPセッション時のエラー
� 送信元のMTAが作成。
� エンベロープの発信者メールアドレスにエラーメールが戻る
SMTPセッション時以外
� 送信先のMTAが作成
� エンベロープの発信者に戻る or Errors-To:
メールシステム 現実編
これであなたもメール管理者の穴にはいれます
参加者みなさまと
おはなししていきたい
vs SPAM
メールの悲しみ
� 他者からの入力を認証なしにうけつけてしまったのが発端
個人として
� 受信したときの対応はどうとでもなる: フィルタでもなんでもできる
� 自分のメールアドレスでSPAMを送信されたときは大変。
サーバ管理者として
� 受信する側: 下手な対応はできない
� 送信する側: ものすごく厳しくするのオススメ
Port25 blocking
ターゲットの主体は動的IPアドレス
� 動的っぽい(機械生成チック)アドレス名を手で更新する例も。
動的IPアドレスから外向きPort25のブロック
� 全てのEmailはISPのMTA経由に
� submission portへの対応
� AWSでも外向き25のブロックは頻繁に行われます
動的IPアドレスからの内向きPort25のブロック
� MAPS DUL (Dynamic User List)等
メールブロック(AntiSpam)手法:受信側
ネットワーク事業者によるもの
� Portブロック
受け手によるもの
� IPアドレスブロック
� 国ブロック
� 地域ブロック
� DNS逆引きブロック
� DNS性逆一致ブロック
� ヘッダブロック
� 本文ブロック
維持管理団体の出現
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
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日)
現状のメール環境の意識は人によって大きく異
なる
対Spam意識が高い(=メールボックスが割りとクリーン)
� メールアドレスの使い分け(ステアドレスの使用)
� MUAでのアンチスパム機能の利用とDBメンテナンス
一方でメールを諦める人も
� 各種ソーシャルネットワーキングサービスの利用
� SMS
受信側の現実解
アプライアンス
� メール専用機:
• Mirapoint, Ironport…..
� UTM:
• Sonicwall, UTM-1 (checkpoint)….
SaaS
� Gmail, McAfee, Trend Micro HES…
送信側の現実解
アプリケーション
� MailPublisher(エイケア), Cuenote (ユミルリンク), SIELLA (レピカ), WEBCAS(エイジア)
Amazon Simple Email Service
Amazon Simple Email Serviceのご紹介
SESはメール配送機能のみを提供はメール配送機能のみを提供はメール配送機能のみを提供はメール配送機能のみを提供
Bodyやヘッダを使ったサービスを提供するものではありません。
メールメールメールメール送信送信送信送信API
SendEmailAPI (定形フォーマット)
� From, To, Subject, BodyをAPIで指定
SendRawEmailAPI (自由フォーマット)
� すべて設定する必要あり
• ヘッダ
• MIME Type
• Body
既存MTAからのリレーも可能
� PostfixやSendmail等で使えるAPIコールスクリプト公開
Feedback API
GetSendStatistics API
� 配送終了
� 拒否されたメッセージ
� Hard Bounces(永続的配送エラー)
� Complaints(受信者がSpamとして処理)
配送環境配送環境配送環境配送環境管理管理管理管理
制限
� 自動でだんだんと緩和
� GetSendQuota API
• 24時間毎の配送数制限
• 配送速度(秒単位)制限
� Web Formから緩和リクエスト可能
Anti-Spam
� 配信内容はAWSにより全スキャン
� DKIM, SPF, SenderIDのサポート
� ISPからのフィードバックのリアルタイム監視
利用までの流れ利用までの流れ利用までの流れ利用までの流れ
登録
送信元メールアドレス(ホワイトリスト)の登録
サンドボックス環境でのテスト
� Amazon SES script または APIのダイレクトコール
� 定形形式または自由形式
production accessへのリクエスト
� Amazon SES Production Access formへの入力
送信メールアドレスの登録送信メールアドレスの登録送信メールアドレスの登録送信メールアドレスの登録
確認メールが届きます確認メールが届きます確認メールが届きます確認メールが届きます
確認画面確認画面確認画面確認画面
配送のリミット配送のリミット配送のリミット配送のリミット
同時に扱えるアドレス数は50まで
� SMTPのRFCに準拠
メッセージサイズは10MBまで
配送能力制限
配送コスト配送コスト配送コスト配送コスト
メール総数+転送量
� 1000通毎に0.1ドル。添付ファイル GB 当たり 0.12ドル
� 転送量
コスト例コスト例コスト例コスト例
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通までは無料
追加追加追加追加情報情報情報情報
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
日本のお客様からの日本のお客様からの日本のお客様からの日本のお客様からのFAQ
配送元は国内か?
� 現在は米国から(US-EASTから)
携帯キャリア対応?
� SenderID, DKIM, SPFに対応しています
� 特定接続サービス等は未対応とお考え下さい
絵文字対応?
� 変換サービスなどはありません。
開封確認?
� SESは配送機能のみの提供です。
既存メールサーバとの統合?
� APIをコールするスクリプト等を使ったリレーが可能
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)
Amazon Simple Email Service (SES)とは
メール送信のためにMTAを運用する手間から開放するAWSのサービス
� 初期費用やコミッションなし。低価格。
� 配送機能のみの提供
Email配送APIの提供
� Java, .NET, PHP, Perlによるスクリプトの提供
� APIの直接コール(HTTPS)
スケーラブル
� 稼働時間とメール到達性に最適化
� Amazonで証明された配送実績