エンジニアの生き様をウォッチするメディア

まつもとりーのインフラ入門-序章「インフラとの出会い・興味を持つに至った理由」

みなさま、はじめまして。さくらインターネット研究所で主にインターネット基盤技術を中心に研究開発をしているまつもとりーと申します。
本連載では、主にインターネット基盤技術、または、インターネットのインフラ技術と呼ばれる領域に関して執筆していきます。本連載で対象とするインフラ技術の領域は、Linuxを前提に、セキュリティ、性能、リソース管理、マルチテナンシー、運用技術といった話題について触れる予定です。特に連載後半では、最近話題になってきているコンテナ技術やデータセンターとOSの未来についても言及していきます。

今回は連載の最初ということで、本エントリでは、まず執筆者のわたし自身の自己紹介と共に、インターネット基盤技術のようなインフラ技術に取り組むようになったきっかけを紹介したいと思います。

2003年に大学入学後、それまでほとんど触ったことがなかったパソコンを親に買ってもらいました。当時、わたしが情報工学科に入学したこともあり、一人暮らしをしていたのですが、パソコンぐらいは家にないとダメだろうということで買ってもらったことを覚えています。逆に言うとそれぐらいパソコンやインターネットにはそれまでは興味がなくて、高校時代には実家にあったPCで侍魂を読んで大笑いするぐらいの使い方しかしていませんでした。

2003年頃は、ちょうど自作パソコンが流行りだした時期でもありました。自作パソコンといってもわたしの場合、当時は性能を追求するというよりも、普通に買うと20万のパソコンが3万円で作れる!みたいな本がたくさんあり、得じゃん、と思ってやってみようと思ったのがきっかけでした。当時のわたしが取り組んでいた自作パソコンは、CPUやマザーボード、メモリ、HDD、電源、ケース等を自分で選択して購入し、それらを家でプラモデルのように組み立てるといった程度のものでした。そうやって自作パソコンを一つ作ると、当然ながら既にあるパソコンが余ってきます。そもそも、高いパソコンが安く使えるという動機で自作パソコンを作ってみたこともあって、そうやって余ったパソコンをどう活用するかということに頭をひねるのも、当時あまりお金のなかった自分にとっては自然な流れだったように思います。

家にある複数のパソコンを捨てることなく何かに活用しよう、と考えて調べていくと、何やらまた自宅サーバと呼ばれる遊び方があることに気づきました。自宅サーバを作れば、なんと無料でメールが自分で送受信できたり、自分のウェブサイトを持てたり、カッコいいドメインを持てたり、サーバ内をブラウザから検索するようなことができたりする、みたいな情報を得て、早速ウェブサイトの内容を参考にしながらサーバ構築をおこないました。そうするうちに、パソコンが足りなくなってあれよこれよとソフマップに行って中古のパソコンや玄箱を買っているうちに、気がつけば10台近くのパソコンが常時自分の部屋で動き続けるようになりました。小さなデータセンターですね。当時はVine Linuxの4.0だったり、Fedora Core 3、FreeBSD、Windows Serverなどを動かしていました。

常時パソコンが動いているので部屋の温度は常に高く暑いので、朝から晩までエアコンを回して、気がつくと夏だけでなく秋も冬もずっと常時エアコンをつけっぱなしにしていました。さらに、エアコンでも夏にはなかなか温度を下げられなかったので、PCケースを外して裸のままにしたり、色々な工夫をしていきました。

当時の写真が以下のように残っていました。

全てがむき出しですね。一応これでも拡張性を良くするために配置していたのでした。これでよく火事にならなかったなと今見るとヒヤヒヤしますね。

このようにたくさんパソコンやHDDを常時動かしていると、定期的に異常が発生して壊れたりします。こういう故障をどうやって検知すれば良いか、と考えていたときにサーバの監視や運用技術について知ることになっていきます。そこで、インターネットを調べるがままに、各サーバにMRTGやNagiosをいれて監視したり、何か異常があったらメールで自分の携帯電話に通知するようにしたり、さらにはトラフィックも監視して、ポートスキャンのようなProveや、DoS攻撃等があったらログから異常を検知して通知したりしました。さらにその活動はエスカレートしていき、アプリケーションのログに残らないようなトラフィックもあるのか、よーし、とか思って、当時大学から借りたSummitという異様に大きい紫色のスイッチにミラーポートを設定してtcpdumpでトラフィックを回収し、回収したトラフィックを時系列データにしたり、次元を圧縮して可視化、異常を検知するようにしました。それがそのまま、学部時代の研究にもつながっていきます。

当時の自宅の監視環境の写真も出てきたので紹介します。

画面にはNagiosの監視画面だったり、MRTGによるトラフィックグラフ、各サーバにsshでログインした後のtopコマンド実行画面だったり、WindowsサーバのCPUの情報等が表示されています。これらは完全に趣味としてやっていました。

