Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SendGrid Night #4 Case Study on Cyta.jp
Search
tmtysk
May 19, 2016
Technology
1
40k
SendGrid Night #4 Case Study on Cyta.jp
SendGrid Night #4
http://eventdots.jp/event/587239/
でお話した内容です
tmtysk
May 19, 2016
Tweet
Share
More Decks by tmtysk
See All by tmtysk
Laravel Vapor使ってみた
tmtysk
0
630
PWAでPush通知を受け取るぞ
tmtysk
0
550
エンジニア育成の場づくりに関する進捗共有
tmtysk
1
2.1k
Other Decks in Technology
See All in Technology
Microsoft Learn MCP/Fabric データエージェント/Fabric MCP/Copilot Studio-簡単・便利なAIエージェント作ってみた -"Building Simple and Powerful AI Agents with Microsoft Learn MCP, Fabric Data Agent, Fabric MCP, and Copilot Studio"-
reireireijinjin6
1
140
2025/07/22_家族アルバム みてねのCRE における生成AI活用事例
masartz
2
140
モバイルゲームの開発を支える基盤の歩み ~再現性のある開発ラインを量産する秘訣~
qualiarts
0
610
AIに全任せしないコーディングとマネジメント思考
kikuchikakeru
0
270
AIを使っていい感じにE2Eテストを書けるようになるまで / Trying to Write Good E2E Tests with AI
katawara
3
1.9k
FAST導入1年間のふりかえり〜現実を直視し、さらなる進化を求めて〜 / Review of the first year of FAST implementation
wooootack
1
180
「育てる」サーバーレス 〜チーム開発研修で学んだ、小さく始めて大きく拡張するAWS設計〜
yu_kod
1
180
激動の時代、新卒エンジニアはAIツールにどう向き合うか。 [LayerX Bet AI Day Countdown LT Day1 ツールの選択]
tak848
0
610
興味の胞子を育て 業務と技術に広がる”きのこ力”
fumiyasac0921
0
290
経理出身PdMがAIプロダクト開発を_ハンズオンで学んだ話.pdf
shunsukenarita
1
230
「手を動かした者だけが世界を変える」ソフトウェア開発だけではない開発者人生
onishi
15
7.6k
ecspressoの設計思想に至る道 / sekkeinight2025
fujiwara3
12
2.1k
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
720
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1k
GraphQLとの向き合い方2022年版
quramy
49
14k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Typedesign – Prime Four
hannesfritz
42
2.7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Transcript
Copyright 2016 Coach United Inc. All Rights Reserved. <SendGridユーザー事例> 習い事サービス
コーチ・ユナイテッド株式会社 技術責任者 富田陽介 2016.5.19 SendGrid Night #4 の場合
Copyright 2016 Coach United Inc. All Rights Reserved. 本日のメニュー •
自己紹介 • サービスとメールの関わり • 事例紹介 ◦ Event Webhook でアドレスメンテナンス ◦ Parse Webhook で受信メール→画像アップロード ◦ Bulk Email Service(X-SMTPAPI) で一括配信 • まとめ
Copyright 2016 Coach United Inc. All Rights Reserved. 自己紹介
Copyright 2016 Coach United Inc. All Rights Reserved. SendGrid でググると、こうなる
9位 ※ 2016/5/16 時点の順位です
Copyright 2016 Coach United Inc. All Rights Reserved. こちらの記事の著者です http://tech.cunited.jp/post/96318734265/ses-sendgrid-mandrill-mailgun
Copyright 2016 Coach United Inc. All Rights Reserved. サイタという、 習い事サービスをつくっています
富田 陽介 「それはやばいですね」と言っているように見える近影 SendGridユーザーが語る!メール大量配信のここが落とし穴 - ASCII.jp http://ascii.jp/elem/000/001/124/1124296/ より引用 通信会社 → 開発会社 → フリー.. サイタCTO(2014/1〜) 中央線〜渋谷などに出没 役者 → 演劇好き tmtysk
Copyright 2016 Coach United Inc. All Rights Reserved. サービスとメールの関わり
Copyright 2016 Coach United Inc. All Rights Reserved. 数字で見る、メール利用状況 7,500
~ 10,000 mails/day 60% が Gmail 95% がリマインダー系 44% がHTMLメール
Copyright 2016 Coach United Inc. All Rights Reserved. 習い事を探している人が サイタのWebサイトに辿り着きます
http://cyta.jp
Copyright 2016 Coach United Inc. All Rights Reserved. Webサイトからレッスンを申し込みます
Copyright 2016 Coach United Inc. All Rights Reserved. (オンラインではなく、) オフラインでレッスンが実施されます
Copyright 2016 Coach United Inc. All Rights Reserved. レッスン実施に至るまでには、 様々な誘惑がありますが..
えっ、 レッスン今日だっけ? なんか眠いし、 行くのやめよう.. 次のレッスン予定 調整面倒だな.. 行くかどうかは、 明日考えよう..
Copyright 2016 Coach United Inc. All Rights Reserved. レッスンが実際に おこなわれる事が重要!
Copyright 2016 Coach United Inc. All Rights Reserved. レッスン実施までを支える リマインドメール&カスタマサポート体制
Copyright 2016 Coach United Inc. All Rights Reserved. (参考) 個別サポートの様子
申し込んだ体験レッスンの日程、連絡こないなあ .. 体験レッスン日程に関するご連絡のメールがお届けできませんでした。 迷惑メール設定や、ご登録のメールアドレス変更など、 お心当たりはありませんか? Bounce発生!
Copyright 2016 Coach United Inc. All Rights Reserved. 行動を起こしてもらうためのメール !
今日はレッスンですよ! 明日はレッスンですよ! 日程調整のお返事してね!
Copyright 2016 Coach United Inc. All Rights Reserved. サービス運用担当者は、悩む すぐに届いてるの?
確かに届いてるの?
Copyright 2016 Coach United Inc. All Rights Reserved. 事例紹介
Copyright 2016 Coach United Inc. All Rights Reserved. 配送エラー対応&アドレス管理機能を移行 •
Return-Path で Bounce を受け取り、 返信先アドレスパターンから「どれが送れてないの?」を判断 → 内容に応じて、個別にサポート&アドレスメンテナンス • Deferred は特定のドメイン宛で発生しやすい時間帯がある → 傾向の分析とチューニングに苦労.. SendGrid導入前 Bounce Rate管理は既にやっている。 業務フローを変えずに、運用負荷を下げられないか?
Copyright 2016 Coach United Inc. All Rights Reserved. Event Webhook
で メールアドレスをメンテナンス SendGrid移行まで • SMTP サーバを SendGrid に向けるだけではダメだった → Return-Path を上書きされてしまう • Event Webhook で配信結果を Webhook で受けとれる → 通知にメールを識別するためのIDを仕込み、自働化 業務フローをまったく変えずに、MTA を移行できた! Deferred 後の再送処理, Bounce Rate 監視(の視覚化)もやってくれてHappy!
Copyright 2016 Coach United Inc. All Rights Reserved. (参考) SMTP拡張ヘッダに
Event Webhookに含める個別IDを仕込む
Copyright 2016 Coach United Inc. All Rights Reserved. (参考) Invalid
に入ってしまったアドレスを ダッシュボード(管理画面)からリセット
Copyright 2016 Coach United Inc. All Rights Reserved. (参考) Bounce
Rateを含む配送状況の確認
Copyright 2016 Coach United Inc. All Rights Reserved. メール受信で起動する機能の移行 •
dot-qmail で受信メールを Parse して添付画像アップロード • 利用はさほど多くないが、ロイヤルユーザが使っている • 単一サーバで運用しており、可用性を高めたいものの、 そこまで運用コストはかけられない SendGrid導入前 機能は残したまま、運用コストを下げられないか?
Copyright 2016 Coach United Inc. All Rights Reserved. Parse Webhook
で 画像添付メールによる画像アップロードに対応 変更コストをほとんどかけずに、移行できた! qmail サーバのお守りから解放された! • メール受信処理用の MX を SendGrid に向けるだけ • 受信メールを multipart/form-data な HTTP POST に変換してくれる • 生 message をそのまま body に POST してくれるオプションも (multipart/form-data の ‘email’ 値として POST される) • 既存実装を、ほぼそのまま転用し、受け取り時の処理に結合 SendGrid移行まで
Copyright 2016 Coach United Inc. All Rights Reserved. (参考) 生メッセージを
HTTPで受け取るように設定
Copyright 2016 Coach United Inc. All Rights Reserved. スポットで発生していた配送遅延への対策 •
すべてのメールを順次処理(配送キューのみ別管理)で配送していた • メールマガジン配送や月次タスクのリマインダーメールで、 メールサーバ負荷が増大 → 配送遅延状況を監視し、都度チューニング SendGrid導入前 スポットで発生する配信増タスクに対しても、 配送遅延を起こさずに運用できないか?
Copyright 2016 Coach United Inc. All Rights Reserved. Bulk Email
Service で 一括配信処理を順次配信処理から切り出し • テンプレートと Substitution(変数) を指定してリクエスト一発で大量配信 • 一括配送であっても個別に配送ログが必要だが、 メッセージ内容まではEvent Webhookでも受け取れない → 配信キューに入れる時点で一通ずつレンダリングしてログ • それでも都度配信よりは圧倒的に速い SendGrid移行まで 遅延アラートが激減! 一括配信するときも、(サーバ運用面では)躊躇することが無くなった!
Copyright 2016 Coach United Inc. All Rights Reserved. (参考) 既存の順次配信処理とは別に
一括配信処理の機構を追加開発 ↑ 新規 ↓ 既存
Copyright 2016 Coach United Inc. All Rights Reserved. まとめ
Copyright 2016 Coach United Inc. All Rights Reserved. まとめ •
オフラインのサービスにおいて、メール通知は、 ユーザーに「行動を起こしてもらう」ために有効 • 業務を作りこんでしまったオンプレ運用メールサーバも 要求を妥協させることなく、柔軟&段階的に移行できた • むしろ、まだ活用し切れてない..! 「ちゃんと届けなきゃ」の守りに入っちゃってる • メールサーバの「お守り」から解放されれば、 メールをもっと「攻め」に使えるはず! → とくに統計系/バルク配信の機能を、もっと活用したい
Copyright 2016 Coach United Inc. All Rights Reserved. 技術情報まとめサイトもご参考ください http://cunited.github.io