(57)【要約】【課題】非活性なインスタンスのリソースを、迅速な再開に必要となる最小限のリソース分を残して解放する。【解決手段】アクティブインスタンス管理装置３が仮想化装置１に生成されているインスタンスのうち非活性のものを検出した場合、当該インスタンスのスナップショットを、メモリ装置で構成されるセミサスペンドインスタンス保存装置５に書き込み、当該インスタンスが利用していたリソースを解放する。インスタンス管理装置２は、元のインスタンスが使用していた通信ポートなどを引継いで監視し、アクセスがあった場合には、元のインスタンスを再開させる機能だけを有する種火インスタンスを起動する。種火インスタンスにアクセスがあった場合、スナップショットを利用して元のインスタンスが再開され、引続きアクセスがない場合、スナップショットをディスク装置で構成されるサスペンドインスタンス保存装置８に移動する。【選択図】図１
2010224914.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンとして動作する仮想化装置に生成されているインスタンスを管理するアクティブインスタンス管理装置と、
一時停止された前記インスタンスを再開させる処理を含む種火インスタンスを生成する種火インスタンス管理装置と、
一時停止前の前記インスタンスの状態を記録したイメージファイルを記憶するセミサスペンドインスタンス保存装置と、
前記インスタンスの状態を管理するインスタンス管理装置と、
前記インスタンスの状態を記憶するインスタンス管理情報記憶装置とを備えるインスタンス管理システムであって、
前記アクティブインスタンス管理装置は、
前記仮想化装置に生成されている前記インスタンスのうち、所定時間実行されていない前記インスタンスを一時停止対象のインスタンスとして検出し、検出した当該一時停止対象のインスタンスの現在の状態を記録したイメージファイルの生成、及び、当該イメージファイルの前記セミサスペンドインスタンス保存装置への書込みと、前記種火インスタンス管理装置が生成した種火インスタンスの起動とを前記仮想化装置へ指示するとともに、当該種火インスタンスの起動後に前記一時停止対象のインスタンスの解放を前記仮想化装置へ指示し、前記種火インスタンスから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出したときに出力される再開の要求を受信した場合に、前記一時停止対象のインスタンスを前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを使用して一時停止前状態の状態から再開させるよう前記仮想化装置に指示する仮想化装置管理部を備え、
前記種火インスタンス管理装置は、
前記一時停止対象のインスタンスの解放後、当該一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出した場合に、当該一時停止対象のインスタンスの再開の要求を出力する処理と、当該一時停止対象のインスタンスの起動に検出した前記イベントを受け渡す処理とを含んだ種火インスタンスを生成する種火インスタンス管理部を備え、
前記インスタンス管理装置は、
前記インスタンスが生成されたときに、当該インスタンスがアクティブ状態であることを示す情報と、当該インスタンスの生成要求から取得した利用者の識別情報とを対応づけて前記インスタンス管理情報記憶装置に書込み、前記アクティブインスタンス管理装置の仮想化装置管理部が、一時停止対象の前記インスタンスを検出したときに、当該インスタンスが一時停止状態であることを示す情報を前記インスタンス管理情報記憶装置に書込み、前記インスタンスが再開されたときに、当該インスタンスがアクティブ状態であることを示す情報を前記インスタンス管理情報記憶装置に書き込むインスタンス状態管理部を備える、
ことを特徴とするインスタンス管理システム。
【請求項２】
一時停止されている前記インスタンスを管理するセミサスペンドインスタンス管理装置をさらに備え、
前記セミサスペンドインスタンス管理装置は、
前記種火インスタンスが生成されてから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを受信せずに経過した時間を計測し、所定時間以上経過したことを検出するセミサスペンドインスタンス管理部と、
前記セミサスペンドインスタンス管理部が所定時間経過したことを検出した場合に、前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを、当該セミサスペンドインスタンス保存装置よりデータの読み出しが低速なサスペンドインスタンス保存装置に移動するセミサスペンドインスタンス保存装置管理部とを備える、
ことを特徴とする請求項１に記載のインスタンス管理システム。
【請求項３】
前記イメージファイルがサスペンドインスタンス保存装置に移動されてから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを受信せずに経過した時間を計測するサスペンドインスタンス管理装置と、
前記サスペンドインスタンス管理装置により計測された時間が所定時間以上であることを検出した場合に警告を出力する通知装置と、
をさらに備えることを特徴とする請求項２に記載のインスタンス管理システム。
【請求項４】
前記インスタンス管理装置は、前記インスタンス管理情報記憶装置を参照して得た、各利用者の識別情報に対応するインスタンスのアクティブ状態の累積時間及び一時停止状態の累積時間に基づいて当該利用者の課金金額を算出する課金管理部をさらに備える、
ことを特徴とする請求項１から請求項３のいずれかの項に記載のインスタンス管理システム。
【請求項５】
複数の仮想マシンとして動作する仮想化装置に生成されているインスタンスを管理するアクティブインスタンス管理装置と、
一時停止対象のインスタンスの解放後、当該一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出した場合に、当該一時停止対象のインスタンスの再開の要求を出力する処理と、当該一時停止対象のインスタンスの起動に検出した前記イベントを受け渡す処理とを含んだ種火インスタンスを生成する種火インスタンス管理装置と、
一時停止前の前記インスタンスの状態を記録したイメージファイルを記憶するセミサスペンドインスタンス保存装置とを備えるインスタンス管理システムの前記アクティブインスタンス管理装置に用いられるコンピュータプログラムであって、
前記仮想化装置に生成されている前記インスタンスのうち、所定時間実行されていない前記インスタンスを一時停止対象のインスタンスとして検出する検出ステップと、
前記検出ステップにおいて検出した当該一時停止対象のインスタンスの現在の状態を記録したイメージファイルの生成、及び、当該イメージファイルのセミサスペンドインスタンス保存装置への書込みと、前記種火インスタンス管理装置が生成した種火インスタンスの起動とを前記仮想化装置へ指示する種火インスタンス起動ステップと、
前記種火インスタンスの起動後に前記一時停止対象のインスタンスの解放を前記仮想化装置へ指示するインスタンス解放指示ステップと、
前記種火インスタンスから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出したときに出力される再開の要求を受信した場合に、前記一時停止対象のインスタンスを前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを使用して一時停止前状態の状態から再開させるよう前記仮想化装置に指示する再開指示ステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウドコンピューティングシステムにおけるインスタンスを管理するインスタンス管理システム及びコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、インターネットを介して提供されるコンピュータリソースを、それらの所在を意識することなく利用可能なクラウドコンピューティングを用い、各種サービスを提供するクラウドコンピューティングサービスが普及してきている。このようなクラウドコンピューティングサービスでは、クラウドサービス提供装置によってＣＰＵやメモリなどのコンピュータリソースをインスタンスという形で利用者に提供し、そのインスタンスの利用状況を時間単位でクラウドサービス利用履歴ＤＢ（ＤＢ：データベース）に記録する。そして、クラウドサービス課金装置によって各利用者の利用時間を月単位で積算し、利用時間に応じた課金を実施する。
【０００３】
このように、クラウドコンピューティングサービスは、時間単位の従量制課金のサービスであることから、利用者は基本的に自らのサービス利用の必要性がない時には利用しているインスタンスを停止させるための指示を自身の端末に入力するなどの操作を行う。サービス提供側のクラウドサービス提供装置は、利用者の端末から受信したインスタンス停止要求に従ってインスタンスを停止し、当該インスタンスに使用されていたリソースを解放する。しかし、利用者の不注意などにより、サービスの利用の必要性のない時間においてもインスタンスを停止しないままにしていると、サービス提供者側はそのリソースを解放できず、利用者にはその分の利用料が加算されてしまう。
【０００４】
一方、特許文献１には、計算機やプロセッサの稼動数、プロセッサの使用率の変化によりシステムの消費電力量が変化することを利用し、計測した消費電力量に基づいて使用料金を算出することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−３７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
パブリッククラウドにおけるクラウドコンピューティングサービスでは、上述したように各利用者が責任を持ってリソースの利用開始、利用停止を行なう仕組みであり、利用者が使用した分だけ課金するというポリシーにより運営されている。そのため、利用者の不注意などにより実際は有効に使用されていないリソースについてもその利用料金は利用者の負担となってしまう。また、プライベートクラウドにおけるクラウドコンピューティングサービスでは、そもそもサービス利用が課金と連動していないケースもありうる。この場合、利用者の不注意による不活性インスタンスが増大する可能性が高く、パブリッククラウドよりもさらに、不活性インスタンスにリソースが消費されてしまわれないような仕組みが必要である。
【０００７】
そこで、利用されていないインスタンスを検出して一時停止状態とすることが考えられる。しかし、従来技術においては、一時停止されたインスタンスを再び実行させる際には時間がかかってしまうため、利用者側でパフォーマンスが悪いと感じてしまい、快適に利用できない。
【０００８】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、使用されていないインスタンスについては、再び要求があったときに短い時間で再開できるように一時停止してリソースを解放するとともに、一時停止の状態にあるインスタンスを管理して利用料金の割引に用いることができるインスタンス管理システム及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明は、複数の仮想マシンとして動作する仮想化装置に生成されているインスタンスを管理するアクティブインスタンス管理装置と、一時停止された前記インスタンスを再開させる処理を含む種火インスタンスを生成する種火インスタンス管理装置と、一時停止前の前記インスタンスの状態を記録したイメージファイルを記憶するセミサスペンドインスタンス保存装置と、前記インスタンスの状態を管理するインスタンス管理装置と、前記インスタンスの状態を記憶するインスタンス管理情報記憶装置とを備えるインスタンス管理システムであって、前記アクティブインスタンス管理装置は、前記仮想化装置に生成されている前記インスタンスのうち、所定時間実行されていない前記インスタンスを一時停止対象のインスタンスとして検出し、検出した当該一時停止対象のインスタンスの現在の状態を記録したイメージファイルの生成、及び、当該イメージファイルの前記セミサスペンドインスタンス保存装置への書込みと、前記種火インスタンス管理装置が生成した種火インスタンスの起動とを前記仮想化装置へ指示するとともに、当該種火インスタンスの起動後に前記一時停止対象のインスタンスの解放を前記仮想化装置へ指示し、前記種火インスタンスから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出したときに出力される再開の要求を受信した場合に、前記一時停止対象のインスタンスを前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを使用して一時停止前状態の状態から再開させるよう前記仮想化装置に指示する仮想化装置管理部を備え、前記種火インスタンス管理装置は、前記一時停止対象のインスタンスの解放後、当該一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出した場合に、当該一時停止対象のインスタンスの再開の要求を出力する処理と、当該一時停止対象のインスタンスの起動に検出した前記イベントを受け渡す処理とを含んだ種火インスタンスを生成する種火インスタンス管理部を備え、前記インスタンス管理装置は、前記インスタンスが生成されたときに、当該インスタンスがアクティブ状態であることを示す情報と、当該インスタンスの生成要求から取得した利用者の識別情報とを対応づけて前記インスタンス管理情報記憶装置に書込み、前記アクティブインスタンス管理装置の仮想化装置管理部が、一時停止対象の前記インスタンスを検出したときに、当該インスタンスが一時停止状態であることを示す情報を前記インスタンス管理情報記憶装置に書込み、前記インスタンスが再開されたときに、当該インスタンスがアクティブ状態であることを示す情報を前記インスタンス管理情報記憶装置に書き込むインスタンス状態管理部を備える、ことを特徴とするインスタンス管理システムである。
【００１０】
また、本発明は、上述するインスタンス管理システムであって、一時停止されている前記インスタンスを管理するセミサスペンドインスタンス管理装置をさらに備え、前記セミサスペンドインスタンス管理装置は、前記種火インスタンスが生成されてから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを受信せずに経過した時間を計測し、所定時間以上経過したことを検出するセミサスペンドインスタンス管理部と、前記セミサスペンドインスタンス管理部が所定時間経過したことを検出した場合に、前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを、当該セミサスペンドインスタンス保存装置よりデータの読み出しが低速なサスペンドインスタンス保存装置に移動するセミサスペンドインスタンス保存装置管理部とを備える、ことを特徴とする。
【００１１】
また、本発明は、上述するインスタンス管理システムであって、前記イメージファイルがサスペンドインスタンス保存装置に移動されてから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを受信せずに経過した時間を計測するサスペンドインスタンス管理装置と、前記サスペンドインスタンス管理装置により計測された時間が所定時間以上であることを検出した場合に警告を出力する通知装置と、をさらに備えることを特徴とする。
【００１２】
また、本発明は、上述するインスタンス管理システムであって、前記インスタンス管理装置は、前記インスタンス管理情報記憶装置を参照して得た、各利用者の識別情報に対応するインスタンスのアクティブ状態の累積時間及び一時停止状態の累積時間に基づいて当該利用者の課金金額を算出する課金管理部をさらに備える、ことを特徴とする。
【００１３】
また、本発明は、複数の仮想マシンとして動作する仮想化装置に生成されているインスタンスを管理するアクティブインスタンス管理装置と、一時停止対象のインスタンスの解放後、当該一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出した場合に、当該一時停止対象のインスタンスの再開の要求を出力する処理と、当該一時停止対象のインスタンスの起動に検出した前記イベントを受け渡す処理とを含んだ種火インスタンスを生成する種火インスタンス管理装置と、一時停止前の前記インスタンスの状態を記録したイメージファイルを記憶するセミサスペンドインスタンス保存装置とを備えるインスタンス管理システムの前記アクティブインスタンス管理装置に用いられるコンピュータプログラムであって、前記仮想化装置に生成されている前記インスタンスのうち、所定時間実行されていない前記インスタンスを一時停止対象のインスタンスとして検出する検出ステップと、前記検出ステップにおいて検出した当該一時停止対象のインスタンスの現在の状態を記録したイメージファイルの生成、及び、当該イメージファイルのセミサスペンドインスタンス保存装置への書込みと、前記種火インスタンス管理装置が生成した種火インスタンスの起動とを前記仮想化装置へ指示する種火インスタンス起動ステップと、前記種火インスタンスの起動後に前記一時停止対象のインスタンスの解放を前記仮想化装置へ指示するインスタンス解放指示ステップと、前記種火インスタンスから、前記一時停止対象のインスタンスが使用していた通信アドレスを宛先としたイベントを検出したときに出力される再開の要求を受信した場合に、前記一時停止対象のインスタンスを前記セミサスペンドインスタンス保存装置に記憶されている前記イメージファイルを使用して一時停止前状態の状態から再開させるよう前記仮想化装置に指示する再開指示ステップと、をコンピュータに実行させることを特徴とするコンピュータプログラムである。
【発明の効果】
【００１４】
本発明によれば、使用されていないと判断されたインスタンスを一時的に停止し、この一時的に停止された際の状態を記録して当該インスタンスを解放するとともに、当該インスタンスへのイベントが発生した際には高速に再開させるための種火インスタンスを起動する。よって、この一時停止されたインスタンスについては、しばらくはリソースが不要となるため、その不要となったリソースをリソースプールに戻して、他のインスタンスに割り振ることが可能となる。そして、一時停止した後、さらに時間が経過してもインスタンスが再開されない場合には、一時停止された際の状態を記録したイメージファイルを安価な記憶装置に移動することによって、コストをさらに下げることができる。そして、長時間インスタンスが再開されない場合には警告を出力し、注意を促すことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施の形態によるインスタンス管理システムの概要を説明するための図である。
【図２】同実施の形態による一実施の形態によるインスタンス管理システムの構成を示すブロック図である。
【図３】同実施の形態によるインスタンス管理テーブルのデータ構成例を示す図である。
【図４】同実施の形態によるアクティブインスタンス管理テーブルのデータ構成例を示す図である。
【図５】同実施の形態によるセミサスペンドインスタンス管理テーブルのデータ構成例を示す図である。
【図６】同実施の形態によるサスペンドインスタンス管理テーブルのデータ構成例を示す図である。
【図７】同実施の形態による課金管理テーブルのデータ構成例を示す図である。
【図８】同実施の形態によるスナップショットイメージ構成ファイルの構成例を示す図である。
【図９】同実施の形態によるインスタンス管理システムの処理手順を示す図である。
【図１０】同実施の形態によるインスタンス管理システムにおけるインスタンス作成時のシーケンス図である。
【図１１】同実施の形態によるインスタンス管理システムにおけるアクティブインスタンス非活性検出時のシーケンス図である。
【図１２】同実施の形態によるインスタンス管理システムにおけるセミサスペンド移行時のシーケンス図である。
【図１３】同実施の形態によるインスタンス管理システムにおけるセミサスペンド移行時のシーケンス図である。
【図１４】同実施の形態によるインスタンス管理システムにおけるセミサスペンド状態からの再開時のシーケンス図である。
【図１５】同実施の形態によるインスタンス管理システムにおけるセミサスペンド状態からの再開時のシーケンス図である。
【図１６】同実施の形態によるインスタンス管理システムにおけるセミサスペンドインスタンス非活性検出時のシーケンス図である。
【図１７】同実施の形態によるインスタンス管理システムにおけるサスペンド移行時のシーケンス図である。
【図１８】同実施の形態によるインスタンス管理システムにおける課金処理手順を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施形態の例について説明する。
図１は、本発明の一実施形態によるインスタンス管理システムの概要を説明するための図である。クラウドコンピューティングシステムにおいて、仮想化装置１は、ネットワークを介して接続される利用者の端末等から要求されたインスタンスＩを生成し、実行することによりクラウドコンピュータサービスを提供する。インスタンス管理装置２は、仮想化装置１に対するインスタンス生成が要求されたことを検出し、この生成されたインスタンスＩの状態を管理する。生成直後のインスタンスＩはアクティブ（活性）状態である。アクティブインスタンス管理装置３は、仮想化装置１上で解放し忘れとなっている無駄なリソースの消費がないように、仮想化装置１のＣＰＵ（central processing unit）の消費状態などのリソース監視を行ない、非活性となっている、つまり、所定時間実行されていないインスタンスＩを検出する。
【００１７】
仮想化装置１において非活性になっているインスタンスＩが検出された場合、アクティブインスタンス管理装置３は、当該インスタンスＩをセミサスペンド状態とする。セミサスペンド状態とは、インスタンスＩが再開可能な最小限の情報を、比較的読み出しが早い記憶装置に保持して当該インスタンスＩを一旦終了し、ユーザから当該インスタンスＩへの要求を受信した場合は、保持していた情報を読み出して一旦終了したインスタンスＩを再び生成して元の状態から実行させることができる状態である。
【００１８】
具体的には、仮想化装置１は、インスタンスＩを再開可能な最小限の情報として、セミサスペンド状態とすべきインスタンスのスナップショットＡを生成し、メモリ装置で構成されるセミサスペンドインスタンス保存装置５の記憶領域に書き込むとともにインスタンスを終了し、アクティブ状態のときに当該インスタンスが利用していたリソースを解放する。そして、アクティブインスタンス管理装置３は、種火インスタンス管理装置６によって生成された種火インスタンスＴを、仮想化装置１上で起動させる。この種火インスタンスＴとは、元のインスタンスＩが使用していた通信ポートなどを引き継いで監視し、その通信ポートにアクセスがあった場合には、元のインスタンスＩの再開（レジューム）を指示する機能だけを有するコンパクトなインスタンスである。セミサスペンドインスタンス管理装置４は、元のインスタンスＩのセミサスペンド状態の継続を監視する。
【００１９】
セミサスペンド状態となった後、種火インスタンスＴへのアクセスがなく、セミサスペンドインスタンス管理装置４において一定時間セミサスペンド状態が続いたことが検出された場合、当該インスタンスをサスペンド状態とする。サスペンド状態とは、セミサスペンド状態に移行したときに生成した、インスタンスＩが再開できるだけの最小限の情報を、安価かつ比較的読み出しが遅い記憶装置に保持している状態である。つまり、セミサスペンドインスタンス保存装置５に記憶していたスナップショットＡは、ディスク装置で構成されるサスペンドインスタンス保存装置８の記憶領域に移されてスナップショットＢとして記憶され、サスペンドインスタンス管理装置７は、元のインスタンスＩのサスペンド状態の継続を監視する。
【００２０】
なお、セミサスペンド状態、あるいは、サスペンド状態において、元のインスタンスへのアクセスがあった場合、これを検知した種火インスタンスＴによって、元のインスタンスＩが再開される。一方、サスペンド状態のまま一定時間が経過した場合、通知装置９から、非活性なインスタンスによって課金が行なわれている旨の通知を利用者の端末に送信する。これにより、利用者へ使用していないインスタンスの停止を促し、サスペンド領域の節約、利用者へ注意を喚起する。
利用者へ請求すべき料金は、インスタンスが保持されている時間に応じて決定する従量課金であるが、セミサスペンド状態、サスペンド状態にあった時間分についてはアクティブ状態よりも単価が低くなるよう割引する。
【００２１】
図２は、インスタンス管理システムの構成を示すブロック図である。
同図において、インスタンス管理システムは、仮想化装置１、インスタンス管理装置２、アクティブインスタンス管理装置３、セミサスペンドインスタンス管理装置４、セミサスペンドインスタンス保存装置５、種火インスタンス管理装置６、サスペンドインスタンス管理装置７、サスペンドインスタンス保存装置８、通知装置９、インスタンス管理テーブル記憶装置１１、アクティブインスタンス管理テーブル記憶装置１２、セミサスペンドインスタンス管理テーブル記憶装置１３、サスペンドインスタンス管理テーブル記憶装置１４、及び、課金管理テーブル記憶装置１５を、ＩＰ（Internet Protocol）などを利用したネットワークＮを介して接続してなる。ネットワークＮには、利用者の端末１００も接続される。
【００２２】
インスタンス管理テーブル記憶装置１１は、各インスタンスの状態等を管理するインスタンス管理テーブルを記憶する。アクティブインスタンス管理テーブル記憶装置１２は、アクティブ状態にあるインスタンスを管理するアクティブインスタンス管理テーブルを記憶する。セミサスペンドインスタンス管理テーブル記憶装置１３は、セミサスペンド状態にあるインスタンスを管理するセミサスペンドインスタンス管理テーブルを記憶する。サスペンドインスタンス管理テーブル記憶装置１４は、サスペンド状態にあるインスタンスを管理するサスペンドインスタンス管理テーブルを記憶する。課金管理テーブル記憶装置１５は、課金情報を生成するために使用する課金管理テーブルを記憶する。課金管理テーブルは、それぞれのインスタンスの各状態における累積時間を示す。
【００２３】
仮想化装置１は、例えば、１台の物理コンピュータを仮想的な複数台のコンピュータとしてとして使用可能な仮想マシンにより実現することができる。ここでの仮想マシンは、各ユーザから要求されたクラウドコンピュータサービスを実行するインスタンスに相当する。仮想化装置１は、インスタンスが生成された際、ＣＰＵやメモリなどのリソースや、アドレスを当該インスタンスに割当てる。
【００２４】
インスタンス管理装置２は、例えば、サーバ等により実現することができ、ユーザ要求受付部２１、インスタンス状態管理部２２、及び、課金管理部２３を備える。ユーザ要求受付部２１は、インスタンスの生成や起動の要求を受信する。また、利用者の端末１００から受信したインスタンスへの処理要求に設定されている外部ＩＰアドレスを、仮想化装置１上で実行されている仮想マシンの内部ＩＰアドレスに変換し、インスタンスから利用者の端末１００へ返送される処理結果の内部アドレスを外部アドレスへ変換する。インスタンス状態管理部２２は、各インスタンスの状態を管理し、インスタンス管理テーブルを更新する。課金管理部２３は、各インスタンスの状態に応じて課金管理テーブルを更新するとともに、課金管理テーブルに基づいて課金処理を行なう。
【００２５】
アクティブインスタンス管理装置３は、例えば、サーバ等により実現することができ、アクティブインスタンス管理部３１及び仮想化装置管理部３２を備える。アクティブインスタンス管理部３１は、アクティブ状態のインスタンスを管理し、アクティブインスタンス管理テーブルを更新する。仮想化装置管理部３２は、仮想化装置１に対して仮想マシン、すなわち、インスタンスの生成や起動、解放を指示するとともに、仮想化装置１におけるアクティブ状態のインスタンスが、非活性となっていないかを監視する。
【００２６】
セミサスペンドインスタンス管理装置４は、例えば、サーバ等により実現することができ、セミサスペンドインスタンス管理部４１及びセミサスペンドインスタンス保存装置管理部４２を備える。セミサスペンドインスタンス管理部４１は、セミサスペンド状態のインスタンスを管理し、セミサスペンドインスタンス管理テーブルを更新する。セミサスペンドインスタンス保存装置管理部４２は、セミサスペンドインスタンス保存装置５にスナップショットイメージ構成ファイルを保存すべき領域を決定する。また、サスペンド状態とすべきインスタンスのスナップショットイメージ構成ファイルを、セミサスペンドインスタンス保存装置５からサスペンドインスタンス保存装置８に書き換える。
【００２７】
セミサスペンドインスタンス保存装置５は、メモリ装置で構成され、セミサスペンド状態にあるインスタンスのスナップショットイメージ構成ファイルを記憶する。
種火インスタンス管理装置６は、種火インスタンス管理部６１を備える。種火インスタンス管理部６１は、セミサスペンドされたインスタンスに対応した種火インスタンスを生成する。
【００２８】
サスペンドインスタンス管理装置７は、例えば、サーバ等により実現することができ、サスペンドインスタンス管理部７１及びサスペンドインスタンス保存装置管理部７２を備える。サスペンドインスタンス管理部７１は、サスペンド状態にあるインスタンスを管理し、サスペンドインスタンス管理テーブルを更新する。サスペンドインスタンス保存装置管理部７２は、サスペンドインスタンス保存装置８にスナップショットイメージ構成ファイルを保存すべき領域を決定する。
サスペンドインスタンス保存装置８は、メモリ装置よりも安価かつデータの読書きが低速なディスク装置で構成され、サスペンド状態にあるインスタンスのスナップショットイメージ構成ファイルを記憶する。
【００２９】
なお、インスタンス管理装置２、アクティブインスタンス管理装置３、セミサスペンドインスタンス管理装置４、種火インスタンス管理装置６、サスペンドインスタンス管理装置７、通知装置９、インスタンス管理テーブル記憶装置１１、アクティブインスタンス管理テーブル記憶装置１２、セミサスペンドインスタンス管理テーブル記憶装置１３、サスペンドインスタンス管理テーブル記憶装置１４、課金管理テーブル記憶装置１５のうち任意の装置を同じサーバ等の装置により実現してもよい。
【００３０】
図３は、インスタンス管理テーブル記憶装置１１に記憶されるインスタンス管理テーブルのデータ構成例を示す図である。同図において、インスタンス管理テーブルは、インスタンスを一意に特定する識別子（ＩＤ）であるインスタンスＩＤ、当該インスタンスの状態、当該インスタンスの生成要求元のユーザを一意に特定する識別子であるユーザＩＤ、当該インスタンスのスナップショットイメージ構成ファイルを記憶している記憶領域のＵＲＩ（Universal Resource Identifier）である保存イメージＵＲＩ、仮想化装置１における当該インスタンスへのアクセスアドレスである内部ＩＰアドレス、ユーザへ通知する当該インスタンスへのアクセスアドレスである外部ＩＰアドレスのデータ項目を含む複数のレコードからなる。
【００３１】
図４は、アクティブインスタンス管理テーブル記憶装置１２に記憶されるアクティブインスタンス管理テーブルのデータ構成例を示す図である。同図において、アクティブインスタンス管理テーブルは、アクティブ状態にあるインスタンスを一意に特定する識別子であるアクティブインスタンスＩＤ、当該インスタンスのインスタンスＩＤ、インスタンス状態、内部ＩＰアドレス、及び、当該インスタンスが最後にアクセスされてからの経過時間であるアイドル時間のデータ項目を含む複数のレコードからなる。
【００３２】
図５は、セミサスペンドインスタンス管理テーブル記憶装置１３に記憶されるセミサスペンドインスタンス管理テーブルのデータ構成例を示す図である。同図において、セミサスペンドインスタンス管理テーブルは、セミサスペンド状態にあるインスタンスを一意に特定する識別子であるセミサスペンドインスタンスＩＤ、当該インスタンスのインスタンスＩＤ、当該インスタンスのスナップショットイメージ構成ファイルが保持されるセミサスペンドインスタンス保存装置５の記憶領域を示す保存イメージＵＲＩ、当該インスタンスのインスタンス状態、当該インスタンスがセミサスペンド状態になってからアクセスされずに経過した時間であるセミサスペンド状態持続時間のデータ項目を含む複数のレコードからなる。
【００３３】
図６は、サスペンドインスタンス管理テーブル記憶装置１４に記憶されるサスペンドインスタンス管理テーブルのデータ構成例を示す図である。同図において、サスペンドインスタンス管理テーブルは、サスペンド状態にあるインスタンスを一意に特定する識別子であるサスペンドインスタンスＩＤ、当該インスタンスのインスタンスＩＤ、当該インスタンスのスナップショットイメージ構成ファイルが保持されるサスペンドインスタンス保存装置８の記憶領域を示す保存イメージＵＲＩ、当該インスタンスがサスペンド状態になってからアクセスされずに経過した時間であるサスペンド状態持続時間のデータ項目を含む複数のレコードからなる。
【００３４】
図７は、課金管理テーブル記憶装置１５に記憶される課金管理テーブルのデータ構成例を示す図である。同図において課金管理テーブルは、各ユーザＩＤに対応しており、インスタンスＩＤと、インスタンスＩＤにより特定されるインスタンスのアクティブ状態累積時間、セミサスペンド状態累積時間及びサスペンド状態累積時間とのデータ項目を含む複数のレコードからなる。
【００３５】
図８は、スナップショットイメージ構成ファイルの構成例を示す図である。同図において、スナップショットイメージ構成ファイルは、セミサスペンド状態移行時にインスタンスが使用していたレジスタ値などを構造体で記憶したインスタンス状態、インスタンスのメインメモリイメージのサイズをバイト数で示したインスタンスメモリサイズ、当該メインメモリイメージをバイナリデータで示したインスタンスメモリなどから構成される。
【００３６】
次にインスタンス管理システムの処理について説明する。
図９は、インスタンス管理システムの処理手順を示す図である。
まず、アクティブインスタンスがセミサスペンド化される手順について説明する。
仮想化装置１は、ネットワークを介して接続される利用者の端末１００等から要求を受けてインスタンスを生成し、要求された処理を実行している。アクティブインスタンス管理装置３は、仮想化装置１上で解放し忘れとなっている無駄なリソースを消費することがないように、一定時間利用者から利用されていない、つまり、非活性となっているインスタンスを検出する（ステップＳ１）。例えば、仮想化装置１で実行されている各インスタンスについて、ＣＰＵの消費状態などのリソース監視を行ない、一定時間以上ＣＰＵのアイドル時間が継続していることを検出した場合に、非活性であると判断する。
【００３７】
仮想化装置１において非活性になっているインスタンスを検出したアクティブインスタンス管理装置３は、当該インスタンスのセミサスペンド化依頼をインスタンス管理装置２に送信する（ステップＳ２）。インスタンス管理装置２は、セミサスペンド化の対象となるインスタンスのスナップショットイメージ構成ファイルを保存する領域の確保依頼をセミサスペンドインスタンス管理装置４へ送信するとともに（ステップＳ３）、アクティブインスタンス管理装置３へ当該インスタンスのスナップショット作成依頼を送信する（ステップＳ４）。アクティブインスタンス管理装置３からスナップショット作成依頼を受信した仮想化装置１は、その時点のインスタンスのスナップショットからスナップショットイメージ構成ファイルを生成して、セミサスペンドインスタンス管理装置４が確保したセミサスペンドインスタンス保存装置５の保存領域に保存する。
【００３８】
さらに、インスタンス管理装置２は、種火インスタンスの作成依頼を種火インスタンス管理装置６へ送信するとともに（ステップＳ５）、種火インスタンス管理装置６により生成された種火インスタンスの起動依頼をアクティブインスタンス管理装置３へ送信する（ステップＳ６）。アクティブインスタンス管理装置３は、種火インスタンスの起動依頼を仮想化装置１に送信し（ステップＳ７）、仮想化装置１は種火インスタンスを起動する（ステップＳ８）。続いて、インスタンス管理装置２は、セミサスペンドインスタンスの登録依頼をセミサスペンドインスタンス管理装置４へ送信し（ステップＳ９）、セミサスペンドインスタンス管理装置４は、登録したセミサスペンド状態のインスタンスを監視する。インスタンス管理装置２は、元のインスタンスの解放を指示するアクティブインスタンス解放依頼をアクティブインスタンス管理装置３へ送信する（ステップＳ１０）。仮想化装置１は、アクティブインスタンス管理装置３からアクティブインスタンス解放依頼を受信し、元のインスタンスが利用していたリソースを解放する。上記のように、種火インスタンス生成はインスタンス停止前に行い、インスタンスの停止と同時に種火インスタンスへ制御が渡される。
【００３９】
続いて、セミサスペンド化されたインスタンスが再開する手順について説明する。
インスタンスがセミサスペンド化された後、利用者の端末１００から元のインスタンスと同じアドレスを宛先として処理要求が送信されると、仮想化装置１において起動されている種火インスタンスが当該処理要求の発生を検知する（ステップＳ１１）。この処理要求の検知によって種火インスタンスは、元のインスタンスを起動させるためのインスタンス起動依頼をインスタンス管理装置２へ送信する（ステップＳ１２）。
【００４０】
インスタンス管理装置２は、受信したアクティブインスタンス起動依頼をアクティブインスタンス管理装置３へ送信し（ステップＳ１３）、アクティブインスタンス管理装置３はスナップショットイメージ構成ファイルの保存場所を仮想化装置１に通知して、元のインスタンスを起動させる（ステップＳ１４）。これにより、仮想化装置１は、セミサスペンド状態に移行したときの状態から元のインスタンスを再開させる（ステップＳ１５）。インスタンス管理装置２は、セミサスペンドインスタンス管理装置４へセミサスペンドインスタンスの削除を指示し、再開されたインスタンスを監視対象から除外する（ステップＳ１６）。再開されたインスタンスは再びアクティブインスタンス管理装置３による監視対象に移行する。
【００４１】
次に、セミサスペンド状態のインスタンスをサスペンド化させる手順について説明する。
インスタンスがセミサスペンド化された後、一定時間セミサスペンド状態が続いた、つまり、一定時間種火インスタンスへのアクセスがないことをセミサスペンドインスタンス管理装置４が検出すると（ステップＳ２１）、当該インスタンスのサスペンド化依頼をインスタンス管理装置２へ送信する（ステップＳ２２）。インスタンス管理装置２は、サスペンド化の対象となるインスタンスのスナップショットイメージ構成ファイルを保存するための領域の確保依頼をサスペンドインスタンス管理装置７へ送信するとともに（ステップＳ２３）、インスタンスのサスペンド化依頼をセミサスペンドインスタンス管理装置４へ送信する（ステップＳ２４）。セミサスペンドインスタンス管理装置４は、セミサスペンドインスタンス保存装置５に記憶していたスナップショットイメージ構成ファイルを、サスペンドインスタンス管理装置７が確保したサスペンドインスタンス保存装置８の保存領域に移動させる。
【００４２】
なお、サスペンド状態において種火インスタンスが元のインスタンスにアクセスがあったことを検出した場合、ステップＳ１１〜Ｓ１４と同様の手順により、セミサスペンド状態に移行したときの状態からインスタンスを再開させる。そして、インスタンス管理装置２は、サスペンドインスタンス管理装置７へサスペンドインスタンスの削除を指示し、再開されたインスタンスを監視対象から除外する。再開されたインスタンスは再びアクティブインスタンス管理装置３による監視対象に移行する。
【００４３】
続いて、インスタンス管理システムの詳細な処理について説明する。
図１０は、インスタンス作成時のインスタンス管理システムのシーケンス図である。
まず、インスタンス管理装置２のユーザ要求受付部２１が、利用者の端末１００から、起動イメージＵＲＩ及びユーザＩＤが設定されたインスタンス生成要求を受信する（ステップＳ１０５）。起動イメージＵＲＩとは、クラウドコンピュータサービスを提供する仮想マシンを実行させるためのマシンイメージがストレージ内どこに記憶されているかの記憶場所を指定するものである。ユーザ要求受付部２１は、利用者の端末１００から受信したインスタンス生成要求をインスタンス状態管理部２２へ出力する（ステップＳ１１０）。インスタンス状態管理部２２は、ユーザ要求受付部２１からインスタンス生成要求を受信すると、新たなインスタンスＩＤを生成し（ステップＳ１１５）、インスタンス管理テーブルに、生成したインスタンスＩＤと、受信したインスタンス生成要求から取得したユーザＩＤとを設定したレコードを追加する（ステップＳ１２０）。インスタンス状態管理部２２は、生成したインスタンスＩＤと、インスタンス生成要求から取得した起動イメージＵＲＩとを設定したアクティブインスタンス生成要求をアクティブインスタンス管理装置３へ送信する（ステップＳ１２５）。
【００４４】
アクティブインスタンス管理装置３のアクティブインスタンス管理部３１は、インスタンス管理装置２からアクティブインスタンス生成要求を受信すると、新たなアクティブインスタンスＩＤを生成し（ステップＳ１３０）、アクティブインスタンス管理テーブルに、生成したアクティブインスタンスＩＤと、アクティブインスタンス生成要求から取得したインスタンスＩＤとを設定したレコードを追加する（ステップＳ１３５）。アクティブインスタンス管理部３１は、インスタンス管理装置２から受信したアクティブインスタンス生成要求を仮想化装置管理部３２へ出力し（ステップＳ１４０）、仮想化装置管理部３２は、アクティブインスタンス生成要求から起動イメージＵＲＩを取得し、取得した起動イメージＵＲＩを設定した仮想マシン起動依頼を仮想化装置１へ送信する（ステップＳ１４５）。
【００４５】
仮想化装置１は、仮想マシン起動依頼に設定されている起動イメージＵＲＩにより特定されるマシンイメージを実行して仮想マシン、つまり、インスタンスを生成すると、当該インスタンスの識別子を設定した仮想マシン起動完了通知をアクティブインスタンス管理装置３へ返送する（ステップＳ１５０）。ここでは、識別子として、インスタンスが使用する内部ＩＰアドレスが用いられる。識別子として内部ＩＰアドレス自体ではなく、内部ＩＰアドレスを一部に含んだ情報を用いることもできる。
【００４６】
アクティブインスタンス管理装置３の仮想化装置管理部３２は、受信した仮想マシン起動完了通知から識別子を取得し、この取得した識別子を設定したアクティブインスタンス生成完了通知をアクティブインスタンス管理部３１に返送する（ステップＳ１５５）。アクティブインスタンス管理部３１は、アクティブインスタンス生成完了通知を受信すると、ステップＳ１３５において追加したレコードのインスタンス状態にアクティブを設定するとともに、当該レコードにアクティブインスタンス生成完了通知から取得した識別子である内部ＩＰアドレスを設定する（ステップＳ１６０）。アクティブインスタンス管理部３１は、仮想化装置管理部３２から受信したアクティブインスタンス生成完了通知をインスタンス管理装置２へ送信する（ステップＳ１６５）。
【００４７】
インスタンス管理装置２のインスタンス状態管理部２２は、ステップＳ１２０において追加したインスタンス管理テーブルのレコードに、アクティブを示すインスタンス状態を設定するとともに、当該レコードにアクティブインスタンス生成完了通知から取得した識別子である内部ＩＰアドレスを設定する（ステップＳ１７０）。インスタンス状態管理部２２は、アクティブインスタンス生成完了通知から識別子を取得し、取得した識別子を設定したインスタンス生成完了通知をユーザ要求受付部２１へ返送する（ステップＳ１７５）。ユーザ要求受付部２１は、外部ＩＰアドレスを割付けると、この割付けた外部ＩＰアドレスと、インスタンス生成完了通知に設定されている内部アドレスとを対応付けて自身の備える記憶手段に記憶する（ステップＳ１８０）。インスタンス状態管理部２２は、ユーザ要求受付部２１が割付けた外部ＩＰアドレスを、ステップＳ１７０において更新したインスタンス管理テーブルのレコードに追加する。ユーザ要求受付部２１は、割付けた外部ＩＰアドレスを識別子として設定したインスタンス生成完了通知を利用者の端末１００へ返送する（ステップＳ１８５）。ここでは、識別子として外部ＩＰアドレスを用いているが、外部ＩＰアドレスを一部に含んだ情報を用いることもできる。
【００４８】
利用者は、自身の端末１００により通知された識別子により仮想化装置１と相互に通信し、当該仮想化装置１において起動されたインスタンス（仮想マシン）の提供するクラウドコンピュータサービスを享受する。すなわち、利用者の端末１００からの処理要求などのイベントを受信すると、インスタンスは、当該イベントに従ってクラウドコンピュータサービスを実行し、その実行結果を利用者の端末１００に返送する。なお、利用者の端末１００から送信される処理要求に設定された識別子としての外部ＩＰアドレスは、インスタンス管理装置２のユーザ要求受付部２１によって内部ＩＰアドレスに変換され、仮想化装置１上で実行されているインスタンスに到達する。また、当該インスタンスの実行結果に設定される識別子としての内部ＩＰアドレスは、インスタンス管理装置２のユーザ要求受付部２１によって外部ＩＰアドレスに変換され、利用者の端末１００へ返送される。
【００４９】
図１１は、アクティブインスタンス非活性検出時のインスタンス管理システムのシーケンス図である。
アクティブインスタンス管理装置３の仮想化装置管理部３２は、アクティブインスタンス管理テーブル記憶装置１２内のアクティブインスタンス管理テーブルを参照してインスタンス状態がアクティブであるインスタンスの内部ＩＰアドレスを特定し、この特定した内部ＩＰアドレスにより特定されるインスタンスそれぞれについて、定期的に、仮想化装置１におけるリソース消費状態を収集する（ステップＳ２０５）。仮想化装置管理部３２は、収集した各インスタンスのリソース消費状態に基づいて、アクティブインスタンス管理テーブル内のアイドル時間を更新する。
【００５０】
あるいは、アクティブインスタンス管理装置３が、インスタンス状態がアクティブであるアクティブインスタンス管理テーブル内の各レコードのアイドル時間を１秒毎などの所定時間毎に更新していき、インスタンスへのアクセスが検出されたときに、仮想化装置１またはインスタンス管理装置２から通知を受け、当該インスタンスに対応したレコードのアイドル時間を０クリアするようにしてもよい。
【００５１】
仮想化装置管理部３２は、アクティブインスタンス管理テーブルに、インスタンス状態がアクティブであり、かつ、アイドル時間に例えば１時間以上などの所定の閾値以上の時間が設定されているレコードがあるかの検索を行う。インスタンス状態がアクティブであり、かつ、アイドル時間に所定の閾値以上の時間が設定されているレコードが検出された場合、仮想化装置管理部３２は、当該レコードに対応するインスタンスをセミサスペンド状態に移行させるべきであると判断する（ステップＳ２１０）。
【００５２】
仮想化装置管理部３２は、検出されたレコードから読み出したアクティブインスタンスＩＤを設定したセミサスペンド化依頼をアクティブインスタンス管理部３１へ出力する（ステップＳ２１５）。アクティブインスタンス管理部３１は、受信したセミサスペンド化依頼からアクティブインスタンスＩＤを取得すると、取得したアクティブインスタンスＩＤにより特定されるアクティブインスタンス管理テーブル内のレコードにセミサスペンド化中を設定してインスタンス状態を更新するとともに、当該レコードからインスタンスＩＤを読み出す（ステップＳ２２０）。アクティブインスタンス管理部３１は、読み出したインスタンスＩＤを設定したセミサスペンド化依頼をインスタンス管理装置２へ出力する（ステップＳ２２５）。
【００５３】
インスタンス管理装置２のインスタンス状態管理部２２は、受信したセミサスペンド化依頼からインスタンスＩＤを取得すると、取得したインスタンスＩＤにより特定されるインスタンス管理テーブル内のレコードにセミサスペンド化中を設定し、インスタンス状態を更新する（ステップＳ２３０）。ユーザ要求受付部２１は、セミサスペンド化依頼受付完了通知をアクティブインスタンス管理装置３へ送信し（ステップＳ２３５）、アクティブインスタンス管理装置３のアクティブインスタンス管理部３１は、インスタンス管理装置２から受信したセミサスペンド化依頼完了通知を仮想化装置管理部３２へ出力する（ステップＳ２４０）。
【００５４】
図１２及び図１３は、図１１に続いて実行される、セミサスペンド移行時のインスタンス管理システムのシーケンス図である。
図１２において、インスタンス管理装置２は、図１１のステップＳ２３０において取得したインスタンスＩＤを保存領域確保依頼に設定し、セミサスペンドインスタンス管理装置４へ送信する（ステップＳ３０５）。セミサスペンドインスタンス管理装置４のセミサスペンドインスタンス管理部４１は、インスタンス管理装置２から受信した保存領域確保依頼をセミサスペンドインスタンス保存装置管理部４２へ出力し、セミサスペンドインスタンス保存装置管理部４２は、現在使用されていないセミサスペンドインスタンス保存装置５の保存領域を割当てる（ステップＳ３１０）。セミサスペンドインスタンス保存装置管理部４２は、割当てた保存領域を特定するＵＲＩである保存イメージＵＲＩを設定した保存領域確保通知をセミサスペンドインスタンス管理部４１に返送する（ステップＳ３１５）。
【００５５】
セミサスペンドインスタンス管理部４１は、セミサスペンドインスタンス管理テーブル記憶装置１３に記憶されているセミサスペンドインスタンス管理テーブルに新たなレコードを追加し、当該レコードに保存領域確保依頼から取得したインスタンスＩＤと、保存領域確保通知から取得した保存イメージＵＲＩを設定する（ステップＳ３２０）。セミサスペンドインスタンス管理部４１は、セミサスペンドインスタンス保存装置管理部４２から受信した保存領域確保通知をインスタンス管理装置２へ送信する（ステップＳ３２５）。
【００５６】
インスタンス管理装置２のインスタンス状態管理部２２は、ステップＳ３０５において送信したインスタンスＩＤにより特定されるアクティブインスタンス管理テーブル内のレコードの保存イメージＵＲＩに、保存領域確保通知から取得した保存イメージＵＲＩを書き込む（ステップＳ３３０）。インスタンス状態管理部２２は、インスタンスＩＤ及び保存イメージＵＲＩを設定したスナップショット作成依頼をアクティブインスタンス管理装置３へ送信する（ステップＳ３３５）。
【００５７】
アクティブインスタンス管理装置３のアクティブインスタンス管理部３１は、スナップショット作成依頼からインスタンスＩＤを取得し、当該インスタンスＩＤに対応した内部ＩＰアドレスをアクティブインスタンス管理テーブルから読み出す。アクティブインスタンス管理部３１は、インスタンス管理装置２から受信したスナップショット作成依頼のインスタンスＩＤを、読み出した内部ＩＰアドレスを示す識別子に置き換えて仮想化装置管理部３２へ出力する（ステップＳ３４０）。仮想化装置管理部３２は、仮想化装置１へスナップショット作成依頼を送信すると（ステップＳ３４５）、仮想化装置１は、スナップショット作成依頼に設定されている識別子で特定されるインスタンスについて、その時点のスナップショットを生成し、スナップショットイメージ構成ファイルを作成する（ステップＳ３５０）。仮想化装置１は、スナップショット作成依頼から保存イメージＵＲＩを取得すると、当該保存イメージＵＲＩにより特定されるセミサスペンドインスタンス保存装置５の記憶領域に、作成したスナップショットイメージ構成ファイルを書き込み、スナップショット作成完了通知をアクティブインスタンス管理装置３へ返送する（ステップＳ３５５）。なお、仮想化装置１が作成したスナップショットイメージ構成ファイルをアクティブインスタンス管理装置３へ送信し、アクティブインスタンス管理装置３においてセミサスペンドインスタンス保存装置５へ書き込むことでもよい。
【００５８】
アクティブインスタンス管理装置３の仮想化装置管理部３２は、スナップショット作成完了通知をアクティブインスタンス管理部３１に返送する（ステップＳ３６０）。アクティブインスタンス管理部３１は仮想化装置管理部３２から受信したスナップショット作成完了通知をインスタンス管理装置２へ出力する（ステップＳ３６５）。
【００５９】
インスタンス管理装置２のインスタンス状態管理部２２は、アクティブインスタンス管理装置３からスナップショット作成完了通知を受信すると、ステップＳ３０５において送信したインスタンスＩＤを設定した種火インスタンス作成依頼を種火インスタンス管理装置６へ送信する（ステップＳ３７０）。種火インスタンス管理装置６の種火インスタンス管理部６１は、種火インスタンス作成依頼を受信すると、種火インスタンスのオブジェクトである種火インスタンスイメージを生成して記憶する（ステップＳ３７５）。種火インスタンス管理部６１は、種火インスタンスイメージを記憶した領域のＵＲＩである種火インスタンスイメージＵＲＩを設定した種火インスタンス作成完了通知をインスタンス管理装置２へ返送する（ステップＳ３８０）。
【００６０】
図１３において、インスタンス管理装置２のインスタンス状態管理部２２は、種火インスタンス管理装置６から受信した種火インスタンス作成完了通知から種火インスタンスイメージＵＲＩを取得し、取得した種火インスタンスイメージＵＲＩと、インスタンスＩＤとを設定した種火インスタンス起動依頼をアクティブインスタンス管理装置３へ送信する（ステップＳ４０５）。アクティブインスタンス管理装置３のアクティブインスタンス管理部３１は、インスタンス管理装置２から受信した仮想マシン起動依頼を仮想化装置管理部３２へ出力し（ステップＳ４１０）、仮想化装置管理部３２は当該仮想マシン起動依頼を仮想化装置１へ送信する（ステップＳ４１５）。
【００６１】
仮想化装置１は、受信した仮想マシン起動依頼に設定されている種火インスタンスイメージＵＲＩで特定される種火インスタンスを起動する。仮想化装置１は、当該種火インスタンスにアクセスする際に使用する識別子を設定した仮想マシン起動完了通知をアクティブインスタンス管理装置３へ返送する（ステップＳ４２０）。この識別子には、内部ＩＰアドレスが用いられ、元のインスタンスとは異なる値となる。
【００６２】
アクティブインスタンス管理装置３の仮想化装置管理部３２は、受信した仮想マシン起動完了通知をアクティブインスタンス管理部３１に出力し（ステップＳ４２５）、アクティブインスタンス管理部３１は、仮想マシン起動完了通知から取得した識別子を設定した種火インスタンス起動完了通知をインスタンス管理装置２へ送信する（ステップＳ４３０）。
【００６３】
インスタンス管理装置２のインスタンス状態管理部２２は、ステップＳ４０５において通知したインスタンスＩＤにより特定されるインスタンス管理テーブル内のレコードに、セミサスペンドを設定したインスタンス状態と書き込むとともに、種火インスタンス起動完了通知から取得した識別子である内部ＩＰアドレスを設定する（ステップＳ４３５）。インスタンス状態管理部２２は、上記のインスタンスＩＤを設定したセミサスペンド化登録依頼をセミサスペンドインスタンス管理装置４に送信する（ステップＳ４４０）。セミサスペンドインスタンス管理装置４のセミサスペンドインスタンス管理部４１は、受信したセミサスペンド化登録依頼からインスタンスＩＤを取得し、当該インスタンスＩＤにより特定されるセミサスペンドインスタンス管理テーブル内のレコードに、セミサスペンドを設定したインスタンス状態を書き込む（ステップＳ４４５）。
【００６４】
インスタンス管理装置２のインスタンス状態管理部２２は、さらに、上記のインスタンスＩＤを設定したアクティブインスタンス解放要求をアクティブインスタンス管理装置３へ送信する（ステップＳ４５０）。アクティブインスタンス管理装置３のアクティブインスタンス管理部３１は、受信したアクティブインスタンス解放要求からインスタンスＩＤを取得し、取得したインスタンスＩＤに対応した内部ＩＰアドレスをアクティブインスタンス管理テーブルから読み出す。そして、読み出した内部ＩＰアドレスを識別子として設定した仮想マシン解放要求を仮想化装置管理部３２へ出力する（ステップＳ４５５）。仮想化装置管理部３２は、受信した仮想マシン解放要求を仮想化装置１へ送信する（ステップＳ４６０）。仮想化装置１は、仮想マシン解放要求に設定されている識別子により特定されるインスタンスを解放する。これにより、仮想化装置１は、当該インスタンスが利用している物理コンピュータの領域、つまり、ＣＰＵ、メモリなどの各種リソースを解放する。
【００６５】
次に、図１２のステップＳ３８０における種火インスタンスの生成について説明する。種火インスタンスとは、
（ａ）利用者の端末１００からイベント、例えば、コマンド等の処理要求を受信した場合、一時的にそのイベントを保留（キューイング）しておき、
（ｂ）サスペンドされている本来のインスタンスを再開するための信号を発生させ、
（ｃ）本来のインスタンスの再開が完了した後、この本来のインスタンスに、保留していたイベントを受け渡すとともに、制御を渡し、
（ｄ）当該種火インスタンスのデリート（解放）処理を実行する、
という処理を実行するインスタンスである。
このインスタンス自体は小型でＣＰＵ消費も最小限であり、リソース消費が少ないことを特長とする。
【００６６】
そこで、種火インスタンス管理装置６の種火インスタンス管理部６１は、図１２のステップＳ３７０においてインスタンス管理装置２から受信した仮想マシン起動依頼に設定されているインスタンスＩＤの情報に基づいて仮想マシンイメージを作成する。この仮想マシンイメージには、以下のインタフェース及び保存領域の情報と、制御プログラムとが含まれる。すなわち、
（１）インスタンスＩＤにより特定されるインスタンスが使用しているネットワークインタフェース、
（２）（１）のネットワークインタフェースへ送信されたイベントを保持するキュー、
（３）最初のイベント、つまり、利用者の端末１００から受信したイベントをトリガーとして、図１２のステップＳ３７０において受信したインスタンスＩＤを設定したインスタンス起動をインスタンス管理装置２に依頼する処理（図１４のステップＳ５０５のインスタンス起動要求）、
（４）（３）の依頼によってスナップショットが起動された、つまり、元のインスタンスが再開した後、（２）においてネットワークインタフェースにキューイングしておいたイベントを起動されたインスタンスに渡す処理、
（５）当該種火インスタンスのデリート処理を実行して自らは消滅する処理、
が仮想マシンイメージに含まれる。
種火インスタンス管理部６１は、作成した仮想マシンイメージを自身が備える記憶手段の保存領域に格納し、図１２のステップＳ３８０において、その保存領域のＵＲＩである種火インスタンスイメージＵＲＩをインスタンス管理装置２へ通知する。
【００６７】
なお、（１）において設定されるネットワークインタフェースとは、セミサスペンド化の対象となった元のインスタンスが使用していたポート群である。このポート群は、例えば、種火インスタンス管理装置６の種火インスタンス管理部６１が、仮想化装置１に、セミサスペンド化の対象となったインスタンスの識別子を送信して問い合わせることによって取得するか、仮想化装置１のポートスキャンを行い、セミサスペンド化の対象となったインスタンスの内部ＩＰアドレスに対応した使用ポートを取得する。
例えば、元のインスタンスが、内部ＩＰアドレスＡのポートａ、ポートｂ及びポートｃを使用していた場合、ネットワークインタフェースには、ポートａ、ポートｂ及びポートｃが設定される。これにより、生成された種火インスタンスに内部アドレスＢが使用される場合、種火インスタンスは、内部ＩＰアドレスＢのポートａ、ポートｂ及びポートｃをリスンし、イベントの発生を検出する。あるいは、種火インスタンスは、元のインスタンスが使用していたポートに関わらず、内部ＩＰアドレスＢの全てのポートをリスンするようにしてもよい。この場合、ネットワークインタフェースには、内部ＩＰアドレスＢに対応したネットワークデバイスからのselect（Linux（登録商標）の場合）など、複数のソケット（ＩＰアドレス＋ポート番号）に対してのメッセージ待ちを可能にするためのシステムコールが記述される。
【００６８】
図１４及び図１５は、セミサスペンド状態からの再開時のインスタンス管理システムのシーケンス図である。
図１４において、利用者の端末１００から、図１０のステップＳ１８５において送信したインスタンス生成完了通知に設定されている識別子としての外部ＩＰアドレスをアクセス先として設定した処理要求（イベント）が送信されると、インスタンス管理装置２のユーザ要求受付部２１は、インスタンス管理テーブルから当該要求に設定されている外部ＩＰアドレスに対応した内部ＩＰアドレスを読み出す。ユーザ要求受付部２１は、利用者の端末１００から受信した要求に設定されている外部ＩＰアドレスを、読み出した内部ＩＰアドレスに書き換え、仮想化装置１へ送信する。これにより、内部ＩＰアドレスにより特定される種火インスタンスへ当該イベントが送信される。種火インスタンスは、イベントが検出対象のポート番号を使用している場合、当該イベントをキューイングする。なお、検出対象のポート番号を使用したイベントを複数受信した場合、インスタンスが再開されるまでそれら受信した全てのイベントをキューに保持しておく。仮想化装置１において実行されている種火インスタンスは、元のインスタンスのインスタンスＩＤを設定したインスタンス起動要求をインスタンス管理装置２へ送信する（ステップＳ５０５）。
【００６９】
インスタンス管理装置２のユーザ要求受付部２１は、種火インスタンスから受信したインスタンス起動要求をインスタンス状態管理部２２へ出力する（ステップＳ５１０）。インスタンス状態管理部２２は、受信したインスタンス起動要求からインスタンスＩＤを取得し、当該インスタンスＩＤに対応したインスタンス管理テーブル内のレコードを特定すると、特定したレコードから保存イメージＵＲＩを読み出す（ステップＳ５１５）。インスタンス状態管理部２２は、インスタンス起動要求から取得したインスタンスＩＤと、インスタンス管理テーブルから読み出した保存イメージＵＲＩとを設定したアクセスインスタンス起動要求をアクティブインスタンス管理装置３に送信する（ステップＳ５２０）。
【００７０】
アクティブインスタンス管理装置３のアクティブインスタンス管理部３１は、インスタンス管理装置２からアクティブインスタンス起動要求を受信すると、新たなアクティブインスタンスＩＤを生成し（ステップＳ５２５）、アクティブインスタンス管理テーブルに、生成したアクティブインスタンスＩＤと、アクティブインスタンス起動要求から取得したインスタンスＩＤとを設定したレコードを追加する（ステップＳ５３０）。アクティブインスタンス管理部３１は、アクティブインスタンス起動要求を仮想化装置管理部３２へ出力し（ステップＳ５３５）、仮想化装置管理部３２は、アクティブインスタンス起動要求から保存イメージＵＲＩを取得し、取得した保存イメージＵＲＩを設定した仮想マシン起動依頼を仮想化装置１へ送信する（ステップＳ５４０）。
【００７１】
仮想化装置１は、仮想マシン起動依頼に設定されている保存イメージＵＲＩで特定されるインスタンスを生成する。これにより、セミサスペンド前のインスタンス状態やインスタンスメモリイメージがそのまま引き継がれたインスタンスが生成される。仮想化装置１は、再開されたインスタンスに使用する識別子、つまり、元のインスタンスが使用していた内部ＩＰアドレスを設定した仮想マシン起動完了通知をアクティブインスタンス管理装置３へ返送する（ステップＳ５４５）。
【００７２】
アクティブインスタンス管理装置３の仮想化装置管理部３２は、受信した仮想マシン起動完了通知から識別子を取得し、この取得した識別子を設定したアクティブインスタンス生成完了通知をアクティブインスタンス管理部３１に返送する（ステップＳ５５０）。アクティブインスタンス管理部３１は、アクティブインスタンス生成完了通知を受信すると、ステップＳ５３０において追加したアクティブインスタンス管理テーブルのレコードのインスタンス状態にアクティブを設定するとともに、当該レコードに仮想マシン起動完了通知から取得した識別子である内部ＩＰアドレスを設定する（ステップＳ５５５）。アクティブインスタンス管理部３１は、仮想化装置管理部３２から受信したアクティブインスタンス起動完了通知をインスタンス管理装置２へ送信する（ステップＳ５６０）。
【００７３】
図１５において、アクティブインスタンス管理装置３からアクティブインスタンス起動完了通知を受信したインスタンス管理装置２のインスタンス状態管理部２２は、図１４のステップＳ５１５において特定したインスタンス管理テーブルのレコードに、アクティブを示すインスタンス状態を設定するとともに、当該レコードにアクティブインスタンス起動完了通知から取得した識別子である内部ＩＰアドレスを設定する（ステップＳ６０５）。インスタンス状態管理部２２は、アクティブインスタンス生成完了通知から識別子を取得し、取得した識別子を設定したインスタンス起動完了通知をユーザ要求受付部２１へ返送する（ステップＳ６１０）。ユーザ要求受付部２１は、外部ＩＰアドレスと、インスタンス生成完了通知に設定されている内部ＩＰアドレスとを対応付けて自身の備える記憶手段に記憶する（ステップＳ６１５）。ユーザ要求受付部２１は、インスタンス起動完了通知を種火インスタンスへ返送する（ステップＳ６２０）。
【００７４】
仮想化装置１で実行されている種火インスタンスは、インスタンス管理装置２から受信したインスタンス起動完了通知を受信して、元のインスタンスが再開されたことを認識すると、キューイングしていたイベントの宛先の内部ＩＰアドレスを再開されたインスタンスの内部ＩＰアドレスに書き換えて送信し、その後自らは処理を終了して消滅する。利用者は、再開されたインスタンスによって、クラウドコンピュータサービスを享受する。
【００７５】
また、インスタンス管理装置２のインスタンス状態管理部２２は、セミサスペンドインスタンス削除要求に、インスタンス起動要求から取得したインスタンスＩＤを設定してセミサスペンドインスタンス管理装置４へ送信する（ステップＳ６２５）。セミサスペンドインスタンス管理装置４のセミサスペンドインスタンス管理部４１は、受信したセミサスペンドインスタンス削除要求からインスタンスＩＤを取得し、取得したインスタンスＩＤにより特定されるセミサスペンドインスタンス管理テーブルのレコードを削除する（ステップＳ６３０）。
【００７６】
図１６は、セミサスペンドインスタンス非活性検出時のインスタンス管理システムのシーケンス図である。
セミサスペンドインスタンス管理テーブル内のレコードは、元のインスタンスがレジュームされるか、サスペンド状態に移行するまで削除されないことから、当該レコードに登録されているインスタンスはセミサスペンド状態が継続していることを示す。そこで、セミサスペンドインスタンス管理装置４のセミサスペンドインスタンス管理部４１は、インスタンス状態がセミサスペンドであるセミサスペンドインスタンス管理テーブル内のレコードのセミサスペンド状態持続時間を、例えば１秒毎など、所定の時間毎に更新する。更新後、セミサスペンドインスタンス管理部４１は、インスタンス状態にセミサスペンドが設定されており、かつ、セミサスペンド状態持続時間に、例えば３時間以上などの所定の閾値以上の時間が設定されているレコードがあるかの検索を行う。インスタンス状態がセミサスペンドであり、かつ、セミサスペンド状態持続時間に所定の閾値以上の時間が設定されているレコードが検出された場合、セミサスペンドインスタンス管理部４１は、当該レコードに対応するインスタンスをサスペンド状態に移行させるべきであると判断する（ステップＳ７０５）。
【００７７】
セミサスペンドインスタンス管理部４１は、ステップＳ７０５において検出されたセミサスペンドインスタンス管理テーブルのレコードに、サスペンド化中状態を示すインスタンス状態を書き込む（ステップＳ７１０）。セミサスペンドインスタンス管理部４１は、当該レコードからインスタンスＩＤを読み出し、読み出したインスタンスＩＤを設定したサスペンド化依頼をインスタンス管理装置２へ送信する（ステップＳ７１５）。
【００７８】
インスタンス管理装置２のインスタンス状態管理部２２は、受信したサスペンド化依頼からインスタンスＩＤを取得すると、取得したインスタンスＩＤにより特定されるインスタンス管理テーブル内のレコードにサスペンド化中状態を設定し、インスタンス状態を更新する（ステップＳ７２０）。インスタンス状態管理部２２は、サスペンド化依頼受付完了通知をセミサスペンドインスタンス管理装置４へ送信する（ステップＳ７２５）。
【００７９】
図１７は、図１６に続いて実行される、サスペンド移行時のインスタンス管理システムのシーケンス図である。
インスタンス管理装置２は、図１６のステップＳ７１５において取得したインスタンスＩＤを保存領域確保依頼に設定し、サスペンドインスタンス管理装置７へ送信する（ステップＳ８０５）。サスペンドインスタンス管理装置７のサスペンドインスタンス管理部７１は、インスタンス管理装置２から受信した保存領域確保依頼をサスペンドインスタンス保存装置管理部７２へ出力し、サスペンドインスタンス保存装置管理部７２は、現在使用されていないサスペンドインスタンス保存装置８の保存領域を割当てる（ステップＳ８１０）。サスペンドインスタンス保存装置管理部７２は、割当てた保存領域を特定するＵＲＩである保存イメージＵＲＩを設定した保存領域確保通知をサスペンドインスタンス管理部７１に返送する（ステップＳ８１５）。
【００８０】
サスペンドインスタンス管理部７１は、サスペンドインスタンス管理テーブル記憶装置１４に記憶されているサスペンドインスタンス管理テーブルに新たなレコードを追加し、当該レコードに保存領域確保依頼から取得したインスタンスＩＤと、保存領域確保通知から取得した保存イメージＵＲＩを設定する（ステップＳ８２０）。サスペンドインスタンス管理部７１は、サスペンドインスタンス保存装置管理部７２から受信した保存領域確保通知をインスタンス管理装置２へ返送する（ステップＳ８２５）。
【００８１】
インスタンス管理装置２のインスタンス状態管理部２２は、ステップＳ８０５において送信したインスタンスＩＤにより特定されるセミサスペンドインスタンス管理テーブル内のレコードにサスペンドを設定したインスタンス状態と書き込むとともに、受信した保存領域確保通知から取得した保存イメージＵＲＩを書き込む（ステップＳ８３０）。インスタンス状態管理部２２は、ステップＳ８０５において送信したインスタンスＩＤと、保存領域確保通知から取得した保存イメージＵＲＩを設定したサスペンド化依頼をセミサスペンドインスタンス管理装置４へ送信する（ステップＳ８３５）。
【００８２】
セミサスペンドインスタンス管理装置４は、インスタンス管理装置２から受信したサスペンド化依頼をセミサスペンドインスタンス保存装置管理部４２へ送信する（ステップＳ８４０）。セミサスペンドインスタンス保存装置管理部４２は、サスペンド化依頼からインスタンスＩＤを取得し、当該インスタンスＩＤにより特定されるセミサスペンドインスタンス管理テーブルのレコードから保存イメージＵＲＩを読み出す。セミサスペンドインスタンス保存装置管理部４２は、セミサスペンドインスタンス管理テーブルのレコードから読み出した保存イメージＵＲＩにより特定されるセミサスペンドインスタンス保存装置５の記憶領域よりスナップショットイメージ構成ファイルを読み出す。セミサスペンドインスタンス保存装置管理部４２は、サスペンド化依頼に設定されている保存イメージＵＲＩにより特定されるサスペンドインスタンス保存装置８の記憶領域に、セミサスペンドインスタンス保存装置５から読み出したスナップショットイメージ構成ファイルを書き込む（ステップＳ８４５）。セミサスペンドインスタンス保存装置管理部４２は、セミサスペンドインスタンス保存装置５の記憶領域から、スナップショットイメージ構成ファイルを削除すると、セミサスペンドインスタンス管理部４１へサスペンド化依頼応答を返送する（ステップＳ８５０）。
【００８３】
セミサスペンドインスタンス管理部４１は、ステップＳ８３５において受信したサスペンド化依頼から取得したインスタンスＩＤにより特定されるセミサスペンドインスタンス管理テーブルのレコードを削除し（ステップＳ８５５）、インスタンス管理装置２へサスペンド化依頼応答を返送する（ステップＳ８６０）。
インスタンス管理装置２のインスタンス状態管理部２２は、セミサスペンドインスタンス管理装置４からサスペンド化依頼応答を受信すると、ステップＳ８０５において送信したインスタンスＩＤを設定したサスペンド化登録依頼をサスペンドインスタンス管理装置７へ送信する（ステップＳ８６５）。サスペンドインスタンス管理装置７のサスペンドインスタンス管理部７１は、受信したサスペンド化登録依頼からインスタンスＩＤを取得すると、この取得したインスタンスＩＤに対応したサスペンドインスタンス管理テーブル内のレコードに、サスペンドを示すインスタンス状態を書き込む（ステップＳ８７０）。
【００８４】
サスペンドインスタンス管理装置７のサスペンドインスタンス管理部７１は、サスペンドインスタンス管理テーブル内のレコードのセミサスペンド状態持続時間を、例えば１秒毎など、所定の時間毎に更新する。通知装置９は、定期的にサスペンドインスタンス管理テーブルに、所定の閾値以上の時間が設定されているレコードがあるかの検索を行なう。そして、サスペンド状態持続時間に所定の閾値以上の時間が設定されているレコードが検出された場合、当該レコードに対応するインスタンスＩＤを読み出す。ユーザ通知装置は、読み出したインスタンスＩＤに対応するユーザＩＤをインスタンス管理テーブルから読み出すと、当該ユーザＩＤにより特定される利用者の端末１００へインスタンスの停止を促す内容のメッセージを送信する。あるいは、通知装置９は、当該ユーザＩＤにより特定される利用者の情報を、図示しない利用者管理用データベースから読み出して保守者の端末１００へ出力してもよい。保守者は、当該利用者へ電話等によって使用されていないインスタンスがあることを通知する。
【００８５】
なお、サスペンドインスタンス管理装置７のサスペンドインスタンス管理部７１は、サスペンドインスタンス管理テーブルに、通知装置９による通知が行われた後、さらに所定時間が経過した時間がセミサスペンド状態持続時間に設定されているレコードを検出した場合、当該レコードの保存イメージＵＲＩを読み出し、当該保存イメージＵＲＩにより特定されるサスペンドインスタンス保存装置８の記憶領域に記憶されているスナップショットイメージ構成ファイルを削除してもよい。そして、サスペンドインスタンス管理部７１は、当該レコードから読み出したインスタンスＩＤをインスタンス管理装置２に通知し、当該インスタンスＩＤにより特定される種火インスタンスの終了を指示する。インスタンス管理装置２は、受信した種火インスタンスの終了指示をアクティブインスタンス管理装置３へ送信し、アクティブインスタンス管理装置３は、種火インスタンスの終了指示に設定されているインスタンスに対応した内部ＩＰアドレスを読み出し、当該内部ＩＰアドレスにより特定される種火インスタンスの終了を仮想化装置１に指示する。
【００８６】
なお、サスペンド状態からの再開時のインスタンス管理システムの処理は、図１４及び１５に示す処理と同様である。セミサスペンド状態からの再開時との違いは、保存イメージＵＲＩが、セミサスペンドインスタンス保存装置５の記憶領域の代わりにサスペンドインスタンス保存装置８の記憶領域を示していること、図１５のステップＳ６２５においてインスタンス管理装置２のインスタンス状態管理部２２は、サスペンドインスタンス管理装置７へインスタンスＩＤを設定したサスペンドインスタンス削除要求を送信し、ステップＳ６３０において、サスペンドインスタンス管理装置７のサスペンドインスタンス管理部７１は、受信したサスペンドインスタンス削除要求からインスタンスＩＤを取得し、取得したインスタンスＩＤにより特定されるサスペンドインスタンス管理テーブルのレコードを削除することである。
【００８７】
図１８は、課金処理の処理手順を示す図である。
同図において、インスタンス管理装置２の課金管理部２３は、一定時間毎にインスタンス管理テーブルの各レコードから、インスタンスＩＤ及びユーザＩＤと、当該インスタンスＩＤにより特定されるインスタンスのインスタンス状態とを読み出す（ステップＳ９０５）。課金管理部２３は、各ユーザＩＤに対応した課金管理テーブルに、当該ユーザＩＤについて読み出したインスタンスＩＤの状態に基づき累積時間を加算する（ステップＳ９１０）。例えば、１分毎にインスタンス管理テーブルを参照して課金管理テーブルを更新する場合、ユーザＩＤ「ＸＸＸ」に対応してインスタンスＩＤ「ＹＹＹＹ」、インスタンス状態「アクティブ」が読み出されたとすると、まず、ユーザＩＤ「ＸＸＸ」に対応した課金管理テーブルを特定し、この特定した課金管理テーブル内のインスタンスＩＤ「ＹＹＹＹ」が設定されているレコードのアクティブ状態累積時間を、現在の累積時間に１分を加算した累積時間に更新する。なお、インスタンス状態がセミサスペンドであれば、セミサスペンド状態累積時間を、インスタンス状態がサスペンドであれば、サスペンド状態累積時間を更新する。また、ユーザＩＤに対応する課金管理テーブルがない場合には新たな課金管理テーブルを生成し、インスタンスＩＤに対応したレコードが課金管理テーブルにない場合には、新たなレコードを追加する。
【００８８】
課金管理部２３は、課金管理テーブルから各ユーザについて、アクティブ状態累積時間、セミサスペンド状態累積時間、サスペンド状態累積時間を読み出して課金金額を算出する（ステップＳ９１５）。例えば、課金管理部２３は、（アクティブ状態の時間単価）＞（セミサスペンド状態の時間単価）＞（サスペンド状態の時間単価）とし、従量課金分の金額を、（アクティブ状態の時間単価）×（アクティブ状態累積時間）＋（セミサスペンド状態累の時間単価）×（セミサスペンド状態累積時間）＋（サスペンド状態の時間単価）×（サスペンド状態累積時間）により算出する。
【００８９】
本実施形態によれば、使用されていないと判断されたインスタンスを一時的に停止し、この一時的に停止された際のスナップショットを格納して当該インスタンスを解放するとともに、当該インスタンスへのイベントが発生した際には高速に再開させる機能を有する種火インスタンスを起動してセミサスペンド状態とする。このセミサスペンド状態のインスタンスについては、しばらくはリソースが不要となるため、その不要となったリソースをリソースプールに戻して、他のインスタンスに割り振ることが可能となる。
また、セミサスペンド状態のままさらに時間が経過しても元のインスタンスが再開されない場合には、スナップショットを高価かつ高速な記憶領域から安価かつ低速な記憶領域に移動し、サスペンド状態とする。サスペンド状態からの再開には、セミサスペンド状態からの再開よりも時間を要するが、コストを下げることができる。
さらにサスペンド状態のままさらに時間が経過しても再開されない場合には、利用者への注意喚起をメールや電話によって行なうことで、サービス利用に関する利用者の不注意による課金への不安を軽減することが可能となる。利用者への通知後、一定時間を経過してもインスタンス停止依頼がない場合は、自動的にインスタンスを停止し、サスペンド領域を解放することも可能である。
【００９０】
そして、本実施形態によれば、クラウドコンピューティング提供ビジネスにおいて、セミサスペンド状態、サスペンド状態が継続した時間によって料金を割引できるという、新たな課金モデルを適用することができる。従来は、利用者の指定によってインスタンスが起動されてから終了するまでの時間分だけ一律の単価によって課金されていたが、本実施形態によれば、インスタンスが起動されてから終了するまでの間であっても、インスタンスが非活性であればセミサスペンド状態、あるいは、サスペンド状態に移行させ、解放したリソースを新たに要求されたインスタンスに利用することができる。よって、従来と比較して安価な料金設定でも、採算が取れる運営が可能となる。例えば、従来よりも数割安い課金を求める利用者を対象に、優位なクラウドコンピューティングビジネスを展開することができる。
【００９１】
上記のように、活性状態にないインスタンスへのリソース割付を最適化することで、クラウド全体で消費するリソースを削減し、これによって、クラウドコンピューティング環境の利用効率増大によるクラウドコンピューティング提供者側のコスト削減と利益効率向上、クラウドコンピューティング利用側のコスト削減が同時に実現できる。
【００９２】
上述の仮想化装置１、インスタンス管理装置２、アクティブインスタンス管理装置３、セミサスペンドインスタンス管理装置４、セミサスペンドインスタンス保存装置５、種火インスタンス管理装置６、サスペンドインスタンス管理装置７、サスペンドインスタンス保存装置８、通知装置９、インスタンス管理テーブル記憶装置１１、アクティブインスタンス管理テーブル記憶装置１２、セミサスペンドインスタンス管理テーブル記憶装置１３、及び、課金管理テーブル記憶装置１５は、内部にコンピュータシステムを有している。そして、仮想化装置１、インスタンス管理装置２のユーザ要求受付部２１、インスタンス状態管理部２２、及び、課金管理部２３、アクティブインスタンス管理装置３のアクティブインスタンス管理部３１及び仮想化装置管理部３２、セミサスペンドインスタンス管理装置４のセミサスペンドインスタンス管理部４１及びセミサスペンドインスタンス保存装置管理部４２、種火インスタンス管理装置６の種火インスタンス管理部６１、サスペンドインスタンス管理装置７のサスペンドインスタンス管理部７１及びサスペンドインスタンス保存装置管理部７２、ならびに、通知装置９の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、ＣＰＵ及び各種メモリやＯＳ、周辺機器等のハードウェアを含むものである。
【００９３】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００９４】
なお、本発明は、上記において説明した実施形態に限定されるものではなく、その主旨を逸脱しない範囲において種々変更可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【符号の説明】
【００９５】
１…仮想化装置
２…インスタンス管理装置
２１…ユーザ要求受付部
２２…インスタンス状態管理部
２３…課金管理部
３…アクティブインスタンス管理装置
３１…アクティブインスタンス管理部
３２…仮想化装置管理部
４…セミサスペンドインスタンス管理装置
４１…セミサスペンドインスタンス管理部
４２…セミサスペンドインスタンス保存装置管理部
５…セミサスペンドインスタンス保存装置
６…種火インスタンス管理装置
７…サスペンドインスタンス管理装置
７１…サスペンドインスタンス管理部
７２…サスペンドインスタンス保存装置管理部
８…サスペンドインスタンス保存装置
９…通知装置
１１…インスタンス管理テーブル記憶装置（インスタンス管理情報記憶装置）
１２…アクティブインスタンス管理テーブル記憶装置
１３…セミサスペンドインスタンス管理テーブル記憶装置
１４…サスペンドインスタンス管理テーブル記憶装置
１５…課金管理テーブル記憶装置
【図１】
2010224914.tif 000003
【図２】
2010224914.tif 000004
【図３】
2010224914.tif 000005
【図４】
2010224914.tif 000006
【図５】
2010224914.tif 000007
【図６】
2010224914.tif 000008
【図７】
2010224914.tif 000009
【図８】
2010224914.tif 000010
【図９】
2010224914.tif 000011
【図１０】
2010224914.tif 000012
【図１１】
2010224914.tif 000013
【図１２】
2010224914.tif 000014
【図１３】
2010224914.tif 000015
【図１４】
2010224914.tif 000016
【図１５】
2010224914.tif 000017
【図１６】
2010224914.tif 000018
【図１７】
2010224914.tif 000019
【図１８】
2010224914.tif 000020