まつもとりーがmod_mrubyを開発した理由 - 解決すべき課題は研究ではなく、実運用の中にあり

多くのエンジニアから、そのアウトプットが注目される「まつもとりー」こと松本亮介さん。自身のOSS開発の裏側にある研究と開発の関係性を聞きました。

まつもとりーがmod_mrubyを開発した理由 - 解決すべき課題は研究ではなく、実運用の中にあり

「研究したいと思ったことと、企業で必要とされる課題解決にギャップを感じた」
インターネット基盤技術の“研究者”として広く知られる、まつもとりーこと松本亮介(まつもと・りょうすけ/ 1 @matsumotoryさんは、過去を振り返って、こう語ります。

多くのエンジニアの注目を集め、そして多くのエンジニアをインスパイアし続けるまつもとりーさんですが、アウトプットへと至る根源には、常に「現場で直面した課題」があるといいます。では、mod_mruby / ngx_mrubyといった広く使われるOSSの根源にあったものとは一体なんでしょうか。

オープンソースという概念すら希薄だったキャリア初期から、研究者として存在感を発揮する現在にいたるまで過程をご自身に振り返ってもらい、「まつもとりーを鍛えたもの」を伺います。

2 GitHub - matsumotory/mod_mruby: mod_mruby - A Fast and Memory-Efficient Web Server Extension Mechanism Using Scripting Language mruby for Apache httpd

3 GitHub - matsumotory/ngx_mruby: ngx_mruby - A Fast and Memory-Efficient Web Server Extension Mechanism Using Scripting Language mruby for nginx

自作パソコンにのめり込み、自宅はまるでサーバールーム

──松本さんは、大学時代からコンピューターに興味を持ち始めたとか。

松本 大学生の頃に、自作パソコンを作るようになったんです。大学入学のタイミングで親にパソコンを買ってもらったんですが、使い続けていると「どうも処理が重たいな」と感じることが増えてきます。でも学生でお金がなかったので、高いパソコンに買い換えることができなかったんです。

──そこで目をつけたのが、自作パソコンということですか?

松本 当時は2004年頃で、自作パソコンが非常に流行していましたからね。自分で作れば安くて性能のいいパソコンが手に入ることが分かったので、「これはいい」と思って、すぐに手を出したんです。

しかし、パソコンを自作すると、もともと持っていたパソコンが余ってしまいます。こうした余りを有効活用できないかと思って調べていくうちに、どうやら「サーバーというもの」に転用できることを知ったんです。サーバーを作れば、メールが自分で送れるようになるし、Webサイトだって立ち上げられるらしいぞ、と。

インターネット上で起きていることとか、携帯電話で実現されていることの一端を自分でも作り出せると感じたわけです。これはかっこいいぞと思って、自宅にサーバーを立てるようになったんです。サーバーの設定のためにシェルスクリプトなども書くようになり、プログラミングにも興味がわいてきました。

4

松本亮介さん:大学卒業後、ホスティング系企業でエンジニアとしての経験を積んだ後、京都大学大学院の博士課程に入学。インターネット基盤技術の研究に取り組み、数々のOSS開発を手がける。その後、GMOペパボ、ペパボ研究所主席研究員を経て、2018年よりさくらインターネット研究所で上級研究員を務める。

──パソコンの知識がない状態からサーバーを立てるまでに至るとは。すごい成長スピードですね。

松本 楽しかったから、ひたすらやっていただけなんです。小さいサーバーならば3,000円くらいで調達できたので、Webサーバー、メールサーバー、DNSサーバーとどんどん増えて、1年で8台くらいになったかな。サーバーが8台も稼働しているととにかく暑くて、エアコンは1年間ずっと点けっぱなしでした(笑)。

──まるでサーバールームのような状態ですね。

松本 そうですね(笑)。その後、サーバーの運用・監視にも手を出すようになり、MRTG(Multi Router Traffic Grapher)やNagiosなどを入れたり、外部からのアタックに気づけるようにシェルスクリプトやPerl、Cを使って検知用のソフトウェアも書いたりするようになっていきました。

大学ではプログラミングの授業でCを習っていたんですが、授業で扱うような内容はだいぶ簡単に作業できるようになっていましたね。でも、あるとき大学で出されたコンパイラ実装の課題で、大きな失敗をしてしまったんです。

──というと、どんな失敗を?

松本 僕はその課題をかなり早めの段階で終えていました。余裕があったのでクラスメートに教えていたくらいです。でも、成果物を教授に提出するとき、間違えて完成品ではなく過去のバージョンのものを出してしまいました。

──なんと……。

松本 当時はバージョン管理などの意識がまったくなかったので、ファイルやらディレクトリやら乱雑な状態で……提出するものを間違えてしまったんです。よりにもよって、その授業は落としたら必ず留年する、というもので、学年で僕だけ不合格になりました。相当ショックでしたね。親にも申し訳なかったですし。でも、その経験を通じて技術に取り組むスタンスは大きく変わりました。

──具体的には、どのように変化したのですか?

松本 何をするにも、すごく慎重になったんです。僕はけっこう自信家だったんですが、根拠のない自信を持たないようになりました。驕らずに、努力をした上で、出した結果を適切に評価してもらえるような生き方をしよう。必要以上に大きなことを言うのはやめようというスタンスに変わりましたね。

社会人になっても、運用・監視が楽しくてしょうがなかった

──大学卒業後、松本さんはホスティング系企業で3年働いた後、京都大学大学院の博士課程に入学されます。なぜこうした道を選ばれたのですか?

松本 大学卒業後、すぐに就職したのは留年というコンプレックスがあったことも理由の一つです。みんなより余計に大学に通っている分、早く社会に出て巻き返したいという思いがありましたので。もうひとつ、大学時代、アルバイトとしてホスティング系企業で働いていたんですが、実務を経験するうちに「学術研究で扱っている内容と企業で起きる課題の間には、大きなギャップがある」と感じるようになったからです。

研究者の方々が発表されている論文は素晴らしいものですが、論文内で扱われるトピックには、実社会の課題を解くことにすぐには直結しないものもあります。企業でアルバイトとして働くうち、むしろ実務で用いられているエンジニアリングの方が、より直接的に世の中の課題を解いているように見えたんです。

だから、そのまま研究者になるよりも、企業に入ってちゃんと社会を見てから、あらためて自分が本当に解きたい課題とは何なのかを見極めたかった。そこで、まずは就職をしようと思ったんです。

5

──就職後、企業で学んだ技術はいまの研究にも生きていますか?

松本 すべての経験が生きているくらいです。本当に多くのことを学ばせてもらいました。その会社では、入社後すぐ現場に入ってサーバーやネットワークの運用・監視などを担当しました。

当時はいまと違って、何かしらのアラートがあがったらすべて人間がコマンドを叩いてログなどを調査し、原因究明していたような時代でした。僕は「職場の誰よりも早く課題を解決するぞ」と意気込んでいて、アラートが鳴ったらすべて自分が対応するくらいの気持ちでやっていましたね。自分が休みの日でもやっていたくらいです。

その日に稼働している人がどんな運用をしているのか、休日に家でコーヒーを飲みながらチャットで確認するのが好きでした。楽しかったですね。

──もはや運用が趣味の一環だったんですね。

松本 「その職場で経験した運用の課題を、属人的な形ではなくもっと根本的に解決できないか」というテーマは、僕の現在の研究内容にも通じています。

それから、メンターだった先輩が、よくOSSやそのコミュニティについての話をしてくれました。UNIX哲学や『伽藍とバザール』など数多くのことを教えてくれましたし、一緒に本を読み合ったりもしました。それが、その後のOSSの取り組みにも大きな影響を与えたんです。

──その先輩エンジニアの方に会うまでは、オープンソースというものを意識されていなかったのですか。

松本 まったく意識することはなかったですね。自作パソコンにハマっていたころはLinuxを入れたりもしていましたが、その理由も「Linuxならタダじゃん」という程度でしたから(笑)。しかし、先輩の影響でリーナス・トーバルズの著作や思想、オープンソースの歴史に触れて、すごく感動したことを覚えています。

乗るしかない。mrubyのビッグウェーブに!

エンジニアHubに会員登録すると
続きをお読みいただけます(無料)。
登録ボタンを押すと、利用規約プライバシーポリシーに同意したことになります。
登録のメリット
  • すべての過去記事を読める
  • 過去のウェビナー動画を
    視聴できる
  • 企業やエージェントから
    スカウトが届く