"コンピュータで実行される1または複数の仮想マシンに対するリソースの割り当て量を制御する情報処理装置であって、リソースの割り当て量と指標との対応関係を示す指標情報と、許容する指標の上限値とを記憶する記憶部と、リソースの使用状況からリソース不足の仮想マシンが検出されると、前記1または複数の仮想マシンに対するリソースの割り当て量と前記指標情報とに基づいて算出される指標値が前記上限値を超えないように、前記リソース不足の仮想マシンに対するリソースの割り当て量を増加させる制御部と、を有することを特徴とする情報処理装置。前記制御部は、割り当て量を増加させると前記指標値が前記上限値を超える場合、前記リソース不足の仮想マシン以外の他の仮想マシンに対するリソースの割り当て量を減少させることを特徴とする請求項1記載の情報処理装置。前記制御部は、割り当て量を増加させる前の前記指標値と前記上限値との差から、増加可能な期間を算出し、算出した期間が経過するまで、増加させたリソースの割り当て量を維持することを特徴とする請求項1記載の情報処理装置。前記制御部は、前記算出した期間の経過後、割り当て量を増加させた仮想マシンまたは前記割り当て量を増加させた仮想マシン以外の他の仮想マシンに対するリソースの割り当て量を減少させることを特徴とする請求項3記載の情報処理装置。前記指標値は、前記1または複数の仮想マシンの使用により発生する料金の合計であることを特徴とする請求項1記載の情報処理装置。前記記憶部は、前記指標情報および前記上限値をユーザごとに記憶しており、前記制御部は、ユーザごとに算出した所定期間内における前記指標値に基づいて、前記ユーザごとにリソースの割り当て量を変更させる、ことを特徴とする請求項1記載の情報処理装置。コンピュータで実行される1または複数の仮想マシンに対するリソースの割り当て量を制御する装置の仮想マシン管理方法であって、前記コンピュータのリソースの使用状況から、リソース不足の仮想マシンを検出し、前記1または複数の仮想マシンに対するリソースの割り当て量と、記憶部に記憶されたリソースの割り当て量と指標との対応関係を示す指標情報と、に基づいて算出される指標値が、前記記憶部に記憶された許容する指標の上限値を超えないように、前記リソース不足の仮想マシンに対するリソースの割り当て量を増加させる、ことを特徴とする仮想マシン管理方法。情報処理装置で実行される1または複数の仮想マシンに対するリソースの割り当て量を制御する仮想マシン管理プログラムであって、コンピュータに、前記情報処理装置のリソースの使用状況から、リソース不足の仮想マシンを検出し、前記1または複数の仮想マシンに対するリソースの割り当て量と、記憶部に記憶されたリソースの割り当て量と指標との対応関係を示す指標情報と、に基づいて算出される指標値が、前記記憶部に記憶された許容する指標の上限値を超えないように、前記リソース不足の仮想マシンに対するリソースの割り当て量を増加させる、処理を実行させることを特徴とする仮想マシン管理プログラム。しかし、仮想マシンの負荷が増加したときのリソースの割り当て量をどのように制御すればよいかが問題となる。例えば、負荷の増加に合わせて十分なリソースが割り当てられることを望むユーザが存在し得る。一方、リソースの割り当て量に応じてユーザに課金が行われるサービス利用形態では、料金が高額になることを望まないユーザも存在し得る。本発明はこのような点に鑑みてなされたものであり、仮想マシンに対するリソースの割り当て量の変動を適切な範囲で制御できる情報処理装置、仮想マシン管理方法および仮想マシン管理プログラムを提供することを目的とする。コンピュータで実行される1または複数の仮想マシンに対するリソースの割り当て量を制御する情報処理装置が提供される。この情報処理装置は、記憶部と制御部とを有する。記憶部は、リソースの割り当て量と指標との対応関係を示す指標情報と、許容する指標の上限値とを記憶する。制御部は、リソースの使用状況からリソース不足の仮想マシンが検出されると、1または複数の仮想マシンに対するリソースの割り当て量と指標情報とに基づいて算出される指標値が上限値を超えないように、リソース不足の仮想マシンに対するリソースの割り当て量を増加させる。また、コンピュータで実行される1または複数の仮想マシンに対するリソースの割り当て量を制御する装置の仮想マシン管理方法が提供される。この仮想マシン管理方法では、コンピュータのリソースの使用状況から、リソース不足の仮想マシンを検出する。1または複数の仮想マシンに対するリソースの割り当て量と、記憶部に記憶されたリソースの割り当て量と指標との対応関係を示す指標情報と、に基づいて算出される指標値が、記憶部に記憶された許容する指標の上限値を超えないように、リソース不足の仮想マシンに対するリソースの割り当て量を増加させる。また、情報処理装置で実行される1または複数の仮想マシンに対するリソースの割り当て量を制御する仮想マシン管理プログラムが提供される。上記情報処理装置、仮想マシン管理方法および仮想マシン管理プログラムによれば、仮想マシンに対するリソースの割り当て量の変動を適切な範囲で制御できる。以下、本実施の形態を図面を参照して説明する。[第1の実施の形態]図1は、第1の実施の形態の情報処理システムを示す図である。第1の実施の形態の情報処理システムは、コンピュータ1および情報処理装置2を有する。情報処理装置2は、コンピュータ1と通信可能である。第1の実施の形態の情報処理システムは、コンピュータ1以外の他のコンピュータを含んでもよい。コンピュータ1または、コンピュータ1を含む複数のコンピュータは、1またはそれ以上の仮想マシンを実行する。以下の第1の実施の形態の説明では、コンピュータ1が仮想マシン1a,1bを実行する場合を考える。コンピュータ1は、ハイパーバイザなどの管理手段を有する。管理手段は、情報処理装置2による制御のもと、CPUやRAMなどのコンピュータ1のリソースを、仮想マシン1a,1bに割り当てる。仮想マシン1a,1bでは、例えば、それぞれOSが実行される。情報処理装置2は、各仮想マシンに対するリソースの割り当て量を制御する。情報処理装置2は、記憶部2aおよび制御部2bを有する。記憶部2aは、リソースの割り当て量と指標との対応関係を示す指標情報と、許容する指標の上限値とを記憶する。指標は、リソースの割り当て量に応じて値が変化するものであり、例えば、仮想マシンの利用料金である。指標情報が示す対応関係は、例えば、リソースの割り当て量が増加すると指標値も増加するという正の相関関係をもつ。上限値は、例えば、ユーザが1またはそれ以上の仮想マシンを利用することにより発生する料金の許容値である。上限値は、例えば、仮想マシンを利用するユーザにより設定される。制御部2bは、コンピュータ1のリソースの使用状況から、リソース不足の仮想マシン例として、仮想マシン1aがリソース不足であるとするが検出されると、仮想マシン1aに対するリソースの割り当て量の増加を試みる。仮想マシン1aがリソース不足であることは、例えば、仮想マシン毎のCPU使用率やメモリ使用率などの負荷を示す情報を収集し、負荷が閾値を超える仮想マシンが存在するか否か判断することで検出できる。制御部2bは、仮想マシン1a,1bに対するリソースの割り当て量と指標情報とに基づいて指標値例えば、仮想マシン1a,1b全体から生じる料金を算出し、指標値が上限値を超えない範囲で、仮想マシン1aに対するリソースの割り当て量を増加させる。なお、制御部2bは、仮想マシン1aに対するリソースの割り当て量を増加させると、指標値が上限値を超えてしまう場合、他の仮想マシン例えば、仮想マシン1bに対するリソースの割り当て量を減少させるようにしてもよい。また、制御部2bは、割り当て量を増加させる前の指標値と上限値との差から、増加可能な期間を算出し、算出した期間割り当て量を増加させてもよい。その場合、期間の経過後は、仮想マシン1aに対するリソースの割り当て量を元に戻してもよいし、他の仮想マシン例えば、仮想マシン1bに対するリソースの割り当て量を減少させてもよい。例えば、制御部2bは、仮想マシン1aのCPU使用率が高くリソース不足と判断されると、仮想マシン1aのリソースの割り当て量を増加させたときの指標値を算出し、上限値と比較する。制御部2bは、指標値が上限値以下である場合、仮想マシン1aのリソースの割り当て量が増加するよう制御する。一方、指標値が上限値を超える場合、例えば、仮想マシン1bのリソースの割り当て量を減少させれば、指標値が上限値以下になるか判断する。指標値が上限値以下になる場合、仮想マシン1aのリソースの割り当て量が増加し、仮想マシン1bのリソースの割り当て量が減少するよう制御する。情報処理装置2によれば、コンピュータ1のリソースの使用状況から、リソース不足の仮想マシン1aが検出される。仮想マシン1a,1bに対するリソースの割り当て量と記憶部2aに記憶された指標情報とに基づいて指標値が算出される。指標値が記憶部2aに記憶された上限値を超えないように、リソース不足の仮想マシン1aに対するリソースの割り当て量が増加される。これにより、1またはそれ以上の仮想マシンに対するリソースの割り当て量が適切な範囲で変動するよう制御することができる。例えば、ユーザが利用する1またはそれ以上の仮想マシンに対する料金の合計が、ユーザが設定した上限値を超えないように制御することができる。また、上限値を超えない範囲で、リソース不足の仮想マシンについて、自動的にリソースの割り当て量が増加するよう制御することができる。以下に説明する第2の実施の形態では、複数のサーバコンピュータを用いて、ユーザが所望する性能の仮想マシンを実行する情報処理システムの例を示す。[第2の実施の形態]図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態に係る情報処理システムは、複数のサーバコンピュータ以下、単にサーバということもあるでクライアントからの要求を受け付け、要求に応じた仮想マシンを実行する。ユーザは、クライアントを介して仮想マシンを操作し、自己の情報処理システムの基盤として利用する。この情報処理システムは、ポータルサーバ100、管理サーバ200および実行サーバ300,300a,300bを含む。ポータルサーバ100、管理サーバ200および実行サーバ300,300a,300bは、ネットワーク10に接続されている。また、ポータルサーバ100は、ネットワーク20に接続されている。更に、クライアント21,22,23がネットワーク20に接続されている。クライアント21,22,23は、ユーザが操作する情報処理装置である。クライアント21,22,23は、ポータルサーバ100を介して実行サーバ300,300a,300bで実行される仮想マシンに対して処理の実行を要求する。クライアント21,22,23は、実行サーバ300,300a,300bから要求に対する処理結果を受信する。ポータルサーバ100は、実行サーバ300,300a,300bが実行する仮想マシンのリソースの割り当て量を管理するサーバコンピュータである。また、ポータルサーバ100は各仮想マシンに対するリソースの割り当て量に基づいて、ユーザごとの課金状況を管理する。管理サーバ200は、実行サーバ300,300a,300bにおける仮想マシンの起動停止を制御するサーバコンピュータである。管理サーバ200は、ポータルサーバ100の指示に基づいて、仮想マシンに割り当てるリソース量を変更する。実行サーバ300,300a,300bは、仮想マシンを実行するサーバコンピュータである。ここで、この情報処理システムは有料である。サービス提供者は、ユーザの仮想マシンの使用状況に応じて課金を行う。料金は、仮想マシンの能力のランクによって定めることができる。例えば、仮想マシンに割り当てるCPUの能力やRAMのメモリサイズなどで、仮想マシンの能力をランク付けする。そして、ランクごとに、当該ランクで所定期間だけ利用した場合に発生する料金が、予め定められる。なお、本例ではサービス提供者からユーザに対する利用料金の請求は月締めで行われるとする締め日は月の末日とする。ただし、日締め、週締めおよび半年締めなど、他の周期で行われてもよい。図3は、ポータルサーバのハードウェア例を示す図である。ポータルサーバ100は、CPU101、ROMReadOnlyMemory102、RAM103、HDDHardDiskDrive104、グラフィック処理装置105、入力インタフェース106、記録媒体読取装置107および通信インタフェース108,109を有する。CPU101は、OSプログラムやアプリケーションプログラムを実行して、ポータルサーバ100全体を制御する。ROM102は、ポータルサーバ100の起動時に実行されるBIOSBasicInputOutputSystemプログラムなどの所定のプログラムを記憶する。ROM102は、書き換え可能な不揮発性メモリであってもよい。RAM103は、CPU101が実行するOSプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101の処理に用いられるデータの少なくとも一部を一時的に記憶する。HDD104は、OSプログラムやアプリケーションプログラムを記憶する。また、HDD104は、CPU101の処理に用いられるデータを記憶する。なお、HDD104に代えてまたは、HDD104と併せて、SSDSolidStateDriveなど他の種類の不揮発性の記憶装置を用いてもよい。グラフィック処理装置105は、モニタ31に接続される。グラフィック処理装置105は、CPU101からの命令に従って、画像をモニタ31に表示させる。入力インタフェース106は、キーボード32やマウス33などの入力デバイスに接続される。入力インタフェース106は、入力デバイスから送られる入力信号をCPU101に出力する。記録媒体読取装置107は、記録媒体34に格納されたデータを読み取る読取装置である。記録媒体34には、例えば、ポータルサーバ100に実行させるプログラムが記録されている。ポータルサーバ100は、例えば、記録媒体34に記録された管理プログラムを実行することで、後述するような管理機能を実現することができる。すなわち、管理プログラムはコンピュータ読み取り可能な記録媒体34に記録して配布することが可能である。記録媒体34としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスクFD、磁気テープなどがある。光ディスクには、CDCompactDisc、CD-RRecordable/RWReWritable、DVDDigitalVersatileDisc、DVD-R/RW/RAMなどがある。光磁気記録媒体には、MOMagnetoOpticaldiskなどがある。半導体メモリには、USBUniversalSerialBusメモリなどのフラッシュメモリがある。通信インタフェース108,109は、ネットワーク10,20に接続される。通信インタフェース108は、ネットワーク10を介して管理サーバ200および実行サーバ300,300a,300bとデータ通信を行える。また、通信インタフェース109は、ネットワーク20を介してクライアント21,22,23とデータ通信を行える。なお、ネットワーク10,20に接続された他のサーバコンピュータ図示せずに管理プログラムを格納しておいてもよい。その場合、ポータルサーバ100は、当該サーバコンピュータから管理プログラムをダウンロードして実行することもできる。クライアント21,22,23、管理サーバ200および実行サーバ300,300a,300bもポータルサーバ100と同様のハードウェア構成により実現できる。図4は、仮想マシンの配置例を示すブロック図である。実行サーバ300は、ハードウェア層310、ハイパーバイザ320および仮想マシン層330を有する。ハードウェア層310は、実行サーバ300が備えるハードウェア資源が属する階層である。ハードウェア資源としては、例えばCPU、RAM、HDDおよび通信インタフェースなどがある。ハイパーバイザ320は、実行サーバ300上で仮想マシンを実現する。ハイパーバイザ320は、管理サーバ200の指示に基づいて各仮想マシンに対するハードウェア資源の割り当てを行い、各仮想マシンの起動停止を実行する。また、ハイパーバイザ320は、各仮想マシンがハードウェア層310上の資源を共同で利用できるよう各仮想マシンのハードウェア資源へのアクセスを調停する。更に、ハイパーバイザ320は各仮想マシンに割り当てたハードウェア資源の使用状況を監視する。仮想マシン層330は、ハイパーバイザ320により実行サーバ300上に実現された仮想マシンが属する階層である。仮想マシン層330には、複数の仮想マシン331,332,333が含まれる。仮想マシン331,332,333では、それぞれ独立のOSを実行している。実行するOSはハイパーバイザ320により指定される。仮想マシン331,332,333が実行するOSはそれぞれ同一でもよいし、異なっていてもよい。ユーザは、クライアントを操作して仮想マシン331,332,333に個別にアプリケーションプログラムをインストールし、当該アプリケーションの機能を利用できる。なお、実行サーバ300a,300bも実行サーバ300と同様の構成により実現できる。図5は、ポータルサーバおよび管理サーバの機能を示すブロック図である。ポータルサーバ100は、料金情報記憶部110、料金設定部120、能力調整部130および契約変更部140を有する。これらのユニットの機能は、CPU101が管理プログラムを実行することによりポータルサーバ100上に実現される。ただし、これらのユニットの機能の全部または一部を専用のハードウェアで実装してもよい。料金情報記憶部110は、ユーザへの課金に用いる料金情報を記憶する。料金情報は、料金一覧テーブル、許容最大料金テーブル、料金集計テーブルおよびリソース管理テーブルを含む。料金一覧テーブルは、仮想マシンの能力ランクに応じた課金方法を定義したデータである。許容最大料金テーブルは、ユーザごとに請求可能な上限額最大料金を定義したデータである。料金集計テーブルは、ユーザごとに割り当てた仮想マシン、その現ランクおよび現在までの課金状況を集計したデータである。リソース管理テーブルは、ユーザごとに各仮想マシンに割り当てたリソースの使用状況を設定したデータである。料金設定部120は、クライアント21,22,23からユーザごとの許容最大料金を受け付け、料金情報記憶部110に格納する。能力調整部130は、仮想マシンの能力を調整する。能力調整部130は、監視部131、料金判定部132、ランクアップ指示部133、ランクダウン指示部134および契約変更通知部135を有する。監視部131は、管理サーバ200を介して実行サーバ300,300a,300b上の仮想マシンに割り当てたリソースの使用状況を定期的に監視し、能力不足の仮想マシンを検出する。能力不足であるか否かは、各仮想マシンに割り当てたリソースの使用率によって検出できる。リソースの使用率は当該仮想マシンに割り当てたリソースの負荷の一例である。料金判定部132は、監視部131で能力不足の仮想マシンが検出されると、当該仮想マシンのランクの向上ランクアップが可能であるかを判定する。具体的には、料金設定部120はユーザごとの仮想マシンのランクと、当該ランクで仮想マシンを利用した利用時間と、に基づいて、ユーザごとの料金集計データを更新する。そのために料金判定部132は、前回の料金精算後から現在までの各ランクでの仮想マシンの利用時間を計測している。そして、料金判定部132は料金情報記憶部110を参照して、ランクアップ後に想定される利用料金が当該ユーザの許容最大料金を超えるか否かを判定する。許容最大料金を超えない場合、料金判定部132はランクアップ対象の仮想マシンをランクアップ指示部133に通知する。許容最大料金を超える場合、料金判定部132はその他の仮想マシンで能力ランクの低下ランクダウンが可能であるかを判定する。例えば、現在のリソースの使用率からリソースの実質的な所要量を見積り、1ランクダウンさせた能力で、当該所要量を充足できるか判断する。充足できればランクダウン可能、充足できなければランクダウン不可と判断する。ランクダウン可能であれば、ランクダウン対象の仮想マシンをランクダウン指示部134に通知する。そして、料金判定部132は当該ランクダウン後に、再度能力不足の仮想マシンがランクアップ可能であるかを判定する。ランクアップ指示部133は、ランクアップ対象の仮想マシンの通知を料金判定部132から受けると、ランクアップに応じた当該仮想マシンのリソース量の増加を管理サーバ200に指示する。また、ランクアップ指示部133は、当該ランクアップを契約変更通知部135および契約変更部140に通知する。ランクダウン指示部134は、ランクダウン対象の仮想マシンの通知を料金判定部132から受けると、ランクダウンに応じた当該仮想マシンのリソース量の減少を管理サーバ200に指示する。また、ランクダウン指示部134は、ランクダウンに伴う仮想マシンの契約変更を契約変更部140に指示する。更に、ランクダウン指示部134は、ランクダウン内容を契約変更通知部135に出力する。契約変更通知部135は、ランクアップ/ランクダウンの内容をユーザに通知する。例えば、契約変更通知部135は、当該内容を記述した電子メールを生成して、当該電子メールをユーザの電子メールアドレスに送信する。ユーザは、自身に送信された電子メールをクライアント21,22,23に受信させて参照することで、ランクアップ/ランクダウンの内容を知ることができる。契約変更部140は、ランクアップ指示部133またはランクダウン指示部134の指示により、料金情報記憶部110を参照して、当該ユーザの現在の仮想マシンのランクを変更する。管理サーバ200は、リソース割当部210および使用状況取得部220を有する。これらのユニットの機能は、管理サーバ200が備えるCPUが所定のプログラムを実行することにより管理サーバ200上に実現される。ただし、これらのユニットの機能の全部または一部を専用のハードウェアで実装してもよい。リソース割当部210は、実行サーバ300,300a,300bで実行される仮想マシンごとのリソースの割り当て量を制御する。リソース割当部210は、ランクアップ指示部133およびランクダウン指示部134によるリソース量の増加/減少の指示に応じて、実行サーバ300,300a,300bに各仮想マシンのリソース量を変更させる。使用状況取得部220は、監視部131から各仮想マシンに割り当てたリソースの使用状況の取得要求を受信すると、ハイパーバイザに問い合わせを行う。使用状況取得部220は、ハイパーバイザの応答内容を監視部131に送信する。図6は、料金一覧テーブルのデータ構造例を示す図である。料金一覧テーブル111は、料金情報記憶部110に格納される。料金一覧テーブル111は、リソースの割り当て量に応じて値が変化する指標情報の一例である。リソースの割り当て量と料金との対応関係は、リソースの割り当て量が増加すると料金も増加するという正の相関関係をもつ。料金一覧テーブル111には、能力ランク、CPU能力値、メモリサイズ、月額料金および時間料金の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの契約ランクに関する契約内容を示す。能力ランクの項目には、能力ランクを識別するためのランクの名称が設定される。CPU能力値の項目には、リソースとして割り当てるCPUの能力値が設定される。メモリサイズの項目には、リソースとして割り当てるRAMのサイズが設定される。月額料金の項目には、当該ランクの1か月当たりの利用料金が設定される。時間料金の項目には、当該ランクの1時間当たりの利用料金が設定される。例えば、料金一覧テーブル111には、能力ランクがmini、CPU能力値が1GHzGigaHertz、メモリサイズが512MBMegaBytes、月額料金が7200円、時間料金が10円という情報が設定される。これは、ランクminiでは、仮想マシンに対して動作周波数1GHz相当のCPU能力および512MB相当のメモリサイズがリソースとして割り当てられることを示している。また、ランクminiでの1か月当たりの利用料金が7200円、1時間当たりの利用料金が10円であることを示している。図7は、最大料金テーブルのデータ構造例を示す図である。最大料金テーブル112は、料金情報記憶部110に格納される。最大料金テーブル112は、ユーザごとに許容する料金の上限値を定義したものである。最大料金テーブル112には、ユーザおよび最大月額料金の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1ユーザの最大月額料金を示す。ユーザの項目には、ユーザの識別情報が設定される。最大月額料金の項目には、許容される最大の月額利用料金が設定される。例えば、最大料金テーブル112には、ユーザがU001、最大月額料金が25000円という情報が設定される。これは、ユーザU001では、許容される最大の月額利用料金が25000円であることを示している。図8は、料金集計テーブルのデータ構造例を示す図である。料金集計テーブル113は、料金情報記憶部110に格納される。料金集計テーブル113には、ユーザ、VMVirtualMachine名、現ランク、miniの時間、smallの時間、mediumの時間、largeの時間および合計料金の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1ユーザの課金状況を示す。ユーザの項目には、ユーザの識別情報が設定される。VM名の項目には、当該ユーザに割り当てられた仮想マシンの名称が設定される。現ランクの項目には、当該仮想マシンの現在のランクが設定される。miniの時間の項目には、前回の料金精算後からランクminiで利用された時間の合計が設定される。smallの時間の項目には、前回の料金精算後からランクsmallで利用された時間の合計が設定される。mediumの時間の項目には、前回料金精算後からランクmediumで利用された時間の合計が設定される。largeの時間の項目には、前回料金精算後からランクlargeで利用された時間の合計が設定される。合計料金の項目には、当該仮想マシンに対する現時点での課金額が設定される。例えば、料金集計テーブル113には、ユーザがU001、VM名がVM1、現ランクがmini、miniの時間が10時間、smallの時間が20時間、mediumの時間が120時間、largeの時間が18時間、合計料金が6740円という情報が設定される。これは、ユーザU001に対してVM名がVM1の仮想マシンが割り当てられており、その仮想マシンの現在のランクがminiであることを示している。更に、当該仮想マシンは、前回の利用料金の精算後から現在までにminiで10時間、smallで20時間、mediumで120時間、largeで18時間、利用されたことを示している。また、当該仮想マシンに対して現在までに課金されている金額の合計が6740円であることを示している。また、例えば料金集計テーブル113には、ユーザがU001、VM名が全VM、現ランクが-ハイフン、miniの時間が160時間、smallの時間が130時間、mediumの時間が300時間、largeの時間が82時間、合計料金が22760円という情報が設定される。これは、ユーザU001に対して割り当てられている、仮想マシンVM1~VM4の全VMに対する合計値を示している。このため、現ランクは設定なしハイフンとなっている。具体的には、仮想マシンVM1~VM4が前回の利用料金の精算後から現在までに合計で、miniで160時間、smallで130時間、mediumで300時間、largeで82時間、利用されたことを示している。また、全仮想マシンにつき現在までに課金されている金額の合計が22760円であることを示している。図9は、リソース管理テーブルのデータ構造例を示す図である。リソース管理テーブル114は、料金情報記憶部110に格納される。リソース管理テーブル114には、ユーザ、VM名、CPU割当、CPU使用率、メモリ割当およびメモリ使用率の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1ユーザのリソースの使用状況を示す。ユーザの項目には、ユーザの識別情報が設定される。VM名の項目には、当該ユーザに割り当てられた仮想マシンの名称が設定される。CPU割当の項目には、当該仮想マシンに割り当てられたCPU能力が設定される。CPU使用率の項目には、当該CPU能力に対するCPU使用率が設定される。メモリ割当の項目には、当該仮想マシンに割り当てられたメモリサイズが設定される。メモリ使用率の項目には、当該メモリサイズに対するメモリ使用率が設定される。例えば、リソース管理テーブル114には、ユーザがU001、VM名がVM1、CPU割当が1GHz、CPU使用率が50、メモリ割当が512MB、メモリ使用率が60という情報が設定される。これは、ユーザU001に対して割り当てられている仮想マシンVM1の現在の性能が、CPU能力1GHz相当、メモリサイズ512MB相当であることを示している。また、この性能に対して、CPU使用率が50、メモリ使用率が60であることを示している。次に、以上の構成の情報処理システムの処理手順を説明する。まず、ポータルサーバ100のランク変更処理の手順を説明する。ランク変更処理は、能力調整部130により所定の周期で開始される。図10は、ランク変更処理を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。ステップS11監視部131は、管理サーバ200に各仮想マシンに割り当てたリソースの使用状況取得要求を送信する。監視部131は、当該要求に応じたリソースの使用状況を管理サーバ200から取得する。監視部131は、取得した情報に基づいて料金情報記憶部110を参照し、リソース管理テーブル114を更新する。ステップS12料金判定部132は、料金情報記憶部110に格納された料金集計テーブル113を参照し、各仮想マシンのランクと前回の利用料金精算後から現在までの利用時間とに基づいて、今月分の利用料金を集計する。料金判定部132は、集計結果により料金集計テーブル113を更新する。ステップS13監視部131は、リソース管理テーブル114を参照して、リソース使用率が上限の仮想マシンがあるか否かを判定する。ある場合、処理をステップS14に進める。ない場合、処理を終了する。リソース使用率が上限に達しているか否かは、例えば仮想マシンに割り当てたCPU能力に対するCPU使用率が100に達しているか否かにより判断できる。リソース管理テーブル114の例では、仮想マシンVM2でCPU使用率が100に達している。この場合、監視部131はリソース使用率が上限に達している仮想マシンがあると判定する。なお、上限は適宜定義できる。例えば、使用率90や80などとしてもよい。ステップS14料金判定部132は、月末までの残り時間Tを算出する。ステップS15料金判定部132は、監視部131により能力不足と判定された仮想マシンを1ランクアップした場合の今月料金を算出する。例えば、仮想マシンVM2のランクアップを試みるとする。すると、仮想マシンVM2の現ランクは、料金集計テーブル113によるとsmallなので、これをmediumとした場合の今月料金を算出する。具体的には、仮想マシンVM2のランクをmediumとした場合の時間料金にTを乗じてMA1を求める。また、ユーザU001に割り当てた他の仮想マシンVM1,VM3,VM4の現ランクに対応する時間料金にTを乗じてM2を求める。そして、MA1、M2および現在の合計料金の和をとることでランクアップ後の今月料金MAを求めることができる。ステップS16料金判定部132は、料金情報記憶部110に格納された最大料金テーブル112を参照して、ランクアップ後の今月料金MAが当該ユーザの最大料金本例では最大月額料金以内であるか否かを判定する。最大料金以内である場合、料金判定部132はランクアップ指示部133にランクアップ対象の仮想マシンを通知して処理をステップS17に進める。最大料金よりも大きい場合、処理をステップS19に進める。ステップS17ランクアップ指示部133は、料金情報記憶部110に格納された料金一覧テーブル111を参照して、ランクアップ後のランクに対応するリソース量を取得する。ランクアップ指示部133は、指定された仮想マシンのランクアップランクアップ後のリソース量の指定を含むを管理サーバ200に指示する。また、ランクアップ指示部133は当該ランクアップを契約変更部140に通知する。契約変更部140は、料金集計テーブル113を操作して、ランクアップした仮想マシンの現ランクを更新する。例えば、仮想マシンVM2をsmallからmediumにランクアップした場合、その旨を料金集計テーブル113に反映させる。ステップS18ランクアップ指示部133は、当該ランクアップを契約変更通知部135に通知する。契約変更通知部135は、ランクアップした旨を通知するメッセージを記述した電子メールを生成し、ユーザの電子メールアドレスに送信する。ステップS19料金判定部132は、当該ユーザに割り当てた仮想マシンのうち、能力不足を検出していない仮想マシンの使用状況を参照して、リソース使用率の余裕度の有無を算出する。リソース使用率の余裕度は、例えば、仮想マシンの現ランクにおける使用状況と1ランク下の仮想マシンの能力とを比較することで求めることができる。例えば、現ランクのCPU能力にCPU使用率を乗じた値が1ランク下のCPU能力よりも小さく、かつ、現ランクのメモリサイズにメモリ使用率を乗じた値が1ランク下のメモリサイズよりも小さければ、余裕度があると判断する。例えば、リソース管理テーブル114によれば、仮想マシンVM3は、CPU能力が4GHz、CPU使用率が60なので、実質的に使用しているCPU能力は2.4GHzである。同様に、メモリサイズが2GB、メモリ使用率が40なので、実質的に使用しているメモリサイズは0.8GBである。これは、1ランク下のsmallで対応可能であるので、仮想マシンVM3は余裕度ありと判断できる。一方、何れかが1ランク下の能力値よりも大きければ、余裕度はないと判断する。ステップS20料金判定部132は、ランクダウン可能な仮想マシンがあるか否かを判定する。ある場合、料金判定部132はランクダウン指示部134にランクダウン対象の仮想マシンを通知して、処理をステップS21に進める。ない場合、処理をステップS23図11参照に進める。ランクダウン可能な仮想マシンがあるか否かは、ステップS19で算出した余裕度の有無に基づいて判定できる。すなわち、余裕度がある仮想マシンが存在する場合、ランクダウン可能な仮想マシンがあると判定する。余裕度がある仮想マシンが存在しない場合、ランクダウン可能な仮想マシンはないと判定する。ステップS21ランクダウン指示部134は、料金一覧テーブル111を参照して、ランクダウン後のランクに対応するリソース量を取得する。ランクダウン指示部134は、指定された仮想マシンのランクダウンランクダウン後のリソース量の指定を含むを管理サーバ200に指示する。また、ランクダウン指示部134は、当該ランクダウンを契約変更部140に通知する。契約変更部140は、料金集計テーブル113を操作して、ランクダウンした仮想マシンの現ランクを更新する。例えば、仮想マシンVM3をmediumからsmallにランクダウンした場合、その旨を料金集計テーブル113に反映させる。ステップS22ランクダウン指示部134は、当該ランクダウンを契約変更通知部135に通知する。契約変更通知部135は、ランクダウンした旨を通知するメッセージを記述した電子メールを生成し、ユーザの電子メールアドレスに送信する。図11は、ランク変更処理を示すフローチャート続きである。以下、図11に示す処理をステップ番号に沿って説明する。ステップS23料金判定部132は、現ランクでの今月料金MBを算出する。今月料金MBの求め方は、図10のステップS15で説明した方法と同様である。ただし、能力不足を検出した仮想マシンにつきランクアップを行った場合を想定するのではなく、当該仮想マシンにつき現ランクでの時間料金に月末までの残り時間Tを乗じてMB1を求める。そして、MB1、M2および現在の合計料金の和をとることで現ランクでの今月料金MBを求めることができる。ステップS24料金判定部132は、最大料金テーブル112を参照して、現ランクでの今月料金MBと当該ユーザの最大料金との差分Sを算出する。ステップS25料金判定部132は、能力不足の仮想マシンにつきランクアップ可能時間を算出する。具体的には、ステップS24で求めた差分Sをランクアップ後の時間料金で割った値を求める。例えば、能力不足の仮想マシンVM2に対して差分Sが3000円であるとする。すると、仮想マシンVM2のランクアップ可能時間は、ランクアップ後のランクがmediumとすれば、3000/40=75時間と算出できる。ステップS26料金判定部132は、ランクアップ指示部133にランクアップ対象の仮想マシンとランクアップ可能時間を通知する。ランクアップ指示部133は、料金一覧テーブル111を参照して、ランクアップ後のランクに対応するリソース量を取得する。ランクアップ指示部133は、指定された仮想マシンのランクアップを管理サーバ200に指示する。また、ランクアップ指示部133は当該ランクアップを契約変更部140に通知する。契約変更部140は、料金集計テーブル113を操作して、ランクアップした仮想マシンの現ランクを更新する。ステップS27ランクアップ指示部133は、当該ランクアップを契約変更通知部135に通知する。契約変更通知部135は、ランクアップした旨を通知するメッセージを記述した電子メールを生成し、ユーザの電子メールアドレスに送信する。ステップS28ランクアップ指示部133は、ステップS26で指示されたランクアップ対象の仮想マシンのVM名とランクアップ終了時刻を料金情報記憶部110に記録する。ランクアップ指示部133は、現在の時刻にランクアップ可能時間を加算して得た時刻をランクアップ終了時刻として算出できる。当該仮想マシンのランクアップ前の元のランクを記録してもよい。そして、処理を終了させる。このようにして、ポータルサーバ100は仮想マシンのランクアップ/ランクダウンの管理を行う。なお、図10のステップS20では仮想マシンの性能を予め設定した下限値よりもランクダウンしないよう制御してもよい。例えば、ランクダウンによってユーザが申請した下限の性能を下回る場合には、当該仮想マシンのランクダウンは不可と判定する。これにより、仮想マシンの最低限の性能を確保できる。次に、上記ステップS26でランクアップした仮想マシンにつきランクアップ終了時刻に達した場合のランク復元処理を説明する。図12は、ランク復元処理を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。ステップS31監視部131は、料金情報記憶部110を参照して、ランクアップ終了時刻に達したか否かを判定する。達した場合、処理をステップS32に進める。達していない場合、処理をステップS31に進める。ステップS32料金判定部132は、当該ユーザに割り当てた仮想マシンのうち、ステップS26でランクアップした仮想マシン以外の仮想マシンの使用状況を参照して、リソースの使用率の余裕度の有無を算出する。リソースの使用率の余裕度の有無の算出方法は、図10のステップS19で説明した通りである。ステップS33料金判定部132は、余裕度のある仮想マシンをランクダウン対象の仮想マシンとして、ランクダウン指示部134に通知する。ランクダウン指示部134は、料金判定部132から指定された仮想マシンにつき、料金情報記憶部110に格納された料金一覧テーブル111を参照して、ランクダウン後のランクに対応するリソース量を取得する。ランクダウン指示部134は、指定された仮想マシンのランクダウンを管理サーバ200に指示する。また、ランクダウン指示部134は当該ランクダウンを契約変更部140に指示する。契約変更部140は、料金集計テーブル113を操作して、ランクダウンした仮想マシンの現ランクを更新する。ステップS34料金判定部132は、ステップS33のランクダウン後の今月料金MCを算出する。今月料金MCの求め方は、図10のステップS15で説明した方法と同様である。すなわち、まず、料金判定部132は料金情報記憶部110に格納された料金集計テーブル113を参照して現在の合計料金を算出する。次に、月末までの残り時間Tを算出する。そして、当該ユーザに割り当てられた全ての仮想マシンにつき現ランクでの時間料金にTを乗じて和をとることでMC1を算出する。更に、MC1と現在の合計料金との和をとることでランクダウン後の今月料金MCを算出する。ステップS35料金判定部132は、料金情報記憶部110に格納された最大料金テーブル112を参照して、ランクダウン後の今月料金MCが当該ユーザの最大料金以内であるか否かを判定する。最大料金以内である場合、処理をステップS37に進める。最大料金よりも大きい場合、料金判定部132はランクダウン指示部134にランクアップ終了時刻に達した仮想マシンを通知して処理をステップS36に進める。ステップS36ランクダウン指示部134は、最大料金テーブル112を参照して、ランクアップ終了時刻に達した仮想マシンにつきランクダウン後のランク元のランクに対応するリソース量を取得する。ランクダウン指示部134は、指定された仮想マシンをランクダウンするよう管理サーバ200に指示する。また、ランクダウン指示部134は当該ランクダウンを契約変更部140に通知する。契約変更部140は、料金集計テーブル113を操作して、ランクダウンした仮想マシンの現ランクを更新する。ステップS37ランクダウン指示部134は、当該ランクダウンを契約変更通知部135に通知する。契約変更通知部135は、ランクダウンした旨を通知するメッセージを記述した電子メールを生成し、ユーザの電子メールアドレスに送信する。なお、ステップS33でランクダウンした仮想マシンがなく、かつ、ステップS35で最大料金以内であると判定した場合には、仮想マシンのランクダウンは生じない。この場合にはユーザに対するランクダウンの通知は行われない。このようにして、ポータルサーバ100はランクアップ終了時刻に達した仮想マシンのランクを元に戻す。これにより、利用料金がユーザの最大料金を超過しないよう仮想マシンのランクを適切に制御できる。なお、ステップS33では仮想マシンの性能を予め設定した下限値よりもランクダウンしないよう制御してもよい。例えば、料金判定部132はランクダウンによってユーザが申請した下限の性能を下回る場合には、当該仮想マシンのランクダウン通知を行わないようにする。これにより、仮想マシンの最低限の性能を確保できる。管理サーバ200は、ポータルサーバ100の指示に応じて仮想マシンのリソース量を変更する。次に、管理サーバ200によるリソース割当変更処理を説明する。図13は、リソース管理処理を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。ステップS41使用状況取得部220は、ポータルサーバ100から使用状況取得要求を受信したか否かを判定する。受信した場合、処理をステップS42に進める。受信していない場合、処理をステップS44に進める。ステップS42使用状況取得部220は、実行サーバ300,300a,300bのハイパーバイザに各仮想マシンに割り当てたリソースの使用状況を問い合わせる。ステップS43使用状況取得部220は、問い合わせにより得た使用状況をポータルサーバ100に報告する。そして、処理を終了する。ステップS44リソース割当部210は、ランク変更の指示を受けたか否かを判定する。ランク変更の指示を受けた場合、処理をステップS45に進める。ランク変更の指示を受けていない場合、処理を終了する。ステップS45使用状況取得部220は、実行サーバ300,300a,300bのリソースの使用状況を確認する。ステップS46リソース割当部210は、ランクアップする仮想マシンを実行する実行サーバでリソースが不足しているか否かを判定する。リソースが不足している場合、処理をステップS47に進める。リソースが不足していない場合、処理をステップS49に進める。なお、ランク変更の指示がランクダウン指示であれば、処理をステップS49に進める。ランクダウンの際には新たなリソースを確保しなくてよいからである。ステップS47リソース割当部210は、他の実行サーバのハイパーバイザに仮想マシンを移動させるためのリソースを確保する。例えば、他の実行サーバのうちリソースの使用率が最小の実行サーバのリソースを確保する。確保するリソース量は、ランクアップ後の仮想マシンの性能に相当する量である。ステップS48リソース割当部210は、ハイパーバイザに対して仮想マシンの移動を指示する。ハイパーバイザは、次のようにして移動元の実行サーバから移動先の実行サーバへの仮想マシンの移動を行う。1移動元で仮想マシンに割り当てたメモリ領域のデータを、移動先で仮想マシンに割り当てたメモリ領域にコピーする。2移動元で仮想マシンを停止させ、移動元から移動先へ当該仮想マシンのCPU状態をコピーする。3移動先で仮想マシンを再開し、移動元でリソースを解放する。4移動先の仮想マシンでネットワーク設定アドレス等を更新する。そして、処理を終了する。ステップS49リソース割当部210は、同一の実行サーバ内でリソース割当の変更を行う。このようにして、管理サーバ200はランクアップを行う際、その仮想マシンが動作する実行サーバの処理能力を超える場合には、処理能力に余裕のある他の実行サーバに仮想マシンを移動させる。移動先の実行サーバでは、当該仮想マシンをランクアップ後の性能で実行する。ここで、実行サーバの処理能力を超えて仮想マシンをランクアップさせようとすると、その実行サーバでリソースが不足して、当該仮想マシンだけでなく他の仮想マシンの動作にも影響を及ぼす可能性がある。そこで、管理サーバ200のように、ランクアップの際に実行サーバの負荷に応じて仮想サーバの移動を行う。これにより、他の仮想マシンに与える影響を低減できる。また、同一の実行サーバではリソースが不足してランクアップによる所望の性能を確保できない場合にも、他の実行サーバでリソースを確保することで仮想マシンを適切にランクアップさせることができる。"