『達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践』『Amazon Web Services負荷試験入門』の同時書評
※注意事項
筆者はこちら、『Amazon Web Services負荷試験入門』(※以下、負荷試験本)の著者であり、こちらの本が売れると利益を受ける立場であるため、客観的で公平な書評となっていない可能性があります。予めご了承ください。
はじめに
『達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践』(※以下、ISUCON本)という本がWebエンジニアの間で話題となり、馬鹿売れしているようである。
他の書かれた書評などもあり私も気になり、目次を見ると、どうやらかなりの割合が負荷試験に関する項目で占められているようだ。
『達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践』目次
Chapter1 チューニングの基礎知識
Chapter2 モニタリング
Chapter3 基礎的な負荷試験
Chapter4 シナリオを持った負荷試験
Chapter5 データベースのチューニング
Chapter6 リバースプロキシの利用
Chapter7 キャッシュの活用
Chapter8 押さえておきたい高速化手法
Chapter9 OSの基礎知識とチューニング
付録
private-isuの攻略実践
ベンチマーカーの実装
あれ?これって、もしかして、2017年10月6日発売の負荷試験本がもう要らなくなる?負荷試験周りとチューニング周りはもう全部網羅してない?って不安になって震える手でAmazonでポチった本が6/6(本日)届いたので早速読んで比較しようという記事です。
つまり、超売れている本の書評の形を取った拙書の宣伝記事。
比較
ページ数について
ISUCON本が344ページに対して、負荷試験本は350ページと非常にいい勝負をしている。ただ、負荷試験本は3800円なのでページ単価で言えば少し高級。
全体コンセプト
ISUCON本は、
『単一のアプリケーションや単一のサーバに関するチューニング中心』
なのに対して、AWS負荷試験本のほうが
『クラウド上に構築されたサービス向を大規模サービスにスケールさせるための負荷試験及びチューニング中心』
と似ているようで一応棲み分けができている。
また、ISUCON本においては一般的な構成やパラメータに関して話をしている部分をAWS負荷試験本のほうではより具体的に、『AWSで対応するサービスは◯◯であり、チューニングはこうする。』みたいな例示をしている部分もある。
対象読者
どちらも入門者からおすすめできる。基礎知識編などは最近の高校生くらいだと情報教育も進んでいるので、すんなりと読めるのではなかろうか。
ただ、AWS負荷試験本の方は、自称一番わかり易いAWSを使ったシステム設計の入門書という側面もあってAWSの入門も同時にできると思う。
※一方でISUCON本はISUCONの入門には最適だろう。
業務として負荷試験を実施したいと言うのであればAWS負荷試験本のほうがそこにフォーカスしている分、いろいろと手厚い
対象システムの構成
ISUCON本では負荷試験本ではほとんど触れていないNginxでのチューニングの話が書かれている。負荷試験本の方はApache中心
その他のミドルウエアは大きくは違わないが、ISUCON本では単一のインスタンス上にリバースプロクシ、アプリケーションサーバ、キャッシュ(KVS)、RDBを全て構築するという構成としており、業務サービスを提供する実運用環境におけるWebシステムの設計という観点ではないということは気になった。
モニタリング手法について
ISUCON本のほうが章を分けてやや丁寧にページを割いているし、新しいツールの紹介もある
負荷試験について
ISUCON本も丁寧に書かれているし非常に良いが、負荷試験本のほうが全体的に負荷試験にフォーカスしている分より丁寧にページを割いているし、多くのツールを紹介している。(※ただ、初回発売年度が古いのでツールのバージョンなどは当時のものが記載されていることに注意)
また、負荷試験データの準備などにもページを割いている。
チューニング内容について
どちらもほぼ同じ項目を記載しているが、ISUCON本のほうがDBやクエリのチューニングや、キャッシュの利用ポリシーに関してより丁寧に記載されている。
これは、負荷試験本のほうがシステム構成がより複雑なケースを想定しているためにボトルネックとなる可能性の列挙部分が多く、個別の内容には深掘りできていないため。
特にDBのチューニングに関してはそれだけで本が一冊書けるものなので詳細は負荷試験本の範疇を超えると判断。
一方でISUCON本に関しては想定のシチュエーションがサンドボックス的というイメージを持った。ただ、対象のシステムのソースをGithubで公開しており、実際に手を動かしやすいのは非常に良いと思う。
ケーススタディーについて
どちらもケーススタディーを入れることで順を追ったパフォーマンス・チューニングを体感できる章を設けている。
ただ、ISUCON本にはベンチマーカーのスコアという概念があり、読み勧めていくのにこの単一の数字でのスコア付けがあるのが非常にわかりやすく、読みすすめやすい。
また、最後に一番大きなボトルネックを一つだけ放置して残りのチューニングをした数字を示して、大きなボトルネックを放置した状態では他のチューニングはほとんど意味がないことを示しているのはよかった。
総評
ISUCON本はISUCONを題材に、Webパフォーマンスチューニングを進めていく手法を初心者からわかりやすく丁寧に解説しているので、サーバサイドエンジニアを目指す人には非常に良い本だと思う。
実際のところこの手法でサーバ単体のパフォーマンスを上げることでシステム全体のパフォーマンス改善に大きくつながるし、ほぼの本だけで問題の改善がされるシステムが世の中の多くを占めていると思う。
ただ、もしその上で、もし業務でより大規模のシステムをスケールさせる必要が出てきた場合、是非AmazonWebService負荷試験入門という本にも手を出していただければ幸いです。