4Gbpsを超えるWebサービス構築術伊勢 幸一, 池邉 智洋, 栗原 由樹, 山下 拓也, 谷口 公一, 井原 郁央 著
ソフトバンククリエイティブ
名前の通り高トラフィックなWebサービス(Webアプリケーション)の構築に関するテクニックについて書かれた本。以前読んだ「サーバ/インフラを支える技術(
MyBlog/
Amazon)」に似た内容。とは言っても、「サーバ/インフラ・・・」はタイトル通りサーバのチューニングやインフラ(ネットワークやミドルウェア)について書かれているが、本書はもっとアプリケーション寄りの内容となっている。本書でも、DBやWebサーバについて書かれている部分もあるので、内容が重なっているところもある。また、「サーバ/インフラ・・・」ははてなやKLab、本書はライブドアと実際のサービスを提供している会社のメンバが書いている、実際の社内の実装について書いている点も似ている。
本書の主な内容は、以下のとおり。
- キューイング
- DBやHTMLのキャッシュ
- 検索サービス
- 入出力
- 分散ストレージ
- モバイル
- ネットワーク
- 性能評価
ストレージ、ネットワークなどのインフラから、キューイングやモバイル、性能まで、内容は多岐に渡っており、興味深い。ライブドアでは主にPerlでアプリケーションが書かれているため、説明やサンプルコードなどほとんどがPerlとなっている。また、使用しているツール類もPerlモジュールとなっていて、Perlでの開発を行っている人にとっては非常に参考になる点が多いと思う。もちろん、Perlを使っていない場合でも、参考となる部分は多いだろうし、ツールは言語を問わず使えるものもあるだろう。
ライブドアでの考えの根本は、次の2つだと感じた。
- 登録系は後回しでもあまり影響がない→だからキューイングをうまく使おう
- DB操作はinsertやupdateよりselectが圧倒的に多い→だからキャッシュやselect専用のスレーブを用意しよう
この考え方は、Webシステムの多くに適用できるはずなので、よく覚えておこう。
ところで、タイトルの「4Gbps」は高トラフィックを意味しているのだろうけど、どこにもこの数字の説明がないし、特に4Gbpsじゃないといけないって訳ではなさそうね。