(57)【要約】【課題】サーバレス型システムが適用されたクラウドサービスにおいて、大量のアクセスを受け付けた場合にも対応することが可能な情報処理システムを提供する。【解決手段】処理要求を受け付ける受け付け部２１０と、処理要求に応じた処理を実行可能なサーバレス型システムである通常使用システム１１０の負荷を判断する負荷判断部２２０と、判断された通常使用システム１１０の負荷が予め定められた条件を満たす場合、クラウド環境上で、処理要求に応じた処理を実行可能なサーバ型システムである臨時使用システム１２０を構築する構築制御部２３０と、通常使用システム１１０の負荷が予め定められた条件を満たすか否かに応じて、処理要求に基づく処理を通常使用システム１１０および構築された臨時使用システム１２０の何れかに振り分けて実行させる振り分け部２４０と、を備える。【選択図】図１
2020154869.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからの処理要求を受け付ける受け付け部と、
前記処理要求に応じた処理を実行可能なサーバレス型システムである第１処理手段の負荷を判断する負荷判断部と、
前記負荷判断部により判断された前記第１処理手段の負荷が予め定められた条件を満たす場合、クラウド環境上で、前記処理要求に応じた処理を実行可能なサーバ型システムである第２処理手段を構築する構築制御部と、
前記第１処理手段の負荷が前記条件を満たさない場合、前記受け付け部が受け付けた前記処理要求に基づく処理を当該第１処理手段に実行させ、当該第１処理手段の負荷が前記条件を満たす場合、当該処理要求を、前記構築制御部により構築された前記第２処理手段に振り分けて実行させる振り分け部と、
を備えることを特徴とする、情報処理システム。
【請求項２】
前記負荷判断部は、前記受け付け部により受け付けられた前記処理要求に基づく処理を前記第１処理手段に実行させた場合の利用料金と、前記第２処理手段に実行させた場合の利用料金とを計算し、計算結果に基づき、前記第１処理手段の負荷が前記条件を満たすか否かを判断することを特徴とする、請求項１に記載の情報処理システム。
【請求項３】
前記構築制御部は、前記負荷判断部による利用料金の計算結果に基づき、構築する前記第２処理手段の計算資源を決定することを特徴とする、請求項２に記載の情報処理システム。
【請求項４】
前記構築制御部は、前記受け付け部により受け付けられた前記処理要求を行った前記クライアントが契約により利用可能な前記第１処理手段の計算資源と、当該処理要求に基づく処理を実行するのに要する処理量とに基づき、構築する前記第２処理手段の計算資源を決定することを特徴とする、請求項１に記載の情報処理システム。
【請求項５】
前記構築制御部は、前記クライアントによる前記第１処理手段の利用傾向が予め定められた条件を満たす場合、当該クライアントが契約により利用可能な当該第１処理手段の計算資源に相当する計算資源を有する前記第２処理手段を構築することを特徴とする、請求項４に記載の情報処理システム。
【請求項６】
コンピュータに、
クライアントからの処理要求を受け付ける機能と、
前記処理要求に応じた処理を実行可能なサーバレス型システムである第１処理手段の負荷を判断する機能と、
前記第１処理手段の負荷が予め定められた条件を満たす場合、クラウド環境上で、前記処理要求に応じた処理を実行可能なサーバ型システムである第２処理手段を構築する機能と、
前記第１処理手段の負荷が前記条件を満たさない場合、受け付け部が受け付けた前記処理要求に基づく処理を当該第１処理手段に実行させ、当該第１処理手段の負荷が前記条件を満たす場合、当該処理要求を、構築された前記第２処理手段に振り分けて実行させる機能と、
を実現させることを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムおよびプログラムに関する。
【背景技術】
【０００２】
クラウドサービスでは、様々な課金方式が取られている。特許文献１には、起動時間に応じて従量課金され、課金額が異なる複数種の外部サーバと接続し、受信した入力データを外部サーバに送信し、外部サーバに印刷画像を生成させる画像処理装置が開示されている。そして、複数種の外部サーバの中から、各入力データのページ毎に振り分け先サーバを決定し、ページを処理した際に他の外部サーバより課金額が低くなる外部サーバを、そのページの振り分け先サーバとして決定する構成が開示されている。
【０００３】
特許文献２には、異なる料金体系を定めた複数のサービス提供者が提供する複数のサーバ装置と第１のネットワークを通じて接続されるサーバ制御装置が開示されている。そして、サーバ制御装置が、クライアント端末へサービスを提供する仮想マシンの状態の履歴を記憶すること、サービスをサービス提供者ごとの仮想マシンの識別情報に対応付けて仮想マシンの利用にかかる契約情報を記憶すること、仮想マシンの状態の履歴から求まる仮想マシンの利用料金が契約情報を満たすように、仮想マシンを起動または停止させることが開示されている。
【０００４】
また、クラウドサービスでは、サーバを置かないサーバレス型のシステムが普及してきている。サーバレス型システムでは、自動的に処理量に応じた計算資源が割り当てられるため、大量の処理要求に対応することができる。また、処理の実行単位ごとに課金されるため、処理量が変動する場合に効率の良い利用が可能である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−１９２４６号公報
【特許文献２】特許６０９９３２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
サーバレス型システムに対して大量のアクセスが継続すると、仮想サーバ型システムを使用するより割高となってしまう。一方、処理要求の受け付けや実行に制限をかけると、大量のアクセスが行われた時にＳＬＡ（Service Level Agreement／サービス品質保証）を満たせなくなる懸念がある。
【０００７】
本発明は、サーバレス型システムが適用されたクラウドサービスにおいて、大量のアクセスを受け付けた場合にも負荷を分散して対応することが可能な情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に係る本発明は、
クライアントからの処理要求を受け付ける受け付け部と、
前記処理要求に応じた処理を実行可能なサーバレス型システムである第１処理手段の負荷を判断する負荷判断部と、
前記負荷判断部により判断された前記第１処理手段の負荷が予め定められた条件を満たす場合、クラウド環境上で、前記処理要求に応じた処理を実行可能なサーバ型システムである第２処理手段を構築する構築制御部と、
前記第１処理手段の負荷が前記条件を満たさない場合、前記受け付け部が受け付けた前記処理要求に基づく処理を当該第１処理手段に実行させ、当該第１処理手段の負荷が前記条件を満たす場合、当該処理要求を、前記構築制御部により構築された前記第２処理手段に振り分けて実行させる振り分け部と、
を備えることを特徴とする、情報処理システムである。
請求項２に係る本発明は、
前記負荷判断部は、前記受け付け部により受け付けられた前記処理要求に基づく処理を前記第１処理手段に実行させた場合の利用料金と、前記第２処理手段に実行させた場合の利用料金とを計算し、計算結果に基づき、前記第１処理手段の負荷が前記条件を満たすか否かを判断することを特徴とする、請求項１に記載の情報処理システムである。
請求項３に係る本発明は、
前記構築制御部は、前記負荷判断部による利用料金の計算結果に基づき、構築する前記第２処理手段の計算資源を決定することを特徴とする、請求項２に記載の情報処理システムである。
請求項４に係る本発明は、
前記構築制御部は、前記受け付け部により受け付けられた前記処理要求を行った前記クライアントが契約により利用可能な前記第１処理手段の計算資源と、当該処理要求に基づく処理を実行するのに要する処理量とに基づき、構築する前記第２処理手段の計算資源を決定することを特徴とする、請求項１に記載の情報処理システムである。  
請求項５に係る本発明は、
前記構築制御部は、前記クライアントによる前記第１処理手段の利用傾向が予め定められた条件を満たす場合、当該クライアントが契約により利用可能な当該第１処理手段の計算資源に相当する計算資源を有する前記第２処理手段を構築することを特徴とする、請求項４に記載の情報処理システムである。
請求項６に係る本発明は、
コンピュータに、
クライアントからの処理要求を受け付ける機能と、
前記処理要求に応じた処理を実行可能なサーバレス型システムである第１処理手段の負荷を判断する機能と、
前記第１処理手段の負荷が予め定められた条件を満たす場合、クラウド環境上で、前記処理要求に応じた処理を実行可能なサーバ型システムである第２処理手段を構築する機能と、
前記第１処理手段の負荷が前記条件を満たさない場合、受け付け部が受け付けた前記処理要求に基づく処理を当該第１処理手段に実行させ、当該第１処理手段の負荷が前記条件を満たす場合、当該処理要求を、構築された前記第２処理手段に振り分けて実行させる機能と、
を実現させることを特徴とする、プログラムである。
【発明の効果】
【０００９】
請求項１の発明によれば、サービスの提供をサーバレス型システムのみで行う構成と比較して、大量のアクセスを受け付けた場合における負荷を軽減することができる。
請求項２の発明によれば、サービスの提供をサーバレス型システムのみで行う構成と比較して、大量のアクセスを受け付けた場合における利用料金の増加を抑制することができる。
請求項３の発明によれば、予め計算資源の特定された第２処理手段に処理を分散させる構成と比較して、必要な資源のみで第２処理手段を構築することにより、不必要な利用料金の増加を抑制することができる。
請求項４の発明によれば、クライアントごとの利用状況に応じて第２処理手段に処理を分散させる構成と比較して、契約等で設定された内容を超える利用によりサーバ提供システムに対して過剰な負担がかかる場合に、第２処理手段に対して不必要に多くの計算資源を割り当てることを抑制することができる。
請求項５の発明によれば、クライアントごとの利用状況に応じて第２処理手段に処理を分散させる構成と比較して、サーバ提供システムに対して過剰な負担がかかるような利用傾向のあるクライアントに対し、第２処理手段に対して不必要に多くの計算資源を割り当てることを抑制することができる。
請求項６の発明によれば、サービスの提供をサーバレス型システムのみで行う構成と比較して、本発明のプログラムを実行するコンピュータにおいて、大量のアクセスを受け付けた場合における負荷を軽減することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態が適用される情報処理システムの全体構成を示す図である。
【図２】制御システムの動作を示すフローチャートである。
【図３】サービス提供システムにおける各システムの処理性能および利用料金の例を示す図である。
【図４】サービス提供システムの利用状況に基づく負荷の推定例（ケース１）を示す図である。
【図５】サービス提供システムの利用状況に基づく負荷の推定例（ケース２）を示す図である。
【図６】サービス提供システムの利用状況に基づく負荷の推定例（ケース３）を示す図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
＜システム構成＞
図１は、本実施形態が適用される情報処理システムの全体構成を示す図である。本実施形態の情報処理システムは、サービスを提供するサービス提供システム１００と、サービス提供システム１００への処理要求を発行してサービスの提供を受けるクライアント３００と、クライアント３００から発行された処理要求の転送制御を行う制御システム２００とを備える。サービス提供システム１００、制御システム２００およびクライアント３００は、ネットワークを介して接続されている。ネットワークとしては、例えばＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、インターネット等が用いられるが、各システム間のデータ通信に用いられる通信ネットワークであれば良く、通信方式、通信基盤等の種類や構成は特に限定されない。データ通信に用いられる通信回線は、有線か無線かを問わず、これらを併用しても良い。
【００１２】
＜サービス提供システム１００の構成＞
サービス提供システム１００は、上記のようなネットワークを介してサービスを提供する。サービス提供システム１００は、クライアント３００から発行された処理要求を受け付け、処理要求に応じた処理を実行する。処理の内容によっては、サービス提供システム１００は、処理結果をクライアント３００に返す。処理要求は制御システム２００で中継されてサービス提供システム１００に送られるが、処理結果をクライアント３００に返す場合、サービス提供システム１００からクライアント３００へ直接返送しても良い。
【００１３】
サービス提供システム１００における処理の実行手段には、常時使用可能な通常使用システム１１０と、通常使用システム１１０の負荷が特定の条件を満たす場合に使用される臨時使用システム１２０とがある。通常使用システム１１０および臨時使用システム１２０のいずれも、使用するには（すなわち、サービスの提供を受けるには）使用料金がかかる。通常使用システム１１０および臨時使用システム１２０は、ネットワークに接続された各種の資源を用いて実現される機能として提供され、例えば、いわゆるクラウド環境で構築されるシステム等として実現される。
【００１４】
通常使用システム１１０は、クライアント３００からの処理要求に応じた処理を実行可能であり、いわゆるサーバレス型システムである。すなわち、通常使用システム１１０は、第１処理手段の一例である。サーバレス型システムとは、ファンクション単位で機能が提供され、クライアント３００からの処理要求に応じてアプリケーション・プログラムが実行されるシステムである。サーバレス型システムである通常使用システム１１０の使用に対しては、アプリケーション・プログラムの実行時間の総和に応じて課金が発生する。
【００１５】
臨時使用システム１２０は、クライアント３００からの処理要求に応じた処理を実行可能であり、いわゆる仮想サーバ型システムである。すなわち、臨時使用システム１２０は、第２処理手段の一例である。仮想サーバ型システムとは、仮想的に構築されたサーバ（仮想サーバ）にアプリケーション・プログラムを搭載し、この仮想サーバがクライアント３００からの処理要求に応じて処理を実行するシステムである。仮想サーバが処理を実行するには、処理要求を受け付ける前に予め起動しておく必要がある。仮想サーバ型システムである臨時使用システム１２０の使用に対しては、仮想サーバの稼働時間に応じて課金が発生する。
【００１６】
本実施形態では、臨時使用システム１２０は、予め定められた条件（以下、構築条件）を満足すると、その都度構築される。また、構築された臨時使用システム１２０は、予め定められた条件（以下、削除条件）を満足すると削除される。構築条件および削除条件は、例えばクライアント３００ごとのサービス提供システム１００の利用状況に基づいて設定され、制御システム２００において判断される。また、本実施形態では、課金に応じて処理性能の異なる仮想サーバが構築されるものとする。例えば、利用料金および処理性能が異なる複数の種類の仮想サーバが設定されている場合、必要な処理性能を満たす仮想サーバのうちで最も利用料金の安い仮想サーバを制御システム２００として構築するようにしても良い。
【００１７】
＜制御システム２００の機能構成＞
制御システム２００は、例えばネットワークに接続されたサーバ装置により実現され、受け付け部２１０と、負荷判断部２２０と、構築制御部２３０と、振り分け部２４０とを備える。制御システム２００は、クライアント３００からサービス提供システム１００への処理要求を中継する。また、制御システム２００は、クライアント３００ごとのサービス提供システム１００の利用状況が構築条件を満足すると、このクライアント３００によるサービスの利用に関して、サービス提供システム１００に臨時使用システム１２０を構築させる。そして、制御システム２００は、クライアント３００ごとに、処理要求の実行先（通常使用システム１１０または臨時使用システム１２０）を振り分ける。また、制御システム２００は、削除条件を満足すると、サービス提供システム１００に臨時使用システム１２０を削除させる。
【００１８】
制御システム２００は、演算手段であるＣＰＵ（Central Processing Unit）と、記憶手段である主記憶装置（メイン・メモリ）および外部記憶装置を備える。ＣＰＵは、外部記憶装置に格納されたプログラムを主記憶装置に読み込んで実行する。主記憶装置としては、例えばＲＡＭ（Random Access Memory）が用いられる。外部記憶装置としては、例えば磁気ディスク装置やＳＳＤ（Solid State Drive）等が用いられる。ＣＰＵがプログラムを実行することにより、制御システム２００における各機能が実現される。なお、制御システム２００は、単体のサーバ装置であっても良いし、ネットワーク上の複数のサーバにより各機能が分散されたシステム（例えば、クラウドサーバ）であっても良い。
【００１９】
受け付け部２１０は、クライアント３００からの処理要求を受け付け、サービス提供システム１００へ送信する。上述したように、サービス提供システム１００には、実行手段として常時使用可能な通常使用システム１１０と、必要に応じて構築される臨時使用システム１２０とがある。受け付け部２１０は、臨時使用システム１２０が構築されて実行手段が複数存在する場合は、振り分け部２４０にしたがって送信先を特定し、処理要求を送信する。
【００２０】
負荷判断部２２０は、受け付け部２１０が受け付けた処理要求を監視し、処理要求の送信元のクライアント３００を特定する。そして、負荷判断部２２０は、クライアント３００ごとに、そのクライアント３００によるサービス提供システム１００の利用状況に応じて、通常使用システム１１０を利用した場合の負荷と、臨時使用システム１２０を利用した場合の負荷とを推定する。ここで、各システムの負荷としては、処理要求の数、計算資源の使用量など様々な定義の仕方が考えられるが、本実施形態では、処理要求に係る処理を各システムで実行した場合の各々の利用料金を、システムごとの負荷と考える。したがって、通常使用システム１１０に関しては、処理要求に係る処理を実行するのに要した時間に対する課金分の金額が負荷として計算される。また、臨時使用システム１２０に関しては、処理要求に係る処理を実行するためにシステムを稼働した時間（システムの起動から終了までの時間）に対する課金分の金額が負荷として計算される。
【００２１】
クライアント３００によるサービス提供システム１００の利用状況は、例えば、一定時間内にクライアント３００から受け付けた処理要求の数およびその処理要求に係る処理の実行時間に基づく値（例えば、平均値）により表される。負荷判断部２２０は、予測した各システムの負荷を比較し、通常使用システム１１０の方が負荷が大きい（利用料金が高い）場合、構築制御部２３０に通知する。
【００２２】
構築制御部２３０は、負荷判断部２２０から通知を受け付けると、これに応じて臨時使用システム１２０を構築する。構築制御部２３０は、予め定められた規定に基づき、構築する臨時使用システム１２０の計算資源を決定する。計算資源の決定の仕方には、種々の方法が考えられる。例えば、負荷判断部２２０により計算された負荷に対応する処理量に基づいて決定する方法が考えられる。この場合、要求される処理量に応じて必要な処理性能の仮想サーバによる臨時使用システム１２０が構築される。また、通常使用システム１１０の利用に対するクライアント３００の契約に応じて臨時使用システム１２０の計算資源を決定する方法が考えられる。この場合、契約内容に基づいて特定される処理性能の仮想サーバによる臨時使用システム１２０が構築される。また、クライアント３００における過去の通常使用システム１１０の利用傾向を参酌して臨時使用システム１２０の計算資源を決定しても良い。
【００２３】
振り分け部２４０は、受け付け部２１０が受け付けた処理要求の送信先を振り分ける。具体的には、振り分け部２４０は、初期状態では各クライアント３００からの処理要求を通常使用システム１１０に振り分ける。そして、あるクライアント３００の処理要求に関して臨時使用システム１２０が構築された場合、振り分け部２４０は、臨時使用システム１２０を構築する原因となったクライアント３００からの処理要求を、構築された臨時使用システム１２０へ振り分ける。また、振り分け部２４０は、臨時使用システム１２０が構築された後であっても、臨時使用システム１２０を構築する原因となったクライアント３００以外のクライアント３００からの要求を、通常使用システム１１０へ振り分ける。
【００２４】
＜クライアント３００の機能構成＞
クライアント３００は、制御システム２００を介してサービス提供システム１００にサービスを要求するための情報処理装置である。そして、サービス提供システム１００に要求する処理の内容によっては、サービス提供システム１００からのサービスの提供を受ける。例えば、サービスの内容が処理要求に応じた処理の実行であれば、クライアント３００は、サービス提供システム１００である通常使用システム１１０または臨時使用システム１２０から処理結果を受け取る。したがって、特に図示しないが、クライアント３００は、処理要求を送信し、処理結果を受信するための通信機能を有する。クライアント３００としては、パーソナルコンピュータ、スマートフォンや携帯電話等の情報処理装置等を用いて良い。また、ネットワーク上に設けられたサーバをクライアント３００として用いても良い。
【００２５】
＜制御システム２００の動作＞
図２は、制御システム２００の動作を示すフローチャートである。制御システム２００の受け付け部２１０がクライアント３００から処理要求を受け付けると（Ｓ２０１）、負荷判断部２２０が受け付けた処理要求を実行する場合の各システム（通常使用システム１１０および臨時使用システム１２０）の利用料金を計算する（Ｓ２０２）。そして、各システムの利用料金に基づく構築条件を満足すると（Ｓ２０３でＹＥＳ）、構築制御部２３０が仮想サーバの計算資源を決定し（Ｓ２０４）、臨時使用システム１２０を構築する（Ｓ２０５）。次に、振り分け部２４０がこのクライアント３００からの処理要求の送信経路を切り替え（Ｓ２０６）、受け付け部２１０が処理要求をサービス提供システム１００（この場合は構築した臨時使用システム１２０）に送信する（Ｓ２０７）。
【００２６】
一方、負荷判断部２２０により判断された各システムの利用料金が削除条件を満足した場合（Ｓ２０３でＮＯ、Ｓ２０８でＹＥＳ）、構築制御部２３０は、このクライアント３００の処理要求を処理するために構築されている臨時使用システム１２０を削除する（Ｓ２０９）。そして、振り分け部２４０がこのクライアント３００からの処理要求の送信経路を切り替え（Ｓ２０６）、受け付け部２１０が処理要求をサービス提供システム１００（この場合は通常使用システム１１０）に送信する（Ｓ２０７）。
【００２７】
また、負荷判断部２２０により判断された各システムの利用料金が構築条件および削除条件の何れも満足しない場合（Ｓ２０３でＮＯ、Ｓ２０８でＮＯ）、振り分け部２４０による送信経路の切り替えは行われない。したがって、受け付け部２１０は、それまでと同じサービス提供システム１００に処理要求を送信する（Ｓ２０７）。すなわち、初期的には通常使用システム１１０に処理要求が送信され、このクライアント３００の処理要求を処理するための臨時使用システム１２０が構築されている場合はかかる臨時使用システム１２０に処理要求が送信される。
【００２８】
＜適用例＞
以下、具体的な適用例を説明する。ここでは、臨時使用システム１２０を構築するか否かの判断および構築する臨時使用システム１２０（仮想サーバ）の計算資源の決定について説明する。上述したように、制御システム２００の負荷判断部２２０は、処理要求に係る処理を実行する場合の通常使用システム１１０および臨時使用システム１２０の利用料金を、システムごとの負荷として判断する。
【００２９】
本適用例において、構築条件は、サービス提供システム１００（通常使用システム１１０）の利用状況に関して、通常使用システム１１０を利用した結果の利用金額よりも臨時使用システム１２０を利用した場合の利用金額の方が安いこととする。利用状況は、一定時間に一のクライアント３００から受け付ける処理要求の数の平均値（以下、「平均リクエスト数」と呼ぶ）および１回の処理の実行に要した時間の平均値（以下、「平均処理時間」と呼ぶ）で表される。
【００３０】
また、臨時使用システム１２０を構築する際の計算資源は、臨時使用システム１２０として用いられる仮想サーバの処理性能によって表す。すなわち、例えば仮想サーバＡにより臨時使用システム１２０を構築する場合、仮想サーバＡの処理性能を実現するのに必要な計算資源が臨時使用システム１２０の計算資源である。計算資源の決定方法は、負荷判断部２２０による判断に用いられた一定時間の利用状況に対応可能な処理性能を有する仮想サーバのうちで最も利用料金の安いものを選択することとする。
【００３１】
図３は、サービス提供システム１００における各システムの処理性能および利用料金の例を示す図である。図示の例では、臨時使用システム１２０に用いられる仮想サーバとして３種類の仮想サーバＡ、Ｂ、Ｃが用意されている。仮想サーバＡは、処理性能が１０ｒｅｑ／ｓ（１秒間に１０個の処理要求を実行可能）であり、利用料金が０．１＄／ｈ（稼働時間１時間当たり０．１ドル）である。仮想サーバＢは、処理性能が５０ｒｅｑ／ｓであり、利用料金が０．５＄／ｈである。仮想サーバＣは、処理性能が１００ｒｅｑ／ｓであり、利用料金が１＄／ｈである。また、通常使用システム１１０は、サーバレス型システムであるため、処理性能は設定されない。そして、利用料金は、処理単価（一つの処理要求による処理の実行に対してかかる金額）とリクエスト数と処理時間とを乗算して得られる金額である。図示の例では、処理単価を０．００１＄としている。
【００３２】
図４は、サービス提供システム１００の利用状況に基づく負荷の推定例（ケース１）を示す図である。図４には、平均リクエスト数が１ｒｅｑ／ｓ（１秒当たり１個）、平均処理時間が０．０１ｓ（秒）である場合の例が示されている。この場合、通常使用システム１１０の利用料金（図では、「サーバレス利用料金」と記載）は、０．０３６＄／ｈ（１時間当たり０．０３６ドル）である。一方、図３に示した仮想サーバＡ、Ｂ、Ｃの何れも１ｒｅｑ／ｓの処理が可能な処理性能を有している。したがって、上記の計算資源の決定方法にしたがい、利用料金が最も安い仮想サーバＡを利用することとすると、この場合の利用料金（図では、「仮想サーバＡ料金」と記載）は、０．１＄／ｈである。すなわち、この利用状況では通常使用システム１１０の利用料金の方が安い。よって、利用料金に基づく負荷の判断結果は、臨時使用システム１２０の構築条件を満足せず、構築制御部２３０は臨時使用システム１２０を構築しない。そして、通常使用システム１１０の利用が継続される。
【００３３】
図５は、サービス提供システム１００の利用状況に基づく負荷の推定例（ケース２）を示す図である。図５には、平均リクエスト数が５０ｒｅｑ／ｓ、平均処理時間が０．１ｓである場合の例が示されている。この場合、通常使用システム１１０の１時間あたりの利用料金は、１８＄／ｈである。一方、図３に示した仮想サーバＡ、Ｂ、Ｃのうち、５０ｒｅｑ／ｓの処理が可能な処理性能を有するのは仮想サーバＢ、Ｃであり、利用料金が安いのは仮想サーバＢで、０．５＄／ｈである。したがって、この利用状況では仮想サーバＢを用いた臨時使用システム１２０の利用料金の方が安い。よって、利用料金に基づく負荷の判断結果は、臨時使用システム１２０の構築条件を満足したため、構築制御部２３０は仮想サーバＢによる臨時使用システム１２０を構築する。そして、振り分け部２４０により処理要求の送信先が通常使用システム１１０から臨時使用システム１２０へ切り替えられる。
【００３４】
なお、図５に示す例では、利用状況に対応可能な処理性能を有する仮想サーバのうちで最も利用料金の安いものを選択するという、計算資源の決定方法に基づいて、仮想サーバＢによる臨時使用システム１２０が構築された。しかし、臨時使用システム１２０に仮想サーバＣを用いる場合であっても、１時間当たりの利用料金は１＄／ｈであり、通常使用システム１１０よりも安い。したがって、構築条件は満足する。
【００３５】
上記の適用例では、臨時使用システム１２０の計算資源の決定方法の一例として、利用状況に対応可能な処理性能を有する仮想サーバのうちで最も利用料金の安いものを選択した。他の決定方法の一例として、予め契約等により臨時使用システム１２０の計算資源を定めておいても良い。例えば、臨時使用システム１２０を構築する場合は、特定の仮想サーバを用いるように指定しても良い。また、通常使用システム１１０に対して契約（ＳＬＡ）で設定された処理性能に応じた仮想サーバにより臨時使用システム１２０を構築するようにしても良い。さらに、クライアント３００によるサービス提供システム１００の利用傾向を参酌して臨時使用システム１２０を構築するのに用いる仮想サーバを選択しても良い。
【００３６】
図６は、サービス提供システム１００の利用状況に基づく負荷の推定例（ケース３）を示す図である。図６には、平均リクエスト数が５０ｒｅｑ／ｓ、平均処理時間が０．１ｓである場合の例が示されている。図６において、「ＳＬＡ」は、契約により合意された、クライアント３００がサービス提供システム１００によるサービスを利用する際の品質を示す。図示の例では、２０ｒｅｑ／ｓに設定されている。
【００３７】
また、図６に示す例において、通常使用システム１１０の１時間あたりの利用料金は、１８＄／ｈである。そして、図３に示した仮想サーバＡ、Ｂ、Ｃのうち、５０ｒｅｑ／ｓの処理が可能な処理性能を有するのは仮想サーバＢ、Ｃである。また、図５に示した例に関して説明したように、仮想サーバＢ、Ｃの何れによる臨時使用システム１２０であっても、通常使用システム１１０よりも利用料金が安い。したがって、図６に示すサービス提供システム１００の利用状況は、構築条件を満足する。
【００３８】
ここで、臨時使用システム１２０の構築に関して、予め契約等により臨時使用システム１２０の計算資源を定めた場合を考える。一例として、臨時使用システム１２０に特定の仮想サーバを用いるように指定した場合（設定１）、利用状況に関わらず指定された仮想サーバによる臨時使用システム１２０が構築される（図６参照）。この場合、選択された仮想サーバの種類により利用料金が変わる。図３に示した例では、仮想サーバＡが選択された場合は、０．１＄／ｈであり、仮想サーバＢが選択された場合は、０．５＄／ｈであり、仮想サーバＣが選択された場合は、１＄／ｈである。
【００３９】
他の一例として、通常使用システム１１０に対して契約（ＳＬＡ）で設定された処理性能に応じた仮想サーバにより臨時使用システム１２０を構築する場合（設定２）、ＳＬＡを満足する仮想サーバによる臨時使用システム１２０が構築される。図６を参照すると、ＳＬＡで設定された品質を満足する（すなわち、処理性能が２０ｒｅｑ／ｓ以上である）仮想サーバＢが、臨時使用システム１２０の仮想サーバとして選択されている。この場合、利用料金は、０．５＄／ｈである。なお、仮想サーバＣもＳＬＡで設定された品質を満足するが、ここでは、利用金額の安い仮想サーバＢを選択している。
【００４０】
さらに他の一例として、クライアント３００によるサービス提供システム１００の利用傾向を参酌して臨時使用システム１２０を構築する場合（設定３）、このクライアント３００における利用状況とＳＬＡとに基づいて選択される仮想サーバによる臨時使用システム１２０が構築される。図６を参照すると、このクライアント３００の利用状況において、平均リクエスト数はＳＬＡで設定された値を大きく上回っている。これは、ＳＬＡで設定された範囲を大きく超えて通常使用システム１１０に負荷を与えている状況であることを意味する。そこで、このようなＳＬＡで設定された値を大きく上回る利用が頻繁に行われるクライアント３００に対しては、臨時使用システム１２０の利用に対して制限を課すようにしても良い。具体的には、例えば、設定２の場合のようにＳＬＡで設定された品質を満足する仮想サーバを用いるのではなく、ＳＬＡで設定された処理性能を超えない仮想サーバを用いて臨時使用システム１２０を構築することが考えられる。図６を参照すると、処理性能がＳＬＡで設定された品質を超えない（すなわち、２０ｒｅｑ／ｓよりも処理性能が低い）仮想サーバＡが、臨時使用システム１２０の仮想サーバとして選択されている。この場合、利用料金は、０．１＄／ｈである。
【００４１】
図６に示した例では、クライアント３００によるサービス提供システム１００の利用状況として、平均リクエスト数がＳＬＡよりも大きい場合について説明した。これに対し、平均処理時間が長い処理要求を多く発行するクライアント３００に関しても、他のクライアント３００よりも大きい負荷をサービス提供システム１００に与えることが考えられるため、同様に臨時使用システム１２０の利用に対して制限を課しても良い。
【００４２】
また、上記の適用例では、何れも臨時使用システム１２０を構築するか否かの判断および構築する臨時使用システム１２０（仮想サーバ）の計算資源の決定について説明した。構築された臨時使用システム１２０は、削除条件を満足すれば削除される。削除条件は、例えば、上述した適用例の構築条件と同様に、平均リクエスト数および平均処理時間から算出される通常使用システム１１０を利用した場合の利用料金と臨時使用システム１２０を利用した場合の利用料金とに基づいて設定しても良い。具体的には、通常使用システム１１０を利用した場合の利用料金が臨時使用システム１２０を利用した場合の利用料金を下回った場合に臨時使用システム１２０を削除するようにしても良い。
【００４３】
以上、本発明の実施形態について説明したが、本発明の技術的範囲は上記実施形態には限定されない。特に、臨時使用システム１２０を構築するか否かを決定するための構築条件、臨時使用システム１２０を削除するか否かを決定するための削除条件、臨時使用システム１２０の計算資源の決定方法は、サービス提供システム１００および制御システム２００の仕様や運用方針等に基づき種々の内容で設定して良い。その他、本発明の技術思想の範囲から逸脱しない様々な変更や構成の代替は、本発明に含まれる。
【符号の説明】
【００４４】
１００…サービス提供システム、１１０…通常使用システム、１２０…臨時使用システム、２００…制御システム、２１０…受け付け部、２２０…負荷判断部、２３０…構築制御部、２４０…振り分け部、３００…クライアント
【図１】
2020154869.tif 000003
【図２】
2020154869.tif 000004
【図３】
2020154869.tif 000005
【図４】
2020154869.tif 000006
【図５】
2020154869.tif 000007
【図６】
2020154869.tif 000008