技術評論社土井様より献本御礼。

実に面白かった。本書単体で読んでも面白いが、「Googleを支える技術」と読み比べると面白さ22倍といったところだろうか。


本書「24時間365日 サーバ/インフラを支える技術」は、はてなKLabという、実際に24時間365日稼働するサービスを運用している「中の人々」が、それをどうやって実践してきたかを一冊の本にまとめたもの。「外から見て」書いた「Googleを支える技術」は、そこが決定的に違う。

書籍案内:[24時間365日]サーバ/インフラを支える技術 ……スケーラビリティ、ハイパフォーマンス、省力運用|gihyo.jp … 技術評論社より抜粋
1章 サーバ/インフラ構築入門 ……冗長化/負荷分散の基本
1.1 冗長化の基本
1.2 Webサーバを冗長化する ……DNSラウンドロビン
1.3 Webサーバを冗長化する ……IPVSでロードバランサ
1.4 ルータやロードバランサの冗長化
2章 ワンランク上のサーバ/インフラの構築 ……冗長化,負荷分散,高性能の追求
2.1 リバースプロキシの導入 ……Apacheモジュール
2.2 キャッシュサーバの導入 ……Squid,memcached
2.3 MySQLのレプリケーション ……障害から短時間で復旧する
2.4 MySQLのスレーブ+内部ロードバランサの活用例
2.5 高速で軽量なストレージサーバの選択
3章 止まらないインフラを目指すさらなる工夫 ……DNSサーバ,ストレージサーバ,ネットワーク
3.1 DNSサーバの冗長化
3.2 ストレージサーバの冗長化 ……DRBDでミラーリング
3.3 ネットワークの冗長化 ……Bondingドライバ,RSTP
3.4 VLANの導入 ……ネットワークを柔軟にする
4章 性能向上,チューニング ……Linux単一ホスト,Apache,MySQL
4.1 Linux単一ホストの負荷を見極める
4.2 Apacheのチューニング
4.3 MySQLのチューニングのツボ
5章 省力運用 ……安定したサービスへ向けて
5.1 サービスの稼働監視 ……Nagios
5.2 サーバリソースのモニタリング ……Ganglia
5.3 サーバ管理の効率化 ……Puppet
5.4 デーモンの稼働管理 ……daemontools
5.5 ネットワークブートの活用 ……PXE,initramfs
5.6 リモートメンテナンス ……メンテナンス回線,シリアルコンソール,IPMI
5.7 Webサーバのログの扱い ……syslog,syslog-ng,cron,rotatelogs
6章 あのサービスの舞台裏 ……自律的なインフラへ,ダイナミックなシステムへ
6.1 はてなのなかみ
6.2 DSASのなかみ
Appendix
404 Blog Not Found:Beauty Deeper than the Skin - 書評 - Googleを支える技術
著者も私もGoogleの「中の人」ではない。本書の描くGoogleの解剖図と実際のそれとが一致するということはないだろう。せいぜい我々が知っているのは、ターヘル・アナトミア以前の解剖学に過ぎないのかも知れない。「五臓六腑」といっても「腑」なんてないかも知れないし、「臓」はもっと多いかも知れない。

本書では、その心配は無用だ。なにしろ中の人々が書いた一冊である。本書に書かれたことに憶測は一切ない。「中のすべて」を書いたわけではないしそれはそもそも無理というものであるが、少なくとも本書に書かれていることは全て事実(のはず)である。最終章に至っては、実際のラックの写真まで登場している。

どちらが読み物として面白かったかといえば、「Googleを支える技術」の方ではある。外から見ている分、中身を憶測するという推理小説的な愉しみがあったからだ。また、自分自身がGoogleほど巨大なシステムを手がけたわけではないということもある。

しかし、どちらが「ためになるか」といえば、圧倒的にこちらの方。両者の規模のサービスであれば、私自身手がけたこともあるので「手応え」もこちらの方が大きかったし、また両者の規模のサービスを展開している、あるいは展開しようとしているところはずっと多いだろう。実に楽しくつっこみを入れながら読ませていただいた。

本書が何より優れているのは、はてなとKlabの両者が「今どうしている」かだけではなく、「今までどうしてきたのか」をきちんと書いていること。巷では「スケーラブル、スケーラブル」とマントラのごとく唱えているけど、その実例というのは実はそれほど出てきていない。本書は実に貴重な、「サーバーインフラ成長録」なのだ。

もちろん不満もある。不満というより「コレジャナイ」感かな。本書も「Googleを支える技術」も、OSはLinuxを使っている。最近でこそこれは「正解」なのだけど、10年前はそうではなかった。特にファイルシステムとネットワークまわりがgdgdで、「個人でUnix」にはもってこいだったけど、「プロダクション」では怖くて使い物にならなかった。make xconfigを見て、「それは方向がちがうだろ」と思った私は、その頃ノートPCに入れていたLinuxをFreeBSDに入れ替えてしまった。

おそらくサーバーに関しては、Linuxと*BSDは、まだ半々ぐらいなのではないか。*BSD派による一冊もまた欲しくなった。Yahoo!とかlivedoorとか。どうです、中の人たち。

もっともそれだけにかえって*BSD派の私には得るところがより大きかったというのも事実。でも、linuxでmake world相当のことってBest Practiceが決まっているのだろうか。いや、そりゃあlinuxはあくまでkernelって言われてしまえばそれだけだけどさ。「どのdistro?」というところで迷いたくないんだよね。

この「24/7サービスを自分で実際にやってみる」というのは、実にいい経験である一方。なかなか書物で学べない分野でもある。勢い教育はOJTによる「一子相伝」的になる。本書のとおりにやる必要はない。実際、DSASはとにかくはてなの24/7レベルは私にはとても合格点を出せない(しなもん会長の面を見過ぎや)。しかしそもそもこういう知見が書物の形で出てきたということがまず画期的であり、プログラマーに関して表に出にくいシステム管理者の励みとなるだろう。

是非一読のほどを。

Dan the System Administrator

編集部より:今回の記事は,小飼弾氏のブログ404 Blog Not Foundより編集し転載させていただきました。本連載に関するコメントおよびTrackbackは、こちらでも受け付けております。

Watcherが薦めるこの一冊