自分たちの技量の向上よりも早くWebサイトのほうがトラフィックを集めるようになると、サイトがダウンするなど、中の人の働く環境は過酷なものへと一変します。
ふるい落とされるのか、試練を乗り越えて一皮むけるのかの分かれ道でもあるのですが、日頃からの備え、具体的にはサーバーの状態を監視していれば、
-
- Load Average(ロードアベレージ)
- Total Processes(プロセス数)
などが上昇傾向にあることを事前に把握できるので、サイトダウンしないようなサーバー構成を考える十分な時間が得られます。
サイトがダウンしないためのサーバー構成
マーケティングには資金を投じるのに、サーバーの増強は行われないままトラフィックが増えると、手を付けることができない状態になることがあります。
せっかく集まった閲覧者の多くを取りこぼす事になるので、「マーケティング」と「サーバー増強」はセットで行うことをお勧めします。
サーバーの性能を超えるアクセスがある場合、あなたならどう対処しますか?
スケールアップ
WebサーバーやDBサーバーのチューニングをしても結果を出せなかった場合、メモリーを増やしたり、CPUの性能、SSDを使うという考えを皆さん持たれます。
サーバー固体の性能を上げることをスケールアップと言います。
クラウド系のサービスであればフレキシブルにスペックを上げることはできるのですが、CPU性能やSSDとなると通常は別のサーバーに入れ替えする必要があります。
スケールアウト
サーバーの台数を増やし処理を分散させることをスケールアウトと言います。
負荷分散という方式で、一般的にロードバランサーという機器を使って、複数のWebサーバーにトラフィックを割り振ります。
上図ではロードバランサーが1台のみなので、もし故障すると全体が機能しなくなります。ロードバランサーも冗長化することも多いです。
静的ファイルの書き出し
人気スポーツの試合速報などを提供するWebサイトでロードバランサーを使ったサーバーを構成していました。テレビなどのメディアにも紹介されユーザー数やページビューもうなぎのぼり。
アクセスが増えたからと言ってWebサーバーの数を増やせばコストも上がります。当時は物理サーバーだったので無尽蔵に増やすことはできません。
それまではデータベースに登録された得点データを、リクエストがある度に動的に生成。
データ登録時にHTMLファイルを書き出すようにプログラムを変更すると処理効率が激的に上がり、コスト増を抑えることができたという事例でした。
移設はバックアップとリストアと同じ
サイトのパフォーマンスを上げる方法を3つ紹介しました。
静的ページの書き出しについては異なる視点での対策になりますが、スケールアップとスケールアウト、どちらもサーバーの引っ越しが必要になりそうなことにお気付きでしょうか?
Webサイトは、集客や認知度アップなどの目的で公開されているもの。
その真意に基づきWeb制作を行う会社であれば、高い確率でスケールアウトすることになると思います。バックアップとリストアができれば移設は簡単です。
スケールアウトでリアルタイム同期
スケールアウトで複数台のWebサーバーを構成する際、必要となるのがコンテンツのリアルタイム同期。結果を出しているサイトでは必須のテクニックです。
データベースも更新系と参照系に分離させるなど、ケースに応じて分散させるようにします。
サーバー性能を上げるスケールアップだけでは乗り越えられない壁も、スケールアウトという負荷を分散させる方法であれば乗り越えられることを広く知って欲しいと思っています。