稲荷 幹夫氏 サイバード技術担当執行役員兼技術部長
増強しにくいデータベース周りに注意
A社が拡張性に配慮したのは,データベース・システムである。Webサーバーやアプリケーション・サーバーは簡単に台数を増やせるが,データベース・サーバーは台数を増やすとデータの整合性が取りにくくなるため,構築後の追加が難しいからだ。具体的には,(1)データベース・サーバーを機能によって2系統に分割,(2)データベース・サーバーにPCサーバーを採用――という2点の工夫を施した(図1[拡大表示])。
まずA社は,検索系と更新系にデータベース・サーバーを分離した。モバイルECサイトで大きな負荷がかかるのは,処理が多い検索系のシステム。分離しておけば,アクセス数が増えても,検索系のデータベース・サーバーを増強するだけで済む。
ただし,複数台の検索系データベースや,検索系と更新系のデータベースなど,複数に分かれたデータベースのデータは,整合性を取る必要がある。そこで,RDB(リレーショナル・データベース)のレプリケーション機能を使って,データベース間でデータの整合性を取った。RDBMS(RDB管理システム)の代表的な製品には,米オラクルの「Oracleシリーズ」,米サイベースの「Sybaseシリーズ」,米マイクロソフトの「SQLServerシリーズ」などがある。
PCサーバーは監視ソフトで補強
さらにA社は,データベース・サーバーをUNIXサーバーからPCサーバーに切り替えた。UNIXサーバーやその周辺機器はPCサーバーよりも高額なうえ,購入までに時間がかかってしまう。この点,PCサーバーなら,低価格ですぐに購入できるため,素早い増強が可能になる。
しかし,PCサーバーとWindowsNTの組み合わせは,UNIXサーバーに比べて信頼性が低い。PCサーバーでUNIX並みの高い信頼性を確保するため,A社はシステム・インテグレータ(SI)が開発した監視ソフトを導入した(図1)。
まず,データベース・サーバーに障害が発生した時のため,WindowsNT上にクラスタ・ソフトウエアを搭載した。クラスタ・ソフトはWindows NTの停止を検知すると,待機中のサーバーを起動させてデータ処理を引き継ぐフェイル・オーバー機能を持つ。
ただし,データベースに障害が発生した際は,クラスタ・ソフトは感知できない。この場合は,監視ソフトが状況を把握してクラスタ・ソフトに命令を出し,フェイル・オーバーするようにした。こうすることでA社は,PCサーバーでもUNIX並みの信頼性を確保できるようになった。