パート1:拡張
DBサーバーも拡張可能に
Webシステムのボトルネックを解消する最も単純な方法は,サーバー機の性能を上げてしまうことだ。サーバー機の台数を増やして処理負荷を分散する方法を「スケールアウト」と呼び,サーバー機をより高性能な機械に置き換える方法を「スケールアップ」と呼ぶ。
Webシステムの場合,フロントエンド側に近いほどスケールアウトしやすくなる。具体的には,3層のうち,WebサーバーとAPサーバーはスケールアウトしやすい*5。
一方で,DBサーバーはデータベースを集中管理しているため,粗結合のサーバー機群に処理負荷を分散するスケールアウトが難しい。スケールアップ,すなわち,SMP構成のCPU数を増やしたり,密結合のサーバー・クラスタにして負荷を分散するしかない。
SIベンダーの新日鉄ソリューションズの調べでは,典型的なWebシステムのハードウエア・コストの比率は「DBサーバーが77%,APサーバーが21%,Webサーバーが2%である」(マーケティング部コンピュータ&ストレージグループの早瀬久雄グループリーダー)。コストのほとんどを占めるDBサーバーにかけるお金をいかに下げるかがサイジングのポイントとなる。
ここへきてスケールアップ手法の選択肢が広がった点は見逃せない。具体的には,前述のRACのように,クラスタリングしたサーバー機群に処理負荷を分散できるミドルウエアが実用段階に入ってきた*6。新日鉄ソリューションズが検証したRACの性能動向も,図4[拡大表示に示す傾向を示した。
楽天がECサイトのDBサーバーで使っている論理パーティショニングも,DBサーバーの拡張性を確保する有効な手段である(図5[拡大表示)。常に余剰のCPUリソースを確保しておくためサーバー機のコストは高くつくが,ニーズに応じて動的にサーバー機の性能を上げられるメリットがある。
アイ・ティ・フロンティアの「シェアード・ホスティング」など,論理パーティショニングを用いたホスティング・サービスを提供するベンダーもある。ユーザーに対し,オンデマンドでサーバーの処理能力を引き上げる。「今後はオンデマンドの考え方が重要になる」(システム営業統括本部xWeb事業本部マーケティング推進部の木村和之リーダー)。
業務次第ではDBを分割可能
スケールアップの必要がないDBサーバーもある。例えば,参照系データだけで構成しているのであれば,データベースを複製すればよいので,スケールアウトの対象となる。また,そもそもアクセスするユーザーごとに使うデータベースが独立しているようなケースでは,ユーザーごとに独立したDBサーバーを立てれば済む。
郵便貯金カード普及協会は,会員番号のまとまりごとにデータベースを6個に分割して,システムのボトルネックであるディスクI/Oの遅さを緩和した(図6[拡大表示)。システムの特徴は,1000万人規模の大量の顧客レコードにある。複数のディスクにテーブルを分割しないとレスポンスが悪化してしまう。まさに「DBの分割に適した事例」(開発を担当したNTTデータの渡部広志第四公共ビジネスユニットオープン技術統括部第三ソリューション担当課長)と言える。