以下に、本願の開示する情報処理装置、情報処理システム、情報処理プログラム及び情報処理方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム、情報処理プログラム及び情報処理方法が限定されるものではない。
図1は、オートスケール機能を有するクラウドシステムの構成図である。クラウドシステム100は、クラウド管理装置1、ネットワーク装置4、リモートルータ6、DNS(Domain Name Service)装置7、並びに、サーバ装置21〜23及び31〜33を有する。
図1における一点鎖線は、クラウドシステム100を管理するための管理用ネットワークを表す。また、図1における実線は、クラウドシステム100のサービスを提供する業務ネットワークを表す。
サーバ装置21〜23及び31〜33は、ネットワーク装置4を介して、サーバ装置31〜33のサービスを操作端末8へ提供するためのネットワーク5に接続する。また、DNS装置7は、ネットワーク5に接続される。さらに、ネットワーク5には、リモートルータ6が接続される。そして、DNS装置7、並びにサーバ装置21〜23及び31〜33は、リモートルータ6を介して、操作端末8に接続する。
サーバ装置21〜23は、それぞれロードバランサ201〜203を動作させる。ロードバランサ201〜203は、操作端末8から送信された処理要求を後述する仮想マシン301〜303に割り当て、負荷分散を行う。ロードバランサ201〜203は、複数で1つのロードバランサの機能を実現する。具体的には、ロードバランサ201〜203は、操作端末8からアクセスするための仮想IP(Internet Protocol)アドレス及び分散先の仮想マシン301〜303のIPアドレスの情報を有する。サーバ装置21〜23は、いずれも同じ機能を有するため、以下では、それぞれを区別しない場合、単に「サーバ装置20」という。また、ロードバランサ201〜203は、いずれも同じ機能を有するため、以下では、それぞれを区別しない場合、単に「ロードバランサ200」という。このロードバランサ200が、「仮想マシンに対するデータの送受信を仲介する装置」の一例にあたる。
サーバ装置31〜33は、それぞれ仮想マシン301〜303を動作させる。仮想マシン301〜303は、操作端末8から送信された処理要求を受信し、受信した処理要求にしたがい処理を実行する。サーバ装置31〜33は、いずれも同じ機能を有するため、以下では、それぞれを区別しない場合、単に「サーバ装置30」という。また、仮想マシン301〜303は、いずれも同じ機能を有するため、以下では、それぞれを区別しない場合、単に「仮想マシン300」という。このロードバランサ200及び仮想マシン300が、「仮想リソース」の一例にあたる。また、サーバ装置20及び30が、「演算処理装置」の一例にあたる。
ネットワーク装置4は、ファイアウォール装置41、並びに、仮想ルータ42及び43を有する。ファイアウォール装置41は、サーバ装置20及び30へのアクセスを制限し安全性を確保する。ファイアウォール装置41は、仮想ルータ42を接続点としてネットワーク5とサーバ装置20及び30とを結ぶ経路に接続し、ネットワーク上のアクセスの監視を行う。
仮想ルータ42は、ネットワーク5と接続するルータである。また、仮想ルータ43は、サーバ装置20及び30と接続するルータである。ロードバランサ200及び仮想マシン300は、仮想ルータ42及び43を介して、ネットワーク5に接続する。ここで、本実施例では、サーバ装置20及び30をネットワーク5に接続するために仮想ルータ42及び43を用いたが、これは物理ルータを用いてもよい。以下では、仮想ルータ42及び43を区別しない場合、単に「仮想ルータ40」という場合がある。
DNS装置7は、ロードバランサ200及び仮想マシン300の名前を解決する。DNS装置7は、ロードバランサ200及び仮想マシン300のリソース名などの識別情報とIPアドレスとを対応させて記憶する。そして、DNS装置7は、操作端末8からの名前解決の要求を受けて、問い合わせを受けた識別情報に対応するIPアドレスを応答する。
リモートルータ6は、例えば、企業の業務を行う拠点に配置された拠点ルータである。操作端末8は、企業の業務を行うための端末装置である。操作端末8は、リモートルータ6を介してネットワーク5に接続する。操作端末8は、ロードバランサ200の名前を基にDNS装置7から通知されるIPアドレスを利用してロードバランサ200にアクセスし、ロードバランサ200により負荷分散が行われることで、仮想マシン301〜303が提供するサービスを受ける。
ここで、操作端末8とロードバランサ200との間のデータの送受信は、リモートルータ6及び仮想ルータ40を介して行われる。すなわち、リモートルータ6及び仮想ルータ40が、ロードバランサ200に対する「データの送受信に用いられる通信処理装置」の一例にあたる。また、操作端末8と仮想マシン300との間のデータの送受信は、リモートルータ6、仮想ルータ40及びロードバランサ200を介して行われる。すなわち、リモートルータ6、仮想ルータ40及びロードバランサ200が、仮想マシン300に対する「データの送受信に用いられる通信処理装置」の一例にあたる。
クラウド管理装置1は、管理ネットワークを介してサーバ装置20及び30にアクセスする。また、クラウド管理装置1は、管理ネットワークに加えて、ネットワーク装置4及びネットワーク5を介して、リモートルータ6及びDNS装置7にアクセスする。
クラウド管理装置1は、指定された仮想ルータ42及び43をネットワーク装置4内に生成する。また、クラウド管理装置1は、サーバ装置20においてロードバランサ200を起動させ配備する。さらに、クラウド管理装置1は、サーバ装置30において仮想マシン300を起動させ配備する。
さらに、クラウド管理装置1は、リモートルータ6、仮想ルータ42及び43、ロードバランサ200及び仮想マシン300のトラフィックなどの負荷情報を取得する。そして、クラウド管理装置1は、取得した負荷情報を用いてロードバランサ200及び仮想マシン300のオートスケール、すなわち、それぞれの増加及び削減を実行する。以下に、クラウド管理装置1の詳細について説明する。クラウド管理装置1は、情報処理装置である。また、クラウド管理装置1が、「管理装置」の一例にあたる。
図2は、クラウド管理装置のブロック図である。クラウド管理装置1は、ユーザインタフェース101、ユーザインタフェース制御部102、仮想ルータ制御部103、ファイアウォール制御部104、ロードバランサ制御部105、仮想マシン制御部106、リモートルータ情報収集部107、情報収集部108を有する。また、クラウド管理装置1は、情報格納データベース111、解析学習データベース112、リソース管理データベース113、設定パラメタ格納部114及びプール情報格納部115を有する。
ユーザインタフェース101は、例えば、キーボード及びマウスなどの入力装置、並びに、モニタなどの出力装置を有する。ユーザインタフェース101は、例えば、GUI(Graphic User Interface)、CLI(Command Line Interface)又はAPI(Application Programing Interface)などを提供する。操作者は、ユーザインタフェース101を用いて、処理要求やデータなどのクラウド管理装置1への入力を行う。
ユーザインタフェース制御部102は、ユーザインタフェース101により入力されたデータや処理要求を、仮想ルータ制御部103、ファイアウォール制御部104、ロードバランサ制御部105又は仮想マシン制御部106へ送信する。また、ユーザインタフェース制御部102は、仮想ルータ制御部103、ファイアウォール制御部104、ロードバランサ制御部105及び仮想マシン制御部106から処理要求に対する応答などのデータを受信する。そして、ユーザインタフェース制御部102は、ユーザインタフェース101を用いて操作者に受信したデータを提供する。
仮想ルータ制御部103は、操作者から入力された仮想ルータ40の配備及び性能情報収集の設定情報などをユーザインタフェース制御部102を介して受信する。そして、仮想ルータ制御部103は、受信した設定情報にしたがい、仮想ルータ40の配備や性能情報取集の設定の制御を行う。そして、仮想ルータ制御部103は、設定の実行結果をユーザインタフェース制御部102を介してユーザインタフェース101に表示させる。さらに、仮想ルータ制御部103は、仮想ルータ40のリソースタイプ、リソース名及びリソースID(Identifier)を含む配備リソース情報をリソース管理データベース113に登録する。
ファイアウォール制御部104は、操作者から入力されたファイアウォール装置41の配備、ルール及び性能情報収集の設定情報などをユーザインタフェース制御部102を介して受信する。そして、ファイアウォール制御部104は、受信した設定情報にしたがい、ファイアウォール装置41の配備、ルールの設定及び性能情報取集の設定の制御を行う。そして、ファイアウォール制御部104は、設定の実行結果をユーザインタフェース制御部102を介してユーザインタフェース101に表示させる。さらに、ファイアウォール制御部104は、ファイアウォール装置41の配備リソース情報をリソース管理データベース113に登録する。
リモートルータ情報収集部107は、ロードバランサ200宛ての通信の送信元ネットワーク情報を情報格納データベース111から取得する。次に、リモートルータ情報収集部107は、ロードバランサ200宛ての通信の送信元ネットワーク情報から、ロードバランサ200に対する処理要求の送信元となるリモートルータ6における経路インタフェースを特定する。そして、リモートルータ情報収集部107は、特定した経路インタフェースを用いてリモートルータ6へのトラフィック取得情報を更新する。ここで、トラフィック取得情報とは、リモートルータ6における送信元ネットワークへのインタフェースであり、且つ、トラフィック情報の取得対象とするインタフェースである経路インタフェースが登録された情報である。
リモートルータ情報収集部107は、トラフィック取得情報をリモートルータ6に送信して、トラフィック情報の送信を要求する。その後、リモートルータ情報収集部107は、特定したリモートルータ6の経路インタフェースのトラフィック情報をリモートルータ6から定期的に収集して情報格納データベース111に格納する。例えば、リモートルータ情報収集部107は、1分間隔で経路インタフェースのトラフィック情報を収集する。
リソース管理データベース113は、例えば、図3に示すフォーマットを有する。図3は、リソース管理データベースの一例を表す図である。本実施例では、リソース管理データベース113には、リソースの種類を表すリソースタイプ、リソースに与えられた名前であるリソース名及びリソースの識別子であるリソースIDが登録される。図3において、リソースタイプのLB(Load Balancer)は、そのリソースがロードバランサ200であることを表す。また、リソースタイプのv(virtual)routerは、そのリソースが仮想ルータ40であることを表す。また、リソースタイプのVM(Virtual Machine)は、そのリソースが仮想マシン300であることを表す。
リソース管理データベース113は、仮想ルータ40の配備リソース情報を仮想ルータ制御部103から取得する。そして、リソース管理データベース113は、取得した仮想ルータ40の配備リソース情報を登録し記憶する。また、リソース管理データベース113は、ファイアウォール装置41の配備リソース情報をファイアウォール制御部104から取得する。そして、リソース管理データベース113は、取得したファイアウォール装置41の配備リソース情報を登録し記憶する。また、リソース管理データベース113は、ロードバランサ200の配備リソース情報をロードバランサ制御部105から取得する。そして、リソース管理データベース113は、取得したロードバランサ200の配備リソース情報を登録し記憶する。また、リソース管理データベース113は、仮想マシン300の配備リソース情報を仮想マシン制御部106から取得する。そして、リソース管理データベース113は、取得した仮想マシン300の配備リソース情報を登録し記憶する。
情報収集部108は、仮想ルータ40、ロードバランサ200及び仮想マシン300からトラフィック情報を収集する。さらに、情報収集部108は、ロードバランサ200宛ての送信元ネットワーク情報を収集する。そして、情報収集部108は、トラフィック情報及び送信元ネットワーク情報を情報格納データベース111に格納する。このリモートルータ情報収集部107及び情報収集部108が、「情報取得部」の一例にあたる。
情報格納データベース111は、例えば、図4に示すフォーマットを有する。図4は、情報格納データベースの一例を表す図である。例えば、情報格納データベース111には、その性能情報が取得された時刻、その性能情報の識別子である性能情報識別子、その性能情報の値及びその性能情報の単位が登録される。また、情報格納データベース111には、その性能情報がどのような値かを表す値のタイプ、さらにその性能情報に割り当てられたリソース名及びリソースIDが登録される。ここで、値のタイプにおける差分値とは、前回の計測時と今回の計測時の差分の値である。
さらに、図4には記載していないが、情報格納データベース111には、ロードバランサ200宛ての通信の送信元ネットワークの情報も格納される。
情報格納データベース111は、リモートルータ情報収集部107から取得したリモートルータ6の経路インタフェースのトラフィック情報を格納する。また、情報格納データベース111は、情報収集部108から取得した仮想ルータ40、ロードバランサ200及び仮想マシン300のトラフィック情報を格納する。さらに、情報格納データベース111は、情報収集部108から取得したロードバランサ200宛ての送信元ネットワーク情報を格納する。
設定パラメタ格納部114は、クラウド管理装置1が動作するために用いる各種パラメタを格納する。例えば、設定パラメタ格納部114は、ロードバランサ200及び仮想マシン300を配備し設定するためのパラメタを格納する。
プール情報格納部115は、配備前のロードバランサ200を収容するLBプールに格納されたロードバランサ200及び配備前の仮想マシン300を収容するVMプールに格納された仮想マシン300の情報を格納する。プール情報格納部115は、例えば、図5に示すフォーマットを有する。図5は、プール情報の一例を表す図である。プール情報格納部115には、LBプール又はVMプールのどちらかを示すプールタイプ、VMプールに関連するロードバランサ200を表す関連リソース名、並びに、各プールに格納された装置のリソースIDが登録される。
プール情報格納部115は、LBプールへのロードバランサ200の格納の指示をロードバランサ制御部105から受ける。そして、プール情報格納部115は、指定されたロードバランサ200のリソースIDを指定されたLBプールに対応させて登録する。また、プール情報格納部115は、LBプールからのロードバランサ200の削除の指示をロードバランサ制御部105から受ける。そして、プール情報格納部115は、指定されたロードバランサ200のリソースIDを指定されたLBプールから削除する。
また、プール情報格納部115は、VMプールへの仮想マシン300の格納の指示を仮想マシン制御部106から受ける。そして、プール情報格納部115は、指定された仮想マシン300のリソースIDを指定されたVMプールに対応させて登録する。また、プール情報格納部115は、VMプールへの仮想マシン300の削除の指示を仮想マシン制御部106から受ける。そして、プール情報格納部115は、指定された仮想マシン300のリソースIDを指定されたVMプールから削除する。
情報解析部109は、各装置におけるトラフィック情報を用いて、ロードバランサ200及び仮想マシン300のオートスケール又はオートスケールの準備を実行するか否かを決定する。ここで、オートスケールの準備とは、スケールアウトのために予めLBプールやVMプールにロードバランサ200や仮想マシン300を格納しておくことを指す。具体的には、情報解析部109は、以下の処理を行う。
情報解析部109は、ロードバランサ200におけるトラフィック量を用いてロードバランサ200のオートスケールの設定の処理を以下のように行う。
情報解析部109は、ロードバランサ200のトラフィック情報を情報格納データベース111から取得する。具体的には、情報解析部109は、ロードバランサ200のトラフィック量の合計値を取得する。次に、情報解析部109は、ロードバランサ200のトラフィック量がロードバランサ200の性能の上限に達したか否かを判定する。トラフィック量がロードバランサ200の性能の上限に達している場合、情報解析部109は、トラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリにロードバランサ200のスケールアウトの即時実行開始のトリガとなるLBスケールアウトトリガを設定する。
一方、トラフィック量がロードバランサ200の性能の上限に達していない場合、情報解析部109は、ロードバランサ200のトラフィック量が前回計測したトラフィック量の1.5倍以上か否かを判定する。具体的には、情報解析部109は、動作中の全てのロードバランサ200のトラフィック量の合計を動作中のロードバランサ200の数で除算した値を求める。そして、情報解析部109は、求めた値が、前回の計測における動作中の全てのロードバランサ200のトラフィック量の合計を動作中のロードバランサ200の数で除算した値の1.5倍以上であるかを確認する。ここで、本実施例では、トラフィック量が前回の1.5倍以上の場合にトラフィック量の急激な増加が発生したと判定しているが、この値は他の値であってもよく、クラウドシステム100の運用状態に応じて設定されることが好ましい。トラフィック量が前回の1.5倍以上の場合、情報解析部109は、トラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリにロードバランサ200のスケールアウトの準備、すなわち追加するロードバランサ200のLBプールへの格納を指示するための値であるLBスケールアウト準備を設定する。
また、情報解析部109は、ロードバランサ200のトラフィック量が前回計測したトラフィック量の0.5倍以下か否かを判定する。具体的には、情報解析部109は、動作中の全てのロードバランサ200のトラフィック量の合計を動作中のロードバランサ200の数で除算した値を求める。そして、情報解析部109は、求めた値が、前回の計測における動作中の全てのロードバランサ200のトラフィック量の合計を動作中のロードバランサ200の数で除算した値の0.5倍以下であるかを確認する。ここで、本実施例では、トラフィック量が前回の0.5倍以下の場合にトラフィック量の減少が発生したと判定しているが、この値は他の値であってもよく、クラウドシステム100の運用状態に応じて設定されることが好ましい。トラフィック量が前回の0.5倍以下の場合、情報解析部109は、トラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリにLBスケールイン準備を設定する。
また、情報解析部109は、前段のリソースのトラフィック量によるロードバランサ200のオートスケールの準備の設定の処理を以下のように行う。
情報解析部109は、仮想ルータ40のトラフィック情報を情報格納データベース111から取得する。具体的には、情報解析部109は、仮想ルータ40におけるロードバランサ200宛てのトラフィック量の合計値を取得する。次に、情報解析部109は、仮想ルータ40のトラフィック量が前回計測したトラフィック量の1.5倍以上か否かを判定する。具体的には、情報解析部109は、今回の仮想ルータ40のトラフィック量の合計が、前回の仮想ルータ40のトラフィック量の合計の1.5倍以上か否かを確認する。トラフィック量が前回の1.5倍以上の場合、情報解析部109は、トラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリにLBスケールアウト準備を設定する。
また、情報解析部109は、リモートルータ6のトラフィック情報を情報格納データベース111から取得する。具体的には、情報解析部109は、リモートルータ6の経路インタフェースのトラフィック量を取得する。そして、情報解析部109は、リモートルータ6のトラフィック量が前回計測したトラフィック量の1.5倍以上か否かを判定する。具体的には、情報解析部109は、今回のリモートルータ6のトラフィック量が、前回のリモートルータ6のトラフィック量の1.5倍以上か否かを判定する。トラフィック量が前回の1.5倍以上の場合、情報解析部109は、トラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリにLBスケールアウト準備を設定する。
さらに、情報解析部109は、仮想マシン300のオートスケールの設定の処理を以下のように行う。
情報解析部109は、仮想マシン300のトラフィック情報を情報格納データベース111から取得する。具体的には情報解析部109は、ロードバランサ200に登録されている仮想マシン300のトラフィック量の合計値を取得する。そして、情報解析部109は、仮想マシン300のトラフィック量が仮想マシン300のトラフィック量の上限に達したか否かを判定する。具体的には、情報解析部109は、仮想マシン300のロードバランサ200との間でデータの送受信を行うポートのトラフィック量の合計を仮想マシン300の数で除算した値を求める。さらに、情報解析部109は、仮想マシン300のトラフィック性能値及び仮想マシン300のトラフィック性能の上限閾値を設定パラメタ格納部114から取得する。ここで、トラフィック性能の上限閾値は、トラフィック性能値を100%とした場合のパーセンテージで表される。そして、情報解析部109は、仮想マシン300のトラフィック性能値に仮想マシン300のトラフィック性能の上限閾値を乗算し100で除算した値が、今回求めた値以上か否かにより、トラフィック量の上限に達しているか否かを確認する。
仮想マシン300のトラフィック量が仮想マシン300の上限に達した場合、情報解析部109は、トラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリに仮想マシン300のスケールアウトの即時実行開始のトリガとなるVMスケールアウトトリガを設定する。
また、情報解析部109は、ロードバランサ200のトラフィック量が仮想マシン300の性能の上限に達したか否かを判定する。具体的には、情報解析部109は、全てのロードバランサ200のトラフィック量の合計をロードバランサ200の数で除算した値を仮想マシン300の数で除算した値を求める。そして、情報解析部109は、求めた値が、仮想マシン300のトラフィック性能値に仮想マシン300のトラフィック性能の上限閾値を乗算し100で除算した値より小さいか否かにより判定を行う。
ロードバランサ200のトラフィック量が仮想マシン300の性能の上限に達した場合、情報解析部109は、トラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリにVMスケールアウトトリガを設定する。
また、情報解析部109は、仮想マシン300が削減可能な状態まで仮想マシン300のトラフィック量が減少したか否かを判定する。具体的には、情報解析部109は、仮想マシン300のロードバランサ200との間でデータの送受信を行うポートのトラフィック量の合計を仮想マシン300の数で除算した値を求める。さらに、情報解析部109は、仮想マシン300のトラフィック性能値及び仮想マシン300のトラフィック性能の下限閾値を設定パラメタ格納部114から取得する。ここで、トラフィック性能の下限閾値は、トラフィック性能値を100%とした場合のパーセンテージで表される。例えば、仮想マシン300のトラフィック性能の下限閾値は、20%と設定される。ここで、仮想マシン300のトラフィック性能の下限閾値は、クラウドシステム100の運用状態に応じて設定されることが好ましい。情報解析部109は、仮想マシン300のトラフィック性能値に仮想マシン300のトラフィック性能の下限閾値を乗算し100で除算した値が、今回求めた値以下か否かにより、仮想マシン300が削減可能な状態までトラフィック量が減少したことを確認する。
仮想マシン300が削減可能な状態まで仮想マシン300のトラフィック量が減少した場合、情報解析部109は、トラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリにVMスケールイン準備を設定する。
また、情報解析部109は、ロードバランサ200のトラフィック量が仮想マシン300の性能の下限に達したか否かを判定する。具体的には、情報解析部109は、全てのロードバランサ200のトラフィック量の合計をロードバランサ200の数で除算した値を仮想マシン300の数で除算した値を求める。そして、情報解析部109は、求めた値が、仮想マシン300のトラフィック性能値に仮想マシン300のトラフィック性能の下限閾値を乗算し100で除算した値より小さいか否かにより判定を行う。
ロードバランサ200のトラフィック量が仮想マシン300の性能の下限に達した場合、情報解析部109は、トラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリにVMスケールイン準備を設定する。
解析学習データベース112は、例えば、図6に示すフォーマットを有する。図6は、実施例1に係る解析学習データベースの一例を表す図である。例えば、解析学習データベース112には、その性能情報が取得された時刻、その性能情報の識別子である性能情報識別子、その性能情報の変化値及びその性能情報の単位が登録される。また、情報格納データベース111には、その性能情報がどのような値かを表す値のタイプ、その性能情報に割り当てられたリソース名及びリソースIDが登録される。さらに、解析学習データベース112には、その性能情報に応じて行われる処理を表すイベントタイプが格納される。
インベントタイプとしては、本実施例では、LBスケールアウトトリガ、LBスケールアウト準備、LBスケールイン準備、VMスケールアウトトリガ、VMスケールアウト準備及びVMスケールイン準備がある。LBスケールアウトトリガは、ロードバランサ200のスケールアウトの即時実行開始のトリガとなる値である。LBスケールアウト準備は、追加するロードバランサ200のLBプールへの格納を指示するための値である。LBスケールイン準備は、削減するロードバランサ200がLBプールに格納された状態に戻すことを指示するための値である。VMスケールアウトトリガは、仮想マシン300のスケールアウトの即時実行開始のトリガとなる値である。VMスケールアウト準備は、追加する仮想マシン300のVMプールへの格納を指示するための値である。VMスケールイン準備は、削減する仮想マシン300がVMプールに格納された状態に戻すことを指示するための値である。
ロードバランサ制御部105は、設定パラメタ格納部114からロードバランサ200の設定に用いるパラメタを取得する。そして、ロードバランサ制御部105は、パラメタを用いてロードバランサ200をサーバ装置20に配備する。さらに、ロードバランサ制御部105は、性能情報収取の設定などを行う。そして、ロードバランサ制御部105は、配備したロードバランサ200の情報をリソース管理データベース113に登録する。
配備したロードバランサ200の動作開始後、ロードバランサ制御部105は、解析学習データベース112の情報を読み込む。そして、ロードバランサ制御部105は、解析学習データベース112においてLBスケールアウトトリガが更新されたか否かを判定する。LBスケールアウトトリガが更新された場合、ロードバランサ制御部105は、ロードバランサ200のトラフィックの増加量である増加トラフィックを算出する。そして、ロードバランサ制御部105は、増加トラフィックから追加するロードバランサ200の数を算出する。次に、ロードバランサ制御部105は、LBプールから算出した数のロードバランサ200を選択し、追加するロードバランサ200とする。そして、ロードバランサ制御部105は、追加するロードバランサ200のIPをDNS装置7に登録する。
また、ロードバランサ制御部105は、解析学習データベース112においてLBスケールアウト準備が更新されたか否かを判定する。LBスケールアウト準備が更新された場合、ロードバランサ制御部105は、更新されたLBスケールアウト準備に対応するトラフィック情報における増加トラフィックから追加するロードバランサ200の数を算出する。次に、ロードバランサ制御部105は、算出した数のロードバランサ200の起動をサーバ装置20に指示する。
ここで、ロードバランサ200は、ロードバランサ200の起動を行う際に、例えば以下の方法で起動するサーバ装置20を選択してもよい。例えば、ロードバランサ200は、サーバ装置21〜23におけるトラフィック量などのそれぞれのリソースの使用状態を取得する。そして、ロードバランサ200は、リソースの使用量が閾値以下であるサーバ装置20又は一番リソースの使用状態に余裕があるサーバ装置20にロードバランサ200の起動を指示する。
その後、ロードバランサ制御部105は、サーバ装置20から起動完了通知を受信する。起動完了通知を受信すると、ロードバランサ制御部105は、追加したロードバランサ200への設定反映をサーバ装置20に指示する。その後、サーバ装置20は、設定反映完了の通知をサーバ装置20から受信する。設定反映完了の通知を受信すると、ロードバランサ制御部105は、追加されたロードバランサ200の情報をプール情報格納部115に登録することで、追加されたロードバランサ200をLBプールに格納する。
さらに、LBスケールアウト準備を行うということはロードバランサ200のトラフィック量の増加が見込まれ、それに対応して仮想マシン300のトラフィック量が増加する可能性が高い。そこで、ロードバランサ制御部105は、VMスケールアウト準備を解析学習データベース112に設定する。
また、ロードバランサ制御部105は、解析学習データベース112においてLBスケールイン準備が更新されたか否かを判定する。LBスケールイン準備が更新された場合、ロードバランサ制御部105は、ロードバランサ200のトラフィックの減少量である減少トラフィックから削減するロードバランサ200の数を算出する。次に、ロードバランサ制御部105は、算出した数のロードバランサ200のIPをDNS装置7から削除する。そして、ロードバランサ制御部105は、DNS装置7から削除したロードバランサ200をLBプールに格納する。
仮想マシン制御部106は、設定パラメタ格納部114から仮想マシン300の設定に用いるパラメタを取得する。そして、仮想マシン制御部106は、パラメタを用いて仮想マシン300をサーバ装置30に配備する。さらに、仮想マシン制御部106は、仮想マシン300のログ及び性能情報収取の設定などを行う。そして、仮想マシン制御部106は、配備した仮想マシン300の情報をリソース管理データベース113に登録する。
配備した仮想マシン300の動作開始後、仮想マシン制御部106は、解析学習データベース112を読み込む。そして、仮想マシン制御部106は、VMスケールアウトトリガが更新されたか否かを判定する。VMスケールアウトトリガが更新された場合、仮想マシン制御部106は、更新されたVMスケールアウトトリガに対応するトラフィック情報におけるトラフィックの増加量である増加トラフィックを算出する。そして、仮想マシン制御部106は、増加トラフィックから追加する仮想マシン300の数を算出する。次に、仮想マシン制御部106は、VMプールから算出した数の仮想マシン300を選択し、追加する仮想マシン300とする。そして、仮想マシン制御部106は、追加する仮想マシン300をロードバランサ200に通知する。
また、仮想マシン制御部106は、VMスケールアウト準備が更新されたか否かを判定する。VMスケールアウト準備が更新された場合、仮想マシン制御部106は、更新されたVMスケールアウト準備に対応するトラフィック情報における増加トラフィックから追加する仮想マシン300の数を算出する。次に、仮想マシン制御部106は、算出した数の仮想マシン300の起動をサーバ装置30に指示する。その後、仮想マシン制御部106は、起動完了通知を受けて、追加した仮想マシン300をVMプールに格納する。
ここで、仮想マシン制御部106は、仮想マシン300の起動を行う際に、例えば以下の方法で起動するサーバ装置30を選択してもよい。例えば、仮想マシン制御部106は、サーバ装置31〜33におけるトラフィック量などのそれぞれのリソースの使用状態を取得する。そして、仮想マシン制御部106は、リソースの使用量が閾値以下であるサーバ装置30又は一番リソースの使用状態に余裕があるサーバ装置30に仮想マシン300の起動を指示する。
また、仮想マシン制御部106は、VMスケールイン準備が更新されたか否かを判定する。VMスケールイン準備が更新された場合、仮想マシン制御部106は、更新されたVMスケールイン準備に対応するトラフィック情報におけるトラフィックの減少量である減少トラフィックを算出する。そして、ロードバランサ制御部105は、減少トラフィックから削減する仮想マシン300の数を算出する。次に、仮想マシン制御部106は、稼働中の仮想マシン300の中から算出した数の仮想マシン300を選択し、削減する仮想マシン300を決定する。次に、仮想マシン制御部106は、削減する仮想マシン300をロードバランサ200に通知する。その後、仮想マシン制御部106は、削減する仮想マシン300をVMプールに格納する。このロードバランサ制御部105及び仮想マシン制御部106が、「制御部」の一例にあたる。
次に、図7を参照して、クラウド管理装置1による情報収集の処理の流れについて説明する。図7は、クラウド管理装置による情報収集の処理のシーケンス図である。図7において各装置間を結ぶ矢印は、データの流れや情報の通知を表す。また、図7における他の矢印は、処理の流れを表す。ここでは、リモートルータ6において、ファームウェアを実行するファームウェア実行部60が動作している場合で説明する。
ネットワーク装置4の仮想ルータ40は、送信パケット毎にロードバランサ200宛てのトラフィック情報を取得する(ステップS1)。
サーバ装置20のロードバランサ200は、受信パケット毎に自装置宛の送信元ネットワーク情報を取得する(ステップS2)。さらに、ロードバランサ200は、受信パケット毎にトラフィック情報を取得する(ステップS3)。
サーバ装置30の仮想マシン300は、受信パケット後にトラフィック情報を取得する(ステップS4)。
そして、仮想ルータ40は、ロードバランサ200宛てのトラフィック情報をクラウド管理装置1の情報収集部108へ通知する(ステップS5)。
情報収集部108は、ロードバランサ200宛てのトラフィック情報を仮想ルータ40から取得する。そして、情報収集部108は、取得したロードバランサ200宛てのトラフィック情報を情報格納データベース111に格納する(ステップS6)。
また、ロードバランサ200は、トラフィック情報をクラウド管理装置1の情報収集部108へ通知する(ステップS7)。
情報収集部108は、ロードバランサ200のトラフィック情報をロードバランサ200から取得する。そして、情報収集部108は、ロードバランサ200のトラフィック情報を情報格納データベース111に格納する(ステップS8)。
また、ロードバランサ200は、自装置宛のパケットの送信元ネットワーク情報をクラウド管理装置1の情報収集部108へ通知する(ステップS9)。
情報収集部108は、ロードバランサ200宛のパケットの送信元ネットワーク情報をロードバランサ200から取得する。そして、情報収集部108は、ロードバランサ200宛のパケットの送信元ネットワーク情報を情報格納データベース111に格納する(ステップS10)。
リモートルータ情報収集部107は、ロードバランサ200宛ての送信元ネットワーク情報を情報格納データベース111から取得する(ステップS11)。そして、リモートルータ情報収集部107は、送信元ネットワークの増減の有無を判定する(ステップS12)。送信元ネットワークが増減していない場合(ステップS12:否定)、リモートルータ情報収集部107は、ステップS14へ進む。
これに対して、送信元ネットワークの増減があった場合(ステップS12:肯定)、リモートルータ情報収集部107は、リモートルータ6の送信元ネットワークの経路インタフェースを特定する。そして、リモートルータ情報収集部107は、特定した経路インタフェースを用いてリモートルータ6へのトラフィック取得情報を更新する(ステップS13)。
次に、リモートルータ情報収集部107は、トラフィック取得情報をリモートルータ6へ送信して、トラフィック情報送信要求をリモートルータ6のファームウェア実行部60に対して行う(ステップS14)。
リモートルータ6のファームウェア実行部60は、トラフィック取得情報を含むトラフィック情報送信要求を情報収集部108から受ける。次に、ファームウェア実行部60は、トラフィック取得情報で指定された経路インタフェースのトラフィック情報を収集する。そして、ファームウェア実行部60は、送信元ネットワークへの経路インタフェースのトラフィック情報をリモートルータ情報収集部107に通知する(ステップS15)。
リモートルータ情報収集部107は、送信元ネットワークへの経路インタフェースのトラフィック情報をリモートルータ6のファームウェア実行部60から取得する。そして、リモートルータ情報収集部107は、送信元ネットワークへの経路インタフェースのトラフィック情報を情報格納データベース111に格納する(ステップS16)。
また、仮想マシン300は、自己におけるトラフィック情報を情報収集部108へ通知する(ステップS17)。
情報収集部108は、トラフィック情報を仮想マシン300から取得する。そして、情報収集部108は、仮想マシン300におけるトラフィック情報を情報格納データベース111に格納する(ステップS18)。
次に、図8を参照して、本実施例に係るクラウド管理装置1によるスケールアウトに関する情報解析処理の流れについて説明する。図8は、実施例1に係るクラウド管理装置によるスケールアウトに関する情報解析処理のシーケンス図である。
情報解析部109は、ロードバランサ200のトラフィック情報を情報格納データベース111から取得する(ステップS101)。具体的には、情報解析部109は、ロードバランサ200のトラフィック量の合計値を取得する。
次に、情報解析部109は、ロードバランサ200のトラフィック量がロードバランサ200の性能の上限に達したか否かを判定する(ステップS102)。トラフィック量がロードバランサ200の性能の上限に達している場合(ステップS102:肯定)、情報解析部109は、ステップS104に進む。
一方、トラフィック量がロードバランサ200の性能の上限に達していない場合(ステップS102:否定)、情報解析部109は、ロードバランサ200のトラフィック量が前回計測したトラフィック量の1.5倍以上か否かを判定する(ステップS103)。トラフィック量が前回の1.5倍未満の場合(ステップS103:否定)、情報解析部109は、ステップS105へ進む。
これに対して、トラフィック量が前回の1.5倍以上の場合(ステップS103:肯定)、情報解析部109は、LBスケールアウトトリガを解析学習データベース112に設定する(ステップS104)。
次に、情報解析部109は、仮想ルータ40のトラフィック情報を情報格納データベース111から取得する(ステップS105)。具体的には、情報解析部109は、仮想ルータ40におけるロードバランサ200宛てのトラフィック量の合計値を取得する。
次に、情報解析部109は、仮想ルータ40のトラフィック量が前回計測したトラフィック量の1.5倍以上か否かを判定する(ステップS106)。トラフィック量が前回の1.5倍未満の場合(ステップS106:否定)、情報解析部109は、ステップS108へ進む。
これに対して、トラフィック量が前回の1.5倍以上の場合(ステップS106:肯定)、情報解析部109は、LBスケールアウト準備を解析学習データベース112に設定する(ステップS107)。
次に、情報解析部109は、リモートルータ6のトラフィック情報を情報格納データベース111から取得する(ステップS108)。具体的には、情報解析部109は、リモートルータ6の経路インタフェースのトラフィック量を取得する。
次に、情報解析部109は、リモートルータ6のトラフィック量が前回計測したトラフィック量の1.5倍以上か否かを判定する(ステップS109)。トラフィック量が前回の1.5倍未満の場合(ステップS109:否定)、情報解析部109は、ステップS111へ進む。
これに対して、トラフィック量が前回の1.5倍以上の場合(ステップS109:肯定)、情報解析部109は、LBスケールアウト準備を解析学習データベース112に設定する(ステップS110)。
次に、情報解析部109は、仮想マシン300のトラフィック情報を情報格納データベース111から取得する(ステップS111)。具体的には情報解析部109は、ロードバランサ200に登録されている仮想マシン300のトラフィック量の合計値を取得する。
次に、情報解析部109は、仮想マシン300のトラフィック量が仮想マシン300の性能の上限に達したか否かを判定する(ステップS112)。仮想マシン300のトラフィック量が仮想マシン300の性能の上限に達した場合(ステップS112:肯定)、情報解析部109は、ステップS114へ進む。
これに対して、仮想マシン300のトラフィック量が仮想マシン300の性能の上限に達していない場合(ステップS112:否定)、情報解析部109は、ロードバランサ200のトラフィック量が仮想マシン300の性能の上限に達したか否かを判定する(ステップS113)。
ロードバランサ200のトラフィック量が仮想マシン300の性能の上限に達した場合(ステップS113:肯定)、情報解析部109は、ステップS114へ進む。
次に、情報解析部109は、VMスケールアウトトリガを解析学習データベース112に設定する(ステップS114)。
これに対して、ロードバランサ200のトラフィック量が仮想マシン300の性能の上限に達していない場合(ステップS113:否定)、情報解析部109は、情報解析処理を終了する。
次に、図9を参照して、本実施例に係るクラウド管理装置1によるロードバランサ200のスケールアウト処理の流れについて説明する。図9は、実施例1に係るクラウド管理装置によるロードバランサのスケールアウト処理のシーケンス図である。
ロードバランサ制御部105は、解析学習データベース112の情報を読み込む(ステップS121)。
次に、ロードバランサ制御部105は、解析学習データベース112が更新されたか否かを判定する(ステップS122)。解析学習データベース112が更新されていない場合(ステップS122:否定)、ロードバランサ制御部105は、スケールアウト処理を終了する。
これに対して、解析学習データベース112が更新された場合(ステップS122:肯定)、ロードバランサ制御部105は、LBスケールアウトトリガが更新されたか否かを判定する(ステップS123)。LBスケールアウトトリガが更新されていない場合(ステップS123:否定)、ロードバランサ制御部105は、ステップS127へ進む。
これに対して、LBスケールアウトトリガが更新された場合(ステップS123:肯定)、ロードバランサ制御部105は、増加トラフィックから追加するロードバランサ200の数を算出する(ステップS124)。
次に、ロードバランサ制御部105は、LBプールから算出した数のロードバランサ200を選択し、追加するロードバランサ200とする(ステップS125)。
そして、ロードバランサ制御部105は、追加するロードバランサ200のIPをDNS装置7に登録する(ステップS126)。
次に、ロードバランサ制御部105は、LBスケールアウト準備が更新されたか否かを判定する(ステップS127)。LBスケールアウト準備が更新されていない場合(ステップS127:否定)、ロードバランサ制御部105は、スケールアウト処理を終了する。
これに対して、LBスケールアウト準備が更新された場合(ステップS127:肯定)、ロードバランサ制御部105は、更新されたLBスケールアウト準備に対応するトラフィック情報における増加トラフィックから追加するロードバランサ200の数を算出する(ステップS128)。
次に、ロードバランサ制御部105は、算出した数のロードバランサ200の起動をサーバ装置20に指示する(ステップS129)。
サーバ装置20は、ロードバランサ200の起動の指示を受けて、指定された数のロードバランサ200を起動する(ステップS130)。
ロードバランサ200の起動後、サーバ装置20は、起動完了通知をロードバランサ制御部105へ送信する(ステップS131)。
ロードバランサ制御部105は、起動完了通知を受信すると、追加したロードバランサ200への設定反映をサーバ装置20に指示する(ステップS132)。
サーバ装置20は、ロードバランサ200への設定反映指示を受けて、追加したロードバランサ200に指定された設定を反映させる(ステップS133)。
ロードバランサ200に対する設定反映が完了すると、サーバ装置20は、設定反映完了の通知をロードバランサ制御部105へ送信する(ステップS134)。
設定反映完了通知を受信すると、ロードバランサ制御部105は、追加されたロードバランサ200をLBプールに格納する(ステップS135)。プール情報格納部115は、追加されたロードバランサ200の情報をロードバランサ制御部105から取得し、ロードバランサ200のリソースIDを指定されたLBプールに対応させて登録する。
さらに、ロードバランサ制御部105は、VMスケールアウト準備を解析学習データベース112に設定する(ステップS136)。
次に、図10を参照して、本実施例に係るクラウド管理装置1による仮想マシン300のスケールアウト処理の流れについて説明する。図10は、実施例1に係るクラウド管理装置による仮想マシンのスケールアウト処理のシーケンス図である。
仮想マシン制御部106は、解析学習データベース112を読み込む(ステップS141)。
次に、仮想マシン制御部106は、解析学習データベース112が更新されたか否かを判定する(ステップS142)。解析学習データベース112が更新されていない場合(ステップS142:否定)、仮想マシン制御部106は、スケールアウト処理を終了する。
これに対して、解析学習データベース112が更新された場合(ステップS142:肯定)、仮想マシン制御部106は、VMスケールアウトトリガが更新されたか否かを判定する(ステップS143)。VMスケールアウトトリガが更新されていない場合(ステップS143:否定)、仮想マシン制御部106は、ステップS148へ進む。
これに対して、VMスケールアウトトリガが更新された場合(ステップS143:肯定)、仮想マシン制御部106は、更新されたVMスケールアウトトリガに対応するトラフィック情報におけるトラフィックの増加量である増加トラフィックを算出する。そして、仮想マシン制御部106は、増加トラフィックから追加する仮想マシン300の数を算出する(ステップS144)。
次に、仮想マシン制御部106は、算出した数の仮想マシン300をVMプールから選択し、追加する仮想マシン300とする(ステップS145)。
次に、仮想マシン制御部106は、追加する仮想マシン300をロードバランサ200に通知する(ステップS146)。
ロードバランサ200は、追加する仮想マシン300の通知を受けて、指定された仮想マシン300を分散対象に追加する(ステップS147)。
次に、仮想マシン制御部106は、VMスケールアウト準備が更新されたか否かを判定する(ステップS148)。
VMスケールアウト準備が更新されていない場合(ステップS148:否定)、仮想マシン制御部106は、スケールアウト処理を終了する。
これに対して、VMスケールアウト準備が更新された場合(ステップS148:肯定)、仮想マシン制御部106は、更新されたVMスケールアウト準備に対応するトラフィック情報における増加トラフィックから追加する仮想マシン300の数を算出する(ステップS149)。
次に、仮想マシン制御部106は、算出した数の仮想マシン300の起動をサーバ装置30に指示する(ステップS150)。
サーバ装置30は、仮想マシン300の起動の指示を受けて、指定された数の仮想マシン300を起動する(ステップS151)。
仮想マシン300の起動後、サーバ装置30は、起動完了通知を仮想マシン制御部106へ送信する(ステップS152)。
仮想マシン制御部106は、起動完了通知を受けて、追加した仮想マシン300をVMプールに格納する(ステップS153)。プール情報格納部115は、追加した仮想マシン300の情報を仮想マシン制御部106から取得し、指定された仮想マシン300のリソースIDを指定されたVMプールに対応させて登録する。
次に、図11を参照して、本実施例に係るクラウド管理装置1によるスケールインに関する情報解析処理の流れについて説明する。図11は、実施例1に係るクラウド管理装置によるスケールインに関する情報解析処理のシーケンス図である。
情報解析部109は、ロードバランサ200のトラフィック情報を情報格納データベース111から取得する(ステップS201)。具体的には、情報解析部109は、ロードバランサ200のトラフィック量の合計値を取得する。
次に、情報解析部109は、ロードバランサ200のトラフィック量が前回計測したトラフィック量の0.5倍以下か否かを判定する(ステップS202)。トラフィック量が前回の0.5倍より大きい場合(ステップS202:否定)、情報解析部109は、ステップS204へ進む。
これに対して、トラフィック量が前回の0.5倍以下の場合(ステップS202:肯定)、情報解析部109は、LBスケールイン準備を解析学習データベース112に設定する(ステップS203)。
次に、情報解析部109は、仮想マシン300のトラフィック情報を情報格納データベース111から取得する(ステップS204)。具体的には情報解析部109は、ロードバランサ200に登録されている仮想マシン300のトラフィック量の合計値を取得する。
次に、情報解析部109は、仮想マシン300が削減可能な状態まで仮想マシン300のトラフィック量が減少したか否かを判定する(ステップS205)。仮想マシン300が削減可能な状態まで仮想マシン300のトラフィック量が減少した場合(ステップS205:肯定)、情報解析部109は、ステップS207へ進む。
これに対して、仮想マシン300が削減可能な状態までトラフィック量が減少していない場合(ステップS205:否定)、情報解析部109は、ロードバランサ200のトラフィック量が仮想マシン300の性能の下限に達したか否かを判定する(ステップS206)。
ロードバランサ200のトラフィック量が仮想マシン300の性能の下限に達した場合(ステップS206:肯定)、情報解析部109は、ステップS207へ進む。
ロードバランサ200のトラフィック量が仮想マシン300の性能の下限に達した場合又は仮想マシン300が削減可能な状態まで仮想マシン300のトラフィック量が減少した場合、情報解析部109は、VMスケールイン準備を解析学習データベース112に設定する(ステップS207)。
これに対して、ロードバランサ200のトラフィック量が仮想マシン300の性能の下限に達していない場合(ステップS206:否定)、情報解析部109は、情報解析処理を終了する。
次に、図12を参照して、本実施例に係るクラウド管理装置1によるロードバランサ200のスケールイン処理の流れについて説明する。図12は、実施例1に係るクラウド管理装置によるロードバランサのスケールイン処理のシーケンス図である。
ロードバランサ制御部105は、解析学習データベース112の情報を読み込む(ステップS221)。
次に、ロードバランサ制御部105は、解析学習データベース112が更新されたか否かを判定する(ステップS222)。解析学習データベース112が更新されていない場合(ステップS222:否定)、ロードバランサ制御部105は、スケールイン処理を終了する。
これに対して、解析学習データベース112が更新された場合(ステップS222:肯定)、ロードバランサ制御部105は、LBスケールイン準備が更新されたか否かを判定する(ステップS223)。LBスケールイン準備が更新されていない場合(ステップS223:否定)、ロードバランサ制御部105は、スケールイン処理を終了する。
これに対して、LBスケールイン準備が更新された場合(ステップS223:肯定)、ロードバランサ制御部105は、ロードバランサ200のトラフィックの減少量である減少トラフィックから削減するロードバランサ200の数を算出する(ステップS224)。
次に、ロードバランサ制御部105は、算出した数のロードバランサ200のIPをDNS装置7から削除する(ステップS225)。
次に、ロードバランサ制御部105は、DNS装置7から削除したロードバランサ200をLBプールに格納する(ステップS226)。
次に、図13を参照して、本実施例に係るクラウド管理装置1による仮想マシン300のスケールイン処理の流れについて説明する。図13は、実施例1に係るクラウド管理装置による仮想マシンのスケールイン処理のシーケンス図である。
仮想マシン制御部106は、解析学習データベース112を読み込む(ステップS231)。
次に、仮想マシン制御部106は、解析学習データベース112が更新されたか否かを判定する(ステップS232)。解析学習データベース112が更新されていない場合(ステップS232:否定)、仮想マシン制御部106は、スケールイン処理を終了する。
これに対して、解析学習データベース112が更新された場合(ステップS232:肯定)、仮想マシン制御部106は、VMスケールイン準備が更新されたか否かを判定する(ステップS233)。VMスケールイン準備が更新されていない場合(ステップS233:否定)、仮想マシン制御部106は、スケールイン処理を終了する。
これに対して、VMスケールイン準備が更新された場合(ステップS233:肯定)、仮想マシン制御部106は、更新されたVMスケールイン準備に対応するトラフィック情報におけるトラフィックの減少量である減少トラフィックを算出する。そして、仮想マシン制御部106は、減少トラフィックから削減する仮想マシン300の数を算出する(ステップS234)。
次に、仮想マシン制御部106は、稼働中の仮想マシン300の中から算出した数の仮想マシン300を選択し、削減する仮想マシン300を決定する(ステップS235)。
次に、仮想マシン制御部106は、削減する仮想マシン300をロードバランサ200に通知する(ステップS236)。
ロードバランサ200は、削減する仮想マシン300の通知を受けて、指定された仮想マシン300を分散対象から解除する(ステップS237)。
次に、仮想マシン制御部106は、削減する仮想マシン300をVMプールに格納する(ステップS238)。
ここで、本実施例に係るクラウド管理装置と他のオートスケールの技術との比較を説明する。他のオートスケールの記述として、運用管理者がリソースを強制的に配備する方法を用いた場合、配備のタイミングが運用管理者に委ねられてしまう。例えば、運用管理者は、トラフィック量の急激な増加を認知してから、リソースの強制配備を行うことになる。すなわち、トラフィックの増加を運用管理者が認知するまでの間はオートスケールが行われず、リソースの能力オーバ状態が発生するおそれがある。したがって、トラフィック量の変化に沿った適切なオートスケールを実施することは困難である。
また、使用中のリソースに異常が発生した場合にオートスケールを行う方法では、異常の発生とトラフィック量の増加との間に関連性が無いため、トラフィック量の増加によるオートスケールに適切に対応することは困難である。そのため、トラフィック量が増加した場合に、リソースの能力オーバ状態が発生するおそれがあり、トラフィック量の変化に沿った適切なオートスケールを実施することは困難である。
さらに、クラウドシステム内のサーバの前段にロードバランサを配置する従来技術を用いても、トラフィック量の増加に対応するオートスケールの方法としては従来の方法を用いることになり、リソースの能力オーバ状態を低減することは困難である。そのため、トラフィック量の変化に沿った適切なオートスケールを実施することは困難である。
また、ツリー構造のサーバの負荷計算の結果に応じてオートスケールを行う従来技術を用いても、オートスケールの方法としては従来の方法を用いることになり、リソースの能力オーバ状態を低減することは困難である。そのため、トラフィック量の変化に沿った適切なオートスケールを実施することは困難である。
また、業務ノード間の関連性による影響範囲を求める従来技術を用いても、オートスケールの方法としては従来の方法を用いることになり、リソースの能力オーバ状態を低減することは困難である。
これに対して、本実施例に係るクラウド管理装置は、スケールアウトを実施するオートスケール対象リソースの前段に配置されたリソースにおけるトラフィック量を用いてオートスケール対象リソースに対するトラフィック量の変化を判断する。そして、本実施例に係るクラウド管理装置及びそれを用いたクラウドシステムは、オートスケール対象リソースに対するトラフィック量が増加又は減少することを予測して、予めオートスケールに用いるリソースを準備しておく。これにより、トラフィック量の急激な変動が発生した場合にも、予め用意したリソースを用いてオートスケールを実行するため、オートスケールを短時間で完了することができる。したがって、トラフィック量の急激な変動が発生した場合にも、トラフィック量の変化に追従した適切なオートスケールを実施することができる。
次に、実施例2について説明する。本実施例に係るクラウド管理装置1も図2のブロック図で表される。本実施例に係るクラウド管理装置1は、周期的なトラフィックの変化を学習し、学習結果に合わせて周期的なトラフィックの変化に応じたオートスケールを実行することが実施例1と異なる。以下の説明では実施例1と同様の各部の機能については説明を省略する。
情報解析部109は、ロードバランサ200のトラフィック情報を情報格納データベース111から取得する。具体的には、情報解析部109は、ロードバランサ200のトラフィック量の合計値を取得する。次に、情報解析部109は、ロードバランサ200のトラフィック量がロードバランサ200の性能の上限に達したか否かを判定する。また、情報解析部109は、ロードバランサ200のトラフィック量が前回計測したトラフィック量の1.5倍以上か否かを判定する。
トラフィック量がロードバランサ200の性能の上限に達した、もしくは、トラフィック量が前回計測したトラフィック量の1.5倍以上の場合、情報解析部109は、以下の定期性判定の処理を行う。
情報解析部109は、解析学習データベース112に同じ時間帯に同じイベントタイプの情報が格納されているか否かを判定する。ここで、情報解析部109、予め決められた範囲の時間内に含まれているイベントを同じ時間帯のイベントとする。同じ時間帯に同じイベントタイプの情報が格納されている場合、情報解析部109は、前回のイベントの時刻と今回のイベントの時刻との間の間隔を算出する。そして、情報解析部109は、算出した間隔から、どのような間隔で発生するイベントかを表す定期変化ポイントタイプを決定する。
例えば、本実施例では、情報解析部109は、前回の時刻から1時間後に同じイベントが発生した場合、定期変化ポイントタイプを「hour」と決定する。また、前回の時刻から1日後に同じイベントが発生した場合、情報解析部109は、定期変化ポイントタイプを「day」と決定する。また、前回の時刻から1週間後に同じイベントが発生した場合、情報解析部109は、定期変化ポイントタイプを「week」と決定する。また、前回の時刻から1月後に同じイベントが発生した場合、情報解析部109は、定期変化ポイントタイプを「month」と決定する。
そして、情報解析部109は、解析学習データベース112の同じ時間帯の同じ定期変化ポイントタイプを有する定期性カウンタをインクリメントする。また、同じ定期変化ポイントタイプの情報が無ければ、情報解析部109は、定期変化ポイントタイプを変更した情報を新たに登録する。
次に、情報解析部109は、インクリメントした定期性カウンタが閾値以上か否かを判定する。定期性カウンタが閾値以上の場合、情報解析部109は、インクリメントした定期性カウンタを有するエントリを増加用定期変化ポイントに設定する。この増加用定期変化ポイントは、そのポイントの時刻が到来した場合に、前回と同様のスケールアウトの処理を実行するポイントである。情報解析部109は、増加用定期変化ポイントを解析学習データベース112に設定する。
また、解析学習データベース112に同じ時間帯に同じイベントタイプの情報が格納されていない場合、情報解析部109は、新たにトラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリにLBスケールアウトトリガを設定する。
また、情報解析部109は、ロードバランサ200のトラフィック情報を情報格納データベース111から取得する。具体的には、情報解析部109は、ロードバランサ200のトラフィック量の合計値を取得する。次に、情報解析部109は、ロードバランサ200のトラフィック量が前回計測したトラフィック量の0.5倍以下か否かを判定する。
トラフィック量が前回計測したトラフィック量の0.5倍以下の場合、情報解析部109は、以下の定期性判定の処理を行う。
情報解析部109は、解析学習データベース112に同じ時間帯に同じイベントタイプの情報が格納されているか否かを判定する。ここで、情報解析部109は、予め決められた範囲の時間内に含まれているイベントを同じ時間帯のイベントと把握する。同じ時間帯に同じイベントタイプの情報が格納されている場合、情報解析部109は、前回のイベントの時刻と今回のイベントの時刻との間の間隔を算出する。そして、情報解析部109は、算出した間隔から、定期変化ポイントタイプを決定する。
そして、情報解析部109は、解析学習データベース112の同じ時間帯の同じ定期変化ポイントタイプを有する定期性カウンタをインクリメントする。また、同じ定期変化ポイントタイプの情報が無ければ、情報解析部109は、定期変化ポイントタイプを変更した情報を新たに登録する。
次に、情報解析部109は、インクリメントした定期性カウンタが閾値以上か否かを判定する。定期性カウンタが閾値以上の場合、情報解析部109は、インクリメントした定期性カウンタを有するエントリを減少用定期変化ポイントに設定する。この減少用定期変化ポイントは、そのポイントの時刻が到来した場合に、前回と同様のスケールインの処理を実行するポイントである。情報解析部109は、減少用定期変化ポイントを解析学習データベース112に設定する。
また、解析学習データベース112に同じ時間帯に同じイベントタイプの情報が格納されていない場合、情報解析部109は、新たにトラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリにLBスケールイン準備を設定する。
また、情報解析部109は、仮想マシン300のトラフィック情報を情報格納データベース111から取得する。具体的には、情報解析部109は、ロードバランサ200に登録されている仮想マシン300のトラフィック量の合計値を取得する。次に、情報解析部109は、仮想マシン300のトラフィック量が仮想マシン300の性能の上限に達したか否かを判定する。また、情報解析部109は、ロードバランサ200のトラフィック量が仮想マシン300の性能の上限に達したか否かを判定する。
仮想マシン300のトラフィック量が仮想マシン300の性能の上限に達した、もしくは、ロードバランサ200のトラフィック量が仮想マシン300の性能の上限に達した場合、情報解析部109は、以下の定期性判定の処理を行う。
情報解析部109は、解析学習データベース112に同じ時間帯に同じイベントタイプの情報が格納されているか否かを判定する。同じ時間帯に同じイベントタイプの情報が格納されている場合、情報解析部109は、前回の時刻と今回の時刻との間の間隔を算出し、定期変化ポイントタイプを決定する。そして、情報解析部109は、解析学習データベース112の同じ時間帯の同じ定期変化ポイントタイプを有する定期性カウンタをインクリメントする。また、同じ定期変化ポイントタイプの情報が無ければ、情報解析部109は、定期変化ポイントタイプを変更した情報を新たに登録する。
次に、情報解析部109は、インクリメントした定期性カウンタが閾値以上か否かを判定する。定期性カウンタが閾値以上の場合、情報解析部109は、インクリメントした定期性カウンタを有するエントリを増加用定期変化ポイントに設定する。
一方、同じ時間帯に同じイベントタイプの情報が格納されていない場合、情報解析部109は、新たにトラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリにVMスケールアウトトリガを設定する。
また、情報解析部109は、仮想マシン300が削減可能な状態まで仮想マシン300のトラフィック量が減少したか否かを判定する。また、情報解析部109は、ロードバランサ200のトラフィック量が仮想マシン300の性能の下限に達したか否かを判定する。
仮想マシン300が削減可能な状態まで仮想マシン300のトラフィック量が減少した、もしくは、ロードバランサ200のトラフィック量が仮想マシン300の性能の下限に達した場合、情報解析部109は、以下の定期性判定の処理を行う。
情報解析部109は、解析学習データベース112に同じ時間帯に同じイベントタイプの情報が格納されているか否かを判定する。同じ時間帯に同じイベントタイプの情報が格納されている場合、情報解析部109は、前回の時刻と今回の時刻との間の間隔を算出し、定期変化ポイントタイプを決定する。そして、情報解析部109は、解析学習データベース112の同じ時間帯の同じ定期変化ポイントタイプを有する定期性カウンタをインクリメントする。また、同じ定期変化ポイントタイプの情報が無ければ、情報解析部109は、定期変化ポイントタイプを変更した情報を新たに登録する。
次に、情報解析部109は、インクリメントした定期性カウンタが閾値以上か否かを判定する。定期性カウンタが閾値以上の場合、情報解析部109は、インクリメントした定期性カウンタを有するエントリを減少用定期変化ポイントに設定する。
一方、同じ時間帯に同じイベントタイプの情報が格納されていない場合、情報解析部109は、新たにトラフィック情報の取得時刻や識別情報などの基本情報を解析学習データベース112に登録する。さらに、情報解析部109は、登録したエントリにVMスケールイン準備を設定する。
ここで、図14を参照して、本実施例に係る解析学習データベース112について説明する。図14は、実施例2に係る解析学習データベースの一例を表す図である。
図14に示すように、本実施例に係る解析学習データベース112は、定期変化ポイントタイプ、定期性カウンタ及び最大値の欄を有する。定期変化ポイントタイプは、発生したイベントが発生する間隔により分類される定期変化の種類を表す。また、定期性カウンタは、各イベントが同じ時間帯に発生した回数を表す。最大値は、各イベントが同じ時間に発生した際の最大値を表す。
ロードバランサ制御部105は、解析学習データベース112のLBスケールアウトトリガが更新された場合の他に、増加用定期変化ポイントの時刻が到来したか否かを判定する。そして、LBスケールアウトトリガが更新された場合に加えて、増加用定期変化ポイントの時刻が到来した場合に、ロードバランサ制御部105は、ロードバランサ200のスケールアウトを行う。増加用定期変化ポイントの時刻が到来した場合、ロードバランサ制御部105は、増加用定期変化ポイントにおける増加トラフィックの最大値を解析学習データベース112から取得する。そして、ロードバランサ制御部105は、取得した最大値から増加するロードバランサ200の数を算出する。次に、ロードバランサ制御部105は、LBプールから算出した数のロードバランサ200を選択し、追加するロードバランサ200とする。そして、ロードバランサ制御部105は、追加するロードバランサ200のIPをDNS装置7に登録する。
また、ロードバランサ制御部105は、解析学習データベース112に登録されたロードバランサ200に対する減少用定期変化ポイントの時刻が到来したか否かを判定する。減少用定期変化ポイントの時刻が到来した場合、ロードバランサ制御部105は、減少用定期変化ポイントにおける減少トラフィックから削減するロードバランサ200の数を算出する。次に、ロードバランサ制御部105は、動作中のロードバランサ200の中から、算出した数のロードバランサ200を選択する。次に、ロードバランサ制御部105は、ロードバランサ200のIPをDNS装置7から削除する。次に、ロードバランサ制御部105は、選択したロードバランサ200の削除をサーバ装置20へ指示する。
さらに、ロードバランサ200からのトラフィック量の減少が見込まれ、それに対応して仮想マシン300のトラフィック量が減少する可能性が高い。そこで、ロードバランサ制御部105は、VMスケールイン準備を解析学習データベース112に設定する。
仮想マシン制御部106は、VMスケールアウトトリガが更新された場合の他に、増加用定期変化ポイントの時刻が到来したか否かを判定する。そして、VMスケールアウトトリガが更新された場合に加えて、増加用定期変化ポイントの時刻が到来した場合に、仮想マシン制御部106は、仮想マシン300のスケールアウトを行う。増加用定期変化ポイントの時刻が到来した場合、仮想マシン制御部106は、増加用定期変化ポイントにおけるトラフィックの増加量である増加用定期変化ポイントにおける増加トラフィックの最大値を解析学習データベース112から取得する。そして、仮想マシン制御部106は、取得した最大値から追加する仮想マシン300の数を算出する。次に、仮想マシン制御部106は、VMプールから算出した数の仮想マシン300を選択し、追加する仮想マシン300とする。そして、仮想マシン制御部106は、追加する仮想マシン300をロードバランサ200に通知する。
また、仮想マシン制御部106は、解析学習データベース112に登録された仮想マシン300に対する減少用定期変化ポイントの時刻が到来したか否かを判定する。減少用定期変化ポイントの時刻が到来した場合、仮想マシン制御部106は、減少用定期変化ポイントにおけるトラフィックの減少量である減少トラフィックを算出する。そして、仮想マシン制御部106は、減少トラフィックから削減する仮想マシン300の数を算出する。次に、仮想マシン制御部106は、稼働中の仮想マシン300の中から算出した数の仮想マシン300を選択し、削減する仮想マシン300を決定する。次に、仮想マシン制御部106は、削減する仮想マシン300をロードバランサ200に通知する。さらに、仮想マシン制御部106は、選択した仮想マシン300の削除をサーバ装置30に指示する。
次に、図15を参照して、本実施例に係るクラウド管理装置1によるスケールアウトに関する情報解析処理の流れについて説明する。図15は、実施例2に係るクラウド管理装置によるスケールアウトに関する情報解析処理のシーケンス図である。
情報解析部109は、ロードバランサ200のトラフィック情報を情報格納データベース111から取得する(ステップS301)。具体的には、情報解析部109は、ロードバランサ200のトラフィック量の合計値を取得する。
次に、情報解析部109は、ロードバランサ200のトラフィック量がロードバランサ200の性能の上限に達したか否かを判定する(ステップS302)。トラフィック量がロードバランサ200の性能の上限に達している場合(ステップS302:肯定)、情報解析部109は、ステップS304に進む。
一方、トラフィック量がロードバランサ200の性能の上限に達していない場合(ステップS302:否定)、情報解析部109は、ロードバランサ200のトラフィック量が前回計測したトラフィック量の1.5倍以上か否かを判定する(ステップS303)。トラフィック量が前回の1.5倍未満の場合(ステップS303:否定)、情報解析部109は、ステップS310へ進む。
これに対して、トラフィック量が前回の1.5倍以上の場合(ステップS303:肯定)、情報解析部109は、ステップS304に進む。
次に、情報解析部109は、解析学習データベース112に同じ時間帯に同じイベントタイプの情報が格納されているか否かを判定する(ステップS304)。同じ時間帯に同じイベントタイプの情報が格納されていない場合(ステップS304:否定)、情報解析部109は、ステップS309へ進む。
これに対して、同じ時間帯に同じイベントタイプの情報が格納されている場合(ステップS304:肯定)、情報解析部109は、前回の時刻と今回の時刻との間の間隔を算出し、定期変化ポイントタイプを決定する。そして、情報解析部109は、解析学習データベース112の同じ時間帯の同じ定期変化ポイントタイプを有する定期性カウンタをインクリメントする(ステップS305)。
さらに、情報解析部109は、定期性カウンタをインクリメントしたイベントの最大値を確認する。定期性カウンタの値が最大値より大きい場合、情報解析部109は、最大値を定期性カウンタの値に更新する(ステップS306)。
次に、情報解析部109は、インクリメントした定期性カウンタが閾値以上か否かを判定する(ステップS307)。定期性カウンタが閾値未満の場合(ステップS307:否定)、情報解析部109は、ステップS310へ進む。
これに対して、定期性カウンタが閾値以上の場合(ステップS307:肯定)、情報解析部109は、インクリメントした定期性カウンタを有するエントリを増加用定期変化ポイントに設定し(ステップS308)、ステップS310へ進む。
また、同じ時間帯に同じイベントタイプの情報が格納されていない場合、情報解析部109は、LBスケールアウトトリガを解析学習データベース112に設定する(ステップS309)。
次に、情報解析部109は、仮想ルータ40及びリモートルータ6のトラフィック量を用いたスケールアウト準備の設定処理を実行する(ステップS310)。ここで、図8のステップS105〜S110が、ステップS310で実行される処理の一例にあたる。
次に、情報解析部109は、仮想マシン300のトラフィック情報を情報格納データベース111から取得する(ステップS311)。具体的には、情報解析部109は、ロードバランサ200に登録されている仮想マシン300のトラフィック量の合計値を取得する。
次に、情報解析部109は、仮想マシン300のトラフィック量が仮想マシン300の性能の上限に達したか否かを判定する(ステップS312)。仮想マシン300のトラフィック量が仮想マシン300の性能の上限に達した場合(ステップS312:肯定)、情報解析部109は、ステップS314へ進む。
これに対して、仮想マシン300のトラフィック量が仮想マシン300の性能の上限に達していない場合(ステップS312:否定)、情報解析部109は、ロードバランサ200のトラフィック量が仮想マシン300の性能の上限に達したか否かを判定する(ステップS313)。
ロードバランサ200のトラフィック量が仮想マシン300の性能の上限に達していない場合(ステップS313:否定)、情報解析部109は、情報解析処理を終了する。
これに対して、ロードバランサ200のトラフィック量が仮想マシン300の性能の上限に達した場合(ステップS313:肯定)、情報解析部109は、ステップS314へ進む。
そして、情報解析部109は、解析学習データベース112に同じ時間帯に同じイベントタイプの情報が格納されているか否かを判定する(ステップS314)。同じ時間帯に同じイベントタイプの情報が格納されている場合(ステップS314:肯定)、情報解析部109は、前回の時刻と今回の時刻との間の間隔を算出し、定期変化ポイントタイプを決定する。そして、情報解析部109は、解析学習データベース112の同じ時間帯の同じ定期変化ポイントタイプを有する定期性カウンタをインクリメントする(ステップS315)。
次に、情報解析部109は、インクリメントした定期性カウンタが閾値以上か否かを判定する(ステップS316)。定期性カウンタが閾値未満の場合(ステップS316:否定)、情報解析部109は、情報解析処理を終了する。
これに対して、定期性カウンタが閾値以上の場合(ステップS316:肯定)、情報解析部109は、インクリメントした定期性カウンタを有するエントリを増加用定期変化ポイントに設定し(ステップS317)、情報解析処理を終了する。
一方、同じ時間帯に同じイベントタイプの情報が格納されていない場合(ステップS314:否定)、情報解析部109は、VMスケールアウトトリガを解析学習データベース112に設定する(ステップS318)。
次に、図16を参照して、本実施例に係るクラウド管理装置1によるロードバランサ200のスケールアウト処理の流れについて説明する。図16は、実施例2に係るクラウド管理装置によるロードバランサのスケールアウト処理のシーケンス図である。
ロードバランサ制御部105は、解析学習データベース112の情報を読み込む(ステップS321)。
次に、ロードバランサ制御部105は、解析学習データベース112が更新されたか否かを判定する(ステップS322)。解析学習データベース112が更新されていない場合(ステップS322:否定)、ロードバランサ制御部105は、スケールアウト処理を終了する。
これに対して、解析学習データベース112が更新された場合(ステップS322:肯定)、ロードバランサ制御部105は、LBスケールアウトトリガが更新されたか否かを判定する(ステップS323)。LBスケールアウトトリガが更新された場合(ステップS323:肯定)、ロードバランサ制御部105は、ステップS325へ進む。
これに対して、LBスケールアウトトリガが更新されていない場合(ステップS323:否定)、ロードバランサ制御部105は、増加用定期変化ポイントの時刻が到来したか否かを判定する(ステップS324)。増加用定期変化ポイントの時刻が来ていない場合(ステップS324:否定)、ロードバランサ制御部105は、ステップS328へ進む。
これに対して、増加用定期変化ポイントの時刻が到来した場合(ステップS324:肯定)、ロードバランサ制御部105は、ステップS325へ進む。
そして、ロードバランサ制御部105は、増加用定期変化ポイントにおける増加トラフィックの最大値を解析学習データベース112から取得する。そして、ロードバランサ制御部105は、取得した最大値の増加トラフィックから追加するロードバランサ200の数を算出する(ステップS325)。
次に、ロードバランサ制御部105は、LBプールから算出した数のロードバランサ200を選択し、追加するロードバランサ200とする(ステップS326)。ここで、LBプールにロードバランサ200が足りない場合、ロードバランサ制御部105は、足りない分のロードバランサ200の起動をサーバ装置20に指示する。サーバ装置20により起動されたロードバランサ200は、LBプールに追加される。その後、ロードバランサ制御部105は、ステップS326の処理を実行する。
そして、ロードバランサ制御部105は、追加するロードバランサ200のIPをDNS装置7に登録し、スケールアウト処理を終了する(ステップS327)。
一方、LBスケールアウトトリガが更新されておらず、且つ、増加用定期変化ポイントの時刻が来ていない場合、ロードバランサ制御部105は、LBスケールアウト準備が更新されたか否かを判定する(ステップS328)。LBスケールアウト準備が更新されていない場合(ステップS328:否定)、ロードバランサ制御部105は、スケールアウト処理を終了する。
これに対して、LBスケールアウト準備が更新された場合(ステップS328:肯定)、ロードバランサ制御部105は、更新されたLBスケールアウト準備に対応するトラフィック情報における増加トラフィックから追加するロードバランサ200の数を算出する(ステップS329)。
次に、ロードバランサ制御部105は、算出した数のロードバランサ200の起動をサーバ装置20に指示する(ステップS330)。
サーバ装置20は、ロードバランサ200の起動の指示を受けて、指定された数のロードバランサ200を起動する(ステップS331)。
ロードバランサ200の起動後、サーバ装置20は、起動完了通知をロードバランサ制御部105へ送信する(ステップS332)。
ロードバランサ制御部105は、起動完了通知を受信すると、追加したロードバランサ200への設定反映をサーバ装置20に指示する(ステップS333)。
サーバ装置20は、ロードバランサ200への設定反映指示を受けて、追加したロードバランサ200に指定された設定を反映させる(ステップS334)。
ロードバランサ200に対する設定反映が完了すると、サーバ装置20は、設定反映完了の通知をロードバランサ制御部105へ送信する(ステップS335)。
設定反映完了通知を受信すると、ロードバランサ制御部105は、追加されたロードバランサ200をLBプールに格納する(ステップS336)。
さらに、ロードバランサ制御部105は、VMスケールアウト準備を解析学習データベース112に設定する(ステップS337)。
次に、図17を参照して、本実施例に係るクラウド管理装置1による仮想マシン300のスケールアウト処理の流れについて説明する。図17は、実施例2に係るクラウド管理装置による仮想マシンのスケールアウト処理のシーケンス図である。
仮想マシン制御部106は、解析学習データベース112を読み込む(ステップS341)。
次に、仮想マシン制御部106は、解析学習データベース112が更新されたか否かを判定する(ステップS342)。解析学習データベース112が更新されていない場合(ステップS342:否定)、仮想マシン制御部106は、スケールアウト処理を終了する。
これに対して、解析学習データベース112が更新された場合(ステップS342:肯定)、仮想マシン制御部106は、VMスケールアウトトリガが更新されたか否かを判定する(ステップS343)。VMスケールアウトトリガが更新された場合(ステップS343:肯定)、仮想マシン制御部106は、ステップS345へ進む。
これに対して、VMスケールアウトトリガが更新されていない場合(ステップS343:否定)、仮想マシン制御部106は、増加用定期変化ポイントの時刻が到来したか否かを判定する(ステップS344)。増加用定期変化ポイントの時刻が来ていない場合(ステップS344:否定)、仮想マシン制御部106は、ステップS349へ進む。
これに対して、増加用定期変化ポイントの時刻が到来した場合(ステップS344:肯定)、仮想マシン制御部106は、増加用定期変化ポイントにおける増加トラフィックの最大値を解析学習データベース112から取得する。そして、仮想マシン制御部106は、取得した最大値の増加トラフィックから追加する仮想マシン300の数を算出する(ステップS345)。
次に、仮想マシン制御部106は、算出した数の仮想マシン300をVMプールから選択し、追加する仮想マシン300とする(ステップS346)。ここで、VMプールに仮想マシン300が足りない場合、仮想マシン制御部106は、足りない分の仮想マシン300の起動をサーバ装置30に指示する。サーバ装置30により起動された仮想マシン300は、VMプールに追加される。その後、仮想マシン制御部106は、ステップS346の処理を実行する。
次に、仮想マシン制御部106は、追加する仮想マシン300をロードバランサ200に通知する(ステップS347)。
ロードバランサ200は、追加する仮想マシン300の通知を受けて、指定された仮想マシン300を分散対象に追加する(ステップS348)。
次に、仮想マシン制御部106は、VMスケールアウト準備が更新されたか否かを判定する(ステップS349)。
VMスケールアウト準備が更新されていない場合(ステップS349:否定)、仮想マシン制御部106は、スケールアウト処理を終了する。
これに対して、VMスケールアウト準備が更新された場合(ステップS349:肯定)、仮想マシン制御部106は、更新されたVMスケールアウト準備に対応するトラフィック情報における増加トラフィックから追加する仮想マシン300の数を算出する(ステップS350)。
次に、仮想マシン制御部106は、算出した数の仮想マシン300の起動をサーバ装置30に指示する(ステップS351)。
サーバ装置30は、仮想マシン300の起動の指示を受けて、指定された数の仮想マシン300を起動する(ステップS352)。
仮想マシン300の起動後、サーバ装置30は、起動完了通知を仮想マシン制御部106へ送信する(ステップS353)。
仮想マシン制御部106は、起動完了通知を受けて、追加した仮想マシン300をVMプールに格納する(ステップS354)。
次に、図18を参照して、本実施例に係るクラウド管理装置1によるスケールインに関する情報解析処理の流れについて説明する。図18は、実施例2に係るクラウド管理装置によるスケールインに関する情報解析処理のシーケンス図である。
情報解析部109は、ロードバランサ200のトラフィック情報を情報格納データベース111から取得する(ステップS401)。具体的には、情報解析部109は、ロードバランサ200のトラフィック量の合計値を取得する。
次に、情報解析部109は、ロードバランサ200のトラフィック量が前回計測したトラフィック量の0.5倍以下か否かを判定する(ステップS402)。トラフィック量が前回の0.5倍より大きい場合(ステップS402:否定)、情報解析部109は、ステップS408へ進む。
これに対して、トラフィック量が前回の0.5倍以下の場合(ステップS402:肯定)、情報解析部109は、解析学習データベース112に同じ時間帯に同じイベントタイプの情報が格納されているか否かを判定する(ステップS403)。同じ時間帯に同じイベントタイプの情報が格納されていない場合(ステップS403:否定)、情報解析部109は、ステップS407へ進む。
これに対して、同じ時間帯に同じイベントタイプの情報が格納されている場合(ステップS403:肯定)、情報解析部109は、前回の時刻と今回の時刻との間の間隔を算出し、定期変化ポイントタイプを決定する。そして、情報解析部109は、解析学習データベース112の同じ時間帯の同じ定期変化ポイントタイプを有する定期性カウンタをインクリメントする(ステップS404)。
次に、情報解析部109は、インクリメントした定期性カウンタが閾値以上か否かを判定する(ステップS405)。定期性カウンタが閾値未満の場合(ステップS405:否定)、情報解析部109は、ステップS408へ進む。
これに対して、定期性カウンタが閾値以上の場合(ステップS405:肯定)、情報解析部109は、インクリメントした定期性カウンタを有するエントリを減少用定期変化ポイントに設定し(ステップS406)、ステップS408へ進む。
また、情報解析部109は、LBスケール準備を解析学習データベース112に設定する(ステップS407)。
次に、情報解析部109は、仮想マシン300のトラフィック情報を情報格納データベース111から取得する(ステップS408)。具体的には、情報解析部109は、ロードバランサ200に登録されている仮想マシン300のトラフィック量の合計値を取得する。
次に、情報解析部109は、仮想マシン300が削減可能な状態まで仮想マシン300のトラフィック量が減少したか否かを判定する(ステップS409)。仮想マシン300が削減可能な状態までトラフィック量が減少した場合(ステップS409:肯定)、情報解析部109は、ステップS411へ進む。
これに対して、仮想マシン300が削減可能な状態までトラフィック量が減少していない場合(ステップS409:否定)、情報解析部109は、ロードバランサ200のトラフィック量が仮想マシン300の性能の下限に達したか否かを判定する(ステップS410)。
ロードバランサ200のトラフィック量が仮想マシン300の性能の下限に達していない場合(ステップS410:否定)、情報解析部109は、情報解析処理を終了する。
これに対して、ロードバランサ200のトラフィック量が仮想マシン300の性能の下限に達した場合(ステップS410:肯定)、情報解析部109は、ステップS411へ進む。
そして、情報解析部109は、解析学習データベース112に同じ時間帯に同じイベントタイプの情報が格納されているか否かを判定する(ステップS411)。同じ時間帯に同じイベントタイプの情報が格納されている場合(ステップS411:肯定)、情報解析部109は、前回の時刻と今回の時刻との間の間隔を算出し、定期変化ポイントタイプを決定する。そして、情報解析部109は、解析学習データベース112の同じ時間帯の同じ定期変化ポイントタイプを有する定期性カウンタをインクリメントする(ステップS412)。
次に、情報解析部109は、インクリメントした定期性カウンタが閾値以上か否かを判定する(ステップS413)。定期性カウンタが閾値未満の場合(ステップS413:否定)、情報解析部109は、情報解析処理を終了する。
これに対して、定期性カウンタが閾値以上の場合(ステップS413:肯定)、情報解析部109は、インクリメントした定期性カウンタを有するエントリを減少用定期変化ポイントに設定し(ステップS414)、情報解析処理を終了する。
一方、同じ時間帯に同じイベントタイプの情報が格納されていない場合(ステップS411:否定)、情報解析部109は、VMスケールイン準備を解析学習データベース112に設定する(ステップS415)。
次に、図19を参照して、本実施例に係るクラウド管理装置1によるロードバランサ200のスケールイン処理の流れについて説明する。図19は、実施例2に係るクラウド管理装置によるロードバランサのスケールイン処理のシーケンス図である。
ロードバランサ制御部105は、解析学習データベース112の情報を読み込む(ステップS421)。
次に、ロードバランサ制御部105は、解析学習データベース112が更新されたか否かを判定する(ステップS422)。解析学習データベース112が更新されていない場合(ステップS422:否定)、ロードバランサ制御部105は、スケールイン処理を終了する。
これに対して、解析学習データベース112が更新された場合(ステップS422:肯定)、ロードバランサ制御部105は、LBスケールイン準備が更新されたか否かを判定する(ステップS423)。LBスケールイン準備が更新されていない場合(ステップS423:否定)、ロードバランサ制御部105は、ステップS428へ進む。
これに対して、LBスケールイン準備が更新された場合(ステップS423:肯定)、ロードバランサ制御部105は、ロードバランサ200のトラフィックの減少量である減少トラフィックから削減するロードバランサ200の数を算出する(ステップS424)。
次に、ロードバランサ制御部105は、算出した数のロードバランサ200のIPをDNS装置7から削除する(ステップS425)。
次に、ロードバランサ制御部105は、DNS装置7から削除したロードバランサ200をLBプールに格納する(ステップS426)。
次に、ロードバランサ制御部105は、VMスケールイン準備を解析学習データベース112へ設定し、スケールイン処理を終了する(ステップS427)。
また、LBスケールイン準備が更新されていない場合、ロードバランサ制御部105は、減少用定期変化ポイントの時刻が到来したか否かを判定する(ステップS428)。減少用定期変化ポイントの時刻が来ていない場合(ステップS428:否定)、ロードバランサ制御部105は、スケールイン処理を終了する。
これに対して、減少用定期変化ポイントの時刻が到来した場合(ステップS428:肯定)、ロードバランサ制御部105は、減少用定期変化ポイントにおける減少トラフィックから削減するロードバランサ200の数を算出する(ステップS429)。
次に、ロードバランサ制御部105は、動作中のロードバランサ200の中から、算出した数のロードバランサ200を選択する(ステップS430)。
次に、ロードバランサ制御部105は、ロードバランサ200のIPをDNS装置7から削除する(ステップS431)。
次に、ロードバランサ制御部105は、選択したロードバランサ200の削除をサーバ装置20へ指示する(ステップS432)。
サーバ装置20は、指定されたロードバランサ200を削除する(ステップS433)。そして、サーバ装置20は、ロードバランサ200の削除完了通知をロードバランサ制御部105へ送信する(ステップS434)。
次に、図20を参照して、本実施例に係るクラウド管理装置1による仮想マシン300のスケールイン処理の流れについて説明する。図20は、実施例2に係るクラウド管理装置による仮想マシンのスケールイン処理のシーケンス図である。
仮想マシン制御部106は、解析学習データベース112を読み込む(ステップS441)。
次に、仮想マシン制御部106は、解析学習データベース112が更新されたか否かを判定する(ステップS442)。解析学習データベース112が更新されていない場合(ステップS442:否定)、仮想マシン制御部106は、スケールイン処理を終了する。
これに対して、解析学習データベース112が更新された場合(ステップS442:肯定)、仮想マシン制御部106は、VMスケールイン準備が更新されたか否かを判定する(ステップS443)。VMスケールイン準備が更新されていない場合(ステップS443:否定)、仮想マシン制御部106は、ステップS449へ進む。
これに対して、VMスケールイン準備が更新された場合(ステップS443:肯定)、仮想マシン制御部106は、更新されたVMスケールイン準備に対応するトラフィック情報におけるトラフィックの減少量である減少トラフィックを算出する。そして、仮想マシン制御部106は、減少トラフィックから削減する仮想マシン300の数を算出する(ステップS444)。
次に、仮想マシン制御部106は、稼働中の仮想マシン300の中から算出した数の仮想マシン300を選択し、削減する仮想マシン300を決定する(ステップS445)。
次に、仮想マシン制御部106は、削減する仮想マシン300をロードバランサ200に通知する(ステップS446)。
ロードバランサ200は、削減する仮想マシン300の通知を受けて、指定された仮想マシン300を分散対象から解除する(ステップS447)。
次に、仮想マシン制御部106は、削減する仮想マシン300をVMプールに格納し、スケールイン処理を終了する(ステップS448)。
一方、VMスケールイン準備が更新されていない場合、仮想マシン制御部106は、減少用定期変化ポイントの時刻が到来したか否かを判定する(ステップS449)。減少用定期変化ポイントの時刻が来ていない場合(ステップS449:否定)、仮想マシン制御部106は、スケールイン処理を終了する。
これに対して、減少用定期変化ポイントの時刻が到来した場合(ステップS449:肯定)、仮想マシン制御部106は、減少用定期変化ポイントにおけるトラフィックの減少量である減少トラフィックを算出する。そして、仮想マシン制御部106は、減少トラフィックから削減する仮想マシン300の数を算出する(ステップS450)。
次に、仮想マシン制御部106は、稼働中の仮想マシン300の中から算出した数の仮想マシン300を選択し、削減する仮想マシン300を決定する(ステップS451)。
次に、仮想マシン制御部106は、削減する仮想マシン300をロードバランサ200に通知する(ステップS452)。
ロードバランサ200は、削減する仮想マシン300の通知を受けて、指定された仮想マシン300を分散対象から解除する(ステップS453)。
次に、仮想マシン制御部106は、選択した仮想マシン300の削除をサーバ装置30へ指示する(ステップS454)。
サーバ装置30は、仮想マシン300の削除の指示を受けて、指定された仮想マシン300を削除する(ステップS455)。
その後、サーバ装置30は、削除完了通知を仮想マシン制御部106に送信する(ステップS456)。
以上に説明したように、本実施例に係るクラウド管理装置は、決められた量のトラフィックの変化が起こるタイミングを学習し、そのタイミングにおいて発生する可能性が高い変化に応じたオートスケールを行う。これにより、周期的に発生する突然のトラフィック量の変化に対応することができ、トラフィック量の変化に追従した適切なオートスケールを実施することができる。
次に、実施例3について説明する。本実施例に係るクラウド管理装置1も図2のブロック図で表される。本実施例に係るクラウド管理装置1は、周期的なトラフィックの変化を学習し、周期的なトラフィックの増加が発生する前に予めスケールアウトの準備を実行することが実施例2と異なる。以下の説明では実施例2と同様の各部の機能については説明を省略する。
本実施例に係る解析学習データベース112は、解析学習データベース112に加えて、最大配備時間情報を有する。最大配備時間は、ロードバランサ200又は仮想マシン300の配備にかかる時間の最大値である。最大配備時間は、ロードバランサ200又は仮想マシン300のそれぞれの配備時間について、配備を行う毎に更新される。以下では、ロードバランサ200の配備にかかる時間を「LB配備時間」と言い、LB配備時間の中の最大配備時間を「LB最大配備時間」と言う。また、仮想マシン300の配備にかかる時間を「VM配備時間」と言い、VM配備時間の中の最大配備時間を「VM最大配備時間」という。
ロードバランサ制御部105は、ロードバランサ200のスケールアウトの準備を行うか否かの判定時に、LBスケールアウト準備が更新されたか否かの他に、ロードバランサ200の増加用定期変化ポイントからLB最大配備時間前の時刻に達したかを判定する。ここで、ロードバランサ制御部105は、既に取得している解析学習データベース112からLB最大配備時間を取得することができる。そして、LBスケールアウト準備が更新された場合又は増加用定期変化ポイントからLB最大配備時間前の時刻に達した場合、ロードバランサ制御部105は、以下の処理を行う。
ロードバランサ制御部105は、ロードバランサ200における増加トラフィックから追加するロードバランサ200の数を算出する。次に、ロードバランサ制御部105は、算出した数のロードバランサ200の起動をサーバ装置20に指示する。その後、起動完了通知をサーバ装置20から受信すると、ロードバランサ制御部105は、追加したロードバランサ200への設定反映をサーバ装置20に指示する。
そして、ロードバランサ制御部105は、ロードバランサ200の起動を指示してから設定反映完了通知を受信するまでの時間を計測し、今回のLB配備時間とする。次に、ロードバランサ制御部105は、LB配備時間の計測値が解析学習データベース112に登録されたLB最大配備時間より長いか否かを判定する。LB配備時間の計測値がLB最大配備時間より長い場合、ロードバランサ制御部105は、解析学習データベース112に登録されたLB最大配備時間を今回のLB配備時間の計測値に変更する。
また、ロードバランサ制御部105は、追加されたロードバランサ200をLBプールに格納する。さらに、ロードバランサ制御部105は、VMスケールアウト準備を解析学習データベース112に設定する。
仮想マシン制御部106は、VMスケールアウトの準備を行うか否かの判定時に、VMスケールアウト準備が更新されたか否かの他に、仮想マシン300の増加用定期変化ポイントからVM最大配備時間前の時刻に達したかを判定する。ここで、仮想マシン制御部106は、既に取得している解析学習データベース112からVM最大配備時間を取得することができる。そして、VMスケールアウト準備が更新された場合又は増加用定期変化ポイントからVM最大配備時間前の時刻に達した場合、仮想マシン制御部106は、以下の処理を行う。
仮想マシン制御部106は、対象としたイベントに対応するトラフィック情報における増加トラフィックを算出する。そして、仮想マシン制御部106は、増加トラフィックから追加する仮想マシン300の数を算出する。仮想マシン制御部106は、算出した数の仮想マシン300の起動をサーバ装置30に指示する。さらに、仮想マシン制御部106は、追加した仮想マシン300をVMプールに格納する。
また、仮想マシン制御部106は、仮想マシンの起動を指示してから起動完了通知をサーバ装置30から受信するまでの時間を計測し、今回のVM配備時間とする。次に、仮想マシン制御部106は、VM配備時間の計測値が解析学習データベース112に登録されたVM最大配備時間より長いか否かを判定する。VM配備時間の計測値がVM最大配備時間より長い場合、仮想マシン制御部106は、解析学習データベース112に登録されたVM最大配備時間を今回のVM配備時間の計測値に変更する。
次に、図21を参照して、本実施例に係るクラウド管理装置1によるロードバランサ200のスケールアウト処理の流れについて説明する。図21は、実施例3に係るクラウド管理装置によるロードバランサのスケールアウト処理のシーケンス図である。
ロードバランサ制御部105は、解析学習データベース112の情報を読み込む(ステップS501)。
次に、ロードバランサ制御部105は、解析学習データベース112が更新されたか否かを判定する(ステップS502)。解析学習データベース112が更新されていない場合(ステップS502:否定)、ロードバランサ制御部105は、スケールアウト処理を終了する。
これに対して、解析学習データベース112が更新された場合(ステップS502:肯定)、ロードバランサ制御部105は、LBスケールアウトトリガが更新されたか否かを判定する(ステップS503)。LBスケールアウトトリガが更新された場合(ステップS503:肯定)、ロードバランサ制御部105は、ステップS505へ進む。
これに対して、LBスケールアウトトリガが更新されていない場合(ステップS503:否定)、ロードバランサ制御部105は、ロードバランサ200の増加用定期変化ポイントの時刻が到来したか否かを判定する(ステップS504)。増加用定期変化ポイントの時刻が来ていない場合(ステップS504:否定)、ロードバランサ制御部105は、ステップS508へ進む。
これに対して、増加用定期変化ポイントの時刻が到来した場合(ステップS504:肯定)、ロードバランサ制御部105は、増加トラフィックから追加するロードバランサ200の数を算出する(ステップS505)。
次に、ロードバランサ制御部105は、LBプールから算出した数のロードバランサ200を選択し、追加するロードバランサ200とする(ステップS506)。
そして、ロードバランサ制御部105は、追加するロードバランサ200のIPをDNS装置7に登録する(ステップS507)。
次に、ロードバランサ制御部105は、LBスケールアウト準備が更新されたか否かを判定する(ステップS508)。LBスケールアウト準備が更新された場合(ステップS508:肯定)、ロードバランサ制御部105は、ステップS510へ進む。
これに対して、LBスケールアウト準備が更新されていない場合(ステップS508:否定)、ロードバランサ制御部105は、ロードバランサ200の増加用定期変化ポイントからLB最大配備時間前の時刻に達したか否かを判定する(ステップS509)。増加用定期変化ポイントからLB最大配備時間前の時刻に達していない場合(ステップS509:否定)、ロードバランサ制御部105は、スケールアウト処理を終了する。
これに対して、増加用定期変化ポイントからLB最大配備時間前の時刻に達した場合(ステップS509:肯定)、ロードバランサ制御部105は、ステップS510へ進む。
そして、ロードバランサ制御部105は、イベントに対応するトラフィック情報における増加トラフィックから追加するロードバランサ200の数を算出する(ステップS510)。
次に、ロードバランサ制御部105は、算出した数のロードバランサ200の起動をサーバ装置20に指示する(ステップS511)。
サーバ装置20は、ロードバランサ200の起動の指示を受けて、指定された数のロードバランサ200を起動する(ステップS512)。
ロードバランサ200の起動後、サーバ装置20は、起動完了通知をロードバランサ制御部105へ送信する(ステップS513)。
ロードバランサ制御部105は、起動完了通知を受信すると、追加したロードバランサ200への設定反映をサーバ装置20に指示する(ステップS514)。
サーバ装置20は、ロードバランサ200への設定反映指示を受けて、追加したロードバランサ200に指定された設定を反映させる(ステップS515)。
ロードバランサ200に対する設定反映が完了すると、サーバ装置20は、設定反映完了の通知をロードバランサ制御部105へ送信する(ステップS516)。
設定反映完了通知を受信すると、ロードバランサ制御部105は、今回のLB配備時間を計測する(ステップS517)。
さらに、ロードバランサ制御部105は、追加されたロードバランサ200をLBプールに格納する(ステップS518)。
次に、ロードバランサ制御部105は、LB配備時間の計測値が解析学習データベース112に登録されたLB最大配備時間より長いか否かを判定する(ステップS519)。LB配備時間の計測値がLB最大配備時間以下の場合(ステップS519:否定)、ロードバランサ制御部105は、ステップS521へ進む。
一方、LB配備時間の計測値がLB最大配備時間より長い場合(ステップS519:肯定)、ロードバランサ制御部105は、解析学習データベース112に登録されたLB最大配備時間を今回のLB配備時間の計測値に変更する(ステップS520)。
さらに、ロードバランサ制御部105は、VMスケールアウト準備を解析学習データベース112に設定する(ステップS521)。
ここで、ステップ511〜520は、ロードバランサ200が複数ある場合、その数だけ並行して実行される。
次に、図22を参照して、本実施例に係るクラウド管理装置1による仮想マシン300のスケールアウト処理の流れについて説明する。図22は、実施例3に係るクラウド管理装置による仮想マシンのスケールアウト処理のシーケンス図である。
仮想マシン制御部106は、解析学習データベース112を読み込む(ステップS531)。
次に、仮想マシン制御部106は、解析学習データベース112が更新されたか否かを判定する(ステップS532)。解析学習データベース112が更新されていない場合(ステップS532:否定)、仮想マシン制御部106は、スケールアウト処理を終了する。
これに対して、解析学習データベース112が更新された場合(ステップS532:肯定)、仮想マシン制御部106は、VMスケールアウトトリガが更新されたか否かを判定する(ステップS533)。VMスケールアウトトリガが更新された場合(ステップS533:肯定)、仮想マシン制御部106は、ステップS535へ進む。
これに対して、VMスケールアウトトリガが更新されていない場合(ステップS533:否定)、仮想マシン制御部106は、仮想マシン300の増加用定期変化ポイントの時刻が到来したか否かを判定する(ステップS534)。増加用定期変化ポイントの時刻が来ていない場合(ステップS534:否定)、仮想マシン制御部106は、ステップS539へ進む。
これに対して、増加用定期変化ポイントの時刻が到来した場合(ステップS534:肯定)、仮想マシン制御部106は、対象としたイベントに対応するトラフィック情報における増加トラフィックを算出する。そして、仮想マシン制御部106は、増加トラフィックから追加する仮想マシン300の数を算出する(ステップS535)。
次に、仮想マシン制御部106は、算出した数の仮想マシン300をVMプールから選択し、追加する仮想マシン300とする(ステップS536)。
次に、仮想マシン制御部106は、追加する仮想マシン300をロードバランサ200に通知する(ステップS537)。
ロードバランサ200は、追加する仮想マシン300の通知を受けて、指定された仮想マシン300を分散対象に追加する(ステップS538)。
次に、仮想マシン制御部106は、VMスケールアウト準備が更新されたか否かを判定する(ステップS539)。VMスケールアウト準備が更新された場合(ステップS539:肯定)、仮想マシン制御部106は、ステップS541へ進む。
これに対して、VMスケールアウト準備が更新されていない場合(ステップS539:否定)、仮想マシン制御部106は、仮想マシン300の増加用定期変化ポイントからVM最大配備時間前の時刻に達したか否かを判定する(ステップS540)。増加用定期変化ポイントからVM最大配備時間前の時刻に達していない場合(ステップS540:否定)、仮想マシン制御部106は、スケールアウト処理を終了する。
これに対して、増加用定期変化ポイントからVM最大配備時間前の時刻に達した場合(ステップS540:肯定)、仮想マシン制御部106は、ステップS541へ進む。
仮想マシン制御部106は、対象としたイベントに対応するトラフィック情報における増加トラフィックを算出する。そして、仮想マシン制御部106は、増加トラフィックから追加する仮想マシン300の数を算出する(ステップS541)。
次に、仮想マシン制御部106は、算出した数の仮想マシン300の起動をサーバ装置30に指示する(ステップS542)。
サーバ装置30は、仮想マシン300の起動の指示を受けて、指定された数の仮想マシン300を起動する(ステップS543)。
仮想マシン300の起動後、サーバ装置30は、起動完了通知を仮想マシン制御部106へ送信する(ステップS544)。
起動完了通知を受信すると、仮想マシン制御部106は、今回のVM配備時間を計測する(ステップS545)。
また、仮想マシン制御部106は、追加した仮想マシン300をVMプールに格納する(ステップS546)。
次に、仮想マシン制御部106は、VM配備時間の計測値が解析学習データベース112に登録されたVM最大配備時間より長いか否かを判定する(ステップS547)。VM配備時間の計測値がLB最大配備時間以下の場合(ステップS547:否定)、仮想マシン制御部106は、スケールアウト処理を終了する。
一方、VM配備時間の計測値がVM最大配備時間より長い場合(ステップS547:肯定)、仮想マシン制御部106は、解析学習データベース112に登録されたVM最大配備時間を今回のVM配備時間の計測値に変更する(ステップS548)。
ここで、ステップ542〜548は、仮想マシン300が複数ある場合、その数だけ並行して実行される。
以上に説明したように、本実施例に係るクラウド管理装置は、周期的なトラフィック量の増加が発生する時刻から、リソースの配備に係る最大時間前にスケールアウトの準備を始める。これにより、周期的なトラフィック量の増加時には既にスケールアウトの準備が完了しており、迅速にスケールアウトを実行することができる。したがって、周期的に発生する突然のトラフィック量の変化により適切に対応することができ、トラフィック量の変化に追従した適切なオートスケールを実施することができる。
(ハードウェア構成)
図23は、クラウド管理装置のハードウェア構成図である。図23に示すように、クラウド管理装置1は、情報処理装置10及びストレージ装置11を有する。さらに、情報処理装置10は、CPU(Central Processing Unit)12、メモリ13、ハードディスク14、及びNIC(Network Interface Card)15を有する。
CPU12は、メモリ13、ハードディスク14及びNIC15とバスで接続される。また、CPU12は、ストレージ装置11と接続される。CPU12は、ストレージ装置11との間でデータの送受信を行う。
NIC15は、リモートルータ6、ネットワーク装置4、並びに、サーバ装置20及び30に接続するためのインタフェースである。
ストレージ装置11は、図2に例示した情報格納データベース111、解析学習データベース112、リソース管理データベース113及びプール情報格納部115の機能を実現する。
ハードディスク14は、図2に例示した設定パラメタ格納部114の機能を実現する。さらに、ハードディスク14は、図2に例示したユーザインタフェース制御部102、仮想ルータ制御部103及びファイアウォール制御部104の機能を実現するプログラムを格納する。また、ハードディスク14は、図2に例示したロードバランサ制御部105、仮想マシン制御部106、リモートルータ情報収集部107及び情報収集部108の機能を実現するプログラムを含む各種プログラムを格納する。
例えば、CPU12は、ハードディスク14からユーザインタフェース制御部102、仮想ルータ制御部103及びファイアウォール制御部104の機能を実現するプログラムを含む各種プログラムを読み出し、メモリ13上に展開して実行する。また、CPU12は、ハードディスク14からロードバランサ制御部105、仮想マシン制御部106、リモートルータ情報収集部107及び情報収集部108の機能を実現するプログラムを含む各種プログラムを読み出し、メモリ13上に展開して実行する。
これにより、CPU12及びメモリ13は、図2に例示したユーザインタフェース制御部102、仮想ルータ制御部103及びファイアウォール制御部104の機能を実現する。また、CPU12及びメモリ13は、図2に例示したロードバランサ制御部105、仮想マシン制御部106、リモートルータ情報収集部107及び情報収集部108の機能を実現する。
また、ストレージ装置11を用いずに、ハードディスク14により情報格納データベース111、解析学習データベース112及びリソース管理データベース113の機能を実現させてもよい。
さらに、ここでは、ハードディスク14にプログラムが予め格納された場合で説明したが、各機能を実現するためのプログラムは、CD(Compact Disc)やDVD(Digital Versatile Disc)などのクラウド管理装置1が読み取り可能な記憶媒体に格納されてもよい。その場合、クラウド管理装置1は、CDドライブやDVDドライブといった記憶媒体を読み取る機器を有する。