20111207 11 aws-meister-ses-public

2,454 views
2,296 views

Published on

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

Published in: Technology

20111207 11 aws-meister-ses-public

  1. 1. AWSマイスターシリーズ~Simple Email Service (SES)~ 2011年12月7日 荒木 靖宏 (@ar1 ) ソリューションアーキテクト 玉川憲(@kentamagawa) エバンジェリスト
  2. 2. Amazon Simple Email Service (SES)とは メール送信のためにMTAを運用する手間から開放するAWSの サービス  初期費用やコミッションなし。低価格。  配送機能のみの提供 Email配送APIの提供  Java, .NET, PHP, Perlによるスクリプトの提供  APIの直接コール(HTTPS) スケーラブル  稼働時間とメール到達性に最適化  Amazonで証明された配送実績
  3. 3. アジェンダAmazon SESとは  1枚にまとめましたメールシステム超基本編  これであなたもメール談義ができるように!メールシステム現実編  これであなたもメール騙りができるように!Amazon SESの紹介  本編
  4. 4. キレイゴトの世界メールシステム 超基本編これであなたもメールの話題の輪に加われます
  5. 5. メールシステム全体 DNS インターネット NTPメールサーバ Mail Delivery Agent Mail Transfer Agent (MTA) Mailbox Mail User Agent (MUA)
  6. 6. Mail User Agent ユーザが利用するアプリケーション  メールを読む  メールを書く  メールを保存する  メールを検索する 例  Thunderbird, Outlook, …. 単純な利用者にとってはこれだけがメールとの接点
  7. 7. Mail Transfer Agent メールの受信 送信先の決定 メールの送信  リモートへ(SMTP)  ローカルへ(MDAへ) キューイング エラー通知 実装例  Sendmail, qmail, Exchange, Postfix, Exim,..
  8. 8. メールメッセージ
  9. 9. メールアドレス発信者と受信者を特定する情報user@example.com ドメイン ユーザ部 部(失われた)その他形式  user % example.com @ relay  @relay: user@example.com  example.com ! user
  10. 10. ヘッダと本文RFC5322(822->2822と変遷)で定義ヘッダ  ヘッダ名: ヘッダ内容ヘッダと本文は空行で分ける To: yasu@debian.or.jp From: ar@debian.org Subject: test 本文の1行目
  11. 11. ヘッダとエンベロープSMTPのRFCで定義。5321(821->2821と変遷)エンベロープ  送信手続をした人と、配送先。封書の表書きのイメージ  MUAやMTAが作成する。MTAは配信ホップ毎に書きかえる。ヘッダ  封書の中身に「だれだれさんから、だれだれさんへ」と書くの に相当  本文を書いた人(From)が読んで欲しい人(To)を記述ヘッダとエンベロープが一致しない例  個人にあてられたbcc  メーリングリスト
  12. 12. プロトコル DNS インターネット NTPメールサーバ ローカル ファイル操作 SMTP IMAP POP3 SMTP
  13. 13. DNSとメールuser@example.comにどう届く?  送信側: MXレコードに書かれたアドレスのAレコード宛に送信 するMXレコード  優先度を指定できる(数値が小さいほうが優先される)たまに見る間違い  CNAMEを指定する(RFC2181で禁止)  MTAによってはメールが届かない
  14. 14. DNSを使った送信先決定 DNS root server DNS MTA cache server 2 1,5 .com SOA 31. Example.comのMXレコード?2. Example.comのMXレコード?→.comに聞け3. Example.comのMXレコード?→.example.comに聞け4. Example.comのMXレコード?→10 mail.example.comだ 4 .example.com SOA よ5. Mail.example.comのAレコード?....
  15. 15. $ 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.27alt1.aspmx.l.google.com. 187 IN A 74.125.45.27alt2.aspmx.l.google.com. 197 IN A 74.125.93.27aspmx2.googlemail.com. 2212 IN A 74.125.43.27aspmx3.googlemail.com. 2213 IN A 74.125.127.27aspmx4.googlemail.com. 2945 IN A 209.85.229.27aspmx5.googlemail.com. 1888 IN A 74.125.157.27ns-165.awsdns-20.com. 44352 IN A 205.251.192.165ns-1003.awsdns-61.net. 44352 IN A 205.251.195.235ns-1347.awsdns-40.org. 162645 IN A 205.251.197.67
  16. 16. SMTP HELO sender.example.com 250 OK MAIL FROM: user@example.comSender.example.com 250 OK example.jp RCPT TO: user1@example.jp 250 OK DATA MTA 354 Start MUA ヘッダ,本文.. <CRLF>.<CRLF> 250 OK QUIT 250 OK
  17. 17. SMTPのステータスコード200番台  正常応答  情報提供300番台  データ入力を促す(354)400番台  一時的なエラー: サーバシャットダウン、メールボックス busy、メールボックス溢れ500番台  システムエラー: コマンド間違い  転送エラー: メールアドレスなし、処理失敗通知
  18. 18. メーリングリスト配送の場合 HELO sender.example.com 250 OK MAIL FROM: user@example.com 250 OKMLプログラム RCPT TO: user1@example.jp 配送サーバ 250 OK RCPT TO: user2@example.jp 250 OK 参加者分くりかえ し DATA 354 Start SMTPの規 ヘッダ,本文.. <CRLF>.<CRLF> 定ではすく 250 OK なくとも50 QUIT まで 250 OK
  19. 19. 配信エラーメールSMTPセッション時のエラー  送信元のMTAが作成。  エンベロープの発信者メールアドレスにエラーメールが戻るSMTPセッション時以外  送信先のMTAが作成  エンベロープの発信者に戻る or Errors-To:
  20. 20. 参加者みなさまと おはなししていきたいメールシステム 現実編これであなたもメール管理者の穴にはいれます
  21. 21. vs SPAM メールの悲しみ  他者からの入力を認証なしにうけつけてしまったのが発端 個人として  受信したときの対応はどうとでもなる: フィルタでもなんでも できる  自分のメールアドレスでSPAMを送信されたときは大変。 サーバ管理者として  受信する側: 下手な対応はできない  送信する側: ものすごく厳しくするのオススメ
  22. 22. Port25 blocking ターゲットの主体は動的IPアドレス  動的っぽい(機械生成チック)アドレス名を手で更新する例も。 動的IPアドレスから外向きPort25のブロック  全てのEmailはISPのMTA経由に  submission portへの対応  AWSでも外向き25のブロックは頻繁に行われます 動的IPアドレスからの内向きPort25のブロック  MAPS DUL (Dynamic User List)等
  23. 23. メールブロック(AntiSpam)手法:受信側 ネットワーク事業者によるもの  Portブロック 受け手によるもの  IPアドレスブロック  国ブロック  地域ブロック  DNS逆引きブロック 維持管理団体の出現  DNS性逆一致ブロック  ヘッダブロック  本文ブロック
  24. 24. 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
  25. 25. spam扱いされない送信側作法超基本の第三者中継チェック  http://spamlinks.net/prevent-secure-relay-test.htmDBの定期的確認  http://www.dnsbl.info/dnsbl-database-check.php  http://www.senderbase.org/help/blockedDNS  逆引きを忘れずに • 正逆一致しないと受けとらないMTA多数あり  SPFレコード • RFC4408参照。DKIM  DKIM導入リコメンド • http://www.dkim.jp/dkim-jp/recommend/  国内の主要送信事業者11社がDKIMに対応完了(2011年7月26日)
  26. 26. 現状のメール環境の意識は人によって大きく異なる対Spam意識が高い(=メールボックスが割りとクリーン)  メールアドレスの使い分け(ステアドレスの使用)  MUAでのアンチスパム機能の利用とDBメンテナンス一方でメールを諦める人も  各種ソーシャルネットワーキングサービスの利用  SMS
  27. 27. 受信側の現実解アプライアンス  メール専用機: • Mirapoint, Ironport…..  UTM: • Sonicwall, UTM-1 (checkpoint)….SaaS  Gmail, McAfee, Trend Micro HES…
  28. 28. 送信側の現実解アプリケーション  MailPublisher(エイケア), Cuenote (ユミルリンク), SIELLA (レピカ), WEBCAS(エイジア)Amazon Simple Email Service
  29. 29. Amazon Simple Email Serviceのご紹介
  30. 30. SESはメール配送機能のみを提供Bodyやヘッダを使ったサービスを提供するものではありません。
  31. 31. メール送信API SendEmailAPI (定形フォーマット)  From, To, Subject, BodyをAPIで指定 SendRawEmailAPI (自由フォーマット)  すべて設定する必要あり • ヘッダ • MIME Type • Body 既存MTAからのリレーも可能  PostfixやSendmail等で使えるAPIコールスクリプト公開
  32. 32. Feedback API GetSendStatistics API  配送終了  拒否されたメッセージ  Hard Bounces(永続的配送エラー)  Complaints(受信者がSpamとして処理)
  33. 33. 配送環境管理制限  自動でだんだんと緩和  GetSendQuota API • 24時間毎の配送数制限 • 配送速度(秒単位)制限  Web Formから緩和リクエスト可能Anti-Spam  配信内容はAWSにより全スキャン  DKIM, SPF, SenderIDのサポート  ISPからのフィードバックのリアルタイム監視
  34. 34. 利用までの流れ登録送信元メールアドレス(ホワイトリスト)の登録サンドボックス環境でのテスト  Amazon SES script または APIのダイレクトコール  定形形式または自由形式production accessへのリクエスト  Amazon SES Production Access formへの入力
  35. 35. 送信メールアドレスの登録
  36. 36. 確認メールが届きます
  37. 37. 確認画面
  38. 38. 配送のリミット 同時に扱えるアドレス数は50まで  SMTPのRFCに準拠 メッセージサイズは10MBまで 配送能力制限
  39. 39. 配送コストメール総数+転送量  1000通毎に0.1ドル。添付ファイル GB 当たり 0.12ドル  転送量
  40. 40. コスト例 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通までは無料
  41. 41. 追加情報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-SESAmazon SES Production Access:  http://aws.amazon.com/ses/fullaccessrequestsuccessAmazon SES Limit Increase:  http://aws.amazon.com/ses/extendedaccessrequest
  42. 42. 日本のお客様からのFAQ配送元は国内か?  現在は米国から(US-EASTから)携帯キャリア対応?  SenderID, DKIM, SPFに対応しています  特定接続サービス等は未対応とお考え下さい絵文字対応?  変換サービスなどはありません。開封確認?  SESは配送機能のみの提供です。既存メールサーバとの統合?  APIをコールするスクリプト等を使ったリレーが可能
  43. 43. AWSプレミアムサポート アーキテクチャ設計に関するガイダンス、ベストプラク ティスも日本語でご案内できます aws.amazon.com/jp/premiumsupport/ ブロンズ シルバー ゴールド プラチナ初回応答時間 12時間 4時間 1時間 15分サポート連絡先 1人 2人 3人 無制限24/365対応 なし なし あり ありTEL可能 不可 不可 可能 可能専任スタッフ なし なし なし あり特別サポート なし なし なし あり AWS利用総額の AWS利用総額の $0~$10K: 10% AWS利用総額の 10%料金 $49 5% $10K~$80K: 7% $80K~: 5% (最低$15K) (最低$400) Copyright © 2011 Amazon Web Services
  44. 44. Amazon Simple Email Service (SES)とは メール送信のためにMTAを運用する手間から開放するAWSの サービス  初期費用やコミッションなし。低価格。  配送機能のみの提供 Email配送APIの提供  Java, .NET, PHP, Perlによるスクリプトの提供  APIの直接コール(HTTPS) スケーラブル  稼働時間とメール到達性に最適化  Amazonで証明された配送実績

×