また、当時のアラートメールに対する対応メモも以下のように出てきました。内容はともあれ、なんかそれらしいことをしている様子が伺えますね。

2007-04-02 (月) 2:02
外で用事があって夜帰ってきてメールチェックしようとしたらIMAPでエラー。
エラーのためにWEBメールを見ることができない。
どうも、maillogをみてるとimapにログインすることができてない様子。
ってことは、squirrelの方に問題があると思うが特に問題見あたらず。
maillogでさらに違う発見。
サーバのエラーを受信するアカウントに200以上ものメールがrootから届いている。
というわけで、作業開始。
見るとcronで5分起きに動かしているMRTGでエラーがでてる。
しかも、出てる内容はlm_sensorで取得している値以外のものと判明。
そういや、昨日hostsファイルを適当に弄っていたことを思い出す。
調べてみると、どうもlocalhostを127.0.0.1に解決することができてないみたい。
とりあえず、その解決を直してみたが、即座に反映されなかった(なぜだろう、要追跡)ので、MRTGのcfgファイルのlocalhostの部分を全て127.0.0.1に直し、snmpd.confも127.0.0.1に変更。
そしてWEBメールのログインエラーもそこが問題だとわかり、squirrelのサーバー設定でサーバーをlocalhostから127.0.0.1に変更。
snmpdを再起動して、手動でMRTGのグラフ作成コマンドを打ったところエラー出ず、OK。
ローカル内からブラウザでWEBメールにログイン、成功、OK。
とりあえず、大量のエラーメールを削除して、一応サーバーを再起動してみてもう一度チェック、OK。 重要なメールが来た
りする時期なのでちょっとあせったが、サーバー事態は問題なく、むしろそのデータを取り出すところで問題が起きてたために、データ等は問題ないようだ。
hostsファイルを適当に弄るのはやめましょうってことですね。

趣味でやっているにしては随分会社での運用業務のようなことをやっているようでした。

他にも、自分が読みたい掲示板に自動的にアクセスして掲示板の情報を収集して、それが大量になってきたのでNamazuでindexをつけて検索できるようにしたり、ファイルやデータをスクリプトで解析してデータベースに自動でrestoreしていき、それをブラウザから当時はAjaxと良く言われた時期でもあったので、ブラウザ遷移なく検索を表示できるようにしたりしていました。もちろんこのあたりは外に公開するわけでもなく、自分の家のローカル環境で、できたできたとニヤニヤしながら、実際の掲示板を読むことなく、システムの挙動自体が嬉しくて眺めていたことを覚えています。そういえば、よくバーボンハウスへようこそと言われていた記憶もあります。

このように、全くパソコンやインターネットに興味のなかった若者が、当時普通のパソコンを買うにはお金が無いという理由で、パソコンを色々工夫して遊ぶようになり、少しずつやりたいことが増え高度になっていくに従って、気がつけばこの領域で15年たった今でも研究開発をしたり、自分のこの技術力でお金を稼いだり、論文を書いて国際会議で発表するようになっていました。10年以上前のこの当時を振り返って思うことは、学生でありながらも何かをテーマにして、人にやらされることなく楽しみながら、問題があったらそれを後回しせずになんとか解決してみようと取り組んでいった結果、もっとおもしろいことを知るということに繋がっていき、それが新たな楽しみへと出会うきっかけになっていったのではないかと思います。

とういうことで、わたしがインフラ技術に興味を持ち、のめり込んでいった話を紹介しました。次回以降は、もう少し技術的な内容に踏み込んで、まつもとりーのインフラ入門としてインフラ技術について紹介していきます。

(記事:松本 亮介)

京都大学博士(情報学)、さくらインターネット研究所上級研究員、ペパボ研究所客員研究員、Forkwell技術顧問、セキュリティ・キャンプ講師、情報処理学会各種委員、松本亮介事務所所長。

2008年に現場の技術を知るため修士に行かずにホスティング系企業に就職したのち、2012年に異例の修士飛ばしで京都大学大学院の博士課程に入学。インターネット基盤技術の研究に取り組み、mod_mrubyやngx_mrubyなどのOSSを始めとした多数のOSSへの貢献や学術的成果を修める。

2015年4月より2018年10月までGMOペパボ株式会社にてチーフエンジニアとしてプロダクトのアーキテクトやエンジニア組織のマネージメントに従事すると同時に、ペパボ研究所では主席研究員としてOS・Middleware・HTTPに関する研究、及び、事業で実践できるレベルまで作りこむことを目標に研究に従事。

2018年11月より現職のさくらインターネット研究所で上級研究員を務める。

第9回日本OSS奨励賞や2014年度情報処理学会山下記念研究賞など、その他受賞多数。2016年に情報処理学会IPSJ-ONEにおいて時流に乗る日本の若手トップ研究者19名に選出される。