【文献】
木下順史、外3名,オープンソースソフトウェアで実現するクラウドサービス,日立評論,日立評論社,2017年 5月20日,第99巻第3号,pp.72-76
(58)【調査した分野】(Int.Cl.,DB名)
クラウドインフラストラクチャー上で用いる複数のインスタンスの中から、アイドル状態のインスタンスを検出して前記アイドル状態のインスタンスを利用可能状態とするインスタンス利用促進システムであって、
前記複数のインスタンスから各インスタンスのメトリクスを収集するメトリクス収集部と、
前記複数のインスタンスのうちの稼働状態が不明なインスタンスの中から、ヒューリスティックな手法を用いて稼働状態を問い合わせるインスタンスを選定するインスタンス選定部と、
前記インスタンス選定部により選定されたインスタンスの稼働状態をユーザに問い合わせると共に、この問い合わせた結果に基づき、稼働状態、アイドル状態および不明状態のいずれかのラベルを前記インスタンスに付ける問合せ部と、
前記問合せ部によりラベル付けされたインスタンスのうち、アイドル状態のラベルが付けられたインスタンスを利用可能化するインスタンス利用可能化部と、
前記メトリクス収集部により収集された各インスタンスのメトリクスと、前記問合せ部により付けられた前記各インスタンスのラベルとを用い、新たなインスタンスの稼働状態を判別するための機械学習を行う機械学習部と、を備えていることを特徴とするインスタンス利用促進システム。
インスタンス選定部によるインスタンスの選定と、問合せ部によるユーザへの問合せおよびインスタンスへのラベル付けと、インスタンス利用可能化部によるインスタンスの利用可能化とが繰り返し行われる請求項1に記載のインスタンス利用促進システム。
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここで、上述したような技術を用いる場合、精度よくインスタンスの稼働状況を分類するためには前もって十分に機械学習を行わせる必要があり、このような機械学習をさせるためにはトレーニングに用いる十分な数の教師データ(ラベル)が予め存在していることが前提となる。
【0008】
しかしながら、上述したような従来の技術を用いる場合、クラウドコンピューティング規模でのラベルを予め準備するのは難しく、全てのユーザにラベル付けに用いる情報の提供を依頼するのも現実的には難しい。このため、単に機械学習の手法を導入しただけでは精度よくアイドル状態のインスタンスを検出することができず、結果として未使用のインスタンスを早期かつ確実に利用できるようにすることが困難である。
【0009】
本発明は、以上のような事情に基づいてなされたものであり、その目的は、たとえ機械学習のための教師データ(ラベル)が十分に揃っていない状態であっても、アイドル状態のインスタンスを見つけて迅速かつ確実に利用可能化することができるインスタンス利用促進システムを提供することにある。
【課題を解決するための手段】
【0010】
本発明は、
(1)クラウドインフラストラクチャー上で用いる複数のインスタンスの中から、アイドル状態のインスタンスを検出して前記アイドル状態のインスタンスを利用可能状態とするインスタンス利用促進システムであって、
前記複数のインスタンスから各インスタンスのメトリクスを収集するメトリクス収集部と、
前記複数のインスタンスのうちの稼働状態が不明なインスタンスの中から、稼働状態を問い合わせるインスタンスを選定するインスタンス選定部と、
前記インスタンス選定部により選定されたインスタンスの稼働状態をユーザに問い合わせると共に、この問い合わせた結果に基づき、稼働状態、アイドル状態および不明状態のいずれかのラベルを前記インスタンスに付ける問合せ部と、
前記問合せ部によりラベル付けされたインスタンスのうち、アイドル状態のラベルが付けられたインスタンスを利用可能化するインスタンス利用可能化部と、
前記メトリクス収集部により収集された各インスタンスのメトリクスと、前記問合せ部により付けられた前記各インスタンスのラベルとを用い、新たなインスタンスの稼働状態を判別するための機械学習を行う機械学習部と、を備えていることを特徴とするインスタンス利用促進システム、
(2)インスタンス選定部によるインスタンスの選定と、問合せ部によるユーザへの問合せおよびインスタンスへのラベル付けと、インスタンス利用可能化部によるインスタンスの利用可能化とが繰り返し行われる前記(1)に記載のインスタンス利用促進システム、
(3)インスタンス選定部が、ヒューリスティックな手法を用いて稼働状態を問い合わせるインスタンスを選定する前記(1)または(2)に記載のインスタンス利用促進システム、
(4)ヒューリスティックな手法が、ログ変換を用いた手法とスケール変換を用いた手法とを組み合せたものである前記(3)に記載のインスタンス利用促進システム、
(5)マルチテナントクラウド環境下で用いられる前記(1)から(4)のいずれか1項に記載のインスタンス利用促進システム、並びに
(6)問合せ部が、チャットボットインターフェースを介してインスタンスの稼働状態を問い合わせる前記(1)から(5)のいずれか1項に記載のインスタンス利用促進システム
に関する。
【0011】
なお、本明細書において「インスタンス」とは、物理的なコンピュータ(物理サーバ)上で起動される、ソフトウェアによって構築された仮想的なコンピュータ(仮想マシン、VM:Vertual Machine)を意味する。また、「マルチテナントクラウド環境」とは、機材やソフトウェア、データベースなどを複数の企業(組織)で共有するクラウドコンピューティング環境を意味する。また、「チャットボットインターフェース」とは、問合せ部からの問合せをユーザとの間で自動的にやりとりする単なるマンマシンインターフェースを意味する。
【発明の効果】
【0012】
本発明は、たとえ機械学習のための教師データ(ラベル)が十分に揃っていない状態であっても、アイドル状態のインスタンスを見つけて迅速かつ確実に利用可能化することができるインスタンス利用促進システムを提供することができる。
【図面の簡単な説明】
【0013】
【
図1】本発明の一実施形態を示す概略ブロック図である。
【
図2】
図1のシステムにより収集したメトリクス情報の一例を示す概略図である。
【
図3A】
図2のメトリクス情報をインスタンスごとに整理したものの一例を示す概略図である。
【
図3B】
図2のメトリクス情報をインスタンスごとに整理したものの一例を示す概略図である。
【
図3C】
図3Bのメトリクス情報を派生データに変換したもの一例を示す概略図である。
【
図4】
図3Bの派生データとラベルとを対応付けたものの一例を示す概略図である。
【
図5】
図1の処理フローを示す概略ブロック図である。
【
図6】
図5の処理フローの繰り返しにより得られたリストの一例を示す概略図である。
【
図7】
図1のインスタンス選定部におけるインスタンス選定処理の一例を示す概略フローチャートである。
【
図8A】インスタンス選定部による処理の具体的な一例を示す概略図であって、リストの一例を示す概略図である。
【
図8B】インスタンス選定部による処理の具体的な一例を示す概略図であって、リストの一例を示す概略図である。
【
図8C】インスタンス選定部による処理の具体的な一例を示す概略図であって、リストの一例を示す概略図である。
【
図8D】インスタンス選定部による処理の具体的な一例を示す概略図であって、リストの一例を示す概略図である。
【
図8E】インスタンス選定部による処理の具体的な一例を示す概略図であって、リストの一例を示す概略図である。
【
図8F】インスタンス選定部による処理の具体的な一例を示す概略図であって、リストの一例を示す概略図である。
【
図8G】インスタンス選定部による処理の具体的な一例を示す概略図であって、リストの一例を示す概略図である。
【発明を実施するための形態】
【0014】
本発明のインスタンス利用促進システムは、クラウドインフラストラクチャー上で用いる複数のインスタンスの中から、アイドル状態のインスタンスを検出して上記アイドル状態のインスタンスを利用可能状態とするインスタンス利用促進システムであって、上記複数のインスタンスから各インスタンスのメトリクスを収集するメトリクス収集部と、上記複数のインスタンスのうちの稼働状態が不明なインスタンスの中から、稼働状態を問い合わせるインスタンスを選定するインスタンス選定部と、上記インスタンス選定部により選定されたインスタンスの稼働状態をユーザに問い合わせると共に、この問い合わせた結果に基づき、稼働状態、アイドル状態および不明状態のいずれかのラベルを上記インスタンスに付ける問合せ部と、上記問合せ部によりラベル付けされたインスタンスのうち、アイドル状態のラベルが付けられたインスタンスを利用可能化するインスタンス利用可能化部と、上記メトリクス収集部により収集された各インスタンスのメトリクスと、上記問合せ部により付けられた上記各インスタンスのラベルとを用い、新たなインスタンスの稼働状態を判別するための機械学習を行う機械学習部と、を備えていることを特徴とする。
【0015】
当該インスタンス利用促進システム1は、
図1に示すように、例えば、ユーザMがユーザ端末900を介してIaaS(Infrastructure as a Service)に接続し、ハイパーバイザーAPI8212を通して物理サーバ821中のインスタンス(仮想マシン8211)にアクセスすることでこのインスタンスを利用することが可能なクラウドインフラストラクチャー800が構築されたクラウド環境等に適用される。
【0016】
以下、本発明の一実施形態について図面を参照して説明するが、本発明は、当該図面に記載の実施形態にのみ限定されるものではない。
【0017】
図1は、本発明の一実施形態を示す概略ブロック図である。当該インスタンス利用促進システム1は、
図1に示すように、概略的に、メトリクス収集部100と、ストレージ200と、インスタンス選定部300と、問合せ部400と、インスタンス利用可能化部500と、機械学習部600とにより構成されている。
【0018】
メトリクス収集部100は、複数のインスタンスから各インスタンスのメトリクス(例えば、CPU占有時間、未使用メモリ、パケット通信量など)を収集する。具体的には、メトリクス収集部100は、例えば、
図1に示すように、計算クラスタ820における物理サーバ821中のインスタンス(仮想マシン8211)それぞれから、API(Application Program Interface)8212を介して各インスタンスのメトリクスを取得し、この取得したメトリクス情報をストレージ200に格納する。なお、メトリクス情報を取得するタイミングは、例えば、定期(5分間隔など)および不定期のいずれであってもよいが、後述する問合せ部400による問合せ時を含むように決定されることが好ましい。
【0019】
ここで、
図2は、
図1のシステムにより収集したメトリクス情報の一例を示す概略図である。複数のインスタンスは、各インスタンスを識別するためのインスタンスIDが付されており、このインスタンスIDに上記メトリクス情報が紐付けられている。なお、インスタンスの稼働が中断したり停止する場合、その中断等している間は、当該インスタンスからはメトリクス情報が発せられない。
【0020】
インスタンス選定部300は、複数のインスタンスのうちの稼働状態が不明なインスタンスの中から、稼働状態を問い合わせるインスタンスを選定する。このインスタンス選定部300にて選定されるインスタンスは、問合せ部400による問合せの負荷を軽減する観点から、通常、稼働状態が不明なインスタンスのうちの一部のインスタンスとなるが、上記不明なインスタンスの全部であってもよい。
【0021】
インスタンス選定部300におけるインスタンスの選定手法としては、特に限定されないが、ヒューリスティックな手法(heuristic algorithm)を用いて稼働状態を問い合わせるインスタンスを選定することが好ましい。上記ヒューリスティックな手法としては、例えば、ログ変換を用いた手法、スケール変換を用いた手法、これらログ変換を用いた手法とスケール変換を用いた手法とを組み合わせた手法等が挙げられる。これらの中で、ヒューリスティックな手法としては、後述するログ変換を用いた手法とスケール変換を用いた手法とを組み合せたものであることが好ましい。
【0022】
このように、当該インスタンス利用促進システム1は、インスタンス選定部300がヒューリスティックな手法を用いたものであることで、稼働状態が不明のインスタンスの中から、アイドル状態の可能性が高いインスタンスを迅速に選定することができ、特に、上記手法がログ変換を用いた手法とスケール変換を用いた手法とを組み合せたものであることで、各手法それぞれにおいて比較的高くランク付けされインスタンスが選定されるため、ヒューリスティックな手法による選定をより的確に行うことができる。
【0023】
問合せ部400は、インスタンス選定部300により選定されたインスタンスの稼働状態をユーザMに問い合わせると共に、この問い合わせた結果に基づき、稼働状態、アイドル状態および不明状態のいずれかのラベルをインスタンスに付ける。具体的には、この問合せ部400は、例えば、ユーザMがキープするインスタンスの使用状況の問合せをユーザ端末900に発信したり、上記問合せの回答をユーザ端末900から受信するユーザ通知モジュール410を備えており、この問合せで得られたユーザMからの回答を教師データ(ラベル)としてリストL1に記録し、これを各インスタンスのメトリクス情報に対応付けてストレージ200に格納する(例えば、
図4参照)。
【0024】
なお、問合せ部400は、ユーザ端末900が有するチャットボットインターフェース910を介して、問合せ対象のインスタンスの稼働状態をそのユーザMに問い合わせることが好ましい。チャットボットインターフェース910としては、例えば、公知のチャットボットインターフェース等を用いることができる。これにより、手間を掛けずに効率よくインスタンスの稼働状態を問い合わせることができる。
【0025】
なお、インスタンスの稼働状態を表すラベルとしては、例えば、アイドル状態を肯定するもの(idle)、アイドル状態を否定するもの(active)、およびユーザからの回答が得られないもの(unknown)等が挙げられる。
【0026】
インスタンス利用可能化部500は、問合せ部400によりラベル付けされたインスタンスのうち、アイドル状態のラベル(idle)が付けられたインスタンスを利用可能化する。具体的には、インスタンス利用可能化部500は、例えば、アイドル状態のラベルが付けられたインスタンスIDの情報をクラウドインフラストラクチャー800中の管理クラスタ810に送信し、管理クラスタ810の制御サーバ811を介して物理サーバ821中の該当するインスタンス(仮想マシン8211)を開放することにより新たに利用できる状態に移行させる。
【0027】
機械学習部600は、メトリクス収集部100により収集された各インスタンスのメトリクスと、問合せ部400により付けられた各インスタンスのラベルとを用い、新たなインスタンス(稼働状態が不明なインスタンス)の稼働状態を判別するための機械学習を行う。機械学習部600が行う学習方法としては特に限定されず、例えば、深層学習などの公知の技術等を用いることができる。
【0028】
ここで、当該インスタンス利用促進システム1は、インスタンス選定部300によるインスタンスの選定と、問合せ部400によるユーザMへの問合せおよびインスタンスへのラベル付けと、インスタンス利用可能化部500によるインスタンスの利用可能化とが繰り返し行われるシステムであることが好ましい。具体的には、当該インスタンス利用促進システム1は、
図6に示すように、例えば、インスタンスA、B、Cの稼働状況が記録された元のリスト(
図6の「繰り返し(1回目)」のリストL21参照)を用い、「unknown」のインスタンスA、B、Cについての問合せ結果に基づく稼働状態の更新と、インスタンス選定部300により新たに選定された「unknown」のインスタンスDの追加と行うことで上記元のリストL21を更新する処理を行い(
図6の「繰り返し(2回目)」のリストL22参照)、引き続き同様に処理してリストL22を更新する(
図6の「繰り返し(3回目)」のリストL23参照)。なお、図示していないが、上記繰り返しは継続して行うことができる。
【0029】
このようにインスタンス選定部300等の処理を繰り返し行うシステムとすることで、稼働状況が把握されるインスタンスの数を徐々に増やしていくことができ、問合せの負荷(ひいては、問合せによるユーザMへの負荷)を抑制しつつ、未使用のインスタンスをより効率よく利用可能化することができる。
【0030】
なお、上述したメトリクス収集部100、インスタンス選定部300、問合せ部400、インスタンス利用可能化部500および機械学習部600が実行する各処理は、例えば、図示していない中央演算処理装置(CPU)、メモリおよび記憶装置、並びにこれらを接続するバス等を備えたハードウェアを用い、このハードウェア上にて所定のコンピュータプログラムを動作させることで実現することができる。
【0031】
次に、当該インスタンス利用促進システム1を用いた処理フローの一例について説明する。
図5は、当該インスタンス利用促進システム1の処理フローを示す概略ブロック図である。当該インスタンス利用促進システム1では、
図5に示すように、まず、メトリクス収集部100が、各インスタンスから当該インスタンスのメトリクス情報(生データ)を定期または不定期で収集する(ステップS501)。上記生データは、例えば、インスタンスIDで識別されるインスタンスについて収集した、収集時刻(時刻スタンプ)に対するCPU稼働時間、通信パケット量、未使用メモリ量などの時系列のデータを含んでいる(
図2、
図3(a)、(b)参照)。
【0032】
次いで、メトリクス収集部100が、ステップS501で収集したメトリクス情報(生データ)を派生データに変換する(ステップS502)。派生データは、インスタンスIDで識別される一つのインスタンスについて収集された一連のメトリクスのデータセットで構成されており、収集した全ての時刻におけるメトリクスを含んでいる。この派生データは、インスタンスごとに一つのエントリを構成し、各エントリがリストに記録される。
【0033】
次に、インスタンス選定部300が、派生データが作成されたインスタンスのうち、稼働状態の問合せを行わないインスタンスを除外する判断を行い(ステップS503)、除外すると判断されたインスタンスを選り分ける(ステップS504)。このインスタンス選定部300により選り分けられるインスタンスとしては、例えば、アイドル状態を否定するラベル(active)が付けられたものが挙げられる。
【0034】
次に、メトリクス収集部100は、ステップS503にて除外したインスタンス以外のインスタンスについての派生データを、ストレージ200中に新規データまたは更新データとして格納する(ステップS505)。
【0035】
次いで、インスタンス選定部300は、稼働状態を問い合わせるインスタンスを選定するステップS506)。このステップで用いる選定手法としては、例えば、後述するログ関数およびスケール関数を組み合わせた手法などのヒューリスティックな手法等である。
【0036】
次に、問合せ部400は、インスタンス選定部300により選定されたインスタンスについての稼働状態を、例えば、チャットボットインターフェース910を介してユーザMに問い合わせる(ステップS507)。この際、ユーザMからの応答は、アイドル状態を肯定、アイドル状態を否定、および回答無しのいずれかに分類され、問合せ部400は、上記応答に基づき、
図4に示すようなリストL1中にラベルを新規に記録、または更新する(ステップS508)。
【0037】
次に、インスタンス利用可能化部500が、問合せ部400によりアイドル状態のラベルが付けられたインスタンスを再利用できるように処理する(ステップS509)。具体的には、インスタンス利用可能化部500は、例えば、
図1に示す管理クラスタ810の制御サーバ811に、インスタンスIDとこのインスタンスIDのインスタンスが再利用が可能であることを示す信号とを送信し、制御サーバ811、ネットワークサーバ812、データベースサーバ813等を介して上記インスタンスを利用可能状態にする。
【0038】
次に、機械学習部600が、既に収集された各インスタンスのメトリクスと、当該インスタンスに付けられたラベルとを用い、新たなインスタンスの稼働状態を判別するための機械学習を行う(ステップS510)。次いで、ステップS510を実行した後、必要に応じてステップS501に戻り、上述したステップS501〜S510を繰り返して実行する。
【0039】
次に、上述したインスタンス選定部300にて実行するインスタンスの選定について、
ログ変換を用いた手法とスケール変換を用いた手法とを組み合せたヒューリスティックな手法を例にとって詳述する。
図7は、当該インスタンス利用促進システム1のインスタンス選定部300におけるインスタンス選定処理の一例を示す概略フローチャートであり、
図8A〜
図8Gは、上記処理の具体的な一例を示す概略図である。
【0040】
本手法は、まず、各インスタンスの派生データが記録されたリストL31をストレージ200から取得する(ステップS701)。次いで、取得したリストL31を用い、このリストL31中のデータをログ変換(具体的には、「log1p」関数の適用)(
図8BのリストL32参照)する(ステップS7021)と共に、上記派生データをスケール変換(平均値が中央になるように各値をセンタリングし、これを標準偏差で除する変換)する(
図8CのリストL33参照)(ステップS7022)。
【0041】
次に、クラウド管理者により意図的にアイドル状態に設定された基準インスタンスについてのメトリクスの平均値を計算(
図8DのリストL34参照)(ステップS7031)した後、各インスタンスのメトリクスの上記平均値までの幾何学的距離を計算する(
図8EのリストL35参照)(ステップS7041)。次いで、この幾何学的距離に基づき、一つの派生データに対する上記ログ変換に基づくランク付けを行う(
図8FのリストL36参照)(ステップS7051)。なお、
図7中のスケール変換に関するステップS7032、S7042、S7052は、それぞれ上述したステップS7031、S7041、S7051と同様であるので、各ステップの説明および図面を省略する。
【0042】
次に、派生データごとに求められたログ変換およびスケール変換による二つのランクを合計し(ステップS706)、この合計により最終的なランクを求めてリストに記録し(
図8GのリストL37参照)(ステップS707)、この最終的なランクに基づき問い合わせるインスタンスを選定する(ステップS708)。
【0043】
ここで、ヒューリスティックな手法が正確であればあるほど、選定したインスタンスがアイドル状態である可能性が高まり、結果的にインスタンスの利用可能化を促進することができる。なお、ステップS701〜S708の処理を数回繰り返したときの正確さは、平均で80%になる。
【0044】
なお、当該インスタンス利用促進システム1は、マルチテナントクラウド環境下で用いられることが好ましい。このように、当該インスタンス利用促進システム1がマルチテナントクラウド環境下で用いられることで、例えば、物理サーバ821を制御するオペレーティングシステム(OS)が複数混在するような多様なクラウド環境下であっても、未使用のインスタンスを効率よく利用可能化することができる。
【0045】
また、当該インスタンス利用促進システム1は、パブリッククラウドインフラストラクチャー(クラウドプロバイダーなどが提供するクラウドコンピューティング環境を、企業(組織)をはじめとした不特定多数のユーザにインターネットを通じて提供できるように構築したクラウドインフラストラクチャー)およびプライベートクラウドインフラストラクチャー(クラウドの技術を用いて一つの企業(組織)のためだけに構築したクラウドインフラストラクチャー)のいずれにも適用することができるが、プライベートクラウドインフラストラクチャー上で用いる場合、同一企業(組織)内の演算処理をより効率よく行うことができる点で、プライベートクラウドインフラストラクチャーに好適に適用することができる。
【0046】
以上のように、当該インスタンス利用促進システム1は、上記構成であるので、たとえ機械学習のための教師データ(ラベル)が十分に揃っていない状態であっても、アイドル状態のインスタンスを見つけて迅速かつ確実に利用可能化することができ、クラウドインフラストラクチャー800全体を効率よく運用することができる。
【0047】
なお、本発明は、上述した実施形態の構成に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【0048】
例えば、上述した実施形態では、インスタンス利用可能化部500によるインスタンスの利用可能化が、問合せ部400の問合せに基づきアイドル状態のラベルが付けられたインスタンスについて行われるインスタンス利用促進システム1について説明したが、上記インスタンス利用可能化部が、問合せ部により得られた各インスタンスの稼働情報と、上述した機械学習部による機械学習結果を用いて判定した各インスタンスの稼働に関する情報とを組合せてインスタンスの利用可能化を実行するインスタンス利用促進システムであってもよい。