図1 何も対策をとっておかないと突然の発熱に対処できない
図1 何も対策をとっておかないと突然の発熱に対処できない
[画像のクリックで拡大表示]
図2 必要な薬があらかじめ用意してあれば素早く対処できるというのがプロビジョニングの考え方(イラスト:なかがわ みさこ)
図2 必要な薬があらかじめ用意してあれば素早く対処できるというのがプロビジョニングの考え方(イラスト:なかがわ みさこ)
[画像のクリックで拡大表示]

 プロビジョニングとは,ネットワークやコンピュータの設備を,必要になったときすぐに利用できるよう準備しておくことを指すキーワードである。供給や支給,配置といった意味を表す「provision」という英単語が元となって派生した言葉である。もともとは軍事活動や旅行,航海といった長期にわたる行動の際に,食料など必要物資を用意あるいは補給する作業を指す言葉として使われていた。その言葉が,ITの世界でも必要なリソースをすぐに使える体制を表す言葉として使われるようになった。

 情報システムを構築する場合には,事前に処理量や負荷を予測する。だが,必ずしも予測通りになるとは限らない。社内で使われるシステムなら,ある程度は予測も可能だが,インターネット上で不特定多数向けにサービスを提供する場合などは,処理量を正確に予測することが困難である。事前の予測を超えた大量の利用があると,用意しておいたシステムで処理しきれなくなり,ユーザーへのレスポンスが遅くなるなどの問題が発生する。こうなると,せっかく訪問してくれた顧客を失望させて,ビジネスチャンスを逃すことにもなりかねない。

 とはいえ,運用中のシステムを増強するのはそう簡単なことではない。稼働中のシステムにCPUやメモリー,ディスクといったリソースを追加するには,サーバーなどのハードウエアが電源を入れたままで抜き挿しできる「ホットプラグ」対応が必須である。しかも,事前に検証していないと,リソースを追加したとしても期待した効果が得られないことがありえる。といって,必要になるかわからない設備まで,あらかじめ用意しておくのは不経済で現実的ではない。

 このように,需要に関する見積もりを大きく誤ってしまった場合に,あとから拡張するのは非常に困難である。例えるなら,油断して何も準備していない状態で,子どもが夜中に熱を出すと対処のしようがないようなものである(図1)。

 ところが最近になって,構築後でもシステムの設備を比較的簡単に強化できるようになってきた。その原動力となっているのが仮想化である。仮想化とは,物理的なシステム上に抽象化したシステムを実現する技術である。物理的な構成とは切り離した仮想的なシステムを用意し,その上で自分の使いたいサービスを構築する。それにより,サービスと物理的なシステム構成とを分離できる。

 処理能力が足りなくなった場合には,サービスを動かしたままの状態で,ハードウエアにCPUやメモリーなどを追加する。ハードウエアの処理能力が問題なく拡張されたことを確認してから,仮想的なシステムで利用するリソースの割り当てを増やせば,サービスを止めずに処理能力を増強できる。場合によっては,まったく新しい物理的なシステムを用意しておいて,瞬時にそちらの仮想システムに移行するといったことも可能である。仮想化技術を実現するための製品には,こうした移行や拡張を簡単に実現するユーティリティも用意されている。

 最近は,ASP(アプリケーション・サービス・プロバイダ)やホスティングなどのサービスを提供する事業者も,プロビジョニングという言葉をよく使う。これらのサービスでは,システムを論理的に分割するパーティショニングや仮想化などの技術を使って,サーバーの一部を利用させている。このため,処理能力が足りなくなったときも,設定を変更するだけで簡単に拡張できる。例えば,ホスティング・サービスで構築したショッピング・サイトの処理量が増えた場合,契約内容を変更するだけで簡単にリソースを増やせる。事業者にとっては,サーバーの利用していない部分を使わせるように設定を変えるだけでよい。

 このように,プロビジョニングを活用すれば,システム能力の拡張に素早く対応できる。これを,先ほどの夜中に子供が熱を出した例で言うと,あらかじめ用意しておいた薬を飲ませることですぐ対処できるようなものである(図2)。このプロビジョニングの発展形として,水や電気と同様にシステムを利用した分だけ料金を払う「ユーティリティ・コンピューティング」も広がってきている。