オープンソースで一からスタート
BBサービスの提供を開始した有線ブロードネットワークスは,その後も堅調に加入者数が増加。トラブルが頻発する旧基幹システムは限界に近づいていた。カットオーバーから1年3カ月が経った2003年の初頭には,再構築プロジェクトが立ち上がる。
旧システムで複数のベンダーに構築を依頼し失敗した反省を生かし,新システムではユーズコミュニケーションズ1社が開発を一手に引き受けることが決まった。
まず,長谷川氏のグループはOSの選定に着手した。同社はUNIX技術者が多かったこともあり,UNIXかLinuxのいずれかで構築すべきと話が進んだ。「Linuxでも冗長構成を敷けばUNIX並の信頼性は確保できる。PCサーバーを活用することでコスト・メリットも享受できる」(長谷川氏)などの理由から,Turbolinux8の採用を決めた(図2[拡大表示])。
旧システムは10万ユーザーを超えての利用は想定されていなかったが,BBサービスの契約者数は2003年7月末時点で13万5506人。そこで,新システムでは余裕を見て50万ユーザーの処理(40トランザクション/秒)まで耐えられるように設計,開発した。たとえ,50万ユーザーを突破した場合でも,並列処理するサーバーの台数を増やすことで対応できる。
データベース・サーバーには,デルコンピュータのPowerEdge2650(Xeon 2.4GHz×2,メモリー3Gバイト)を3台採用した。Web/APサーバー用途にはPowerEdge1650を4台用意し並列に接続した。
Linuxの採用は構築コストの引き下げに寄与したが,「コスト削減ばかりに目を奪われると,信頼性の低下につながりかねない」(同氏)ため,米TierFleet社のデータベースの負荷分散ソフト「QueryMaster」の導入を決めた。QueryMasterは,配下のデータベースの負荷を分散させる機能に加え,データベース間のレプリケーション機能を備える。QueryMasterマシンのトラブルに備え,2台で冗長構成を敷いている。データベース・ソフトはPostgreSQLとMySQLの両方を検討したが,QueryMasterの適用対象がPostgreSQLだったことで,おのずと決まった。
アプリケーションはすべてPHPで開発した。当初,Perlを採用する案も浮上したが,フロントエンドの画面周りをPHPで開発したこともあり,ロジックもすべてPHPで統一した。
構築費用はハードとソフト併せて約1億円(一部,外注費を含む)。15人月で開発しており,「人件費や販管費を加味しても約1億2000万円」(同氏)。保守費用は,HimalayaとPrismを打ち切り,外部インテグレータに支払っていた費用が不要になったことから6500万円にまで激減した。
負荷分散ソフトが落ちてしまう
システム開発は順調に進んだものの,後半にいくつかトラブルに見舞われた(図3[拡大表示])。
1つがデータベースのレスポンス。100件程度のリストを検索・表示するのに1分以上時間がかかってしまい,「テストに参加したユーザー部門から“使い物にならない”と指摘を受けた」(同氏)。そこで,検索キーを絞り込んでインデックスを張り直す,テーブル構造を見直すなどのチューニングを重ねた。最終的には数秒で表示できるまで改善した。
最も頭を悩ましたのが,システムの耐障害性を高める目的で導入を決めたQueryMasterのバグである。それが原因でカットオーバーがずれ込む一幕もあった。「テストをしていたバージョンでは,大量のデータをストアすると,なぜかQueryMasterが落ちてしまう。さらに,本来であれば冗長構成を敷いているもう1台のマシンにフェールオーバーするはずが,それも失敗する。これには頭を抱えた」と長谷川氏は苦笑する。開発元に直接掛け合い,米国のCEOが直接来日するも原因が解明せず,マイナー・バージョンアップ版であるv1.4.35において,問題が回避できるメドがようやくついた。検証作業に手間取り,カットオーバーが1カ月ほどずれ込んだため,QueryMasterを利用しない形で稼働を決めた。現在は,マイナー・バージョンアップ版のQueryMasterを利用して最終テストに臨んでいる真っ最中だ。