Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SendGridのない世界 | SendGrid Night in Osaka #2

469 views

Published on

もしもSendGrid(のような配信クラウド)が無かったら自前でメール配信するのに何が必要かって話

Published in: Internet
  • Be the first to comment

SendGridのない世界 | SendGrid Night in Osaka #2

  1. 1. SendGrid の ない世界 @azumakuniyuki SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん
  2. 2. 自己紹介 @azumakuniyuki (東邦之) 株式会社Cubicroot (京都市) 2 - インフラエンジニア(ラック実装から構築・保守) - *BSD, Linux, 古くはSolaris, SunOS - ネットワークの設計・サーバの構築と保守 - インフラのコード化支援(Ansible,Serverspec) - 数年前からプログラマー - 主にPerl, Rubyも - サイトの開発(バックエンド) - メール関連の開発 SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  3. 3. 取材をうけた 3 https://employment.en-japan.com/engineerhub/entry/2017/08/23/110000 SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  4. 4. ニャーン 4SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  5. 5. 電子メール SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  6. 6. Email Address 6 - コミュニケーションツールの個人識別子としての役割は終わった - 実は裏で使われてるけどメールアドレスを意識してないとか - iMessage(iOSの) - 電話番号よりも容易に複数持てる識別子 - だれでも容易に取得できる(個人情報が不要) - 何個でも持てる(ローカルパートを統一したり(してる)) - 任意の文字列を設定できる(覚えやすい) - いつでも捨てられる(変更・放置) 緩めの個人識別子(ID) SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  7. 7. SendGridのない世界 SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  8. 8. 8 Before 2009 SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  9. 9. 9 - 2009年以前のメール配信サービス - 全く無いわけではなかった - ガラケー宛配信に特化した宣伝文句 - 60万通/時 (docomo, au) - 8万(?通/時 (Vodafone, SoftBank) - アプライアンスの形をした配信エンジン - I/FはSMTPだけ - SMTPで時速60万通リレーするには高性能マシンが要る SendGridは2009年うまれ Before 2009 167 通/秒 SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  10. 10. 10 - 他一切の配信サービスが無い世界 - 自前で配信システムを作る必要がある 1. SMTPサーバ(配信量によって数台〜もっと) 2. IPアドレス(もちろん固定IPアドレス・たくさん) 3. レピュテーション(評判・日頃の行い) 4. メールアドレス管理(バウンスが発生しないように) 5. キューの管理・大規模遅延時のオペレーション 6. 配信速度の調整(低速配信ができるように) もしSendGridが無かったら No Email Delivery Services SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  11. 11. 11 GROUP BY SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  12. 12. 12 メールを重要度で分類 Precedence 1. 決済(有料会員・請求情報・領収情報) 2. 登録(新規登録・設定変更・登録抹消) 3. 通知(規約変更・ユーザ間のメッセージ) 4. 宣伝(キャンペーン・その他お知らせ) SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  13. 13. 13 1. SMTP SERVERS SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  14. 14. 14 最低2台 1. SMTP Servers - (優先度・高) 決済・登録に関するメール - なるべく遅延しないように - 低優先度メール配信の遅延に巻き込まれることがある - バウンス率も低く低く抑える(0.1%以下とか) - 配信量が偏らない傾向にある - (優先度・低) 通知・宣伝に関するメール - 多少遅延が許される - 短時間で大量に配信する傾向にある SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  15. 15. SMTP SERVERS(1) 15 ニャーン 里親になる! なまえ メール でんわ @ 新着ネコ 決済系 登録系 通知系 宣伝系 遅延の影響を受けないよう に混ぜないで直接配送する Destination Host SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  16. 16. SMTP SERVERS(2) 16 ニャーン 里親になる! なまえ メール でんわ @ 新着ネコ 決済系 遅延の影響を受けないよう に混ぜないで直接配送する 登録系 通知系 Destination Host 宣伝系 SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  17. 17. Destination Host SMTP SERVERS(3) 17 ニャーン 里親になる! なまえ メール でんわ @ 新着ネコ 決済系 登録系 通知系 宣伝系 遅延対策で多段構成 遅延したら 別サーバへ リレー SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  18. 18. Destination Host SMTP SERVERS(4) 18 ニャーン 里親になる! なまえ メール でんわ @ 新着ネコ 決済系 登録系 通知系 宣伝系 更に多段構成(用心) 遅延したら 別サーバへ リレー 遅延したら 別サーバへ リレー SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  19. 19. Destination Host SMTP SERVERS(5) 19 ニャーン 里親になる! なまえ メール でんわ @ 新着ネコ 決済系 登録系 通知系 短時間で大量配信 遅延したら 別サーバへ リレー 遅延したら 別サーバへ リレー たくさん用意する 遅延対策 でなるべ く分散 全部別の IPアドレス を割当てる 宣伝系 SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  20. 20. Destination Host SMTP SERVERS(6) 20 ニャーン 里親になる! なまえ メール でんわ @ 新着ネコ 決済系 登録系 通知系 短時間で大量配信 遅延したら 別サーバへ リレー 遅延したら 別サーバへ リレー たくさん用意する 遅延対策 でなるべ く分散 全部別の IPアドレス を割当てる 全部別の IPアドレス を割当てる 全部別の IPアドレス を割当てる 宣伝系 SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  21. 21. 21 2. IP Addresses SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  22. 22. 22 たくさんのIPv4アドレスが要る 2. IPv4 Addresses - IPv4アドレスはもう枯渇している(2011 IANA) - /26とか/27でも確保が難しい?(クラウド使うとか) - 割り当てられたIPアドレスが汚れている問題 - やたらと遅延する・接続が拒否される - スパム配信で使われていたかも... - 能動的(スパマー)か受動的(踏み台)か - DNSBL(Spamhaus, Spamcopなど)に登録されてる - メールアプライアンス独自のブラックリストに載ってるとか SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  23. 23. 23 IPv6でSMTP? 2. IPv6 Addresses - 全然追いかけてない - Gmailで強制されたら一般化するかな? - まだまだIPv4のSMTP SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  24. 24. 24 3. Reputation SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  25. 25. 25 IPアドレスごとの配信実績 3. Reputation - 評判(信用の世界・日頃の行い) - 昔(200X年代)は無かった? - 当時は知らなかった - 配信実績の無いIPアドレスからはサラサラ送れた - 今(201X年代)は重要な要素 - 突然大量に配信を始めても送れないらしい(伝聞) - ちびちび送る暖機運転が必要 - 時間がかかる SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  26. 26. 26 4. Address Management SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  27. 27. 27 メールアドレスの管理 4. Address Management - 届かない宛先には二度と送らない - ハードバウンス(宛先不明・ドメインが無い) - SendGridでは"event": "dropped"で破棄される - SMTP接続が拒否されるようになる・遅延がひどくなる - 送る量が少量でもアドレス管理はやるべき - バウンスメールを解析するとか - クラウドのバウンス系イベントをDBに反映させるとか SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  28. 28. 28 有効なメールアドレス数を把握 4. Address Management - マーケティングの観点 - 100万ユーザのうち50%が送れないアドレス(という仮定) - 見積もり段階で使う数値の根拠が信用できない - クリック率とか - ランディングページを置くホストのスペック選定とか - 管理していても配信ごとに1%以下の割合でバウンスする - バウンス率を1%以下で維持し続ける必要がある - メールアドレスは水物・ナマモノ SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  29. 29. 29 Troublesome SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  30. 30. 30 面倒な要素がたくさんある Troublesome... 1. SMTPサーバ - たくさんいる・サーバ管理・キュー管理・死活監視・資産? 2. IPアドレス - まとめて確保が難・ハズレIPアドレス 3. レピュテーション - 割り当てられたIPアドレスの評判確認・DNSBL対応・暖機運転 4. アドレス管理 - 死んでるメアドに送らない・状態をアプリ側にも反映 SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  31. 31. 31 自前システムでも利点はある Advantages 1. コスト - 膨大な配信を行う(クラウドでは予算が合わない場合) - すでにハードウェアもIPアドレスも確保している - SMTPに詳しいエンジニアがいて開発ができる 2. 柔軟性 - 細かな調整ができる - サイトに合わせたカスタマイズ SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  32. 32. 32 そやけど SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  33. 33. 33 SendGrid便利・楽 SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  34. 34. Destination Host use SendGrid 34 ニャーン 里親になる! なまえ メール でんわ @ 新着ネコ 決済系 登録系 通知系 短時間で大量配信 遅延したら 別サーバへ リレー 遅延したら 別サーバへ リレー 遅延対策 でなるべ く分散 宣伝系 SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  35. 35. Destination Host use SendGrid 35 ニャーン 里親になる! なまえ メール でんわ @ 新着ネコ 決済系 登録系 通知系 遅延したら 別サーバへ リレー 遅延したら 別サーバへ リレー 遅延対策 でなるべ く分散 宣伝系 SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  36. 36. 36 メールを送った後 Sisimai http://libsisimai.org/ SendGrid Night in Osaka #2 | 2017/09/07(木) R3 instituteさん SendGridのない世界 @azumakuniyuki
  37. 37.

×