20111207 11 aws-meister-ses-public

Post on 24-May-2015

2.076 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

2011年12月7日

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

玉川憲(@kentamagawa)

エバンジェリスト

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)

Mailbox Mail 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

(失われた)その他形式

user % example.com @ relay

@relay: user@example.com

example.com ! user

ユーザ部 ドメイン部

ヘッダと本文

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

ヘッダ

ヘッダ名: ヘッダ内容

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

To: yasu@debian.or.jp

From: ar@debian.org

Subject: test

本文の1行目

ヘッダとエンベロープ

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

エンベロープ

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

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

ヘッダ

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

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

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

個人にあてられたbcc

メーリングリスト

インターネット

プロトコル

メールサーバ

ローカル

ファイル操作

DNS

NTP

IMAP

POP3

SMTP

SMTP

DNSとメール

user@example.comにどう届く?

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

MXレコード

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

たまに見る間違い

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

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

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レコード?....

$ 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: user@example.com

250 OK

RCPT TO: user1@example.jp

250 OK

example.jp

DATA

354 Start

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

250 OK

QUIT

250 OK

MTA

MUA

SMTPのステータスコード

200番台

正常応答

情報提供

300番台

データ入力を促す(354)

400番台

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

500番台

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

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

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

MLプログラム

HELO sender.example.com

250 OK

MAIL FROM: user@example.com

250 OK

RCPT TO: user2@example.jp

250 OK

配送サーバ

DATA

354 Start

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

250 OK

QUIT

250 OK

RCPT TO: user1@example.jp

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可能 不可 不可 可能 可能

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

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

料金 $49 AWS利用総額の

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で証明された配送実績

top related