この記事を読むのに必要な時間:およそ 1 分
過負荷を乗り越えろ!
インターネットの一番の特徴は,人間の欲望の映し鏡だということです。たとえば,「限定スイーツ」とか「お取り寄せグルメ」などがTV番組で紹介されると,注文が殺到し通販サイトがダウンすることがよくあります。サイトがダウンすると注文できなくなるので,ビジネスチャンスを逃します。ユーザにとっても,Web通販の店主にとっても不利なことになります。見込み客を失う,信用を落とす,クレームの発生さえ考えられます。24時間注文できて,すごく便利なインターネット通販ですが,ユーザが殺到するとシステムが耐えることができない場合が多いのです。便利さばかりではないと言えます。
そうした注文が殺到する状態を,グラフで見るとアクセス数が爆発的に増えてとがった形に見えるので,アクセススパイクとも呼びます。おおよそ日本語でいえば過負荷状態と言います。もちろんインターネットの通信技術者やサーバ技術者も指をくわえてその状態を見ているだけではありません。昔からロードバランサー(負荷分散装置)やプロキシー(代理)サーバを組み合わせ,過負荷に耐えるシステム作りを行ってきました。しかしスマートフォンがインターネット利用者数をさらに押し上げ,従来どおりの過負荷対策では間に合わないようになってきたのです。人間の欲望は際限がなく,欲しいと思った商品や情報に瞬間的にアクセスします。その結果,サイトが落ちたり,サービスが止まってしまったりするのです。つまり,過負荷に耐える技術を持っている企業が,インターネットでビジネスを推進するにあたり,他社から優位になれるのです。
秒間1万アクセスに耐える技術
国民的アイドルグループの選抜総選挙がここ数年行われています。皆さんもご存じの方も多いでしょう。この人気投票はWebからでも投票可能で,携帯電話やパソコンでも1票を投じることができます。本書『過負荷に耐えるWebの作り方』は,この国民的アイドルグループの選抜総選挙のWebシステムの内幕を開発者であるパイプドビッツ社のエンジニアが自ら執筆したものです。
そして,主催者側であるレコード会社が示した条件が,アクセスが殺到しても落ちないこと,すなわち「秒間1万アクセス」に耐えるシステムであることなのです(現実にはあり得ない条件でしたが……)。
「システムダウンしない」ために考えたことは次のようになります。
- 冗長構成により,一部のサーバやネットワーク機器がダウンしてもシステム全体としてダウンすることがないように設計する
- スケーラビリティを高め,大量アクセスによりサーバリソースが逼迫した際には,サーバを追加することで各サーバのシステム負荷を低減できる設計にする
- サーバ障害時やアクセス高負荷時の対応手順を決めておき,手順を事前にテストしておく
- 最悪の場合(システムダウン時)でも,早急に復旧するための手順を準備し,事前にテストしておく
これらの要件に応えるシステムを構築するために,大まかなスケジュールが次のとおり定められました。これがまたかなりの短期間開発なのです。
- 設計・開発:2週間
- テスト:2週間
- 性能・セキュリティテスト:2週間
- 運用テスト:2週間
このように,およそ2カ月程度で作られたWeb投票システムの内幕をハードウェアの面,ソフトウェアの面,さらに運用管理の面から紹介します。かわいらしいイラスト(小悪魔女子大生のサーバエンジニア日記のaicoさんによる挿絵+カバーイラスト)で彩られていますが,とっても真面目に,しかも本格的にIT技術を解説しています。皆さんが当たり前のように使っているWebシステムの舞台裏でどんな仕事がされているのか,興味ある方はぜひ読んでいただければ,きっといろいろなことがわかるようになると思います。