コンピューティングサービス内のコンピューティングインスタンスの予測起動時間を決定する技術を説明する。本技術の一例において、予測起動時間(例えば、コンピューティングサービス内の物理ホスト上でコンピューティングインスタンスを起動するための時間)を求める要求に応答して、物理ホスト上でコンピューティングインスタンスを起動することと関連した起動特徴を、予測起動時間を出力する機械学習モデルに入力しても良い。機械学習モデルへの入力として使用される起動特徴は、コンピューティングインスタンスを物理ホスト上で起動する時間に影響を及ぼすと判定された起動特徴であって良い。本開示において言及されるように、コンピューティングインスタンスは、物理マシンと同様にアプリケーションを実行する仮想マシン(例えば、コンピュータに対するソフトウェア実装のインスタンス)であって良い。コンピューティングサービスは、ネットワークアクセス可能なコンピューティングインスタンスを顧客に提供するネットワークアクセス可能なサービスであって良い。
予測起動時間を生成するのに使用される機械学習モデルは、以前のコンピューティングインスタンスの起動に基づく起動メトリックを表す特徴を用いて訓練されても良い。機械学習モデルを訓練するのに使用される特徴は、コンピューティングインスタンスを起動するための時間に影響を及ぼすと判定された特徴であって良い。1つの例示的な構成において、機械学習モデルの訓練は、履歴の起動メトリックから抽出された特徴を用いて(例えば、前週のデータを用いて週ごとに)オフラインで(例えば、非運用環境で)実行されても良い。別の例示的な構成において、機械学習モデルは、最近の起動メトリックから抽出された特徴を用いてオンライン中に(例えば、運用環境で)訓練されても良い。
コンピューティングインスタンスの起動時間は、一例において、サービスコールを実行してコンピューティングインスタンスリソース(例えば、記憶装置及びネットワークインターフェース)を設定すること、コンピューティングインスタンスの物理ホストを選択すること、当該物理ホスト上にコンピューティングインスタンスを作成することを含んでも良い。起動時間は、コンピューティングインスタンスの起動構成に基づいて変わり得る。従って、コンピューティングサービスプロバイダにとっては、特定のコンピューティングインスタンスが使用のためにいつ利用可能となるかについての予想時間枠を提供することが困難となり得る。本技術の結果、コンピューティングサービスプロバイダは、予測起動時間を取得し得る。この予測起動時間は、その後、複数の目的のために利用され得る。例えば、コンピューティングサービスプロバイダは、コンピューティングインスタンスが使用のためにいつ利用可能となり得るかの見積もりを顧客に提供し、SLA(サービスレベルに関する合意)時間が満たされ得るかどうかを判定し、複数の他の目的に加えて、起動時間がより速くなり得る起動構成を提案しても良い。
図1は、コンピューティングサービス環境108内のコンピューティングインスタンスの起動時間112を予測するのに使用され得るシステム100の高水準の例を示す図である。システム100は、インスタンスマネージャ110(例えば、ハイパーバイザ)を介してコンピューティングインスタンス112を実行する複数の物理ホスト106、及び機械学習モデル116を実行するサーバ114を備えても良い。1つの例示的な構成において、サーバ114は、複数のデータソースと通信しても良く、これらのデータソースから、起動特徴102に関するデータ(例えば、訓練データ及び起動要求と関連したデータ)を取得しても良い。機械学習モデル116は、履歴訓練データを用いて訓練されても良い。その後、機械学習モデル116は、コンピューティングインスタンスを起動するための起動特徴102を使用することによってコンピューティングインスタンス112の予測起動時間を生成して、コンピューティングインスタンスを起動するための予測起動時間を決定しても良い。
実例として、以前に訓練された機械学習モデル116(例えば、ランダムフォレスト回帰モデル)を実行しているサーバ114は、予測起動時間を求める要求を受信しても良い。予測起動時間は、起動要求を受信してから(例えば、コンピューティングインスタンスの状態が「ペンディング」である)コンピューティングインスタンスのブートを開始するまで(例えば、コンピューティングインスタンスの状態が「実行中」である)の間の時間であって良い。予測起動時間を求める要求は、起動要求と関連した起動特徴102を識別するのに使用される起動構成を参照しても良い。識別された起動特徴102は、コンピューティングインスタンス112の予測起動時間を決定するために機械学習モデル116によって使用されても良い。実例として、起動要求(1)は、コンピューティングインスタンス112を起動することを要求しているコンピューティングサービスの制御プレーン104に送信されても良い。起動要求を受信すると、コンピューティングインスタンス112を起動するための各種パラメータを指定する起動要求構成を生成しても良い。例えば、起動要求構成は、(例えば、極小、小中、大など、更に汎用、メモリ集約的などの)コンピューティングインスタンス112のコンピューティングインスタンスタイプ、コンピューティングインスタンス112のマシンイメージ、コンピューティングインスタンス112と関連するネットワークタイプ、コンピューティングインスタンス112に接続される記憶ボリューム、コンピューティングインスタンス112をホストするために選択された物理ホスト106、及び他の仕様を指定しても良い。
次いで、制御プレーン104は、機械学習モデル116をホストしているサーバ114に予測起動時間を求める要求(2)を行っても良い。起動要求構成に含まれる情報を用いて、起動時間に影響を与えるものとして識別された起動特徴を収集しても良く、次いで、その起動特徴を機械学習モデル116に提供しても良い。実例として、起動要求構成を参照して、起動されるコンピューティングインスタンス112に関する情報、コンピューティングインスタンス112に接続されるアクセサリ、及びコンピューティングインスタンス112をホストする物理ホスト106に関する情報を取得しても良い。次いで、起動要求構成からの情報を使用して起動特徴を識別しても良い。このような起動特徴としては、コンピューティングインスタンス112を作成するのに使用されるマシンイメージ及びカーネルイメージ、オペレーティングシステム及びネットワークタイプ、物理ホスト106が配置される地理的領域、物理ホスト106が実行することができるコンピューティングインスタンス112の最大数などがある。次いで、起動要求構成からの情報を用いて識別された起動特徴102を、機械学習モデル116への入力として提供しても良く、この機械学習モデルは、その後、コンピューティングインスタンス112の予測起動時間を出力しても良い(3)。
機械学習モデル116によって生成された予測起動時間は、任意の目的のために使用されても良い。例えば、予測起動時間は、コンピューティングインスタンスの起動時間を向上させるための分析に使用される要因であって良く、予測起動時間は、物理ホスト106へのコンピューティングインスタンス112の配置を決定するのに使用されても良く、予測起動時間は、顧客に提供されるSLA(サービスレベルに関する合意)起動時間を決定するのに使用されても良く、あるいは、予測起動時間は、起動時間がより速くなるコンピューティングインスタンスの構成を顧客に通知する際の要因であって良い。予測起動時間を利用する実例として、SLA起動時間(例えば、コンピューティングサービスプロバイダと顧客との間の、コンピューティングインスタンス112を起動する時間に関する合意)をコンピューティングインスタンスの予測起動時間112と比較して、そのSLA起動時間が満たされる可能性があるかどうかを判定しても良い。このようにして、コンピューティングサービスプロバイダ及び/または顧客に対し、コンピューティングインスタンス112のSLA起動時間に違反する可能性があることを通知しても良い。これにより、コンピューティングサービスプロバイダ及び/または顧客が、その通知に応じた処置を講じることができるようにしても良い。
予測起動時間を求める要求を機械学習モデル116が受信する運用環境に機械学習モデル116を配置する前に、その機械学習モデルを訓練して、各種のコンピューティングインスタンスの起動構成に対して起動時間を予測するようにしても良い。1つの例示的な構成において、機械学習モデル116は、コンピューティングサービス環境108内のコンピューティングインスタンス112の起動時間に影響を及ぼすと判定された特徴を用いて訓練されても良い。どの特徴がコンピューティングインスタンス112の起動時間に影響を及ぼすかを判定する際、コンピューティングインスタンスの起動の分析を行って、コンピューティングインスタンス112の起動と相関するか、またはそれと関連した特徴を識別しても良い。実例として、コンピューティングインスタンス112を起動することは、サービスコールを実行してコンピューティングインスタンス112のコンピューティングインスタンスリソース(例えば、ストレージ及びネットワークインターフェース)を設定するステップ、コンピューティングインスタンス112(例えば、領域)の物理ホスト106を選択するステップ、及び当該物理ホスト上にコンピューティングインスタンス112を作成するステップを含んでも良い。
コンピューティングインスタンスを起動する各ステップを分析することは、コンピューティングインスタンス112を起動することと関連した特徴を識別しても良い。例えば、コンピューティングインスタンスリソースを設定することと関連した特徴、物理ホスト106を選択することと関連した特徴、及びコンピューティングインスタンス112の構成と関連した特徴(例えば、コンピューティングインスタンス112を作成するのに使用されるマシンイメージ)。次いで、識別されたそれらの特徴を、各特徴が起動時間に及ぼす影響に従ってソートし、または順位付けても良い。例えば、これらの特徴を、起動時間に最も大きな影響を及ぼす特徴に従って順位付けても良く、起動時間に最も大きな影響を及ぼす特徴は、起動時間にほとんど影響を及ぼさない特徴と比較してより高い順位を受け入れても良い。予測起動時間を決定するときには、より高い順位を有する特徴を選択し、使用しても良い。
別の例において、コンピューティングインスタンス112の起動時間に影響を及ぼすと判定された特徴を、複数の特徴カテゴリから選択しても良い。実例として、特徴カテゴリは、マシンイメージの特徴、物理ホストの特徴及び顧客構成の特徴(例えば、顧客による修正のための調整の範囲内である起動構成の特徴)を含んでも良い。これらのカテゴリの特徴を、予測起動時間を決定する際に選択し、使用しても良い。
コンピューティングインスタンス112の起動時間に影響を及ぼすものとして選択された特徴に関する特徴データは、各データソース(例えば、有効訓練データまたは履歴訓練データ)から読み出されても良く、機械学習モデル116を訓練するのに使用されても良い。特徴データは、例えば、コンピューティングサービス108内で以前にコンピューティングインスタンスを起動したことに基づく起動メトリックであって良い。特徴データは、いくつかの例において、特徴データが冗長であるか、または大きいときに、簡約的に表現した一式の特徴(例えば、特徴ベクトル)に変換されても良い。更に、特徴データを、機械学習モデル116を訓練する前に正規化しても良い。
1つの例示的な構成において、履歴訓練データ(例えば、コンピューティングサービス108内でコンピューティングインスタンス112を起動することと関連したアーカイブデータ)を用いて、機械学習モデル116をオフラインで(例えば、機械学習モデル116を運用にかける前に)訓練しても良い。履歴訓練データを用いて機械学習モデル116を訓練した後、機械学習モデル116をオンラインに(例えば、運用環境に)配置しても良く、そこで機械学習モデル116は、予測起動時間を求める要求を処理しても良い。いくつかの例において、周期的に、機械学習モデル116をオフラインとし、機械学習モデル116が訓練された最後の時から蓄積された履歴訓練データを用いて再訓練しても良い。
別の例示的な構成において、機械学習モデル116を、履歴訓練データを用いて最初に訓練し、機械学習モデル116が予測起動時間を求める要求を処理し得る運用状態に置いても良い。その後、有効な訓練特徴(例えば、コンピューティングサービス環境108内でコンピューティングインスタンス112を起動することと関連した最近の特徴データ)を用いて、運用中に機械学習モデル116を再訓練しても良い。例えば、過去の数分、数時間または数日にわたって蓄積された特徴データを使用して、機械学習モデル116の訓練を再訓練するか、または更に洗練させても良い。比較的短い期間内に蓄積された特徴データセットは、機械学習モデル116を運用から外さずとも短期間(例えば、数分)のうちに機械学習モデル116を再訓練し得る程度に十分小さくても良い。
図2は、本技術を実行し得る例示的なシステム200の構成要素を示す図である。システム200は、コンピューティングサービス環境202を備えても良く、この環境は、ネットワーク226を介して複数のクライアント装置228にアクセス可能であって良い。コンピューティングサービス202は、物理ホスト236上で実行されるコンピューティングインスタンスなどの、ネットワークアクセス可能なサービスを顧客に提供しても良い。コンピューティングサービス環境202には、起動時間予測モジュール218をホストするサーバ204が含まれても良く、起動時間予測モジュールを使用して、物理ホスト236上で起動されるコンピューティングインスタンスの予測起動時間を生成しても良い。起動時間予測モジュール218に加えて、サーバ204は、訓練モジュール222、起動特徴モジュール220、及びサーバ204上に搭載されたモジュールにアクセス可能であり得るデータを有する1つ以上のデータ記憶装置206を含んでも良い。
1つの例示的な構成において、起動時間予測モジュール218は、機械学習モデルを用いて予測起動時間を生成するように構成されても良い。起動時間予測モジュール218は、コンピューティングサービス環境202の特定部分内に位置する物理ホスト236に配置されたコンピューティングインスタンスの予測起動時間を提供しても良い。例えば、図2に示すように、起動時間予測モジュール218は、コンピューティングサービス環境202内で実行されても良く、コンピューティングサービス環境202内で起動されたコンピューティングインスタンスの予測起動時間を提供しても良い。別の例示的な構成において、起動時間予測モジュール218は、任意のコンピューティングサービスの外部にあっても良く、任意の数のコンピューティングサービスからネットワークを経由して予測起動時間を求める要求を受信しても良い。
起動時間を予測する起動時間予測モジュール218によって使用され得る機械学習モデルの例は、ランダムフォレストモデルなどの回帰モデル、extremely randomized treesモデル、AdaBoostモデル、確率的勾配降下モデル、サポートベクターマシンモデル、ならびに本明細書で特に言及されない他の種類の機械学習モデルを含んでも良い。
訓練モジュール222は、各種データソースから特徴を取得するように構成されても良い。次いで、これらの特徴を使用して、起動時間予測モジュール218によって使用される機械学習モデルを訓練しても良い。一例において、特徴及び訓練データは、データウェアハウス224から読み出されても良い。特徴データは、データウェアハウス224に記憶された、コンピューティングサービス202内で以前にコンピューティングインスタンスを起動したことに基づく起動メトリックであって良い。実例として、情報管理サービス238は、データウェアハウス224に起動関連データを送って(例えば、アップロードして)、当該データを訓練モジュール222にとってアクセス可能としても良い。データウェアハウス224から読み出されるデータは、コンピューティングインスタンスの起動と関連した最近の(例えば、数秒、数分もしくは数時間古い)データまたは(例えば、数日、数週間もしくは数ヶ月古い)履歴データであって良い。
データウェアハウス224から読み出された特徴データは、コンピューティングインスタンスの起動時間に影響を及ぼすと判定された起動特徴208を用いて整列されても良い。実例として、分析を行って、どの起動特徴208が起動時間に影響を及ぼすかを判定しても良く、次いで、その起動特徴208に関する特徴データをデータウェアハウス224から選択するようにクエリを作成しても良い。いくつかの例において、起動特徴208に関する特徴データを、その特徴データが大きくなり得るか、または冗長となり得るときに処理し、集約しても良い。例えば、特徴データを処理して、簡約的に表現した一式の起動特徴(例えば、特徴ベクトル)にしても良い。起動特徴208を取得した後、次いで、その起動特徴208を用いて機械学習モデルを訓練しても良い。
前述したように、機械学習モデルを、履歴データを用いて最初に訓練しても良く、次いで、オンデマンドベースに従って機械学習モデルが予測起動時間を提供し得る運用状態に置いても良い。訓練モジュール222は、起動特徴208の履歴データをデータウェアハウス224から取得し、その履歴データを機械学習モデルに提供するように構成されても良い。履歴データを使用して、機械学習モデルを最初に訓練しても良い。機械学習モデルの次の訓練は、機械学習モデルを運用から外し(例えば、オフラインとし)、履歴データ(例えば、以前の日、週、月などに由来するデータ)を用いて機械学習モデルを訓練することによって実行されても良い。あるいは、次の訓練を、機械学習モデルが運用状態に(例えば、オンラインに)ある間、最近のデータ(例えば、以前の数分、数時間、日などに由来するデータ)を用いて実行しても良い。
起動特徴モジュール220は、予測起動時間を求める要求と関連した起動特徴208を取得するように構成されても良い。次いで、取得した起動特徴208を、機械学習モデルへの入力として提供しても良い。実例として、(例えば、顧客装置228を介した)コンピューティングインスタンスの起動を求める要求は、コンピューティングサービス202の制御プレーン240によって受信されても良い。起動要求は、単一のコンピューティングインスタンスまたは任意の数のコンピューティングインスタンス(例えば、数十、数百または数千のコンピューティングインスタンス)に関するものであって良い。起動要求を受信すると、特に、マシンイメージの特徴、物理ホストの特徴及び顧客構成の特徴(例えば、ストレージデバイス、ネットワークタイプ、地理的領域など)を指定する起動構成をコンピューティングインスタンスに対して決定しても良い。その後、起動構成(または起動構成に対する参照)を、予測起動時間を求める要求に含めても良い。
予測起動時間を求める要求をサーバ204が受信すると、起動特徴モジュール220に起動構成を提供しても良く、そこで、その起動構成を評価し、当該起動構成に対応する起動特徴208に関するデータを収集しても良い。起動構成の仕様に基づき、次いで、起動特徴208に関するデータを取得しても良い。
起動特徴208について収集されたデータを、起動時間予測モジュール218に提供し、機械学習モデルに入力しても良い。次いで、起動時間予測モジュール218は、アルゴリズムを介して予測起動時間を生成しても良い。このアルゴリズムは、起動時間予測モジュール218に提供された起動特徴208を評価することによって予測起動時間を決定する。一例として、起動時間予測モジュール218によって使用される機械学習モデルは、複数の決定木を含んでも良い。この場合、それらの決定木に起動特徴208が入力され、回帰を用いて、決定木の出力から予測起動時間が算出される。次いで、機械学習モデルによって生成された予測起動時間を、前述したようなコンピューティングサービス202と関連した各種目的のために使用しても良い。
システム200に含まれる物理ホスト236は、単一の物理ホスト236上で複数のコンピューティングインスタンスを管理するインスタンスマネージャ(すなわち、ハイパーバイザ、仮想マシンモニタ(virtual machine monitor:VMM)または別の種類のプログラム)を実行するように構成されたサーバコンピュータであって良い。物理ホスト236は、様々な地理的領域210内のデータセンターに位置しても良い。その結果、コンピューティングインスタンスの起動時間は、コンピューティングインスタンスをホストするために選択された物理ホスト236の地理的領域210に応じて影響を受ける場合がある。また、起動時間は、アーキテクチャ、ブランドなどの、物理ホスト236の他の属性によって影響を受ける場合もある。
マシンイメージ216は、予め設定された仮想マシンイメージ(例えば、仮想電化製品)であって良く、この仮想マシンイメージは、インスタンスマネージャによって実行されても良い。マシンイメージ216は、コンピューティングインスタンスのためのマシン実行可能なパッケージを含んでも良い。このパッケージには、オペレーティングシステム、アプリケーションサーバ及び各種アプリケーションが含まれても良く、それらはいずれも、コンピューティングインスタンスの起動時間に影響を及ぼす場合がある。更に、マシンイメージ216は、記憶ボリュームへのマッピングを含んでも良い。この記憶ボリュームは、コンピューティングインスタンスが起動されるときに、対応するコンピューティングインスタンスに接続される。
実例として、マシンイメージ216は、ブロックレベルの記憶ボリュームに記憶されても良く、または、ネットワークファイル保存サービスに記憶されても良い。マシンイメージ216の記憶領域は、コンピューティングインスタンスの起動時間に影響を及ぼす場合がある。例えば、ネットワークファイル保存サービスにマシンイメージ216を記憶するときには、マシンイメージ216をネットワークを介して容易に転送するためにマシンイメージ216を圧縮する場合がある。その結果、コンピューティングインスタンスをホストするために選択された物理ホスト236にマシンイメージ216を転送した後、マシンイメージ216を解凍する更なる動作により、コンピューティングインスタンスの起動時間が増加し得る。
システム200に搭載された各種のプロセス及び/または他の機能を、1つ以上のメモリーモジュール232と通信する1つ以上のプロセッサ230上で実行しても良い。システム200は、例えば、複数のコンピューティングデバイス(例えば、物理ホスト236及びサーバ204)を含んでも良い。これらのコンピューティングデバイスは、1つ以上のサーババンクもしくはコンピュータバンクまたは他の構成に配置される。
用語「data store(データ記憶装置)」は、データを記憶し、データにアクセスし、データを編成し、かつ/またはデータを読み出すことができる任意のデバイスまたはそのようなデバイスの組み合わせを指す場合がある。この装置は、任意の組み合わせ及び数のデータサーバ、リレーショナルデータベース、オブジェクト指向データベース、クラスタストレージシステム、データストレージデバイス、データウェアハウス、フラットファイル及びデータ記憶構造を、集約され、分散され、またはクラスタ化された任意の環境内に含んでも良い。データ記憶装置の記憶システム構成要素は、ストレージエリアネットワーク(Storage Area Network:SAN)、クラウドストレージネットワーク、揮発性RAMまたは不揮発性RAM、光学媒体またはハードディスク型媒体)などの記憶システムを含んでも良い。理解できるように、データ記憶装置は、複数のデータ記憶装置を表しても良い。
いくつかの例において、顧客は、顧客装置228を利用して、コンピューティングインスタンスの起動を要求し、その後、コンピューティングインスタンスにアクセスしても良い。顧客装置228は、ネットワーク226を介してデータを送受信することができる任意の装置を含んでも良い。顧客装置228は、例えば、コンピューティングデバイスなどの、プロセッサベースのシステムを備えても良い。
ネットワーク226は、イントラネット、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、無線データネットワーク、またはその他のかかるネットワークもしくはこれらの組み合わせを含む、任意の有用なコンピューティングネットワークを含んでも良い。上記のシステムに利用される構成要素は、少なくとも部分的には、選択されたネットワーク及び/または環境の種類に依存し得る。ネットワークを介した通信は、有線接続または無線接続及びこれらの組み合わせによって可能となり得る。
図2は、ある複数の処理モジュールをこの技術に関連して検討しても良く、これらの処理モジュールをコンピューティングサービスとして実装しても良いことを示している。1つの例示的な構成において、モジュールは、サーバまたは他のコンピュータハードウェア上で実行される1つ以上のプロセスを備えたサービスとみなされても良い。かかるサービスは、一元的にホストされる機能またはサービスアプリケーションであって良い。この機能またはサービスアプリケーションは、要求を受信しても良く、他のサービスまたは消費者装置への出力を提供しても良い。例えば、サーバ、仮想化されたサービス環境、グリッドまたはクラスタコンピューティングシステムでホストされるサービスを提供するモジュールは、オンデマンドコンピューティングとみなされても良い。各モジュールについてAPIを提供することにより、第2のモジュールが、第1のモジュールに要求を送信し、そこからの出力を受信できるようにしても良い。かかるAPIにより、第三者が、モジュールとインターフェースをとり、要求を行い、モジュールからの出力を受信できるようにしても良い。図2は、上記の技術を実装し得るシステムの例を示しているが、多くの他の類似の、または異なる環境も可能である。上記で検討し、説明した例示的な環境は、単に代表的なものであり、限定ではない。
図3は、複数のコンピューティングインスタンス304a〜dを実行し、管理するのに使用され得る例示的なコンピューティングサービス環境300を示すブロック図である。特に、図示したコンピューティングサービス環境300は、本明細書で説明した技術が使用され得る1つの環境を示している。コンピューティングサービス環境300は、1種類の環境であって良い。この環境は、例えば、コンピューティングインスタンス304a〜dをホストするのに使用され得る各種の仮想化されたサービスリソースを含む。
コンピューティングサービス環境300は、コンピューティング能力、記憶能力及びネットワーク能力をソフトウェアサービスとして最終受益者層に提供することが可能であっても良い。一例において、コンピューティングサービス環境300は、組織によって、または組織を代表して、当該組織のために構築されても良い。すなわち、コンピューティングサービス環境300は、「プライベートクラウド環境」を提供しても良い。別の例において、コンピューティングサービス環境300は、マルチテナント環境に対応しても良い。この場合、複数の顧客が別々に運用しても良い(すなわち、パブリッククラウド環境)。一般的に言えば、コンピューティングサービス環境300は、以下のモデル、すなわち、「IaaS」(Infrastructure as a Service)、「PaaS」(Platform as a Service)及び/または「SaaS」(Software as a Service)を提供しても良い。他のモデルを提供しても良い。IaaSモデルの場合、コンピューティングサービス環境300は、物理リソースまたは仮想マシンリソース及び他のリソースとしてコンピュータを提供しても良い。更に後述するように、仮想マシンは、ハイパーバイザによってゲストとして実行されても良い。PaaSモデルは、オペレーティングシステム、プログラミング言語実行環境、データベース及びウェブサーバを含み得るコンピューティングプラットフォームを提供する。
アプリケーション開発者は、基本となるハードウェア及びソフトウェアを購入し、管理するコストを負担することなく、自身のソフトウェアソリューションをコンピューティングサービスプラットフォーム上で開発し、実行しても良い。SaaSモデルにより、コンピューティングサービス環境300においてアプリケーションソフトウェアをインストール及び運用することが可能となる。最終顧客は、デスクトップコンピュータ、ラップトップ、タブレット、スマートフォンなどの、例えば、ウェブブラウザまたは他の軽量なクライアントアプリケーションを実行するネットワーク接続のクライアント装置を用いてコンピューティングサービス環境300にアクセスしても良い。当業者は、コンピューティングサービス環境300を「クラウド」環境として説明しても良いことを認めるであろう。
特に図示したコンピューティングサービス環境300は、複数の物理ホスト302a〜dを含んでも良い。4つの物理ホストを示しているが、任意の数を使用しても良く、大規模データセンターは、数千の物理ホスト302a〜dを含んでも良い。コンピューティングサービス環境300は、コンピューティングインスタンス304a〜dを実行するためのコンピューティングリソースを提供しても良い。コンピューティングインスタンス304a〜dは、例えば、仮想マシンであって良い。仮想マシンは、物理マシンと同様にアプリケーションを実行するマシン(すなわち、コンピュータ)に対するソフトウェア実装のインスタンスであって良い。仮想マシンの例において、各物理ホスト302a〜dは、インスタンスを実行することができるインスタンスマネージャ308a〜dを実行するように構成されても良い。インスタンスマネージャ308a〜dは、ハイパーバイザ、仮想マシンモニタ(VMM)、または単一の物理ホスト上で複数のコンピューティングインスタンス304a〜dを実行することを可能にするように構成された別の種類のプログラムであって良い。加えて、各コンピューティングインスタンス304a〜dは、1つ以上のアプリケーションを実行するように構成されても良い。
1つ以上のサーバコンピュータ314及び316は、コンピューティングサービス環境300及びコンピューティングインスタンス304a〜dの運用を管理するためのソフトウェアコンポーネントを実行するために予約されても良い。例えば、サーバコンピュータ314は、物理ホスト302a〜d上で起動されるコンピューティングインスタンスの予測起動時間を求める要求に応答し得る予測起動時間サービスを実行しても良い。
サーバコンピュータ316は、管理コンポーネント318を実行しても良い。顧客は、管理コンポーネント318にアクセスして、顧客によって購入されたコンピューティングインスタンス304a〜dの運用の各種態様を設定しても良い。例えば、顧客は、コンピューティングインスタンス304a〜dを設定し、コンピューティングインスタンス304a〜dの構成を変更しても良い。
展開コンポーネント322は、コンピューティングインスタンス304a〜dの展開に際して顧客を支援するのに使用されても良い。展開コンポーネント322は、コンピューティングインスタンス304a〜dと関連したアカウント情報にアクセスしても良い。このアカウント情報には、アカウントの所有者の名前、クレジットカード情報、所有者の国などがある。展開コンポーネント322は、顧客から情報を受信しても良い。この情報には、コンピューティングインスタンス304a〜dがどのように構成され得るかを記述するデータが含まれる。例えば、この構成は、オペレーティングシステムを含んでも良く、コンピューティングインスタンス304a〜dにインストールされる1つ以上のアプリケーションを提供しても良く、コンピューティングインスタンス304a〜dを構成するために実行されるスクリプト及び/または他の種類のコードを提供しても良く、アプリケーションキャッシュをどのように用意すべきかを指定するキャッシュロジック及び他の種類の情報を提供しても良い。展開コンポーネント322は、顧客提供の構成及びキャッシュロジックを利用して、コンピューティングインスタンス304a〜dを構成し、準備し、起動しても良い。構成、キャッシュロジック及び他の情報は、顧客が管理コンポーネント318にアクセスすることによって、または、この情報を展開コンポーネント322に直接提供することによって指定されても良い。
顧客アカウント情報324は、マルチテナント環境の顧客と関連した任意の所望の情報を含んでも良い。例えば、顧客アカウント情報は、顧客の固有識別子、顧客アドレス、課金情報、ライセンス情報、インスタンスを起動するためのカスタマイズパラメータ、スケジュール情報などを含んでも良い。上述したように、顧客アカウント情報324は、API要求に対する非同期応答を暗号化する際に使用されるセキュリティ情報を含んでも良い。「非同期」により、初期要求の後の任意の時点で、かつ異なるネットワーク接続でAPI応答がなされても良いことが示される。
ネットワーク310を利用して、コンピューティングサービス環境300、物理ホスト302a〜d及びサーバコンピュータ316を相互接続しても良い。ネットワーク310は、ローカルエリアネットワーク( local area network:LAN)であっても良く、ワイドエリアネットワーク(Wide Area Network:WAN)312またはインターネットに接続されても良い。それにより、最終顧客は、コンピューティングサービス環境300にアクセスしても良い。図3に示したネットワークトポロジは簡略化されたものであり、更に多くのネットワーク及びネットワークデバイスを利用して、本明細書に開示された各種のコンピューティングシステムを相互接続しても良い。
次に図4に移ると、図は、予測起動時間を生成するのに使用される機械学習モデル416を構成し、訓練する例示的な方法400を示している。ブロック406のように、起動特徴の選択は、各種のコンピューティングインスタンスの起動を分析してコンピューティングインスタンスの起動時間に影響を及ぼす起動特徴を判定することによって実行されても良い。例えば、コンピューティングサービス環境内の物理ホスト上でコンピューティングインスタンスを起動することに関する各種特徴を、それらの特徴を監視することが可能な場合に識別しても良い。
起動特徴の例は、物理ホスト上で競合するコンピューティングインスタンスの数、物理ホスト上で実行中のコンピューティングインスタンスの数、コンピューティングインスタンスを作成するのに使用されるマシンイメージを含むデータストレージのタイプ、コンピューティングインスタンスによって使用されるカーネルイメージ、物理ホストのアーキテクチャ、コンピューティングインスタンスの仮想化タイプ、物理ホストがホストすることのできるコンピューティングインスタンスの最大数、コンピューティングインスタンスの起動を開始したときのコンピューティングインスタンスによる物理ホストの占有率、物理ホストが位置する地理的領域、物理ホストのハードウェアタイプ、物理ホストのハードウェアベンダ、ならびにコンピューティングインスタンスのオペレーティングシステム、ネットワークタイプ、データ記憶装置及びサイズを含み得るが、これらに限定されることはない。
コンピューティングインスタンスの起動時間に影響を及ぼすと判定された起動特徴を分類しても良い。例えば、起動特徴のカテゴリは、コンピューティングインスタンスの起動の各種態様に基づいても良い。実例として、起動特徴は、マシンイメージの起動特徴、物理ホストの起動特徴及び顧客構成の起動特徴に分類されても良い。
一例において、識別された起動特徴を、コンピューティングインスタンスの起動時間に対する起動特徴の影響に従ってソートし、または順位付けても良く、起動時間に最も大きな影響を及ぼす起動特徴を、起動時間を予測するために使用すべき特徴として選択しても良い。例えば、起動特徴を分析して、それぞれの起動特徴が起動時間に及ぼす寄与率を決定しても良い。起動時間に最も大きく寄与するものとして識別された起動特徴を、機械学習モデルへの入力として選択しても良い。任意の数の起動特徴を選択しても良く、起動特徴の選択は、単に起動時間に最も大きな影響を及ぼす起動特徴に限定されなくても良いことに留意すべきである。
起動特徴を識別した後、次いで、起動特徴に関する起動特徴データ402を、起動特徴と関連したデータを含むデータソースから取得しても良い。図示したように、起動特徴データ402は、例えば、コンピューティングサービス管理データ、目録データ(例えば、物理ホスト情報)、ならびにコンピューティングサービスと関連した他のデータを含むデータ記憶装置から取得されても良い。起動特徴データ402を正規化して、種々のデータソースから取得された起動特徴データ402を機械学習モデル416に入力できるようにしても良い。起動特徴データ402は、訓練データ410、交差検証データ412及びテストデータ414に区分されても良い。例えば、ある比率の起動特徴データ402を、テストデータ414及び交差検証データ412としてランダムに選択しても良く、残りの起動特徴データ402を、機械学習モデル416を訓練するための訓練データ410として使用しても良い。
機械学習モデル416は、任意の利用可能な機械学習アルゴリズムの中から選択されても良い。一例において、複数の回帰機械学習モデルをテストして、起動時間の許容可能な近似を提供する機械学習モデルを決定しても良い。機械学習モデルを生成することの一態様は、ブロック408のように、起動特徴に対する機械学習モデル416の適合度となる機械学習パラメータのパラメータ値検索を実行することであって良い。機械学習パラメータ(すなわち、決定木の深さの設定などの、機械学習モデル416を構成するのに使用されるパラメータ)は、機械学習モデル416が訓練データ410にどのようにフィットするかに影響を及ぼす場合がある。一例において、グリッド検索または勾配降下アルゴリズムを使用して、パラメータ値の検索を実行しても良い。別の例において、機械学習モデル416のパラメータ空間がパラメータ値探索を完全に実行するには大きすぎる可能性があるときには、進化的アルゴリズム(例えば、分散遺伝的アルゴリズム)、群れアルゴリズム(例えば、粒子群最適化)、焼きなまし法または同様のアルゴリズムを使用しても良い。
機械学習モデル416を選択した後、訓練データ410を用いて、その機械学習モデル416を訓練しても良い。次いで、交差検証データ412及びテストデータ414を機械学習モデル416に通して、機械学習モデルの出力が、履歴に記録されている別のケースを表すかどうかをテストしても良い。その後、ブロック418のように、データ分析を実行して、機械学習モデル416が実起動時間と比較してどの程度起動時間を予測することができたかを求めても良い。2つ以上の機械学習モデル416をテストした後、ブロック420のように、機械学習モデル416の結果を比較して、より良好に機能する機械学習モデル416を特定しても良く、次いで、その機械学習モデルを選択し、運用環境に配置しても良い。
図5は、予測起動時間が使用され得る方法500の一例を示すフロー図である。例示的な方法500は、予測起動時間を用いてSLA起動時間に違反する可能性を予測する場合について示されている。SLA起動時間は、一例において、コンピューティングサービスプロバイダがサービス契約の一部として提供するように同意したコンピューティングインスタンスの起動時間であって良い。このように、コンピューティングサービスプロバイダは、SLA起動時間に実際に違反する前にSLAに違反する可能性があると通知を受けることを望む場合があるが、これは、コンピューティングサービスプロバイダがそれに応じて行動することが可能となるためである。
ブロック502で始まって、1つ以上のコンピューティングインスタンスをコンピューティングサービス内で起動することを要求する起動要求を受信しても良い。例えば、この要求は、コンピューティングサービス環境内で1つのコンピューティングインスタンスまたは一群のコンピューティングインスタンスを起動することを望む顧客によってなされても良い。起動要求を受信すると、起動サービスは、起動される1つ以上のコンピューティングインスタンスに関する起動構成を識別しても良い。
ブロック504のように、起動要求を行っている顧客と関連したSLAを識別しても良い。このSLAは、特に、コンピューティングインスタンスのSLA起動時間を指定しても良い。実例として、SLA起動時間は、コンピューティングサービスが起動要求を受信してから、コンピューティングインスタンスが動作している(例えば、ブートアッププロセスを開始している)時間までの時間であって良い。従って、起動要求を行っている顧客は、コンピューティングインスタンスがSLA起動時間内で動作可能となることを予想し得る。
起動要求を受信し、起動構成及びSLA起動時間を特定した後、ブロック506のように、コンピューティングインスタンスの予測起動時間を取得しても良い。例えば、前述したように予測起動時間を生成する予測起動時間サービスに対して要求がなされても良い。実例として、予測起動時間を求める要求は、起動構成、または1つ以上のコンピューティングインスタンスの起動構成に対する参照を含んでも良い。次いで、予測起動時間サービスは、起動構成に少なくとも部分的に基づいて起動特徴を識別し、予測起動時間を出力する機械学習モデルにその起動特徴を入力することにより、1つ以上のコンピューティングインスタンスの予測起動時間を生成しても良い。
ブロック508のように、次いで、予測起動時間をSLA時間と比較して、ブロック510のように、予測起動時間がSLA起動時間より長いかどうかを判定しても良い。予測起動時間とSLA起動時間との比較により、SLA起動時間を達成するか、またはそれに違反する可能性があるかどうかの指摘が提示されても良い。
予測起動時間がSLA起動時間より長くない場合、ブロック514のように、1つ以上のコンピューティングインスタンスを起動しても良い。予測起動時間がSLA時間より長い場合、ブロック512のように、潜在的なSLA起動時間への違反に応答して所定の処置を実行しても良い。所定の処置の一例は、SLA起動時間を達成する可能性がないとコンピューティングサービスの運用者及び/または顧客に通知することを含んでも良い。このように、コンピューティングサービスの運用者及び/または顧客は、起動時間を増加させる可能性のある処置を実行することにより、想定されるSLA起動時間への違反を減らすか、または抑制するように試みても良い。例えば、コンピューティングサービスプロバイダは、コンピューティング能力を提供している一群の物理ホストから、起動時間を増加させている物理ホストを除去しても良い。あるいは、または加えて、顧客に対し、コンピューティングインスタンスの起動構成の態様であって、顧客による調整の範囲内であり得る態様、ならびに、コンピューティングサービスの運用者及び/または顧客が実行し得るもののうち本明細書で特に説明されていない他の処置を修正するように推奨しても良い。
1つの例示的な構成において、SLA起動時間に違反する可能性があると判定されると、コンピューティングプロセスは、コンピューティングインスタンスが起動されるコンピューティングサービス環境の状態を分析して、SLA起動時間に対する違反を防ぐ処置を実行することができるかどうかを判定しても良い。実行され得る処置の一例として、利用可能なコンピューティング能力を分析して、コンピューティング能力を高める別の物理ホストを追加することによって起動時間が増加し得るかどうかを判定しても良い。例えば、一群の物理ホストは、複数のコンピューティングインスタンスをホストするために利用可能なコンピュータ能力を提供し得る。一群の物理ホストを分析して、一群の物理ホストがいくつのコンピューティングインスタンスをホストすることが可能となり得るかを求め、更に、一群の物理ホストがいくつのコンピューティングインスタンスを現在ホストしている(例えば、コンピューティングインスタンスを実行している)かを求めても良い。分析の結果に基づき、別の物理ホストを一群の物理ホストに追加して、利用可能なコンピューティング能力を高めても良い。
想定されるSLA起動時間への違反に応答して実行され得る処置の別の例として、コンピューティング能力を提供している一群の物理ホストに含まれる各物理ホストを分析して、物理ホストが起動時間に負の影響を及ぼし得るかどうかを判定しても良い。具体例として、一群の物理ホストに含まれる過負荷状態の物理ホストは、複数のコンピューティングインスタンスがその過負荷状態の物理ホスト上で同時に起動されているため、起動時間に影響を及ぼす場合がある。例えば、過負荷状態の物理ホストは、コンピューティングインスタンスをホストするために利用可能なコンピュータ能力を備えているように見える可能性があるが、過負荷状態の物理ホストが処理している複数のコンピューティングインスタンスの起動が原因で、過負荷状態の物理ホスト上でのコンピューティングインスタンスの起動時間がSLA起動時間を超える場合がある。このように、コンピューティングインスタンスをホストするために利用可能であるとみなされる一群の物理ホストから、過負荷状態の物理ホストを除去しても良い。具体的には、(例えば、第1の予測起動時間が過負荷状態の物理ホストを含んでいたために)コンピューティングインスタンスの第2の予測起動時間を生成する前に、過負荷状態の物理ホストを、利用可能なコンピューティング能力から除去しても良い。次いで、第2の予測起動時間を生成しても良い。これにより、過負荷状態の物理ホストを含んだ利用可能なコンピューティング能力に基づく第1の予測起動時間と比較してより速い起動時間の予測が得られる場合がある。
想定されるSLA起動時間への違反に応答して実行され得る処置の更に別の例として、コンピューティングインスタンスの起動構成を分析して、その起動構成の変化によって起動時間が増加し得るかどうかを判定しても良い。実例として、起動構成は、コンピューティングインスタンスを起動するのに使用されるパラメータ及びコンピューティングリソースを指定しても良い。これらのパラメータ及びコンピューティングリソースは、コンピューティングインスタンスの予測起動時間に影響を及ぼす場合がある。このように、起動構成を分析して、起動構成が変化してもSLA起動時間に違反しない予測起動時間となり得るかどうかを判定しても良い。具体例として、起動構成は、コンピューティングインスタンスを起動する地理的領域を指定しても良い。分析を実行して、異なる地理的領域でコンピューティングインスタンスを起動することによってより良好な予測起動時間となるかどうかを判定しても良い。分析により、異なる地理的領域によってより良好な予測起動時間となり得ると判定された場合、その異なる地理的領域を含むように起動構成を変更しても良い。
上記の運用の代わりに、または加えて、SLA起動時間への違反を表す特徴(例えば、SLA違反特徴)を、コンピューティングインスタンスの起動がSLA起動時間に違反し得るかどうかを示す分類を出力する機械学習分類モデルへの入力として提供しても良い。例えば、SLA違反特徴を、機械学習分類モデルに提供される他の特徴と共に考慮しても良い。アルゴリズム(例えば、分類器)を用いて、機械学習モデルに提供された入力特徴データをカテゴリにマッピングしても良い。従って、予測起動時間の特徴がSLA起動時間の特徴より大きくなり得る例において、機械学習分類モデルは、コンピューティングインスタンスの起動時間がSLA起動時間に違反する可能性があることを示す分類を出力し得る。
図6は、コンピューティングインスタンスの起動時間を予測する例示的な方法600を示すフロー図である。ブロック610で始まって、コンピューティングサービス環境内の物理ホスト上でコンピューティングインスタンスを起動することと関連した予測起動時間を求める要求を受信しても良い。予測起動時間は、コンピューティングインスタンスがペンディング状態にある時間(すなわち、コンピューティングインスタンスリソースを設定するサービスコールを実行すること、コンピューティングインスタンスをホストする物理ホストを識別すること、及びその物理ホスト上でコンピューティングインスタンスを作成すること)から、コンピューティングインスタンスが実行状態となる時間(すなわち、コンピューティングインスタンスのブートの開始)までであって良い。いくつかの例において、使用可能なコンピューティングインスタンス(例えば、ブートされたコンピューティングインスタンス)を顧客が受け取る時間は、コンピューティングインスタンスのブート時間を含むことによって予測起動時間に含まれても良い。このブート時間は、コンピューティングインスタンスの内部構成によって影響を受ける場合がある。
ブロック620のように、コンピューティングサービス環境内の物理ホスト上でのコンピューティングインスタンスの起動時間に影響を及ぼすと判定されたコンピューティングインスタンスの起動特徴と関連したデータを取得しても良い。例えば、起動時間に影響を及ぼすと判定され得る起動特徴は、マシンイメージの起動特徴(例えば、コンピューティングインスタンスを作成するのに使用されたマシンイメージの特徴)、物理ホストの起動特徴(例えば、コンピューティングインスタンスをホストするために選択された物理ホストの特徴)、及び顧客によって調整され得る起動構成の特徴(例えば、マシンイメージの構成、地理的領域、同時に起動されるコンピューティングインスタンスの数など)を含み得るが、これらに限定されることはない。一例において、起動特徴と関連したデータを取得した後、次いで、そのデータを正規化しても良い。
ブロック630のように、起動特徴(すなわち、起動特徴に関するデータ)を、コンピューティングサービス環境内の選択された物理ホスト上でコンピューティングインスタンスを起動するための予測起動時間を出力する機械学習モデルに入力しても良い。一例において、機械学習モデルは、回帰モデル(例えば、ランダムフォレスト回帰モデル)であって良い。
機械学習モデルは、履歴データを用いて訓練され、次いで、運用環境に配置されても良く、そこで、予測起動時間を求める能動的な要求を機械学習モデルが受信しても良い。1つの例示的な構成において、機械学習モデルを、履歴データ(例えば、前日、前週または前月の起動特徴)を用いて周期的に訓練しても良い。別の例示的な構成において、機械学習モデルが運用環境にある間、起動特徴を(例えば、数秒前、数分前、数時間前の)有効データから抽出して機械学習モデルを再訓練することにより、機械学習モデルを訓練しても良い。それにより、機械学習モデルを、コンピューティングサービス内で生じている変化に適応させることができる。
次いで、機械学習モデルによって生成された予測起動時間を、要求に応答して提供しても良い。一例として、予測起動時間を、コンピューティングインスタンスの物理ホストを選択するコンピューティングインスタンス配置サービスなどのコンピューティングサービス内の各種サービスに提供しても良い。別の例として、予測起動時間を顧客に提供しても良く、それにより、予測起動時間を顧客に連絡するか、またはSLA起動時間を達成する可能性があるかどうかを顧客に通知する。更に別の例として、予測起動時間をコンピューティングサービスの運用者に提供して、当該コンピューティングサービスの運用者が、その予測起動時間に従ってコンピューティングサービス環境を分析し、修正することができるようにしても良い。理解されるように、予測起動時間は任意の目的のために利用されても良く、従って、本明細書に開示された例に限定されることはない。推定起動時間を用いてコンピューティングサービス環境内の物理ホストにコンピューティングインスタンスを配置することを決定する技術を説明する。コンピューティングインスタンスの配置中、利用可能なコンピューティングスロット(例えば、コンピューティングインスタンスを起動するのに使用されるコンピューティングリソース)を備えた物理ホスト、または短縮された起動時間を提供する一群の物理ホストを、推定起動時間及び他の配置基準を用いてコンピューティングサービス環境内で識別しても良い。コンピューティングインスタンスは、サーバコンピュータとしても知られている物理ホストに配置されても良く、コンピューティングインスタンスは、コンピューティングサービス環境内の物理ホスト上で起動され、または実行されても良い。
一例において、コンピューティングサービス環境内でコンピューティングインスタンスを起動することを求める要求を受信しても良い。この要求は、コンピューティングサービス環境からのコンピューティングサービスを所望する顧客から受信されても良い。コンピューティングサービス環境内のどの物理ホストがコンピューティングインスタンスの配置を実現すべきかについての決定は、コンピューティングインスタンスの起動を求める要求を顧客から受信したときに実行されても良い。例えば、短縮されたコンピューティングインスタンスの起動時間を提供する物理ホストを、コンピューティングサービス環境内の他の物理ホストと比較して識別しても良く、コンピューティングインスタンスは、その物理ホスト上で起動されても良い。従って、コンピューティングインスタンスは、短縮されたコンピューティングインスタンスの起動時間を提供する物理ホストに配置されても良い。用語「launch time(起動時間)」は、1)コンピューティングインスタンスの起動を求める要求を受信してから、2)コンピューティングインスタンスを起動するために選択された物理ホスト上でコンピューティングインスタンスをブートするまで、の時間を実質的に指す場合がある。
1つの構成において、要求に関係するコンピューティングインスタンスと関連したインスタンスの特徴を、コンピューティングインスタンスの配置、またはコンピューティングインスタンスを生成し得るマシンイメージを決定したときに識別しても良い。インスタンスの特徴は、コンピューティングインスタンスを記述しても良く、または特徴付けても良い。例えば、インスタンスの特徴は、コンピューティングインスタンスのサイズ、コンピューティングインスタンスによって使用されるコンピューティングインスタンスのイメージタイプ(例えば、マシンイメージまたはカーネルイメージ)、コンピューティングインスタンスのアーキテクチャタイプ(例えば、32ビットアーキテクチャまたは64ビットアーキテクチャ)、コンピューティングインスタンスの仮想化タイプ(例えば、準仮想化またはハードウェア仮想マシン)、及びコンピューティングインスタンスによって使用されるデータ記憶装置のタイプを含み得るが、これらに限定されることはない。インスタンスの特徴は、コンピューティングインスタンスの起動に使用されるオペレーティングシステム(OS)の種類及びネットワークタイプ(例えば、バーチャルプライベートネットワーク)などの、ユーザーによって調整される特徴を含んでも良い。
1つの構成において、コンピューティングサービス環境の物理ホストと関連した物理ホストの特徴を、コンピューティングインスタンスの配置を決定するときに識別しても良い。物理ホストの特徴は、所与の時刻に(例えば、コンピューティングインスタンスが起動されるときに)、コンピューティングサービス環境内の物理ホストの態様を記述しても良く、または特徴付けても良い。あるいは、物理ホストの特徴は、コンピューティングサービス環境内の定められた一群の物理ホストを記述しても良い。物理ホストの特徴は、物理ホストでホストすることができるコンピューティングインスタンスの最大数、物理ホストと関連したハードウェアタイプ、物理ホストと関連したハードウェアベンダ、コンピューティングインスタンスが起動されるときの物理ホストにおけるコンピューティングインスタンスの占有率、及び物理ホストが位置するゾーンを含み得るが、これらに限定されることはない。加えて、物理ホストの特徴は、物理ホスト上で現在ペンディング中であり、かつ/または実行中であるコンピューティングインスタンスの数を含んでも良い。
コンピューティングインスタンスと関連したインスタンスの特徴及びコンピューティング環境内の物理ホストと関連した物理ホストの特徴を起動時間予測モデルに提供しても良い。起動時間予測モデルは、インスタンスの特徴及び物理ホストの特徴を用いて、コンピューティングサービス環境内の物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を予測しても良い。より具体的には、起動時間予測モデルは、物理ホストA上でコンピューティングインスタンスを起動するための推定起動時間、物理ホストB上でコンピューティングインスタンスを起動するための推定起動時間、物理ホストC上でコンピューティングインスタンスを起動するための推定起動時間などを予測しても良い。起動時間予測モデルは、コンピューティングサービス環境内で起動されるコンピューティングインスタンスの推定起動時間を予測するために、以前に起動された複数のコンピューティングインスタンスの履歴起動時間情報及び特徴を用いて訓練されている機械学習モデル(例えば、回帰モデル)であって良い。
インスタンスの特徴の非限定的な例として、コンピューティングサービス環境内で起動されるコンピューティングインスタンスは、サイズが比較的小さく、32ビットアーキテクチャからなり、ハードウェア仮想マシン(HVM)を使用し、かつ/または、定められたタイプのデータ記憶装置を使用しても良い。コンピューティングインスタンスは、物理ホストA、物理ホストBまたは物理ホストC上で起動されても良い。物理ホストAは、80%占有されている可能性があり(すなわち、物理ホストAのためのコンピューティングリソースの80%が現在使用されている)、現在10個の他のコンピューティングインスタンスを起動している。物理ホストBは、50%占有されている可能性があり、現在6つの他のコンピューティングインスタンスを起動している。物理ホストCは、20%占有されている可能性があり、現在2つの他のコンピューティングインスタンスを起動している。起動時間予測モデルは、識別された特徴を受け取っても良く、物理ホストA上でコンピューティングインスタンスを起動するための推定起動時間が70秒であり、物理ホストB上でコンピューティングインスタンスを起動するための推定起動時間が40秒であり、物理ホストC上でコンピューティングインスタンスを起動するための推定起動時間が15秒であると決定しても良い。従って、どの物理ホストがコンピューティングインスタンスの配置を実現すべきかを決定するときに、推定起動時間を考慮しても良い。
上記の例において、短縮された起動時間を提供することができる物理ホストを、他の物理ホストと比較して、コンピューティングインスタンスを配置するために選択しても良い。上記の例において、物理ホストCを選択してコンピューティングインスタンスを起動しても良い。これは、物理ホストCが、物理ホストA及び物理ホストBと比較して、短縮された起動時間を提供し得るためである。
代替的な構成において、コンピューティングインスタンスを配置するために選択される物理ホストは、コンピューティングサービス環境内の他の物理ホストと比較して、同時に起動されている最小の数のコンピューティングインスタンスを備えても良い。これは、物理ホスト上で複数同時に起動することにより、コンピューティングインスタンスを起動するための起動時間が増加し得るためである。非限定的な例として、配置の決定がなされているときに、物理ホストAは、10個のコンピューティングインスタンスを起動している場合があり、物理ホストBは、2つのコンピューティングインスタンスを起動している場合があり、物理ホストCは、100個のコンピューティングインスタンスを起動している場合がある。従って、物理ホストBを選択してコンピューティングインスタンスを起動しても良い。これは、物理ホストBが、物理ホストA及び物理ホストCと比較して、最も短い起動時間を提供することが推測され得るためである。
コンピューティングインスタンスの推定起動時間は、コンピューティングインスタンスの配置を決定するときに使用される多数の配置要因の1つであって良い。例えば、コンピューティングインスタンスの配置に関わる他の要因は、物理ホストの利用率、ライセンスコスト、災害の影響などを含んでも良い。推定起動時間を含む配置要因には、配置要因の重要度に関わる加重値をそれぞれ割り当てても良い。例えば、推定起動時間は配置決定の50%を占めても良く、物理ホストの利用率は配置決定の30%を占めても良く、ライセンスコストは配置決定の20%を占めても良く、災害の影響は配置決定の10%を占めても良い。
図7は、本技術のモジュールを実行し得るコンピューティングデバイス710を示す図である。コンピューティングデバイス710は、本技術の高水準の例を実行し得る場合について示されている。コンピューティングデバイス710は、複数のメモリデバイス720と通信する1つ以上のプロセッサ712を含んでも良い。コンピューティングデバイス710は、各構成要素のためのローカル通信インターフェース718をコンピューティングデバイス内に含んでも良い。例えば、ローカル通信インターフェース718は、所望される場合には、ローカルデータバス及び/または任意の関連するアドレスバスもしくは制御バスであって良い。
メモリデバイス720は、1つ以上のプロセッサ712によって実行可能なモジュール724、及びモジュール724に関するデータを含んでも良い。例えば、メモリデバイス720は、訓練モジュール及び起動特徴モジュールを含んでも良い。モジュール724は、前述した機能を実行しても良い。データ記憶装置722は、1つ以上のプロセッサ712によって実行可能なオペレーティングシステムと共にモジュール724に関わるデータ及び他のアプリケーションを記憶するメモリデバイス720内に位置しても良い。
他のアプリケーションが、メモリデバイス720に記憶されても良く、1つ以上のプロセッサ712によって実行可能であって良い。この説明で述べた構成要素またはモジュールは、高いプログラミングレベルの言語を用いてソフトウェアの形態で実装されても良い。この言語は、各手法の組み合わせを用いてコンパイルされ、解釈され、または実行される。
コンピューティングデバイスは、そのコンピューティングデバイスによって使用可能な入出力(input/output:I/O)デバイス714にアクセスしても良い。ネットワークデバイス716及び同様の通信デバイスは、コンピューティングデバイスに含まれても良い。ネットワークデバイス716は、インターネット、LAN、WANまたは他のコンピューティングネットワークに繋がる有線または無線のネットワークデバイスであって良い。
メモリデバイス720に記憶されるものとして示した構成要素またはモジュールは、1つ以上のプロセッサ712によって実行されても良い。用語「executable(実行可能な)」は、プロセッサ712によって実行され得る形態をとったプログラムファイルを意味する場合がある。例えば、より高水準な言語のプログラムを、メモリデバイス720のランダムアクセス部分にロードされ、プロセッサ712によって実行され得る形式の機械コードにコンパイルしても良く、あるいは、ソースコードを、別の実行可能プログラムによってロードし、プロセッサによって実行されるメモリのランダムアクセス部分の命令を生成するように解釈しても良い。実行可能プログラムは、メモリデバイス720の任意の部分または構成要素に記憶されても良い。例えば、メモリデバイス720は、ランダムアクセスメモリ(random access memory:RAM)、リードオンリーメモリ(read only memory:ROM)、フラッシュメモリ、ソリッドステートドライブ、メモリカード、ハードディスク、光ディスク、フロッピーディスク、磁気テープまたは他の任意のメモリ構成要素であって良い。
プロセッサ712は、複数のプロセッサを表しても良く、メモリ720は、処理回路に対して並列に動作する複数の記憶部を表しても良い。これにより、システムのプロセス及びデータに並列処理チャネルが提供され得る。ローカルインターフェース718は、複数のプロセッサと複数のメモリのいずれかの間の通信を容易にするネットワークとして使用されても良い。ローカルインターフェース718は、負荷分散、大量データ転送及び同様の方式などの、通信を調整するために設計された別の方式を使用しても良い。
図8は、本技術の一例に係る例示的なコンピューティングサービス環境800の構成要素を示す図である。コンピューティングサービス環境800は、ネットワーク850を介して複数のクライアント装置860と通信するサーバコンピュータ810を含んでも良く、サーバコンピュータは、サービスプロバイダ環境800の制御プレーンの一部であって良い。サーバコンピュータ210は、データ記憶装置830、及びコンピューティングインスタンスの配置を決定するのに使用される複数のモジュールを含んでも良い。加えて、コンピューティングサービス環境800は、複数のコンピューティングインスタンスを実行する複数のサーバコンピュータ840a〜cを含んでも良い。
サーバコンピュータ840a〜cは、コンピューティングインスタンスを実行するのに使用され得る利用可能なコンピューティングスロット842a〜c(例えば、アイドル状態のコンピューティングリソース)を備えても良い。利用可能なコンピューティングスロット842a〜cは、利用可能なコンピューティングスロット842a〜cをその後利用してコンピューティングインスタンスを実行し得る顧客に割り当てられても良い。コンピューティングインスタンスの例は、オンデマンドコンピューティングインスタンス、リザーブドコンピューティングインスタンス及び割り込み可能なコンピューティングインスタンスを含んでも良い。オンデマンドコンピューティングインスタンスは、要求時に顧客が購入し、実行し得るコンピューティングインスタンスであって良い。リザーブドコンピューティングインスタンスは、コンピューティングインスタンスの予約であって良い。顧客は、自身がコンピューティングインスタンスを要求するときに、当該コンピューティングインスタンスが利用可能となる定められた期間だけそのコンピューティングインスタンスを購入し得る。割り込み可能なコンピューティングインスタンスは、割り込み可能なコンピューティングインスタンスに支払われている価格が現在の入札価格を下回らない限り、別のコンピューティングインスタンスタイプによって使用されていないコンピューティングスロット842a〜cにおいて実行され得るコンピューティングインスタンスであって良い。
データ記憶装置830に記憶されるデータは、インスタンスの特徴832を含んでも良い。インスタンスの特徴832は、コンピューティングサービス環境800内で起動されるコンピューティングインスタンスと関連付けられても良い。加えて、インスタンスの特徴832は、コンピューティングインスタンスをコンピューティングサービス環境800内で起動するためのコンピューティングインスタンスイメージと関連付けられても良い。インスタンスの特徴832は、コンピューティングサービス環境800内で起動されるコンピューティングインスタンスを記述しても良く、または特徴付けても良い。例えば、インスタンスの特徴は、数値または他のスカラー値を有しても良い。
データ記憶装置830に記憶されるデータは、物理ホストの特徴834を含んでも良い。物理ホストの特徴834は、コンピューティングサービス環境800内の複数の物理ホストと関連付けられても良い。物理ホストの特徴834は、コンピューティングインスタンスを潜在的に起動し得るコンピューティングサービス環境800内の物理ホストを記述しても良く、または特徴付けても良い。例えば、物理ホストの特徴は、数値または他のスカラー値を有しても良い。
データ記憶装置830に記憶されるデータは、推定起動時間836を含んでも良い。推定起動時間836は、コンピューティングサービス環境800内で起動される複数のコンピューティングインスタンスに関するものであって良い。推定起動時間836は、所与のコンピューティングインスタンスに対し、コンピューティングサービス環境800内の複数の物理ホスト中の各物理ホスト(またはサーバコンピュータ)上でコンピューティングインスタンスを起動するための推定起動時間を指定しても良い。推定起動時間836は、品質管理目的、記録の維持または他の用途のためにデータ記憶装置830に記憶されても良い。推定起動時間836は、起動時間予測モデルを用いて決定されても良い。一例において、起動時間予測モデルは、推定起動時間836を決定するときに、コンピューティングインスタンスと関連したインスタンスの特徴832及び複数の物理ホストと関連した物理ホストの特徴834を使用しても良い。非限定的な例として、3つの異なる物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間836は、それぞれ10秒、50秒または2分となり得る。
サーバコンピュータ810は、コンピューティングインスタンス要求モジュール822、推定起動時間予測モジュール824、物理ホスト選択モジュール826、及び本明細書に詳述されていない他のアプリケーション、サービス、プロセス、システム、エンジンまたは機能を含んでも良い。コンピューティングインスタンス要求モジュール822は、コンピューティングサービス環境800内で1つ以上のコンピューティングインスタンスを起動することを求める要求を受信するように構成されても良い。この要求は、コンピューティングサービス環境800のコンピューティングサービスを所望する顧客から受信されても良い。この要求は、起動されるコンピューティングインスタンスの数、及び起動されるコンピューティングインスタンスのタイプまたはサイズを含んでも良い。一例において、上記要求は、コンピューティングインスタンスを起動するための特定の地理的領域またはゾーンを指定しても良い。
推定起動時間予測モジュール824は、上記要求においてコンピューティングインスタンスと関連したインスタンスの特徴及びコンピューティングサービス環境800内の複数の物理ホストと関連した物理ホストの特徴を受け取り、または識別するように構成されても良い。インスタンスの特徴は、コンピューティングインスタンスのサイズ、コンピューティングインスタンスを起動するのに使用されるロードイメージであるマシンイメージ、コンピューティングインスタンスのアーキテクチャタイプ、コンピューティングインスタンスの仮想化タイプ、コンピューティングインスタンスによって使用されるデータ記憶装置のタイプなどを含んでも良い。加えて、物理ホストの特徴は、コンピューティングサービス環境800内の各物理ホストについて、または、コンピューティングサービス環境800内の定められた一群の物理ホストについて、物理ホストでホストすることができるコンピューティングインスタンスの最大数、ハードウェアタイプ、ハードウェアベンダ、占有率、物理ホストが位置する地理的ゾーン、物理ホスト上で現在ペンディング中または実行中のインスタンスの数などを含んでも良い。
推定起動時間予測モジュール824は、コンピューティングサービス環境800内でコンピューティングインスタンスを起動するための推定起動時間を特定しても良い。推定起動時間予測モジュール824は、機械学習モデルを用いて推定起動時間を特定しても良い。機械学習モデルは、インスタンスの特徴及び物理ホストの特徴を所与として推定起動時間を予測しても良い。インスタンスの特徴及び物理ホストの特徴は、コンピューティングインスタンスの推定起動時間に影響を及ぼす場合がある。例えば、あるインスタンスの特徴及び/または物理ホストの特徴(例えば、物理ホスト上でのコンピューティングインスタンスの同時起動数、コンピューティングインスタンスのサイズ)は、コンピューティングインスタンスの推定起動時間を増加させる場合があるのに対し、他のインスタンスの特徴及び/または物理ホストの特徴は、コンピューティングインスタンスの推定起動時間を減少させる場合がある。一例において、機械学習モデルは、以前に起動された複数のコンピューティングインスタンスの履歴起動時間情報を使用してコンピューティングサービス環境800内で起動されるコンピューティングインスタンスの推定起動時間を予測する回帰モデルであって良い。
物理ホスト選択モジュール826は、コンピューティングインスタンスの配置を実現することができるコンピューティングサービス環境800内の一群の物理ホストから物理ホストを選択するように構成されても良い。物理ホスト選択モジュール826は、コンピューティングインスタンスの推定起動時間に基づいて物理ホストを選択しても良い。一例において、物理ホスト選択モジュール826は、一群の物理ホスト中の他の物理ホストと比較して、短縮された推定起動時間または最も短い推定起動時間でコンピューティングインスタンスの配置を実現することができる物理ホストを選択しても良い。加えて、物理ホスト選択モジュール826は、コンピューティングインスタンスの配置を決定するときに別の配置要因を使用しても良い。別の要因は、物理ホストの利用率、ライセンスコスト及び災害の影響を含み得るが、これらに限定されることはない。推定起動時間及び別の配置要因には、コンピューティングインスタンスの配置を決定するときに、配置要因の重要度に相関する加重値をそれぞれ割り当てても良い。コンピューティングインスタンスは、コンピューティングサービスを顧客に提供するために、配置時に物理ホストにロードされ、そこで実行されても良い。
図9は、コンピューティングサービス環境900内の物理ホストにコンピューティングインスタンスを配置する例示的なシステム及び関連動作を示す図である。コンピューティングインスタンスは、物理ホストへの配置時にコンピューティングサービスを提供するために起動されても良い。コンピューティングインスタンスの起動を求めるコンピューティングインスタンス要求910は、コンピューティングサービス環境900にて受信されても良い。例えば、顧客は、コンピューティングインスタンス要求910を実行して、コンピューティングサービス環境900からコンピューティングサービスを得るようにしても良い。コンピューティングインスタンスが配置される物理ホストは、所定の目的に従って選択されても良い。この所定の目的は、顧客及び/またはコンピューティングサービス環境900によって定められても良い。一例において、この所定の目的は、コンピューティングサービス環境900内の他の物理ホストと比較して、最も速い起動時間を提供することができる物理ホストにコンピューティングインスタンスを配置することを含んでも良い。
コンピューティングインスタンス要求910に含まれる速やかに起動すべきコンピューティングインスタンスと関連したインスタンスの特徴915、及びコンピューティングサービス環境900内の複数の物理ホストに関する物理ホストの特徴920を識別しても良い。例えば、物理ホスト950〜960は、物理ホストの特徴920に対応するデータのクエリを直接受けても良い。インスタンスの特徴915及び物理ホストの特徴920は、コンピューティングインスタンス及びコンピューティングサービス環境900内の物理ホスト950〜960をそれぞれ記述しても良い。インスタンスの特徴915及び物理ホストの特徴920を識別することにより、物理ホストにコンピューティングインスタンスを配置できるようにしても良い。より具体的には、配置のために選択される物理ホストは、インスタンスの特徴915及び物理ホストの特徴920に依存しても良い。先に説明したように、インスタンスの特徴915は、コンピューティングインスタンスのサイズ、コンピューティングインスタンスによって使用されるマシンイメージ、コンピューティングインスタンスのアーキテクチャタイプ、コンピューティングインスタンスの仮想化タイプ、コンピューティングインスタンスによって使用されるデータ記憶装置のタイプなどを含んでも良い。加えて、物理ホストの特徴920は、コンピューティングサービス環境900内の各物理ホストについて、または、コンピューティングサービス環境900内の定められた一群の物理ホストについて、物理ホストでホストすることができるコンピューティングインスタンスの最大数、ハードウェアタイプ、ハードウェアベンダ、占有率、物理ホストが位置する地理的ゾーン、物理ホスト上で現在ペンディング中または実行中のインスタンスの数などを含んでも良い。
インスタンスの特徴915及び物理ホストの特徴920を機械学習モデル930に提供しても良い。機械学習モデル930は、インスタンスの特徴915及び物理ホストの特徴920に基づいて所与の物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を予測する回帰モデルであって良い。機械学習モデル930は、コンピューティングインスタンスの推定起動時間を予測するために、以前に起動されたコンピューティングインスタンスの履歴情報(例えば、以前に起動されたコンピューティングインスタンスのタイプ、コンピューティングインスタンスの起動時間、コンピューティングインスタンスを起動した物理ホスト上での同時起動数など)を用いて訓練されていても良い。
一例において、機械学習モデル930は、コンピューティングサービス環境900内の利用可能な各物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を予測しても良い。あるいは、機械学習モデル930は、定められた一群の物理ホスト中の各物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を予測しても良い。例えば、機械学習モデル930は、物理ホスト950上でコンピューティングインスタンスを起動するための推定起動時間、及び物理ホスト960上でコンピューティングインスタンスを起動するための推定起動時間を予測しても良い。
機械学習モデル930は、推定起動時間を配置モジュール940に提供しても良い。配置モジュール940は、コンピューティングインスタンスの配置決定(すなわち、どの物理ホストがコンピューティングインスタンスをホストし、または起動すべきか)を実行するときに、推定起動時間を使用しても良い。加えて、配置モジュール940は、配置決定を実行するときに、別の配置要因935を使用しても良い。別の配置要因935は、物理ホストの利用率の配置要因、ライセンスコストの配置要因、及び災害の影響の配置要因を含み得るが、これらに限定されることはない。物理ホストの利用率の配置要因は、コンピューティングサービス環境900に含まれる物理ホスト間で物理ホストの利用率を最大にするという所定の目的を表しても良い。ライセンスの配置要因は、コンピューティングサービス環境900に含まれる物理ホストにコンピューティングインスタンスを配置することと関連したソフトウェアライセンスコストを最低限にするという所定の目的を表しても良い。災害の影響の配置要因は、顧客が実行しているコンピューティングインスタンスに対するコンピューティングサービス障害(例えば、物理ホスト障害、ラック障害、可用性ゾーン障害またはハードウェア障害)の影響を最小限にするという所定の目的を表しても良い。
機械学習モデル930によって決定された推定起動時間、及び別の配置要因935には、コンピューティングインスタンスの配置を決定するときに、配置要因の各重要性を示す加重値をそれぞれ割り当てても良い。換言すれば、コンピューティングサービス環境900がコンピューティングインスタンスの配置によってどのように影響され得るかに応じて、各配置要因に加重値を割り当てても良い。例えば、物理ホストの利用率を高く維持することが所望される場合、物理ホストの利用率の係数は、比較的大きい加重値を受けても良い。ソフトウェアライセンスコストを最適化することがコンピューティングサービス環境にとってより低い価値である場合、ライセンスコストの配置要因は、利用率の配置要因に割り当てられる加重値と比較して、より小さい加重値を受けても良い。コンピューティングサービス環境900全体にコンピューティングインスタンスを配置することにより、システム障害が原因で影響を受ける複数の顧客が現在のところ負の影響を受ける可能性がある場合、災害の影響の配置要因に割り当てられる加重値は、比較的大きい値であって良い。非限定的な例として、コンピューティングインスタンスの推定起動時間は、配置モジュール840が配置決定を実行するときに50%加重されても良く、物理ホストの利用率の配置要因は20%加重されても良く、ライセンスコストの配置要因は15%加重されても良く、災害の影響の配置要因は15%加重されても良い。
配置モジュール940は、別の配置要因935に加えて、コンピューティングインスタンスを起動するための推定起動時間を機械学習モデル930から受け取っても良い。配置モジュール940は、コンピューティングサービス環境900の所定の目的に適合するために、どの物理ホストがコンピューティングインスタンスを受け入れるべきかを決定しても良い。一例において、配置モジュール940は、短縮されたコンピューティングインスタンスの起動時間または最も短いコンピューティングインスタンスの起動時間を提供する配置のために物理ホストを選択しても良い。
非限定的な例として、配置モジュール940は、物理ホスト950がコンピューティングインスタンスを28秒で起動することができると判定する場合がある。加えて、配置モジュール940は、物理ホスト960がコンピューティングインスタンスを30秒で起動することができると判定する場合がある。配置モジュール940は、コンピューティングインスタンスを配置するために物理ホスト950を選択しても良い。これは、物理ホスト950がより短い起動時間を提供するためである。
1つの構成において、コンピューティングインスタンスの配置を実現する物理ホストは、コンピューティングインスタンス要求910に含まれる配置制約を用いて選択されても良い。一例において、コンピューティングインスタンスを起動することを要求している顧客が、配置制約を提供しても良い。配置制約は、コンピューティングインスタンスの要求910がコンピューティングインスタンスのクラスタを起動するように計画しているか否かを示しても良い。配置制約は、コンピューティングインスタンスを起動するときに使用されるハードウェア、オペレーティングシステムまたはネットワークタイプの具体的な種類を示しても良い。加えて、配置制約は、比較的離れて分散している一群の物理ホストとは対照的に、互いに比較的近接している一群の物理ホストにおいてコンピューティングインスタンスを起動すべきどうかを示しても良い。
図10は、コンピューティングサービス環境1000にコンピューティングインスタンスを配置することを決定するときに推定接続時間を使用する例示的なシステム及び関連動作を示す図である。コンピューティングインスタンスの起動を求める要求は、(例えば、顧客から)受信されても良い。一例において、この要求は、接続要求1010を含んでも良い。接続要求1010は、コンピューティングインスタンスが起動されるときに、コンピューティングインスタンスに接続されるアタッチメント(コンピューティングインスタンスアタッチメント)としてのネットワークインターフェース及び/またはネットワークストレージをコンピューティングインスタンスに接続することであって良い。コンピューティングインスタンスを起動するときに使用されるアタッチメントの数及び/またはアタッチメントのサイズがコンピューティングインスタンスの起動時間に影響を及ぼす場合があるため、コンピューティングインスタンスの配置決定を実行するときに接続時間を考慮しても良い。
一例において、機械学習モデル1030は、推定接続時間、すなわち、接続を実行する時間を予測しても良い。機械学習モデル1030は、推定接続時間を予測するときに、接続要求1010、及び接続要求1010と関連したアタッチメントの特徴1020を使用しても良い。アタッチメントの特徴は、接続要求1010に含まれるアタッチメントの数、アタッチメントのサイズ、当該アタッチメントがデータストレージまたはネットワークインターフェースに関するものかどうかなどを含み得るが、これらに限定されることはない。一例において、機械学習モデル1030は、過去の接続要求に関する履歴情報を用いて推定接続時間を予測する回帰モデルであって良い。
機械学習モデル1030は、推定接続時間を配置モジュール1040に提供しても良い。配置モジュール1040は、推定接続時間に基づき、コンピューティングインスタンスを配置するための物理ホストを選択しても良い。例えば、配置モジュール1040は、推定接続時間に応じて、物理ホスト1050、物理ホスト1060または物理ホスト1070のうちの1つにコンピューティングインスタンスを配置しても良い。一例において、配置モジュール1040は、短縮された推定接続時間でコンピューティングインスタンスの配置を実現することができる物理ホストを選択しても良い。
別の構成において、顧客は、アドホック接続(すなわち、コンピューティングインスタンスを起動した後に追加ストレージを求める要求)を要求しても良い。機械学習モデル1030は、アドホック接続要求内の追加ストレージのサイズなどの、当該要求の特性に基づき、追加ストレージを取得するための推定時間を予測しても良い。換言すれば、機械学習モデル1030は、過去の追加ストレージの要求に基づき、追加ストレージを取得するための推定時間を決定しても良い。一例において、追加ストレージを提供するための推定時間は、ユーザーインターフェースを介して顧客に提供されても良い。
図11は、コンピューティングサービス環境1100内の複数のトポロジ層1150のうちの少なくとも1層から選択される物理領域または地理的領域内の物理ホスト(例えば、サーバ)にコンピューティングインスタンスを配置する例示的なシステム及び関連動作を示す図である。コンピューティングインスタンスの起動を求めるコンピューティングインスタンス要求1110は、顧客から受信されても良い。コンピューティングインスタンス及びコンピューティングサービス環境1100内の物理ホストと関連した特徴1120を機械学習モデル1130に提供しても良い。機械学習モデル1130は、特定の地理的領域内の物理ホスト、ゾーン、データセンター、データラック、物理ホスト、コンピューティングスロットなどの、様々なトポロジ層1150の各領域内の物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を決定しても良い。一例において、地理的領域は複数のゾーンを含んでも良く、各ゾーンは複数のデータセンターを含んでも良く、各データセンターは複数のデータラックを含んでも良く、各データラックは複数の物理ホストを含んでも良く、各物理ホストは複数のコンピューティングスロットを含んでも良い。機械学習モデル1130は、特定のトポロジ層1150の物理ホストにコンピューティングインスタンスを配置することによって起動時間を向上させることが可能であるかどうかを判定しても良い。例えば、機械学習モデル1130は、特定ゾーンの第2のデータセンターにコンピューティングインスタンスを配置する場合と比較して、当該特定ゾーンの第1のデータセンターの物理ホストにコンピューティングインスタンスを配置することによって起動時間がより速くなり得ることを示しても良い。機械学習モデル1130は、トポロジ層1130に関する推定起動時間を配置モジュール1140に伝達しても良い。配置モジュール1140は、コンピューティングインスタンスの配置を決定する(すなわち、どのトポロジ層1150がコンピューティングインスタンスをホストすべきかを選択する)ときに推定起動時間を使用しても良い。
図12は、機械学習モデル1250を生成して、コンピューティングサービス環境内で起動されるコンピューティングインスタンスの起動時間を予測することを示す例示的なブロック図1200である。機械学習モデル1250は、実起動時間予測データ1210を用いて作成されても良い。実起動時間入力データ1210は、コンピューティングサービス環境内で以前に起動された複数のコンピューティングインスタンスに関する情報(例えば、起動メトリック)を含んでも良い。そのため、実起動時間入力データ1210は、コンピューティングサービス環境内で以前に起動されたコンピューティングインスタンスに関する履歴情報を含んでも良い。加えて、実起動時間入力データ1210は、コンピューティングサービス環境内の複数の物理ホストに関する履歴情報を含んでも良い。後述するように、実起動時間入力データ1210を変換して、機械学習モデル1250を訓練するのに使用しても良い。
非限定的な例として、実起動時間入力データ1210は、コンピューティングインスタンスAが起動に60秒かかったことを示し得るが、コンピューティングインスタンスAは、サイズが比較的大きく、第1のタイプのデータ記憶装置を使用し、32ビットアーキテクチャを使用し、5つの他のコンピューティングインスタンスを同時に起動している物理ホスト上で起動された。別の非限定的な例として、実起動時間入力データ1210は、コンピューティングインスタンスBが起動に15秒かかったことを示し得るが、コンピューティングインスタンスBは、サイズが比較的小さく、第2のタイプのデータ記憶装置を使用し、64ビットアーキテクチャを使用し、他のコンピューティングインスタンスを同時に起動していない物理ホスト上で起動された。
実起動時間入力データ1210を特徴選択・正規化モジュール1220に提供しても良い。特徴選択・正規化モジュール1220は、実起動時間入力データ1210をモデルの特徴に変換しても良い。換言すれば、モデルの特徴は、以前に起動されたコンピューティングインスタンスの特性、及びコンピューティングインスタンスを以前に起動した物理ホストの特性に関するものであって良い。モデルの特徴は、インスタンスの特徴と物理ホストの特徴に分類されても良い。
インスタンスの特徴は、コンピューティングインスタンスのサイズ、コンピューティングインスタンスによって使用されるマシンイメージ(例えば、マシンイメージまたはカーネルイメージ)、コンピューティングインスタンスのアーキテクチャタイプ(例えば、32ビットアーキテクチャまたは64ビットアーキテクチャ)、コンピューティングインスタンスの仮想化タイプ(例えば、準仮想化またはハードウェア仮想マシン)、及びコンピューティングインスタンスによって使用されるデータ記憶装置のタイプを含み得るが、これらに限定されることはない。インスタンスの特徴は、コンピューティングインスタンスの起動に使用されるオペレーティングシステム(OS)の種類及びネットワークタイプ(例えば、バーチャルプライベートネットワーク)などの、ユーザーによって調整される特徴を含んでも良い。
物理ホストの特徴は、物理ホストがホストすることができるコンピューティングインスタンスの最大数、物理ホストと関連したハードウェアタイプ、物理ホストと関連したハードウェアベンダ、コンピューティングインスタンスが起動されるときの物理ホストの占有率、及び物理ホストが位置するゾーンを含み得るが、これらに限定されることはない。物理ホストの特徴は、コンピューティングインスタンスを起動する物理ホスト(すなわち、対象の物理ホスト)上でペンディング中のコンピューティングインスタンス及び/または実行中のコンピューティングインスタンスの平均数、最小数及び最大数を含んでも良い。加えて、物理ホストの特徴は、コンピューティングインスタンスを起動する物理ホスト(すなわち、対象の物理ホスト)上で現在ペンディング状態及び/または実行状態にあるコンピューティングインスタンスの数を含んでも良い。
特徴選択・正規化モジュール1220は、モデルの特徴を正規化して(すなわち、種々の尺度で測定された値を抽象的な共通の尺度に調整して)、起動時間予測訓練データ1230を作成するようにしても良い。起動時間予測訓練データ1230は、起動時間予測入力データ1210において識別された複数のコンピューティングインスタンスの全体的な特徴を表しても良い。起動時間予測訓練データ1230を機械学習選択モジュール1240に提供しても良い。機械学習選択モジュール1240は、起動時間予測訓練データ1230を使用して、各種の機械学習モデル1242を訓練しても良い。例えば、回帰モデルを訓練しても良い。回帰モデル1242は、サポートベクターマシン、確率的勾配降下法、適応ブースト、extra trees及びランダムフォレストを含み得るが、これらに限定されることはない。各種の回帰モデル1242は、様々な成功度を有する起動時間予測訓練データ1230に対応し得る。一例において、ランダムフォレストの独立変数は、起動時間予測訓練データ1230に関する比較的高い正解率を提供し得る。従って、機械学習選択モジュール1240は、コンピューティングインスタンスの起動時間を推定するときにランダムフォレストの独立変数を使用しても良い。
機械学習モデル1250は、コンピューティングインスタンスの起動を求める要求を受信しても良く、機械学習モデル1250は、当該コンピューティングインスタンスと関連したインスタンスの特徴及び物理ホストの特徴に基づき、そのコンピューティングインスタンスの起動時間を予測しても良い。一例において、機械学習モデル1250は、同じ物理ホスト上でのコンピューティングインスタンスの同時起動数、コンピューティングインスタンスによって記憶され、使用されるデータの種類、コンピューティングインスタンスによって使用されるアーキテクチャタイプ、及びコンピューティングインスタンスと関連したコンピューティングインスタンスイメージが、他のモデルの特徴と比較してコンピューティングインスタンスの起動時間により大きな影響を及ぼす場合があると判定しても良い。
いくつかの場合には、コンピューティングインスタンスの予測起動時間は、コンピューティングインスタンスの実起動時間と異なっていても良い。コンピューティングインスタンスと関連したインスタンスの特徴及び物理ホストの特徴、ならびにコンピューティングインスタンスを起動するための実起動時間を使用して機械学習モデル1250を更に訓練することにより、将来の起動時間の予測を向上させるようにしても良い。
図13は、コンピューティングサービス環境内にコンピューティングインスタンスを配置することを決定する例示的な方法を示すフロー図である。ブロック1310のように、コンピューティングサービス環境内でコンピューティングインスタンスを起動することを求める要求を受信しても良い。コンピューティングインスタンスの起動を求める要求は、コンピューティングサービス環境のコンピューティングサービスを所望する顧客から受信されても良い。
ブロック1320のように、コンピューティングインスタンスと関連したインスタンスの特徴及びコンピューティングサービス環境内の一群の物理ホストと関連した物理ホストの特徴を機械学習モデルに提供しても良い。インスタンスの特徴は、上記要求に従って起動されるコンピューティングインスタンスを記述しても良く、または特徴付けても良い。物理ホストの特徴は、所与の時刻にて(すなわち、コンピューティングインスタンスを上記要求に従って起動するときに)、コンピューティングサービス環境内の各物理ホストを記述しても良く、または特徴付けても良い。
ブロック1330のように、コンピューティングサービス環境内の各物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間は、機械学習モデルを用いて決定されても良い。機械学習モデルは、インスタンスの特徴及び物理ホストの特徴を所与として推定起動時間を予測しても良い。一例において、機械学習モデルは、以前に起動された複数のコンピューティングインスタンスの履歴起動時間情報を使用してコンピューティングサービス環境内で起動されるコンピューティングインスタンスの推定起動時間を予測する回帰モデルであって良い。
ブロック1340のように、一群の物理ホストからの物理ホストを、一群の物理ホスト中の他の物理ホストと比較してより短い推定起動時間に従ってコンピューティングインスタンスの配置を実現するために選択しても良い。加えて、コンピューティングインスタンスの配置を実現する物理ホストは、コンピューティングインスタンスの起動を求める要求に含まれる配置制約を用いて選択されても良い。推定起動時間は、コンピューティングインスタンスを配置するための物理ホストを選択するときに使用される複数の配置要因のうちの1つであって良い。一例において、複数の配置要因を用いて配置を決定するときに、コンピューティングインスタンスの推定起動時間に加重値を割り当てても良く、推定起動時間に割り当てられた加重値に一部基づき、コンピューティングインスタンスの配置を実現する物理ホストを選択しても良い。
図14は、コンピューティングサービス環境内にコンピューティングインスタンスを配置することを決定する別の例示的な方法を示すフロー図である。ブロック1410のように、コンピューティングサービス環境内でコンピューティングインスタンスを起動することを求める要求を受信しても良い。コンピューティングインスタンスの起動を求める要求は、コンピューティングサービス環境のコンピューティングサービスを要求している顧客から受信されても良い。
ブロック1420のように、一群の物理ホスト中の物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を特定しても良い。推定起動時間は、顧客からコンピューティングインスタンス起動要求を受信してから物理ホスト上でコンピューティングインスタンスをブートするまでの時間を含んでも良い。コンピューティングインスタンスを起動するための推定起動時間は、コンピューティングインスタンスの起動時間を予測する回帰モデルを用いて特定されても良い。コンピューティングインスタンスを起動するための推定起動時間は、コンピューティングインスタンスと関連したインスタンスの特徴及び一群の物理ホスト中の物理ホストと関連した物理ホストの特徴に基づいて識別されても良い。この場合、コンピューティングインスタンスと関連したインスタンスの特徴には、ユーザーによって選択された特徴が含まれる。
ブロック1430のように、一群の物理ホスト中の物理ホストは、コンピューティングインスタンスの推定起動時間に一部基づき、コンピューティングインスタンスの配置を実現するために選択されても良く、コンピューティングインスタンスの配置に関わる別の要因を任意に含んでも良い。コンピューティングインスタンスの配置に関わる別の要因は、物理ホストの利用率の配置要因、ライセンスコストの配置要因及び災害の影響の配置要因を含んでも良い。コンピューティングインスタンスは、コンピューティングサービスを提供するために物理ホストにロードされても良い。
1つの構成において、各物理ホスト上でのコンピューティングインスタンスの推定起動時間を、一群の物理ホスト中の他の物理ホストの推定起動時間と比較しても良い。一群の物理ホスト中の他の物理ホストと比較してより短い推定起動時間でコンピューティングインスタンスの配置を実現することができる一群の物理ホスト中の物理ホストを選択しても良い。あるいは、一群の物理ホスト中の他の物理ホストと比較してより少ない数の同時起動中のコンピューティングインスタンスを含む物理ホストを選択しても良い。一例において、コンピューティングインスタンスを実行するために選択された物理ホストを検証して、所定の閾値を超える複数のコンピューティングインスタンスを同時に実行していることがないようにしても良い。
別の構成において、領域またはゾーンを、当該領域またはゾーン内のコンピューティングインスタンスの推定起動時間に一部基づき、コンピューティングインスタンスを配置するために選択しても良い。一例において、複数の配置要因を用いてコンピューティングインスタンスの配置を決定するときに、コンピューティングインスタンスの推定起動時間に加重値を割り当てても良く、推定起動時間に割り当てられた加重値に一部基づき、コンピューティングインスタンスを配置するための物理ホストを選択しても良い。加えて、コンピューティングインスタンスと関連したアタッチメントを起動するための推定時間を特定しても良く、一群の物理ホスト中の他の物理ホストと比較して、より短い推定接続時間でコンピューティングインスタンスの配置を実現することができる物理ホストを選択しても良い。
起動時間の予測を利用してコンピューティングサービス環境内でマシンイメージのキャッシングを構成する技術を説明する。マシンイメージは、コンピューティングサービス環境内でコンピューティングインスタンスを起動するための情報を提供しても良い(すなわち、コンピューティングインスタンスは、マシンイメージから起動されても良い)。例えば、マシンイメージは、コンピューティングインスタンスの起動に使用されるデータ記憶装置のタイプ、起動許可などを示しても良い。マシンイメージを、コンピューティングサービス環境内の、サーバコンピュータとしても知られている物理ホストにキャッシュし、または記憶させて、コンピューティングインスタンスを起動するための起動時間を短縮するようにしても良い。換言すれば、関連するコンピューティングインスタンスを起動している物理ホストに対して局所的なマシンイメージをキャッシュすることにより、ネットワークを介してデータ記憶装置からマシンイメージを読み出す場合と比較して相対的により速いコンピューティングインスタンスの起動時間が提供され得る。用語「launch time(起動時間)」は、一般に、コンピューティングインスタンスの起動を求める要求を受信してから、コンピューティングインスタンスを起動するために選択された物理ホスト上にコンピューティングインスタンスと関連したマシンイメージをブートするまでの時間を意味する。
1つの構成において、コンピューティングサービス環境の予想トラフィックパターンを識別しても良い。予想トラフィックパターンは、定められた期間(かつ、場合によっては定められた地域)においてコンピューティングサービス環境内で起動される可能性のある特定のコンピューティングインスタンスを示しても良い。例えば、予想トラフィックパターンは、コンピューティングインスタンスAが火曜日の午前8時30分に起動される可能性のあることを示し得る。一例において、予想トラフィックパターンは、コンピューティングサービス環境の過去のトラフィックパターンに関する経験則を用いて識別されても良い。別の例において、コンピューティングサービス環境の履歴トラフィック情報を使用する機械学習モデルを用いて予想トラフィックパターンを識別することにより、コンピューティングサービス環境の予想トラフィックパターンを予測しても良い。
コンピューティングインスタンスの予想トラフィックパターン(例えば、定められた期間中に起動されると予想されるコンピューティングインスタンスの特徴)を、起動時間予測モデルに提供しても良い。起動時間予測モデルは、コンピューティングインスタンスと関連したマシンイメージをコンピューティングサービス環境内の既定の領域で優先的ににキャッシュすることにより、コンピューティングインスタンスの推定起動時間が短縮され得るかどうかを判定しても良い。換言すれば、起動時間予測モデルは、マシンイメージを特定の領域でキャッシュすることにより、マシンイメージをキャッシュしないか、または推定起動時間を向上させない他の領域でマシンイメージをキャッシュする場合と比較して、推定起動時間が短縮され得るかどうかを判定しても良い。既定の領域は、コンピューティングサービス環境内の特定の物理ホスト、複数群の物理ホストまたは局所的な記憶領域(例えば、局所的なネットワーク接続ストレージ)を含んでも良い。一例として、起動時間予測モデルは、履歴コンピューティングインスタンスキャッシュ情報を含む、以前に起動された複数のコンピューティングインスタンスの履歴起動時間情報を使用して、コンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスの推定起動時間を決定する回帰モデルであって良い。
非限定的な例として、コンピューティングインスタンスAは、予想トラフィックパターンに従ってコンピューティングサービス環境内で起動される可能性があり得る。物理ホストX及び物理ホストYは、コンピューティングインスタンスAと関連したマシンイメージをキャッシュするために利用可能であるものとして識別されても良い。起動時間予測モデルは、物理ホストXでマシンイメージをキャッシュすることによってコンピューティングインスタンスAの予測起動時間が60秒になり得ると判定する場合がある。加えて、起動時間予測モデルは、物理ホストYでマシンイメージをキャッシュすることによってコンピューティングインスタンスAの予測起動時間が30秒になり得ると判定する場合がある。コンピューティングインスタンスAが顧客によって将来要求される可能性があり、かつコンピューティングイメージを物理ホストYでキャッシュしたときにマシンイメージが最も速く起動される可能性があると予想して、マシンイメージを物理ホストYにキャッシュしても良い。
従って、コンピューティングインスタンスと関連したマシンイメージを物理ホストでキャッシュしたときに短縮されたコンピューティングインスタンスの起動時間を提供すると予測される物理ホストを、起動時間予測モデルを用いて決定したように、マシンイメージをキャッシュするために選択しても良い。マシンイメージをキャッシュするために選択された物理ホストをキャッシュレイアウトに含めても良い。キャッシュレイアウトに含まれる物理ホストは、利用可能であっても良く、かつ/またはマシンイメージをキャッシュすることが可能であって良い。一例において、キャッシュレイアウトは、マシンイメージをキャッシュするのに利用可能な単一の物理ホストを識別しても良い。あるいは、キャッシュレイアウトは、マシンイメージをキャッシュするのに利用可能な一群の物理ホストを識別しても良い。キャッシュレイアウトに含まれる物理ホストは、コンピューティングインスタンスを実行するのに使用される利用可能なコンピューティングスロット(例えば、コンピューティングリソース)を備えても良い。加えて、利用可能なコンピューティングスロットは、あるタイプまたはサイズのマシンイメージに対応しても良い。
図15は、コンピューティングサービス環境1500内でコンピューティングインスタンスの起動時間を短縮するためにマシンイメージをキャッシュすることを示す図である。コンピューティングインスタンスを起動するための予想トラフィックパターン1510を、コンピューティングサービス環境1500について識別しても良い。予想トラフィックパターン1510は、定められた期間(かつ、場合によっては定められた地域)においてコンピューティングサービス環境1500内で起動される可能性のあるコンピューティングインスタンスを示しても良い。コンピューティングインスタンスは、マシンイメージ1512と関連付けられても良い。一例において、コンピューティングインスタンス及び/またはマシンイメージ1512の特徴を起動時間予測モデル1530に提供しても良い。この特徴は、マシンイメージ1512をキャッシュするかどうか、コンピューティングインスタンスのサイズ、マシンイメージがキャッシュされ得る場所などを含んでも良い。起動時間予測モデル130は、コンピューティングインスタンス及び/またはマシンイメージ1512の特徴に基づき、コンピューティングサービス環境1500内の既定の領域でマシンイメージ1512をキャッシュすることによってコンピューティングインスタンスの起動時間が短縮され得ると判定しても良い。既定の領域は、ある物理ホスト、または、サーバラック上の、もしくはサーバを備えた建物内のネットワーク接続ストレージ(network attached storage :NAS)などの、高速ネットワーク接続を介して接続された局所的な記憶領域を含んでも良い。
キャッシュレイアウトモジュール1540は、起動時間予測モデル1530を使用して、コンピューティングサービス環境1500内にマシンイメージ1512をキャッシュするためのキャッシュレイアウトを決定しても良い。キャッシュレイアウトは、利用可能であり、かつ/またはマシンイメージ1512をキャッシュすることができるキャッシングスロットを備えた、コンピューティングサービス環境1500内の1つの物理ホスト(または複数の物理ホスト)を含んでも良い。加えて、キャッシュレイアウトに使用するために選択された物理ホストは、コンピューティングインスタンスと関連したマシンイメージ1512を物理ホストでキャッシュしたときに、コンピューティングインスタンスを起動するための短縮された起動時間を提供し得る。
非限定的な例として、コンピューティングサービス環境1500は、複数の物理ホスト1550、1560及び1570を含んでも良い。キャッシュレイアウトモジュール1540は、起動時間予測モデル1530を使用して、物理ホスト1550でマシンイメージ1512をキャッシュすることによってコンピューティングインスタンスの推定起動時間が1580秒になり得ると判定する場合がある。加えて、キャッシュレイアウトモジュール1540は、物理ホスト1560で、または物理ホスト1570でマシンイメージ1512をキャッシュすることにより、コンピューティングインスタンスの推定起動時間がそれぞれ165秒及び190秒になり得ると判定する場合がある。従って、キャッシュレイアウトモジュール1540は、マシンイメージ1512をキャッシュするために物理ホスト1560を選択する(すなわち、キャッシュレイアウトは物理ホスト1560を含む)ことにより、物理ホスト1550または物理ホスト1570でマシンイメージ1512をキャッシュする場合と比較してコンピューティングインスタンスを起動するための起動時間を短縮させるようにしても良い。
図16は、本技術の一例に係る例示的なコンピューティングサービス環境1600の構成要素を示す図である。コンピューティングサービス環境1600は、ネットワーク1650を介して複数のクライアント装置1660と通信するサーバコンピュータ1610を含んでも良く、サーバコンピュータは、サービスプロバイダ環境1600の制御プレーンの一部であって良い。サーバコンピュータ1610は、データ記憶装置1630、及びマシンイメージのキャッシュ配置を決定するのに使用される複数のモジュールを含んでも良い。加えて、コンピューティングサービス環境1600は、複数のコンピューティングインスタンスを実行する複数のサーバコンピュータ240a〜bを含んでも良い。
サーバコンピュータ1640a〜bは、コンピューティングインスタンスを実行するのに使用され得る利用可能なコンピューティングスロット1642a〜b(例えば、アイドル状態のコンピューティングリソース)を備えても良い。利用可能なコンピューティングスロット1642a〜bは、利用可能なコンピューティングスロット1642a〜bをその後利用してコンピューティングインスタンスを実行し得る顧客に割り当てられても良い。加えて、サーバコンピュータ1640a〜bは、利用可能なキャッシングスロット1644a〜bを備えても良い。これらのスロットは、実行すべきコンピューティングインスタンスと関連したマシンイメージをキャッシュするのに使用され得る。コンピューティングインスタンスの例は、オンデマンドコンピューティングインスタンス、リザーブドコンピューティングインスタンス及び割り込み可能なコンピューティングインスタンスを含んでも良い。オンデマンドコンピューティングインスタンスは、要求時に顧客が購入し、実行し得るコンピューティングインスタンスであって良い。リザーブドコンピューティングインスタンスは、コンピューティングインスタンスの予約であって良い。顧客は、自身がコンピューティングインスタンスを要求するときに、当該コンピューティングインスタンスが利用可能となる定められた期間だけそのコンピューティングインスタンスを購入し得る。割り込み可能なコンピューティングインスタンスは、割り込み可能なコンピューティングインスタンスに支払われている価格が現在の入札価格を下回らない限り、別のコンピューティングインスタンスのタイプによって使用されていないコンピューティングスロット1642a〜bにおいて実行され得るコンピューティングインスタンスであって良い。
データ記憶装置1630に記憶されるデータは、履歴データに基づいている予想トラフィックパターン1632を含んでも良い。予想トラフィックパターン1632は、定められた期間中にコンピューティングサービス環境1600内で起動されると予想されるコンピューティングインスタンスを識別しても良い。例えば、予想トラフィックパターン1632は、コンピューティングインスタンスZが土曜日の午後7時に起動される可能性があることを示しても良い。一例において、予想トラフィックパターン1632は、コンピューティングサービス環境1600の履歴トラフィック情報に基づいて決定されても良い。例えば、予想トラフィックパターン1632は、コンピューティングインスタンスZが土曜日の午後7時に起動される可能性があることを示し得る。というのも、コンピューティングインスタンスZは、過去2ヵ月間で同様の時刻に起動されていたためである。1つの構成において、予想トラフィックパターン1632は、コンピューティングサービス環境1600の過去のトラフィックパターンに関する経験則を用いて識別されても良い。更に別の構成において、機械学習モデルは、コンピューティングサービス環境1600の履歴トラフィックパターンを用いて予想トラフィックパターン1632を決定するように訓練されても良い。
データ記憶装置1630に記憶されるデータは、コンピューティングサービス環境1600内で起動されるコンピューティングインスタンスのキャッシュレイアウト1634を含んでも良い。キャッシュレイアウト1634は、マシンイメージをキャッシュするために選択されたコンピューティングサービス環境1600内の物理ホストを識別しても良い。これは、当該物理ホストが、利用可能であり、かつ/またはコンピューティングインスタンスと関連したマシンイメージをキャッシュすることが可能であるためである。キャッシュレイアウト1634は、マシンイメージをキャッシュするのに利用可能な単一の物理ホスト、またはマシンイメージをキャッシュするのに利用可能な一群の物理ホストを識別しても良い。キャッシュレイアウト1634に含まれる物理ホストは、定められたタイプまたはサイズのマシンイメージに対応する利用可能なコンピューティングスロット(例えば、コンピューティングインスタンスを実行するのに使用されるコンピューティングリソース)を備えても良い。
一例において、キャッシュレイアウト1634は、特定の領域またはゾーン内の物理ホストを識別してマシンイメージをキャッシュできるようにしても良い。加えて、キャッシュレイアウト1634は、コンピューティングサービス環境1600の変化に応じて修正され、または更新されても良い。例えば、マシンイメージをキャッシュするためにキャッシュレイアウト1634において以前に識別された物理ホストが過負荷状態または限度一杯となる(例えば、起動時間が減少する)ときに、マシンイメージをキャッシュする他の物理ホストを含むようにキャッシュレイアウト1634を更新し、それによってコンピューティングインスタンスの起動時間を短縮しても良い。従って、キャッシュレイアウト1634は周期的に更新されても良い。
サーバコンピュータ1610は、予想トラフィックパターン識別モジュール1622、推定起動時間予測モジュール1624、キャッシュレイアウトモジュール1626、キャッシュ設定モジュール1628、及び本明細書に詳述されていない他のアプリケーション、サービス、プロセス、システム、エンジンまたは機能を含んでも良い。予想トラフィックパターン識別モジュール1622は、コンピューティングサービス環境1600の予想トラフィックパターンを識別するように構成されても良い。予想トラフィックパターンは、定められた期間中にコンピューティングサービス環境内で起動される可能性があるコンピューティングインスタンスと関連したマシンイメージを示しても良い。予想トラフィックパターン識別モジュール1622は、コンピューティングサービス環境1600の履歴トラフィック情報を用いて予想トラフィックパターンを予測する機械学習モデルを用いて予想トラフィックパターンを識別しても良い。一例において、予想トラフィックパターン識別モジュール1622は、ユーザーの経験則を使用して、コンピューティングサービス環境1600の予想トラフィックパターンを識別しても良い。
推定起動時間予測モジュール1624は、コンピューティングサービス環境1600内の既定の領域でマシンイメージをキャッシュすることにより、マシンイメージをキャッシュしない場合と比較してコンピューティングインスタンスの起動時間が短縮され得ると判定しても良い。既定の領域は、特定の物理ホスト、一群の物理ホスト、またはコンピューティングサービス環境1600内の物理ホストに関するローカルストレージ構成要素を含んでも良い。一例において、推定起動時間予測モジュール1624は、起動時間予測モデルを使用して、既定の領域でマシンイメージをキャッシュすべきか否かを判定しても良い。換言すれば、起動時間予測モデルは、コンピューティングインスタンスと関連したマシンイメージが特定の物理ホストでキャッシュされるときに、コンピューティングインスタンスを起動するための推定起動時間を提供しても良い。
キャッシュレイアウトモジュール1626は、マシンイメージをコンピューティングサービス環境1600内にキャッシュすることを可能とすべくキャッシュレイアウトを決定するように構成されても良い。キャッシュレイアウトは、マシンイメージをキャッシュするのに利用可能な既定の領域の物理ホストを識別することにより、そのマシンイメージと関連したコンピューティングインスタンスの起動時間を短縮するようにしても良い。キャッシュレイアウトに示された物理ホストは、マシンイメージをキャッシュするのに十分なリソース及び能力を備え得る。一例において、キャッシュレイアウトモジュール1626は、キャッシュレイアウトに含めるべき物理ホストを起動時間予測モデルを用いて選択しても良い。換言すれば、キャッシュレイアウト内の物理ホストは、当該物理ホストでマシンイメージがキャッシュされたときに、短縮されたコンピューティングインスタンスの起動時間を提供する可能性があるものとして起動時間予測によって識別されていても良い。加えて、キャッシュレイアウトモジュール1626は、キャッシュレイアウトに含めるべき物理ホストを選択するときに、当該物理ホストの各種特性(例えば、ハードウェアタイプ、アドレス指定)を識別しても良い。別の例として、キャッシュレイアウトモジュール1626は、キャッシュレイアウトに物理ホストを含めるように選択するときに、遺伝的手法または粒子群最適化を使用しても良い。従って、キャッシュレイアウトモジュール1626は、遺伝的手法または粒子群最適化を使用することにより、物理ホストでマシンイメージがキャッシュされたときに短縮された起動時間を提供する物理ホストを選択しても良い。
キャッシュ設定モジュール1628は、キャッシュレイアウトに従ってコンピューティング環境1600内の少なくとも1つの物理ホストにマシンイメージを記憶するように構成されても良い。一例において、キャッシュ設定モジュール1628は、あるトポロジ層(例えば、特定の領域、ゾーン、サーバラック及び物理ホスト)と関連した物理ホストにマシンイメージを記憶しても良い。従って、特定のトポロジ層と関連している局所的なストレージが存在しても良い。例えば、キャッシングデバイス(例えば、NAS)を、領域、ゾーンまたはサーバラックのレベルで設けても良い。マシンイメージをプリエンプティブにキャッシュすることにより、コンピューティングインスタンスを起動するための起動時間を短縮しても良い。一例において、キャッシュ設定モジュール1628は、コンピューティングインスタンスの起動が予想され、かつ当該コンピューティングインスタンスが、定められた期間中キャッシュ領域に常駐し得るときに、定められた期間よりも前にマシンイメージをキャッシング領域に送信しても良い。定められた期間が終了したときに、キャッシュ設定モジュール1628は、キャッシュからマシンイメージを消去しても良い。非限定的な例として、特定のコンピューティングインスタンスが土曜日の午前8時から午前9時に起動されると予想されるときに、そのコンピューティングインスタンスと関連したマシンイメージを、土曜日の午前6時から午前10時の間に物理ホストでキャッシュし、その後、物理ホストから除去しても良い。
図17は、コンピューティングインスタンスの起動時間を短縮するためにコンピューティングサービス環境1700内にマシンイメージをキャッシュするシステム及び関連動作を示す図である。マシンイメージは、コンピューティングサービス環境内でコンピューティングインスタンスを起動するための情報を提供しても良い(すなわち、コンピューティングインスタンスは、マシンイメージから起動されても良い)。例えば、マシンイメージは、コンピューティングインスタンスの起動に使用されるデータ記憶装置のタイプ、起動許可などを示しても良い。コンピューティングサービス環境1700内の少なくとも1つの物理ホストにマシンイメージを記憶して、コンピューティングイメージの起動時間を短縮するようにしても良い。換言すれば、マシンイメージを局所的にキャッシュすることにより、離れたデータ記憶装置からネットワークを介してマシンイメージを読み込む場合と比較して相対的により速いコンピューティングインスタンスの起動時間を提供しても良い。
コンピューティングサービス環境1700の予想トラフィックパターン1710を識別しても良い。予想トラフィックパターン1710は、ある期間にて、かつ/またはある地理的領域においてコンピューティングインスタンスが起動されると予想されることを示しても良い。非限定的な例として、予想トラフィックパターン1710は、コンピューティングインスタンスが月曜日の午前8時に起動される可能性があることを示し得る。1つの構成において、予想トラフィックパターン1710は、経験則1712を用いて識別されても良い。経験則1712は、コンピューティングサービス環境1700の過去のトラフィックパターンに関するものであって良い。一例として、経験則1712を使用することにより、コンピューティングインスタンスが月曜日の午前8時に起動される可能性があることを、コンピューティングインスタンスが過去において同様の時刻に起動されていた場合に推測しても良い。別の構成において、予想トラフィックパターン1710は、機械学習モデル1714を用いて識別されても良い。機械学習モデル1714は、コンピューティングサービス環境400の履歴トラフィック情報を使用して、コンピューティングサービス環境1700の予想トラフィックパターン1710を予測しても良い。
一例において、ある期間中に起動されると予想されるコンピューティングインスタンスに関わるインスタンスの特徴を起動時間予測モデル1730に提供しても良い。インスタンスの特徴は、コンピューティングインスタンスによって使用されるマシンイメージ1722、及び/またはコンピューティングサービス環境1700内で起動されるコンピューティングインスタンスに関するものであって良い。例えば、インスタンスの特徴は、コンピューティングインスタンスのサイズ、コンピューティングインスタンスのアーキテクチャタイプ(例えば、32ビットアーキテクチャもしくは64ビットアーキテクチャ)、コンピューティングインスタンスの仮想化タイプ(例えば、準仮想化もしくはハードウェア仮想マシン)、及び/またはコンピューティングインスタンスによって使用されるデータ記憶装置のタイプを含んでも良い。
起動時間予測モデル1730は、インスタンスの特徴に基づき、コンピューティングサービス環境1700内の既定の領域でマシンイメージ1722をプリエンプティブにキャッシュすることによってコンピューティングインスタンスの起動時間が短縮され得るかどうかを判定しても良い。加えて、起動時間予測モデル1730は、特定の領域(例えば、特定の物理ホスト)でマシンイメージ1722をキャッシュすることにより、コンピューティングサービス環境1700内の別の領域でマシンイメージ1722をキャッシュする場合と比較して起動時間が短縮され得ると判定しても良い。既定の領域は、コンピューティングサービス環境1700内の特定の物理ホストまたは一群の物理ホストを含んでも良い。
起動時間予測モデル1730は、以前に起動された複数のコンピューティングインスタンスの履歴起動時間情報によって訓練される機械学習モデルであって良く、起動時間予測モデル1730は、コンピューティングサービス環境1700内で起動されると予想されるコンピューティングインスタンスの推定起動時間を決定するために使用されても良い。そのため、起動時間予測モデル1730は、マシンイメージがキャッシュされたときの以前の起動時間、コンピューティングインスタンスがキャッシュされなかったときの以前の起動時間、マシンイメージが特定の領域でキャッシュされたときの以前の起動時間などに関わる履歴起動時間情報を、起動されると予想されるコンピューティングインスタンスの推定起動時間を予測するための訓練の際に使用しても良い。一例において、起動時間予測モデル1730は、推定起動時間を予測するために使用される回帰モデルであって良い。
非限定的な例として、コンピューティングサービス環境は、物理ホスト1750、1760を含んでも良い。起動時間予測モデル1730は、物理ホスト1750、1760のいずれでマシンイメージ1722をキャッシュすべきかどうかを決定するのに役立つ情報を提供して、コンピューティングインスタンスの起動時間を短縮するようにしても良い。起動時間予測モデル1730は、物理ホスト1750でマシンイメージ1722をキャッシュすることによってコンピューティングインスタンスの推定起動時間が30秒になり得ると判定する場合がある。加えて、起動時間予測モデル1730は、物理ホスト1760でマシンイメージ1722をキャッシュすることによって推定起動時間が25秒になり得ると判定する場合がある。起動時間予測モデル1730は、推定起動時間を予測するときに、マシンイメージ1722がキャッシュされるかどうかに加えて、様々な種類の情報を使用しても良い。このような情報としては、コンピューティングインスタンスのサイズ、物理ホストでの同時起動数、物理ホストの占有率などがある。
キャッシュレイアウトモジュール1740は、起動時間予測モデル1730からの予測情報を使用して、コンピューティングサービス環境1700内にマシンイメージ1722をキャッシュするためのキャッシュレイアウトを決定しても良い。マシンイメージ1722をキャッシュしてキャッシュレイアウトは、コンピューティングインスタンスの起動時間を短縮するために選択された少なくとも1つの物理ホストを含んでも良い。キャッシュレイアウトを決定するために、キャッシュレイアウトモジュール1740は、コンピューティングサービス環境1700内の既定の領域にある少なくとも1つの物理ホストを識別しても良い。この物理ホストは、利用可能であり、かつ/またはマシンイメージ1722をキャッシュすることが可能である。キャッシュレイアウトモジュール1740は、起動時間予測モデル1730を介して、利用可能な各物理ホスト上でマシンイメージ1722を起動するための推定起動時間を比較することにより、マシンイメージ1722を各物理ホストのそれぞれでキャッシュすべきかどうかを判定しても良い。キャッシュレイアウトモジュール1740は、物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を比較し、短縮されたコンピューティングインスタンスの起動時間を提供することができる物理ホストを選択しても良い。換言すれば、短縮された起動時間を提供することができる物理ホストをキャッシュレイアウトに含めても良い。一例において、同じマシンイメージ1722の数十または数百のコピーを一群の物理ホストにキャッシュさせて、短縮された起動時間を提供するようにしても良い。
1つの構成において、キャッシュレイアウトモジュール1740は、遺伝的手法または粒子群最適化を使用することにより、マシンイメージ1722をキャッシュして短縮されたコンピューティングインスタンスの起動時間を提供することが可能なコンピューティングサービス環境1700内の物理ホストまたは一群の物理ホストを識別しても良い。マシンイメージ1722は、コンピューティングサービス環境1700内でコンピューティングインスタンスを起動するときに、選択された物理ホストに記憶されても良く、その物理ホストからロードされても良い。
非限定的な例として、キャッシュレイアウトモジュール1740は、マシンイメージ1722をキャッシュするのに物理ホスト1750、1760が利用可能であると判定しても良い。キャッシュレイアウトモジュール1740は、起動時間予測モデル1730を介して、物理ホスト1750、1760のいずれかでマシンイメージ422をキャッシュすることによって推定起動時間がそれぞれ30秒、25秒または40秒になり得ると判定する場合がある。従って、キャッシュレイアウトモジュール1740は、物理ホスト1760を選択してキャッシュレイアウトに含めても良い。これは、物理ホスト1760でマシンイメージ1722をキャッシュすることにより、物理ホスト1750でマシンイメージ1722をキャッシュする場合と比較して起動時間がより短くなり得るためである。あるいは、キャッシュレイアウトモジュール1740は、コンピューティングサービス環境400に含まれるネットワーク接続ストレージ(NAS)デバイス1770でマシンイメージ1722をキャッシュして起動時間を短くするように決定しても良い。
一例において、キャッシュレイアウトモジュール1740は、そのサイズのマシンイメージ1722に対応することができる物理ホストの利用可能なキャッシングスロットにマシンイメージ1722を記憶しても良い。例えば、物理ホスト1750は、第1のタイプである利用可能なキャッシングスロットを含んでも良い。物理ホスト1760は、第2のタイプ及び第3のタイプである利用可能なキャッシュスロットを含んでも良い。マシンイメージ1722は、複数のサイズ及びタイプで構成されても良い。キャッシュレイアウトモジュール1740は、物理ホストにおいて利用可能な当該タイプのキャッシングスロットが当該タイプのマシンイメージ1722を記憶できることを検証しても良い。
別の例において、マシンイメージ1722は、様々なトポロジ層の各領域と関連した物理ホストまたは物理デバイスに記憶されても良い。トポロジ層は、特定の領域、ゾーン、データセンター、サーバラック、物理ホスト、キャッシングスロットなどを含んでも良い。一例として、キャッシュレイアウトは、NAS1770などの、マシンイメージ1722が記憶される特定のゾーン、またはそのようなゾーン内の特定のデータセンターを含んでも良い。トポロジ層は、キャッシュを提供しても良い。このキャッシュにより、短縮されたコンピューティングインスタンスの起動時間が提供され得る。
1つの構成において、コンピューティングインスタンスの起動を求める要求は、コンピューティングサービス環境1700において受信されても良い。例えば、この要求は、コンピューティングサービス環境1700のコンピューティングサービスを所望する顧客から受信されても良い。コンピューティングインスタンスと関連したマシンイメージ1722を、休止状態にあるものとして認識しても良い。換言すれば、マシンイメージ1722のドメイン作成プロセスを完了しても良いが、そのドメインは、コンピューティングインスタンスを起動するために開始されていない。コンピューティングインスタンスは、マシンイメージ1722をロードした後、休止状態から実行状態にマシンイメージ1722を切り替えることによって起動されても良く、それによってコンピューティングインスタンスの起動時間を最小にする。一例において、最も普及しているマシンイメージまたは直近に使用されたマシンイメージを、コンピューティングサービス環境1700において休止状態で記憶しても良い。従って、これらのマシンイメージの起動は、最小の起動時間で実行され得る。
図18は、マシンイメージ1814と関連したコンピューティングインスタンスを起動するための所望の起動時間1812を達成すべくコンピューティングサービス環境1800内にマシンイメージ1814をキャッシュするシステム及び関連動作を示す図である。一例において、顧客は、コンピューティングインスタンスを起動するための所望の起動時間1812を指定する起動要求1810を提供しても良い。例えば、顧客は、コンピューティングインスタンスを45秒未満で起動して欲しいと要求しても良い。
起動要求1810をキャッシュレイアウトモジュール1840に提供しても良い。キャッシュレイアウトモジュール1840は、コンピューティングインスタンスの起動時間が顧客の要求(例えば、45秒)を実質的に満たすように、マシンイメージ1814をキャッシュするためのキャッシュレイアウトを決定しても良い。換言すれば、キャッシュレイアウトモジュール1840は、所望の起動時間1812を達成できるようにマシンイメージ1814をキャッシュすることが可能なコンピューティングサービス環境1800内の物理ホストを識別しても良い。
一例において、キャッシュレイアウトモジュール1840は、起動時間予測モデル530を使用して、どの物理ホストがマシンイメージ1814をキャッシュすべきかを選択しても良い。キャッシュレイアウトモジュール1840は、物理ホスト1850、1860または1870でマシンイメージ1814をキャッシュすべきかどうかを決定しても良い。キャッシュレイアウトモジュール1840は、マシンイメージ1814が物理ホスト1850でキャッシュされるときに、コンピューティングインスタンスを起動するための推定起動時間を予測しても良い。キャッシュレイアウトモジュール1840は、マシンイメージ1814が物理ホスト1860でキャッシュされるか、または物理ホスト1870でキャッシュされるときに、推定起動時間を同様に予測しても良い。キャッシュレイアウトモジュール1840は、起動時間予測モデル1830からの情報に基づき、顧客によって指定された所望の起動時間1812に対応する起動時間を提供することができる物理ホストでマシンイメージ1814をキャッシュするように決定しても良い。非限定的な例として、キャッシュレイアウトモジュール1840は、物理ホスト1850でマシンイメージ1814をキャッシュすることが、コンピューティングインスタンスを起動するための所望の起動時間1812(例えば、45秒)に対応し得ると判定する場合がある。
別の例において、コンピューティングインスタンスを起動するための所望の起動時間1812は、顧客から受信されても良く、それに応答して、キャッシュレイアウトモジュール1840は、起動されるコンピューティングインスタンスと関連したマシンイメージをキャッシュした物理ホストを識別しても良い。キャッシュレイアウトモジュール1840は、起動時間予測モデル1830からの情報を使用して、マシンイメージをキャッシュした物理ホスト上でコンピューティングインスタンスを起動することが所望の起動時間1812に適合するかどうかを判定しても良く、予測起動時間が所望の起動時間1812に適合する場合、コンピューティングインスタンスは、物理ホスト上で起動されても良い。
図19は、サービスレベルに関する合意(SLA)に従ってコンピューティングサービス環境1900にマシンイメージをキャッシュする例示的なシステム及び関連動作を示す図である。コンピューティングインスタンスの実起動時間1910は、コンピューティングサービス環境1900内で起動されるコンピューティングインスタンスについて決定されても良い。コンピューティングインスタンスの実起動時間は、コンピューティングインスタンスを正常に起動した後に決定されても良い。コンピューティングインスタンスの実起動時間をSLA比較モジュール1920に提供し良い。SLA比較モジュール1920は、コンピューティングインスタンスの実起動時間をコンピューティングサービス環境1900のSLAと比較しても良い。一例において、SLA比較モジュール1920は、コンピューティングインスタンスの実起動時間がコンピューティングサービス環境1900のSLAに従っていると判定する場合がある。
あるいは、SLA比較モジュール1920は、コンピューティングインスタンスの実起動時間をコンピューティングサービス環境1900のSLAと比較し、コンピューティングインスタンスの実起動時間がコンピューティングサービス環境1900のSLAに従っていないと判定する場合がある。例えば、SLAは、コンピューティングインスタンスの起動時間を10分未満とすべきことを指定しても良い。しかしながら、SLA比較モジュールは、実起動時間が10分より長かったと判定する場合がある。実起動時間がSLAに従っていないとき、SLA比較モジュール1920はキャッシュレイアウトモジュール1940に通知しても良い。キャッシュレイアウトモジュール1940は、コンピューティングインスタンスの起動時間がSLAに沿う(例えば、起動時間を短縮する)ように、コンピューティングインスタンスと関連したマシンイメージ1912をキャッシュするためのキャッシュレイアウトを決定しても良い。一例において、キャッシュレイアウトモジュール1940は、コンピューティングサービス環境1900内の別の物理ホストにマシンイメージ1912を記憶することにより、既存のキャッシュレイアウトを修正しても良い。図19に示した例において、キャッシュレイアウトモジュール1940は、物理ホスト1950にではなく、物理ホスト1950及び物理ホスト1970にマシンイメージ1912を記憶することにより、起動時間を短縮し、かつコンピューティングサービス環境1900のSLAに適合するようにしても良い。
図20は、機械学習予測モデル2050を作成して、コンピューティングサービス環境内で起動されるコンピューティングインスタンスの起動時間を予測することを示す例示的なブロック図2000である。起動時間予測モデル2050は、実起動時間予測データ2010を用いて作成される機械学習モデルであって良い。実起動時間入力データ2010は、コンピューティングサービス環境内で以前に起動された複数のコンピューティングインスタンスに関する情報(例えば、起動メトリック)を含んでも良い。そのため、実起動時間入力データ2010は、コンピューティングサービス環境内で以前に起動されたコンピューティングインスタンスに関する履歴情報を含んでも良い。加えて、実起動時間入力データ2010は、コンピューティングサービス環境内の複数の物理ホストの履歴情報を含んでも良い。後述するように、実起動時間入力データ2010を変換して、起動時間予測モデル2050を訓練するのに使用しても良い。
別の非限定的な例として、実起動時間入力データ2010は、コンピューティングインスタンスAが起動に60秒かかったことを示し得るが、コンピューティングインスタンスAは、サイズが比較的大きく、第1のタイプのデータ記憶装置を使用し、32ビットアーキテクチャを使用し、5つの他のコンピューティングインスタンスを同時に起動している物理ホスト上で起動された。非限定的な例として、実起動時間入力データ2010は、コンピューティングインスタンスBが起動に15秒かかったことを示し得るが、コンピューティングインスタンスBは、サイズが比較的小さく、第2のタイプのデータ記憶装置を使用し、64ビットアーキテクチャを使用し、他のコンピューティングインスタンスを同時に起動していない物理ホスト上で起動された。
実起動時間入力データ2010を特徴選択・正規化モジュール2020に提供しても良い。特徴選択・正規化モジュール2020は、実起動時間入力データ2010をモデルの特徴に変換しても良い。換言すれば、モデルの特徴は、以前に起動されたコンピューティングインスタンスの特性、及びコンピューティングインスタンスを以前に起動した物理ホストの特性に関するものであって良い。モデルの特徴は、インスタンスの特徴と物理ホストの特徴に分類されても良い。
インスタンスの特徴は、コンピューティングインスタンスのサイズ、コンピューティングインスタンスによって使用されるマシンイメージ(例えば、マシンイメージまたはカーネルイメージ)、コンピューティングインスタンスを起動するときにマシンイメージが物理ホストにキャッシュされ、またはキャッシュされないかどうか、コンピューティングインスタンスのアーキテクチャタイプ(例えば、32ビットアーキテクチャまたは64ビットアーキテクチャ)、コンピューティングインスタンスの仮想化タイプ(例えば、準仮想化またはハードウェア仮想マシン)、及びコンピューティングインスタンスによって使用されるデータ記憶装置のタイプなどを含み得るが、これらに限定されることはない。インスタンスの特徴は、コンピューティングインスタンスの起動に使用されるオペレーティングシステム(OS)の種類及びネットワークタイプ(例えば、バーチャルプライベートネットワーク)などの、ユーザーによって調整される特徴を含んでも良い。
物理ホストの特徴は、物理ホストがホストすることができるコンピューティングインスタンスの最大数、物理ホストと関連したハードウェアタイプ、物理ホストと関連したハードウェアベンダ、コンピューティングインスタンスが起動されるときの物理ホストの占有率、及び物理ホストが位置するゾーンを含み得るが、これらに限定されることはない。物理ホストの特徴は、コンピューティングインスタンスを起動する物理ホスト(すなわち、対象の物理ホスト)上でペンディング中のコンピューティングインスタンス及び/または実行中のコンピューティングインスタンスの平均数、最小数及び最大数を含んでも良い。加えて、物理ホストの特徴は、コンピューティングインスタンスを起動する物理ホスト(すなわち、対象の物理ホスト)上で現在ペンディング状態及び/または実行状態にあるコンピューティングインスタンスの数を含んでも良い。
特徴選択・正規化モジュール2020は、モデルの特徴を正規化して(すなわち、種々の尺度で測定された値を抽象的な共通の尺度に調整して)、起動時間予測訓練データ2030を作成するようにしても良い。起動時間予測訓練データ2030は、起動時間予測入力データ2010において識別された複数のコンピューティングインスタンスの全体的な特徴を表しても良い。起動時間予測訓練データ2030を機械学習選択モジュール2040に提供しても良い。機械学習選択モジュール2040は、起動時間予測訓練データ2030を使用して、各種の機械学習モデル2042を訓練しても良い。例えば、回帰モデルを訓練しても良い。回帰モデル2042は、サポートベクターマシン、確率的勾配降下法、適応ブースト、extra trees及びランダムフォレストを含み得るが、これらに限定されることはない。各種の回帰モデル2042は、様々な成功度を有する起動時間予測訓練データ2030に対応し得る。一例において、ランダムフォレストの独立変数は、起動時間予測訓練データ2030に関する比較的高い正解率を提供し得る。従って、機械学習選択モジュール2040は、コンピューティングインスタンスの起動時間を推定するときに、ランダムフォレストの独立変数を使用しても良い。
起動時間予測モデル2050は、コンピューティングインスタンスの起動を求める要求を受信しても良く、当該コンピューティングインスタンスと関連したインスタンスの特徴及び物理ホストの特徴に基づき、起動時間予測モデル2050は、そのコンピューティングインスタンスの起動時間を予測しても良い。一例において、起動時間予測モデル2050は、同じ物理ホスト上でのコンピューティングインスタンスの同時起動数、コンピューティングインスタンスによって記憶され、使用されるデータの種類、コンピューティングインスタンスによって使用されるアーキテクチャタイプ、及びコンピューティングインスタンスと関連したマシンイメージが、他のモデルの特徴と比較してコンピューティングインスタンスの起動時間により大きな影響を及ぼし得ると判定しても良い。
いくつかの場合には、コンピューティングインスタンスの予測起動時間は、コンピューティングインスタンスの実起動時間と異なっていても良い。コンピューティングインスタンスと関連したインスタンスの特徴及び物理ホストの特徴、ならびにコンピューティングインスタンスを起動するための実起動時間を使用して起動時間予測モデル2050を更に訓練することにより、将来の起動時間の予測を向上させるようにしても良い。
図21は、コンピューティングインスタンスの起動時間を短縮する例示的な方法のフロー図である。ブロック2110のように、コンピューティングサービス環境の予想トラフィックパターンを識別しても良い。予想トラフィックパターンは、定められた期間中にコンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスと関連したマシンイメージを示しても良い。一例では、経験則を使用して、コンピューティングサービス環境の予想トラフィックパターンを識別しても良い。経験則は、コンピューティングサービス環境の履歴トラフィックパターンに関するものであって良い。
ブロック2120のように、コンピューティングサービス環境内の既定の領域にマシンイメージをキャッシュすることを決定することにより、マシンイメージをキャッシュしない場合と比較してコンピューティングインスタンスの起動時間を短縮するようにしても良い。換言すれば、コンピューティングインスタンスを起動している物理ホストに対して局所的なマシンイメージをキャッシュすることにより、データ記憶装置からネットワークを介してマシンイメージを読み込む場合と比較して相対的により速い起動時間が提供され得る。一例では、起動時間予測モデルを使用して、既定の領域でマシンイメージをキャッシュするように決定しても良い。
ブロック2130のように、コンピューティングサービス環境にマシンイメージをキャッシュすることを可能にするキャッシュレイアウトを決定しても良い。キャッシュレイアウトは、コンピューティングサービス環境内の既定の領域の物理ホストを識別しても良い。この物理ホストは、マシンイメージをキャッシュするのに利用可能である。キャッシュレイアウトは、マシンイメージをキャッシュするのに利用可能な物理ホスト、またはマシンイメージのコピーをそれぞれキャッシュするのに利用可能な一群の物理ホストを識別しても良い。
ブロック2140のように、マシンイメージは、キャッシュレイアウトに従ってコンピューティング環境内の少なくとも1つの物理ホストに記憶されても良い。物理ホストにマシンイメージを記憶することにより、コンピューティングインスタンスを起動するための起動時間を短縮しても良い。一例において、マシンイメージを複数の物理ホストに記憶して、同じマシンイメージに基づく複数のコンピューティングインスタンスの起動時間を短縮するようにしても良い。
一例において、コンピューティングインスタンスを起動するための所望の起動時間を受信しても良く、キャッシュレイアウトは、マシンイメージをキャッシュすることを可能とすることによってコンピューティングインスタンスを起動するための実起動時間が上記の所望の起動時間と実質的に同等となるように決定されても良い。更に別の例において、コンピューティングサービス環境にキャッシュされる各種のマシンイメージを識別しても良く、これら各種のマシンイメージをキャッシュすることができる物理ホストに1つ以上のキャッシングスロットを搭載するようにキャッシュレイアウトを決定しても良い。
図22は、コンピューティングインスタンスの起動時間を短縮する別の例示的な方法のフロー図である。ブロック2210のように、定められた期間中にコンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスを識別しても良い。一例では、経験則を使用して、コンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスを識別しても良い。経験則は、コンピューティングサービス環境の履歴トラフィックパターンに関するものであって良い。一例において、定められた期間中にコンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスは、コンピューティングサービス環境の予想トラフィックパターンを予測する機械学習モデルを用いて識別されても良い。
ブロック2220のように、コンピューティングサービス環境にマシンイメージをキャッシュするように決定することにより、マシンイメージをキャッシュしない場合と比較してコンピューティングインスタンスを起動するための起動時間を短縮するようにしても良い。一例では、起動時間予測モデルを使用して、マシンイメージをキャッシュするように決定しても良い。起動時間予測モデルは、コンピューティングインスタンスと関連したインスタンスの特徴及びコンピューティングサービス環境内の一群の物理ホストと関連した物理ホスト特徴に一部基づいてコンピューティングインスタンスの起動時間を予測する回帰モデルであって良い。
ブロック2230のように、コンピューティングインスタンスのマシンイメージをキャッシュするのに利用可能なコンピューティングサービス環境内の少なくとも1つの物理ホストは、起動時間予測モデルを用いて選択されても良い。加えて、物理ホストは、マシンイメージをキャッシュすることが可能であって良い(例えば、物理ホストは、マシンイメージをキャッシュするのに十分な能力を有する利用可能なストレージスロットを含む)。
ブロック2240のように、マシンイメージは、物理ホストに記憶されても良い。マシンイメージを物理ホストに記憶することにより、コンピューティングインスタンスを起動するための起動時間を短縮しても良い。一例において、マシンイメージは、選択されたトポロジ層に従ってコンピューティングサービス環境内の物理ホストまたは物理ストレージデバイスに記憶されても良い。別の例において、マシンイメージは、キャッシュレイアウトに従って記憶されても良い。キャッシュレイアウトは、マシンイメージをキャッシュしてコンピューティングインスタンス(複数可)の起動時間を短縮するのに利用可能なコンピューティングサービス環境内の複数の物理ホストを示しても良い。更に別の例において、コンピューティングインスタンスの起動時間がコンピューティングサービス環境のサービスレベルに関する合意(SLA)に従うように、マシンイメージを物理ホストに記憶しても良い。
1つの構成において、コンピューティングインスタンスの起動を求める要求を受信しても良い。コンピューティングサービス環境内の物理ホストでキャッシュされる、コンピューティングインスタンスと関連したマシンイメージを識別しても良い。マシンイメージは、コンピューティングサービスを提供するために物理ホストにロードされても良い。別の構成において、コンピューティングサービス環境にキャッシュされるマシンイメージのサイズを識別しても良い。当該サイズのマシンイメージをキャッシュすることができるスロットを備えた、コンピューティングサービス環境内の物理ホストを選択しても良い。コンピューティングサービス環境内の既定の領域でマシンイメージをキャッシュすることにより、そのマシンイメージと関連した起動時間を短縮しても良い。
一例において、コンピューティングインスタンスを起動するための所望の起動時間を特定しても良い。所望の起動時間は、コンピューティングサービス環境にアクセスしている顧客から受信されても良い。コンピューティングインスタンスと関連したマシンイメージを記憶するのに利用可能なコンピューティングサービス環境内の物理ホストを選択しても良い。物理ホストは、起動時間予測モデルを用いて、所望の起動時間に従ってコンピューティングインスタンスを起動することが可能であるものとして検証されても良い。マシンイメージは、コンピューティングインスタンスを起動するための実起動時間が所望の起動時間と実質的に同等となるように、コンピューティング環境の物理ホストに記憶されても良い。
別の例において、コンピューティングインスタンスの起動時間は、コンピューティングサービス環境のサービスレベルに関する合意(SLA)に従っていないと判定される場合がある。コンピューティングインスタンスと関連したマシンイメージを、コンピューティングサービス環境内の別の物理ホストに記憶することにより、コンピューティングインスタンスの起動時間を更に短縮してSLAに適合するようにしても良い。別の物理ホストにマシンイメージを記憶することにより、複数のコンピューティングインスタンスが同時に起動されるときの起動時間を短縮しても良い。加えて、別の物理ホストにマシンイメージを記憶することにより、相対的に最も短い起動時間を提供する物理ホストを選択してコンピューティングインスタンスを起動できるようにしても良い。更に別の例において、コンピューティングサービス環境内でコンピューティングインスタンスを起動することを求める要求を受信しても良い。コンピューティングインスタンスと関連したマシンイメージを、休止状態にあるものとして認識しても良い。コンピューティングインスタンスは、休止状態から実行状態にマシンイメージを切り替えることによってコンピューティングサービス環境内で起動されても良い。それにより、コンピューティングサービス環境内でコンピューティングインスタンスを起動するための起動時間が最小になる。本開示の実施形態は、以下の条項に照らして記載することができる。
1.非一時的マシン可読記憶媒体であって、前記非一時的マシン可読記憶媒体に具現化された命令を有し、プロセッサによって実行されると、前記命令は、
以前の複数のコンピューティングインスタンスの起動に関する起動特徴を表す訓練データを取得し、
前記訓練データを用いてランダムフォレスト回帰モデルを訓練し、
コンピューティングサービス環境内の物理ホスト上でコンピューティングインスタンスを起動するための予測起動時間を求める要求を受信し、
前記コンピューティングサービス環境内で前記コンピューティングインスタンスを起動することと関連した起動特徴であって、前記コンピューティングインスタンスの起動時間に影響を及ぼすと判定された前記起動特徴を識別し、
前記コンピューティングインスタンスを起動することと関連した前記起動特徴を、前記コンピューティングサービス環境内で前記コンピューティングインスタンスを起動するための予測起動時間を出力する機械学習回帰モデルに入力する、
前記非一時的マシン可読記憶媒体。
2.前記プロセッサによって実行されると、命令は、マシンイメージの起動特徴、物理ホストの起動特徴及び顧客構成の起動特徴を含む起動特徴から、コンピューティングインスタンスの起動時間に影響を及ぼすと判定された起動特徴を更に選択する、条項1に記載の非一時的マシン可読記憶媒体。
3.前記プロセッサによって実行されると、命令は、前記予測起動時間をSLA(service level agreement)起動時間と比較することによって前記SLA起動時間が満たされる可能性があるかどうかを更に判定する、条項1に記載の非一時的マシン可読記憶媒体。
4.コンピュータ実装方法であって、
実行可能命令を用いて構成された1つ以上のコンピュータシステムの制御下で、
コンピューティングサービス環境内の物理ホスト上でコンピューティングインスタンスを起動するための予測起動時間を求める要求を受信することと、
プロセッサを用いて、コンピューティングサービス環境内の物理ホスト上での前記コンピューティングインスタンスの起動に影響を及ぼすと判定されたコンピューティングインスタンスの起動特徴と関連したデータを取得することと、
前記プロセッサを用いて、前記コンピューティングサービス環境内でコンピューティングインスタンスを起動するための予測起動時間を出力する機械学習モデルに前記コンピューティングインスタンスの前記起動特徴を入力することと、
を含む前記方法。
5.起動特徴と関連した前記データを取得することは、マシンイメージの起動特徴、物理ホストの起動特徴及び顧客構成の起動特徴と関連したデータを取得することを更に含む、条項4に記載の方法。
6.前記機械学習モデルに前記起動特徴を入力する前に前記起動特徴を正規化することを更に含む、条項4に記載の方法。
7.前記起動特徴に対する前記機械学習モデルの適合度となる機械学習パラメータのパラメータ値探索を実行することを更に含む、条項4に記載の方法。
8.前記パラメータ値探索を実行することは、分散遺伝的アルゴリズムを用いて機械学習パラメータのパラメータ値探索を実行することを更に含む、条項7に記載の方法。
9.起動特徴と関連したデータを取得することは、
以前の複数のコンピューティングインスタンスの起動に関する起動特徴を表す有効訓練データを取得することと、
前記起動特徴と関連した前記有効訓練データから特徴を抽出することと、
前記有効訓練データからの前記特徴を用いて前記機械学習モデルを訓練することと、
を更に含む、条項4に記載の方法。
10.前記起動特徴を機械学習モデルに入力することは、ランダムフォレストモデル、extremely randomized treesモデル、AdaBoostモデル、確率的勾配降下モデルまたはサポートベクターマシンモデルの少なくとも1つから選択された機械学習モデルに前記起動特徴を入力することを更に含む、条項4に記載の方法。
11.前記起動特徴を機械学習モデルに入力することは、前記コンピューティングインスタンスの前記起動特徴を機械学習回帰モデルに入力することを更に含む、条項4に記載の方法。
12.前記コンピューティングインスタンスの起動を求める顧客からの起動要求を受信することと、
前記コンピューティングインスタンスのコンピューティングインスタンスタイプと関連したSLA起動時間を特定することと、
前記コンピューティングインスタンスの前記予測起動時間を前記SLA起動時間と比較することによって前記SLA起動時間が満たされる可能性があるかどうかを判定することと
を更に含む、請求項4に記載の方法。
13.前記予測起動時間が前記SLA起動時間より長いと判定されたときに、前記SLA起動時間を達成する可能性がないとコンピューティングサービスプロバイダに通知することを更に含む、条項12に記載の方法。
14.前記予測起動時間が前記SLA起動時間より長い場合にSLA違反特徴を作成することと、
機械学習分類モデルに入力された他の特徴に前記SLA違反特徴を含めることと、
を更に含む、条項12に記載の方法。
15.前記コンピューティングインスタンスのSLA起動時間を特定することと、
前記コンピューティングインスタンスの前記予測起動時間を前記SLA起動時間と比較することによって前記SLA起動時間が満たされる可能性があるかどうかを判定することと、
コンピューティングインスタンスが起動されるコンピューティングサービス環境の状態を分析して、前記SLA起動時間に違反する可能性があると判定されたときに前記SLA起動時間に対する違反を防ぐ可能性のある処置を実行し得るかどうかを判定することと、
を更に含む、請求項4に記載の方法。
16.実行される処置は、前記コンピューティングインスタンスをホストするのに利用可能な一群の物理ホストから物理ホストを除去することを更に含む、条項15に記載の方法。
17.実行される処置は、前記コンピューティングインスタンスをホストするのに利用可能な一群の物理ホストに少なくとも1つの物理ホストを加えることを更に含む、条項15に記載の方法。
18.プロセッサと、
メモリデバイスであって、前記プロセッサによって実行されると、前記システムに、
起動構成に含まれる起動特徴であって、コンピューティングサービス環境内のコンピューティングインスタンスの起動時間に影響を及ぼすと判定された前記起動特徴を識別し、
前記起動特徴に関するデータをデータソースから取得し、
前記コンピューティングサービス環境内でコンピューティングインスタンスを起動するための予測起動時間を出力する機械学習モデルに前記起動特徴を入力し、
前記予測起動時間をSLA起動時間と比較することによって前記SLA起動時間が満たされる可能性があるかどうかを判定すること、
を行わせる命令、を含む前記メモリデバイスと、
を備えるシステム。
19. 前記メモリデバイスは、前記プロセッサによって実行されると、前記起動特徴を機械学習回帰モデルに入力することを前記システムに行わせる命令、を含む、条項18に記載のシステム。
20.前記メモリデバイスは、前記プロセッサによって実行されると、
コンピューティングインスタンスを起動するのに使用されるマシンイメージの特徴、
前記コンピューティングインスタンスをホストすることができる物理ホストサーバの特徴、及び
起動されるときに前記コンピューティングインスタンスに接続されるコンピューティングインスタンスアタッチメントの特徴、
を取得することを前記システムに行わせる命令、を含む、条項18に記載のシステム。
21.具現化された命令を含む非一時的マシン可読記憶媒体であって、前記命令は、プロセッサによって実行されると、システムに、
コンピューティングサービス環境内でコンピューティングインスタンスを起動することを求める要求を受信し、
前記コンピューティングインスタンスと関連したインスタンスの特徴及び前記コンピューティングサービス環境内の一群の物理ホストと関連した物理ホストの特徴を機械学習モデルに提供し、
前記コンピューティングサービス環境内の各物理ホスト上で前記コンピューティングインスタンスを起動するための推定起動時間を前記機械学習モデルを用いて決定し、
前記一群の物理ホスト中の他の物理ホストと比較してより短い推定起動時間に従って前記コンピューティングインスタンスの配置を実現する物理ホストを前記一群の物理ホストから選択する、ことを行わせる、
前記非一時的マシン可読記憶媒体。
22.実行されると、前記システムに、
前記コンピューティングインスタンスの前記推定起動時間に加重値を割り当て、
前記推定起動時間に割り当てられた前記加重値に一部基づき、前記コンピューティングインスタンスを配置するための前記物理ホストを選択することを更に行わせる命令を更に含む、条項21に記載の非一時的マシン可読記憶媒体。
23.実行されると、前記システムに、前記コンピューティングインスタンスの起動を求める前記要求に含まれる配置制約を用いて、前記コンピューティングインスタンスの配置を実現する前記物理ホストを前記一群の物理ホストから選択することを更に行わせる命令を更に含む、条項21に記載の非一時的マシン可読記憶媒体。
24.前記推定起動時間は、前記コンピューティングインスタンスを配置するための前記物理ホストを選択するときに使用される複数の要因のうちの1つであり、
前記複数の要因は、物理ホストの利用率の配置要因、ライセンスコストの配置要因及び災害の影響の要因の少なくとも一つを含む、条項21に記載の非一時的マシン可読記憶媒体。
25.コンピュータ実装方法であって、
実行可能命令を用いて構成された1つ以上のコンピュータシステムの制御下で、
前記コンピュータシステムの1つ以上のプロセッサを用いて、コンピューティングサービス環境内でコンピューティングインスタンスを起動することを求める要求を受信することと、
前記コンピュータシステムの前記1つ以上のプロセッサを用いて、一群の物理ホスト中の物理ホスト上で起動するための前記コンピューティングインスタンスの推定起動時間を特定することと、
前記コンピュータシステムの前記1つ以上のプロセッサを用いて、前記コンピューティングインスタンスの前記推定起動時間に一部基づき、前記コンピューティングインスタンスを配置するための前記一群の物理ホスト中の物理ホストを選択することと、
を含む前記方法。
26.前記物理ホスト上で前記コンピューティングインスタンスを起動させることを更に含む、条項25に記載の方法。
27.各物理ホスト上での前記コンピューティングインスタンスの前記推定起動時間を前記一群の物理ホスト中の他の物理ホストと比較することと、
前記一群の物理ホスト中の前記他の物理ホストと比較して推定起動時間が短い前記一群の物理ホスト中の物理ホストを選択することと、
を更に含む、条項25に記載の方法。
28.前記コンピューティングインスタンスと関連したインスタンスの特徴及び前記一群の物理ホスト中の前記物理ホストと関連した物理ホストの特徴に一部基づき、
前記コンピューティングインスタンスを起動するための前記推定起動時間を特定することを更に含み、
前記コンピューティングインスタンスと関連した前記インスタンスの特徴は、ユーザーによって選択された特徴を含む、条項25に記載の方法。
29.回帰モデルを用いて前記コンピューティングインスタンスを起動する前記推定起動時間を特定することを更に含む、条項25に記載の方法。
30.前記コンピューティングインスタンスの前記推定起動時間に加重値を割り当てることと、
前記推定起動時間に割り当てられた前記加重値に一部基づき、前記コンピューティングインスタンスを配置するための前記物理ホストを選択することと、
を更に含む、条項25に記載の方法。
31.物理ホストの利用率の配置要因、ライセンスコストの配置要因または災害の影響の配置要因のうちの少なくとも1つを含む別の配置要因を用いて、前記コンピューティングインスタンスを配置するための前記一群の物理ホスト中の前記物理ホストを選択することを更に含む、条項25に記載の方法。
32.前記一群の物理ホスト中の他の物理ホストと比較してより少ない数の同時起動中のコンピューティングインスタンスを含む前記物理ホストを選択することを更に含む、条項25に記載の方法。
33.前記コンピューティングインスタンスを配置するための領域またはゾーンを、前記領域またはゾーン内のコンピューティングインスタンスの前記推定起動時間に一部基づいて選択することを更に含む、条項25に記載の方法。
34.前記コンピューティングインスタンスを実行するために選択された前記物理ホストが、所定の閾値を超える複数のコンピューティングインスタンスを同時に実行していないことを検証することを更に含む、条項25に記載の方法。
35.前記推定起動時間は、顧客からコンピューティングインスタンス起動要求を受信してから前記物理ホスト上で前記コンピューティングインスタンスをブートするまでの時間を含む、条項25に記載の方法。
36.前記コンピューティングインスタンスと関連したアタッチメントを起動するための推定時間を特定することと、
前記一群の物理ホスト中の他の物理ホストと比較して短い推定接続時間で前記コンピューティングインスタンスの配置を実現することができる前記物理ホストを選択することと、
を更に含む、条項25に記載の方法。
37.コンピューティングインスタンスの配置を決定するシステムであって、
プロセッサと、
メモリデバイスであって、前記プロセッサによって実行されると、前記システムに、
コンピューティングサービスプロバイダ上でコンピューティングインスタンスを起動することを求める要求を受信し、
前記コンピューティングインスタンスと関連したインスタンスの特徴、及びコンピューティングインスタンスをホストするように構成された物理ホストと関連した物理ホストの特徴に一部基づき、物理ホスト上で前記コンピューティングインスタンスを起動するための推定起動時間を特定し、
前記コンピューティングインスタンスの前記推定起動時間に一部基づき、前記コンピューティングインスタンスを配置するための物理ホストを選択する、
ことを行わせる命令を含む前記メモリデバイスと、
を備える前記システム。
38.前記メモリデバイスは、前記プロセッサによって実行されると、他の物理ホストと比較してより少ない数の同時起動中のコンピューティングインスタンスを有する物理ホストを選択することを前記システムに行わせる命令を含む、条項37に記載のシステム。
39.前記メモリデバイスは、前記プロセッサによって実行されると、前記コンピューティングインスタンスを実行するために選択された前記物理ホストが、所定の閾値を超える複数のコンピューティングインスタンスを同時に実行していないことを検証することを前記システムに行わせる命令を含む、条項37に記載のシステム。
40.前記メモリデバイスは、前記プロセッサによって実行されると、前記インスタンスの特徴及び前記物理ホストの特徴に一部基づいてコンピューティングインスタンスの起動時間を予測する回帰モデルを用いて前記コンピューティングインスタンスの前記推定起動時間を特定することを前記システムに行わせる命令を含む、条項37に記載のシステム。
41.非一時的マシン可読記憶媒体であって、非一時的マシン可読記憶媒体は前記非一時的マシン可読記憶媒体に具現化された命令を有し、前記命令は、コンピューティングインスタンスの起動時間を向上させるためにプロセッサによって実行され、
前記命令は、
定められた期間中にコンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスと関連したマシンイメージを示す予想トラフィックパターンを識別することと、
起動時間予測モデルを用いて、前記コンピューティングサービス環境内の既定の領域で前記マシンイメージをキャッシュすることは、前記マシンイメージをキャッシュしない場合と比較して前記コンピューティングインスタンスの起動時間を短縮すると判定することと、
前記コンピューティングサービス環境に前記マシンイメージをキャッシュすることを可能にするようにキャッシュレイアウトを決定することであって、前記キャッシュレイアウトは、前記マシンイメージをキャッシュするのに利用可能な前記コンピューティングサービス環境内の前記所定の領域の物理ホストを識別する、前記決定することと、
前記キャッシュレイアウトに従って前記コンピューティング環境内の少なくとも1つの物理ホストに前記マシンイメージを記憶することと、
を含む、前記非一時的マシン可読記憶媒体。
42.経験則を使用して前記コンピューティングサービス環境の前記予想トラフィックパターンを識別することを更に含み、前記経験則は、前記コンピューティングサービス環境の履歴トラフィックパターンに関する、請求項41に記載の非一時的マシン可読記憶媒体。
43.コンピューティングインスタンスを起動するための所望の起動時間を受信することと、
前記コンピューティングインスタンスを起動するための実起動時間が前記所望の起動時間と実質的に同等となるように、前記コンピューティングインスタンスと関連したマシンイメージをキャッシュすることを可能とする前記キャッシュレイアウトを決定することと、
を更に含む、請求項41に記載の非一時的マシン可読記憶媒体。
44.前記コンピューティングサービス環境にキャッシュされる各種のマシンイメージを識別することと、
前記各種のマシンイメージをキャッシュすることができる前記物理ホストに1つ以上のスロットを搭載するように前記キャッシュレイアウトを決定することと、
を更に含む、請求項41に記載の非一時的マシン可読記憶媒体。
45.コンピュータ実装方法であって、
実行可能命令を用いて構成された1つ以上のコンピュータシステムの制御下で、
前記コンピュータシステムの1つ以上のプロセッサを用いて、定められた期間中にコンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスを識別することと、
前記コンピューティングサービス環境に前記コンピューティングインスタンスのマシンイメージをキャッシュすることは、前記マシンイメージをキャッシュしない場合と比較して前記コンピューティングインスタンスを起動するための起動時間を短縮することを、起動時間予測モデルを介して、前記コンピュータシステムの前記1つ以上のプロセッサを用いて判定することと、
前記コンピュータシステムの前記1つ以上のプロセッサを用いて、前記起動時間予測モデルによって予測されたように、前記コンピューティングインスタンスの前記起動時間を短くするために、前記マシンイメージをキャッシュするのに利用可能な前記コンピューティングサービス環境内の少なくとも1つの物理ホストを選択することと、
前記コンピュータシステムの前記1つ以上のプロセッサを用いて、前記物理ホストに前記マシンイメージを記憶することと、
を含む前記方法。
46.前記コンピューティングインスタンスの起動を求める要求を受信することと、
前記コンピューティングサービス環境内の前記物理ホストでキャッシュされる前記コンピューティングインスタンスと関連した前記マシンイメージを識別することと、
コンピューティングサービスを提供するために前記物理ホストに前記マシンイメージをロードすることと、
を更に含む、請求項45に記載の方法。
47.経験則を使用して前記コンピューティングサービス環境の予想トラフィックパターンを識別することを更に含み、前記経験則は、前記コンピューティングサービス環境の履歴トラフィックパターンに関する、請求項45に記載の方法。
48.前記コンピューティングサービス環境の予想トラフィックパターンを予測する機械学習モデルを用いて、前記定められた期間かつ定められた地理的領域において、前記コンピューティングサービス環境内で起動されると予想される前記コンピューティングインスタンスを識別すること、を更に含む、請求項45に記載の方法。
49.前記コンピューティングサービス環境にキャッシュされる前記マシンイメージのサイズを特定することと、
前記サイズのマシンイメージをキャッシュすることができるスロットを備えた前記コンピューティングサービス環境内の前記物理ホストを選択することであって、前記マシンイメージは、前記マシンイメージと関連した前記起動時間を短縮するために前記コンピューティングサービス環境内の既定の領域でキャッシュされる、前記選択することと、
を更に含む、請求項45に記載の方法。
50.選択されたトポロジ層に従って、前記コンピューティングサービス環境に前記マシンイメージを記憶することを更に含む、請求項45に記載の方法。
51.キャッシュレイアウトに従って前記マシンイメージを記憶することを更に含み、前記キャッシュレイアウトは、前記起動時間を短縮するために前記マシンイメージをキャッシュするのに利用可能な前記コンピューティングサービス環境内の複数の物理ホストを示す、請求項45に記載の方法。
52.前記コンピューティングインスタンスを起動するための所望の起動時間を特定することと、
前記コンピューティングインスタンスと関連した前記マシンイメージを記憶するのに利用可能な前記コンピューティングサービス環境内の物理ホストを選択することと、
前記コンピューティングインスタンスを起動するための実起動時間が前記所望の起動時間と実質的に同等となるように、前記コンピューティング環境内の前記物理ホストに前記マシンイメージを記憶することと、
を更に含む、請求項45に記載の方法。
53.前記起動時間が前記コンピューティングサービス環境のサービスレベルに関する合意(SLA)に従うように、前記マシンイメージを前記物理ホストに記憶することを更に含む、請求項45に記載の方法。
54.前記コンピューティングインスタンスの前記起動時間が、前記コンピューティングサービス環境のサービスレベルに関する合意(SLA)に従っていないと判定することと、
前記SLAに適合するように前記マシンイメージと関連したコンピューティングインスタンスの前記起動時間を更に短縮するように、前記コンピューティングインスタンスと関連した前記マシンイメージを前記コンピューティングサービス環境内の別の物理ホストに記憶することと、
を更に含む、請求項45に記載の方法。
55.前記コンピューティングサービス環境内で前記コンピューティングインスタンスを起動することを求める要求を受信することと、
前記コンピューティングインスタンスと関連した前記マシンイメージが休止状態にあると認識することと、
前記休止状態から実行状態に前記マシンイメージを切り替えることによって前記コンピューティングサービス環境内で前記コンピューティングインスタンスを起動し、それにより、前記コンピューティングサービス環境内で前記コンピューティングインスタンスを起動するための前記起動時間を最小にすることと、
を更に含む、請求項45に記載の方法。
56.前記起動時間予測モデルは、前記コンピューティングインスタンスと関連したインスタンスの特徴及び前記コンピューティングサービス環境内の一群の物理ホストと関連した物理ホストの特徴に一部基づいて前記コンピューティングインスタンスの前記起動時間を予測する回帰モデルである、請求項45に記載の方法。
57.コンピューティングインスタンスの起動時間を短縮するシステムであって、
プロセッサと、
メモリデバイスであって、前記プロセッサによって実行されると、前記システムに、
コンピューティングサービス環境の予想トラフィックパターンであって、定められた期間中に前記コンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスと関連したマシンイメージを示す前記予想トラフィックパターンを識別し、
前記コンピューティングサービス環境内の既定の領域で前記マシンイメージをキャッシュすることが、前記マシンイメージをキャッシュしない場合と比較して前記コンピューティングインスタンスの起動時間を短縮することを、起動時間予測モデルを用いて判定し、
前記マシンイメージをキャッシュするのに利用可能な前記コンピューティングサービス環境内の前記既定の領域の物理ホストを識別するキャッシュレイアウトを、前記コンピューティングサービス環境に前記マシンイメージをキャッシュすることを可能にするように決定し、
前記キャッシュレイアウトに従って前記コンピューティング環境内の少なくとも1つの物理ホストに前記マシンイメージを記憶すること、
を行わせる命令を含む前記メモリデバイスと、
を備える前記システム。
58.前記メモリデバイスは、前記プロセッサによって実行されると、前記起動時間が前記コンピューティングサービス環境のサービスレベルに関する合意(SLA)に従うように前記マシンイメージを前記物理ホストに記憶することを前記システムに行わせる命令を含む、請求項57に記載のシステム。
59.前記メモリデバイスは、前記プロセッサによって実行されると、選択されたトポロジ層に従って前記コンピューティングサービス環境に前記マシンイメージを記憶することを前記システムに行わせる命令を含む、請求項57に記載のシステム。
60.前記メモリデバイスは、前記プロセッサによって実行されると、前記システムに、
前記コンピューティングインスタンスの起動を求める要求を受信し、
前記コンピューティングサービス環境内の前記物理ホストでキャッシュされる前記コンピューティングインスタンスと関連した前記マシンイメージを識別し、
コンピューティングサービスを提供するために前記マシンイメージをロードすること、を行わせる命令を含む、請求項57に記載のシステム。
本技術のために提示されたフローチャートは実行の具体的な順序を示し得るが、実行の順序は図示したものと異なっていても良い。例えば、2つ以上のブロックの順序を、図示した順序に対して並び替えても良い。更に、連続して図示した2つ以上のブロックを並列に実行しても良く、または部分的に並列化して実行しても良い。いくつか構成において、フローチャートに示した1つ以上のブロックを省略しても良く、またはスキップしても良い。任意の数のカウンタ、状態変数、警告セマフォまたはメッセージを、有用性の向上、課金、性能、測定、トラブルシューティングの目的のために、または類似の理由のために論理フローに追加しても良い。
本明細書で説明した機能ユニットの一部は、それらの実装の独立性を特に強調するために、モジュールとして表記されている。例えば、モジュールは、カスタムVLSI回路もしくはゲートアレイを備えたハードウェア回路、論理チップなどの既成の半導体、トランジスタ、または他のディスクリート部品として実装されても良い。モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイスなどのプログラマブルハードウェアデバイスに実装されても良い。
モジュールは、各種のプロセッサによって実行するためのソフトウェアで実装されても良い。実行可能コードの個別モジュールは、例えば、コンピュータ命令の1つ以上のブロックを含んでも良く、これらのブロックは、オブジェクト、手順または機能として編成されても良い。それにもかかわらず、個別モジュールの実行ファイルは、共に物理的に配置される必要はなく、モジュールを含む種々の領域に記憶された異なる命令を含んでも良く、共に論理的に結合されるときにモジュールの規定の目的を達成しても良い。
実際、実行可能コードのモジュールは、単一の命令または多数の命令であって良く、更には、いくつかの異なるコードセグメントにわたって、種々のプログラムの間で、更にいくつかのメモリデバイス全体にわたって分散されても良い。同様に、運用データは、モジュールの内部において、識別され、本明細書で例示されても良く、任意の適切な形式で具現化されても良く、任意の適切な種類のデータ構造内で編成されても良い。運用データは、単一のデータセットとして集約されても良く、または種々のストレージデバイスにわたるなどして、種々の領域にわたって分散されても良い。モジュールは、受動的でも能動的でも良く、所望の機能を実行するように運用可能なエージェントを含む。
本明細書で説明した技術は、コンピュータ可読媒体に記憶されても良い。このような媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を保存するための任意の技術を用いて実装された、揮発性及び不揮発性の、着脱可能及び着脱不可能な媒体が含まれる。コンピュータ可読記憶媒体は、RAM、ROM、EEPROMなどの非一時的媒体、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を記憶するのに使用され得る任意の他のコンピュータ記憶媒体及び説明した技術を含むが、これらに限定されることはない。
本明細書で説明した各デバイスは、これらのデバイスが他のデバイスと通信することを可能にする通信接続またはネットワーク装置及びネットワーク接続を含んでも良い。通信接続は、通信媒体の一例である。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、及び搬送波または他の搬送機構などの被変調データ信号内の他のデータを具現化するものであり、任意の情報伝達媒体を含む。「modulated data signal(被変調データ信号)」は、信号内に情報を符号化する方法でその特性の1つ以上が調節され、または変更された信号を意味する。例えば、限定されることはないが、通信媒体には、有線ネットワークまたは直接の有線接続などの有線媒体、ならびに音響、無線周波数、赤外線及び他の無線媒体などの無線媒体が含まれる。本明細書で使用されるコンピュータ可読媒体という用語には、通信媒体が含まれる。
図面に示した例を参照し、同一のものを説明するために本明細書において特定の言葉を使用した。それにもかかわらず、技術の範囲を限定することがそれによって意図されるものではないことが理解されよう。本明細書に示した特徴の変更及び更なる修正、ならびに本明細書に示した例のその他の適用は、本明細書の範囲に含まれるとみなすべきである。
更に、説明した特徴、構造または特性を、1つ以上の例において、任意の好適な方法で組み合わせても良い。先の記述では、説明した技術の例に対する完全な理解を提供するための各種構成例などの、多数の具体的な詳細事項を提示した。しかしながら、本技術は、具体的な詳細事項の1つ以上を伴わずに実施されても良く、または他の方法、構成要素、デバイスなどによって実施されても良いことが認められるであろう。他の事例では、本技術の態様が分かりにくくならないようにするために、周知の構造または動作については詳細に図示も説明もされてない。
構造的な特徴及び/または動作に特有の言葉を用いて主題を説明してきたものの、添付された特許請求の範囲において定められる主題は、上述した特定の特徴及び動作に必ずしも限定されているわけではないことを理解すべきである。むしろ、上述した特定の特徴及び行為は、特許請求の範囲を実施することの例示的な形態として開示される。説明した技術の精神及び範囲から逸脱することなく、多数の修正及び代替構成が考案され得る。