(57)【特許請求の範囲】
【請求項１】
仮想化装置及びクラウド連携管理装置を有する複数のクラウドシステムをネットワークを介して接続してなるリソース連携システムであって、
リソースの提供を受けるリソース提供先の前記クラウド連携管理装置は、
複数の仮想マシンによる上位システムの構成を示す上位システム構成情報と、前記上位システムを構成する仮想マシンの停止または起動の手順を示す上位システム手順データとを記憶する提供先記憶部と、
前記提供先記憶部に記憶されている前記上位システム手順データと、前記提供先記憶部に記憶されている前記上位システム構成情報とを他の前記クラウド連携管理装置に送信する提供先クラウド間情報更新部と、
リソース提供対象の前記上位システムをリソース提供元の前記クラウド連携管理装置に通知する指示出力部と、
前記リソース提供対象の前記上位システムに対応した前記上位システム手順データと前記上位システム構成情報とを前記提供先記憶部から読み出し、読み出した前記上位システム手順データが示すリソース提供先の手順と前記上位システム構成情報とに従って、当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する、あるいは、読み出した前記上位システム構成情報が示す仮想マシンの依存関係に従って停止すべき仮想マシンの順序を決定し、決定した順序に従って自クラウド内の前記仮想化装置に起動されている前記仮想マシンを停止する提供先手順実行部とを備え、
リソースを提供するリソース提供元の前記クラウド連携管理装置は、
前記上位システム手順データと、前記上位システム構成情報とを記憶する提供元記憶部と、
リソース提供先の前記クラウド連携管理装置から前記上位システム手順データと前記上位システム構成情報とを受信して前記提供元記憶部に書き込む提供元クラウド間情報更新部と、
リソース提供先の前記クラウド連携管理装置から通知された前記リソース提供対象の上位システムにより前記提供元記憶部に記憶されている前記上位システム手順データと前記上位システム構成情報とを特定し、特定された前記上位システム手順データが示すリソース提供元の手順と前記上位システム構成情報が示す仮想マシンの依存関係に従って、起動すべき仮想マシンの順序を決定し、決定した順序に従って自クラウド内の前記仮想化装置上に前記仮想マシンを起動する提供元手順実行部とを備える、
ことを特徴とするリソース連携システム。
【請求項２】
前記提供先手順実行部及び前記提供元手順実行部は、起動した前記仮想マシンのアドレス情報を、前記上位システム構成情報が示す仮想マシンの依存関係を有する他の仮想マシンに設定する、
ことを特徴とする請求項１に記載のリソース連携システム。
【請求項３】
前記上位システム手順データは、前記リソース提供対象の上位システムを構成する前記仮想マシンの起動または停止、前記仮想マシンが提供するサービスの起動または停止、前記サービスの設定ファイル更新、前記仮想マシンに対する外部ストレージの割り当てまたは割り当て解除、リソース提供先またはリソース提供元への通知の送信、リソース提供先またはリソース提供元からの通知待ちの処理のうち１以上からなる手順を示す、
ことを特徴とする請求項１または請求項２のいずれかの項に記載のリソース連携システム。
【請求項４】
前記提供先記憶部は、他の前記クラウドシステムにおいて起動可能な仮想マシンの種類を記憶し、
前記リソース提供先のクラウド連携管理装置は、前記リソース提供対象の上位システムを構成する前記仮想マシンを起動可能な他の前記クラウドシステムのリストを前記提供先記憶部から読み出して出力するリスト出力部をさらに備え、
前記指示出力部は、前記リスト出力部が出力した候補の中からユーザの操作によって選択された他クラウドシステムのクラウド連携管理装置をリソース提供元として前記リソース提供対象の上位システムを通知する、
ことを特徴とする請求項１から請求項３のいずれかの項に記載のリソース連携システム。
【請求項５】
前記提供先記憶部は、自クラウドシステム及び他クラウドシステムの料金の情報を記憶しており、
前記リソース提供先のクラウド連携管理装置は、前記提供先記憶部に記憶されている自クラウドシステム及び他クラウドシステムの料金の情報を参照して自クラウドシステムと料金の差が所定以内の他クラウドシステムを選択し、選択した他クラウドシステムをリソース提供元の候補として出力するリスト出力部をさらに備え、
前記指示出力部は、前記リスト出力部が出力した候補の中からユーザの操作によって選択された他クラウドシステムのクラウド連携管理装置をリソース提供元として前記リソース提供対象の上位システムを通知する、
ことを特徴とする請求項１から請求項３のいずれかの項に記載のリソース連携システム。
【請求項６】
前記クラウド連携管理装置は、
自クラウドシステム内の前記仮想化装置のリソース状態を取得し、前記リソース提供先の前記クラウド連携管理装置に通知する通知部を備え、
前記リソース提供先のクラウド連携管理装置は、他の前記クラウド連携管理装置から受信したリソース状態により示されるリソース空き状態に基づいて選択した他クラウドシステムをリソース提供元の候補として出力するリスト出力部をさらに備え、
前記指示出力部は、前記リスト出力部が出力した候補の中からユーザの操作によって選択された他クラウドシステムのクラウド連携管理装置をリソース提供元として前記リソース提供対象の上位システムを通知する、
ことを特徴とする請求項１から請求項３のいずれかの項に記載のリソース連携システム。
【請求項７】
仮想化装置及びクラウド連携管理装置を有する複数のクラウドシステムをネットワークを介して接続してなるリソース連携システムにおけるリソース連携方法であって、
リソースの提供を受けるリソース提供先の前記クラウド連携管理装置は、複数の仮想マシンによる上位システムの構成を示す上位システム構成情報と、前記上位システムを構成する仮想マシンの停止または起動の手順を示す上位システム手順データとを記憶する提供先記憶部を備え、
リソースを提供するリソース提供元の前記クラウド連携管理装置は、前記上位システム手順データと、前記上位システム構成情報とを記憶する提供元記憶部を備え、
リソースを提供するリソース提供先の前記クラウド連携管理装置において、
提供先クラウド間情報更新部が、前記提供先記憶部に記憶されている前記上位システム手順データと、前記提供先記憶部に記憶されている前記上位システム構成情報とを他の前記クラウド連携管理装置に送信する提供先クラウド間情報更新過程と、
リソースを提供するリソース提供元の前記クラウド連携管理装置において、
提供元クラウド間情報更新部が、リソース提供先の前記クラウド連携管理装置から前記上位システム手順データと前記上位システム構成情報とを受信して前記提供元記憶部に書き込む提供元クラウド間情報更新過程と、
リソースの提供を受けるリソース提供先の前記クラウド連携管理装置において、
指示出力部が、リソース提供対象の前記上位システムをリソース提供元の前記クラウド連携管理装置に通知する指示出力過程と、
提供先手順実行部が、前記リソース提供対象の前記上位システムに対応した前記上位システム手順データと前記上位システム構成情報とを前記提供先記憶部から読み出し、読み出した前記上位システム手順データが示すリソース提供先の手順と前記上位システム構成情報とに従って、当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する、あるいは、読み出した前記上位システム構成情報が示す仮想マシンの依存関係に従って停止すべき仮想マシンの順序を決定し、決定した順序に従って自クラウド内の前記仮想化装置に起動されている前記仮想マシンを停止する提供先手順実行過程と、
リソースを提供するリソース提供元の前記クラウド連携管理装置において、
提供元手順実行部が、リソース提供先の前記クラウド連携管理装置から通知された前記リソース提供対象の上位システムにより前記提供元記憶部に記憶されている前記上位システム手順データと前記上位システム構成情報とを特定し、特定された前記上位システム手順データが示すリソース提供元の手順と前記上位システム構成情報が示す仮想マシンの依存関係に従って、起動すべき仮想マシンの順序を決定し、決定した順序に従って自クラウド内の前記仮想化装置上に前記仮想マシンを起動する提供元手順実行過程とを有する、
ことを特徴とするリソース連携方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウドサービスシステム間のリソース連携システム及びリソース連携方法に関する。
【背景技術】
【０００２】
安価で柔軟なシステム提供環境として、契約した利用者に従量課金で仮想マシンやストレージを貸し出すクラウドサービス（ＩａａＳ：Infrastructure as a Service)の利用が拡大している。当初は大規模なパブリッククラウドのみがサービスとして提供されていたが、最近ではプライベートクラウドやコミュニティクラウドといった比較的小さな組織規模で共有される「小さなクラウド」が増加する傾向にあり、利用者が用途に応じて「クラウドを選ぶ」ようになってきている。
一方、特許文献１には、複数拠点に設置したコンピュータシステムに仮想マシンシステム技術を適用し、マスタシステムとバックアップシステムを切り替えることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１７３７５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような小さなクラウドでは、大規模なクラウドと比較し、サービス提供のためのリソースが不足する状況が発生しやすいと考えられる。しかし、リソース不足が発生してすぐにリソースを増強することは難しい。そこで、他のクラウドのリソースを一部利用したり、比較的リソースに余裕がある他のクラウドにサービスを移行したりすることが考えられる。
ところが、各クラウドは別々の事業者により完全に独立して提供されていることが多く、それぞれに仕様も異なる。複数クラウドを扱うという意味では、RightScale社が複数のクラウドを統一して操作できるウェブインタフェースを利用者に提供しているが、各クラウドに対する操作や状況閲覧といった「利用者にとっての入口」を１つのウェブシステムで実施できるようにしたものであり、クラウド間でリソースの相互運用性や移行容易性を高めるようなものではない。
特許文献１の技術は、通常の運用状態において複数の拠点のコンピュータシステムに仮想マシンシステムを起動しておき、故障が発生した際にマスタシステムからバックアップシステムへと切り換えるものであり、リソースが不足したときにクラウド間でリソースを相互利用したり、クラウドサービス自体を移行したりする場合には適用できない。
【０００５】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、あるクラウドにおいて実行されているサービスを、他のクラウドのリソースを利用して提供することができるリソース連携システム、及び、リソース連携方法を実現することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明は、仮想化装置及びクラウド連携管理装置を有する複数のクラウドシステムをネットワークを介して接続してなるリソース連携システムであって、リソース制御元の前記クラウド連携管理装置は、上位システムを構成する仮想マシンの停止または起動の手順を示す上位システム手順データを記憶する制御元記憶部と、前記制御元記憶部に記憶されている前記上位システム手順データを他の前記クラウド連携管理装置に送信する制御元クラウド間情報更新部と、リソース制御対象の上位システムをリソース制御先の前記クラウド連携管理装置に通知する指示出力部と、前記リソース制御対象の上位システムに対応した前記上位システム手順データを前記制御元記憶部から読み出し、読み出した前記上位システム手順データが示すリソース制御元の手順に従って当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する、あるいは、自クラウドシステム内の前記仮想化装置に起動されている、当該上位システムを構成する前記仮想マシンを停止する制御元手順実行部とを備え、リソース制御先の前記クラウド連携管理装置は、前記上位システム手順データを記憶する制御先記憶部と、リソース制御元の前記クラウド連携管理装置から前記上位システム手順データを受信して前記制御先記憶部に書き込む制御先クラウド間情報更新部と、リソース制御元の前記クラウド連携管理装置から通知された前記リソース制御対象の上位システムにより前記制御先記憶部に記憶されている前記上位システム手順データを特定し、特定された前記上位システム手順データが示すリソース制御先の手順に従って当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する制御先手順実行部とを備える、ことを特徴とするリソース連携システムである。
【０００７】
また、本発明は、上述したリソース連携システムであって、前記制御元記憶部は、複数の仮想マシンによる上位システムの構成を示す上位システム構成情報をさらに記憶し、前記制御元クラウド間情報更新部は、前記制御元記憶部に記憶されている前記上位システム構成情報を前記他のクラウド連携管理装置に送信し、前記制御元手順実行部は、前記リソース制御対象の上位システムに対応した前記上位システム構成情報を前記制御元記憶部から読み出し、読み出した前記上位システム構成情報が示す仮想マシンの依存関係に従って停止すべき仮想マシンの順序を決定し、決定した順序に従って自クラウド内の前記仮想化装置に起動されている前記仮想マシンを停止し、前記制御先クラウド間情報更新部は、リソース制御元の前記クラウド連携管理装置から前記上位システム構成情報を受信して前記制御先記憶部に書き込み、前記制御先手順実行部は、前記リソース制御対象の上位システムに対応した前記上位システム構成情報を前記制御先記憶部から読み出し、読み出した前記上位システム構成情報が示す仮想マシンの依存関係に従って起動すべき仮想マシンの順序を決定し、決定した順序に従って自クラウド内の前記仮想化装置上に前記仮想マシンを起動する、ことを特徴とする。
【０００８】
また、本発明は、上述したリソース連携システムであって、前記第１の手順実行部及び前記第２の手順実行部は、起動した前記仮想マシンのアドレス情報を、前記上位システムにおいて依存関係を有する他の仮想マシンに設定する、ことを特徴とする。
【０００９】
また、本発明は、上述したリソース連携システムであって、前記上位システム手順データは、前記リソース制御対象の上位システムを構成する前記仮想マシンの起動または停止、前記仮想マシンが提供するサービスの起動または停止、前記サービスの設定ファイル更新、前記仮想マシンに対する外部ストレージの割り当てまたは割り当て解除、リソース制御元またはリソース制御先への通知の送信、リソース制御元またはリソース制御先からの通知待ちの処理のうち１以上からなる手順を示す、ことを特徴とする。
【００１０】
また、本発明は、上述したリソース連携システムであって、前記制御元記憶部は、他の前記クラウドシステムにおいて起動可能な仮想マシンの種類を記憶し、前記リソース制御元のクラウド連携管理装置は、前記リソース制御対象の上位システムを構成する前記仮想マシンを起動可能な他の前記クラウドシステムのリストを前記制御元記憶部から読み出して出力するリスト出力部をさらに備え、前記指示出力部は、前記リスト出力部が出力した候補の中から選択された他クラウドシステムのクラウド連携管理装置をリソース制御先として前記リソース制御対象の上位システムを通知する、ことを特徴とする。
【００１１】
また、本発明は、上述したリソース連携システムであって、前記制御元記憶部は、自クラウドシステム及び他クラウドシステムの料金の情報を記憶しており、前記リソース制御元のクラウド連携管理装置は、前記制御元記憶部に記憶されている自クラウドシステム及び他クラウドシステムの料金の情報を参照して自クラウドシステムと料金の差が所定以内の他クラウドシステムを選択し、選択した他クラウドシステムをリソース制御先の候補として出力するリスト出力部をさらに備え、前記指示出力部は、前記リスト出力部が出力した候補の中から選択された他クラウドシステムのクラウド連携管理装置をリソース制御先として前記リソース制御対象の上位システムを通知する、ことを特徴とする。
【００１２】
また、本発明は、上述したリソース連携システムであって、前記クラウド連携管理装置は、自クラウドシステム内の前記仮想化装置のリソース状態を取得し、前記リソース制御元の前記クラウド連携管理装置に通知する通知部を備え、前記リソース制御元のクラウド連携管理装置は、他の前記クラウド連携管理装置から受信したリソース状態により示されるリソース空き状態に基づいて選択した他クラウドシステムをリソース制御先の候補として出力するリスト出力部をさらに備え、前記指示出力部は、前記リスト出力部が出力した候補の中から選択された他クラウドシステムのクラウド連携管理装置をリソース制御先として前記リソース制御対象の上位システムを通知する、ことを特徴とする。
【００１３】
また、本発明は、仮想化装置及びクラウド連携管理装置を有する複数のクラウドシステムをネットワークを介して接続してなるリソース連携システムにおけるクラウド間リソース連携方法であって、リソース制御元の前記クラウド連携管理装置において、制御元クラウド間情報更新部が、上位システムを構成する仮想マシンの停止または起動の手順を示す上位システム手順データを制御元記憶部から読み出し、他の前記クラウド連携管理装置に送信する制御元クラウド間情報更新過程と、リソース制御先の前記クラウド連携管理装置において、制御先クラウド間情報更新部が、リソース制御元の前記クラウド連携管理装置から前記上位システム手順データを受信して制御先記憶部に書き込む制御先クラウド間情報更新過程とを有する一方、リソース制御元の前記クラウド連携管理装置において、指示出力部が、リソース制御対象の上位システムをリソース制御先の前記クラウド連携管理装置に通知する指示出力過程と、制御元手順実行部が、前記リソース制御対象の上位システムに対応した前記上位システム手順データを前記制御元記憶部から読み出し、読み出した前記上位システム手順データが示すリソース制御元の手順に従って当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する、あるいは、自クラウドシステム内の前記仮想化装置に起動されている、当該上位システムを構成する前記仮想マシンを停止する制御元手順実行過程と、リソース制御先の前記クラウド連携管理装置において、制御先手順実行部が、リソース制御元の前記クラウド連携管理装置から通知された前記リソース制御対象の上位システムにより前記制御先記憶部に記憶されている前記上位システム手順データを特定し、特定された前記上位システム手順データが示すリソース制御先の手順に従って当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する制御先手順実行過程とを有する、ことを特徴とするリソース連携方法である。
【発明の効果】
【００１４】
本発明によれば、あるクラウドにおいて上位システム（クラウドサービス）提供環境のリソースが不足した場合に、他のクラウドのリソースを一部利用し、あるいは、リソースに余裕のある他のクラウドに上位システム提供環境全体を移行し、継続して上位システムを提供することが可能となる。
また、上記のように上位システム提供環境全体をクラウド間で移行させることができるため、ユーザが一つのクラウド事業者から他のクラウド事業者へ移行することが困難なベンダロックイン状態が発生せず、利用者はクラウド事業者間の競争の恩恵を受けやすくなる。クラウドは数多くのシステムの統一基盤となるが、このように、特定クラウド事業者へ依存しなくてもよくなるため、クラウドサービスを利用する利用者のリスクが解消される。加えて、激甚災害などによって、クラウドを構成するコンピュータ装置群の大部分あるいは全部がダメージを負った場合でも、引き続き他のクラウドにおいてサービスの提供を継続することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態によるクラウド間リソース連携システムの全体構成図である。
【図２】同実施形態によるクラウドの構成を示すブロック図である。
【図３】同実施形態による上位システムの構成例を示す図である。
【図４】同実施形態による上位システム構成情報の初期値の例を示す。
【図５】同実施形態による上位システムの構成の具体的な例を示す図である。
【図６】同実施形態による上位システム構成情報の具体的な例を示す図である。
【図７】同実施形態による上位システムの移行手順を記述した上位システム手順データを示す図である。
【図８】同実施形態による上位システムのスケールアウト手順を記述した上位システム手順データを示す図である。
【図９】同実施形態による他クラウド情報のデータ構成例を示す図である。
【図１０】同実施形態によるリソース情報のデータ構成例を示す図である。
【図１１】同実施形態による仮想マシンリスト情報のデータ構成例を示す図である。
【図１２】同実施形態によるＣＰＵアーキテクチャ情報のデータ構成例を示す図である。
【図１３】同実施形態によるＯＳ情報のデータ構成例を示す図である。
【図１４】同実施形態による料金情報のデータ構成例を示す図である。
【図１５】同実施形態による関連上位システム構成情報のデータ構成例を示す図である。
【図１６】同実施形態による上位システムのクラウド間移行手順を示す図である。
【図１７】同実施形態による上位システムのクラウド間移行手順を示す図である。
【図１８】同実施形態による上位システムのクラウド間移行手順を示す図である。
【図１９】同実施形態による上位システムのクラウド間移行手順を示す図である。
【図２０】同実施形態による上位システムのクラウド間スケールアウト手順を示す図である。
【図２１】同実施形態による上位システムのクラウド間スケールアウト手順を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施形態の例について説明する。
図１は、本発明の一実施形態によるクラウド間リソース連携システムの全体構成図である。
同図に示すように、クラウド間リソース連携システムは、複数のクラウドシステム（以下、単に「クラウド」と記載）をＩＰネットワークであるネットワーク７を介して接続してなる。ネットワーク７には、ＤＮＳ（Domain Name System）サーバ８、ユーザ端末９が接続される。同図において、ユーザ端末９は１台のみ記載しているが、複数台が接続されうる。
【００１７】
クラウドＡ、クラウドＢ、…、クラウドＮの各クラウドは、クラウド連携管理装置１及びクラウドサービスシステムからなる。ユーザ端末９に対してクラウドサービスを提供するクラウドサービスシステムは、クラウドフロントエンド装置３、及び、仮想化装置５を備える。同図において、仮想化装置５は１台のみ記載しているが、複数台の仮想化装置５を備えてもよい。
【００１８】
以下、クラウド連携管理装置１、クラウドフロントエンド装置３、仮想化装置５などの装置が属しているクラウドを当該装置の「自クラウド」、当該装置が属するクラウドとは異なるクラウドを「他クラウド」と記載する。例えば、クラウドＡのクラウド連携管理装置１であれば、自クラウドはクラウドＡであり、他クラウドはクラウドＢ、…、クラウドＮである。
【００１９】
図２は、本実施の形態によるクラウドの構成を示すブロック図である。
仮想化装置５は、自身のコンピュータリソースを仮想化する機能を備えたコンピュータ装置であり、仮想マシンのインスタンスを生成する。つまり、仮想化装置５は、自身のＣＰＵ（central processing unit）、メモリ、ディスクなどの物理的なハードウェアリソースを仮想的に分割し、定められたプログラムが含まれる仮想マシンのイメージファイルに基づいて、分割したコンピュータリソース（スロット）上に仮想マシンを起動する。
【００２０】
仮想マシンは、サービスを実行する機能とエージェント機能を有する。仮想マシンはエージェント機能によって、クラウド連携管理装置１から指示されたサービスの起動・終了、サービス設定ファイルの更新、外部ストレージの取り付け・切り離し等の各種処理を行う。仮想マシンは、他の仮想マシンと協働して動作し、クラウドサービスを提供するシステムを構成することができる。このクラウド上で動作し、クラウドサービスを提供するシステムを「上位システム」と記載する。具体的には、この「上位システム」は、仮想マシン上で処理を行なう複数のソフトウェアによって実行されるサービスを組み合わせて実現されるものである。上位システムは、通常、同一のクラウド内の仮想化装置５において起動されている仮想マシンのみからなるが、スケールアウトを行なった場合、他のクラウドの仮想化装置５において起動されている仮想マシンを含んで上位システムを構成することができる。
【００２１】
クラウドフロントエンド装置３は、１または複数のコンピュータ装置によって実現され、自クラウドの仮想マシンの起動や停止、自クラウドの仮想マシンリストの取得、自クラウドの仮想マシンへのストレージの割り当て及び割り当て解除、自クラウドの仮想マシンのリソース状態の取得等を行う。
【００２２】
クラウド連携管理装置１は、記憶部１１、管理インタフェース（以下、インタフェースを「ＩＦ」と記載）部１２、連携ＩＦ部１３、構成管理部１４、構成制御部１５、クラウド操作ＩＦ部１６、及び、仮想マシン操作ＩＦ部１７を備えて構成される。
【００２３】
記憶部１１は、他クラウド情報、及び、関連上位システム構成情報、ならびに、自クラウド及び他クラウドの上位システム構成情報、上位システム手順データ、仮想マシンリスト情報、リソース情報、ＣＰＵ（central processing unit）アーキテクチャ情報、ＯＳ（Operation System）情報、及び、料金情報などの各種情報を記憶する。
【００２４】
他クラウド情報は、他クラウドに属するクラウド連携管理装置１のＩＰアドレスを示す。関連上位システム構成情報は、自クラウドで提供可能な上位システムと、当該上位システムの移行先となる他クラウド、及び、当該上位システムを構成する仮想マシンのスケールアウト先となる他クラウドとを対応付けた情報である。他クラウドを特定する情報としては、当該他クラウドに属するクラウド連携管理装置１のＩＤを用いることができる。
【００２５】
上位システム構成情報は、上位システムを構成する仮想マシンの構成を示し、上位システムを構成する各仮想マシンの属性情報、当該各仮想マシンの起動台数及びＩＰアドレスの情報を含む。属性情報には、上位システムを構成するサービス間の依存関係や、各仮想マシンのデフォルト台数、スケールアウト可能か否か、起動要件等の情報が含まれる。起動要件の情報は、仮想マシンのソフトウェアやミドルウェアのファイルであるイメージファイルや、仮想マシンが動作するＯＳ、仮想マシンの動作に必要なＣＰＵ等のハードウェア要件など、仮想マシンを起動し、動作させるために必要な要件を示す。
上位システム手順データは、クラウド間の上位システム全体の移行、クラウド間の仮想マシンのスケールアウト、上位システムの起動、上位システムの停止の手順を記述したデータである。
【００２６】
仮想マシンリスト情報は、クラウドサービスシステムにおいてサポートしている仮想マシンのイメージファイルの一覧を示す。リソース情報は、クラウドサービスシステムのリソースの状態を示し、クラウドサービスシステム全体のメモリ総量及び空きメモリ総量、ディスク総量及び空きディスク総量、ならびに、ＣＰＵ総数及び空きＣＰＵ数の情報が含まれる。ＣＰＵアーキテクチャ情報は、クラウドサービスシステムがサポートするＣＰＵアーキテクチャ名を示す。ＯＳ情報は、クラウドサービスシステムがサポートするＯＳ名を示す。料金情報は、課金の単位と、当該単位当たりの料金を示す。
【００２７】
管理ＩＦ部１２は、上位システム手順の実行開始に関する各種指示を受信する。また、管理ＩＦ部１２は、記憶部１１に対する情報の登録や変更なども受け付ける。連携ＩＦ部１３は、ネットワーク７を介して他のクラウド連携管理装置１との間でデータを送受信する。クラウド操作ＩＦ部１６は、自クラウドのクラウドフロントエンド装置３との間でデータを送受信する。仮想マシン操作ＩＦ部１７は、自クラウドの仮想マシンとの間でデータを送受信する。
【００２８】
構成管理部１４は、記憶部１１に記憶されている情報を管理する。構成管理部１４は、クラウド内情報更新部１４１、クラウド間情報更新部１４２、及び、関連上位システム情報更新部１４３を備える。
クラウド内情報更新部１４１は、自クラウドのクラウドフロントエンド装置３が自クラウド内の仮想化装置５から収集した各種情報を受信し、受信した情報に基づいて記憶部１１に記憶している自クラウドの情報を更新する。また、管理ＩＦ部１２からの入力に従って記憶部１１に記憶している自クラウドの情報を更新する。
クラウド間情報更新部１４２は、記憶部１１から定期的に自クラウドの上位システム構成情報、上位システム手順データ、仮想マシンリスト情報、リソース情報、ＣＰＵアーキテクチャ情報、ＯＳ情報、及び、料金情報読み出して他のクラウド連携管理装置１に送信する。また、クラウド間情報更新部１４２は、上位システム構成情報が更新された際に、その更新情報を他のクラウド連携管理装置１に送信する。さらに、クラウド間情報更新部１４２は、他のクラウド連携管理装置１から受信した各種情報を記憶部１１へ書き込む。
関連上位システム情報更新部１４３は、記憶部１１に記憶されている自クラウドの上位システム構成情報、他クラウドの仮想マシンリスト、自クラウド及び他クラウドのリソース情報、ＣＰＵアーキテクチャ情報、ＯＳ情報、料金情報等を参照して関連上位システム構成情報を生成し、記憶部１１に書き込む。
【００２９】
構成制御部１５は、管理ＩＦ部１２から受信した指示に従って、上位システムの起動、停止、移行や、仮想マシンのスケールアウト等の上位システム手順を実行する。構成制御部１５は、リスト提示部１５１、指示出力部１５２及び手順実行部１５３からなる。
リスト提示部１５１は、管理ＩＦ部１２から受信した指示がクラウド間の上位システム移行あるいはスケールアウトであった場合、移行先あるいはスケールアウト先となりうるクラウドのリストを出力する。
指示出力部１５２は、リスト提示部１５１が出力したリストの中から選択されたクラウドの情報を受信し、手順実行部１５３と選択されたクラウドのクラウド連携管理装置１に上位システム手順の実行を指示する。
手順実行部１５３は、指示出力部１５２あるいは他のクラウド連携管理装置１から受信した指示に従って記憶部１１から上位システム手順データ及び上位システム構成情報を読み出し、これらの情報に基づいて仮想マシンの起動や停止等の処理を行なう。上位システム手順データに含まれる各手順は、構成制御部１５が提供するＡＰＩ（Application Program Interface）により実行される。
【００３０】
以下、各クラウドのクラウド連携管理装置１、クラウドフロントエンド装置３、仮想化装置５を、クラウドに対応した符号を付加することによって表す。例えば、クラウドＡのクラウド連携管理装置１、クラウドフロントエンド装置３、仮想化装置５をそれぞれクラウド連携管理装置１ａ、クラウドフロントエンド装置３ａ、仮想化装置５ａと記載し、クラウドＢのクラウド連携管理装置１、クラウドフロントエンド装置３、仮想化装置５をそれぞれクラウド連携管理装置１ｂ、クラウドフロントエンド装置３ｂ、仮想化装置５ｂと記載する。同様に、各クラウドのクラウド連携管理装置１内の機能ブロックを、クラウドに対応した符号を付加することによって表す。例えば、クラウドＡのクラウド連携管理装置１ａの記憶部１１を記憶部１１ａと記載し、クラウドＢのクラウド連携管理装置１ｂの記憶部１１を記憶部１１ｂと記載する。
【００３１】
次に、クラウド連携管理装置１が記憶する各種情報について説明するが、この説明の前に上位システムの構成を説明する。
図３は、上位システムの構成例を示す図である。
図３（ａ）は、スケールアウト前の上位システムＷの構成を、図３（ｂ）は、スケールアウト後の上位システムＷの構成を示す。
図３（ａ）及び図３（ｂ）に示すように、上位システムＷは、サービスα及びサービスβを実行する仮想マシンＸと、サービスγを実行する仮想マシンＹと、サービスδを実行する仮想マシンＺとからなる。そして、サービスαとサービスβ、サービスβとサービスγ、サービスγとサービスδ間には依存関係がある。図３（ａ）においては、仮想マシンＸ、仮想マシンＹが２台、仮想マシンＺが１台であるが、図３（ｂ）に示すように仮想マシンＹのスケールアウト後は、仮想マシンＹが４台となっている。
【００３２】
図４は、クラウド連携管理装置１の記憶部１１に記憶される上位システム構成情報の初期設定の例を示す。同図に示す上位システム構成情報は、図３に示す上位システムＷの構成を記述している。上位システム構成情報の外部参照ファイル群は、各仮想マシンＸ，Ｙ，Ｚの外部参照ファイルからなり、各外部参照ファイルには、仮想マシンの識別情報と、当該仮想マシンの属性情報が記述されている。属性情報には、デフォルトの仮想マシンの台数、スケールアウトの可否、及び、仮想マシンで実行されるサービス、当該サービスが依存する他のサービス、当該サービスに関する動的パラメータ、及び、起動要件が記述される。動的パラメータは、当該仮想マシンの起動に伴って動的に設定値が変更となるパラメータである。
【００３３】
図４に記載の上位システム構成情報の初期設定は、クラス、つまり、上位システム構成情報の雛形であり、上位システム手順の実行時にはこのクラスを利用し、実際の動的パラメータ（ＩＰアドレス等）を設定してインスタンスを生成する。インスタンスの生成によって、クラス（雛形）に基づいて個別に上位システム構成情報の実体が生成され、メモリ上に配置される。そして、この生成されたインスタンスを用いて上位システム手順が実行される。
【００３４】
同図に示すように、上位システム構成情報には、上位システムＷのＩＤが記述され、外部参照ファイルにはそれぞれ仮想マシンＸ、Ｙ、ＺのＩＤが記述されている。仮想マシンＸの属性情報は、デフォルト台数が２台、スケールアウトは不可、サービスα及びβが実行され、サービスαはサービスβに依存し、サービスβはサービスγに依存することを示している。また、仮想マシンＹの属性情報は、デフォルト台数が２台、仮想マシンＺに依存しており、スケールアウトは可、サービスγが実行され、サービスγはサービスδに依存し、ＩＰアドレスが動的パラメータであることを示しており、仮想マシンＺの属性情報は、デフォルト台数が１台、スケールアウトは不可、サービスδが実行され、サービスδは他のサービスに依存せず、ＩＰアドレスが動的パラメータであることを示している。
また、仮想マシンＸ、Ｙ，Ｚの起動要件として、仮想マシンイメージファイル名、ＯＳ名、ＣＰＵアーキテクチャ名が示されている。
なお、各仮想マシンが起動された場合、起動された仮想マシンのＩＰアドレスと起動台数が上位システム構成情報に設定される。ＩＰアドレスには、ポート番号を含んでもよい。
【００３５】
図５は、上位システムの構成の具体的な例を、図６は、図５に示す上位システムに対応した上位システム構成情報の具体的な例を示す。
図５に示すように、上位システム「Ｗｅｂ３層システム」は、サービス「UltraMonxxx」及びサービス「Apaxxx」を実行する仮想マシン「LB/Web」と、サービス「Tomxxx」を実行する仮想マシン「App」と、サービス「PostxxxSQL」を実行する仮想マシン「DB」とからなっている。
【００３６】
図６は、ＩＤが「BSID‐00000001」により特定される上位システム（Ｗｅｂ３層システム）は、ＩＤが「LB/Web」、「App」、「DB」により特定される仮想マシンから構成されることが記述されている。
そして、仮想マシン「LB/Web」は、デフォルト２台（default="2"）、スケールアウトは不可（scalable="false"）、サービス「UltraMonxxx」とサービス「Apaxxx」を実行すること、サービス「UltraMonxxx」は、仮想マシン「LB/Web」のサービス「Apaxxx」に依存し（"dependon" value="Apaxxx#LB/Web"）、ＩＰアドレス（ipAddress）が動的パラメータであること、サービス「Apaxxx」は、仮想マシン「App」のサービス「Tomxxx」に依存し（"dependon" value="Tomxxx#App"）、ＩＰアドレス（ipAddress）が動的パラメータであることが記述されている。
【００３７】
同様に、ＩＤ「App」により特定される仮想マシンは、デフォルト２台かつ最大１０台、スケールアウトは可、サービス「Tomxxx」を実行すること、サービス「Tomxxx」は、仮想マシン「DB」のサービス「PostxxxSQL」に依存し、ＩＰアドレスが動的パラメータであることが記述されており、ＩＤ「DB」により特定される仮想マシンは、デフォルト１台、スケールアウトは不可、サービス「PostxxxSQL」を実行すること、サービス「PostxxxSQL」はＩＰアドレスが動的パラメータであることが記述されている。
さらに、仮想マシン「LB/Web」，「App」，「DB」のイメージフィアル名はそれぞれ「lbweb - image」、「ap - image」、「db - image」であり、仮想マシン「LB/Web」、「App」、「DB」ともＣＰＵアーキテクチャは「x86_yy」、ＯＳは「Linxx」であることが記述されている。
上記のように、ＩＰアドレスが動的に設定されることを宣言しておくことにより、上位システム手順においてサービスの設定ファイルの更新を行なう際、この動的に設定したＩＰアドレスを取得して設定ファイルに埋め込むことが可能となる。
【００３８】
図７及び図８は、クラウド連携管理装置１の記憶部１１に記憶される上位システム手順データの構成例を示す図である。上位システム手順データが示す手順には、上位システムの起動手順、停止手順、移行手順、スケールアウト手順がある。
【００３９】
図７は、上位システムＷの移行手順を記述した上位システム手順データを示す。移行手順の上位システム手順データには、上位システムＷのＩＤと、手順が「移行手順」であることを示す情報と、移行元手順及び移行先手順とが記述される。移行元手順は、仮想マシンの終了順序の決定、決定された終了順序に応じた各仮想マシンの終了スクリプト実行、移行先のクラウド連携管理装置１への仮想マシンの終了通知を行なう手順、及び、各仮想マシンの終了スクリプトからなる。また、移行先手順は、移行元のクラウド連携管理装置１からの仮想マシンの終了通知待ち、仮想マシンの起動順序の決定、決定された起動順序に応じた各仮想マシンの起動スクリプト実行、ＤＮＳ更新を行なう手順、及び、各仮想マシンの起動スクリプトからなる。
【００４０】
終了スクリプトは、例えば、各仮想マシン内のサービスの停止、仮想マシンからの外部ストレージ（外部ディスク）の切り離し（アンマウント）、仮想マシンからの外部ストレージの割り当て解除（デタッチ）、仮想マシンの停止などの手順を含んで構成することができる。
起動スクリプトは、例えば、各仮想マシンの起動、仮想マシンの起動待ち、仮想マシンへの外部ストレージの割り当て（アタッチ）、仮想マシンへの外部ストレージの取り付け（マウント）、仮想マシン内のサービス用の設定ファイル更新、仮想マシン内のサービスの起動などの手順を含んで構成することができる。設定ファイル更新において設定する内容は、予めスクリプト中に設定ファイルとして記述されるが、上位システム構成情報に動的であるとして宣言されたパラメータ（例えば、ＩＰアドレス）を取得して、設定ファイル内に含めることができる。
【００４１】
なお、停止手順の上位システム手順データは、移行手順の上位システム手順データ内の移行元手順と同様の手順であり、起動手順の上位システム手順データは、移行手順の上位システム手順データ内の移行先手順と同様の手順となる。但し、移行先と移行元との間の通知の送受信や通知待ちの手順については除く。
【００４２】
図８は、仮想マシンＰ及びＱを含んで構成される上位システムＶのスケールアウト手順を記述した上位システム手順データを示す。同図に示すように、スケールアウト手順の上位システム手順データは、上位システムＶのＩＤと、手順が「スケールアウト手順」であることを示す情報と、スケールアウト元手順及びスケールアウト先手順とが記述される。ここでは、スケールアウト対象の仮想マシンＰは、例えば、仮想マシンＱに依存する分散処理ミドルウェアであり、仮想マシンＰはサービスεを実行し、仮想マシンＱはサービスζを実行する。
【００４３】
仮想マシンＰのスケールアウト元手順は、スケールアウト先への仮想マシン起動開始通知、スケールアウト対象の仮想マシンＰの起動スクリプト実行、スケールアウト先への仮想マシン起動完了通知、スケールアウト先からの仮想マシン起動完了通知待ち、仮想マシンＱのサービスζに対する設定ファイル更新、仮想マシンＰのサービスεに対する設定ファイル更新、スケールアウト先への設定ファイル更新完了通知、スケールアウト先からの設定ファイル更新完了通知待ち、仮想マシンＰのサービスε及び仮想マシンＱのサービスζの再起動を行なう手順、及び、スケールアウト対象の仮想マシンの起動スクリプトからなる。
【００４４】
また、仮想マシンＰのスケールアウト先手順は、スケールアウト元からの仮想マシン起動開始通知待ち、仮想マシンＰの起動スクリプト実行、スケールアウト元への仮想マシン起動完了通知、スケールアウト元からの仮想マシン起動完了通知待ち、仮想マシンＰのサービスεに対する設定ファイル更新、スケールアウト元への設定ファイル更新完了通知を行なう手順、及び、スケールアウト対象の仮想マシンの起動スクリプトからなる。
起動スクリプトには、例えば、各仮想マシンの起動、仮想マシンの起動待ちなどの指示が含まれる。
【００４５】
上位システム手順データに記述される処理、すなわち、手順実行部１５３が提供するＡＰＩにより実行可能な処理には、上述したように、仮想マシンの起動及び停止、ストレージの切り離し及び取り付け、割り当て及び割り当て解除、所定の手順ブロックの終了待ち、所定の通知及び通知受信待ち等があるが、その他に、例えば、仮想マシンへのＩＰアドレス割り当て、仮想マシン上でのコマンド実行、別スレッドでの処理実行などがあり、これらの処理の組み合わせによって一連の手順を記述することができる。
【００４６】
図９は、クラウド連携管理装置１の記憶部１１に記憶される他クラウド情報のデータ構成例を示す図である。同図に示すように、他クラウド情報は、連携している他のクラウド連携管理装置１のＩＤ（id）と、当該他のクラウド連携管理装置１のＩＰアドレス（address）とを対応付けたリストからなる。
【００４７】
図１０は、クラウド連携管理装置１の記憶部１１に記憶されるリソース情報のデータ構成例を示す図である。リソース情報は、クラウド連携管理装置１のＩＤと対応付けられており、このＩＤで特定されるクラウド連携管理装置１が属するクラウド内の仮想化装置５全体のメモリ総量（memory）、空きメモリ総量（available_memory）、ディスク総量（disk）、空きディスク総量（available_disk）、ＣＰＵ総数（cpu）、空きＣＰＵ数（available_cpu）の情報を含む。
【００４８】
図１１は、クラウド連携管理装置１の記憶部１１に記憶される仮想マシンリスト情報のデータ構成例を示す図である。仮想マシンリスト情報は、クラウド連携管理装置１のＩＤと対応付けられており、このＩＤで特定されるクラウド連携管理装置１が属するクラウド内の仮想化装置５がサポートしている仮想マシンのイメージファイル名（vm_image）のリストを示す。仮想マシンのイメージファイル名によって、起動可能な仮想マシンの種類を表すことができる。
【００４９】
図１２は、クラウド連携管理装置１の記憶部１１に記憶されるＣＰＵアーキテクチャ情報のデータ構成例を示す図である。ＣＰＵアーキテクチャ情報は、クラウド連携管理装置１のＩＤと対応付けられており、このＩＤで特定されるクラウド連携管理装置１が属するクラウド内の仮想化装置５がサポートしているＣＰＵアーキテクチャ名（arch）のリストを示す。
【００５０】
図１３は、クラウド連携管理装置１の記憶部１１に記憶されるＯＳ情報のデータ構成例を示す図である。ＯＳ情報は、クラウド連携管理装置１のＩＤと対応付けられており、このＩＤで特定されるクラウド連携管理装置１が属するクラウド内の仮想化装置５がサポートしているＯＳ名（os）のリストを示す。
【００５１】
図１４は、クラウド連携管理装置１の記憶部１１に記憶される料金情報のデータ構成例を示す図である。料金情報は、クラウド連携管理装置１のＩＤと対応付けられており、このＩＤで特定されるクラウド連携管理装置１が属するクラウドにおける上位システムの課金の単位（unit）と、当該単位当たりの料金(price)とを対応づけたリストからなる。課金の単位は、例えば、ＣＰＵ数やメモリサイズ等、あるいは、それらの組み合わせを用いることができる。
【００５２】
図１５は、クラウド連携管理装置１の記憶部１１に記憶される関連上位システム構成情報のデータ構成例を示す図である。同図に示すように、関連上位システム構成情報は、クラウド連携管理装置１が起動、停止、移行、スケールアウトの対象とする可能性がある上位システムのＩＤ（id）と、当該上位システムの移行先となりうる他クラウドのクラウド連携管理装置１のＩＤ（recovery_dst）、及び、当該上位システムのスケールアウト先となりうる他のクラウドのクラウド連携管理装置１のＩＤ（scaleout_dst）とを対応付けたリストからなる。
【００５３】
続いて、本実施形態のクラウド間リソース連携システムの動作について説明する。
まず、各クラウドにおいて、クラウド連携管理装置１のクラウド内情報更新部１４１は、管理ＩＦ部１２により入力された他クラウド情報及び料金情報を記憶部１１に書き込む。また、クラウド連携管理装置１のクラウド内情報更新部１４１は、自クラウドのクラウドフロントエンド装置３へ仮想マシン、ＣＰＵアーキテクチャ、ＯＳの情報を要求する。クラウドフロントエンド装置３には、予め自クラウドの仮想化装置５がサポートする仮想マシンのイメージフィル名、ＣＰＵアーキテクチャ情報、ＯＳ情報が登録されている。クラウドフロントエンド装置３は、問合せに対応して、予め記憶していた仮想マシンのイメージファイル名、ＣＰＵアーキテクチャ情報、ＯＳ情報を自クラウドのクラウド連携管理装置１へ送信する。クラウド連携管理装置１のクラウド内情報更新部１４１は、クラウドフロントエンド装置３から受信した仮想マシンのイメージファイル名、ＣＰＵアーキテクチャ情報、ＯＳ情報をそれぞれ、自クラウド連携管理装置１のＩＤに対応した記憶部１１内の仮想マシンリスト情報、ＣＰＵアーキテクチャ情報、ＯＳ情報に書き込む。
【００５４】
また、各クラウドにおいて、クラウド連携管理装置１のクラウド内情報更新部１４１は、定期的に自クラウドのクラウドフロントエンド装置３へリソース状態の問合せを出力する。クラウドフロントエンド装置３は、リソース状態の問合せを受信すると、自クラウド内の全ての仮想化装置５それぞれからメモリ量、空きメモリ量、ディスク容量、空きディスク容量、ＣＰＵ数、及び、空きＣＰＵ数などのリソース状態を読み出してクラウド連携管理装置１へ出力する。クラウド連携管理装置１のクラウド内情報更新部１４１は、クラウドフロントエンド装置３から受信した各仮想化装置５のリソース状態に基づき、クラウド全体のメモリ総量、空きメモリ総量、ディスク総量、空きディスク総量、ＣＰＵ総数、及び、空きＣＰＵ総数を算出し、算出結果により自クラウド連携管理装置１のＩＤに対応した記憶部１１内のリソース情報を更新する。なお、クラウド全体のメモリ総量、ディスク総量、ＣＰＵ総数については、管理ＩＦ１１から入力された内容を書き込んでもよい。
【００５５】
一方、各クラウドにおいて、クラウド連携管理装置１のクラウド間情報更新部１４２は、定期的に、記憶部１１に記憶している自クラウドの上位システム構成情報、上位システム手順データ、リソース情報、ＣＰＵアーキテクチャ情報、ＯＳ情報、及び、料金情報を連携情報として読み出すと、読み出した連携情報に自クラウド連携管理装置１のＩＤを付加し、他クラウド情報に設定されている他のクラウド連携管理装置１のＩＰアドレスをあて先として送信する。あて先となったクラウド連携管理装置１のクラウド間情報更新部１４２は、受信した更新情報と、この更新情報送信元のクラウド連携管理装置１のＩＤとを対応づけて記憶部１１に書き込む。
【００５６】
上記の手順により、各クラウドのクラウド連携管理装置１間は、定期的に上位システム構成情報、上位システム手順データ、リソース情報、ＣＰＵアーキテクチャ情報、ＯＳ情報、及び、料金情報を交換して更新する。
【００５７】
各クラウドにおいて、クラウド連携管理装置１の関連上位システム情報更新部１４３は、記憶部１１に記憶されている自クラウドの上位システム構成情報を１つ特定し、特定した上位システム構成情報から仮想マシンの起動要件を読み出す。関連上位システム情報更新部１４３は、他のクラウド連携管理装置１のＩＤと対応付けられている記憶部１１内の仮想マシンリスト情報、ＣＰＵアーキテクチャ情報、及び、ＯＳ情報を参照して、上位システムの仮想マシンの起動要件を満たす他のクラウドを特定し、移行先クラウドと判断する。例えば、クラウドＡのクラウド連携管理装置１ａの関連上位システム情報更新部１４３ａは、自クラウドの上位システムＷの上位システム構成情報から各仮想マシンの起動要件を読み出す。関連上位システム情報更新部１４３ａは、クラウド連携管理装置１ｂのＩＤに対応付けられた仮想マシンリスト情報、ＣＰＵアーキテクチャ情報、ＯＳ情報に、読み出した各仮想マシンの起動要件により示される全ての仮想マシンイメージフィアル名、全てのＯＳ名、全てのＣＰＵアーキテクチャ名が含まれていれば、クラウドＢは上位システムＷの移行先クラウドと判断する。関連上位システム情報更新部１４３は、同様の判断をさらに他のクラウドの仮想マシンリスト情報についても行う。
【００５８】
また、関連上位システム情報更新部１４３は、特定した自クラウドの上位システム構成情報からスケールアウト可能な仮想マシンの起動要件ＩＤを読み出す。関連上位システム情報更新部１４３は、他のクラウド連携管理装置１のＩＤと対応付けけられている記憶部１１内の仮想マシンリスト情報、ＣＰＵアーキテクチャ情報、及び、ＯＳ情報を参照して、上位システムを構成するスケールアウト可能な仮想マシンの起動要件を満たす他のクラウドを特定し、スケールアウト先クラウドと判断する。例えば、クラウドＡのクラウド連携管理装置１ａの関連上位システム情報更新部１４３ａは、自クラウドの上位システムＷの上位システム構成情報からスケールアウト可能な仮想マシンの起動要件を読み出す。さらに関連上位システム情報更新部１４３ａは、クラウド連携管理装置１ｎのＩＤに対応付けられた仮想マシンリスト情報、ＣＰＵアーキテクチャ情報、ＯＳ情報に、読み出したスケールアウト可能な各仮想マシンの起動要件により示される全ての仮想マシンイメージフィアル名、全てのＯＳ名、全てのＣＰＵアーキテクチャ名が含まれていれば、クラウドＮは上位システムＷのスケールアウト先クラウドと判断する。関連上位システム情報更新部１４３は、同様の判断をさらに他のクラウドの仮想マシンリスト情報についても行う。
【００５９】
関連上位システム情報更新部１４３は、自クラウドの上位システム構成情報から読み出した上位システムＩＤと、移行先クラウドと判断した他のクラウドのクラウド連携管理装置１のＩＤと、スケールアウト先クラウドと判断した他のクラウドのクラウド連携管理装置１のＩＤとを関連上位システム構成情報に書き込む。
関連上位システム情報更新部１４３は、記憶部１１に記憶されている自クラウドの上位システム構成情報を順に特定し、上記と同様の処理を行なう。
【００６０】
なお、関連上位システム情報更新部１４３は、以下の処理により、移行先クラウド、スケールアウト先クラウドと判断したクラウドについて優先度付けを行なったり、移行先クラウド、スケールアウト先クラウドの対象外としたりすることも可能である。
【００６１】
（１）自クラウドの料金情報と、移行先クラウド、スケールアウト先クラウドの料金情報を比較し、金額が近いほど移行先クラウド、スケールアウト先クラウドの優先度を高くする。また、金額に所定以上の乖離がある場合、移行先クラウド、スケールアウト先クラウドの対象外としてもよい。
【００６２】
（２）移行先クラウド、スケールアウト先クラウドのリソース情報を参照し、空きメモリ総量、空きディスク総量、空きＣＰＵ総数が大きい順に移行先クラウド、スケールアウト先クラウドの優先度を高くする。メモリ総量に対する空きメモリ総量の割合、ディスク総量に対する空きディスク総量の割合、ＣＰＵ総数に対する空きＣＰＵ総数の割合が高い順に移行先クラウド、スケールアウト先クラウドの優先度を高くしてもよい。メモリ、ディスク、ＣＰＵのいずれを優先するかは任意である。
【００６３】
なお、関連上位システム情報更新部１４３は、（１）、（２）のいずれかを用いてもよく、両方を用いてもよい。両方を用いる場合、いずれを優先するかは任意である。
【００６４】
図１６〜図１９は、上位システムのクラウド間移行手順を示す図である。以下では、移行元クラウドをクラウドＡ、移行先クラウドをクラウドＢ、移行対象の上位システムをクラウドＡ内において起動している仮想マシンから構成される上位システムＷとして説明する。
【００６５】
図１６において、クラウドＡに属するクラウド連携管理装置１ａの管理ＩＦ部１２ａは、クラウド間移行指示と、クラウド間移行対象の上位システムＷのＩＤとを含んだコマンドを受信し、構成制御部１５ａへ出力する（ステップＳ１０５）。このコマンドは、クラウド連携管理装置１ａに備えられた入力手段によりユーザが入力してもよく、クラウド連携管理装置１ａとネットワーク７を介して接続される他の装置から受信してもよい。構成制御部１５ａのリスト提示部１５１ａは、コマンドに設定されている上位システムＷのＩＤをキーにして記憶部１１ａに記憶されている関連上位システム構成情報を特定し、特定した関連上位システム構成情報から、移行先となりうる他クラウドのクラウド連携管理装置１のＩＤを読み出す。リスト提示部１５１ａは、読み出した他クラウド連携管理装置１のＩＤのリスト、または、これらの他クラウド連携管理装置１のＩＤによって特定されるクラウドの名称のリストを移行先候補情報として管理ＩＦ部１２ａに出力する。管理ＩＦ部１２ａは、リスト提示部１５１ａから受信した移行先候補情報を、クラウド連携管理装置１が備えるディスプレイ、あるいは、コマンド送信元の他の装置のディスプレイに出力する（ステップＳ１１０）。読み出した他クラウド連携管理装置１のＩＤに優先度が付加されている場合は、その優先度順に表示するなど、各移行先クラウドの優先度の情報も併せて出力する。
【００６６】
ユーザは、出力された移行先候補情報の中から移行先としてクラウドＢを選択し、選択したクラウドＢを特定するクラウド選択情報を入力する。クラウド連携管理装置１ａの管理ＩＦ部１２ａは、入力されたクラウド選択情報を構成制御部１５ａに出力する（ステップＳ１１５）。
構成制御部１５ａの指示出力部１５２ａは、上位システムＷのＩＤと、クラウド間移行の移行元手順の実行指示とを手順実行部１５３ａに出力する（ステップＳ１２０）。さらに、指示出力部１５２ａは、クラウド選択情報によりクラウドＢが選択されたことを検出すると、クラウドＢに属するクラウド連携管理装置１ｂのＩＤをキーにして、他クラウド情報からクラウド連携管理装置１ｂのＩＰアドレスを読み出す。指示出力部１５２ａは、読み出したＩＰアドレスをあて先として、上位システムＷのＩＤ、及び、自クラウド連携管理装置１ａのＩＤと、クラウド間移行の移行先手順の実行指示とを送信する（ステップＳ１２５）。
【００６７】
クラウド連携管理装置１ａの手順実行部１５３ａは、自クラウド連携管理装置１ａのＩＤに対応して記憶部１１ａに記憶されている上位システム手順データの中から、上位システムＷのＩＤが設定されている移行手順の上位システム手順データを特定する。手順実行部１５３ａは、特定した上位システム手順データから移行元手順を読み出すと（ステップＳ１３０）、この読み出した移行元手順の実行を開始する（ステップＳ１３５）。ここでは、移行対象が上位システムＷであり、図７に示す上位システム手順データから移行元手順が読み出されたものとして説明する。
【００６８】
一方、クラウド連携管理装置１ｂの手順実行部１５３ｂは、連携ＩＦ部１３ｂを介して、クラウド連携管理装置１ａから送信された上位システムＷのＩＤ、及び、クラウド連携管理装置１ａのＩＤと、クラウド間移行の移行先手順の実行指示とを受信する。手順実行部１５３ｂは、クラウド連携管理装置１ａのＩＤに対応して記憶部１１ｂに記憶されている上位システム手順データの中から、上位システムＷのＩＤが設定されている移行手順の上位システム手順データを特定する。手順実行部１５３ｂは、この特定した上位システム手順データから移行先手順を読み出すと（ステップＳ１４０）、この読み出した移行先手順の実行を開始する（ステップＳ１４５）。ここでは、移行対象が上位システムＷであり、図７に示す上位システム手順データから移行先手順が読み出されたものとして説明する。
【００６９】
クラウド連携管理装置１ａの手順実行部１５３ａは、移行元手順が開始されると、まず、仮想マシン終了順序を決定するため、クラウド連携管理装置１ａのＩＤ及び上位システムＷのＩＤに対応した上位システム構成情報を特定し、記憶部１１ａから読み出す。手順実行部１５３ａは、上位システム構成情報により示される各仮想マシン内のサービスの依存関係に基づき、他の仮想マシンへの依存が最も深い仮想マシンから順に終了順序を決定する（ステップＳ１５０）。図４に示す上位システム構成情報の場合、仮想マシンＸのサービスβが仮想マシンＹのサービスγに依存していることから、仮想マシンＸが仮想マシンＹに依存していることが、仮想マシンＹのサービスγが仮想マシンＺのサービスδに依存していることから、仮想マシンＹが仮想マシンＺに依存していることが、仮想マシンＺのサービスδが他のサービスに依存していないことから、γ仮想マシンＺは他の仮想マシンに依存していないことがわかる。手順実行部１５３ａは、他の仮想マシンに依存しない仮想マシンＺを最後に終了し、この仮想マシンＺに依存する仮想マシンＹを仮想マシンＺの前に終了し、仮想マシンＹに依存する仮想マシンＸを仮想マシンＹの前に終了すると判断する。よって、終了順序は仮想マシンＸ、Ｙ、Ｚの順となる。手順実行部１５３ａは、この決定した終了順序に従って仮想マシンを終了する。
【００７０】
図１７において、手順実行部１５３ａは、まず、仮想マシンＸを最初に終了するため、移行元手順に含まれる仮想マシンＸ終了スクリプトを読み出して実行する。手順実行部１５３ａは、ステップＳ１５０において読み出した上位システム構成情報から全ての仮想マシンＸのＩＰアドレスを読み出すと、読み出したＩＰアドレスをあて先として仮想マシンＸにサービスαの停止指示を送信する（ステップＳ２０５）。仮想マシンＸのエージェントは、サービスαを停止する（ステップＳ２１０）。次に、手順実行部１５３ａは、仮想マシンＸ終了スクリプトに従ってサービスβの停止指示を仮想マシンＸに送信する（ステップＳ２１５）。仮想マシンＸのエージェントは、サービスβを停止する（ステップＳ２２０）。これは、サービスαはサービスβに依存しているため、サービスαから終了するものである。
【００７１】
続いて、手順実行部１５３ａは、仮想マシンＸ終了スクリプトに従い、クラウドフロントエンド装置３ａに対して仮想マシンＸの停止指示を送信する（ステップＳ２２５）。クラウドフロントエンド装置３ａは、仮想マシンＸを起動している仮想化装置５ａに対して仮想マシンＸの停止指示を出力する。仮想マシンＸの停止指示を受信した仮想化装置５ａは、仮想マシンＸを停止する。これにより、仮想化装置５ａにおいて実行されていた仮想マシンＸのインスタンスが解放される。手順実行部１５３ａは、ステップＳ１５０において特定した記憶部１１ａ内の上位システム構成情報から仮想マシンＸ（サービスα及びサービスβ）のＩＰアドレスを削除し、仮想マシンＸの起動台数を０に更新する。
【００７２】
手順実行部１５３ａは、仮想マシンＸ終了スクリプトの実行を終了すると、続いて仮想マシンＹ終了スクリプトを実行する。手順実行部１５３ａは、上位システム構成情報から全ての仮想マシンＹのＩＰアドレスを読み出すと、読み出したＩＰアドレスをあて先として仮想マシンＹにサービスγの停止指示を送信し（ステップＳ２３０）、仮想マシンＹのエージェントはサービスγを停止する（ステップＳ２３５）。続いて、手順実行部１５３ａは、クラウドフロントエンド装置３ａに仮想マシンＹの停止指示を送信し（ステップＳ２４０）、クラウドフロントエンド装置３ａは、仮想マシンＹを起動している仮想化装置５ａに対して仮想マシンＹの停止指示を出力する。仮想マシンＹの停止指示を受信した仮想化装置５ａは、仮想マシンＹを停止する。手順実行部１５３ａは、ステップＳ１５０において特定した記憶部１１ａ内の上位システム構成情報から仮想マシンＹのＩＰアドレスを削除し、仮想マシンＹの起動台数を０に更新する。
【００７３】
手順実行部１５３ａは、仮想マシンＹ終了スクリプトの実行を終了すると、続いて仮想マシンＺ終了スクリプトを実行する。手順実行部１５３ａは、上位システム構成情報から仮想マシンＺのＩＰアドレスを読み出すと、読み出したＩＰアドレスをあて先として仮想マシンＺにサービスδの停止指示を送信し（ステップＳ２４５）、仮想マシンＺのエージェントはサービスδを停止する（ステップＳ２５０）。さらに、手順実行部１５３ａは、仮想マシンＺに外部ストレージ切り離し指示を送信し（ステップＳ２５５）、仮想マシンＺのエージェントは外部ストレージを切り離す（ステップＳ２６０）。
【００７４】
手順実行部１５３ａは、クラウドフロントエンド装置３ａに外部ストレージ割り当て解除指示を送信し（ステップＳ２６５）、クラウドフロントエンド装置３ａは、仮想マシンＺを起動している仮想化装置５ａに対して仮想マシンＺの外部ストレージ割り当て解除指示を出力する。当該指示を受信した仮想化装置５ａは、仮想マシンＺへの外部ストレージの割り当てを解除する。
さらに、手順実行部１５３ａは、クラウドフロントエンド装置３ａに仮想マシンＺの停止指示を送信し（ステップＳ２７０）、クラウドフロントエンド装置３ａは、仮想マシンＺを起動している仮想化装置５ａに対して仮想マシンＺの停止指示を出力する。仮想マシンＺの停止指示を受信した仮想化装置５ａは、仮想マシンＺを停止する。手順実行部１５３ａは、ステップＳ１５０において特定した記憶部１１ａ内の上位システム構成情報から仮想マシンＺのＩＰアドレスを削除し、仮想マシンＺの起動台数を０に更新する。
【００７５】
クラウド連携管理装置１ａのクラウド間情報更新部１４２ａは、クラウド連携管理装置１ａのＩＤ及び上位システムＷのＩＤと、上位システム構成情報から削除された仮想マシンＸ，Ｙ，ＺのＩＰアドレス、及び、更新された仮想マシンＸ、Ｙ、Ｚの起動台数とをクラウド連携管理装置１ｂを含む他のクラウド連携管理装置１に上位システム構成更新情報として送信する。他のクラウド連携管理装置１のクラウド間情報更新部１４２は、受信した上位システム構成更新情報により、クラウド連携管理装置１ａのＩＤ及び上位システムＷのＩＤに対応して記憶部１１に記憶されている上位システム更新情報を更新する。
【００７６】
手順実行部１５３ａは、仮想マシンの終了スクリプトの実行を終えると、移行先クラウドのクラウド連携管理装置１ｂに対して、仮想マシン終了通知を送信する（ステップＳ２７５）。移行先クラウドのクラウド連携管理装置１ｂの手順実行部１５３ｂは、移行先スクリプトの開始後、移行元からの仮想マシン終了待ち状態となっている（ステップＳ２８０）。
【００７７】
図１８において、移行先クラウドのクラウド連携管理装置１ｂの手順実行部１５３ｂは、クラウド連携管理装置１ａから送信された仮想マシン終了通知を受信すると、仮想マシン起動順序を決定するため、クラウド連携管理装置１ａのＩＤ及び上位システムＷのＩＤに対応した上位システム構成情報を特定し、記憶部１１ｂから読み出す。手順実行部１５３ｂは、上位システム構成情報により示される各仮想マシンの依存関係に基づき、他の仮想マシンへ依存していない仮想マシンから順に起動順序を決定する（ステップＳ３０５）。図４に示す上位システム構成情報の場合、他の仮想マシンには依存しない仮想マシンＺを最初に起動し、この仮想マシンＺに依存する仮想マシンＹを仮想マシンＺの次に起動し、仮想マシンＹに依存する仮想マシンＸを仮想マシンＹの次に起動すると判断する。よって、起動順序は仮想マシンＺ、Ｙ、Ｘの順となる。また、各仮想マシンのデフォルト台数を読み出す。手順実行部１５３ｂは、この決定した起動順序に従って仮想マシンを起動する。
【００７８】
手順実行部１５３ｂは、まず、仮想マシンＺを最初に起動するため、移行先手順に含まれる仮想マシンＺ起動スクリプトを読み出して実行する。手順実行部１５３ｂは、仮想マシンＺ起動スクリプトに従い、クラウドフロントエンド装置３ｂに対して仮想マシンＺの起動指示を送信する（ステップＳ３１０）。この仮想マシンの起動指示には、仮想マシンＺのデフォルト台数「１」が起動数として設定される。手順実行部１５３ｂは、仮想マシンＺの起動指示を送信した後、仮想マシンＺとの通信が可能となるまで待ち状態となる。
【００７９】
クラウドフロントエンド装置３ｂは、仮想マシンＺの起動指示を受信すると、仮想マシンＺを起動すべき仮想化装置５ｂを選択するとともに、仮想マシンＺに対してＩＰアドレスを割り当てる。クラウドフロントエンド装置３ｂは、選択した仮想化装置５ｂに、仮想マシンＺの起動指示と割り当てたＩＰアドレスとを送信するとともに、割り当てたＩＰアドレスをクラウド連携管理装置１ｂに通知する。仮想マシンＺの起動指示及びＩＰアドレスを受信した仮想化装置５ｂは、仮想マシンＺを起動し、受信したＩＰアドレスを起動した仮想マシンＺに設定すると、当該ＩＰアドレスを送信元として設定した起動通知信号をブロードキャスト等により送信する（ステップＳ３１５）。クラウド連携管理装置１ｂの手順実行部１５３ｂは、クラウドフロントエンド装置３ｂから受信したＩＰアドレスが送信元として設定された起動通知信号を受信すると（ステップＳ３２０）、ステップＳ３０５において特定した記憶部１１ｂ内の上位システム構成情報に仮想マシンＺのＩＰアドレスと、仮想マシンＺの起動台数を書き込む。
【００８０】
次に、手順実行部１５３ｂは、仮想マシンＺ起動スクリプトに従い、クラウドフロントエンド装置３ｂに対して外部ストレージの割り当て指示を送信する（ステップＳ３２５）。クラウドフロントエンド装置３ｂは、仮想マシンＺを起動している仮想化装置５ｂに、仮想マシンＺへの外部ストレージの割当て指示を送信し、当該指示を受信した仮想化装置５ｂは、仮想マシンＺに外部ストレージを割り当てる。
さらに、手順実行部１５３ｂは、仮想マシンＺ起動スクリプトに従い、受信した仮想マシンのＩＰアドレスをあて先として仮想マシンＺに外部ストレージの取り付け指示を送信する（ステップＳ３３０）、仮想マシンＺのエージェントは、外部ストレージの取り付けを実行する（ステップＳ３３５）。
続いて、手順実行部１５３ｂは、仮想マシンＺ起動スクリプトに従い、仮想マシンＺにサービスδの起動指示を送信する（ステップＳ３４０）、仮想マシンＺのエージェントは、サービスδを起動する（ステップＳ３４５）。
【００８１】
クラウド連携管理装置１ｂの手順実行部１５３ｂは、仮想マシンＺ起動スクリプトの実行を終了すると、移行先手順に含まれる仮想マシンＹ起動スクリプトを読み出して実行する。
手順実行部１５３ｂは、仮想マシンＹ起動スクリプトに従い、クラウドフロントエンド装置３ｂに対して仮想マシンＹの起動指示を送信する（ステップＳ３５０）。この仮想マシンの起動指示には、仮想マシンＹのデフォルト台数「２」が起動数として設定される。手順実行部１５３ｂは、仮想マシンＹの起動指示を送信した後、仮想マシンＹとの通信が可能となるまで待ち状態となる。
【００８２】
クラウドフロントエンド装置３ｂは、仮想マシンＹの起動指示を受信すると、起動数分の仮想マシンＹを起動すべき仮想化装置５ｂを選択するとともに、仮想マシンＹに対してＩＰアドレスを割り当てる。仮想マシンＹを起動すべき仮想化装置５ｂは、１台でもよく２台でもよい。クラウドフロントエンド装置３ｂは、選択した仮想化装置５ｂに、仮想マシンＹの起動指示と割り当てたＩＰアドレスとを送信するとともに、割り当てたＩＰアドレスをクラウド連携管理装置１ｂに通知する。仮想マシンＹの起動指示及びＩＰアドレスを受信した仮想化装置５ｂは、仮想マシンＹを起動し、受信したＩＰアドレスを起動した仮想マシンＹに設定すると、当該ＩＰアドレスを送信元として設定した起動通知信号をブロードキャスト等により送信する（ステップＳ３５５）。クラウド連携管理装置１ｂの手順実行部１５３ｂは、クラウドフロントエンド装置３ｂから受信したＩＰアドレスが送信元として設定された起動通知信号を受信すると（ステップＳ３６０）、ステップＳ３０５において特定した記憶部１１ｂ内の上位システム構成情報に仮想マシンＹのＩＰアドレスと、仮想マシンＹの起動台数を書き込む。
【００８３】
次に、手順実行部１５３ｂは、仮想マシンＹ起動スクリプトに従い、仮想マシンＹにサービスγの設定ファイル更新指示を送信する（ステップＳ３６５）。設定ファイル更新指示に含まれるサービスγの設定ファイルには、上位システム構成情報に記述されている可変パラメータ指定に従って取得した仮想マシンＺのＩＰアドレスが含まれる。仮想マシンＹのエージェントは、設定ファイル更新指示に含まれる設定ファイルに従って、サービスγの設定ファイルを更新する（ステップＳ３７０）。
続いて、手順実行部１５３ｂは、仮想マシンＹ起動スクリプトに従い、仮想マシンＹにサービスγの起動指示を送信する（ステップＳ３７５）、仮想マシンＹのエージェントは、サービスγを起動する（ステップＳ３８０）。
【００８４】
図１９において、クラウド連携管理装置１ｂの手順実行部１５３ｂは、仮想マシンＹ起動スクリプトの実行を終了すると、移行先手順に含まれる仮想マシンＸ起動スクリプトを読み出して実行する。
手順実行部１５３ｂは、仮想マシンＸ起動スクリプトに従い、クラウドフロントエンド装置３ｂに対して仮想マシンＸの起動指示を送信する（ステップＳ４０５）。この仮想マシンの起動指示には、仮想マシンＸのデフォルト台数「２」が起動数として設定される。手順実行部１５３ｂは、仮想マシンＸの起動指示を送信した後、仮想マシンＸとの通信が可能となるまで待ち状態となる。
【００８５】
クラウドフロントエンド装置３ｂは、仮想マシンＸの起動指示を受信すると、起動数分の仮想マシンＸを起動すべき仮想化装置５ｂを選択するとともに、仮想マシンＸに対してＩＰアドレスを割り当てる。クラウドフロントエンド装置３ｂは、選択した仮想化装置５ｂに、仮想マシンＸの起動指示と割り当てたＩＰアドレスとを送信するとともに、割り当てたＩＰアドレスをクラウド連携管理装置１ｂに通知する。仮想マシンＸの起動指示及びＩＰアドレスを受信した仮想化装置５ｂは、仮想マシンＸを起動し、受信したＩＰアドレスを起動した仮想マシンＸに設定すると、当該ＩＰアドレスを送信元として設定した起動通知信号をブロードキャスト等により送信する（ステップＳ４１０）。クラウド連携管理装置１ｂの手順実行部１５３ｂは、クラウドフロントエンド装置３ｂから受信したＩＰアドレスが送信元として設定された起動通知信号を受信すると（ステップＳ４１５）、ステップＳ３０５において特定した記憶部１１ｂ内の上位システム構成情報に仮想マシンＸ（サービスα及びサービスβ）のＩＰアドレスと、仮想マシンＸの起動台数を書き込む。
【００８６】
次に、手順実行部１５３ｂは、仮想マシンＸ起動スクリプトに従い、仮想マシンＸにサービスαの設定ファイル更新指示を送信する（ステップＳ４２０）。仮想マシンＸのエージェントは、受信した設定ファイル更新指示に含まれる設定ファイルに従って、サービスβの設定ファイルを更新する（ステップＳ４２５）。続いて、手順実行部１５３ｂは、仮想マシンＸ起動スクリプトに従い、仮想マシンＸにサービスβの起動指示を送信する（ステップＳ４３０）、仮想マシンＸのエージェントは、サービスβを起動する（ステップＳ４３５）。
【００８７】
さらに、手順実行部１５３ｂは、仮想マシンＸ起動スクリプトに従い、仮想マシンＸにサービスαの設定ファイル更新指示を送信する（ステップＳ４４０）。設定ファイル更新指示に含まれるサービスαの設定ファイルには、上位システム構成情報に記述されている可変パラメータ指定に従って取得した仮想マシンＹのＩＰアドレスが含まれる。仮想マシンＸのエージェントは、受信した設定ファイル更新指示に含まれる設定ファイルに従って、サービスαの設定ファイルを更新する（ステップＳ４４５）。続いて、手順実行部１５３ｂは、仮想マシンＸ起動スクリプトに従い、仮想マシンＸにサービスαの起動指示を送信する（ステップＳ４５０）、仮想マシンＸのエージェントは、サービスαを起動する（ステップＳ４５５）。
【００８８】
クラウド連携管理装置１ｂのクラウド間情報更新部１４２ｂは、クラウド連携管理装置１ａのＩＤ及び上位システムＷのＩＤと、上位システム構成情報に書き込んだ仮想マシンＸ，Ｙ，ＺのＩＰアドレス、及び、更新された仮想マシンＸ、Ｙ、Ｚの起動台数を他のクラウド連携管理装置１に上位システム構成更新情報として送信する。他のクラウド連携管理装置１のクラウド間情報更新部１４２は、受信した上位システム構成更新情報により、クラウド連携管理装置１ａのＩＤ及び上位システムＷのＩＤに対応して記憶部１１に記憶されている上位システム更新情報を更新する。
【００８９】
続いてクラウド連携管理装置１ｂの手順実行部１５３ｂは、移行先手順に従って、ＤＮＳ更新を行なう（ステップＳ４６０）。手順実行部１５３ｂは、ＤＮＳサーバ８に対して、上位システムＸのＵＲＬなどのウェブアドレスと、仮想マシンＸのＩＰアドレスの登録指示を出力する。ＤＮＳサーバ８は、受信した上位システムＸのウェブアドレスと、仮想マシンＸのＩＰアドレスとを対応付けて記憶する。これにより、ＤＮＳサーバ８は、ユーザ端末９から上位システムＸのウェブアドレスを受信した場合、仮想マシンＸのＩＰアドレスを返送する。
【００９０】
なお、上位システムが用いるユーザ設定のデータベースの内容は、通常、なんらかの方法によってクラウド外の装置等にバックアップされていることがほとんどである。そのため、上位システムにおいてデータベースとして動作する仮想マシンに記憶させるデータの設定内容は、この別途保存しておいたバックアップデータから取得して設定する。
【００９１】
上記手順において、移行元のクラウド連携管理装置１は、全ての仮想マシンが停止した後に移行先のクラウド連携管理装置１に終了を通知しているが、最初の仮想マシンを停止した時点で移行先のクラウド連携管理装置１に終了を通知してもよい。これは、何れかの仮想マシンが停止した時点で移行元クラウドにおける上位システムの提供が停止するためである。
【００９２】
移行手順は、リソースが不足した場合のほか、例えば、激甚災害などが発生し、上位システムを提供しているクラウドサービス提供システムを構成する全てあるいは広範囲の装置がダメージを負った場合に、他のクラウドにおいて上位システムをリカバリするために使用することができる。このような場合、移行元からの通知が移行先クラウドに送信されない場合があるため、上位システム手順データの移行先手順は、移行元側からの終了通知待ち開始から所定時間が経過し、終了通知待ちタイマがタイムアウトすると、次の手順を行なうようにする。
【００９３】
起動手順、終了手順はそれぞれ、上述した移行手順における移行先手順、移行元手順と同様であるが、移行先リストの提示は行わない。また、起動手順、終了手順には、移行先手順、移行元手順におけるクラウド間の通知の送受信や、クラウド間の通知待ち手順は含まれない。
【００９４】
なお、クラウドフロントエンド装置３は、１つの仮想マシンに対して外向ＩＰアドレスと内向ＩＰアドレスの２つのＩＰアドレス割り当ててもよい。この場合、クラウド連携管理装置１の構成制御部１５は、外向ＩＰアドレスをＤＮＳサーバ８に登録し、他の仮想マシンには内向ＩＰアドレスを通知する。これにより、ユーザ端末９はＤＮＳサーバ８から通知された外向ＩＰアドレスを用いてクラウドフロントエンド装置３にアクセスし、クラウドフロントエンド装置３において外向ＩＰアドレスから内向ＩＰアドレスへ変換を行ってユーザ端末９からのアクセスを振り分けるようにする。一方、仮想マシン間では内向ＩＰアドレスを用いて直接通信を行う。
【００９５】
図２０及び図２１は、上位システムのクラウド間スケールアウト手順を示す図である。以下では、スケールアウト元クラウドをクラウドＡ、スケールアウト先クラウドをクラウドＢ、スケールアウト対象の仮想マシンをクラウドＡ内において起動している仮想マシンから構成される上位システムＶの仮想マシンＰとして説明する。仮想マシンＰは、分散処理ミドルウェアであり、他の仮想マシンＰと相互動作するため、各仮想マシンＰにおいて、他の仮想マシンＰのＩＰアドレスが必要となる。
【００９６】
図２０において、クラウドＡに属するクラウド連携管理装置１ａの管理ＩＦ部１２ａは、クラウド間スケールアウト指示と、スケールアウトを行なう上位システムＶのＩＤとを含んだコマンドを受信し、構成制御部１５ａへ出力する（ステップＳ５０５）。構成制御部１５ａのリスト提示部１５１ａは、コマンドに設定されている上位システムＶのＩＤをキーにして記憶部１１ａに記憶されている関連上位システム構成情報を特定し、特定した関連上位システム構成情報から、スケールアウト先となりうる他クラウドのクラウド連携管理装置１のＩＤを読み出す。リスト提示部１５１ａは、読み出した他クラウド連携管理装置１のＩＤのリスト、または、これらの他クラウド連携管理装置１のＩＤによって特定されるクラウドの名称のリストをスケールアウト先候補情報として管理ＩＦ部１２ａに出力する。管理ＩＦ部１２ａは、リスト提示部１５１ａから受信したスケールアウト先候補情報をディスプレイに出力する（ステップＳ５１０）。読み出した他クラウド連携管理装置１のＩＤに優先度が付加されている場合は、その優先度順に表示するなど、各スケールアウト先クラウドの優先度の情報も併せて出力する。
【００９７】
ユーザは、出力されたスケールアウト先候補情報の中からスケールアウト先のクラウドＢを選択し、選択したクラウドＢを特定するクラウド選択情報を入力するとともに、スケールアウト対象の仮想マシンＰと、クラウドＡにおける仮想マシンＰの追加起動数、及び、クラウドＢにおける仮想マシンＰの起動数とを入力する。クラウド連携管理装置１ａの管理ＩＦ部１２ａは、入力されたこれらの情報をスケールアウト指示情報として構成制御部１５ａに出力する（ステップＳ５１５）。
【００９８】
構成制御部１５ａの指示出力部１５２ａは、上位システムＶのＩＤと、スケールアウト指示情報と、スケールアウト元手順の実行指示とを手順実行部１５３ａに出力する（ステップＳ５２０）。さらに、指示出力部１５２ａは、スケールアウト指示情報内のクラウド選択情報によりクラウドＢが選択されたことを検出すると、クラウドＢに属するクラウド連携管理装置１ｂのＩＤをキーにして、他クラウド情報からクラウド連携管理装置１ｂのＩＰアドレスを読み出す。指示出力部１５２ａは、読み出したＩＰアドレスをあて先として、上位システムＶのＩＤ、及び、自クラウド連携管理装置１ａのＩＤと、スケールアウト先手順の実行指示とを送信する（ステップＳ５２５）。スケールアウト先手順実行指示には、スケールアウト対象の仮想マシンＰのＩＤと、クラウドＢにおける仮想マシンＰの起動数とが含まれる。
【００９９】
クラウド連携管理装置１ａの手順実行部１５３ａは、自クラウド連携管理装置１ａのＩＤに対応して記憶部１１ａに記憶されている上位システム手順データの中から、上位システムＶのＩＤが設定されているスケールアウト手順の上位システム手順データを特定する。手順実行部１５３ａは、特定した上位システム手順データからスケールアウト元手順を読み出すと（ステップＳ５３０）、この読み出したスケールアウト元手順の実行を開始する（ステップＳ５３５）。ここでは、図８に示す上位システム手順データからスケールアウト元手順が読み出されたものとして説明する。
【０１００】
一方、クラウド連携管理装置１ｂの手順実行部１５３ｂは、連携ＩＦ部１３ｂを介して、クラウド連携管理装置１ａから送信された上位システムＶのＩＤ、及び、クラウド連携管理装置１ａのＩＤと、スケールアウト先手順の実行指示とを受信する。クラウド連携管理装置１ｂの手順実行部１５３ｂは、クラウド連携管理装置１ａのＩＤに対応して記憶部１１ｂに記憶されている上位システム手順データの中から、上位システムＶのＩＤが設定されているスケールアウト手順の上位システム手順データを特定する。手順実行部１５３ｂは、この特定した上位システム手順データからスケールアウト先手順を読み出すと（ステップＳ５４０）、この読み出したスケールアウト先手順の実行を開始し（ステップＳ５４５）、スケールアウト元からの仮想マシン起動受信待ち状態となる（ステップＳ５５０）。ここでは、図８に示す上位システム手順データからスケールアウト先手順が読み出されたものとして説明する。
【０１０１】
クラウド連携管理装置１ａの手順実行部１５３ａは、スケールアウト元手順に従い、スケールアウト先クラウドであるクラウドＢに属するクラウド連携管理装置１ｂに対して仮想マシン起動開始信号を送信する（ステップＳ５５５）。
【０１０２】
図２１において、クラウド連携管理装置１ａの手順実行部１５３ａは、クラウドフロントエンド装置３ａに対して仮想マシンＰの起動指示を送信する（ステップＳ６０５）。この仮想マシンの起動指示には、仮想マシンＰの追加起動数が設定される。手順実行部１５３ａは、仮想マシンＰの起動指示を送信した後、仮想マシンＰとの通信が可能となるまで待ち状態となる。
【０１０３】
クラウドフロントエンド装置３ａ及び仮想化装置５ａは、図１８のステップＳ３５０〜Ｓ３６０と同様の処理を行なう（ステップＳ６１０、Ｓ６１５）。すなわち、クラウドフロントエンド装置３ａは、仮想マシンＰを起動する対象として選択した仮想化装置５ａに対して、仮想マシンＰの起動指示と割り当てたＩＰアドレスとを送信するとともに、割り当てたＩＰアドレスをクラウド連携管理装置１ａに通知する。仮想化装置５ａは、仮想マシンＰを起動して受信したＩＰアドレスを設定し、起動通知信号を送信する。クラウド連携管理装置１ａの手順実行部１５３ａは、起動通知信号を受信すると、上位システムＶのＩＤと対応づけて記憶部１１ａに記憶されている自クラウドの上位システム構成情報に、仮想マシンＰのＩＰアドレスを書き込むとともに、起動台数を更新する。クラウド間情報更新部１４２ａは、クラウド連携管理装置１ａのＩＤ及び上位システムＶのＩＤと、仮想マシンＰのＩＰアドレス及び起動台数とを他のクラウド連携管理装置１に通知する。クラウド連携管理装置１ｂを含む他のクラウド連携管理装置１のクラウド間情報更新部１４２は、クラウド連携管理装置１ａのＩＤ及び上位システムＶのＩＤに対応した上位システム構成情報に、受信した仮想マシンＰのＩＰアドレス及び起動台数を書き込む。
【０１０４】
手順実行部１５３ａは、スケールアウト元手順に従い、クラウド連携管理装置１ｂに仮想マシン立ち上げ完了を通知すると（ステップＳ６２０）、スケールアウト先からの仮想マシン立ち上げ完了通知の受信待ち状態となる。
【０１０５】
一方、図２０において、クラウド連携管理装置１ｂの手順実行部１５３ｂは、スケールアウト先手順に従い、スケールアウト元からの仮想マシン起動開始信号待ち状態となっており、ステップＳ５６０においてクラウド連携管理装置１ａから送信された仮想マシン起動開始信号を受信する（ステップＳ５６０）。
【０１０６】
図２１において、クラウド連携管理装置１ｂ、クラウドフロントエンド装置３ｂ、及び、仮想化装置５ｂは、上述したステップＳ６０５〜Ｓ６１５におけるクラウド連携管理装置１ａ、クラウドフロントエンド装置３ａ、及び、仮想化装置５ａと同様の処理を行なう（ステップＳ６３０〜Ｓ６４５）。これにより、仮想化装置５ｂ上に仮想マシンＰが起動され、クラウド連携管理装置１ｂはクラウド連携管理装置１ａに仮想マシン立ち上げ完了通知を送信した後、スケールアウト元からの仮想マシン立ち上げ完了通知の受信待ち状態となる。なお、ステップＳ６４５においては、クラウド連携管理装置１ｂの手順実行部１５３ｂは、クラウド連携管理装置１ａのＩＤ及び上位システムＶのＩＤと対応づけて記憶部１１ｂに記憶されている上位システム構成情報に、仮想マシンＰのＩＰアドレスを書き込むとともに、起動台数を更新する。そして、クラウド間情報更新部１４２ｂは、クラウド連携管理装置１ａのＩＤ及び上位システムＶのＩＤと、クラウドＢの仮想マシンＰのＩＰアドレス及び起動台数とを他のクラウド連携管理装置１に通知する。クラウド連携管理装置１ａを含む他のクラウド連携管理装置１のクラウド間情報更新部１４２は、クラウド連携管理装置１ａのＩＤ及び上位システムＶのＩＤに対応した上位システム構成情報に、受信した仮想マシンＰのＩＰアドレス及び起動台数を書き込む。
【０１０７】
クラウド連携管理装置１ａの手順実行部１５３ａは、スケールアウト先のクラウド連携管理装置１ｂから仮想マシン立ち上げ完了通知を受信すると、スケールアウト元手順に従い、仮想マシンＰが依存している仮想マシンＱに対してサービスζの設定ファイル更新指示を送信する（ステップＳ６５５）。設定ファイル更新指示に含まれるサービスζの設定ファイルには、上位システム構成情報から取得した全ての仮想マシンＰ、つまり、クラウドＡ及びクラウドＢにおいて起動されている仮想マシンＰのＩＰアドレスが含まれる。仮想マシンＱのエージェントは、受信した設定ファイル更新指示に含まれる設定ファイルに従って、内部に保持しているサービスζの設定ファイルを更新する（ステップＳ６６０）。
【０１０８】
続いて、クラウド連携管理装置１ａの手順実行部１５３ａは、スケールアウト元手順に従い、仮想マシンＰに対してサービスεの設定ファイル更新指示を送信する（ステップＳ６６５）。設定ファイル更新指示に含まれるサービスεの設定ファイルには、上位システム構成情報から取得した仮想マシンＱのＩＰアドレス及び全仮想マシンＰのＩＰアドレスが含まれる。仮想マシンＰのエージェントは、受信した設定ファイル更新指示に含まれる設定ファイルに従って、内部に保持しているサービスεの設定ファイルを更新する（ステップＳ６７０）。
手順実行部１５３ａは、スケールアウト元手順に従い、クラウド連携管理装置１ｂにスケールアウト元の設定完了を通知すると、スケールアウト先からの設定完了受信待ち状態となる（ステップＳ６７５）。
【０１０９】
クラウド連携管理装置１ｂの手順実行部１５３ｂは、スケールアウト先からの仮想マシン立ち上げ完了通知を受信すると、スケールアウト先手順に従い、仮想マシンＰに対してサービスεの設定ファイル更新指示を送信する（ステップＳ６８５）。設定ファイル更新指示に含まれるサービスεの設定ファイルには、上位システム構成情報から取得した仮想マシンＱのＩＰアドレス及び全仮想マシンＰのＩＰアドレスが含まれる。仮想マシンＰのエージェントは、受信した設定ファイル更新指示に含まれる設定ファイルに従って、内部に保持しているサービスεの設定ファイルを更新する（ステップＳ６９０）。
【０１１０】
手順実行部１５３ｂは、スケールアウト先手順に従い、クラウド連携管理装置１ａにスケールアウト元の設定完了を通知し、スケールアウト先手順を終了する（ステップＳ６９５）。
【０１１１】
そして、クラウド連携管理装置１ａの手順実行部１５３ａは、スケールアウト先からの設定完了通知を受信すると、スケールアウト元手順に従い、仮想マシンＱに対して、配下の仮想マシンＰも併せたサービスの停止指示を送信する（ステップＳ７００）。仮想マシンＱのエージェントは、サービスζの設定ファイルに記述されている仮想マシンＰのアドレスを用いて、全ての仮想マシンＰにサービスの停止を指示し、さらに、仮想マシンＱ内のサービスζを停止する。仮想マシンＰは、サービスεを停止する（ステップＳ７０５）。
【０１１２】
その後、クラウド連携管理装置１ａの手順実行部１５３ａは、スケールアウト元手順に従い、仮想マシンＱに対して、配下の仮想マシンＰも併せたサービスの起動指示を送信する（ステップＳ７１０）。仮想マシンＱのエージェントは、全ての仮想マシンＰにサービスの起動を指示し、さらに、仮想マシンＱ内のサービスζを起動する。仮想マシンＰは、サービスεを起動する（ステップＳ７１５）。
【０１１３】
なお、上記手順においては、ユーザにより入力されたクラウド選択情報、スケールアウト指示情報等に基づいて、クラウド連携管理装置１ａの指示出力部１５２ａからクラウド連携管理装置１ｂの手順実行部１５３ｂにクラウド間移行先手順の実行指示、スケールアウト先手順の実行指示を出力しているが、別の実施形態として、例えば、クラウド連携管理装置１ｂの管理ＩＦ１２ｂが、クラウド連携管理装置１ｂに備えられた入力手段、あるいは、ネットワーク７を介して接続される他の装置から、ユーザにより入力された指示を直接受け、手順実行部１５３ｂにクラウド間移行先手順、スケールアウト先手順の実行を指示してもよい。
【０１１４】
以上説明した本実施の形態のクラウド間リソース連携システムは、以下の特徴を有する。
【０１１５】
（１）上位システムの手順の記述ならびに交換及び実行が可能。
クラウド間リソース連携システムは、上位システム独自の手順を記述した上位システム手順データをクラウド間で交換し実行する。手順には、上位システムの動的情報、すなわち、仮想マシンやサービスの起動、停止、設定変更等であり、各クラウドにおける動作を記述する。
【０１１６】
（２）上位システムの構成情報の記述及び交換が可能。
クラウド間リソース連携システムは、上位システムの構成を記述した上位システム構成情報をクラウド間で交換する。この上位システム構成情報は、上位システムの静的情報な情報、すなわち、仮想マシンへのサービスの配置、必要なハードウェアスペック、基本的なネットワーク設定などであり、各クラウドによらない統一した記述となる。
【０１１７】
（３）上位システムの構成に関する更新を交換可能。
クラウド間リソース連携システムは、上位システム構成情報を定期的に交換し、また、更新があった場合にはその更新内容を通知するため、上位システムの構成に対する変更などの更新情報をクラウド間で交換可能である。
【０１１８】
上記により、クラウド間において上位システムの移行を行なう場合にも、既存の（クラウドを用いない）冗長化システムとは異なり、別途設備投資を行なう必要がない。また、リソース不足のために移行を行なう際の移行先クラウドや、激甚災害等により故障したクラウドシステムをリカバリできるクラウドを利用者に提示することが可能となる。この場合、移行先（リカバリ先）を選択する指標として、仮想マシンの種類、仮想マシン上で稼動可能なＯＳやアプリケーションの種類、ＣＰＵやディスクの空き状況、料金などを用いることができる。そして、移行先（リカバリ先）のクラウドが決定した後は、リカバリ処理が行われる。
【０１１９】
また、本実施の形態のクラウド間リソース連携システムは、クラウドを跨ってスケールアウトすることが可能である。
この場合、どの仮想マシンをスケールアウトするかを利用者が予め記述した上位システム構成情報に基づいてクラウド連携管理装置が決定する。また、その際の上位システム構成情報の記述条件としてスケールアウト可／不可、スケールアウトした場合の依存関係（スケールアウト先のインスタンスを参照するための設定条件の変更）などを柔軟に変更することができる。また、スケールアウト先のクラウド連携管理装置が、上位システム手順データを読み取り、上位システム構成情報に基づいてスケールアウトを実行する。その際にインスタンス間の依存関係を元に設定を変更するため、スケールアウト元のクラウド連携管理装置と情報（ＩＰアドレス/ポート番号等）の交換や同期処理のやりとりを行う。
【０１２０】
本実施形態によれば、複数のクラウドを連携させることにより、複数クラウド間における相互運用性及び移行容易性を高めることが可能となる。具体的な利用例としては、クラウドにおけるリソース不足や障害時に、別クラウドにおいて上位システムを復旧させるクラウド間移行や、クラウドにおけるリソース不足時に別クラウドのリソースを使用してシステムを拡張するスケールアウトを挙げることができる。
【０１２１】
上述のクラウド連携管理装置１、クラウドフロントエンド装置３、仮想化装置５、ＤＮＳサーバ８及びユーザ端末９は、内部にコンピュータシステムを有している。そして、クラウド連携管理装置１の構成管理部１４及び構成制御部１５、クラウドフロントエンド装置３、仮想化装置５、ＤＮＳサーバ８ならびにユーザ端末９の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、ＣＰＵ及び各種メモリやＯＳ、周辺機器等のハードウェアを含むものである。
【０１２２】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【０１２３】
なお、本発明は、上記において説明した実施形態に限定されるものではなく、その主旨を逸脱しない範囲において種々変更可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【符号の説明】
【０１２４】
１…クラウド連携管理装置
１１…記憶部（制御元記憶部、制御先記憶部）
１２…管理ＩＦ部
１３…連携ＩＦ部
１４…構成管理部
１４１…クラウド内情報更新部
１４２…クラウド間情報更新部（制御元クラウド間情報更新部、制御先クラウド間情報更新部）
１４３…関連上位システム情報更新部
１５…構成制御部
１５１…リスト提示部
１５２…指示出力部
１５３…手順実行部（制御元手順実行部、制御先手順実行部）
１６…クラウド操作ＩＦ部
１７…仮想マシン操作ＩＦ部
３…クラウドフロントエンド装置
５…仮想化装置
８…ＤＮＳサーバ
９…ユーザ端末
【図１】
0005530759.tif 000002
【図２】
0005530759.tif 000003
【図３】
0005530759.tif 000004
【図４】
0005530759.tif 000005
【図５】
0005530759.tif 000006
【図６】
0005530759.tif 000007
【図７】
0005530759.tif 000008
【図８】
0005530759.tif 000009
【図９】
0005530759.tif 000010
【図１０】
0005530759.tif 000011
【図１１】
0005530759.tif 000012
【図１２】
0005530759.tif 000013
【図１３】
0005530759.tif 000014
【図１４】
0005530759.tif 000015
【図１５】
0005530759.tif 000016
【図１６】
0005530759.tif 000017
【図１７】
0005530759.tif 000018
【図１８】
0005530759.tif 000019
【図１９】
0005530759.tif 000020
【図２０】
0005530759.tif 000021
【図２１】
0005530759.tif 000022