feature image

2022年4月10日 | 活動紹介

traPドメインメールアドレスのサーバー移行に参加した件

この記事は、新歓ブログリレー2022、33日目の記事です。

SysAd班としては初投稿です。2021年度初頭からSysAdとして働き始め、1年経過したlogicaです。今年はtraQのメンテ担当やってました。
最近はWebアプリのサーバーサイドばっか作ってて、gRPC(-Web)とかKubernetesとかクリーンアーキテクチャ・イベント駆動アーキテクチャとか触ってます。時間が無限に足りない。

さて、去る2021年6月、SysAdではtraPドメインメールアドレスのサーバーを移行するという作業が行われました。そのメインメンバーとして関わらせていただいたので、今回traPドメインメールがどのようなシステムで動いているのかの紹介も兼ねて記事を書かせていただきたいと思います。
執筆をサボっていたらこんな時期になってしまった。

traPドメインメールアドレスとは?

traP公式連絡先のinfo@trap.jpをはじめ、役員の仕事のカテゴリや班によって、10近くのアドレスが作成され、運用されています。

2021年6月当時の状況

2021年6月までのメール運用システムには、使用感としては問題ないけれども不便さ・懸念点がありました。

システムの概観

当時、traPドメインメールアドレスの運用では、無料の範囲でできる最大のパフォーマンスを出すため、様々なサービスを使っていました。
どんなサービスを通して送受信をしていたのか見てみましょう。

traPアドレスへのメールを受信

メールが送られて来る
→ Mailgun (メールサーバー)
→ (転送) → traPのGmail & 個人アドレス

閲覧は、個人アドレスの方で見たり、traPのGoogleアカウントにアドレス使用者全員がログインしていたので(下記参照)、そちらからも見たりしていました。

traPアドレスからメールを送信

traPのGmail (SMTP設定済み)
→ Sendgrid (メールサーバー)
→ 宛先へ

traPアカウントのGmailにSMTPが設定されていて、アドレス使用者全員がそのGoogleアカウントにログインしていたので、全員がそこで書いていました。

問題点

これらの問題点を解決するため、6月初旬に議論が始まりました。

今回のゴール

メールシステムを再考するにあたり、ひとまず状況を整理した後、今回の目的・目指す状態を明確にしました。

traPのGoogleアカウントへの依存をやめたい

最優先の目標です。
上記の状態では20~30人ほどいるtraPドメインメールアドレス使用者全員にtraPのGoogleアカウントを共有していたので、メール送受信以外にもGoogleアカウントの設定変更などの強い権限を大人数に与えてしまっていました。そこで、traPのGoogleアカウントにログインせずとも、自らのクライアントアプリからメールの送受信ができるようにすることを目指しました。

既読管理をやりやすくしたい

今まではアドレスごとに受信ボックスが分かれておらず、転送していただけだったので既読管理がしづらい状態でした。そこで、専用のメールボックスを用意できるサービスを使ってIMAPを用いた受信ができるようにすることを目指しました。
また、ドメインの中に10個ほどのアドレスがあるので、できれば個々にメールボックスが欲しいという思いもありました。

利用するサービスを統一したい

そこまで頻繁に変更が必要なサービスではありませんが、複数サービスにわたっていると全体像の把握がしにくくなったり、複数アカウントを管理するのが面倒くさかったりするので、統一するに越したことは無い、くらいのコンテクストで議論を進めていました。

没になった案

議論の中、様々なサービスが候補として出されました。残念ながら採用には至らなかった候補を、特徴や没になった理由と共に紹介します。

Google Domains / Google Workspace

traPではドメイン(trap.jp)取得にGoogle Domainsを使用しているので、そのサブ機能としてメールサービスが使えないかという案です。

特徴

転送だけなら今と状況が変わらないですし、Workspaceの利用は利用者の数に応じた契約になるので、使用用途的にコスパが良くなかったり、利用者が変わるときに契約が変わって手間だったり、人数が増えると維持費が増えて役員選出の障壁になる可能性があったり、といった理由で却下となりました。

メールサーバーをセルフホストする

traPでは様々なWebサービスをConohaからレンタルしたVPS上で運用していますが、それと並んでメールサーバーも運用しようという案です。既存のメールサーバーアプリケーションで一応使えそうなものは見つかったので、それを立ち上げればいいのでは、という話になりました。

