- 株式会社クラウドワークス
- CTO
- 大場 光一郎
自前のメールシステムからSendGridへ移行。メルマガ運用で気をつけたい落とし穴とは
今回のソリューション:【SendGrid/センドグリッド】
〜自前のメールシステムからSendGridへ移行し、メール配信を効率化した事例〜
Webサービスでは、一度獲得したユーザーにいかに定期的にサイトを訪れてもらうかが重要だ。その「ユーザーを引き戻す」ための施策として、今でも広く活用されているのがメールマガジンだ。
メール配信システムと言えば、以前はSendmailのようなソフトウェアで独自に構築されるのが一般的だった。しかし今では、クラウド型のメール配信サービスを活用することで、運用の負荷を減らすことができている企業も多い。
株式会社クラウドワークスでも、「SendGrid(センドグリッド)」導入により、メール配信のパフォーマンスを改善するとともに、メールマーケティングに必要な開封率やクリック率の追いかけを効率化することに成功したそうだ。
しかし一方では、SendGridのようなサービスを使ったメールマガジンの運用には、実は独特の落とし穴があるのだと言う。同社CTOの大場 光一郎さんに、詳しいお話を伺った。
▼「バウンスメール」などもリアルタイムで確認できる「SendGrid」とは…?
40歳の節目に、スタートアップで新しい挑戦を
私は前々職のSIerでは、10年ほどシステム開発を担当していました。当時は会社も安定していましたし、技術書を執筆する機会があったり、恵まれた環境だったと思います。その後グリーに転職したのですが、まさにソーシャルゲームの急成長期に事業に関われたのは良い経験でした。
グリーに2年ほど務め、2014年1月に4人目のエンジニアとしてクラウドワークスに入社しました。個人的に40歳という年齢の節目を迎えて、「新しいチャレンジができるのがこれが最後かもしれない」と考えたんですね。
現在はCTOとして技術的な方向性を考えたり、社内の雑多な技術に関する課題までを幅広く担当しています。
今では弊社のエンジニアも、20名を超えるチームになりました。サービスとしてはおかげさまで会員数も80万人に上り、今後は、これまでのスピード感を保ちながら、いかに安定的にサービスを運用していくかがひとつのカギになるかと思っています。
自前のメールシステムが限界になり、システムの移行を検討
クラウドワークスに限らず、一般的なWebサービスがユーザーに送っているメールは大きく2種類に分かれます。ひとつは、新規会員登録のメールアドレスが正しく送れるかの確認に使うような、ユーザーの動きに対応して機械的に送信される「トランザクションメール」。
もうひとつが、メルマガのようなプロモーション的な意味合いで送る「マーケティングメール」ですね。弊社ではマーケティングメールを、新しく登録されたお仕事の紹介などの用途で活用しています。
そのメール配信のために、以前はAWS上に自前のPostfixでメールサーバーを構築していました。AWSにはSESというSMTPサービスがありますが、サービス立ち上げ当時では携帯のキャリアメールに弾かれやすく、メールが一部届かないという問題があったので導入はしなかったんです。
そういった経緯から自前でメールシステムを構築していましたが、そのシステムが2015年の夏頃に、パフォーマンス的な限界に到達してしまって…。
例えばオススメのお仕事をご案内するメールの配信に時間がかかりすぎてしまい、ユーザーがメールを確認したときには案件が既にクローズされてしまっている、といった事態が発生していました。
一度に20万通を送信することも!コスト重視でSendGridを選択
このような問題を踏まえて、メールシステムを高速化する必要がありました。しかしメール運用の専任者が社内にいるわけでもなかったですし、パフォーマンスのチューニングに時間をかけるよりもサービス開発に集中したかったんです。
そこでクラウド型のメール配信システムを採用しようという話になり、いくつかのメール配信サービスを比較検討した結果、最終的には「SendGrid(センドグリッド)」を選択することにしました。
SendGridを選択した一番の理由は開発しやすいAPIがあることです。モダンなWeb APIをサポートしている一方で昔ながらのSMTPにも対応しており、既存のメールサーバからリレーすることもできます。さらにはSMTPで接続しながらでもX-SMTPAPIヘッダを使ってSendGrid独自の便利な機能を呼び出すこともできます。
▼さまざまなAPIを提供しているSendGrid
次に費用対効果です。マーケティングメールだけでなくトランザクションメールも移行するとなると、送信するメールの数は膨大になります。多いときは一度に20万通ほど送っているんですよ。そのような場合、SendGridは他のサービスよりも大幅にコストが安くなることが分かったんです。
また、メルマガを作成するマーケティングの人間にも使いやすいようなダッシュボードの機能が、標準でついていることも良かったです。ダッシュボードでは、メールの配信状況や開封率、クリック率などが可視化されています。
▼SendGridのダッシュボード画像
当初はシステム負荷への対策がメールシステム移行の目的でしたが、このダッシュボード機能によって、メールの開封率・クリック率といった数値もしっかりと見られるようになりました。今はマーケティングメールの分析・改善を、しっかりキャッチアップしてくれた新卒メンバーが担当しています。
メール配信を行う上で、気をつけたい「落とし穴」とは?
SendGridに限らず大規模なメール配信全般に言えることですが、配信先のメールアドレスは定期的にクリーニングしたほうが良いです。さもなくば、「スパムトラップ」に引っかかって、メール配信自体ができなくなってしまう危険性があります。
具体的に言うと、「人が使っていないメールアドレス」の中には、スパムトラップというスパムメールを判別する罠のアドレスが紛れ込んでいることがあります。そこにメールを送り続けてしまうと、送信元のIPアドレスがスパム認定されてしまって、他のユーザーへのメールも届かなくなってしまいます。
そのため弊社では、定期的に「このメールアドレスは正しいですか?」という確認メールを送信したり、メールを開封やクリックしてくれた人にだけ送るといった運用をしています。
▼SendGridは、スパムトラップを回避するための知恵も動画で公開
SendGridには、IP Warmupという機能もあります。実績のないIPアドレスから大量にメールが送信されると、そのIPがスパム認定されてしまう危険性があるんですね。
IP Warmupは、それを避けるために段階的にメールの送信量を増やしていくように、スケジューリングができる機能です。この機能を使えば、システムの移行時にもIPアドレスの信頼性を徐々に高めていくことができます。
Web APIの提供により、大量のメール送信も素早く・確実に実行
自前のシステムからSendGridへの移行に関しては、SMTPをリレーして接続する戦略をとりました。基本的にはSMTPの向き先を変えるだけなので、システムの構成をほとんど変えずにシームレスに完了できます。また、SMTPサーバ側で配信量を調整することで段階的な移行ができるのも安全な移行のために大事なことでした。
シンプルなSMTPサーバーとして使えるだけでなく、Web APIが提供されているのもSendGridの良いところです。20万通以上のメールを1度に送るとなると、1通ずつSMTPで送信していると膨大な時間がかかってしまいます。
一方でWeb APIを使う方法なら、1,000件のメール送信をひとつのリクエストに束ねることができます。その後の送信処理はSendGrid側で行ってくれるので、数分でリクエストを全てさばくことが可能になります。
実際にはSMTPであっても先ほどもでてきたX-SMTPAPIヘッダを使うことで高速な送信が可能です。Webエンジニアとしては使い慣れたWeb APIでメール送信ができるため検証やシステム間の接続も手軽にできるのが魅力ですね。
上場の期待に応えるためにも、サービスを成長させていく
クラウドワークスは一昨年の月に上場させていただき、ひとつの重要なステップを迎えました。とは言え赤字での上場を認めていただいたという背景もあり、市場からも「将来的に日本でも新しい働き方が必要だ」という、期待が込められた上での上場だったと思っています。
このような挑戦をさせていただけるということはとても貴重な体験ですし、その期待に応えるためにも、今後もサービスをより良いものに成長させていきたいと思っています。(了)