(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-26
(45)【発行日】2023-10-04
(54)【発明の名称】ロードバランサ配備位置決定方法、及びロードバランサ配備位置決定プログラム
(51)【国際特許分類】
H04L 47/125 20220101AFI20230927BHJP
【FI】
H04L47/125
(21)【出願番号】P 2020006068
(22)【出願日】2020-01-17
【審査請求日】2022-09-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100087480
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】佐藤 昌浩
【審査官】中川 幸洋
(56)【参考文献】
【文献】特開2006-332825(JP,A)
【文献】米国特許出願公開第2010/0057935(US,A1)
【文献】特開2018-129718(JP,A)
【文献】米国特許出願公開第2018/0227776(US,A1)
【文献】特開2014-103637(JP,A)
【文献】米国特許出願公開第2017/0310583(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 47/125
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
複数の第1のクラウド拠点の各々に構築されたシステムがリクエストを受け付けたときに実行する処理に要する処理時間を前記第1のクラウド拠点ごとに取得し、
前記第1のクラウド拠点と第2のクラウド拠点との間の通信時間を、複数の前記第1のクラウド拠点と複数の前記第2のクラウド拠点との組み合わせごとに取得し、
前記処理時間と前記通信時間とを加算した応答時間を、複数の前記第1のクラウド拠点と複数の前記第2のクラウド拠点との組み合わせごとに算出し、
複数の前記第2のクラウド拠点のうち、複数の前記第1のクラウド拠点の各々との間における前記応答時間のばらつきが基準値未満となる第2のクラウド拠点を、前記リクエストを複数の前記第1のクラウド拠点の各々に振り分けるロードバランサの配備先の候補とすること、
を特徴とするロードバランサ配備位置決定方法。
【請求項2】
前記コンピュータが、
前記ばらつきが前記基準値未満となる複数の前記第2のクラウド拠点のうち、複数の前記第1のクラウド拠点との間における前記応答時間の最大値が最も小さい第2のクラウド拠点を前記配備先に決定することを特徴とする請求項1に記載のロードバランサ配備位置決定方法。
【請求項3】
前記コンピュータが、
前記ばらつきが前記基準値未満となる前記第2のクラウド拠点に、同一の事業者が提供する複数の第2のクラウド拠点が含まれている場合には、前記事業者が提供する複数の前記第2のクラウド拠点のうちの一つを前記候補にすることを特徴とする請求項1に記載のロードバランサ配備位置決定方法。
【請求項4】
前記コンピュータが、
前記ばらつきを定期的に算出することにより、定期的に前記候補を更新することを特徴とする請求項1に記載のロードバランサ配備位置決定方法。
【請求項5】
前記コンピュータが、
前記更新前に前記ロードバランサを配備していた前記第2のクラウド拠点と複数の前記第1のクラウド拠点の各々との間における前記応答時間の前記ばらつきが前記基準値以上となった場合には、前記更新後の前記候補に含まれる前記ロードバランサのいずれかのIP(Internet Protocol)アドレスを、当該ロードバランサのドメイン名と対応付けてDNS(Domain Name System)サーバに登録することを特徴とする請求項4に記載のロードバランサ配備位置決定方法。
【請求項6】
複数の第1のクラウド拠点の各々に構築されたシステムがリクエストを受け付けたときに実行する処理に要する処理時間を前記第1のクラウド拠点ごとに取得する処理と、
前記第1のクラウド拠点と第2のクラウド拠点との間の通信時間を、複数の前記第1のクラウド拠点と複数の前記第2のクラウド拠点との組み合わせごとに取得する処理と、
前記処理時間と前記通信時間とを加算した応答時間を、複数の前記第1のクラウド拠点と複数の前記第2のクラウド拠点との組み合わせごとに算出する処理と、
複数の前記第2のクラウド拠点のうち、複数の前記第1のクラウド拠点の各々との間における前記応答時間のばらつきが基準値未満となる第2のクラウド拠点を、前記リクエストを複数の前記第1のクラウド拠点の各々に振り分けるロードバランサの配備先の候補にする処理と、
をコンピュータに実行させるためのロードバランサ配備位置決定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロードバランサ配備位置決定方法、及びロードバランサ配備位置決定プログラムに関する。
【背景技術】
【0002】
仮想化技術の発展に伴い、データセンタ内で起動している仮想マシンを利用して種々のサービスを利用者に提供するクラウドサービスが普及しつつある。クラウドサービスでは、サービスに必要なデータやプログラム等を仮想マシン側で管理するため、これらを利用者が管理する必要がなくなり、利用者の業務の効率化やコストダウンを図ることができる。なお、以下ではクラウドサービスのことを単にクラウドとも呼ぶ。
【0003】
クラウドの可用性を高める技術として、複数のクラウドを組み合わせたマルチクラウドと呼ばれる技術がある。マルチクラウドにおいては、データセンタの障害等によってあるクラウドを使用できない状況になっても、残りのクラウドを利用することができるため、クラウドの可用性を高めることができる。
【0004】
但し、マルチクラウドには、利用者がサービスのリクエストを出してからそのサービスの提供を受けるまでの時間のばらつきを抑制するという点で改善の余地がある。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
一側面によれば、利用者がサービスのリクエストを出してからそのサービスの提供を受けるまでの時間のばらつきを抑制することを目的とする。
【課題を解決するための手段】
【0007】
一側面によれば、コンピュータが、複数の第1のクラウド拠点の各々に構築されたシステムがリクエストを受け付けたときに実行する処理に要する処理時間を前記第1のクラウド拠点ごとに取得し、前記第1のクラウド拠点と第2のクラウド拠点との間の通信時間を、複数の前記第1のクラウド拠点と複数の前記第2のクラウド拠点との組み合わせごとに取得し、前記処理時間と前記通信時間とを加算した応答時間を、複数の前記第1のクラウド拠点と複数の前記第2のクラウド拠点との組み合わせごとに算出し、複数の前記第2のクラウド拠点のうち、複数の前記第1のクラウド拠点の各々との間における前記応答時間のばらつきが基準値未満となる第2のクラウド拠点を、前記リクエストを複数の前記第1のクラウド拠点の各々に振り分けるロードバランサの配備先の候補とするロードバランサ配備位置決定方法が提供される。
【発明の効果】
【0008】
一側面によれば、利用者がサービスのリクエストを出してからそのサービスの提供を受けるまでの時間のばらつきを抑制することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、検討に使用したマルチクラウドのシステム構成図である。
【
図2】
図2(a)、(b)は、問題について説明するための模式図である。
【
図3】
図3は、検討に使用したシステムの運用方法について説明するための模式図である。
【
図4】
図4は、検討に使用したシステムの第1のクラウド拠点に障害が発生した場合の模式図である。
【
図5】
図5は、本実施形態に係るシステムの構成図である。
【
図6】
図6は、本実施形態に係る第1の測定用仮想マシンの機能について説明するための模式図である。
【
図7】
図7は、本実施形態に係る第2の測定用仮想マシンの機能について説明するための模式図である。
【
図8】
図8は、本実施形態に係る管理サーバによる応答時間の算出結果について説明するための模式図である。
【
図9】
図9は、本実施形態に係る管理サーバによる応答時間のばらつきの算出結果について説明するための模式図である。
【
図10】
図10は、本実施形態に係るロードバランサの配備先の決定方法の一例を示す模式図である。
【
図11】
図11は、本実施形態において、複数の第2のクラウド拠点にロードバランサを配備した場合の本実施形態に係るシステムのシステム構成図である。
【
図12】
図12は、管理サーバが定期的にばらつきを監視する場合の本実施形態に係るシステムのシステム構成図である。
【
図13】
図13は、本実施形態に係る管理サーバの機能構成図である。
【
図14】
図14は、本実施形態に係るロードバランサ配備位置決定方法の一例を示すフローチャート(その1)である。
【
図15】
図15は、本実施形態に係るロードバランサ配備位置決定方法の一例を示すフローチャート(その2)である。
【
図16】
図16は、本実施形態に係る処理時間管理テーブル作成処理について示すフローチャートである。
【
図17】
図17は、本実施形態に係る通信時間管理テーブル作成処理について示すフローチャートである。
【
図18】
図18は、本実施形態に係る管理サーバのハードウェア構成図である。
【発明を実施するための形態】
【0010】
本実施形態の説明に先立ち、本願発明者が検討した事項について説明する。
【0011】
図1は、検討に使用したマルチクラウドのシステム構成図である。
このシステム1は、マルチクラウドを実現するシステムであり、第1のクラウド拠点2と第2のクラウド拠点3とを有する。このうち、第1のクラウド拠点2は、拠点Aに設置されたデータセンタの計算機を利用して事業者Aが提供するクラウドの拠点である。また、第2のクラウド拠点3は、拠点Bに設置されたデータセンタの計算機を利用して事業者Bが提供するクラウドの拠点である。
【0012】
これらのクラウド拠点2、3の各々は、ネットワーク4を介して利用者端末5と接続されており、利用者端末5に対して種々のサービスを提供する。なお、ここではネットワーク4としてインターネットを想定する。また、利用者端末5は、マルチクラウドを利用する利用者が操作するPC(Personal Computer)等の情報処理装置である。
【0013】
更に、このシステム1においては、第1のクラウド拠点の事業者Aと第2のクラウド拠点の事業者Bとを別の主体にする。これにより、一方の事業者がクラウドを提供できない状況になっても、残りの事業者のクラウドを利用して利用者にサービスを提供できるため、サービスの可用性を高めることができる。
【0014】
各々のクラウド拠点2、3には、サービスを提供するためのシステム10が構築される。システム10は、データセンタ内で起動している仮想マシンを利用して構築されており、利用者のニーズに応えるための様々なサービスを提供する。
【0015】
ここでは、第1のクラウド拠点2に第1~第3の仮想マシンVM1~VM3を起動した場合を想定する。このうち、第1の仮想マシンVM1は、利用者端末5からHTTP(Hypertext Transfer Protocol)のリクエストReqを受け付ける仮想サーバである。リクエストReqは、システム10に対してサービスに応じた処理を依頼する要求である。その処理をシステム10が終えると、第1の仮想マシンVM1は、処理の結果を応答Ackとして利用者端末5に返す。
【0016】
また、第2の仮想マシンVM2は、第1の仮想マシンVM1が受け付けたリクエストReqに応じた処理を行い、その処理の結果を第1の仮想マシンVM1に返す仮想サーバである。そして、第3の仮想マシンVM3は、その処理を行うのに要する仮想データベースDBである。
【0017】
例えば、システム10がEC(Electronic Commerce)サイトを構築するシステムである場合には、第1の仮想マシンVM1が利用者端末5から商品検索のリクエストを受け付ける。そして、第2の仮想マシンVM2が仮想データベースDBに登録されている商品を検索し、その結果を第1の仮想マシンVM1に返すことになる。
【0018】
ここでは、システム10がリクエストReqを受け付けてから応答Ackを返すまでの時間を処理時間T1と呼ぶ。
【0019】
また、第2のクラウド拠点3の内部にも、第1のクラウド拠点2におけるのと同じシステム10が構築される。
【0020】
更に、この例では、利用者端末5が送信したリクエストReqを第1のクラウド拠点2と第2のクラウド拠点3の各々に振り分けるロードバランサ8を第1のクラウド拠点2の内部に配備する。ロードバランサ8は、第1のクラウド拠点2に起動している仮想マシンによって実現することができ、ラウンドロビン等の所定のアルゴリズムに従って第1のクラウド拠点2と第2のクラウド拠点3の各々にリクエストReqを振り分ける。
【0021】
なお、ロードバランサ8とシステム10との間の通信の往復時間を以下では通信時間T2と呼ぶ。
【0022】
このようなシステム1によれば、二つのクラウド拠点2、3に同じシステム10を構築し、ロードバランサ8が利用者端末5のリクエストReqを各クラウド拠点2、3に振り分ける。よって、例えば第1のクラウド拠点2に障害が発生してその内部のシステム10を利用できない状況になっても、利用者端末5は第2のクラウド拠点3のシステム10を利用することができ、サービスの可用性を高めることができる。
但し、このシステム10には以下のような問題が発生することがある。
【0023】
図2(a)、(b)は、その問題について説明するための模式図である。
図2(a)においては、利用者端末5がシステム1にリクエストを複数回送信した場合の模式図である。ここでは、1回目のリクエストをReq 1で表し、このリクエストReq 1に対してシステム1が利用者端末5に返す応答をAck 1で表す。そして、利用者端末5がリクエストReq 1を送信してから応答Ack 1を受信するまでの時間間隔をΔt1で表す。
【0024】
同様に、2回目のリクエストと応答をそれぞれReq 2、Ack 2で表し、これらの時間間隔をΔt2で表す。そして、3回目のリクエストと応答をそれぞれReq 3、Ack 3で表し、これらの時間間隔をΔt3で表す。
【0025】
図2(a)の例では各時間間隔Δt1~Δt3が略一定であり、利用者端末5がシステム1から安定したサービスを受けられる状態にある。
【0026】
一方、
図2(b)の例では、各時間間隔Δt1~Δt3が不均一となっている。この原因としては、例えばシステム10の処理時間T1が第1のクラウド拠点2と第2のクラウド拠点3とで異なることが挙げられる。また、システム10とロードバランサ8との間の通信時間T2が第1のクラウド拠点2と第2のクラウド拠点3とで異なることも各時間間隔Δt1~Δt3が不均一となる原因の一つである。
【0027】
このような状態では、利用者端末5がリクエストReqを送信してから応答Ackを受信するまでの時間が不安定となるため、利用者端末5がシステム1から安定したサービスを受けることができない。
【0028】
また、マルチクラウドを提供する事業者によっては、管理サーバを利用してシステム1が正常に動作しているかどうかを監視することがある。その場合、管理サーバは、システム1にダミーのリクエストを送信し、そのリクエストに対する応答を管理サーバがシステム1から受信する。システム1に障害等の異常が発生している場合には、管理サーバがダミーのリクエストを送信してから応答を受信するまでの時間間隔Δtが長くなることが想定される。よって、管理者は、システム1に異常が発生しているとみなすための閾値tsを予め定めておく。そして、Δt<tsの場合にはシステム1は正常であると管理サーバが判断し、Δt≧tsの場合にはシステム1は異常であると管理サーバが判断する。
【0029】
そのような場合に各時間間隔Δt1~Δt3が不均一となっていると、システム1に異常がないにも関わらず、例えばΔt3≧tsとなってしまい異常と誤判定するおそれがある。よって、異常と正常とを切り分けるのに適切な閾値tsを設定するのが困難となり、マルチクラウドに異常があるかどうかを事業者が監視するのが難しくなる。
【0030】
なお、各時間間隔Δt1~Δt3が不均一になるのを防止するために、以下のようにシステム1を運用することも考えられる。
【0031】
図3は、システム1の運用方法について説明するための模式図である。
図3の例では、利用者端末5から送信されたリクエストReqをロードバランサ8が常に第1のクラウド拠点2に振り分ける。このように第1のクラウド拠点2のみを利用すれば、各クラウド拠点2、3における処理時間T1や通信時間T2の相違に起因して時間間隔Δt1~Δt3が不均一になるのを抑制できる。
【0032】
しかし、このような運用方法では、第1のクラウド拠点2に障害が発生した場合に以下のように時間間隔Δt1~Δt3が不均一になるおそれがある。
【0033】
図4は、第1のクラウド拠点2に障害が発生した場合の模式図である。
この場合には利用者端末5が第1のクラウド拠点2のシステム10を使用することができないため、ロードバランサ8がリクエストReqの振り分け先を第2のクラウド拠点3に切り替える。
【0034】
しかし、システム10の処理時間T1が第1のクラウド拠点2と第2のクラウド拠点3とで異なる場合には、利用者端末5がリクエストReqを送信してから応答Ackを受信するまでの時間が切り替えの前後で異なってしまう。同様に、システム10とロードバランサ8との間の通信時間T2が第1のクラウド拠点2と第2のクラウド拠点3とで異なる場合にも、リクエストReqの送信から応答Ackの受信までの時間が切り替えの前後で異なってしまう。これにより、
図2(b)の例と同様に、ロードバランサ8の振り分け先の切り替えの前後において各時間間隔Δt1~Δt3が不均一となるおそれがある。
【0035】
以下に、利用者端末がリクエストを送信してから応答を受信するまでの時間間隔が不均一となるのを抑制することが可能な各実施形態について説明する。
【0036】
(本実施形態)
[全体構成]
図5は、本実施形態に係るシステムの構成図である。
このシステム20は、マルチクラウドを実現するシステムであり、複数の第1のクラウド拠点21と、複数の第2のクラウド拠点22とを有する。なお、これらのクラウド拠点21、22の各々は、クラウドを提供する事業者と、そのクラウドを提供するための計算機を収容したデータセンタが設置されている拠点との組み合わせで特定されるコンピューティングシステムを示す。このうち、第1のクラウド拠点21には、利用者端末27にサービスを提供するためのシステム23が構築される。この例では、第1のクラウド拠点21に第1~第3の仮想マシン21a~21cを配備し、これらの仮想マシン21a~21cによりシステム23を実現する。
【0037】
各仮想マシン21a~21cの機能は特に限定されない。例えば、第1の仮想マシン21aは、利用者端末27からHTTPのリクエストReqを受け付ける仮想サーバである。リクエストReqは、システム23に対してサービスに応じた処理を依頼する要求である。その処理をシステム23が終えると、第1の仮想マシン21aは、処理の結果を応答Ackとして利用者端末27に返す。
【0038】
第2の仮想マシン21bは、第1の仮想マシン21aが受け付けたリクエストReqに応じた処理を行い、その処理の結果を第1の仮想マシン21aに返す仮想サーバである。そして、第3の仮想マシン21cは、その処理を行うのに要する仮想データベースDBである
【0039】
更に、第1のクラウド拠点21には、システム23の処理時間を測定するための第1の測定用仮想マシン24aが配備される。更に、第1のクラウド拠点21と第2のクラウド拠点22との間の通信時間を測定するための第2の測定用仮想マシン24bも第1のクラウド拠点21内に配備される。
【0040】
一方、第2のクラウド拠点22は、ロードバランサ25の配備先の候補のクラウド拠点である。この例では複数の第2のクラウド拠点22を用意し、このうちのいずれかに最終的にロードバランサ25が配備される。なお、ロードバランサ25は、第2のクラウド拠点22の内部に起動する仮想マシンによって実現することができる。更に、第2のクラウド拠点22には、前述の第2の測定用仮想マシン24bも配備される。
【0041】
第1のクラウド拠点21と第2のクラウド拠点22の各々はネットワーク26を介して利用者端末27と接続される。ネットワーク26は特に限定されない。例えば、インターネット、VPN(Virtual Private Network)、及びLAN(Local Area Network)等をネットワーク26として採用し得る。
【0042】
利用者端末27は、マルチクラウドを利用する利用者が操作するPC等の情報処理装置である。利用者の操作を受け付けると、利用者端末27は、第1のクラウド拠点21のシステム23からサービスを受けるためにロードバランサ25に対してリクエストReqを送信する。ロードバランサ25は、ラウンドロビン等のアルゴリズムによってそのリクエストReqを複数の第1のクラウド拠点21のいずれかに振り分ける。そして、リクエストReqが振り分けられた第1のクラウド拠点21のシステム23が所定の処理を行う。その後、システム23は、その処理の結果をリクエストReqに対する応答Ackとして利用者端末27に送信する。
【0043】
また、複数の第1のクラウド拠点21の各々を提供する事業者は特に限定されず、複数の第1のクラウド拠点21ごとに事業者が異なってもよいし、複数の第1のクラウド拠点21の中に同一事業者が提供するクラウド拠点が存在してもよい。但し、システム20の可用性を高めるためには、複数の第1のクラウド拠点21の各々の事業者を異なるようにするのが好ましい。
【0044】
図5においては、第1のクラウド拠点21と第2のクラウド拠点22の各々においてクラウドを提供する事業者を事業者A、事業者B、事業者C、…等で表す。また、各クラウド拠点21、22が提供するクラウドを実現するための計算機が収容されているデータセンタの拠点を拠点A、拠点B、拠点C、…等で表す。拠点A、拠点B、拠点C、…は、各々が異なる国に位置してもよいし、これらの中に同一国内の拠点が含まれてもよい。
【0045】
更に、このシステム20は、各クラウド拠点21、22を管理するための管理サーバ30を有する。管理サーバ30はネットワーク26に接続されており、複数の第1のクラウド拠点21と複数の第2のクラウド拠点22の各々にアクセス可能となっている。なお、管理サーバ30の形態は特に限定されず、物理サーバや仮想サーバ等のコンピュータを管理サーバ30として採用し得る。
【0046】
このようなシステム20においては、前述のようにロードバランサ25が複数の第1のクラウド拠点21にリクエストReqを振り分ける。そのため、利用者端末27がリクエストReqを送信してから応答Ackを受信するまでの時間間隔Δtは、振り分け先の第1のクラウド拠点21におけるシステム23の処理時間によって変わる。更に、ロードバランサ25が配備されている第2のクラウド拠点22と第1のクラウド拠点21との間の往復の通信時間によっても時間間隔Δtは変わる。
【0047】
リクエストReqを送信する度に時間間隔Δtが大きく変動すると、
図2(b)で例示したように第1のクラウド拠点21が正常に動作しているかを監視するのが困難となる。しかも、利用者にとっては、システム23から安定してサービスを受けることができないため不便である。
【0048】
そこで、本実施形態では、以下のようにして複数の第2のクラウド拠点22のうちで時間間隔Δtのばらつきを抑制することが可能なクラウド拠点にロードバランサ25を配備する。
【0049】
[ロードバランサ配備位置決定方法]
図6は、第1の測定用仮想マシン24aの機能について説明するための模式図である。
【0050】
第1の測定用仮想マシン24aは、自身が配備されている第1のクラウド拠点21内のシステム23に対してHTTPのダミーのリクエストReq_dを送信する。ダミーのリクエストReq_dとしては、例えばHTTPのGETメソッドを含むリクエストがある。そして、第1の測定用仮想マシン24aは、ダミーのリクエストReq_dを送信してからそれに対する応答Ack_dをシステム23から受信するまでの時間を処理時間T1として取得する。処理時間T1は、システム23がダミーのリクエストReq_dを受け付けたときに実行する処理に要する時間である。
【0051】
なお、第1の測定用仮想マシン24aがシステム23にダミーのリクエストReq_dを複数回送信し、各々のリクエストReq_dに対する応答Ack_dを複数回受信してもよい。その場合、第1の測定用仮想マシン24aがリクエストReq_dを送信してから応答Ack_dを受信するまでの時間を各回で平均した値を処理時間T1として採用し得る。
【0052】
更に、ダミーのリクエストReq_dに代えて、利用者端末27が送信するリクエストReqを利用して第1の測定用仮想マシン24aが処理時間T1を測定してもよい。その場合は、第1の測定用仮想マシン24aが、システム23に出入りするパケットをキャプチャすることにより、リクエストReqの受信時刻と応答Ackの送信時刻との差を処理時間T1として特定すればよい。
【0053】
管理サーバ30は、第1のクラウド拠点21ごとに、ネットワーク26を介して第1の測定用仮想マシン24aから処理時間T1を取得する。更に、管理サーバ30は、その処理時間T1と第1のクラウド拠点21とを対応付けた処理時間管理テーブルTB1を生成する。処理時間管理テーブルTB1において複数の第1のクラウド拠点21の各々を識別する識別子として、ここでは第1のクラウド拠点21の事業者と拠点との組み合わせを採用する。例えば、「事業者A/拠点A」という組み合わせによって、第1のクラウド拠点21を一意に識別することができる。
【0054】
図7は、第2の測定用仮想マシン24bの機能について説明するための模式図である。
【0055】
図7に示すように、第1のクラウド拠点21の第2の測定用仮想マシン24bは、自身が配備されている第1のクラウド拠点21と第2のクラウド拠点22との間における通信時間T2を測定する。その通信時間T2として、ここでは往復の通信時間RTT(Round Trip Time)を採用する。この場合、第1のクラウド拠点21の第2の測定用仮想マシン24bが、第2のクラウド拠点22の第2の測定用仮想マシン24bにping用のパケットを送信する。そして、第1のクラウド拠点21の第2の測定用仮想マシン24bは、ping用のパケットを送信してからそれに対する応答パケットを第2のクラウド拠点22の第2の測定用仮想マシン24bから受信するまでの時間を通信時間T2として測定する。
【0056】
なお、第2の測定用仮想マシン24bがRTTの測定を複数回行い、RTTの平均値を通信時間T2として算出するようにしてもよい。また、第1のクラウド拠点21と第2のクラウド拠点22との間の往復の通信時間を2で除した片道の通信時間を通信時間T2として採用してもよい。
【0057】
そして、管理サーバ30は、ネットワーク26を介して複数の第1のクラウド拠点21の各々にアクセスし、第1のクラウド拠点21内の第2の測定用仮想マシン24bから通信時間T2を取得する。
【0058】
更に、管理サーバ30は、その通信時間T2を含む通信時間管理テーブルTB2を生成する。通信時間管理テーブルTB2は、第1のクラウド拠点21、第2のクラウド拠点22、及び通信時間T2の各々を対応付けたテーブルである。
【0059】
その通信時間管理テーブルTB2においては、処理時間管理テーブルTB1と同様に、第1のクラウド拠点21と第2のクラウド拠点22の各々を事業者と拠点との組み合わせにより識別する。
【0060】
そして、管理サーバ30は、上記の処理時間管理テーブルTB1と通信時間管理テーブルTB2を利用して、次のように応答時間を算出する。
【0061】
図8は、管理サーバ30による応答時間の算出結果31について説明するための模式図である。
【0062】
応答時間T3は、処理時間T1と通信時間T2との和で定義される。管理サーバ30は、そのような応答時間T3を、第1のクラウド拠点21と第2のクラウド拠点22との組み合わせごとに算出する。
【0063】
例えば、「事業者A/拠点A」の第1のクラウド拠点21と、「事業者A/拠点C」の第2のクラウド拠点22との組み合わせについて考える。この場合は、処理時間管理テーブルTB1の一行目を参照すると、「事業者A/拠点A」の第1のクラウド拠点21の処理時間T1は100msecである。また、通信時間管理テーブルTB2の一行目を参照すると、「事業者A/拠点A」の第1のクラウド拠点21と「事業者A/拠点C」の第2のクラウド拠点22との間の通信時間T2は50msecである。よって、応答時間T3は150msec(=100msec+50msec)となる。
【0064】
次に、管理サーバ30は、応答時間T3の算出結果31を利用して、次のようにして応答時間T3のばらつきΔTを算出する。
【0065】
図9は、管理サーバ30による応答時間T3のばらつきΔTの算出結果32について説明するための模式図である。
【0066】
応答時間T3のばらつきΔTは、一つの第2のクラウド拠点22と、複数の第1のクラウド拠点21との間における応答時間T3の最大値T3maxと最小値T3minとの差である。
【0067】
例えば、算出結果31における第2のクラウド拠点22が「事業者A/拠点C」である場合について考える。この場合、算出結果31において「事業者A/拠点C」に対応する第1のクラウド拠点21としては「事業者A/拠点A」と「事業者B/拠点B」がある。このうち、「事業者A/拠点C」と「事業者A/拠点A」との間における応答時間T3は150msecである。そして、「事業者A/拠点C」と「事業者B/拠点B」との間における応答時間T3は150msecである。よって、第2のクラウド拠点22が「事業者A/拠点C」の場合は、応答時間T3の最大値T3maxと最小値T3minはいずれも150msecとなり、ばらつきΔTは0msec(=150msec-150msec)となる。
【0068】
次に、算出結果31における第2のクラウド拠点22が「事業者A/拠点D」である場合について考える。上記と同様に算出すると、「事業者A/拠点D」と「事業者A/拠点A」との間における応答時間T3は150msecとなる。そして、「事業者A/拠点D」と「事業者B/拠点B」との間における応答時間T3は155msecとなる。よって、第2のクラウド拠点22が「事業者A/拠点D」である場合には、応答時間T3の最大値T3maxは155msecとなり、応答時間T3の最小値T3minは150msecとなる。これにより、ばらつきΔTは5msec(=155msec-150msec)となる。
【0069】
管理サーバ30は、このような計算を複数の第2のクラウド拠点22の全てに対して行い、応答時間T3のばらつきΔTの算出結果32を得る。
【0070】
そのばらつきΔTが大きいと前述のように第1のクラウド拠点21が正常に動作しているかを管理者が監視するのが困難となると共に、利用者端末27がシステム23から安定してサービスを受けることができない。
【0071】
そこで、本実施形態では、管理者が、ばらつきΔTに予め基準値ΔTthを設定しておく。そして、管理サーバ30が、ばらつきΔTが基準値ΔTth未満となる第2のクラウド拠点22を、ロードバランサ25の配備先の候補とする。
【0072】
図9の例では、管理者が基準値ΔTthを10msecに設定している。この場合は、管理サーバ30は、「事業者A/拠点C」、「事業者A/拠点D」、及び「事業者C/拠点C」の三つの第2のクラウド拠点22を、ロードバランサ25の配備先の候補35とする。
【0073】
これにより、システム20の管理者が、ばらつきΔTが基準値ΔTth未満とすることが可能なロードバランサ25の配備先の候補35を取得できる。そして、実際に管理者がその候補35にロードバランサ25を配備することで、管理者が第1のクラウド拠点21が正常に動作しているかを監視し易くなると共に、利用者端末27がシステム23から安定してサービスを受けることが可能となる。
【0074】
なお、このように候補35に複数の第2のクラウド拠点22が含まれている場合には、管理サーバ30は、それらのうちの一つをロードバランサ25の配備先として決定してもよい。
【0075】
図10は、ロードバランサ25の配備先の決定方法の一例を示す模式図である。
【0076】
図10の例では、管理サーバ30が、候補35のうちで複数の第1のクラウド拠点21との間における応答時間T3の最大値T3
maxが最も小さい第2のクラウド拠点22をロードバランサ25の配備先に決定する。ここでは、
図9に示したように、「事業者A/拠点C」の応答時間T3の最大値T3
maxは150msecである。また、「事業者A/拠点D」の応答時間T3の最大値は155msecであり、「事業者C/拠点C」の応答時間T3の最大値T3
maxは160msecである。よって、管理サーバ30は、応答時間T3の最大値T3
maxが最も小さい「事業者A/拠点C」をロードバランサ25の配備先に決定する。
【0077】
これにより、利用者端末27がリクエストReqを送信してから応答Ackを受信するまでの時間間隔が最も短くなるようなロードバランサ25の配備先を管理者が特定できる。また、実際に管理者がその配備先にロードバランサ25を配備することにより、利用者端末27がシステム23から速やかにサービスを受けることができ、利用者の利便性を向上させることができる。
【0078】
なお、配備先を決定する際の基準として用いる値は最大値T3maxに限定されない。例えば、管理サーバ30が、候補35にある複数の第2のクラウド拠点22のうちでコストが最も安価なクラウド拠点をロードバランサ25の配備先に決定してもよい。一例として、第2のクラウド拠点22の事業者が従量課金制でロードバランサ25の利用料金を設定している場合には、単位時間当たりの利用料金が最も安価な第2のクラウド拠点22をロードバランサ25の配備先に決定してもよい。これにより、システム20の管理者のコスト減を図ることができ、管理者が利用者に安価なシステム20を提供することができる。
【0079】
なお、ロードバランサ25の可用性を高めるために、候補35にある全ての第2のクラウド拠点22にロードバランサ25を配備すると共に、そのうちの一つを現用系にし、残りを待機系にしてもよい。
【0080】
図11は、このように複数の第2のクラウド拠点22にロードバランサ25を配備した場合の本実施形態に係るシステム20のシステム構成図である。
【0081】
図11の例では、「事業者A/拠点C」の第2のクラウド拠点22に現用系のロードバランサ25を配備し、「事業者C/拠点C」の第2のクラウド拠点22に待機系のロードバランサ25を配備している。これにより、「事業者A/拠点C」のロードバランサ25に障害が発生した場合には、「事業者C/拠点C」にあるロードバランサ25を利用することにより利用者端末27が引き続きシステム23からサービスを受けることができる。
【0082】
なお、ある事業者自身に障害が発生すると、その事業者が提供している全ての第2のクラウド拠点22が使用できなくなり、ロードバランサ25の可用性が低下する。そのため、複数の第2のクラウド拠点22の各々の事業者は全て異なるのが好ましい。
図11の例では、二つの第2のクラウド拠点22の事業者が「事業者A」と「事業者C」で異なるため、一方の事業者に障害が発生しても、他方の事業者の第2のクラウド拠点22においてロードバランサ25を使用することができる。
【0083】
また、この例のように複数の第2のクラウド拠点22にロードバランサ25を配備する場合には、次のように管理サーバ30が定期的に応答時間T3のばらつきΔTを算出するのが好ましい。
【0084】
図12は、管理サーバ30が定期的にばらつきΔTを監視する場合の本実施形態に係るシステム20のシステム構成図である。
【0085】
システム20においては、運用途中で第1のクラウド拠点21の事業者や拠点が変更される場合がある。例えば、事業者や拠点を変えた方が第1のクラウド拠点21のコストが安くなる場合にこのような変更が生じることがある。
【0086】
図12においては、複数の第1のクラウド拠点21のうちの一つの拠点が、拠点Aから拠点Fに変更された場合を例示している。この場合には、拠点が変更された時点で応答時間T3のばらつきΔTが変化する。このようにばらつきΔTが変化すると候補35も変わるため、管理サーバ30は、例えば1日に一回程度の周期で定期的にばらつきΔTを算出し、その算出結果に応じて定期的に候補35を更新するのが好ましい。
【0087】
また、候補35を更新した結果、拠点の変更前では「事業者A/拠点C」が候補35に含まれていたものの、拠点の変更後では「事業者A/拠点C」が候補35から外れることがある。ここでは、拠点の変更によってこのように候補35から「事業者A/拠点C」が外れ、かつ候補35に「事業者C/拠点C」が含まれた場合について説明する。
【0088】
その場合には、「事業者A/拠点C」のロードバランサ25から「事業者C/拠点C」のロードバランサ25に切り替えることにより、「事業者C/拠点C」のロードバランサ25がリクエストReqの振り分けを行うようにすればよい。但し、利用者端末27は、切り替え後の「事業者C/拠点C」のロードバランサ25のIPアドレスを取得していないため、このままでは当該ロードバランサ25にアクセスすることができない。
【0089】
そこで、この例では、管理サーバ30が、更新後の候補35に含まれるロードバランサ25のIP(Internet Protocol)アドレスを、当該ロードバランサ25のドメイン名と対応付けてDNS(Domain Name System)サーバ36に登録する。
【0090】
ここでは、複数の第2のクラウド拠点22の全てのロードバランサ25のドメイン名を「lb.cloud.com」とし、利用者端末27の記憶部には当該ドメイン名「lb.cloud.com」が格納されているものとする。また、「事業者A/拠点C」の第2のクラウド拠点22にあるロードバランサ25のIPアドレスは「1.1.1.1」であり、「事業者C/拠点C」の第2のクラウド拠点22にあるロードバランサ25のIPアドレスは「2.2.2.2」であるとする。
【0091】
そのIPアドレスは、ロードバランサ25のドメイン名と対応付けてDNSサーバ36の管理情報36aに格納される。上記の例では、候補35の更新前においてはドメイン名「lb.cloud.com」とIPアドレス「1.1.1.1」とが対応付けられて管理情報36aに格納される。そして、候補35が更新されると、管理サーバ30は、管理情報36aにおいてドメイン名「lb.cloud.com」に対応するIPアドレスとして「2.2.2.2」を登録することにより、管理情報36aを更新する。
【0092】
これにより、利用者端末27が「事業者C/拠点C」のロードバランサ25のIPアドレスを取得できる。その結果、利用者端末27は、そのIPアドレスを送信先アドレスに設定してロードバランサ25にリクエストReqを送信できるようになる。
【0093】
[機能構成]
次に、本実施形態に係る管理サーバ30の機能構成について説明する。
図13は、本実施形態に係る管理サーバ30の機能構成図である。
図13に示すように、管理サーバ30は、通信部41、制御部42、及び記憶部43を有する。
【0094】
通信部41は、例えばNIC(Network Interface Card)によって実現される処理部である。ここでは、通信部41は、ネットワーク26を介して管理サーバ30を第1のクラウド拠点21、第2のクラウド拠点22、及びDNSサーバ36の各々に接続するインターフェースとして機能する。
【0095】
制御部42は、CPU(Central Processing Unit)等のプロセッサがDRAM(Dynamic Random Access Memory)等のメモリと協働して本実施形態に係るロードバランサ配備位置決定プログラムを実行することにより実現される処理部である。
【0096】
その制御部42は、第1の取得部44、第2の取得部45、算出部46、候補決定部47、及びアドレス登録部48を有する。
【0097】
第1の取得部44は、複数の第1のクラウド拠点21の各々の第1の測定用仮想マシン24aから処理時間T1を取得することにより、第1のクラウド拠点21ごとに処理時間T1を取得する処理部である。また、第1の取得部44は、取得した処理時間T1を第1のクラウド拠点21と対応付けて処理時間管理テーブルTB1を生成し、それを記憶部43に格納する。
【0098】
第2の取得部45は、複数の第1のクラウド拠点21と複数の第2のクラウド拠点22との組み合わせごとに通信時間T2を取得する処理部である。例えば、第2の取得部45は、第1のクラウド拠点21の第2の測定用仮想マシン24bから通信時間T2を取得することにより、第1のクラウド拠点21と第2のクラウド拠点22との組み合わせごとの通信時間T2を取得する。更に、第2の取得部45は、取得した通信時間T2を第1のクラウド拠点21と第2のクラウド拠点22の各々と対応付けて通信時間管理テーブルTB2を生成し、それを記憶部43に格納する。
【0099】
一方、算出部46は、処理時間管理テーブルTB1と通信時間管理テーブルTB2とを参照することにより、処理時間T1と通信時間T2とを加算した応答時間T3を第1のクラウド拠点21と第2のクラウド拠点22との組み合わせごとに算出する。
【0100】
また、候補決定部47は、複数の第1のクラウド拠点21の各々との間における応答時間T3のばらつきΔTが基準値ΔTth未満となる第2のクラウド拠点22をロードバランサ25の配備先の候補35として決定する処理部である。更に、候補決定部47は、その候補35が列挙された候補データCDを作成し、それを記憶部43に格納する。
【0101】
そして、アドレス登録部48は、ロードバランサ25のIPアドレスをそのドメイン名と対応付けてDNSサーバ36に登録する処理部である。例えば、アドレス登録部48は、
図12に示したように、ばらつきΔTを定期的に監視した結果候補35が更新された場合に、更新後の候補35に含まれるロードバランサ25のIPアドレスをDNSサーバ36に登録する。
【0102】
一方、記憶部43は、HDD等の記憶装置とDRAM等のメモリとによって実現され、前述の処理時間管理テーブルTB1、通信時間管理テーブルTB2、及び候補データCDの各々を記憶する。
【0103】
[処理の流れ]
次に、本実施形態に係る管理サーバ30の動作について説明する。
図14及び
図15は、本実施形態に係るロードバランサ配備位置決定方法の一例を示すフローチャートである。
【0104】
まず、第1の取得部44が、記憶部43に処理時間管理テーブルTB1があるかどうかを判断する(ステップS11)。ここで、記憶部43に処理時間管理テーブルTB1がないと第1の取得部44が判断した場合は(ステップS11:否定)、後述の処理時間管理テーブル作成処理(ステップS12)を実行した後に再びステップS11からやり直す。
【0105】
一方、処理時間管理テーブルTB1があると第1の取得部44が判断した場合は(ステップS11:肯定)、第1の取得部44は、処理時間管理テーブルTB1から第1のクラウド拠点21ごとに処理時間T1を取得する(ステップS13)。
【0106】
その後、第1の取得部44は、全ての第1のクラウド拠点21の処理時間T1を取得したかを判断する(ステップS14)。ここで、全ての第1のクラウド拠点21の処理時間T1を取得していないと第1の取得部44が判断した場合(ステップS14:否定)にはステップS13に戻る。
【0107】
一方、全ての第1のクラウド拠点21の処理時間T1を取得したと第1の取得部44が判断した場合(ステップS14:肯定)にはステップS15に移る。
【0108】
ステップS15においては、第2の取得部45が、記憶部43に通信時間管理テーブルTB2があるかどうかを判断する。
【0109】
ここで、記憶部43に通信時間管理テーブルTB2がないと第2の取得部45が判断した場合は(ステップS15:否定)、後述の通信時間管理テーブル作成処理(ステップS16)を実行した後に再びステップS15からやり直す。
【0110】
一方、通信時間管理テーブルTB2があると第2の取得部45が判断した場合は(ステップS15:肯定)、第2の取得部45は、通信時間管理テーブルTB2から通信時間T2を取得する(ステップS17)。このとき、第2の取得部45は、第1のクラウド拠点21と第2のクラウド拠点22との組み合わせごとに通信時間T2を取得する。
【0111】
次いで、第2の取得部45は、第1のクラウド拠点21と第2のクラウド拠点22の全ての組み合わせについて通信時間T2を取得したかを判断する(ステップS18)。ここで、全ての組み合わせについて通信時間T2を取得していないと第2の取得部45が判断した場合(ステップS18:否定)にはステップS17に戻る。
【0112】
一方、第2の取得部45が全ての組み合わせについて通信時間T2を取得したと判断した場合(ステップS18:肯定)にはステップS19に移る。
【0113】
ステップS19においては、算出部46が、第1のクラウド拠点21と第2のクラウド拠点22との組み合わせを一つ選択し、選択した組み合わせに対して応答時間T3を算出する。応答時間T3は、ステップS13とステップS17の各々で取得した処理時間T1と通信時間T2とを用いて、
図8に例示した方法で算出される。
【0114】
例えば、
図8の「事業者A/拠点A」と「事業者A/拠点C」との組み合わせについては、「事業者A/拠点A」の処理時間T1が100msecであり、「事業者A/拠点A」と「事業者A/拠点C」との間の通信時間T2が50msecである。よって、算出部46が算出する応答時間T3は150msec(=100msec+50msec)となる。
【0115】
次いで、算出部46が、ステップS19で算出した応答時間T3が最大値T3
maxよりも大きいかどうかを判断する(ステップS20)。最大値T3
maxは、一つの第2のクラウド拠点22と、複数の第1のクラウド拠点21との間における応答時間T3の最大値であり、第2のクラウド拠点22ごとに定まる値である。例えば、
図8の算出結果31に示すように、第2のクラウド拠点22が「事業者A/拠点D」の場合には、応答時間T3は150msecと155msecとなるため、最大値T3
maxは155msecとなる。
【0116】
ステップS20においては、応答時間T3の算出対象となった第1のクラウド拠点21と第2のクラウド拠点22との組み合わせにおいて、第2のクラウド拠点22に対応する最大値T3maxと応答時間T3との大小関係が算出部46によって判断される。
【0117】
なお、算出部46は、このフローチャートを実行する前に、複数の第2のクラウド拠点22の各々の最大値T3maxを十分小さな初期値に初期化しておく。一例として、算出部46は、最大値T3maxの初期値を0msecに設定する。
【0118】
そして、応答時間T3が最大値T3maxよりも大きいと算出部46が判断した場合には(ステップS20:肯定)、算出部46がその応答時間T3を新たな最大値T3maxとする(ステップS21)。
【0119】
一方、応答時間T3が最大値T3maxよりも大きくないと算出部46が判断した場合(ステップS20:否定)にはステップS22に移る。
【0120】
ステップS22においては、算出部46が、ステップS19で算出した応答時間T3が最小値T3
minよりも小さいかどうかを判断する。最小値T3
minは、一つの第2のクラウド拠点22と、複数の第1のクラウド拠点21との間における応答時間T3の最小値であり、第2のクラウド拠点22ごとに定まる値である。例えば、
図8の算出結果31に示すように、第2のクラウド拠点22が「事業者A/拠点D」の場合には、前述のように応答時間T3が150msecと155msecとなるため、最小値T3
minは150msecとなる。
【0121】
ステップS22においては、応答時間T3の算出対象となった第1のクラウド拠点21と第2のクラウド拠点22との組み合わせにおいて、第2のクラウド拠点22に対応する最小値T3minと応答時間T3との大小関係が算出部46によって判断される。
【0122】
なお、算出部46は、このフローチャートを実行する前に、複数の第2のクラウド拠点22の各々の最小値T3minを十分大きな初期値に初期化しておく。一例として、算出部46は、最小値T3minの初期値を1000msecに設定する。
【0123】
ここで、応答時間T3が最小値T3minよりも小さいと算出部46が判断した場合には(ステップS22:肯定)、算出部46がその応答時間T3を新たな最小値T3minとする(ステップS23)。
【0124】
上記のようにしてステップS21とステップS23を終えた後はステップS24に移る。なお、応答時間T3が最小値T3minよりも小さくないと算出部46が判断した場合(ステップS22:否定)にもステップS24に移る。
【0125】
ステップS24においては、算出部46が、第1のクラウド拠点21と第2のクラウド拠点22の全ての組み合わせに対して応答時間T3を算出したかどうかを判断する。
【0126】
ここで、全ての組み合わせに対して応答時間T3を算出していないと算出部46が判断した場合(ステップS24:否定)にはステップS19からやり直す。
【0127】
一方、全ての組み合わせに対して応答時間T3を算出したと算出部46が判断した場合(ステップS24:肯定)にはステップS25に移る。
【0128】
ステップS25においては、候補決定部47が、候補データCDに格納されている候補35を空に初期化する。
【0129】
次に、算出部46が、第2のクラウド拠点22の応答時間T3のばらつきΔTを算出する(ステップS26)。
図9を参照して説明したように、ばらつきΔTは、一つの第2のクラウド拠点22の応答時間T3の最大値T3
maxと最小値T3
minとの差として定義される。
【0130】
次いで、候補決定部47が、ばらつきΔTが基準値ΔTth未満かどうかを判断する(ステップS27)。基準値ΔTthは、利用者端末27が各システム23から安定してサービスを受けることができる目安となる値である。ここでは、管理者が基準値ΔTthを10msecに設定する。
【0131】
そして、ばらつきΔTが基準値ΔTth未満であると候補決定部47が判断した場合(ステップS27:肯定)にはステップS28に移る。
【0132】
ステップS28においては、候補決定部47が、ステップS27においてばらつきΔTが基準値ΔTth未満と判断された第2のクラウド拠点22と同一の事業者のクラウド拠点が候補データCDの候補35に含まれているかを判断する。
【0133】
ここで、同一事業者の複数の第2のクラウド拠点22の各々にロードバランサ25を配備すると、その事業者に障害が生じたときに、前述のように当該事業者が提供する全てのロードバランサ25が使用できなくなってしまう。
【0134】
そこで、同一の事業者の第2のクラウド拠点22が候補35に含まれていると候補決定部47が判断した場合には(ステップS28:肯定)、ステップS29において、候補決定部47が複数の第2のクラウド拠点22から一つを選択する。その選択の基準として、ここでは応答時間T3の最大値T3maxを採用する。
【0135】
例えば、候補決定部47は、ステップS27においてばらつきΔTが基準値ΔTth未満と判断された第2のクラウド拠点22の最大値T3max_Aが、候補35にある同一事業者の第2のクラウド拠点22の最大値T3max_Bよりも小さいかを判断する。
【0136】
そして、最大値T3max_Aが最大値T3max_Bよりも小さいと判断された場合(ステップS29:肯定)にはステップS30に移る。
【0137】
ステップS30においては、候補決定部47が、最大値T3max_Aを有する第2のクラウド拠点22をロードバランサ25の配備先の候補35とする。これにより、同一事業者が提供する複数の第2のクラウド拠点22のうちで最大値T3maxがより小さい第2のクラウド拠点22がロードバランサ25の配備先の候補となる。そのため、実際にその第2のクラウド拠点22にロードバランサ25を配備することにより、利用者端末27がリクエストを送信してから応答を受信するまでの時間を短くすることができる。
【0138】
なお、ステップS28において同一の事業者の第2のクラウド拠点22が候補35に含まれていないと候補決定部47が判断した場合にもステップS30を実行する。この場合も、候補決定部47が、ステップS27においてばらつきΔTが基準値ΔTth未満と判断された第2のクラウド拠点22を候補35に登録する。
【0139】
一方、ステップS29において最大値T3max_Aが最大値T3max_Bよりも小さくないと判断された場合にはステップS30をスキップする。
【0140】
次に、候補決定部47が、全ての第2のクラウド拠点22に対してばらつきΔTを算出したかどうかを判断する(ステップS31)。なお、ステップS27においてばらつきΔTが基準値ΔTth未満ではないと候補決定部47が判断した場合も、ステップS28~S30をスキップしてステップS31を実行する。
【0141】
そして、全ての第2のクラウド拠点22に対してばらつきΔTを算出していないと候補決定部47が判断した場合(ステップS31:否定)にはステップS26に戻り、そうでない場合(ステップS31:肯定)には処理を終える。
【0142】
次に、ステップS12の処理時間管理テーブル作成処理について説明する。
図16は、処理時間管理テーブル作成処理について示すフローチャートである。
【0143】
まず、第1の取得部44は、複数の第1の測定用仮想マシン24aの各々に対し処理時間T1を送信するように要求する(ステップS41)。
【0144】
次に、第1の取得部44は、全ての第1の測定用仮想マシン24aから処理時間T1を受信したかどうかを判断する(ステップS42)。ここで、全ての第1の測定用仮想マシン24aから処理時間T1を受信していないと第1の取得部44が判断した場合(ステップS42:否定)にはステップS41からやり直す。
【0145】
一方、全ての第1の測定用仮想マシン24aから処理時間T1を受信したと第1の取得部44が判断した場合(ステップS42:肯定)にはステップS43に移る。
【0146】
ステップS43においては、第1の取得部44が、第1の測定用仮想マシン24aが配備されている第1のクラウド拠点21と処理時間T1と対応付けて処理時間管理テーブルTB1に格納する。
以上により、処理時間管理テーブル作成処理を終える。
【0147】
次に、ステップS16の通信時間管理テーブル作成処理について説明する。
図17は、通信時間管理テーブル作成処理について示すフローチャートである。
【0148】
まず、第2の取得部45は、複数の第2の測定用仮想マシン24bの各々に対し通信時間T2を送信するように要求する(ステップS51)。
【0149】
次に、第2の取得部45は、全ての第2の測定用仮想マシン24bから通信時間T2を受信したかどうかを判断する(ステップS52)。ここで、全ての第2の測定用仮想マシン24bから通信時間T2を受信していないと第2の取得部45が判断した場合(ステップS52:否定)にはステップS51からやり直す。
【0150】
一方、全ての第2の測定用仮想マシン24bから通信時間T2を受信したと第2の取得部45が判断した場合(ステップS52:肯定)にはステップS53に移る。
【0151】
ステップS53においては、第2の取得部45が、通信時間T2を第1のクラウド拠点21と第2のクラウド拠点22の各々と対応付けて通信時間管理テーブルTB2に格納する。
以上により、通信時間管理テーブル作成処理を終える。
【0152】
[ハードウェア構成]
図18は、本実施形態に係る管理サーバ30のハードウェア構成図である。
図18に示すように、管理サーバ30は、記憶装置30a、メモリ30b、プロセッサ30c、通信インターフェース30d、表示装置30e、及び入力装置30fを有する。これらの各部は、バス30gにより相互に接続される。
【0153】
このうち、記憶装置30aは、HDDやSSD(Solid State Drive)等の不揮発性のストレージデバイスであり、本実施形態に係るロードバランサ配備位置決定プログラム50を記憶する。
【0154】
なお、ロードバランサ配備位置決定プログラム50をコンピュータが読み取り可能な記録媒体30hに記録させておき、プロセッサ30cに記録媒体30hのロードバランサ配備位置決定プログラム50を読み取らせるようにしてもよい。
【0155】
そのような記録媒体30hとしては、例えばCD-ROM(Compact Disc - Read Only Memory)、DVD(Digital Versatile Disc)、及びUSB(Universal Serial Bus)メモリ等の物理的な可搬型記録媒体がある。また、フラッシュメモリ等の半導体メモリやハードディスクドライブを記録媒体30hとして使用してもよい。これらの記録媒体30hは、物理的な形態を持たない搬送波のような一時的な媒体ではない。
【0156】
更に、公衆回線、インターネット、及びLAN(Local Area Network)等に接続された装置にロードバランサ配備位置決定プログラム50を記憶させてもよい。その場合は、プロセッサ30cがそのロードバランサ配備位置決定プログラム50を読み出して実行すればよい。
【0157】
一方、メモリ30bは、DRAM等のようにデータを一時的に記憶するハードウェアであって、その上に前述のロードバランサ配備位置決定プログラム50が展開される。
【0158】
プロセッサ30cは、管理サーバ30の各部を制御するCPU(Central Processing Unit)やGPU(Graphical Processing Unit)等のハードウェアである。また、プロセッサ30cは、メモリ30bと協働してロードバランサ配備位置決定プログラム50も実行する。
【0159】
このようにメモリ30bとプロセッサ30cとが協働してロードバランサ配備位置決定プログラム50を実行することにより、
図13の第1の取得部44、第2の取得部45、算出部46、候補決定部47、及びアドレス登録部48を備えた制御部42が実現される。また、
図13の記憶部43は、記憶装置30aとメモリ30bによって実現される。
【0160】
更に、通信インターフェース30dは、管理サーバ30をネットワーク26に接続するためのインターフェースである。その通信インターフェース30dにより、
図13の通信部41が実現される。
【0161】
そして、表示装置30eは、液晶表示装置等のハードウェアであって、システム20の管理者に種々の情報を表示する。また、入力装置30fは、キーボードやマウス等のハードウェアである。例えば、管理者は、入力装置30fを操作することにより、管理サーバ30に対して種々の指示を出すことになる。
【0162】
以上説明した各実施形態に関し、更に以下の付記を開示する。
(付記1) コンピュータが、
複数の第1のクラウド拠点の各々に構築されたシステムがリクエストを受け付けたときに実行する処理に要する処理時間を前記第1のクラウド拠点ごとに取得し、
前記第1のクラウド拠点と第2のクラウド拠点との間の通信時間を、複数の前記第1のクラウド拠点と複数の前記第2のクラウド拠点との組み合わせごとに取得し、
前記処理時間と前記通信時間とを加算した応答時間を、複数の前記第1のクラウド拠点と複数の前記第2のクラウド拠点との組み合わせごとに算出し、
複数の前記第2のクラウド拠点のうち、複数の前記第1のクラウド拠点の各々との間における前記応答時間のばらつきが基準値未満となる第2のクラウド拠点を、前記リクエストを複数の前記第1のクラウド拠点の各々に振り分けるロードバランサの配備先の候補とすること、
を特徴とするロードバランサ配備位置決定方法。
(付記2) 前記ばらつきは、一つの前記第2のクラウド拠点と、複数の前記第1のクラウド拠点との間における前記応答時間の最大値と最小値との差であることを特徴とする付記1に記載のロードバランサ配備位置決定方法。
(付記3) 前記コンピュータが、
前記ばらつきが前記基準値未満となる複数の前記第2のクラウド拠点のうち、複数の前記第1のクラウド拠点との間における前記応答時間の最大値が最も小さい第2のクラウド拠点を前記配備先に決定することを特徴とする付記1に記載のロードバランサ配備位置決定方法。
(付記4) 前記コンピュータが、
前記ばらつきが前記基準値未満となる複数の前記第2のクラウド拠点のうち、コストが最も安価な第2のクラウド拠点を前記配備先に決定することを特徴とする付記1に記載のロードバランサ配備位置決定方法。
(付記5) 前記コンピュータが、
前記ばらつきが前記基準値未満となる前記第2のクラウド拠点に、同一の事業者が提供する複数の第2のクラウド拠点が含まれている場合には、前記事業者が提供する複数の前記第2のクラウド拠点のうちの一つを前記候補にすることを特徴とする付記1に記載のロードバランサ配備位置決定方法。
(付記6) 前記コンピュータが、
前記事業者が提供する複数の前記第2のクラウド拠点のうち、複数の前記第1のクラウド拠点との間における前記応答時間の最大値が最も小さい第2のクラウド拠点を前記候補にすることを特徴とする付記5に記載のロードバランサ配備位置決定方法。
(付記7) 複数の前記第1のクラウド拠点の各々を提供する複数の事業者の各々が異なることを特徴とする付記1に記載のロードバランサ配備位置決定方法。
(付記8) 前記コンピュータが、
前記ばらつきを定期的に算出することにより、定期的に前記候補を更新することを特徴とする付記1に記載のロードバランサ配備位置決定方法。
(付記9) 前記コンピュータが、
前記更新前に前記ロードバランサを配備していた前記第2のクラウド拠点と複数の前記第1のクラウド拠点の各々との間における前記応答時間の前記ばらつきが前記基準値以上となった場合には、前記更新後の前記候補に含まれる前記ロードバランサのいずれかのIPアドレスを、当該ロードバランサのドメイン名と対応付けてDNSサーバに登録することを特徴とする付記8に記載のロードバランサ配備位置決定方法。
(付記10) 複数の第1のクラウド拠点の各々に構築されたシステムがリクエストを受け付けたときに実行する処理に要する処理時間を前記第1のクラウド拠点ごとに取得する処理と、
前記第1のクラウド拠点と第2のクラウド拠点との間の通信時間を、複数の前記第1のクラウド拠点と複数の前記第2のクラウド拠点との組み合わせごとに取得する処理と、
前記処理時間と前記通信時間とを加算した応答時間を、複数の前記第1のクラウド拠点と複数の前記第2のクラウド拠点との組み合わせごとに算出する処理と、
複数の前記第2のクラウド拠点のうち、複数の前記第1のクラウド拠点の各々との間における前記応答時間のばらつきが基準値未満となる第2のクラウド拠点を、前記リクエストを複数の前記第1のクラウド拠点の各々に振り分けるロードバランサの配備先の候補とする処理と、
をコンピュータに実行させるためのロードバランサ配備位置決定プログラム。
【符号の説明】
【0163】
1…システム、2…第1のクラウド拠点、3…第2のクラウド拠点、4…ネットワーク、5…利用者端末、8…ロードバランサ、10…システム、20…システム、21…第1のクラウド拠点、21a~21c…第1~第3の仮想マシン、22…第2のクラウド拠点、23…システム、24a…第1の測定用仮想マシン、24b…第2の測定用仮想マシン、25…ロードバランサ、26…ネットワーク、27…利用者端末、30…管理サーバ、30a…記憶装置、30b…メモリ、30c…プロセッサ、30d…通信インターフェース、30e…表示装置、30f…入力装置、30g…バス、30h…記録媒体、31、32…算出結果、35…候補、36…DNSサーバ、36a…管理情報、41…通信部、42…制御部、43…記憶部、44…第1の取得部、45…第2の取得部、46…算出部、47…候補決定部、48…アドレス登録部。