メルカリが Tailscale を使用してリソースアクセスとセキュリティを改善し、VPN をシンプルにした方法

Translated into: English

株式会社メルカリはフリマアプリ「メルカリ」を提供する企業であり、米国と日本においてバイヤーとセラーを結び付けている。月間2,000万人以上のアクティブユーザーを持つ同社のモバイルアプリでは、衣類、宝石、電子機器からオフィス用品、ペット用品まで、あらゆるものを販売・購入することができる。

米国と日本に拠点を持つリモート企業である同社は、アプリケーションや大容量データのホスティングにGoogle Cloud Platform (GCP)を活用している。そのため、同社の社員は、社内の開発用環境やサードパーティーのAPIといったリソースへ、事前に許可されたIPアドレスから安全にアクセスする必要がある。

同社の中島 博敬氏と金丸 洋平氏はメルカリグループへのTailscale導入を担当した。彼らは、このことが会社にとってゲームチェンジャーになったと語っている。

「Tailscaleは使い勝手がよく、私たちにとってそれが最大のメリットです」と金丸氏は述べた。

以前のVPN ソリューションは、低速で信頼性が低く、多くのサポートを必要としていた

Tailscale を導入する前、同社は従来型のVPN ソリューションを使用していたが、ユーザーが頻繁に再ログインしなければならない、パフォーマンスが遅い、必要なidentity provider (IdP) やモバイルクライアントへのサポートが不足しているなど、多くの面で彼らの重要なニーズを満たせず、不適切であると判断していた。

同社はモバイルアプリを展開する大企業であるため、QAエンジニアは定期的にモバイル端末を使ったテストを実施する必要がある。またこれらのテストは、テスト対象のエンドポイントに接続するための VPN 接続を必要としていた。同社が以前使っていたVPNはモバイルクライアントに対応しておらず、エンジニアはVPNをオフにしたりオンにしたりするたびに再認証しなければならず、テストを行うために頻繁にその動作を繰り返す必要があった。このため、多くの問題に頭を抱えることとなり、最終的に同社はより拡張性のあるソリューションを探すことになった。中島氏は「VPNの問題がQAエンジニアのユースケースにおいて生産性の問題を引き起こしていたので、私達はこのプロジェクトを最優先しました」と語る。

おそらく特に顕著なものは、同社のエンジニアがVPN関連のトラブルシューティングにかける時間が日常的に長すぎたことだ。こうしたあらゆる状況は生産性に関わる主要な問題であったが、 COVID-19 が直撃し、同社の 2,000 人以上の従業員のほとんどがリモートワークに移行したことで、更に生産性に悪影響を及ぼした。その際、同社は、会社のリソースにリモートアクセスすることを求める社員からの要求の増加に対応するために、既存の VPNを拡張することが困難であることに気づいた。

中島氏はいくつかのVPNソリューションを評価した。彼はWireGuardが高速で信頼できることを知っていたが、同時にVPN管理者が簡単にユーザーを管理できるソリューションも求めていた。より拡張性の高いソリューションを探していたところWireGuardをベースにしたTailscaleに出会い、ホームラボや複数のデータセンターのサーバを含む個人の開発環境でテストしてみた。彼はTailscale のユーザー管理、subnet router 機能、移動時にネットワークのオン・オフを切り替える必要がないなどの機能性に感銘を受けた。また、彼はGitHub Actionsを使って開発用の CI/CD を実行しており、GitHub Actionsからデータセンターのマシンにアクセスすることに不安を感じていたが、Tailscaleを使うと簡単にできることにすぐに気がついた。これが、同社でTailscaleを採用するキーポイントとなった。

Tailscaleは自分が求めていたソリューションであると確信した中島氏は、メルカリグループでの採用を提案した。ネットワークチームやプラットフォームチームの多くの同僚がすでにこの製品を知っていたため、乗り換えの決断は簡単だった。

メルカリでのTailscale:サポート要員が不要のシンプルで安全なVPN

Tailscaleを導入し、同社のQAエンジニアのかなりの部分に展開した直後、中島氏と彼のチームは、ユーザー関連のVPN問題が、以前のVPNでは1日1-2件だったのが、Tailscaleを使い始めて数ヵ月後にはほぼ0になったことに気づいた。これによって、より重要な優先事項のための余裕が生まれた。「これまでは社内のVPNユーザーからのさまざまな問い合わせに悩まされていたが、今はそのようなことはない。インフラの維持・整備に注力できます」と中島氏は語る。

また、同社はTailscaleを活用して、特定のシステムへのアクセスを事前に許可されたIPアドレスのみに制限している。独自に用意した Google Cloud VM で複数の Tailscale exit node を実行することでこれを実現している。現在、これらの出口ノードにアクセスできる従業員は社内のリソースに安全にアクセスでき、追加のセキュリティ制御層が作られた。デバイスタグの情報と Tailscale ACL を使用して、これらのノードにアクセスできる従業員を管理することができるのである。

以前の VPNでは、インフラについて心配する必要はなかったが、ユーザーのクライアント側の問題については多くの時間を費やしていた。Tailscaleでは、インフラを整備する必要があるものの、エンジニアリングの観点からは、クライアントサイドの混沌とした問題に比べれば容易である。

中島 博敬 シニア ソフトウェア エンジニア

また、中島氏と金丸氏はTailscaleのSAMLベースの認証を利用して、IDプロバイダーのOktaでユーザーの管理と認証もできるようになった。

メルカリの結論:Tailscaleは信頼性が高く、透明性があり、導入しやすい

エンジニアは職場にソフトウェアを持ち込む前に、自宅で自身の環境を使い試せることをとても喜ぶものだが、同社でTailscaleを展開する前に中島氏が行ったことはまさにそうだった。そしてこれは同氏が指摘するように、同社とTailscaleの始まりにすぎなかった:「CI/CD、支社間通信、tailnet 上のデバイス間のトラフィック制御など、他のチームが Tailscale を使用したいと考えている、まだ展開されていないユースケースも存在するのです。」

同社のエンジニアは、Tailscaleのわかりやすい価格設定やオープンソースでの開発なども評価している。「価格設定が透明で、費用の予測も簡単…そして開発速度も非常に速い。また、GitHubでイシューを作成できるのもいいですね」と中島氏は語る。しかし何より、中島氏と金丸氏はTailscaleの信頼性と、exit node の運用、SSOの導入、そしてプライベートネットワークの管理が簡単にできることが気に入っている。「まるで魔法のようです」と金丸氏は語った。