ブログが続かない人のブログ

技術ネタについて書いていきたいです。

「サーバ/インフラを支える技術」を読んだ

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

この本は、以前紹介した、「大規模サービス技術入門」をさらに詳しく解説した本です。

tsukumaru.hateblo.jp

最初の3章でインフラを構築するための基本となる、冗長化、負荷分散について詳しく説明されています。
冗長化とはなんなのか?なぜ必要なのか?から入っていき、冗長化するためにはなにが必要かという風に話が進んでいきます。
最初に用語集がついているくらい、初心者に優しい本ですが、話が進んでいくと、サーバのconfigの記述例が出てきたり、コマンドの出力例を見ながら負荷分散について考えたりと、ある程度知識がある人でも楽しめる内容になっています。

この本の2章でMySQLレプリケーションの話が出てくるのですが、自分がここを読んでいるときにちょうど業務でレプリケーションの知識が必要になりました。
レプリケーションの大体の概念はわかっていましたが、マスターからスレーブに対してデータがどのようにコピーされるのか、マスターからコピー済みのデータかどうかはどのように判断しているのかなどなど、知らなかったこともたくさんあり、とても役に立ったのを覚えています。

4章はチューニングについての話です。
負荷分散といっても、なんでもかんでも分散すればいいってもんじゃないんだ!1台の性能を十分に引き出さないと意味ないんだ!(意訳)
という言葉から始まり、「推測するな、計測せよ」という格言をもとに話をすすめていく感じから、チューニングに対しての気合が感じられます。(多分)

サーバの負荷を見る際に有効なコマンドの紹介(topやsar, vmstat)から始まり、コマンドの出力を見ながら、なぜこのような出力がでるのかをライブラリの中身を見ながら解説していきます。
ただ単に「このコマンド使えばこういう出力でるから、負荷見るときは使うように」というような薄い内容ではないのが、自分はすごく好印象でした。
まず何からすればいい?CPU負荷が高い場合は?I/O負荷が高い場合は?など順に負荷の原因を解明していくプロセスが解説されていて、とてもわかりやすいです。

5章は、サーバ監視の話です。 Nagiosを例にとり、実際に使っていく中で、サーバ監視のあれこれを解説していきます。この章はあまり自分の興味がわかずざっとしか読めていません...また時間があったら読もうと思います。
Nagios - The Industry Standard In IT Infrastructure Monitoring

まとめ

自分はサーバ/インフラの初心者だったため、「大規模サービス技術入門」から読んだ方がいいかなと思っていましたが、「サーバ/インフラを支える技術」を読んでみると、案外こっちの方がわかりやすくためになると感じました。「大規模サービス技術入門」の方ははてなインターンシップをまとめた形のため、勉強のために読むという感じだと物足りないと思います。
インフラ系の業務で困った時の辞書的な役割をしてくれる本だと思うので、ぜひ一家に一冊あるといいのではないでしょうか。