WWWサイトやEC(電子商取引)サイトがシステム障害で止まる。半日,あるいは数時間のサービス停止なのに,新聞やテレビで取り上げられてしまう。商機を失うだけでなく,事実無根のうわさまでが広まり,せっかくつかんだ顧客が逃げていく。サービスが復旧した後も,アクセス数は元に戻らない--。

 ビジネスとしてWWWシステム,ECシステムを構築/運営している企業の方は,常にこうした不安を感じているのではないだろうか。それでは,WWWサイトのダウン・タイムをゼロに近付けるにはどうしたらいいか。システム故障によるサービス停止を避けるという観点から,その方法を考えてみたい。ただし,当然のことながら,それなりのコストはかかる。システムは止めたくないが,金もかけたくない,という方の参考にはならないことをあらかじめお断りしておく。

IDCはぜひ使いたい

 まず,WWWシステムをどこに置くか。これにはインターネット・データセンター(IDC)を使いたい。IDCとは,インターネットとの接続機能を備えたコンピュータ・システム設置用のビルで,いま建設ラッシュが続いている。合計で20万平米もの施設が誕生するという計算もあるくらいだ。

 IDCの宣伝ではないが,地震や火災,停電などへの対応,入館/入室管理などのセキュリティ対策,インターネットとの安定した接続性,24時間365日の運用管理体制などを考えると,自社で同様の設備,人員を用意することは確かに難しい。「自社で用意するとしたら,かえってコスト高になりますよ」というIDC側の説明に,返す言葉がない。インフラのレベルでシステム・ダウンの要因をできるだけ取り除きたいと考えるなら,IDCの利用は必須だろう。

 この間取材した外資系データセンターは,とにかく故障しそうなものにはすべてバックアップを用意するという周到さだった。

 例えば,電力会社から電力供給がなくなる場合を想定して,自家発電機を3台設置している。無停電電源装置は2組,インターネットとの接続も2回線というように,もしどこかが故障してもバックアップ・システムが作動して,システム/ネットワークは止めないようにする。まともなIDCを選びさえすれば,WWWシステムを誰かがたたき壊したり,コンピュータやネットワーク機器への電力供給が止まったり,インターネットとの接続が切れるといった状況はまず避けられる。

クラスタ構成で負荷を分散

 WWWシステムを運営する企業が頭を使うのはここからだ。電力が安定して供給されていても,サーバー・マシンが故障してしまったのでは何もならない。コンピュータ・システムの中では,特にハード・ディスク装置や電源部が壊れる可能性が高い。たとえそうした故障が起きてもシステムがダウンしないようにするには,どうすればいいか。

 WWWサイト,ECサイトでは,アクセス数の増加に対処しながら,障害に備えるという考え方が重要である。インターネットのサイトでは,例えば特定商品の発売などでアクセスが急増し,システムの負荷が高まってダウンしてしまうことがある。システムの故障だけでなく,トラフィックの増加にも強いという構成が不可欠だ。その1つが,同じ機能をもつ装置を複数台用意してクラスタ化する方法である。

 例えば,同じ設定をしたファイアウォールを複数台置き,その前段に,アクセスを振り分ける負荷分散装置を置く。こうすることで,たとえ1台のファイアウォールが故障しても,他のファイアウォールが稼働しているためにシステムは停止しない。

 トラフィックの増加が予想される場合は,ファイアウォールの台数を増やせばいい。WWWサーバーも同様にクラスタ化する。同じコンテンツを保存した複数台のWWWサーバーを設置し,その前に負荷分散装置を置く。こうすることで,機器の故障にも強く,トラフィックの増加にも対応しやすくなる。実際,国内の大手サイトでは,こうした負荷分散型のWWWシステムを構築しているところが多数ある。

データベース・サーバーはどうする

 ここまでくると,機器はもうラックからあふれ出すくらいの量となる。だが,まだシステムのダウン・タイムをゼロにするところまではいかない。WWWシステムの中で最も重要なデータベースが残っているのだ。

 現在のWWWシステムでは,データベースの情報を元にWWWページを生成したり,データベースで顧客情報を管理している。このデータベースは,各処理が参照し更新するために,分割してしまうと整合性がとれなくなってしまう。したがって,WWWサーバーのように,クラスタ化によって負荷分散をしたり障害対策をすることができない。

 データベース・サーバーは,バックアップ機を用意して故障に備えるのが一般的である。稼働中のデータベース・サーバーが故障すると,待機中のバックアップ機が処理を受け継ぐ。ただし,UNIX(OS)のロード,Oracle(データベース管理ソフト)のロード,データベースの復旧などに15分~30分はかかる。したがって,いくら対策を施したとしても,データベース・サーバーが故障したら15分以上はサービスが停止してしまう。

 ダウン・タイムをさらに短縮するには,2台のデータベース・サーバーを並行稼働させ,常に同じデータを書き込んでおく方法がある。1台をメインのサーバーとし,もしそのマシンに障害起きたら,もう一方に切り替える。これで15分以上かかっていたデータベース・マシンの切り替えを,5分以内に短縮することができるという。

 問題はコストだ。対策を重ねれば重ねるほど,コストは増す。自社のインターネット・ビジネスがそれほどの価値があるかを本気で検証することになるだろう。もちろん私自身は,ここで取り上げたような対策が2001年にはそれほど珍しくなくなると考えている。

(稲葉 則夫=日経インターネット テクノロジー)