エンジニア同士によるディープなインフラトークも披露
Webサービスの先達はてなが語る、戦い続けるためのインフラ設計
2018年06月18日 07時00分更新
文● 大谷イビサ/TECH.ASCII.jp
提供: さくらインターネット
2018年3月30日、大阪で開催された「さくらのインフラで作る巨大システム」のイベント後半に登壇したはてなの渡辺起氏は、さくらインターネット採用の背景やサービスの使い分け、さくらとの役割分担について講演。その後、さくらインターネット、ALiNKインターネット、はてなの3社でトークセッションが繰り広げられた。
数多くの内部システム、寿命の長いWebサービス
2001年創業とWebサービス企業としてはすでにベテランと言えるはてな。「人力検索はてな」や「はてなブログ」「はてなブックマーク」などのWebサービス、「Mackerel」などの監視サービスでおなじみだが、こうしたサービスのノウハウを活かした他社との共同開発も増えており、今も数多くのサービスを手がけている。
はてなの特徴として、サービスが多く寿命が長いこと。「内部で使われるシステムの数は、ひょっとしたらエンジニアの数より多いのではないか」とは渡辺氏の弁。また、「創業当時に立ち上げた人力検索はてなはすでに17年くらいだし、はてなブログも新しめだけど、すでに7年くらい経っている」とのことで、寿命の長いサービスも多い。もちろん、サービス数の多さ、歴史の長さに比例して、技術も幅広く採用している。「その当時のトレンドだった技術を使っているが、最近のサービスはGoやScalaを使ったものもある」(渡辺氏)とのことだ。
はてな システムプラットフォーム部長 渡辺起氏
こうしたサービスを支えるはてなのインフラは、現在オンプレとクラウドを併用した形で、サービスやコンポーネントによって選定している。オンプレミス側はXenで仮想化しており、極力ハードウェアに依存しないリソース配置を心がけているという。
はてなとさくらインターネットのつきあいは古く、2007年にさかのぼる。渡辺氏が入社する前だが、書きためてあるエンジニアブログをまとめて、歴史を振り返った。
2007年はまずこれまで利用してきた自作サーバーを車に詰め込み、さくらインターネットのデータセンターに移行した。2009年にはラックマウント型の自作サーバーを再設計し、台数とラックを増やしたという。「SSDを両面テープでくっつけるとか、創意あふれる工夫をやっていました。サーバー数が1000台とか超えたのも、たぶんこの頃だと思う」と渡辺氏は振り返る。
さくらとはてなのインフラ10年史
渡辺氏が入社した2011年頃は、すでにサーバーの自作は下火になっており、使いやすくなっていたベンダー製のサーバーを採用。物理作業もさくらインターネットに委託するようになったため、データセンターに行く回数は激減したという。「今までサーバーを組み立てて、データセンターに運ぶのがインフラのアルバイトの仕事だったけど、われわれとしてはやはり運用で強みを出して行きたかった。さくらさんはやはりケーブリングとか物理作業がすごく美しかったりするので、得意なところを活かして分業していく方がよいと思った」と渡辺氏は語る。
息の長いサービスを支えるための技術検証と記録
2011年には、はてなブログをAWS上に構築し、クラウドとの併用を開始した。「当時のクラウドは全然I/Oが出なかったので、いろいろな苦労や運用知見が溜められた。サービスごとに適したアーキテクチャを検討しながら、クラウド導入を進めていった」(渡辺氏)ということで、2000台規模に膨らんだサーバーの効率的な運用を追求していったという。
2014年には、「ハウジングでのサーバーの集約度やネットワーク性能に限界を感じてきた」(渡辺氏)ということで、さくらの専用サーバへの移行検証を始めた。専用サーバーを選択した理由としては、なによりXenベースの既存システムからの移行が容易なこと。また、静的に起動しているDBサーバーの場合、専用サーバーの方がクラウドに比べて費用面で有利だったという点も大きかったという。2015年にはハウジング側とさくらの専用サーバをVPNで接続し、サーバーの移行を開始。2016年にはさくらの専用サーバのみで動作させるサービスが生まれたほか、ハイブリッド接続も開始したという。
2018年にはいよいよさくらクラウドの導入を開始した。「さくらの専用サーバでは、1サブネットでの台数制限やグローバル側に帯域が集中してしまう問題など、ネットワークがボトルネックになりつつあった」というのが導入の背景だ。
ハウジング、専用サーバ、クラウドをハイブリッド接続でつなぐ
はてながクラウドの導入を検討していたのは、さくらのクラウドでは接続の自由度が高い「ローカルルータ」の機能が提供された頃。このローカルルータとハイブリッド接続を活用し、柔軟性の高いクラウド側でリクエストを受けつつ、負荷の高いデータベースやアプリケーションは専用サーバーで処理するといった分散システムが実現しているという。現在はハウジングから専用サーバーへ移行中だが、石狩と東京にシステムが分かれているので、両者のネットワーク遅延が課題にはなっているという。
最後、はてなの渡辺氏がまとめとして指摘したのは「10年戦える技術で戦う」という点。息の長いサービス自体を効率よく運用し、成長させていくためにはとにかく技術検証をよく行ない、本当に必要な技術かを見極めることが重要だという。「必要な技術はどんどん導入していく。いったん導入した技術はきちんと刷新していくサイクルが必要」と渡辺氏は語る。
10年戦える技術で戦うこと、記録を残すこと
もう1つ指摘したのは、「記録を残すこと」。渡辺氏が今回、入社時より前からはてなのシステムを振り替えることができたのは、やはりはてなにログの文化があったからにほかならない。渡辺氏は、「はてなブログや社内のグループウェアには当時の担当者の作業記録や思想が残っている。昔のシステムもよくできているので、決して負債ではない。先人たちの記録を参照しながら、いいところは刷新し、よくないところはやめるようにしている」と語る。