SendGridハンズオンに行ってきた

まえがき

前々から良い評判を聞いていたSendGrid。
アカウントは発行してもらったのですが、まともに触れていませんでした。
時間もできたので日本でSendGridの代理店をされている構造計画研究所さんでハンズオンをやってるのを見かけたので参加させてもらいました。

基本的にはクラスメソッドの濱田さんが書かれていることの通りだったので、
それ以外でいくつか良かった点を上げていこうと思います。

設定等の細かい部分については記載しませんので、興味がある方はぜひ参加してみてください😃

dev.classmethod.jp

良かった点@最初のつまづきポイントを教えてくれる

  • テキストメールを送るための設定
  • Activity機能の注意事項
  • バウンスメールの管理方法
  • Event Webhookの簡易的な動作確認

良かった点@SendGridを使うと何ができるか、便利になるかを把握しやすい

  • 大量のメール送信をテストするためのテスト用ドメインが用意されている
    • 大量メルマガにありがちな数百万通のテストとか実際にやろうとすると相当大変。 かといって、モックでやるとネットワークや負荷、送信処理のライブラリ等の正常性確認ができないので非常にありがたいもの。
  • メール受信機能がある
    • メールボックス機能はないが、受信メール内容をHTTPSでPOSTしてくれる
      これによって空メール受信によるユーザ登録やチケットを切る等の連携ができる。

良かった点@質問しやすい

濱田さんも書かれている通り、サポートされている方の人数が無料とは思えないくらい多かったです。
それもあっていくつか聞いてみました。

メール送信後のステータスがDeferredの場合、最長72時間再送を試みるがどのようにリトライするのか

  • 例えば、100万通投げて100通リトライになったときのことを考えてみる
    • リトライ間隔はどうなるのか
    • いっきに100通リトライするのか、SendGridがよしなに分割して再送するような制御がはいっていたりするのか
  • リトライ方法の仕様はSendGridでは非公開
    • ただし、以前動きを確認してみたら以下の通りだった。
    • リトライ間隔は最初は短かったが、徐々に間隔が長くなっていった。
    • 宛先に応じてSendGridがよしなにリトライを行う動きをしてた。
      • 仮にリトライの一部が受信できても他のリトライメールが受信できているとはみなせない認識で良いか。
        • その通り。

Stats画面から確認できるステータスはアラートで通知できたりするか

  • 現状ではできない。
    Event WebhookでステータスをDBに貯めておいて、そこから確認するしかない。

悩ましかった点@インフラ視点とアプリ視点でのメリットについて

  • 今回のハンズオンは開発者向けではあるけど、メール運用の経験がない人にとってはDKIMやSPFの意味や、Link BrandingやReverse DNSの良さが伝わりづらいかも。
    口頭ではメール到達率を上げるためと説明してもらえたし、インフラ屋からすると、確かにすげー楽、SendGrid神かな?って思うけど、コードを書くのがメインの人にとってはひょっとしたらイメージがつきづらいかも。
    DNSやメールみたいなものの運用は地味に手間がかかって職人芸なところが出てくるうえにインパクトが大きいから少人数でインフラやってたりする人には結構良いアピールになるんじゃないかなーと思いました。 特にSREみたいにコードを含めてサイトの信頼性を担保しなきゃいけないチームにはかなりハマるんじゃないかなと。 そういう意味ではSRE向けにメールシステム効率化のハンズオン?資料?があっても良いかなーと思いました。

今後やってみたいこと

Elastic Stackと相性良さそうな印象を受けたので、Event Webhookで飛んできたJSONをElasticsearchにいれてKibanaのCanvasに入れて可視化したらマーケティング担当の人に喜ばれそうなのでやってみたい

総括

今まで時間がなくてSendGrid触れていなかったですが、もっと早く触っておけばよかったです。
そしてハンズオンをやってもらえた上に、質問もサクッと答えていただいてありがとうございました!!

SMTPサーバの運用で苦しんでいる人や、メールシステムを効率化したい人は悩みやイメージを持ってハンズオンに参加するときっと幸せになれると思うのでオススメです!