特徴

これらを踏まえ、重要なメールが受信できないのはまずいので却下となりました。

GmailのメールボックスをIMAPで見るようにする

traPのGoogleアカウントに直接ログインさせず、利用者にはメールボックスにIMAPで接続してもらい、SMTPも設定させるという案です。

特徴

結局Googleの認証情報を渡さなければいけず、目的を達成していなかったので却下となりました。

転送とSMTPで頑張る

今までの構成のままでも、個人アドレスへの転送とSMTPの設定をしてもらうことでtraPのGoogleアカウントに直接ログインさせずに運用することは可能でした。

特徴

結局、この後より良い案が出たので却下となりました。

採択された案

議論の末に採択されたのは、マネージドなメールサーバーの利用でした。
最初から候補には上がっていましたが、予算の面や移行の手間のことを考えて少し躊躇していました。メールサーバーは運営会社によって値段・クオリティともにピンキリで、どのサーバーを選ぶかによっても判断が分かれました。

さくらのメールボックス

そこで焦点が当たったのは、さくらインターネット様が運営しているメールサーバーでした。なんといっても格安なところが一番のメリットでした。
利点は多いですが、もちろん欠点もありました。

利点

欠点

「障害時のサポートの評判がそこまで良くない」の方に関しては、traP内のさくらのメールボックス使用者からの「メンテがあったけど、メンテ時間中に届いたメールはきちんと見れた」という口コミがあり、障害があってもフォールバック等で受信はできるようにしてくれていそうだという見通しが立ちました。
また、DKIMへの未対応の件について、DKIMは2020年4月地点で普及率が48.3%であり、対応しているものを選ぶべきではありました。ですが、現時点である程度の到達率が確認できたこともあって、使ってみて困ったら再検討することとし、今は目をつぶろうという結論に至りました。

これらの利点と欠点を包括的に考えたとき、利点が勝るという結論に至り、さくらのメールボックスへの移行が決定しました。

移行作業

さくらのメールボックスの設定

当時のSysAd班長temmaさんが行いました。

対象者への通知とIMAP、SMTP設定方法の伝達

僕が担当しました。

サーバー切り替え実施

メール利用者全員がクライアントアプリの設定を完了したタイミングでtemmaさんが行いました。

これらの作業をし、6月終わりまでには完全に切り替えが完了しました。
traPドメインメールアドレスは、2022年3月現在も、特に大きなインシデント無くさくらのメールボックスを利用して運用されています。

全体を通して

SysAdで働き始めて約1カ月、何もわからぬ状態でこの議論に飛び込んでしまったわけですが、本気でこの課題に取り組んだことでかなり知識が付いたのはとても嬉しいことでした。
特にドメイン取得サービス、DNSサーバー、メールサーバーについて、それぞれの立ち位置を理解できたことは大きな自信につながりました。

また、単純に自分の仕事で人が喜ぶっていいなあ、と感じた瞬間でもありました。


というわけでここまでお読みいただいた皆様、ありがとうございました!
新入生の皆さんでtraPに入り、部内システムの運用に関わってみたいなぁと思っている皆さんは、ぜひ「無理かも...」と思うことでもガンガン立候補して、本気で取り組んでみて下さい!本気が見えれば、先輩たちも昔の自分を懐かしみながら優しく、厳しく教え鍛えてくれるはずですよ。

明日のブログリレー担当はおながどり君です!お楽しみに!それでは!

logica icon
この記事を書いた人
logica

20B。何でも屋です。SysAd / CTF / アルゴリズム / サウンド / グラフィック(デザイン部) にいます。

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2024年9月20日
2024年 1-Monthonを開催しました!!
Synori icon Synori
2022年4月7日
traPグラフィック班の活動紹介
annin icon annin
2021年8月12日
CPCTFを支えたWebshell
mazrean icon mazrean
2021年5月19日
CPCTF2021を実現させたスコアサーバー
xxpoxx icon xxpoxx
2021年3月19日
traPグラフィック班の活動紹介
NABE icon NABE
2025年3月5日
2024年度冬ハッカソン12班「Hero Girl」
gurukun41 icon gurukun41
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記