(57)【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
実行可能命令を用いて構成された１つ以上のコンピュータシステムの制御下で、
１または複数のプロセッサを用いて、以前の複数のコンピューティングインスタンスの起動に関する起動特徴を表す訓練データを取得することと、
前記１または複数のプロセッサを用いて、コンピューティングインスタンスを起動するための予測起動時間を出力するために、前記訓練データを用いて機械学習モデルを訓練することと、
コンピューティングサービス環境内の物理ホスト上でコンピューティングインスタンスを起動するための予測起動時間を求める要求を受信することと、
前記１または複数のプロセッサを用いて、コンピューティングサービス環境内の物理ホスト上での前記コンピューティングインスタンスの起動時間に影響を及ぼすと判定されたコンピューティングインスタンスの起動特徴と関連したデータを取得することと、
前記訓練された前記機械学習モデルに前記コンピューティングインスタンスの前記起動特徴を入力することと、
前記機械学習モデルに、前記起動特徴の前記入力に基づいて、前記コンピューティングサービス環境内でコンピューティングインスタンスを起動するための予測起動時間を出力させることと、
を含む前記方法。
【請求項２】
起動特徴と関連した前記データを取得することは、コンピューティングインスタンスを起動するのに使用されるロードイメージ、コンピューティングインスタンスをホストすることができる物理ホスト及び顧客構成と関連したデータを取得することを更に含む、請求項１に記載の方法。
【請求項３】
前記機械学習モデルに前記起動特徴を入力する前に前記起動特徴を正規化することを更に含む、請求項１に記載の方法。
【請求項４】
前記起動特徴に対する前記機械学習モデルの適合度となる機械学習パラメータのパラメータ値探索を実行することを更に含む、請求項１に記載の方法。
【請求項５】
前記パラメータ値探索を実行することは、分散遺伝的アルゴリズムを用いて機械学習パラメータのパラメータ値探索を実行することを更に含む、請求項４に記載の方法。
【請求項６】
以前の複数のコンピューティングインスタンスの起動に関する起動特徴を表す訓練データを取得することは、前記起動特徴と関連した有効訓練データから特徴を抽出することを更に含む、請求項１に記載の方法。
【請求項７】
前記起動特徴を機械学習モデルに入力することは、ランダムフォレストモデル、ｅｘｔｒｅｍｅｌｙ  ｒａｎｄｏｍｉｚｅｄ  ｔｒｅｅｓモデル、ＡｄａＢｏｏｓｔモデル、確率的勾配降下モデルまたはサポートベクターマシンモデルの少なくとも１つから選択された機械学習モデルに前記起動特徴を入力することを更に含む、請求項１に記載の方法。
【請求項８】
前記起動特徴を機械学習モデルに入力することは、前記コンピューティングインスタンスの前記起動特徴を機械学習回帰モデルに入力することを更に含む、請求項１に記載の方法。
【請求項９】
前記コンピューティングインスタンスの起動を求める顧客からの起動要求を受信することと、
前記コンピューティングインスタンスのコンピューティングインスタンスタイプと関連したＳＬＡ起動時間を特定することと、
前記コンピューティングインスタンスの前記予測起動時間を前記ＳＬＡ起動時間と比較することによって前記ＳＬＡ起動時間が満たされる可能性があるかどうかを判定することと
を更に含む、請求項１に記載の方法。
【請求項１０】
前記予測起動時間が前記ＳＬＡ起動時間より長いと判定されたときに、前記ＳＬＡ起動時間を達成する可能性がないとコンピューティングサービスプロバイダに通知することを更に含む、請求項９に記載の方法。
【請求項１１】
前記予測起動時間が前記ＳＬＡ起動時間より長い場合にＳＬＡ違反特徴を作成することと、
機械学習分類モデルに入力された他の特徴に前記ＳＬＡ違反特徴を含めることと、
を更に含む、請求項９に記載の方法。
【請求項１２】
前記コンピューティングインスタンスのＳＬＡ起動時間を特定することと、
前記コンピューティングインスタンスの前記予測起動時間を前記ＳＬＡ起動時間と比較することによって前記ＳＬＡ起動時間が満たされる可能性があるかどうかを判定することと、
コンピューティングインスタンスが起動されるコンピューティングサービス環境の状態を分析して、前記ＳＬＡ起動時間に違反する可能性があると判定されたときに前記ＳＬＡ起動時間に対する違反を防ぐ可能性のある処置を実行し得るかどうかを判定することと、
を更に含む、請求項１に記載の方法。
【請求項１３】
システムであって、
１または複数のプロセッサと、
メモリデバイスであって、前記１または複数のプロセッサによって実行されると、前記システムに、
以前の複数のコンピューティングインスタンスの起動に関する起動特徴を表す訓練データを取得し、
コンピューティングインスタンスを起動するための予測起動時間を出力するために、前記訓練データを用いて機械学習モデルを訓練し、
起動構成に含まれる起動特徴であって、コンピューティングサービス環境内のコンピューティングインスタンスの起動時間に影響を及ぼすと判定された前記起動特徴を識別し、
前記起動特徴に関するデータをデータソースから取得し、
前記訓練された前記機械学習モデルに前記起動特徴を入力し、
前記機械学習モデルに、前記起動特徴の前記入力に基づいて、前記コンピューティングサービス環境内でコンピューティングインスタンスを起動するための予測起動時間を出力させること、
を行わせる命令、を含む前記メモリデバイスと
を備えるシステム。
【請求項１４】
前記メモリデバイスは、前記１または複数のプロセッサによって実行されると、前記起動特徴を機械学習回帰モデルに入力することを前記システムに行わせる命令、を含む、請求項１３に記載のシステム。
【請求項１５】
前記メモリデバイスは、前記１または複数のプロセッサによって実行されると、
コンピューティングインスタンスを起動するのに使用されるロードイメージの特徴、
前記コンピューティングインスタンスをホストすることができる物理ホストの特徴、及び
起動されるときに前記コンピューティングインスタンスに接続されるアタッチメントの特徴、
を取得することを前記システムに行わせる命令、を含む、請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティングインスタンスの起動時間に関する。
【背景技術】
【０００２】
コンピューティングリソースの仮想化技術が出現したことにより、多様なニーズを持つ多くの顧客に対して大規模なコンピューティングリソースを管理することに関する利点が提供され、複数の顧客が各種のコンピューティングリソースまたはコンピューティングサービスを効率的かつ安全に共有することが可能となった。例えば、仮想化技術により、単一の物理コンピューティングマシンを、ハイパーバイザを用いた単一の物理コンピューティングマシンによってホストされた１つ以上のコンピューティングインスタンスを各顧客に提供することによって複数の顧客の間で共有できるようにしても良い。各コンピューティングインスタンスは、別個の論理コンピューティングシステムとして作用するゲストマシンであって良い。このシステムは、顧客に対し、当該顧客が仮想化された所与のハードウェアコンピューティングリソースの唯一の運用者かつ管理者であるという認識を与える。
【発明の概要】
【課題を解決するための手段】
【０００３】
単一の物理コンピューティングマシン上で１つ以上のコンピューティングインスタンスを起動するには、コンピューティングインスタンスがロードされ、実行され得る利用可能なコンピューティングリソース（例えば、物理ホスト）を識別することが必要となり得る。コンピューティングインスタンスをホストサーバにロードし、そこで起動するための時間は、物理ホストを含むコンピューティング環境の各種態様及び起動されているコンピューティングインスタンスの態様に起因して変わり得る。その結果、コンピューティングインスタンスの起動時間は、２、３分から数分の範囲をとり得る。
【図面の簡単な説明】
【０００４】
【図１】コンピューティングサービス環境内のコンピューティングインスタンスの起動時間を予測する例示的なシステムを示すブロック図である。
【図２】コンピューティングインスタンスの起動時間を予測するシステムに含まれる各種の例示的な構成要素を示すブロック図である。
【図３】予測起動時間サービスを含む例示的なコンピューティングサービス環境を示すブロック図である。
【図４】予測起動時間を生成するのに使用される機械学習モデルを設定し、訓練する例示的な方法を示す図である。
【図５】予測起動時間を用いてＳＬＡ（ｓｅｒｖｉｃｅ  ｌｅｖｅｌ  ａｇｒｅｅｍｅｎｔ）起動時間に対する違反を予測する例示的な方法を示すフロー図である。
【図６】コンピューティングインスタンスの起動時間を予測する例示的な方法を示すフロー図である。
【図７】コンピューティングインスタンスの起動時間を予測する方法を実行するのに使用され得るコンピューティングデバイスの例を示すブロック図である。
【図８】本技術の一例に係る、推定起動時間を用いてコンピューティングサービス環境内の物理ホストにコンピューティングインスタンスを配置するシステムに含まれる各種の構成要素を示すブロック図である。
【図９】本技術の一例に係る、推定起動時間を用いてコンピューティングサービス環境内の物理ホストにコンピューティングインスタンスを配置するシステム及び関連動作を示す図である。
【図１０】本技術の一例に係る、推定接続時間を用いてコンピューティングサービス環境にコンピューティングインスタンスを配置することを決定するシステム及び関連動作を示す図である。
【図１１】本技術の一例に係る、推定起動時間を用いてコンピューティングサービス環境にコンピューティングインスタンスを配置するシステム及び関連動作を示す図である。
【図１２】本技術の一例に係る、コンピューティングサービス環境内で起動されるコンピューティングインスタンスの起動時間を予測する起動時間予測モデルの生成を示すブロック図である。
【図１３】推定起動時間を用いてコンピューティングサービス環境内にコンピューティングインスタンスを配置することを決定する例示的な方法のフローチャートである。
【図１４】推定起動時間を用いてコンピューティングサービス環境内にコンピューティングインスタンスを配置することを決定する別の例示的な方法のフローチャートである。
【図１５】本技術の一例に係る、コンピューティングサービス環境内のコンピューティングインスタンスの起動時間を短縮するために起動時間の予測を利用してマシンイメージのキャッシングを構成するシステム及び関連動作を示す図である。
【図１６】本技術の一例に係る、コンピューティングサービス環境内のコンピューティングインスタンスの起動時間を短縮するために起動時間予測を利用してマシンイメージのキャッシングを構成するシステムに含まれる各種の構成要素を示すブロック図である。
【図１７】本技術の一例に係る、コンピューティングサービス環境内のコンピューティングインスタンスの起動時間を短縮するために起動時間の予測を利用してマシンイメージのキャッシングを構成するシステム及び関連動作を示す図である。
【図１８】本技術の一例に係る、コンピューティングインスタンスを起動するための所望の起動時間を達成すべくマシンイメージをキャッシュするためのコンピューティングサービス環境内の物理ホストを識別するシステム及び関連動作を示す図である。
【図１９】本技術の一例に係る、コンピューティングサービス環境のサービスレベルに関する合意（ｓｅｒｖｉｃｅ  ｌｅｖｅｌ  ａｇｒｅｅｍｅｎｔ：ＳＬＡ）に適合するようにコンピューティングサービス環境にマシンイメージをキャッシュするシステム及び関連動作を示す図である。
【図２０】本技術の一例に係る、コンピューティングサービス環境内で起動されるコンピューティングインスタンスの起動時間を予測する起動時間予測モデルの生成を示すブロック図である。
【図２１】コンピューティングインスタンスの起動時間を短縮する例示的な方法のフローチャートである。
【図２２】コンピューティングインスタンスの起動時間を短縮する別の例示的な方法のフローチャートである。
【発明を実施するための形態】
【０００５】
コンピューティングサービス内のコンピューティングインスタンスの予測起動時間を決定する技術を説明する。本技術の一例において、予測起動時間（例えば、コンピューティングサービス内の物理ホスト上でコンピューティングインスタンスを起動するための時間）を求める要求に応答して、物理ホスト上でコンピューティングインスタンスを起動することと関連した起動特徴を、予測起動時間を出力する機械学習モデルに入力しても良い。機械学習モデルへの入力として使用される起動特徴は、コンピューティングインスタンスを物理ホスト上で起動する時間に影響を及ぼすと判定された起動特徴であって良い。本開示において言及されるように、コンピューティングインスタンスは、物理マシンと同様にアプリケーションを実行する仮想マシン（例えば、コンピュータに対するソフトウェア実装のインスタンス）であって良い。コンピューティングサービスは、ネットワークアクセス可能なコンピューティングインスタンスを顧客に提供するネットワークアクセス可能なサービスであって良い。
【０００６】
予測起動時間を生成するのに使用される機械学習モデルは、以前のコンピューティングインスタンスの起動に基づく起動メトリックを表す特徴を用いて訓練されても良い。機械学習モデルを訓練するのに使用される特徴は、コンピューティングインスタンスを起動するための時間に影響を及ぼすと判定された特徴であって良い。１つの例示的な構成において、機械学習モデルの訓練は、履歴の起動メトリックから抽出された特徴を用いて（例えば、前週のデータを用いて週ごとに）オフラインで（例えば、非運用環境で）実行されても良い。別の例示的な構成において、機械学習モデルは、最近の起動メトリックから抽出された特徴を用いてオンライン中に（例えば、運用環境で）訓練されても良い。
【０００７】
コンピューティングインスタンスの起動時間は、一例において、サービスコールを実行してコンピューティングインスタンスリソース（例えば、記憶装置及びネットワークインターフェース）を設定すること、コンピューティングインスタンスの物理ホストを選択すること、当該物理ホスト上にコンピューティングインスタンスを作成することを含んでも良い。起動時間は、コンピューティングインスタンスの起動構成に基づいて変わり得る。従って、コンピューティングサービスプロバイダにとっては、特定のコンピューティングインスタンスが使用のためにいつ利用可能となるかについての予想時間枠を提供することが困難となり得る。本技術の結果、コンピューティングサービスプロバイダは、予測起動時間を取得し得る。この予測起動時間は、その後、複数の目的のために利用され得る。例えば、コンピューティングサービスプロバイダは、コンピューティングインスタンスが使用のためにいつ利用可能となり得るかの見積もりを顧客に提供し、ＳＬＡ（サービスレベルに関する合意）時間が満たされ得るかどうかを判定し、複数の他の目的に加えて、起動時間がより速くなり得る起動構成を提案しても良い。
【０００８】
図１は、コンピューティングサービス環境１０８内のコンピューティングインスタンスの起動時間１１２を予測するのに使用され得るシステム１００の高水準の例を示す図である。システム１００は、インスタンスマネージャ１１０（例えば、ハイパーバイザ）を介してコンピューティングインスタンス１１２を実行する複数の物理ホスト１０６、及び機械学習モデル１１６を実行するサーバ１１４を備えても良い。１つの例示的な構成において、サーバ１１４は、複数のデータソースと通信しても良く、これらのデータソースから、起動特徴１０２に関するデータ（例えば、訓練データ及び起動要求と関連したデータ）を取得しても良い。機械学習モデル１１６は、履歴訓練データを用いて訓練されても良い。その後、機械学習モデル１１６は、コンピューティングインスタンスを起動するための起動特徴１０２を使用することによってコンピューティングインスタンス１１２の予測起動時間を生成して、コンピューティングインスタンスを起動するための予測起動時間を決定しても良い。
【０００９】
実例として、以前に訓練された機械学習モデル１１６（例えば、ランダムフォレスト回帰モデル）を実行しているサーバ１１４は、予測起動時間を求める要求を受信しても良い。予測起動時間は、起動要求を受信してから（例えば、コンピューティングインスタンスの状態が「ペンディング」である）コンピューティングインスタンスのブートを開始するまで（例えば、コンピューティングインスタンスの状態が「実行中」である）の間の時間であって良い。予測起動時間を求める要求は、起動要求と関連した起動特徴１０２を識別するのに使用される起動構成を参照しても良い。識別された起動特徴１０２は、コンピューティングインスタンス１１２の予測起動時間を決定するために機械学習モデル１１６によって使用されても良い。実例として、起動要求（１）は、コンピューティングインスタンス１１２を起動することを要求しているコンピューティングサービスの制御プレーン１０４に送信されても良い。起動要求を受信すると、コンピューティングインスタンス１１２を起動するための各種パラメータを指定する起動要求構成を生成しても良い。例えば、起動要求構成は、（例えば、極小、小中、大など、更に汎用、メモリ集約的などの）コンピューティングインスタンス１１２のコンピューティングインスタンスタイプ、コンピューティングインスタンス１１２のマシンイメージ、コンピューティングインスタンス１１２と関連するネットワークタイプ、コンピューティングインスタンス１１２に接続される記憶ボリューム、コンピューティングインスタンス１１２をホストするために選択された物理ホスト１０６、及び他の仕様を指定しても良い。
【００１０】
次いで、制御プレーン１０４は、機械学習モデル１１６をホストしているサーバ１１４に予測起動時間を求める要求（２）を行っても良い。起動要求構成に含まれる情報を用いて、起動時間に影響を与えるものとして識別された起動特徴を収集しても良く、次いで、その起動特徴を機械学習モデル１１６に提供しても良い。実例として、起動要求構成を参照して、起動されるコンピューティングインスタンス１１２に関する情報、コンピューティングインスタンス１１２に接続されるアクセサリ、及びコンピューティングインスタンス１１２をホストする物理ホスト１０６に関する情報を取得しても良い。次いで、起動要求構成からの情報を使用して起動特徴を識別しても良い。このような起動特徴としては、コンピューティングインスタンス１１２を作成するのに使用されるマシンイメージ及びカーネルイメージ、オペレーティングシステム及びネットワークタイプ、物理ホスト１０６が配置される地理的領域、物理ホスト１０６が実行することができるコンピューティングインスタンス１１２の最大数などがある。次いで、起動要求構成からの情報を用いて識別された起動特徴１０２を、機械学習モデル１１６への入力として提供しても良く、この機械学習モデルは、その後、コンピューティングインスタンス１１２の予測起動時間を出力しても良い（３）。
【００１１】
機械学習モデル１１６によって生成された予測起動時間は、任意の目的のために使用されても良い。例えば、予測起動時間は、コンピューティングインスタンスの起動時間を向上させるための分析に使用される要因であって良く、予測起動時間は、物理ホスト１０６へのコンピューティングインスタンス１１２の配置を決定するのに使用されても良く、予測起動時間は、顧客に提供されるＳＬＡ（サービスレベルに関する合意）起動時間を決定するのに使用されても良く、あるいは、予測起動時間は、起動時間がより速くなるコンピューティングインスタンスの構成を顧客に通知する際の要因であって良い。予測起動時間を利用する実例として、ＳＬＡ起動時間（例えば、コンピューティングサービスプロバイダと顧客との間の、コンピューティングインスタンス１１２を起動する時間に関する合意）をコンピューティングインスタンスの予測起動時間１１２と比較して、そのＳＬＡ起動時間が満たされる可能性があるかどうかを判定しても良い。このようにして、コンピューティングサービスプロバイダ及び／または顧客に対し、コンピューティングインスタンス１１２のＳＬＡ起動時間に違反する可能性があることを通知しても良い。これにより、コンピューティングサービスプロバイダ及び／または顧客が、その通知に応じた処置を講じることができるようにしても良い。
【００１２】
予測起動時間を求める要求を機械学習モデル１１６が受信する運用環境に機械学習モデル１１６を配置する前に、その機械学習モデルを訓練して、各種のコンピューティングインスタンスの起動構成に対して起動時間を予測するようにしても良い。１つの例示的な構成において、機械学習モデル１１６は、コンピューティングサービス環境１０８内のコンピューティングインスタンス１１２の起動時間に影響を及ぼすと判定された特徴を用いて訓練されても良い。どの特徴がコンピューティングインスタンス１１２の起動時間に影響を及ぼすかを判定する際、コンピューティングインスタンスの起動の分析を行って、コンピューティングインスタンス１１２の起動と相関するか、またはそれと関連した特徴を識別しても良い。実例として、コンピューティングインスタンス１１２を起動することは、サービスコールを実行してコンピューティングインスタンス１１２のコンピューティングインスタンスリソース（例えば、ストレージ及びネットワークインターフェース）を設定するステップ、コンピューティングインスタンス１１２（例えば、領域）の物理ホスト１０６を選択するステップ、及び当該物理ホスト上にコンピューティングインスタンス１１２を作成するステップを含んでも良い。
【００１３】
コンピューティングインスタンスを起動する各ステップを分析することは、コンピューティングインスタンス１１２を起動することと関連した特徴を識別しても良い。例えば、コンピューティングインスタンスリソースを設定することと関連した特徴、物理ホスト１０６を選択することと関連した特徴、及びコンピューティングインスタンス１１２の構成と関連した特徴（例えば、コンピューティングインスタンス１１２を作成するのに使用されるマシンイメージ）。次いで、識別されたそれらの特徴を、各特徴が起動時間に及ぼす影響に従ってソートし、または順位付けても良い。例えば、これらの特徴を、起動時間に最も大きな影響を及ぼす特徴に従って順位付けても良く、起動時間に最も大きな影響を及ぼす特徴は、起動時間にほとんど影響を及ぼさない特徴と比較してより高い順位を受け入れても良い。予測起動時間を決定するときには、より高い順位を有する特徴を選択し、使用しても良い。
【００１４】
別の例において、コンピューティングインスタンス１１２の起動時間に影響を及ぼすと判定された特徴を、複数の特徴カテゴリから選択しても良い。実例として、特徴カテゴリは、マシンイメージの特徴、物理ホストの特徴及び顧客構成の特徴（例えば、顧客による修正のための調整の範囲内である起動構成の特徴）を含んでも良い。これらのカテゴリの特徴を、予測起動時間を決定する際に選択し、使用しても良い。
【００１５】
コンピューティングインスタンス１１２の起動時間に影響を及ぼすものとして選択された特徴に関する特徴データは、各データソース（例えば、有効訓練データまたは履歴訓練データ）から読み出されても良く、機械学習モデル１１６を訓練するのに使用されても良い。特徴データは、例えば、コンピューティングサービス１０８内で以前にコンピューティングインスタンスを起動したことに基づく起動メトリックであって良い。特徴データは、いくつかの例において、特徴データが冗長であるか、または大きいときに、簡約的に表現した一式の特徴（例えば、特徴ベクトル）に変換されても良い。更に、特徴データを、機械学習モデル１１６を訓練する前に正規化しても良い。
【００１６】
１つの例示的な構成において、履歴訓練データ（例えば、コンピューティングサービス１０８内でコンピューティングインスタンス１１２を起動することと関連したアーカイブデータ）を用いて、機械学習モデル１１６をオフラインで（例えば、機械学習モデル１１６を運用にかける前に）訓練しても良い。履歴訓練データを用いて機械学習モデル１１６を訓練した後、機械学習モデル１１６をオンラインに（例えば、運用環境に）配置しても良く、そこで機械学習モデル１１６は、予測起動時間を求める要求を処理しても良い。いくつかの例において、周期的に、機械学習モデル１１６をオフラインとし、機械学習モデル１１６が訓練された最後の時から蓄積された履歴訓練データを用いて再訓練しても良い。
【００１７】
別の例示的な構成において、機械学習モデル１１６を、履歴訓練データを用いて最初に訓練し、機械学習モデル１１６が予測起動時間を求める要求を処理し得る運用状態に置いても良い。その後、有効な訓練特徴（例えば、コンピューティングサービス環境１０８内でコンピューティングインスタンス１１２を起動することと関連した最近の特徴データ）を用いて、運用中に機械学習モデル１１６を再訓練しても良い。例えば、過去の数分、数時間または数日にわたって蓄積された特徴データを使用して、機械学習モデル１１６の訓練を再訓練するか、または更に洗練させても良い。比較的短い期間内に蓄積された特徴データセットは、機械学習モデル１１６を運用から外さずとも短期間（例えば、数分）のうちに機械学習モデル１１６を再訓練し得る程度に十分小さくても良い。
【００１８】
図２は、本技術を実行し得る例示的なシステム２００の構成要素を示す図である。システム２００は、コンピューティングサービス環境２０２を備えても良く、この環境は、ネットワーク２２６を介して複数のクライアント装置２２８にアクセス可能であって良い。コンピューティングサービス２０２は、物理ホスト２３６上で実行されるコンピューティングインスタンスなどの、ネットワークアクセス可能なサービスを顧客に提供しても良い。コンピューティングサービス環境２０２には、起動時間予測モジュール２１８をホストするサーバ２０４が含まれても良く、起動時間予測モジュールを使用して、物理ホスト２３６上で起動されるコンピューティングインスタンスの予測起動時間を生成しても良い。起動時間予測モジュール２１８に加えて、サーバ２０４は、訓練モジュール２２２、起動特徴モジュール２２０、及びサーバ２０４上に搭載されたモジュールにアクセス可能であり得るデータを有する１つ以上のデータ記憶装置２０６を含んでも良い。
【００１９】
１つの例示的な構成において、起動時間予測モジュール２１８は、機械学習モデルを用いて予測起動時間を生成するように構成されても良い。起動時間予測モジュール２１８は、コンピューティングサービス環境２０２の特定部分内に位置する物理ホスト２３６に配置されたコンピューティングインスタンスの予測起動時間を提供しても良い。例えば、図２に示すように、起動時間予測モジュール２１８は、コンピューティングサービス環境２０２内で実行されても良く、コンピューティングサービス環境２０２内で起動されたコンピューティングインスタンスの予測起動時間を提供しても良い。別の例示的な構成において、起動時間予測モジュール２１８は、任意のコンピューティングサービスの外部にあっても良く、任意の数のコンピューティングサービスからネットワークを経由して予測起動時間を求める要求を受信しても良い。
【００２０】
起動時間を予測する起動時間予測モジュール２１８によって使用され得る機械学習モデルの例は、ランダムフォレストモデルなどの回帰モデル、ｅｘｔｒｅｍｅｌｙ  ｒａｎｄｏｍｉｚｅｄ  ｔｒｅｅｓモデル、ＡｄａＢｏｏｓｔモデル、確率的勾配降下モデル、サポートベクターマシンモデル、ならびに本明細書で特に言及されない他の種類の機械学習モデルを含んでも良い。
【００２１】
訓練モジュール２２２は、各種データソースから特徴を取得するように構成されても良い。次いで、これらの特徴を使用して、起動時間予測モジュール２１８によって使用される機械学習モデルを訓練しても良い。一例において、特徴及び訓練データは、データウェアハウス２２４から読み出されても良い。特徴データは、データウェアハウス２２４に記憶された、コンピューティングサービス２０２内で以前にコンピューティングインスタンスを起動したことに基づく起動メトリックであって良い。実例として、情報管理サービス２３８は、データウェアハウス２２４に起動関連データを送って（例えば、アップロードして）、当該データを訓練モジュール２２２にとってアクセス可能としても良い。データウェアハウス２２４から読み出されるデータは、コンピューティングインスタンスの起動と関連した最近の（例えば、数秒、数分もしくは数時間古い）データまたは（例えば、数日、数週間もしくは数ヶ月古い）履歴データであって良い。
【００２２】
データウェアハウス２２４から読み出された特徴データは、コンピューティングインスタンスの起動時間に影響を及ぼすと判定された起動特徴２０８を用いて整列されても良い。実例として、分析を行って、どの起動特徴２０８が起動時間に影響を及ぼすかを判定しても良く、次いで、その起動特徴２０８に関する特徴データをデータウェアハウス２２４から選択するようにクエリを作成しても良い。いくつかの例において、起動特徴２０８に関する特徴データを、その特徴データが大きくなり得るか、または冗長となり得るときに処理し、集約しても良い。例えば、特徴データを処理して、簡約的に表現した一式の起動特徴（例えば、特徴ベクトル）にしても良い。起動特徴２０８を取得した後、次いで、その起動特徴２０８を用いて機械学習モデルを訓練しても良い。
【００２３】
前述したように、機械学習モデルを、履歴データを用いて最初に訓練しても良く、次いで、オンデマンドベースに従って機械学習モデルが予測起動時間を提供し得る運用状態に置いても良い。訓練モジュール２２２は、起動特徴２０８の履歴データをデータウェアハウス２２４から取得し、その履歴データを機械学習モデルに提供するように構成されても良い。履歴データを使用して、機械学習モデルを最初に訓練しても良い。機械学習モデルの次の訓練は、機械学習モデルを運用から外し（例えば、オフラインとし）、履歴データ（例えば、以前の日、週、月などに由来するデータ）を用いて機械学習モデルを訓練することによって実行されても良い。あるいは、次の訓練を、機械学習モデルが運用状態に（例えば、オンラインに）ある間、最近のデータ（例えば、以前の数分、数時間、日などに由来するデータ）を用いて実行しても良い。
【００２４】
起動特徴モジュール２２０は、予測起動時間を求める要求と関連した起動特徴２０８を取得するように構成されても良い。次いで、取得した起動特徴２０８を、機械学習モデルへの入力として提供しても良い。実例として、（例えば、顧客装置２２８を介した）コンピューティングインスタンスの起動を求める要求は、コンピューティングサービス２０２の制御プレーン２４０によって受信されても良い。起動要求は、単一のコンピューティングインスタンスまたは任意の数のコンピューティングインスタンス（例えば、数十、数百または数千のコンピューティングインスタンス）に関するものであって良い。起動要求を受信すると、特に、マシンイメージの特徴、物理ホストの特徴及び顧客構成の特徴（例えば、ストレージデバイス、ネットワークタイプ、地理的領域など）を指定する起動構成をコンピューティングインスタンスに対して決定しても良い。その後、起動構成（または起動構成に対する参照）を、予測起動時間を求める要求に含めても良い。
【００２５】
予測起動時間を求める要求をサーバ２０４が受信すると、起動特徴モジュール２２０に起動構成を提供しても良く、そこで、その起動構成を評価し、当該起動構成に対応する起動特徴２０８に関するデータを収集しても良い。起動構成の仕様に基づき、次いで、起動特徴２０８に関するデータを取得しても良い。
【００２６】
起動特徴２０８について収集されたデータを、起動時間予測モジュール２１８に提供し、機械学習モデルに入力しても良い。次いで、起動時間予測モジュール２１８は、アルゴリズムを介して予測起動時間を生成しても良い。このアルゴリズムは、起動時間予測モジュール２１８に提供された起動特徴２０８を評価することによって予測起動時間を決定する。一例として、起動時間予測モジュール２１８によって使用される機械学習モデルは、複数の決定木を含んでも良い。この場合、それらの決定木に起動特徴２０８が入力され、回帰を用いて、決定木の出力から予測起動時間が算出される。次いで、機械学習モデルによって生成された予測起動時間を、前述したようなコンピューティングサービス２０２と関連した各種目的のために使用しても良い。
【００２７】
システム２００に含まれる物理ホスト２３６は、単一の物理ホスト２３６上で複数のコンピューティングインスタンスを管理するインスタンスマネージャ（すなわち、ハイパーバイザ、仮想マシンモニタ（ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ  ｍｏｎｉｔｏｒ：ＶＭＭ）または別の種類のプログラム）を実行するように構成されたサーバコンピュータであって良い。物理ホスト２３６は、様々な地理的領域２１０内のデータセンターに位置しても良い。その結果、コンピューティングインスタンスの起動時間は、コンピューティングインスタンスをホストするために選択された物理ホスト２３６の地理的領域２１０に応じて影響を受ける場合がある。また、起動時間は、アーキテクチャ、ブランドなどの、物理ホスト２３６の他の属性によって影響を受ける場合もある。
【００２８】
マシンイメージ２１６は、予め設定された仮想マシンイメージ（例えば、仮想電化製品）であって良く、この仮想マシンイメージは、インスタンスマネージャによって実行されても良い。マシンイメージ２１６は、コンピューティングインスタンスのためのマシン実行可能なパッケージを含んでも良い。このパッケージには、オペレーティングシステム、アプリケーションサーバ及び各種アプリケーションが含まれても良く、それらはいずれも、コンピューティングインスタンスの起動時間に影響を及ぼす場合がある。更に、マシンイメージ２１６は、記憶ボリュームへのマッピングを含んでも良い。この記憶ボリュームは、コンピューティングインスタンスが起動されるときに、対応するコンピューティングインスタンスに接続される。
【００２９】
実例として、マシンイメージ２１６は、ブロックレベルの記憶ボリュームに記憶されても良く、または、ネットワークファイル保存サービスに記憶されても良い。マシンイメージ２１６の記憶領域は、コンピューティングインスタンスの起動時間に影響を及ぼす場合がある。例えば、ネットワークファイル保存サービスにマシンイメージ２１６を記憶するときには、マシンイメージ２１６をネットワークを介して容易に転送するためにマシンイメージ２１６を圧縮する場合がある。その結果、コンピューティングインスタンスをホストするために選択された物理ホスト２３６にマシンイメージ２１６を転送した後、マシンイメージ２１６を解凍する更なる動作により、コンピューティングインスタンスの起動時間が増加し得る。
【００３０】
システム２００に搭載された各種のプロセス及び／または他の機能を、１つ以上のメモリーモジュール２３２と通信する１つ以上のプロセッサ２３０上で実行しても良い。システム２００は、例えば、複数のコンピューティングデバイス（例えば、物理ホスト２３６及びサーバ２０４）を含んでも良い。これらのコンピューティングデバイスは、１つ以上のサーババンクもしくはコンピュータバンクまたは他の構成に配置される。
【００３１】
用語「ｄａｔａ  ｓｔｏｒｅ（データ記憶装置）」は、データを記憶し、データにアクセスし、データを編成し、かつ／またはデータを読み出すことができる任意のデバイスまたはそのようなデバイスの組み合わせを指す場合がある。この装置は、任意の組み合わせ及び数のデータサーバ、リレーショナルデータベース、オブジェクト指向データベース、クラスタストレージシステム、データストレージデバイス、データウェアハウス、フラットファイル及びデータ記憶構造を、集約され、分散され、またはクラスタ化された任意の環境内に含んでも良い。データ記憶装置の記憶システム構成要素は、ストレージエリアネットワーク（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ：ＳＡＮ）、クラウドストレージネットワーク、揮発性ＲＡＭまたは不揮発性ＲＡＭ、光学媒体またはハードディスク型媒体）などの記憶システムを含んでも良い。理解できるように、データ記憶装置は、複数のデータ記憶装置を表しても良い。
【００３２】
いくつかの例において、顧客は、顧客装置２２８を利用して、コンピューティングインスタンスの起動を要求し、その後、コンピューティングインスタンスにアクセスしても良い。顧客装置２２８は、ネットワーク２２６を介してデータを送受信することができる任意の装置を含んでも良い。顧客装置２２８は、例えば、コンピューティングデバイスなどの、プロセッサベースのシステムを備えても良い。
【００３３】
ネットワーク２２６は、イントラネット、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、無線データネットワーク、またはその他のかかるネットワークもしくはこれらの組み合わせを含む、任意の有用なコンピューティングネットワークを含んでも良い。上記のシステムに利用される構成要素は、少なくとも部分的には、選択されたネットワーク及び／または環境の種類に依存し得る。ネットワークを介した通信は、有線接続または無線接続及びこれらの組み合わせによって可能となり得る。
【００３４】
図２は、ある複数の処理モジュールをこの技術に関連して検討しても良く、これらの処理モジュールをコンピューティングサービスとして実装しても良いことを示している。１つの例示的な構成において、モジュールは、サーバまたは他のコンピュータハードウェア上で実行される１つ以上のプロセスを備えたサービスとみなされても良い。かかるサービスは、一元的にホストされる機能またはサービスアプリケーションであって良い。この機能またはサービスアプリケーションは、要求を受信しても良く、他のサービスまたは消費者装置への出力を提供しても良い。例えば、サーバ、仮想化されたサービス環境、グリッドまたはクラスタコンピューティングシステムでホストされるサービスを提供するモジュールは、オンデマンドコンピューティングとみなされても良い。各モジュールについてＡＰＩを提供することにより、第２のモジュールが、第１のモジュールに要求を送信し、そこからの出力を受信できるようにしても良い。かかるＡＰＩにより、第三者が、モジュールとインターフェースをとり、要求を行い、モジュールからの出力を受信できるようにしても良い。図２は、上記の技術を実装し得るシステムの例を示しているが、多くの他の類似の、または異なる環境も可能である。上記で検討し、説明した例示的な環境は、単に代表的なものであり、限定ではない。
【００３５】
図３は、複数のコンピューティングインスタンス３０４ａ〜ｄを実行し、管理するのに使用され得る例示的なコンピューティングサービス環境３００を示すブロック図である。特に、図示したコンピューティングサービス環境３００は、本明細書で説明した技術が使用され得る１つの環境を示している。コンピューティングサービス環境３００は、１種類の環境であって良い。この環境は、例えば、コンピューティングインスタンス３０４ａ〜ｄをホストするのに使用され得る各種の仮想化されたサービスリソースを含む。
【００３６】
コンピューティングサービス環境３００は、コンピューティング能力、記憶能力及びネットワーク能力をソフトウェアサービスとして最終受益者層に提供することが可能であっても良い。一例において、コンピューティングサービス環境３００は、組織によって、または組織を代表して、当該組織のために構築されても良い。すなわち、コンピューティングサービス環境３００は、「プライベートクラウド環境」を提供しても良い。別の例において、コンピューティングサービス環境３００は、マルチテナント環境に対応しても良い。この場合、複数の顧客が別々に運用しても良い（すなわち、パブリッククラウド環境）。一般的に言えば、コンピューティングサービス環境３００は、以下のモデル、すなわち、「ＩａａＳ」（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）、「ＰａａＳ」（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）及び／または「ＳａａＳ」（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）を提供しても良い。他のモデルを提供しても良い。ＩａａＳモデルの場合、コンピューティングサービス環境３００は、物理リソースまたは仮想マシンリソース及び他のリソースとしてコンピュータを提供しても良い。更に後述するように、仮想マシンは、ハイパーバイザによってゲストとして実行されても良い。ＰａａＳモデルは、オペレーティングシステム、プログラミング言語実行環境、データベース及びウェブサーバを含み得るコンピューティングプラットフォームを提供する。
【００３７】
アプリケーション開発者は、基本となるハードウェア及びソフトウェアを購入し、管理するコストを負担することなく、自身のソフトウェアソリューションをコンピューティングサービスプラットフォーム上で開発し、実行しても良い。ＳａａＳモデルにより、コンピューティングサービス環境３００においてアプリケーションソフトウェアをインストール及び運用することが可能となる。最終顧客は、デスクトップコンピュータ、ラップトップ、タブレット、スマートフォンなどの、例えば、ウェブブラウザまたは他の軽量なクライアントアプリケーションを実行するネットワーク接続のクライアント装置を用いてコンピューティングサービス環境３００にアクセスしても良い。当業者は、コンピューティングサービス環境３００を「クラウド」環境として説明しても良いことを認めるであろう。
【００３８】
特に図示したコンピューティングサービス環境３００は、複数の物理ホスト３０２ａ〜ｄを含んでも良い。４つの物理ホストを示しているが、任意の数を使用しても良く、大規模データセンターは、数千の物理ホスト３０２ａ〜ｄを含んでも良い。コンピューティングサービス環境３００は、コンピューティングインスタンス３０４ａ〜ｄを実行するためのコンピューティングリソースを提供しても良い。コンピューティングインスタンス３０４ａ〜ｄは、例えば、仮想マシンであって良い。仮想マシンは、物理マシンと同様にアプリケーションを実行するマシン（すなわち、コンピュータ）に対するソフトウェア実装のインスタンスであって良い。仮想マシンの例において、各物理ホスト３０２ａ〜ｄは、インスタンスを実行することができるインスタンスマネージャ３０８ａ〜ｄを実行するように構成されても良い。インスタンスマネージャ３０８ａ〜ｄは、ハイパーバイザ、仮想マシンモニタ（ＶＭＭ）、または単一の物理ホスト上で複数のコンピューティングインスタンス３０４ａ〜ｄを実行することを可能にするように構成された別の種類のプログラムであって良い。加えて、各コンピューティングインスタンス３０４ａ〜ｄは、１つ以上のアプリケーションを実行するように構成されても良い。
【００３９】
１つ以上のサーバコンピュータ３１４及び３１６は、コンピューティングサービス環境３００及びコンピューティングインスタンス３０４ａ〜ｄの運用を管理するためのソフトウェアコンポーネントを実行するために予約されても良い。例えば、サーバコンピュータ３１４は、物理ホスト３０２ａ〜ｄ上で起動されるコンピューティングインスタンスの予測起動時間を求める要求に応答し得る予測起動時間サービスを実行しても良い。
【００４０】
サーバコンピュータ３１６は、管理コンポーネント３１８を実行しても良い。顧客は、管理コンポーネント３１８にアクセスして、顧客によって購入されたコンピューティングインスタンス３０４ａ〜ｄの運用の各種態様を設定しても良い。例えば、顧客は、コンピューティングインスタンス３０４ａ〜ｄを設定し、コンピューティングインスタンス３０４ａ〜ｄの構成を変更しても良い。
【００４１】
展開コンポーネント３２２は、コンピューティングインスタンス３０４ａ〜ｄの展開に際して顧客を支援するのに使用されても良い。展開コンポーネント３２２は、コンピューティングインスタンス３０４ａ〜ｄと関連したアカウント情報にアクセスしても良い。このアカウント情報には、アカウントの所有者の名前、クレジットカード情報、所有者の国などがある。展開コンポーネント３２２は、顧客から情報を受信しても良い。この情報には、コンピューティングインスタンス３０４ａ〜ｄがどのように構成され得るかを記述するデータが含まれる。例えば、この構成は、オペレーティングシステムを含んでも良く、コンピューティングインスタンス３０４ａ〜ｄにインストールされる１つ以上のアプリケーションを提供しても良く、コンピューティングインスタンス３０４ａ〜ｄを構成するために実行されるスクリプト及び／または他の種類のコードを提供しても良く、アプリケーションキャッシュをどのように用意すべきかを指定するキャッシュロジック及び他の種類の情報を提供しても良い。展開コンポーネント３２２は、顧客提供の構成及びキャッシュロジックを利用して、コンピューティングインスタンス３０４ａ〜ｄを構成し、準備し、起動しても良い。構成、キャッシュロジック及び他の情報は、顧客が管理コンポーネント３１８にアクセスすることによって、または、この情報を展開コンポーネント３２２に直接提供することによって指定されても良い。
【００４２】
顧客アカウント情報３２４は、マルチテナント環境の顧客と関連した任意の所望の情報を含んでも良い。例えば、顧客アカウント情報は、顧客の固有識別子、顧客アドレス、課金情報、ライセンス情報、インスタンスを起動するためのカスタマイズパラメータ、スケジュール情報などを含んでも良い。上述したように、顧客アカウント情報３２４は、ＡＰＩ要求に対する非同期応答を暗号化する際に使用されるセキュリティ情報を含んでも良い。「非同期」により、初期要求の後の任意の時点で、かつ異なるネットワーク接続でＡＰＩ応答がなされても良いことが示される。
【００４３】
ネットワーク３１０を利用して、コンピューティングサービス環境３００、物理ホスト３０２ａ〜ｄ及びサーバコンピュータ３１６を相互接続しても良い。ネットワーク３１０は、ローカルエリアネットワーク（  ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＬＡＮ）であっても良く、ワイドエリアネットワーク（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ：ＷＡＮ）３１２またはインターネットに接続されても良い。それにより、最終顧客は、コンピューティングサービス環境３００にアクセスしても良い。図３に示したネットワークトポロジは簡略化されたものであり、更に多くのネットワーク及びネットワークデバイスを利用して、本明細書に開示された各種のコンピューティングシステムを相互接続しても良い。
【００４４】
次に図４に移ると、図は、予測起動時間を生成するのに使用される機械学習モデル４１６を構成し、訓練する例示的な方法４００を示している。ブロック４０６のように、起動特徴の選択は、各種のコンピューティングインスタンスの起動を分析してコンピューティングインスタンスの起動時間に影響を及ぼす起動特徴を判定することによって実行されても良い。例えば、コンピューティングサービス環境内の物理ホスト上でコンピューティングインスタンスを起動することに関する各種特徴を、それらの特徴を監視することが可能な場合に識別しても良い。
【００４５】
起動特徴の例は、物理ホスト上で競合するコンピューティングインスタンスの数、物理ホスト上で実行中のコンピューティングインスタンスの数、コンピューティングインスタンスを作成するのに使用されるマシンイメージを含むデータストレージのタイプ、コンピューティングインスタンスによって使用されるカーネルイメージ、物理ホストのアーキテクチャ、コンピューティングインスタンスの仮想化タイプ、物理ホストがホストすることのできるコンピューティングインスタンスの最大数、コンピューティングインスタンスの起動を開始したときのコンピューティングインスタンスによる物理ホストの占有率、物理ホストが位置する地理的領域、物理ホストのハードウェアタイプ、物理ホストのハードウェアベンダ、ならびにコンピューティングインスタンスのオペレーティングシステム、ネットワークタイプ、データ記憶装置及びサイズを含み得るが、これらに限定されることはない。
【００４６】
コンピューティングインスタンスの起動時間に影響を及ぼすと判定された起動特徴を分類しても良い。例えば、起動特徴のカテゴリは、コンピューティングインスタンスの起動の各種態様に基づいても良い。実例として、起動特徴は、マシンイメージの起動特徴、物理ホストの起動特徴及び顧客構成の起動特徴に分類されても良い。
【００４７】
一例において、識別された起動特徴を、コンピューティングインスタンスの起動時間に対する起動特徴の影響に従ってソートし、または順位付けても良く、起動時間に最も大きな影響を及ぼす起動特徴を、起動時間を予測するために使用すべき特徴として選択しても良い。例えば、起動特徴を分析して、それぞれの起動特徴が起動時間に及ぼす寄与率を決定しても良い。起動時間に最も大きく寄与するものとして識別された起動特徴を、機械学習モデルへの入力として選択しても良い。任意の数の起動特徴を選択しても良く、起動特徴の選択は、単に起動時間に最も大きな影響を及ぼす起動特徴に限定されなくても良いことに留意すべきである。
【００４８】
起動特徴を識別した後、次いで、起動特徴に関する起動特徴データ４０２を、起動特徴と関連したデータを含むデータソースから取得しても良い。図示したように、起動特徴データ４０２は、例えば、コンピューティングサービス管理データ、目録データ（例えば、物理ホスト情報）、ならびにコンピューティングサービスと関連した他のデータを含むデータ記憶装置から取得されても良い。起動特徴データ４０２を正規化して、種々のデータソースから取得された起動特徴データ４０２を機械学習モデル４１６に入力できるようにしても良い。起動特徴データ４０２は、訓練データ４１０、交差検証データ４１２及びテストデータ４１４に区分されても良い。例えば、ある比率の起動特徴データ４０２を、テストデータ４１４及び交差検証データ４１２としてランダムに選択しても良く、残りの起動特徴データ４０２を、機械学習モデル４１６を訓練するための訓練データ４１０として使用しても良い。
【００４９】
機械学習モデル４１６は、任意の利用可能な機械学習アルゴリズムの中から選択されても良い。一例において、複数の回帰機械学習モデルをテストして、起動時間の許容可能な近似を提供する機械学習モデルを決定しても良い。機械学習モデルを生成することの一態様は、ブロック４０８のように、起動特徴に対する機械学習モデル４１６の適合度となる機械学習パラメータのパラメータ値検索を実行することであって良い。機械学習パラメータ（すなわち、決定木の深さの設定などの、機械学習モデル４１６を構成するのに使用されるパラメータ）は、機械学習モデル４１６が訓練データ４１０にどのようにフィットするかに影響を及ぼす場合がある。一例において、グリッド検索または勾配降下アルゴリズムを使用して、パラメータ値の検索を実行しても良い。別の例において、機械学習モデル４１６のパラメータ空間がパラメータ値探索を完全に実行するには大きすぎる可能性があるときには、進化的アルゴリズム（例えば、分散遺伝的アルゴリズム）、群れアルゴリズム（例えば、粒子群最適化）、焼きなまし法または同様のアルゴリズムを使用しても良い。
【００５０】
機械学習モデル４１６を選択した後、訓練データ４１０を用いて、その機械学習モデル４１６を訓練しても良い。次いで、交差検証データ４１２及びテストデータ４１４を機械学習モデル４１６に通して、機械学習モデルの出力が、履歴に記録されている別のケースを表すかどうかをテストしても良い。その後、ブロック４１８のように、データ分析を実行して、機械学習モデル４１６が実起動時間と比較してどの程度起動時間を予測することができたかを求めても良い。２つ以上の機械学習モデル４１６をテストした後、ブロック４２０のように、機械学習モデル４１６の結果を比較して、より良好に機能する機械学習モデル４１６を特定しても良く、次いで、その機械学習モデルを選択し、運用環境に配置しても良い。
【００５１】
図５は、予測起動時間が使用され得る方法５００の一例を示すフロー図である。例示的な方法５００は、予測起動時間を用いてＳＬＡ起動時間に違反する可能性を予測する場合について示されている。ＳＬＡ起動時間は、一例において、コンピューティングサービスプロバイダがサービス契約の一部として提供するように同意したコンピューティングインスタンスの起動時間であって良い。このように、コンピューティングサービスプロバイダは、ＳＬＡ起動時間に実際に違反する前にＳＬＡに違反する可能性があると通知を受けることを望む場合があるが、これは、コンピューティングサービスプロバイダがそれに応じて行動することが可能となるためである。
【００５２】
ブロック５０２で始まって、１つ以上のコンピューティングインスタンスをコンピューティングサービス内で起動することを要求する起動要求を受信しても良い。例えば、この要求は、コンピューティングサービス環境内で１つのコンピューティングインスタンスまたは一群のコンピューティングインスタンスを起動することを望む顧客によってなされても良い。起動要求を受信すると、起動サービスは、起動される１つ以上のコンピューティングインスタンスに関する起動構成を識別しても良い。
【００５３】
ブロック５０４のように、起動要求を行っている顧客と関連したＳＬＡを識別しても良い。このＳＬＡは、特に、コンピューティングインスタンスのＳＬＡ起動時間を指定しても良い。実例として、ＳＬＡ起動時間は、コンピューティングサービスが起動要求を受信してから、コンピューティングインスタンスが動作している（例えば、ブートアッププロセスを開始している）時間までの時間であって良い。従って、起動要求を行っている顧客は、コンピューティングインスタンスがＳＬＡ起動時間内で動作可能となることを予想し得る。
【００５４】
起動要求を受信し、起動構成及びＳＬＡ起動時間を特定した後、ブロック５０６のように、コンピューティングインスタンスの予測起動時間を取得しても良い。例えば、前述したように予測起動時間を生成する予測起動時間サービスに対して要求がなされても良い。実例として、予測起動時間を求める要求は、起動構成、または１つ以上のコンピューティングインスタンスの起動構成に対する参照を含んでも良い。次いで、予測起動時間サービスは、起動構成に少なくとも部分的に基づいて起動特徴を識別し、予測起動時間を出力する機械学習モデルにその起動特徴を入力することにより、１つ以上のコンピューティングインスタンスの予測起動時間を生成しても良い。
【００５５】
ブロック５０８のように、次いで、予測起動時間をＳＬＡ時間と比較して、ブロック５１０のように、予測起動時間がＳＬＡ起動時間より長いかどうかを判定しても良い。予測起動時間とＳＬＡ起動時間との比較により、ＳＬＡ起動時間を達成するか、またはそれに違反する可能性があるかどうかの指摘が提示されても良い。
【００５６】
予測起動時間がＳＬＡ起動時間より長くない場合、ブロック５１４のように、１つ以上のコンピューティングインスタンスを起動しても良い。予測起動時間がＳＬＡ時間より長い場合、ブロック５１２のように、潜在的なＳＬＡ起動時間への違反に応答して所定の処置を実行しても良い。所定の処置の一例は、ＳＬＡ起動時間を達成する可能性がないとコンピューティングサービスの運用者及び／または顧客に通知することを含んでも良い。このように、コンピューティングサービスの運用者及び／または顧客は、起動時間を増加させる可能性のある処置を実行することにより、想定されるＳＬＡ起動時間への違反を減らすか、または抑制するように試みても良い。例えば、コンピューティングサービスプロバイダは、コンピューティング能力を提供している一群の物理ホストから、起動時間を増加させている物理ホストを除去しても良い。あるいは、または加えて、顧客に対し、コンピューティングインスタンスの起動構成の態様であって、顧客による調整の範囲内であり得る態様、ならびに、コンピューティングサービスの運用者及び／または顧客が実行し得るもののうち本明細書で特に説明されていない他の処置を修正するように推奨しても良い。
【００５７】
１つの例示的な構成において、ＳＬＡ起動時間に違反する可能性があると判定されると、コンピューティングプロセスは、コンピューティングインスタンスが起動されるコンピューティングサービス環境の状態を分析して、ＳＬＡ起動時間に対する違反を防ぐ処置を実行することができるかどうかを判定しても良い。実行され得る処置の一例として、利用可能なコンピューティング能力を分析して、コンピューティング能力を高める別の物理ホストを追加することによって起動時間が増加し得るかどうかを判定しても良い。例えば、一群の物理ホストは、複数のコンピューティングインスタンスをホストするために利用可能なコンピュータ能力を提供し得る。一群の物理ホストを分析して、一群の物理ホストがいくつのコンピューティングインスタンスをホストすることが可能となり得るかを求め、更に、一群の物理ホストがいくつのコンピューティングインスタンスを現在ホストしている（例えば、コンピューティングインスタンスを実行している）かを求めても良い。分析の結果に基づき、別の物理ホストを一群の物理ホストに追加して、利用可能なコンピューティング能力を高めても良い。
【００５８】
想定されるＳＬＡ起動時間への違反に応答して実行され得る処置の別の例として、コンピューティング能力を提供している一群の物理ホストに含まれる各物理ホストを分析して、物理ホストが起動時間に負の影響を及ぼし得るかどうかを判定しても良い。具体例として、一群の物理ホストに含まれる過負荷状態の物理ホストは、複数のコンピューティングインスタンスがその過負荷状態の物理ホスト上で同時に起動されているため、起動時間に影響を及ぼす場合がある。例えば、過負荷状態の物理ホストは、コンピューティングインスタンスをホストするために利用可能なコンピュータ能力を備えているように見える可能性があるが、過負荷状態の物理ホストが処理している複数のコンピューティングインスタンスの起動が原因で、過負荷状態の物理ホスト上でのコンピューティングインスタンスの起動時間がＳＬＡ起動時間を超える場合がある。このように、コンピューティングインスタンスをホストするために利用可能であるとみなされる一群の物理ホストから、過負荷状態の物理ホストを除去しても良い。具体的には、（例えば、第１の予測起動時間が過負荷状態の物理ホストを含んでいたために）コンピューティングインスタンスの第２の予測起動時間を生成する前に、過負荷状態の物理ホストを、利用可能なコンピューティング能力から除去しても良い。次いで、第２の予測起動時間を生成しても良い。これにより、過負荷状態の物理ホストを含んだ利用可能なコンピューティング能力に基づく第１の予測起動時間と比較してより速い起動時間の予測が得られる場合がある。
【００５９】
想定されるＳＬＡ起動時間への違反に応答して実行され得る処置の更に別の例として、コンピューティングインスタンスの起動構成を分析して、その起動構成の変化によって起動時間が増加し得るかどうかを判定しても良い。実例として、起動構成は、コンピューティングインスタンスを起動するのに使用されるパラメータ及びコンピューティングリソースを指定しても良い。これらのパラメータ及びコンピューティングリソースは、コンピューティングインスタンスの予測起動時間に影響を及ぼす場合がある。このように、起動構成を分析して、起動構成が変化してもＳＬＡ起動時間に違反しない予測起動時間となり得るかどうかを判定しても良い。具体例として、起動構成は、コンピューティングインスタンスを起動する地理的領域を指定しても良い。分析を実行して、異なる地理的領域でコンピューティングインスタンスを起動することによってより良好な予測起動時間となるかどうかを判定しても良い。分析により、異なる地理的領域によってより良好な予測起動時間となり得ると判定された場合、その異なる地理的領域を含むように起動構成を変更しても良い。
【００６０】
上記の運用の代わりに、または加えて、ＳＬＡ起動時間への違反を表す特徴（例えば、ＳＬＡ違反特徴）を、コンピューティングインスタンスの起動がＳＬＡ起動時間に違反し得るかどうかを示す分類を出力する機械学習分類モデルへの入力として提供しても良い。例えば、ＳＬＡ違反特徴を、機械学習分類モデルに提供される他の特徴と共に考慮しても良い。アルゴリズム（例えば、分類器）を用いて、機械学習モデルに提供された入力特徴データをカテゴリにマッピングしても良い。従って、予測起動時間の特徴がＳＬＡ起動時間の特徴より大きくなり得る例において、機械学習分類モデルは、コンピューティングインスタンスの起動時間がＳＬＡ起動時間に違反する可能性があることを示す分類を出力し得る。
【００６１】
図６は、コンピューティングインスタンスの起動時間を予測する例示的な方法６００を示すフロー図である。ブロック６１０で始まって、コンピューティングサービス環境内の物理ホスト上でコンピューティングインスタンスを起動することと関連した予測起動時間を求める要求を受信しても良い。予測起動時間は、コンピューティングインスタンスがペンディング状態にある時間（すなわち、コンピューティングインスタンスリソースを設定するサービスコールを実行すること、コンピューティングインスタンスをホストする物理ホストを識別すること、及びその物理ホスト上でコンピューティングインスタンスを作成すること）から、コンピューティングインスタンスが実行状態となる時間（すなわち、コンピューティングインスタンスのブートの開始）までであって良い。いくつかの例において、使用可能なコンピューティングインスタンス（例えば、ブートされたコンピューティングインスタンス）を顧客が受け取る時間は、コンピューティングインスタンスのブート時間を含むことによって予測起動時間に含まれても良い。このブート時間は、コンピューティングインスタンスの内部構成によって影響を受ける場合がある。
【００６２】
ブロック６２０のように、コンピューティングサービス環境内の物理ホスト上でのコンピューティングインスタンスの起動時間に影響を及ぼすと判定されたコンピューティングインスタンスの起動特徴と関連したデータを取得しても良い。例えば、起動時間に影響を及ぼすと判定され得る起動特徴は、マシンイメージの起動特徴（例えば、コンピューティングインスタンスを作成するのに使用されたマシンイメージの特徴）、物理ホストの起動特徴（例えば、コンピューティングインスタンスをホストするために選択された物理ホストの特徴）、及び顧客によって調整され得る起動構成の特徴（例えば、マシンイメージの構成、地理的領域、同時に起動されるコンピューティングインスタンスの数など）を含み得るが、これらに限定されることはない。一例において、起動特徴と関連したデータを取得した後、次いで、そのデータを正規化しても良い。
【００６３】
ブロック６３０のように、起動特徴（すなわち、起動特徴に関するデータ）を、コンピューティングサービス環境内の選択された物理ホスト上でコンピューティングインスタンスを起動するための予測起動時間を出力する機械学習モデルに入力しても良い。一例において、機械学習モデルは、回帰モデル（例えば、ランダムフォレスト回帰モデル）であって良い。
【００６４】
機械学習モデルは、履歴データを用いて訓練され、次いで、運用環境に配置されても良く、そこで、予測起動時間を求める能動的な要求を機械学習モデルが受信しても良い。１つの例示的な構成において、機械学習モデルを、履歴データ（例えば、前日、前週または前月の起動特徴）を用いて周期的に訓練しても良い。別の例示的な構成において、機械学習モデルが運用環境にある間、起動特徴を（例えば、数秒前、数分前、数時間前の）有効データから抽出して機械学習モデルを再訓練することにより、機械学習モデルを訓練しても良い。それにより、機械学習モデルを、コンピューティングサービス内で生じている変化に適応させることができる。
【００６５】
次いで、機械学習モデルによって生成された予測起動時間を、要求に応答して提供しても良い。一例として、予測起動時間を、コンピューティングインスタンスの物理ホストを選択するコンピューティングインスタンス配置サービスなどのコンピューティングサービス内の各種サービスに提供しても良い。別の例として、予測起動時間を顧客に提供しても良く、それにより、予測起動時間を顧客に連絡するか、またはＳＬＡ起動時間を達成する可能性があるかどうかを顧客に通知する。更に別の例として、予測起動時間をコンピューティングサービスの運用者に提供して、当該コンピューティングサービスの運用者が、その予測起動時間に従ってコンピューティングサービス環境を分析し、修正することができるようにしても良い。理解されるように、予測起動時間は任意の目的のために利用されても良く、従って、本明細書に開示された例に限定されることはない。推定起動時間を用いてコンピューティングサービス環境内の物理ホストにコンピューティングインスタンスを配置することを決定する技術を説明する。コンピューティングインスタンスの配置中、利用可能なコンピューティングスロット（例えば、コンピューティングインスタンスを起動するのに使用されるコンピューティングリソース）を備えた物理ホスト、または短縮された起動時間を提供する一群の物理ホストを、推定起動時間及び他の配置基準を用いてコンピューティングサービス環境内で識別しても良い。コンピューティングインスタンスは、サーバコンピュータとしても知られている物理ホストに配置されても良く、コンピューティングインスタンスは、コンピューティングサービス環境内の物理ホスト上で起動され、または実行されても良い。
【００６６】
一例において、コンピューティングサービス環境内でコンピューティングインスタンスを起動することを求める要求を受信しても良い。この要求は、コンピューティングサービス環境からのコンピューティングサービスを所望する顧客から受信されても良い。コンピューティングサービス環境内のどの物理ホストがコンピューティングインスタンスの配置を実現すべきかについての決定は、コンピューティングインスタンスの起動を求める要求を顧客から受信したときに実行されても良い。例えば、短縮されたコンピューティングインスタンスの起動時間を提供する物理ホストを、コンピューティングサービス環境内の他の物理ホストと比較して識別しても良く、コンピューティングインスタンスは、その物理ホスト上で起動されても良い。従って、コンピューティングインスタンスは、短縮されたコンピューティングインスタンスの起動時間を提供する物理ホストに配置されても良い。用語「ｌａｕｎｃｈ  ｔｉｍｅ（起動時間）」は、１）コンピューティングインスタンスの起動を求める要求を受信してから、２）コンピューティングインスタンスを起動するために選択された物理ホスト上でコンピューティングインスタンスをブートするまで、の時間を実質的に指す場合がある。
【００６７】
１つの構成において、要求に関係するコンピューティングインスタンスと関連したインスタンスの特徴を、コンピューティングインスタンスの配置、またはコンピューティングインスタンスを生成し得るマシンイメージを決定したときに識別しても良い。インスタンスの特徴は、コンピューティングインスタンスを記述しても良く、または特徴付けても良い。例えば、インスタンスの特徴は、コンピューティングインスタンスのサイズ、コンピューティングインスタンスによって使用されるコンピューティングインスタンスのイメージタイプ（例えば、マシンイメージまたはカーネルイメージ）、コンピューティングインスタンスのアーキテクチャタイプ（例えば、３２ビットアーキテクチャまたは６４ビットアーキテクチャ）、コンピューティングインスタンスの仮想化タイプ（例えば、準仮想化またはハードウェア仮想マシン）、及びコンピューティングインスタンスによって使用されるデータ記憶装置のタイプを含み得るが、これらに限定されることはない。インスタンスの特徴は、コンピューティングインスタンスの起動に使用されるオペレーティングシステム（ＯＳ）の種類及びネットワークタイプ（例えば、バーチャルプライベートネットワーク）などの、ユーザーによって調整される特徴を含んでも良い。
【００６８】
１つの構成において、コンピューティングサービス環境の物理ホストと関連した物理ホストの特徴を、コンピューティングインスタンスの配置を決定するときに識別しても良い。物理ホストの特徴は、所与の時刻に（例えば、コンピューティングインスタンスが起動されるときに）、コンピューティングサービス環境内の物理ホストの態様を記述しても良く、または特徴付けても良い。あるいは、物理ホストの特徴は、コンピューティングサービス環境内の定められた一群の物理ホストを記述しても良い。物理ホストの特徴は、物理ホストでホストすることができるコンピューティングインスタンスの最大数、物理ホストと関連したハードウェアタイプ、物理ホストと関連したハードウェアベンダ、コンピューティングインスタンスが起動されるときの物理ホストにおけるコンピューティングインスタンスの占有率、及び物理ホストが位置するゾーンを含み得るが、これらに限定されることはない。加えて、物理ホストの特徴は、物理ホスト上で現在ペンディング中であり、かつ／または実行中であるコンピューティングインスタンスの数を含んでも良い。
【００６９】
コンピューティングインスタンスと関連したインスタンスの特徴及びコンピューティング環境内の物理ホストと関連した物理ホストの特徴を起動時間予測モデルに提供しても良い。起動時間予測モデルは、インスタンスの特徴及び物理ホストの特徴を用いて、コンピューティングサービス環境内の物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を予測しても良い。より具体的には、起動時間予測モデルは、物理ホストＡ上でコンピューティングインスタンスを起動するための推定起動時間、物理ホストＢ上でコンピューティングインスタンスを起動するための推定起動時間、物理ホストＣ上でコンピューティングインスタンスを起動するための推定起動時間などを予測しても良い。起動時間予測モデルは、コンピューティングサービス環境内で起動されるコンピューティングインスタンスの推定起動時間を予測するために、以前に起動された複数のコンピューティングインスタンスの履歴起動時間情報及び特徴を用いて訓練されている機械学習モデル（例えば、回帰モデル）であって良い。
【００７０】
インスタンスの特徴の非限定的な例として、コンピューティングサービス環境内で起動されるコンピューティングインスタンスは、サイズが比較的小さく、３２ビットアーキテクチャからなり、ハードウェア仮想マシン（ＨＶＭ）を使用し、かつ／または、定められたタイプのデータ記憶装置を使用しても良い。コンピューティングインスタンスは、物理ホストＡ、物理ホストＢまたは物理ホストＣ上で起動されても良い。物理ホストＡは、８０％占有されている可能性があり（すなわち、物理ホストＡのためのコンピューティングリソースの８０％が現在使用されている）、現在１０個の他のコンピューティングインスタンスを起動している。物理ホストＢは、５０％占有されている可能性があり、現在６つの他のコンピューティングインスタンスを起動している。物理ホストＣは、２０％占有されている可能性があり、現在２つの他のコンピューティングインスタンスを起動している。起動時間予測モデルは、識別された特徴を受け取っても良く、物理ホストＡ上でコンピューティングインスタンスを起動するための推定起動時間が７０秒であり、物理ホストＢ上でコンピューティングインスタンスを起動するための推定起動時間が４０秒であり、物理ホストＣ上でコンピューティングインスタンスを起動するための推定起動時間が１５秒であると決定しても良い。従って、どの物理ホストがコンピューティングインスタンスの配置を実現すべきかを決定するときに、推定起動時間を考慮しても良い。
【００７１】
上記の例において、短縮された起動時間を提供することができる物理ホストを、他の物理ホストと比較して、コンピューティングインスタンスを配置するために選択しても良い。上記の例において、物理ホストＣを選択してコンピューティングインスタンスを起動しても良い。これは、物理ホストＣが、物理ホストＡ及び物理ホストＢと比較して、短縮された起動時間を提供し得るためである。
【００７２】
代替的な構成において、コンピューティングインスタンスを配置するために選択される物理ホストは、コンピューティングサービス環境内の他の物理ホストと比較して、同時に起動されている最小の数のコンピューティングインスタンスを備えても良い。これは、物理ホスト上で複数同時に起動することにより、コンピューティングインスタンスを起動するための起動時間が増加し得るためである。非限定的な例として、配置の決定がなされているときに、物理ホストＡは、１０個のコンピューティングインスタンスを起動している場合があり、物理ホストＢは、２つのコンピューティングインスタンスを起動している場合があり、物理ホストＣは、１００個のコンピューティングインスタンスを起動している場合がある。従って、物理ホストＢを選択してコンピューティングインスタンスを起動しても良い。これは、物理ホストＢが、物理ホストＡ及び物理ホストＣと比較して、最も短い起動時間を提供することが推測され得るためである。
【００７３】
コンピューティングインスタンスの推定起動時間は、コンピューティングインスタンスの配置を決定するときに使用される多数の配置要因の１つであって良い。例えば、コンピューティングインスタンスの配置に関わる他の要因は、物理ホストの利用率、ライセンスコスト、災害の影響などを含んでも良い。推定起動時間を含む配置要因には、配置要因の重要度に関わる加重値をそれぞれ割り当てても良い。例えば、推定起動時間は配置決定の５０％を占めても良く、物理ホストの利用率は配置決定の３０％を占めても良く、ライセンスコストは配置決定の２０％を占めても良く、災害の影響は配置決定の１０％を占めても良い。
【００７４】
図７は、本技術のモジュールを実行し得るコンピューティングデバイス７１０を示す図である。コンピューティングデバイス７１０は、本技術の高水準の例を実行し得る場合について示されている。コンピューティングデバイス７１０は、複数のメモリデバイス７２０と通信する１つ以上のプロセッサ７１２を含んでも良い。コンピューティングデバイス７１０は、各構成要素のためのローカル通信インターフェース７１８をコンピューティングデバイス内に含んでも良い。例えば、ローカル通信インターフェース７１８は、所望される場合には、ローカルデータバス及び／または任意の関連するアドレスバスもしくは制御バスであって良い。
【００７５】
メモリデバイス７２０は、１つ以上のプロセッサ７１２によって実行可能なモジュール７２４、及びモジュール７２４に関するデータを含んでも良い。例えば、メモリデバイス７２０は、訓練モジュール及び起動特徴モジュールを含んでも良い。モジュール７２４は、前述した機能を実行しても良い。データ記憶装置７２２は、１つ以上のプロセッサ７１２によって実行可能なオペレーティングシステムと共にモジュール７２４に関わるデータ及び他のアプリケーションを記憶するメモリデバイス７２０内に位置しても良い。
【００７６】
他のアプリケーションが、メモリデバイス７２０に記憶されても良く、１つ以上のプロセッサ７１２によって実行可能であって良い。この説明で述べた構成要素またはモジュールは、高いプログラミングレベルの言語を用いてソフトウェアの形態で実装されても良い。この言語は、各手法の組み合わせを用いてコンパイルされ、解釈され、または実行される。
【００７７】
コンピューティングデバイスは、そのコンピューティングデバイスによって使用可能な入出力（ｉｎｐｕｔ／ｏｕｔｐｕｔ：Ｉ／Ｏ）デバイス７１４にアクセスしても良い。ネットワークデバイス７１６及び同様の通信デバイスは、コンピューティングデバイスに含まれても良い。ネットワークデバイス７１６は、インターネット、ＬＡＮ、ＷＡＮまたは他のコンピューティングネットワークに繋がる有線または無線のネットワークデバイスであって良い。
【００７８】
メモリデバイス７２０に記憶されるものとして示した構成要素またはモジュールは、１つ以上のプロセッサ７１２によって実行されても良い。用語「ｅｘｅｃｕｔａｂｌｅ（実行可能な）」は、プロセッサ７１２によって実行され得る形態をとったプログラムファイルを意味する場合がある。例えば、より高水準な言語のプログラムを、メモリデバイス７２０のランダムアクセス部分にロードされ、プロセッサ７１２によって実行され得る形式の機械コードにコンパイルしても良く、あるいは、ソースコードを、別の実行可能プログラムによってロードし、プロセッサによって実行されるメモリのランダムアクセス部分の命令を生成するように解釈しても良い。実行可能プログラムは、メモリデバイス７２０の任意の部分または構成要素に記憶されても良い。例えば、メモリデバイス７２０は、ランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＲＡＭ）、リードオンリーメモリ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ：ＲＯＭ）、フラッシュメモリ、ソリッドステートドライブ、メモリカード、ハードディスク、光ディスク、フロッピーディスク、磁気テープまたは他の任意のメモリ構成要素であって良い。
【００７９】
プロセッサ７１２は、複数のプロセッサを表しても良く、メモリ７２０は、処理回路に対して並列に動作する複数の記憶部を表しても良い。これにより、システムのプロセス及びデータに並列処理チャネルが提供され得る。ローカルインターフェース７１８は、複数のプロセッサと複数のメモリのいずれかの間の通信を容易にするネットワークとして使用されても良い。ローカルインターフェース７１８は、負荷分散、大量データ転送及び同様の方式などの、通信を調整するために設計された別の方式を使用しても良い。
【００８０】
図８は、本技術の一例に係る例示的なコンピューティングサービス環境８００の構成要素を示す図である。コンピューティングサービス環境８００は、ネットワーク８５０を介して複数のクライアント装置８６０と通信するサーバコンピュータ８１０を含んでも良く、サーバコンピュータは、サービスプロバイダ環境８００の制御プレーンの一部であって良い。サーバコンピュータ２１０は、データ記憶装置８３０、及びコンピューティングインスタンスの配置を決定するのに使用される複数のモジュールを含んでも良い。加えて、コンピューティングサービス環境８００は、複数のコンピューティングインスタンスを実行する複数のサーバコンピュータ８４０ａ〜ｃを含んでも良い。
【００８１】
サーバコンピュータ８４０ａ〜ｃは、コンピューティングインスタンスを実行するのに使用され得る利用可能なコンピューティングスロット８４２ａ〜ｃ（例えば、アイドル状態のコンピューティングリソース）を備えても良い。利用可能なコンピューティングスロット８４２ａ〜ｃは、利用可能なコンピューティングスロット８４２ａ〜ｃをその後利用してコンピューティングインスタンスを実行し得る顧客に割り当てられても良い。コンピューティングインスタンスの例は、オンデマンドコンピューティングインスタンス、リザーブドコンピューティングインスタンス及び割り込み可能なコンピューティングインスタンスを含んでも良い。オンデマンドコンピューティングインスタンスは、要求時に顧客が購入し、実行し得るコンピューティングインスタンスであって良い。リザーブドコンピューティングインスタンスは、コンピューティングインスタンスの予約であって良い。顧客は、自身がコンピューティングインスタンスを要求するときに、当該コンピューティングインスタンスが利用可能となる定められた期間だけそのコンピューティングインスタンスを購入し得る。割り込み可能なコンピューティングインスタンスは、割り込み可能なコンピューティングインスタンスに支払われている価格が現在の入札価格を下回らない限り、別のコンピューティングインスタンスタイプによって使用されていないコンピューティングスロット８４２ａ〜ｃにおいて実行され得るコンピューティングインスタンスであって良い。
【００８２】
データ記憶装置８３０に記憶されるデータは、インスタンスの特徴８３２を含んでも良い。インスタンスの特徴８３２は、コンピューティングサービス環境８００内で起動されるコンピューティングインスタンスと関連付けられても良い。加えて、インスタンスの特徴８３２は、コンピューティングインスタンスをコンピューティングサービス環境８００内で起動するためのコンピューティングインスタンスイメージと関連付けられても良い。インスタンスの特徴８３２は、コンピューティングサービス環境８００内で起動されるコンピューティングインスタンスを記述しても良く、または特徴付けても良い。例えば、インスタンスの特徴は、数値または他のスカラー値を有しても良い。
【００８３】
データ記憶装置８３０に記憶されるデータは、物理ホストの特徴８３４を含んでも良い。物理ホストの特徴８３４は、コンピューティングサービス環境８００内の複数の物理ホストと関連付けられても良い。物理ホストの特徴８３４は、コンピューティングインスタンスを潜在的に起動し得るコンピューティングサービス環境８００内の物理ホストを記述しても良く、または特徴付けても良い。例えば、物理ホストの特徴は、数値または他のスカラー値を有しても良い。
【００８４】
データ記憶装置８３０に記憶されるデータは、推定起動時間８３６を含んでも良い。推定起動時間８３６は、コンピューティングサービス環境８００内で起動される複数のコンピューティングインスタンスに関するものであって良い。推定起動時間８３６は、所与のコンピューティングインスタンスに対し、コンピューティングサービス環境８００内の複数の物理ホスト中の各物理ホスト（またはサーバコンピュータ）上でコンピューティングインスタンスを起動するための推定起動時間を指定しても良い。推定起動時間８３６は、品質管理目的、記録の維持または他の用途のためにデータ記憶装置８３０に記憶されても良い。推定起動時間８３６は、起動時間予測モデルを用いて決定されても良い。一例において、起動時間予測モデルは、推定起動時間８３６を決定するときに、コンピューティングインスタンスと関連したインスタンスの特徴８３２及び複数の物理ホストと関連した物理ホストの特徴８３４を使用しても良い。非限定的な例として、３つの異なる物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間８３６は、それぞれ１０秒、５０秒または２分となり得る。
【００８５】
サーバコンピュータ８１０は、コンピューティングインスタンス要求モジュール８２２、推定起動時間予測モジュール８２４、物理ホスト選択モジュール８２６、及び本明細書に詳述されていない他のアプリケーション、サービス、プロセス、システム、エンジンまたは機能を含んでも良い。コンピューティングインスタンス要求モジュール８２２は、コンピューティングサービス環境８００内で１つ以上のコンピューティングインスタンスを起動することを求める要求を受信するように構成されても良い。この要求は、コンピューティングサービス環境８００のコンピューティングサービスを所望する顧客から受信されても良い。この要求は、起動されるコンピューティングインスタンスの数、及び起動されるコンピューティングインスタンスのタイプまたはサイズを含んでも良い。一例において、上記要求は、コンピューティングインスタンスを起動するための特定の地理的領域またはゾーンを指定しても良い。
【００８６】
推定起動時間予測モジュール８２４は、上記要求においてコンピューティングインスタンスと関連したインスタンスの特徴及びコンピューティングサービス環境８００内の複数の物理ホストと関連した物理ホストの特徴を受け取り、または識別するように構成されても良い。インスタンスの特徴は、コンピューティングインスタンスのサイズ、コンピューティングインスタンスを起動するのに使用されるロードイメージであるマシンイメージ、コンピューティングインスタンスのアーキテクチャタイプ、コンピューティングインスタンスの仮想化タイプ、コンピューティングインスタンスによって使用されるデータ記憶装置のタイプなどを含んでも良い。加えて、物理ホストの特徴は、コンピューティングサービス環境８００内の各物理ホストについて、または、コンピューティングサービス環境８００内の定められた一群の物理ホストについて、物理ホストでホストすることができるコンピューティングインスタンスの最大数、ハードウェアタイプ、ハードウェアベンダ、占有率、物理ホストが位置する地理的ゾーン、物理ホスト上で現在ペンディング中または実行中のインスタンスの数などを含んでも良い。
【００８７】
推定起動時間予測モジュール８２４は、コンピューティングサービス環境８００内でコンピューティングインスタンスを起動するための推定起動時間を特定しても良い。推定起動時間予測モジュール８２４は、機械学習モデルを用いて推定起動時間を特定しても良い。機械学習モデルは、インスタンスの特徴及び物理ホストの特徴を所与として推定起動時間を予測しても良い。インスタンスの特徴及び物理ホストの特徴は、コンピューティングインスタンスの推定起動時間に影響を及ぼす場合がある。例えば、あるインスタンスの特徴及び／または物理ホストの特徴（例えば、物理ホスト上でのコンピューティングインスタンスの同時起動数、コンピューティングインスタンスのサイズ）は、コンピューティングインスタンスの推定起動時間を増加させる場合があるのに対し、他のインスタンスの特徴及び／または物理ホストの特徴は、コンピューティングインスタンスの推定起動時間を減少させる場合がある。一例において、機械学習モデルは、以前に起動された複数のコンピューティングインスタンスの履歴起動時間情報を使用してコンピューティングサービス環境８００内で起動されるコンピューティングインスタンスの推定起動時間を予測する回帰モデルであって良い。
【００８８】
物理ホスト選択モジュール８２６は、コンピューティングインスタンスの配置を実現することができるコンピューティングサービス環境８００内の一群の物理ホストから物理ホストを選択するように構成されても良い。物理ホスト選択モジュール８２６は、コンピューティングインスタンスの推定起動時間に基づいて物理ホストを選択しても良い。一例において、物理ホスト選択モジュール８２６は、一群の物理ホスト中の他の物理ホストと比較して、短縮された推定起動時間または最も短い推定起動時間でコンピューティングインスタンスの配置を実現することができる物理ホストを選択しても良い。加えて、物理ホスト選択モジュール８２６は、コンピューティングインスタンスの配置を決定するときに別の配置要因を使用しても良い。別の要因は、物理ホストの利用率、ライセンスコスト及び災害の影響を含み得るが、これらに限定されることはない。推定起動時間及び別の配置要因には、コンピューティングインスタンスの配置を決定するときに、配置要因の重要度に相関する加重値をそれぞれ割り当てても良い。コンピューティングインスタンスは、コンピューティングサービスを顧客に提供するために、配置時に物理ホストにロードされ、そこで実行されても良い。
【００８９】
図９は、コンピューティングサービス環境９００内の物理ホストにコンピューティングインスタンスを配置する例示的なシステム及び関連動作を示す図である。コンピューティングインスタンスは、物理ホストへの配置時にコンピューティングサービスを提供するために起動されても良い。コンピューティングインスタンスの起動を求めるコンピューティングインスタンス要求９１０は、コンピューティングサービス環境９００にて受信されても良い。例えば、顧客は、コンピューティングインスタンス要求９１０を実行して、コンピューティングサービス環境９００からコンピューティングサービスを得るようにしても良い。コンピューティングインスタンスが配置される物理ホストは、所定の目的に従って選択されても良い。この所定の目的は、顧客及び／またはコンピューティングサービス環境９００によって定められても良い。一例において、この所定の目的は、コンピューティングサービス環境９００内の他の物理ホストと比較して、最も速い起動時間を提供することができる物理ホストにコンピューティングインスタンスを配置することを含んでも良い。
【００９０】
コンピューティングインスタンス要求９１０に含まれる速やかに起動すべきコンピューティングインスタンスと関連したインスタンスの特徴９１５、及びコンピューティングサービス環境９００内の複数の物理ホストに関する物理ホストの特徴９２０を識別しても良い。例えば、物理ホスト９５０〜９６０は、物理ホストの特徴９２０に対応するデータのクエリを直接受けても良い。インスタンスの特徴９１５及び物理ホストの特徴９２０は、コンピューティングインスタンス及びコンピューティングサービス環境９００内の物理ホスト９５０〜９６０をそれぞれ記述しても良い。インスタンスの特徴９１５及び物理ホストの特徴９２０を識別することにより、物理ホストにコンピューティングインスタンスを配置できるようにしても良い。より具体的には、配置のために選択される物理ホストは、インスタンスの特徴９１５及び物理ホストの特徴９２０に依存しても良い。先に説明したように、インスタンスの特徴９１５は、コンピューティングインスタンスのサイズ、コンピューティングインスタンスによって使用されるマシンイメージ、コンピューティングインスタンスのアーキテクチャタイプ、コンピューティングインスタンスの仮想化タイプ、コンピューティングインスタンスによって使用されるデータ記憶装置のタイプなどを含んでも良い。加えて、物理ホストの特徴９２０は、コンピューティングサービス環境９００内の各物理ホストについて、または、コンピューティングサービス環境９００内の定められた一群の物理ホストについて、物理ホストでホストすることができるコンピューティングインスタンスの最大数、ハードウェアタイプ、ハードウェアベンダ、占有率、物理ホストが位置する地理的ゾーン、物理ホスト上で現在ペンディング中または実行中のインスタンスの数などを含んでも良い。
【００９１】
インスタンスの特徴９１５及び物理ホストの特徴９２０を機械学習モデル９３０に提供しても良い。機械学習モデル９３０は、インスタンスの特徴９１５及び物理ホストの特徴９２０に基づいて所与の物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を予測する回帰モデルであって良い。機械学習モデル９３０は、コンピューティングインスタンスの推定起動時間を予測するために、以前に起動されたコンピューティングインスタンスの履歴情報（例えば、以前に起動されたコンピューティングインスタンスのタイプ、コンピューティングインスタンスの起動時間、コンピューティングインスタンスを起動した物理ホスト上での同時起動数など）を用いて訓練されていても良い。
【００９２】
一例において、機械学習モデル９３０は、コンピューティングサービス環境９００内の利用可能な各物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を予測しても良い。あるいは、機械学習モデル９３０は、定められた一群の物理ホスト中の各物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を予測しても良い。例えば、機械学習モデル９３０は、物理ホスト９５０上でコンピューティングインスタンスを起動するための推定起動時間、及び物理ホスト９６０上でコンピューティングインスタンスを起動するための推定起動時間を予測しても良い。
【００９３】
機械学習モデル９３０は、推定起動時間を配置モジュール９４０に提供しても良い。配置モジュール９４０は、コンピューティングインスタンスの配置決定（すなわち、どの物理ホストがコンピューティングインスタンスをホストし、または起動すべきか）を実行するときに、推定起動時間を使用しても良い。加えて、配置モジュール９４０は、配置決定を実行するときに、別の配置要因９３５を使用しても良い。別の配置要因９３５は、物理ホストの利用率の配置要因、ライセンスコストの配置要因、及び災害の影響の配置要因を含み得るが、これらに限定されることはない。物理ホストの利用率の配置要因は、コンピューティングサービス環境９００に含まれる物理ホスト間で物理ホストの利用率を最大にするという所定の目的を表しても良い。ライセンスの配置要因は、コンピューティングサービス環境９００に含まれる物理ホストにコンピューティングインスタンスを配置することと関連したソフトウェアライセンスコストを最低限にするという所定の目的を表しても良い。災害の影響の配置要因は、顧客が実行しているコンピューティングインスタンスに対するコンピューティングサービス障害（例えば、物理ホスト障害、ラック障害、可用性ゾーン障害またはハードウェア障害）の影響を最小限にするという所定の目的を表しても良い。
【００９４】
機械学習モデル９３０によって決定された推定起動時間、及び別の配置要因９３５には、コンピューティングインスタンスの配置を決定するときに、配置要因の各重要性を示す加重値をそれぞれ割り当てても良い。換言すれば、コンピューティングサービス環境９００がコンピューティングインスタンスの配置によってどのように影響され得るかに応じて、各配置要因に加重値を割り当てても良い。例えば、物理ホストの利用率を高く維持することが所望される場合、物理ホストの利用率の係数は、比較的大きい加重値を受けても良い。ソフトウェアライセンスコストを最適化することがコンピューティングサービス環境にとってより低い価値である場合、ライセンスコストの配置要因は、利用率の配置要因に割り当てられる加重値と比較して、より小さい加重値を受けても良い。コンピューティングサービス環境９００全体にコンピューティングインスタンスを配置することにより、システム障害が原因で影響を受ける複数の顧客が現在のところ負の影響を受ける可能性がある場合、災害の影響の配置要因に割り当てられる加重値は、比較的大きい値であって良い。非限定的な例として、コンピューティングインスタンスの推定起動時間は、配置モジュール８４０が配置決定を実行するときに５０％加重されても良く、物理ホストの利用率の配置要因は２０％加重されても良く、ライセンスコストの配置要因は１５％加重されても良く、災害の影響の配置要因は１５％加重されても良い。
【００９５】
配置モジュール９４０は、別の配置要因９３５に加えて、コンピューティングインスタンスを起動するための推定起動時間を機械学習モデル９３０から受け取っても良い。配置モジュール９４０は、コンピューティングサービス環境９００の所定の目的に適合するために、どの物理ホストがコンピューティングインスタンスを受け入れるべきかを決定しても良い。一例において、配置モジュール９４０は、短縮されたコンピューティングインスタンスの起動時間または最も短いコンピューティングインスタンスの起動時間を提供する配置のために物理ホストを選択しても良い。
【００９６】
非限定的な例として、配置モジュール９４０は、物理ホスト９５０がコンピューティングインスタンスを２８秒で起動することができると判定する場合がある。加えて、配置モジュール９４０は、物理ホスト９６０がコンピューティングインスタンスを３０秒で起動することができると判定する場合がある。配置モジュール９４０は、コンピューティングインスタンスを配置するために物理ホスト９５０を選択しても良い。これは、物理ホスト９５０がより短い起動時間を提供するためである。
【００９７】
１つの構成において、コンピューティングインスタンスの配置を実現する物理ホストは、コンピューティングインスタンス要求９１０に含まれる配置制約を用いて選択されても良い。一例において、コンピューティングインスタンスを起動することを要求している顧客が、配置制約を提供しても良い。配置制約は、コンピューティングインスタンスの要求９１０がコンピューティングインスタンスのクラスタを起動するように計画しているか否かを示しても良い。配置制約は、コンピューティングインスタンスを起動するときに使用されるハードウェア、オペレーティングシステムまたはネットワークタイプの具体的な種類を示しても良い。加えて、配置制約は、比較的離れて分散している一群の物理ホストとは対照的に、互いに比較的近接している一群の物理ホストにおいてコンピューティングインスタンスを起動すべきどうかを示しても良い。
【００９８】
図１０は、コンピューティングサービス環境１０００にコンピューティングインスタンスを配置することを決定するときに推定接続時間を使用する例示的なシステム及び関連動作を示す図である。コンピューティングインスタンスの起動を求める要求は、（例えば、顧客から）受信されても良い。一例において、この要求は、接続要求１０１０を含んでも良い。接続要求１０１０は、コンピューティングインスタンスが起動されるときに、コンピューティングインスタンスに接続されるアタッチメント（コンピューティングインスタンスアタッチメント）としてのネットワークインターフェース及び／またはネットワークストレージをコンピューティングインスタンスに接続することであって良い。コンピューティングインスタンスを起動するときに使用されるアタッチメントの数及び／またはアタッチメントのサイズがコンピューティングインスタンスの起動時間に影響を及ぼす場合があるため、コンピューティングインスタンスの配置決定を実行するときに接続時間を考慮しても良い。
【００９９】
一例において、機械学習モデル１０３０は、推定接続時間、すなわち、接続を実行する時間を予測しても良い。機械学習モデル１０３０は、推定接続時間を予測するときに、接続要求１０１０、及び接続要求１０１０と関連したアタッチメントの特徴１０２０を使用しても良い。アタッチメントの特徴は、接続要求１０１０に含まれるアタッチメントの数、アタッチメントのサイズ、当該アタッチメントがデータストレージまたはネットワークインターフェースに関するものかどうかなどを含み得るが、これらに限定されることはない。一例において、機械学習モデル１０３０は、過去の接続要求に関する履歴情報を用いて推定接続時間を予測する回帰モデルであって良い。
【０１００】
機械学習モデル１０３０は、推定接続時間を配置モジュール１０４０に提供しても良い。配置モジュール１０４０は、推定接続時間に基づき、コンピューティングインスタンスを配置するための物理ホストを選択しても良い。例えば、配置モジュール１０４０は、推定接続時間に応じて、物理ホスト１０５０、物理ホスト１０６０または物理ホスト１０７０のうちの１つにコンピューティングインスタンスを配置しても良い。一例において、配置モジュール１０４０は、短縮された推定接続時間でコンピューティングインスタンスの配置を実現することができる物理ホストを選択しても良い。
【０１０１】
別の構成において、顧客は、アドホック接続（すなわち、コンピューティングインスタンスを起動した後に追加ストレージを求める要求）を要求しても良い。機械学習モデル１０３０は、アドホック接続要求内の追加ストレージのサイズなどの、当該要求の特性に基づき、追加ストレージを取得するための推定時間を予測しても良い。換言すれば、機械学習モデル１０３０は、過去の追加ストレージの要求に基づき、追加ストレージを取得するための推定時間を決定しても良い。一例において、追加ストレージを提供するための推定時間は、ユーザーインターフェースを介して顧客に提供されても良い。
【０１０２】
図１１は、コンピューティングサービス環境１１００内の複数のトポロジ層１１５０のうちの少なくとも１層から選択される物理領域または地理的領域内の物理ホスト（例えば、サーバ）にコンピューティングインスタンスを配置する例示的なシステム及び関連動作を示す図である。コンピューティングインスタンスの起動を求めるコンピューティングインスタンス要求１１１０は、顧客から受信されても良い。コンピューティングインスタンス及びコンピューティングサービス環境１１００内の物理ホストと関連した特徴１１２０を機械学習モデル１１３０に提供しても良い。機械学習モデル１１３０は、特定の地理的領域内の物理ホスト、ゾーン、データセンター、データラック、物理ホスト、コンピューティングスロットなどの、様々なトポロジ層１１５０の各領域内の物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を決定しても良い。一例において、地理的領域は複数のゾーンを含んでも良く、各ゾーンは複数のデータセンターを含んでも良く、各データセンターは複数のデータラックを含んでも良く、各データラックは複数の物理ホストを含んでも良く、各物理ホストは複数のコンピューティングスロットを含んでも良い。機械学習モデル１１３０は、特定のトポロジ層１１５０の物理ホストにコンピューティングインスタンスを配置することによって起動時間を向上させることが可能であるかどうかを判定しても良い。例えば、機械学習モデル１１３０は、特定ゾーンの第２のデータセンターにコンピューティングインスタンスを配置する場合と比較して、当該特定ゾーンの第１のデータセンターの物理ホストにコンピューティングインスタンスを配置することによって起動時間がより速くなり得ることを示しても良い。機械学習モデル１１３０は、トポロジ層１１３０に関する推定起動時間を配置モジュール１１４０に伝達しても良い。配置モジュール１１４０は、コンピューティングインスタンスの配置を決定する（すなわち、どのトポロジ層１１５０がコンピューティングインスタンスをホストすべきかを選択する）ときに推定起動時間を使用しても良い。
【０１０３】
図１２は、機械学習モデル１２５０を生成して、コンピューティングサービス環境内で起動されるコンピューティングインスタンスの起動時間を予測することを示す例示的なブロック図１２００である。機械学習モデル１２５０は、実起動時間予測データ１２１０を用いて作成されても良い。実起動時間入力データ１２１０は、コンピューティングサービス環境内で以前に起動された複数のコンピューティングインスタンスに関する情報（例えば、起動メトリック）を含んでも良い。そのため、実起動時間入力データ１２１０は、コンピューティングサービス環境内で以前に起動されたコンピューティングインスタンスに関する履歴情報を含んでも良い。加えて、実起動時間入力データ１２１０は、コンピューティングサービス環境内の複数の物理ホストに関する履歴情報を含んでも良い。後述するように、実起動時間入力データ１２１０を変換して、機械学習モデル１２５０を訓練するのに使用しても良い。
【０１０４】
非限定的な例として、実起動時間入力データ１２１０は、コンピューティングインスタンスＡが起動に６０秒かかったことを示し得るが、コンピューティングインスタンスＡは、サイズが比較的大きく、第１のタイプのデータ記憶装置を使用し、３２ビットアーキテクチャを使用し、５つの他のコンピューティングインスタンスを同時に起動している物理ホスト上で起動された。別の非限定的な例として、実起動時間入力データ１２１０は、コンピューティングインスタンスＢが起動に１５秒かかったことを示し得るが、コンピューティングインスタンスＢは、サイズが比較的小さく、第２のタイプのデータ記憶装置を使用し、６４ビットアーキテクチャを使用し、他のコンピューティングインスタンスを同時に起動していない物理ホスト上で起動された。
【０１０５】
実起動時間入力データ１２１０を特徴選択・正規化モジュール１２２０に提供しても良い。特徴選択・正規化モジュール１２２０は、実起動時間入力データ１２１０をモデルの特徴に変換しても良い。換言すれば、モデルの特徴は、以前に起動されたコンピューティングインスタンスの特性、及びコンピューティングインスタンスを以前に起動した物理ホストの特性に関するものであって良い。モデルの特徴は、インスタンスの特徴と物理ホストの特徴に分類されても良い。
【０１０６】
インスタンスの特徴は、コンピューティングインスタンスのサイズ、コンピューティングインスタンスによって使用されるマシンイメージ（例えば、マシンイメージまたはカーネルイメージ）、コンピューティングインスタンスのアーキテクチャタイプ（例えば、３２ビットアーキテクチャまたは６４ビットアーキテクチャ）、コンピューティングインスタンスの仮想化タイプ（例えば、準仮想化またはハードウェア仮想マシン）、及びコンピューティングインスタンスによって使用されるデータ記憶装置のタイプを含み得るが、これらに限定されることはない。インスタンスの特徴は、コンピューティングインスタンスの起動に使用されるオペレーティングシステム（ＯＳ）の種類及びネットワークタイプ（例えば、バーチャルプライベートネットワーク）などの、ユーザーによって調整される特徴を含んでも良い。
【０１０７】
物理ホストの特徴は、物理ホストがホストすることができるコンピューティングインスタンスの最大数、物理ホストと関連したハードウェアタイプ、物理ホストと関連したハードウェアベンダ、コンピューティングインスタンスが起動されるときの物理ホストの占有率、及び物理ホストが位置するゾーンを含み得るが、これらに限定されることはない。物理ホストの特徴は、コンピューティングインスタンスを起動する物理ホスト（すなわち、対象の物理ホスト）上でペンディング中のコンピューティングインスタンス及び／または実行中のコンピューティングインスタンスの平均数、最小数及び最大数を含んでも良い。加えて、物理ホストの特徴は、コンピューティングインスタンスを起動する物理ホスト（すなわち、対象の物理ホスト）上で現在ペンディング状態及び／または実行状態にあるコンピューティングインスタンスの数を含んでも良い。
【０１０８】
特徴選択・正規化モジュール１２２０は、モデルの特徴を正規化して（すなわち、種々の尺度で測定された値を抽象的な共通の尺度に調整して）、起動時間予測訓練データ１２３０を作成するようにしても良い。起動時間予測訓練データ１２３０は、起動時間予測入力データ１２１０において識別された複数のコンピューティングインスタンスの全体的な特徴を表しても良い。起動時間予測訓練データ１２３０を機械学習選択モジュール１２４０に提供しても良い。機械学習選択モジュール１２４０は、起動時間予測訓練データ１２３０を使用して、各種の機械学習モデル１２４２を訓練しても良い。例えば、回帰モデルを訓練しても良い。回帰モデル１２４２は、サポートベクターマシン、確率的勾配降下法、適応ブースト、ｅｘｔｒａ  ｔｒｅｅｓ及びランダムフォレストを含み得るが、これらに限定されることはない。各種の回帰モデル１２４２は、様々な成功度を有する起動時間予測訓練データ１２３０に対応し得る。一例において、ランダムフォレストの独立変数は、起動時間予測訓練データ１２３０に関する比較的高い正解率を提供し得る。従って、機械学習選択モジュール１２４０は、コンピューティングインスタンスの起動時間を推定するときにランダムフォレストの独立変数を使用しても良い。
【０１０９】
機械学習モデル１２５０は、コンピューティングインスタンスの起動を求める要求を受信しても良く、機械学習モデル１２５０は、当該コンピューティングインスタンスと関連したインスタンスの特徴及び物理ホストの特徴に基づき、そのコンピューティングインスタンスの起動時間を予測しても良い。一例において、機械学習モデル１２５０は、同じ物理ホスト上でのコンピューティングインスタンスの同時起動数、コンピューティングインスタンスによって記憶され、使用されるデータの種類、コンピューティングインスタンスによって使用されるアーキテクチャタイプ、及びコンピューティングインスタンスと関連したコンピューティングインスタンスイメージが、他のモデルの特徴と比較してコンピューティングインスタンスの起動時間により大きな影響を及ぼす場合があると判定しても良い。
【０１１０】
いくつかの場合には、コンピューティングインスタンスの予測起動時間は、コンピューティングインスタンスの実起動時間と異なっていても良い。コンピューティングインスタンスと関連したインスタンスの特徴及び物理ホストの特徴、ならびにコンピューティングインスタンスを起動するための実起動時間を使用して機械学習モデル１２５０を更に訓練することにより、将来の起動時間の予測を向上させるようにしても良い。
【０１１１】
図１３は、コンピューティングサービス環境内にコンピューティングインスタンスを配置することを決定する例示的な方法を示すフロー図である。ブロック１３１０のように、コンピューティングサービス環境内でコンピューティングインスタンスを起動することを求める要求を受信しても良い。コンピューティングインスタンスの起動を求める要求は、コンピューティングサービス環境のコンピューティングサービスを所望する顧客から受信されても良い。
【０１１２】
ブロック１３２０のように、コンピューティングインスタンスと関連したインスタンスの特徴及びコンピューティングサービス環境内の一群の物理ホストと関連した物理ホストの特徴を機械学習モデルに提供しても良い。インスタンスの特徴は、上記要求に従って起動されるコンピューティングインスタンスを記述しても良く、または特徴付けても良い。物理ホストの特徴は、所与の時刻にて（すなわち、コンピューティングインスタンスを上記要求に従って起動するときに）、コンピューティングサービス環境内の各物理ホストを記述しても良く、または特徴付けても良い。
【０１１３】
ブロック１３３０のように、コンピューティングサービス環境内の各物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間は、機械学習モデルを用いて決定されても良い。機械学習モデルは、インスタンスの特徴及び物理ホストの特徴を所与として推定起動時間を予測しても良い。一例において、機械学習モデルは、以前に起動された複数のコンピューティングインスタンスの履歴起動時間情報を使用してコンピューティングサービス環境内で起動されるコンピューティングインスタンスの推定起動時間を予測する回帰モデルであって良い。
【０１１４】
ブロック１３４０のように、一群の物理ホストからの物理ホストを、一群の物理ホスト中の他の物理ホストと比較してより短い推定起動時間に従ってコンピューティングインスタンスの配置を実現するために選択しても良い。加えて、コンピューティングインスタンスの配置を実現する物理ホストは、コンピューティングインスタンスの起動を求める要求に含まれる配置制約を用いて選択されても良い。推定起動時間は、コンピューティングインスタンスを配置するための物理ホストを選択するときに使用される複数の配置要因のうちの１つであって良い。一例において、複数の配置要因を用いて配置を決定するときに、コンピューティングインスタンスの推定起動時間に加重値を割り当てても良く、推定起動時間に割り当てられた加重値に一部基づき、コンピューティングインスタンスの配置を実現する物理ホストを選択しても良い。
【０１１５】
図１４は、コンピューティングサービス環境内にコンピューティングインスタンスを配置することを決定する別の例示的な方法を示すフロー図である。ブロック１４１０のように、コンピューティングサービス環境内でコンピューティングインスタンスを起動することを求める要求を受信しても良い。コンピューティングインスタンスの起動を求める要求は、コンピューティングサービス環境のコンピューティングサービスを要求している顧客から受信されても良い。
【０１１６】
ブロック１４２０のように、一群の物理ホスト中の物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を特定しても良い。推定起動時間は、顧客からコンピューティングインスタンス起動要求を受信してから物理ホスト上でコンピューティングインスタンスをブートするまでの時間を含んでも良い。コンピューティングインスタンスを起動するための推定起動時間は、コンピューティングインスタンスの起動時間を予測する回帰モデルを用いて特定されても良い。コンピューティングインスタンスを起動するための推定起動時間は、コンピューティングインスタンスと関連したインスタンスの特徴及び一群の物理ホスト中の物理ホストと関連した物理ホストの特徴に基づいて識別されても良い。この場合、コンピューティングインスタンスと関連したインスタンスの特徴には、ユーザーによって選択された特徴が含まれる。
【０１１７】
ブロック１４３０のように、一群の物理ホスト中の物理ホストは、コンピューティングインスタンスの推定起動時間に一部基づき、コンピューティングインスタンスの配置を実現するために選択されても良く、コンピューティングインスタンスの配置に関わる別の要因を任意に含んでも良い。コンピューティングインスタンスの配置に関わる別の要因は、物理ホストの利用率の配置要因、ライセンスコストの配置要因及び災害の影響の配置要因を含んでも良い。コンピューティングインスタンスは、コンピューティングサービスを提供するために物理ホストにロードされても良い。
【０１１８】
１つの構成において、各物理ホスト上でのコンピューティングインスタンスの推定起動時間を、一群の物理ホスト中の他の物理ホストの推定起動時間と比較しても良い。一群の物理ホスト中の他の物理ホストと比較してより短い推定起動時間でコンピューティングインスタンスの配置を実現することができる一群の物理ホスト中の物理ホストを選択しても良い。あるいは、一群の物理ホスト中の他の物理ホストと比較してより少ない数の同時起動中のコンピューティングインスタンスを含む物理ホストを選択しても良い。一例において、コンピューティングインスタンスを実行するために選択された物理ホストを検証して、所定の閾値を超える複数のコンピューティングインスタンスを同時に実行していることがないようにしても良い。
【０１１９】
別の構成において、領域またはゾーンを、当該領域またはゾーン内のコンピューティングインスタンスの推定起動時間に一部基づき、コンピューティングインスタンスを配置するために選択しても良い。一例において、複数の配置要因を用いてコンピューティングインスタンスの配置を決定するときに、コンピューティングインスタンスの推定起動時間に加重値を割り当てても良く、推定起動時間に割り当てられた加重値に一部基づき、コンピューティングインスタンスを配置するための物理ホストを選択しても良い。加えて、コンピューティングインスタンスと関連したアタッチメントを起動するための推定時間を特定しても良く、一群の物理ホスト中の他の物理ホストと比較して、より短い推定接続時間でコンピューティングインスタンスの配置を実現することができる物理ホストを選択しても良い。
【０１２０】
起動時間の予測を利用してコンピューティングサービス環境内でマシンイメージのキャッシングを構成する技術を説明する。マシンイメージは、コンピューティングサービス環境内でコンピューティングインスタンスを起動するための情報を提供しても良い（すなわち、コンピューティングインスタンスは、マシンイメージから起動されても良い）。例えば、マシンイメージは、コンピューティングインスタンスの起動に使用されるデータ記憶装置のタイプ、起動許可などを示しても良い。マシンイメージを、コンピューティングサービス環境内の、サーバコンピュータとしても知られている物理ホストにキャッシュし、または記憶させて、コンピューティングインスタンスを起動するための起動時間を短縮するようにしても良い。換言すれば、関連するコンピューティングインスタンスを起動している物理ホストに対して局所的なマシンイメージをキャッシュすることにより、ネットワークを介してデータ記憶装置からマシンイメージを読み出す場合と比較して相対的により速いコンピューティングインスタンスの起動時間が提供され得る。用語「ｌａｕｎｃｈ  ｔｉｍｅ（起動時間）」は、一般に、コンピューティングインスタンスの起動を求める要求を受信してから、コンピューティングインスタンスを起動するために選択された物理ホスト上にコンピューティングインスタンスと関連したマシンイメージをブートするまでの時間を意味する。
【０１２１】
１つの構成において、コンピューティングサービス環境の予想トラフィックパターンを識別しても良い。予想トラフィックパターンは、定められた期間（かつ、場合によっては定められた地域）においてコンピューティングサービス環境内で起動される可能性のある特定のコンピューティングインスタンスを示しても良い。例えば、予想トラフィックパターンは、コンピューティングインスタンスＡが火曜日の午前８時３０分に起動される可能性のあることを示し得る。一例において、予想トラフィックパターンは、コンピューティングサービス環境の過去のトラフィックパターンに関する経験則を用いて識別されても良い。別の例において、コンピューティングサービス環境の履歴トラフィック情報を使用する機械学習モデルを用いて予想トラフィックパターンを識別することにより、コンピューティングサービス環境の予想トラフィックパターンを予測しても良い。
【０１２２】
コンピューティングインスタンスの予想トラフィックパターン（例えば、定められた期間中に起動されると予想されるコンピューティングインスタンスの特徴）を、起動時間予測モデルに提供しても良い。起動時間予測モデルは、コンピューティングインスタンスと関連したマシンイメージをコンピューティングサービス環境内の既定の領域で優先的ににキャッシュすることにより、コンピューティングインスタンスの推定起動時間が短縮され得るかどうかを判定しても良い。換言すれば、起動時間予測モデルは、マシンイメージを特定の領域でキャッシュすることにより、マシンイメージをキャッシュしないか、または推定起動時間を向上させない他の領域でマシンイメージをキャッシュする場合と比較して、推定起動時間が短縮され得るかどうかを判定しても良い。既定の領域は、コンピューティングサービス環境内の特定の物理ホスト、複数群の物理ホストまたは局所的な記憶領域（例えば、局所的なネットワーク接続ストレージ）を含んでも良い。一例として、起動時間予測モデルは、履歴コンピューティングインスタンスキャッシュ情報を含む、以前に起動された複数のコンピューティングインスタンスの履歴起動時間情報を使用して、コンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスの推定起動時間を決定する回帰モデルであって良い。
【０１２３】
非限定的な例として、コンピューティングインスタンスＡは、予想トラフィックパターンに従ってコンピューティングサービス環境内で起動される可能性があり得る。物理ホストＸ及び物理ホストＹは、コンピューティングインスタンスＡと関連したマシンイメージをキャッシュするために利用可能であるものとして識別されても良い。起動時間予測モデルは、物理ホストＸでマシンイメージをキャッシュすることによってコンピューティングインスタンスＡの予測起動時間が６０秒になり得ると判定する場合がある。加えて、起動時間予測モデルは、物理ホストＹでマシンイメージをキャッシュすることによってコンピューティングインスタンスＡの予測起動時間が３０秒になり得ると判定する場合がある。コンピューティングインスタンスＡが顧客によって将来要求される可能性があり、かつコンピューティングイメージを物理ホストＹでキャッシュしたときにマシンイメージが最も速く起動される可能性があると予想して、マシンイメージを物理ホストＹにキャッシュしても良い。
【０１２４】
従って、コンピューティングインスタンスと関連したマシンイメージを物理ホストでキャッシュしたときに短縮されたコンピューティングインスタンスの起動時間を提供すると予測される物理ホストを、起動時間予測モデルを用いて決定したように、マシンイメージをキャッシュするために選択しても良い。マシンイメージをキャッシュするために選択された物理ホストをキャッシュレイアウトに含めても良い。キャッシュレイアウトに含まれる物理ホストは、利用可能であっても良く、かつ／またはマシンイメージをキャッシュすることが可能であって良い。一例において、キャッシュレイアウトは、マシンイメージをキャッシュするのに利用可能な単一の物理ホストを識別しても良い。あるいは、キャッシュレイアウトは、マシンイメージをキャッシュするのに利用可能な一群の物理ホストを識別しても良い。キャッシュレイアウトに含まれる物理ホストは、コンピューティングインスタンスを実行するのに使用される利用可能なコンピューティングスロット（例えば、コンピューティングリソース）を備えても良い。加えて、利用可能なコンピューティングスロットは、あるタイプまたはサイズのマシンイメージに対応しても良い。
【０１２５】
図１５は、コンピューティングサービス環境１５００内でコンピューティングインスタンスの起動時間を短縮するためにマシンイメージをキャッシュすることを示す図である。コンピューティングインスタンスを起動するための予想トラフィックパターン１５１０を、コンピューティングサービス環境１５００について識別しても良い。予想トラフィックパターン１５１０は、定められた期間（かつ、場合によっては定められた地域）においてコンピューティングサービス環境１５００内で起動される可能性のあるコンピューティングインスタンスを示しても良い。コンピューティングインスタンスは、マシンイメージ１５１２と関連付けられても良い。一例において、コンピューティングインスタンス及び／またはマシンイメージ１５１２の特徴を起動時間予測モデル１５３０に提供しても良い。この特徴は、マシンイメージ１５１２をキャッシュするかどうか、コンピューティングインスタンスのサイズ、マシンイメージがキャッシュされ得る場所などを含んでも良い。起動時間予測モデル１３０は、コンピューティングインスタンス及び／またはマシンイメージ１５１２の特徴に基づき、コンピューティングサービス環境１５００内の既定の領域でマシンイメージ１５１２をキャッシュすることによってコンピューティングインスタンスの起動時間が短縮され得ると判定しても良い。既定の領域は、ある物理ホスト、または、サーバラック上の、もしくはサーバを備えた建物内のネットワーク接続ストレージ（ｎｅｔｗｏｒｋ  ａｔｔａｃｈｅｄ  ｓｔｏｒａｇｅ  ：ＮＡＳ）などの、高速ネットワーク接続を介して接続された局所的な記憶領域を含んでも良い。
【０１２６】
キャッシュレイアウトモジュール１５４０は、起動時間予測モデル１５３０を使用して、コンピューティングサービス環境１５００内にマシンイメージ１５１２をキャッシュするためのキャッシュレイアウトを決定しても良い。キャッシュレイアウトは、利用可能であり、かつ／またはマシンイメージ１５１２をキャッシュすることができるキャッシングスロットを備えた、コンピューティングサービス環境１５００内の１つの物理ホスト（または複数の物理ホスト）を含んでも良い。加えて、キャッシュレイアウトに使用するために選択された物理ホストは、コンピューティングインスタンスと関連したマシンイメージ１５１２を物理ホストでキャッシュしたときに、コンピューティングインスタンスを起動するための短縮された起動時間を提供し得る。
【０１２７】
非限定的な例として、コンピューティングサービス環境１５００は、複数の物理ホスト１５５０、１５６０及び１５７０を含んでも良い。キャッシュレイアウトモジュール１５４０は、起動時間予測モデル１５３０を使用して、物理ホスト１５５０でマシンイメージ１５１２をキャッシュすることによってコンピューティングインスタンスの推定起動時間が１５８０秒になり得ると判定する場合がある。加えて、キャッシュレイアウトモジュール１５４０は、物理ホスト１５６０で、または物理ホスト１５７０でマシンイメージ１５１２をキャッシュすることにより、コンピューティングインスタンスの推定起動時間がそれぞれ１６５秒及び１９０秒になり得ると判定する場合がある。従って、キャッシュレイアウトモジュール１５４０は、マシンイメージ１５１２をキャッシュするために物理ホスト１５６０を選択する（すなわち、キャッシュレイアウトは物理ホスト１５６０を含む）ことにより、物理ホスト１５５０または物理ホスト１５７０でマシンイメージ１５１２をキャッシュする場合と比較してコンピューティングインスタンスを起動するための起動時間を短縮させるようにしても良い。
【０１２８】
図１６は、本技術の一例に係る例示的なコンピューティングサービス環境１６００の構成要素を示す図である。コンピューティングサービス環境１６００は、ネットワーク１６５０を介して複数のクライアント装置１６６０と通信するサーバコンピュータ１６１０を含んでも良く、サーバコンピュータは、サービスプロバイダ環境１６００の制御プレーンの一部であって良い。サーバコンピュータ１６１０は、データ記憶装置１６３０、及びマシンイメージのキャッシュ配置を決定するのに使用される複数のモジュールを含んでも良い。加えて、コンピューティングサービス環境１６００は、複数のコンピューティングインスタンスを実行する複数のサーバコンピュータ２４０ａ〜ｂを含んでも良い。
【０１２９】
サーバコンピュータ１６４０ａ〜ｂは、コンピューティングインスタンスを実行するのに使用され得る利用可能なコンピューティングスロット１６４２ａ〜ｂ（例えば、アイドル状態のコンピューティングリソース）を備えても良い。利用可能なコンピューティングスロット１６４２ａ〜ｂは、利用可能なコンピューティングスロット１６４２ａ〜ｂをその後利用してコンピューティングインスタンスを実行し得る顧客に割り当てられても良い。加えて、サーバコンピュータ１６４０ａ〜ｂは、利用可能なキャッシングスロット１６４４ａ〜ｂを備えても良い。これらのスロットは、実行すべきコンピューティングインスタンスと関連したマシンイメージをキャッシュするのに使用され得る。コンピューティングインスタンスの例は、オンデマンドコンピューティングインスタンス、リザーブドコンピューティングインスタンス及び割り込み可能なコンピューティングインスタンスを含んでも良い。オンデマンドコンピューティングインスタンスは、要求時に顧客が購入し、実行し得るコンピューティングインスタンスであって良い。リザーブドコンピューティングインスタンスは、コンピューティングインスタンスの予約であって良い。顧客は、自身がコンピューティングインスタンスを要求するときに、当該コンピューティングインスタンスが利用可能となる定められた期間だけそのコンピューティングインスタンスを購入し得る。割り込み可能なコンピューティングインスタンスは、割り込み可能なコンピューティングインスタンスに支払われている価格が現在の入札価格を下回らない限り、別のコンピューティングインスタンスのタイプによって使用されていないコンピューティングスロット１６４２ａ〜ｂにおいて実行され得るコンピューティングインスタンスであって良い。
【０１３０】
データ記憶装置１６３０に記憶されるデータは、履歴データに基づいている予想トラフィックパターン１６３２を含んでも良い。予想トラフィックパターン１６３２は、定められた期間中にコンピューティングサービス環境１６００内で起動されると予想されるコンピューティングインスタンスを識別しても良い。例えば、予想トラフィックパターン１６３２は、コンピューティングインスタンスＺが土曜日の午後７時に起動される可能性があることを示しても良い。一例において、予想トラフィックパターン１６３２は、コンピューティングサービス環境１６００の履歴トラフィック情報に基づいて決定されても良い。例えば、予想トラフィックパターン１６３２は、コンピューティングインスタンスＺが土曜日の午後７時に起動される可能性があることを示し得る。というのも、コンピューティングインスタンスＺは、過去２ヵ月間で同様の時刻に起動されていたためである。１つの構成において、予想トラフィックパターン１６３２は、コンピューティングサービス環境１６００の過去のトラフィックパターンに関する経験則を用いて識別されても良い。更に別の構成において、機械学習モデルは、コンピューティングサービス環境１６００の履歴トラフィックパターンを用いて予想トラフィックパターン１６３２を決定するように訓練されても良い。
【０１３１】
データ記憶装置１６３０に記憶されるデータは、コンピューティングサービス環境１６００内で起動されるコンピューティングインスタンスのキャッシュレイアウト１６３４を含んでも良い。キャッシュレイアウト１６３４は、マシンイメージをキャッシュするために選択されたコンピューティングサービス環境１６００内の物理ホストを識別しても良い。これは、当該物理ホストが、利用可能であり、かつ／またはコンピューティングインスタンスと関連したマシンイメージをキャッシュすることが可能であるためである。キャッシュレイアウト１６３４は、マシンイメージをキャッシュするのに利用可能な単一の物理ホスト、またはマシンイメージをキャッシュするのに利用可能な一群の物理ホストを識別しても良い。キャッシュレイアウト１６３４に含まれる物理ホストは、定められたタイプまたはサイズのマシンイメージに対応する利用可能なコンピューティングスロット（例えば、コンピューティングインスタンスを実行するのに使用されるコンピューティングリソース）を備えても良い。
【０１３２】
一例において、キャッシュレイアウト１６３４は、特定の領域またはゾーン内の物理ホストを識別してマシンイメージをキャッシュできるようにしても良い。加えて、キャッシュレイアウト１６３４は、コンピューティングサービス環境１６００の変化に応じて修正され、または更新されても良い。例えば、マシンイメージをキャッシュするためにキャッシュレイアウト１６３４において以前に識別された物理ホストが過負荷状態または限度一杯となる（例えば、起動時間が減少する）ときに、マシンイメージをキャッシュする他の物理ホストを含むようにキャッシュレイアウト１６３４を更新し、それによってコンピューティングインスタンスの起動時間を短縮しても良い。従って、キャッシュレイアウト１６３４は周期的に更新されても良い。
【０１３３】
サーバコンピュータ１６１０は、予想トラフィックパターン識別モジュール１６２２、推定起動時間予測モジュール１６２４、キャッシュレイアウトモジュール１６２６、キャッシュ設定モジュール１６２８、及び本明細書に詳述されていない他のアプリケーション、サービス、プロセス、システム、エンジンまたは機能を含んでも良い。予想トラフィックパターン識別モジュール１６２２は、コンピューティングサービス環境１６００の予想トラフィックパターンを識別するように構成されても良い。予想トラフィックパターンは、定められた期間中にコンピューティングサービス環境内で起動される可能性があるコンピューティングインスタンスと関連したマシンイメージを示しても良い。予想トラフィックパターン識別モジュール１６２２は、コンピューティングサービス環境１６００の履歴トラフィック情報を用いて予想トラフィックパターンを予測する機械学習モデルを用いて予想トラフィックパターンを識別しても良い。一例において、予想トラフィックパターン識別モジュール１６２２は、ユーザーの経験則を使用して、コンピューティングサービス環境１６００の予想トラフィックパターンを識別しても良い。
【０１３４】
推定起動時間予測モジュール１６２４は、コンピューティングサービス環境１６００内の既定の領域でマシンイメージをキャッシュすることにより、マシンイメージをキャッシュしない場合と比較してコンピューティングインスタンスの起動時間が短縮され得ると判定しても良い。既定の領域は、特定の物理ホスト、一群の物理ホスト、またはコンピューティングサービス環境１６００内の物理ホストに関するローカルストレージ構成要素を含んでも良い。一例において、推定起動時間予測モジュール１６２４は、起動時間予測モデルを使用して、既定の領域でマシンイメージをキャッシュすべきか否かを判定しても良い。換言すれば、起動時間予測モデルは、コンピューティングインスタンスと関連したマシンイメージが特定の物理ホストでキャッシュされるときに、コンピューティングインスタンスを起動するための推定起動時間を提供しても良い。
【０１３５】
キャッシュレイアウトモジュール１６２６は、マシンイメージをコンピューティングサービス環境１６００内にキャッシュすることを可能とすべくキャッシュレイアウトを決定するように構成されても良い。キャッシュレイアウトは、マシンイメージをキャッシュするのに利用可能な既定の領域の物理ホストを識別することにより、そのマシンイメージと関連したコンピューティングインスタンスの起動時間を短縮するようにしても良い。キャッシュレイアウトに示された物理ホストは、マシンイメージをキャッシュするのに十分なリソース及び能力を備え得る。一例において、キャッシュレイアウトモジュール１６２６は、キャッシュレイアウトに含めるべき物理ホストを起動時間予測モデルを用いて選択しても良い。換言すれば、キャッシュレイアウト内の物理ホストは、当該物理ホストでマシンイメージがキャッシュされたときに、短縮されたコンピューティングインスタンスの起動時間を提供する可能性があるものとして起動時間予測によって識別されていても良い。加えて、キャッシュレイアウトモジュール１６２６は、キャッシュレイアウトに含めるべき物理ホストを選択するときに、当該物理ホストの各種特性（例えば、ハードウェアタイプ、アドレス指定）を識別しても良い。別の例として、キャッシュレイアウトモジュール１６２６は、キャッシュレイアウトに物理ホストを含めるように選択するときに、遺伝的手法または粒子群最適化を使用しても良い。従って、キャッシュレイアウトモジュール１６２６は、遺伝的手法または粒子群最適化を使用することにより、物理ホストでマシンイメージがキャッシュされたときに短縮された起動時間を提供する物理ホストを選択しても良い。
【０１３６】
キャッシュ設定モジュール１６２８は、キャッシュレイアウトに従ってコンピューティング環境１６００内の少なくとも１つの物理ホストにマシンイメージを記憶するように構成されても良い。一例において、キャッシュ設定モジュール１６２８は、あるトポロジ層（例えば、特定の領域、ゾーン、サーバラック及び物理ホスト）と関連した物理ホストにマシンイメージを記憶しても良い。従って、特定のトポロジ層と関連している局所的なストレージが存在しても良い。例えば、キャッシングデバイス（例えば、ＮＡＳ）を、領域、ゾーンまたはサーバラックのレベルで設けても良い。マシンイメージをプリエンプティブにキャッシュすることにより、コンピューティングインスタンスを起動するための起動時間を短縮しても良い。一例において、キャッシュ設定モジュール１６２８は、コンピューティングインスタンスの起動が予想され、かつ当該コンピューティングインスタンスが、定められた期間中キャッシュ領域に常駐し得るときに、定められた期間よりも前にマシンイメージをキャッシング領域に送信しても良い。定められた期間が終了したときに、キャッシュ設定モジュール１６２８は、キャッシュからマシンイメージを消去しても良い。非限定的な例として、特定のコンピューティングインスタンスが土曜日の午前８時から午前９時に起動されると予想されるときに、そのコンピューティングインスタンスと関連したマシンイメージを、土曜日の午前６時から午前１０時の間に物理ホストでキャッシュし、その後、物理ホストから除去しても良い。
【０１３７】
図１７は、コンピューティングインスタンスの起動時間を短縮するためにコンピューティングサービス環境１７００内にマシンイメージをキャッシュするシステム及び関連動作を示す図である。マシンイメージは、コンピューティングサービス環境内でコンピューティングインスタンスを起動するための情報を提供しても良い（すなわち、コンピューティングインスタンスは、マシンイメージから起動されても良い）。例えば、マシンイメージは、コンピューティングインスタンスの起動に使用されるデータ記憶装置のタイプ、起動許可などを示しても良い。コンピューティングサービス環境１７００内の少なくとも１つの物理ホストにマシンイメージを記憶して、コンピューティングイメージの起動時間を短縮するようにしても良い。換言すれば、マシンイメージを局所的にキャッシュすることにより、離れたデータ記憶装置からネットワークを介してマシンイメージを読み込む場合と比較して相対的により速いコンピューティングインスタンスの起動時間を提供しても良い。
【０１３８】
コンピューティングサービス環境１７００の予想トラフィックパターン１７１０を識別しても良い。予想トラフィックパターン１７１０は、ある期間にて、かつ／またはある地理的領域においてコンピューティングインスタンスが起動されると予想されることを示しても良い。非限定的な例として、予想トラフィックパターン１７１０は、コンピューティングインスタンスが月曜日の午前８時に起動される可能性があることを示し得る。１つの構成において、予想トラフィックパターン１７１０は、経験則１７１２を用いて識別されても良い。経験則１７１２は、コンピューティングサービス環境１７００の過去のトラフィックパターンに関するものであって良い。一例として、経験則１７１２を使用することにより、コンピューティングインスタンスが月曜日の午前８時に起動される可能性があることを、コンピューティングインスタンスが過去において同様の時刻に起動されていた場合に推測しても良い。別の構成において、予想トラフィックパターン１７１０は、機械学習モデル１７１４を用いて識別されても良い。機械学習モデル１７１４は、コンピューティングサービス環境４００の履歴トラフィック情報を使用して、コンピューティングサービス環境１７００の予想トラフィックパターン１７１０を予測しても良い。
【０１３９】
一例において、ある期間中に起動されると予想されるコンピューティングインスタンスに関わるインスタンスの特徴を起動時間予測モデル１７３０に提供しても良い。インスタンスの特徴は、コンピューティングインスタンスによって使用されるマシンイメージ１７２２、及び／またはコンピューティングサービス環境１７００内で起動されるコンピューティングインスタンスに関するものであって良い。例えば、インスタンスの特徴は、コンピューティングインスタンスのサイズ、コンピューティングインスタンスのアーキテクチャタイプ（例えば、３２ビットアーキテクチャもしくは６４ビットアーキテクチャ）、コンピューティングインスタンスの仮想化タイプ（例えば、準仮想化もしくはハードウェア仮想マシン）、及び／またはコンピューティングインスタンスによって使用されるデータ記憶装置のタイプを含んでも良い。
【０１４０】
起動時間予測モデル１７３０は、インスタンスの特徴に基づき、コンピューティングサービス環境１７００内の既定の領域でマシンイメージ１７２２をプリエンプティブにキャッシュすることによってコンピューティングインスタンスの起動時間が短縮され得るかどうかを判定しても良い。加えて、起動時間予測モデル１７３０は、特定の領域（例えば、特定の物理ホスト）でマシンイメージ１７２２をキャッシュすることにより、コンピューティングサービス環境１７００内の別の領域でマシンイメージ１７２２をキャッシュする場合と比較して起動時間が短縮され得ると判定しても良い。既定の領域は、コンピューティングサービス環境１７００内の特定の物理ホストまたは一群の物理ホストを含んでも良い。
【０１４１】
起動時間予測モデル１７３０は、以前に起動された複数のコンピューティングインスタンスの履歴起動時間情報によって訓練される機械学習モデルであって良く、起動時間予測モデル１７３０は、コンピューティングサービス環境１７００内で起動されると予想されるコンピューティングインスタンスの推定起動時間を決定するために使用されても良い。そのため、起動時間予測モデル１７３０は、マシンイメージがキャッシュされたときの以前の起動時間、コンピューティングインスタンスがキャッシュされなかったときの以前の起動時間、マシンイメージが特定の領域でキャッシュされたときの以前の起動時間などに関わる履歴起動時間情報を、起動されると予想されるコンピューティングインスタンスの推定起動時間を予測するための訓練の際に使用しても良い。一例において、起動時間予測モデル１７３０は、推定起動時間を予測するために使用される回帰モデルであって良い。
【０１４２】
非限定的な例として、コンピューティングサービス環境は、物理ホスト１７５０、１７６０を含んでも良い。起動時間予測モデル１７３０は、物理ホスト１７５０、１７６０のいずれでマシンイメージ１７２２をキャッシュすべきかどうかを決定するのに役立つ情報を提供して、コンピューティングインスタンスの起動時間を短縮するようにしても良い。起動時間予測モデル１７３０は、物理ホスト１７５０でマシンイメージ１７２２をキャッシュすることによってコンピューティングインスタンスの推定起動時間が３０秒になり得ると判定する場合がある。加えて、起動時間予測モデル１７３０は、物理ホスト１７６０でマシンイメージ１７２２をキャッシュすることによって推定起動時間が２５秒になり得ると判定する場合がある。起動時間予測モデル１７３０は、推定起動時間を予測するときに、マシンイメージ１７２２がキャッシュされるかどうかに加えて、様々な種類の情報を使用しても良い。このような情報としては、コンピューティングインスタンスのサイズ、物理ホストでの同時起動数、物理ホストの占有率などがある。
【０１４３】
キャッシュレイアウトモジュール１７４０は、起動時間予測モデル１７３０からの予測情報を使用して、コンピューティングサービス環境１７００内にマシンイメージ１７２２をキャッシュするためのキャッシュレイアウトを決定しても良い。マシンイメージ１７２２をキャッシュしてキャッシュレイアウトは、コンピューティングインスタンスの起動時間を短縮するために選択された少なくとも１つの物理ホストを含んでも良い。キャッシュレイアウトを決定するために、キャッシュレイアウトモジュール１７４０は、コンピューティングサービス環境１７００内の既定の領域にある少なくとも１つの物理ホストを識別しても良い。この物理ホストは、利用可能であり、かつ／またはマシンイメージ１７２２をキャッシュすることが可能である。キャッシュレイアウトモジュール１７４０は、起動時間予測モデル１７３０を介して、利用可能な各物理ホスト上でマシンイメージ１７２２を起動するための推定起動時間を比較することにより、マシンイメージ１７２２を各物理ホストのそれぞれでキャッシュすべきかどうかを判定しても良い。キャッシュレイアウトモジュール１７４０は、物理ホスト上でコンピューティングインスタンスを起動するための推定起動時間を比較し、短縮されたコンピューティングインスタンスの起動時間を提供することができる物理ホストを選択しても良い。換言すれば、短縮された起動時間を提供することができる物理ホストをキャッシュレイアウトに含めても良い。一例において、同じマシンイメージ１７２２の数十または数百のコピーを一群の物理ホストにキャッシュさせて、短縮された起動時間を提供するようにしても良い。
【０１４４】
１つの構成において、キャッシュレイアウトモジュール１７４０は、遺伝的手法または粒子群最適化を使用することにより、マシンイメージ１７２２をキャッシュして短縮されたコンピューティングインスタンスの起動時間を提供することが可能なコンピューティングサービス環境１７００内の物理ホストまたは一群の物理ホストを識別しても良い。マシンイメージ１７２２は、コンピューティングサービス環境１７００内でコンピューティングインスタンスを起動するときに、選択された物理ホストに記憶されても良く、その物理ホストからロードされても良い。
【０１４５】
非限定的な例として、キャッシュレイアウトモジュール１７４０は、マシンイメージ１７２２をキャッシュするのに物理ホスト１７５０、１７６０が利用可能であると判定しても良い。キャッシュレイアウトモジュール１７４０は、起動時間予測モデル１７３０を介して、物理ホスト１７５０、１７６０のいずれかでマシンイメージ４２２をキャッシュすることによって推定起動時間がそれぞれ３０秒、２５秒または４０秒になり得ると判定する場合がある。従って、キャッシュレイアウトモジュール１７４０は、物理ホスト１７６０を選択してキャッシュレイアウトに含めても良い。これは、物理ホスト１７６０でマシンイメージ１７２２をキャッシュすることにより、物理ホスト１７５０でマシンイメージ１７２２をキャッシュする場合と比較して起動時間がより短くなり得るためである。あるいは、キャッシュレイアウトモジュール１７４０は、コンピューティングサービス環境４００に含まれるネットワーク接続ストレージ（ＮＡＳ）デバイス１７７０でマシンイメージ１７２２をキャッシュして起動時間を短くするように決定しても良い。
【０１４６】
一例において、キャッシュレイアウトモジュール１７４０は、そのサイズのマシンイメージ１７２２に対応することができる物理ホストの利用可能なキャッシングスロットにマシンイメージ１７２２を記憶しても良い。例えば、物理ホスト１７５０は、第１のタイプである利用可能なキャッシングスロットを含んでも良い。物理ホスト１７６０は、第２のタイプ及び第３のタイプである利用可能なキャッシュスロットを含んでも良い。マシンイメージ１７２２は、複数のサイズ及びタイプで構成されても良い。キャッシュレイアウトモジュール１７４０は、物理ホストにおいて利用可能な当該タイプのキャッシングスロットが当該タイプのマシンイメージ１７２２を記憶できることを検証しても良い。
【０１４７】
別の例において、マシンイメージ１７２２は、様々なトポロジ層の各領域と関連した物理ホストまたは物理デバイスに記憶されても良い。トポロジ層は、特定の領域、ゾーン、データセンター、サーバラック、物理ホスト、キャッシングスロットなどを含んでも良い。一例として、キャッシュレイアウトは、ＮＡＳ１７７０などの、マシンイメージ１７２２が記憶される特定のゾーン、またはそのようなゾーン内の特定のデータセンターを含んでも良い。トポロジ層は、キャッシュを提供しても良い。このキャッシュにより、短縮されたコンピューティングインスタンスの起動時間が提供され得る。
【０１４８】
１つの構成において、コンピューティングインスタンスの起動を求める要求は、コンピューティングサービス環境１７００において受信されても良い。例えば、この要求は、コンピューティングサービス環境１７００のコンピューティングサービスを所望する顧客から受信されても良い。コンピューティングインスタンスと関連したマシンイメージ１７２２を、休止状態にあるものとして認識しても良い。換言すれば、マシンイメージ１７２２のドメイン作成プロセスを完了しても良いが、そのドメインは、コンピューティングインスタンスを起動するために開始されていない。コンピューティングインスタンスは、マシンイメージ１７２２をロードした後、休止状態から実行状態にマシンイメージ１７２２を切り替えることによって起動されても良く、それによってコンピューティングインスタンスの起動時間を最小にする。一例において、最も普及しているマシンイメージまたは直近に使用されたマシンイメージを、コンピューティングサービス環境１７００において休止状態で記憶しても良い。従って、これらのマシンイメージの起動は、最小の起動時間で実行され得る。
【０１４９】
図１８は、マシンイメージ１８１４と関連したコンピューティングインスタンスを起動するための所望の起動時間１８１２を達成すべくコンピューティングサービス環境１８００内にマシンイメージ１８１４をキャッシュするシステム及び関連動作を示す図である。一例において、顧客は、コンピューティングインスタンスを起動するための所望の起動時間１８１２を指定する起動要求１８１０を提供しても良い。例えば、顧客は、コンピューティングインスタンスを４５秒未満で起動して欲しいと要求しても良い。
【０１５０】
起動要求１８１０をキャッシュレイアウトモジュール１８４０に提供しても良い。キャッシュレイアウトモジュール１８４０は、コンピューティングインスタンスの起動時間が顧客の要求（例えば、４５秒）を実質的に満たすように、マシンイメージ１８１４をキャッシュするためのキャッシュレイアウトを決定しても良い。換言すれば、キャッシュレイアウトモジュール１８４０は、所望の起動時間１８１２を達成できるようにマシンイメージ１８１４をキャッシュすることが可能なコンピューティングサービス環境１８００内の物理ホストを識別しても良い。
【０１５１】
一例において、キャッシュレイアウトモジュール１８４０は、起動時間予測モデル５３０を使用して、どの物理ホストがマシンイメージ１８１４をキャッシュすべきかを選択しても良い。キャッシュレイアウトモジュール１８４０は、物理ホスト１８５０、１８６０または１８７０でマシンイメージ１８１４をキャッシュすべきかどうかを決定しても良い。キャッシュレイアウトモジュール１８４０は、マシンイメージ１８１４が物理ホスト１８５０でキャッシュされるときに、コンピューティングインスタンスを起動するための推定起動時間を予測しても良い。キャッシュレイアウトモジュール１８４０は、マシンイメージ１８１４が物理ホスト１８６０でキャッシュされるか、または物理ホスト１８７０でキャッシュされるときに、推定起動時間を同様に予測しても良い。キャッシュレイアウトモジュール１８４０は、起動時間予測モデル１８３０からの情報に基づき、顧客によって指定された所望の起動時間１８１２に対応する起動時間を提供することができる物理ホストでマシンイメージ１８１４をキャッシュするように決定しても良い。非限定的な例として、キャッシュレイアウトモジュール１８４０は、物理ホスト１８５０でマシンイメージ１８１４をキャッシュすることが、コンピューティングインスタンスを起動するための所望の起動時間１８１２（例えば、４５秒）に対応し得ると判定する場合がある。
【０１５２】
別の例において、コンピューティングインスタンスを起動するための所望の起動時間１８１２は、顧客から受信されても良く、それに応答して、キャッシュレイアウトモジュール１８４０は、起動されるコンピューティングインスタンスと関連したマシンイメージをキャッシュした物理ホストを識別しても良い。キャッシュレイアウトモジュール１８４０は、起動時間予測モデル１８３０からの情報を使用して、マシンイメージをキャッシュした物理ホスト上でコンピューティングインスタンスを起動することが所望の起動時間１８１２に適合するかどうかを判定しても良く、予測起動時間が所望の起動時間１８１２に適合する場合、コンピューティングインスタンスは、物理ホスト上で起動されても良い。
【０１５３】
図１９は、サービスレベルに関する合意（ＳＬＡ）に従ってコンピューティングサービス環境１９００にマシンイメージをキャッシュする例示的なシステム及び関連動作を示す図である。コンピューティングインスタンスの実起動時間１９１０は、コンピューティングサービス環境１９００内で起動されるコンピューティングインスタンスについて決定されても良い。コンピューティングインスタンスの実起動時間は、コンピューティングインスタンスを正常に起動した後に決定されても良い。コンピューティングインスタンスの実起動時間をＳＬＡ比較モジュール１９２０に提供し良い。ＳＬＡ比較モジュール１９２０は、コンピューティングインスタンスの実起動時間をコンピューティングサービス環境１９００のＳＬＡと比較しても良い。一例において、ＳＬＡ比較モジュール１９２０は、コンピューティングインスタンスの実起動時間がコンピューティングサービス環境１９００のＳＬＡに従っていると判定する場合がある。
【０１５４】
あるいは、ＳＬＡ比較モジュール１９２０は、コンピューティングインスタンスの実起動時間をコンピューティングサービス環境１９００のＳＬＡと比較し、コンピューティングインスタンスの実起動時間がコンピューティングサービス環境１９００のＳＬＡに従っていないと判定する場合がある。例えば、ＳＬＡは、コンピューティングインスタンスの起動時間を１０分未満とすべきことを指定しても良い。しかしながら、ＳＬＡ比較モジュールは、実起動時間が１０分より長かったと判定する場合がある。実起動時間がＳＬＡに従っていないとき、ＳＬＡ比較モジュール１９２０はキャッシュレイアウトモジュール１９４０に通知しても良い。キャッシュレイアウトモジュール１９４０は、コンピューティングインスタンスの起動時間がＳＬＡに沿う（例えば、起動時間を短縮する）ように、コンピューティングインスタンスと関連したマシンイメージ１９１２をキャッシュするためのキャッシュレイアウトを決定しても良い。一例において、キャッシュレイアウトモジュール１９４０は、コンピューティングサービス環境１９００内の別の物理ホストにマシンイメージ１９１２を記憶することにより、既存のキャッシュレイアウトを修正しても良い。図１９に示した例において、キャッシュレイアウトモジュール１９４０は、物理ホスト１９５０にではなく、物理ホスト１９５０及び物理ホスト１９７０にマシンイメージ１９１２を記憶することにより、起動時間を短縮し、かつコンピューティングサービス環境１９００のＳＬＡに適合するようにしても良い。
【０１５５】
図２０は、機械学習予測モデル２０５０を作成して、コンピューティングサービス環境内で起動されるコンピューティングインスタンスの起動時間を予測することを示す例示的なブロック図２０００である。起動時間予測モデル２０５０は、実起動時間予測データ２０１０を用いて作成される機械学習モデルであって良い。実起動時間入力データ２０１０は、コンピューティングサービス環境内で以前に起動された複数のコンピューティングインスタンスに関する情報（例えば、起動メトリック）を含んでも良い。そのため、実起動時間入力データ２０１０は、コンピューティングサービス環境内で以前に起動されたコンピューティングインスタンスに関する履歴情報を含んでも良い。加えて、実起動時間入力データ２０１０は、コンピューティングサービス環境内の複数の物理ホストの履歴情報を含んでも良い。後述するように、実起動時間入力データ２０１０を変換して、起動時間予測モデル２０５０を訓練するのに使用しても良い。
【０１５６】
別の非限定的な例として、実起動時間入力データ２０１０は、コンピューティングインスタンスＡが起動に６０秒かかったことを示し得るが、コンピューティングインスタンスＡは、サイズが比較的大きく、第１のタイプのデータ記憶装置を使用し、３２ビットアーキテクチャを使用し、５つの他のコンピューティングインスタンスを同時に起動している物理ホスト上で起動された。非限定的な例として、実起動時間入力データ２０１０は、コンピューティングインスタンスＢが起動に１５秒かかったことを示し得るが、コンピューティングインスタンスＢは、サイズが比較的小さく、第２のタイプのデータ記憶装置を使用し、６４ビットアーキテクチャを使用し、他のコンピューティングインスタンスを同時に起動していない物理ホスト上で起動された。
【０１５７】
実起動時間入力データ２０１０を特徴選択・正規化モジュール２０２０に提供しても良い。特徴選択・正規化モジュール２０２０は、実起動時間入力データ２０１０をモデルの特徴に変換しても良い。換言すれば、モデルの特徴は、以前に起動されたコンピューティングインスタンスの特性、及びコンピューティングインスタンスを以前に起動した物理ホストの特性に関するものであって良い。モデルの特徴は、インスタンスの特徴と物理ホストの特徴に分類されても良い。
【０１５８】
インスタンスの特徴は、コンピューティングインスタンスのサイズ、コンピューティングインスタンスによって使用されるマシンイメージ（例えば、マシンイメージまたはカーネルイメージ）、コンピューティングインスタンスを起動するときにマシンイメージが物理ホストにキャッシュされ、またはキャッシュされないかどうか、コンピューティングインスタンスのアーキテクチャタイプ（例えば、３２ビットアーキテクチャまたは６４ビットアーキテクチャ）、コンピューティングインスタンスの仮想化タイプ（例えば、準仮想化またはハードウェア仮想マシン）、及びコンピューティングインスタンスによって使用されるデータ記憶装置のタイプなどを含み得るが、これらに限定されることはない。インスタンスの特徴は、コンピューティングインスタンスの起動に使用されるオペレーティングシステム（ＯＳ）の種類及びネットワークタイプ（例えば、バーチャルプライベートネットワーク）などの、ユーザーによって調整される特徴を含んでも良い。
【０１５９】
物理ホストの特徴は、物理ホストがホストすることができるコンピューティングインスタンスの最大数、物理ホストと関連したハードウェアタイプ、物理ホストと関連したハードウェアベンダ、コンピューティングインスタンスが起動されるときの物理ホストの占有率、及び物理ホストが位置するゾーンを含み得るが、これらに限定されることはない。物理ホストの特徴は、コンピューティングインスタンスを起動する物理ホスト（すなわち、対象の物理ホスト）上でペンディング中のコンピューティングインスタンス及び／または実行中のコンピューティングインスタンスの平均数、最小数及び最大数を含んでも良い。加えて、物理ホストの特徴は、コンピューティングインスタンスを起動する物理ホスト（すなわち、対象の物理ホスト）上で現在ペンディング状態及び／または実行状態にあるコンピューティングインスタンスの数を含んでも良い。
【０１６０】
特徴選択・正規化モジュール２０２０は、モデルの特徴を正規化して（すなわち、種々の尺度で測定された値を抽象的な共通の尺度に調整して）、起動時間予測訓練データ２０３０を作成するようにしても良い。起動時間予測訓練データ２０３０は、起動時間予測入力データ２０１０において識別された複数のコンピューティングインスタンスの全体的な特徴を表しても良い。起動時間予測訓練データ２０３０を機械学習選択モジュール２０４０に提供しても良い。機械学習選択モジュール２０４０は、起動時間予測訓練データ２０３０を使用して、各種の機械学習モデル２０４２を訓練しても良い。例えば、回帰モデルを訓練しても良い。回帰モデル２０４２は、サポートベクターマシン、確率的勾配降下法、適応ブースト、ｅｘｔｒａ  ｔｒｅｅｓ及びランダムフォレストを含み得るが、これらに限定されることはない。各種の回帰モデル２０４２は、様々な成功度を有する起動時間予測訓練データ２０３０に対応し得る。一例において、ランダムフォレストの独立変数は、起動時間予測訓練データ２０３０に関する比較的高い正解率を提供し得る。従って、機械学習選択モジュール２０４０は、コンピューティングインスタンスの起動時間を推定するときに、ランダムフォレストの独立変数を使用しても良い。
【０１６１】
起動時間予測モデル２０５０は、コンピューティングインスタンスの起動を求める要求を受信しても良く、当該コンピューティングインスタンスと関連したインスタンスの特徴及び物理ホストの特徴に基づき、起動時間予測モデル２０５０は、そのコンピューティングインスタンスの起動時間を予測しても良い。一例において、起動時間予測モデル２０５０は、同じ物理ホスト上でのコンピューティングインスタンスの同時起動数、コンピューティングインスタンスによって記憶され、使用されるデータの種類、コンピューティングインスタンスによって使用されるアーキテクチャタイプ、及びコンピューティングインスタンスと関連したマシンイメージが、他のモデルの特徴と比較してコンピューティングインスタンスの起動時間により大きな影響を及ぼし得ると判定しても良い。
【０１６２】
いくつかの場合には、コンピューティングインスタンスの予測起動時間は、コンピューティングインスタンスの実起動時間と異なっていても良い。コンピューティングインスタンスと関連したインスタンスの特徴及び物理ホストの特徴、ならびにコンピューティングインスタンスを起動するための実起動時間を使用して起動時間予測モデル２０５０を更に訓練することにより、将来の起動時間の予測を向上させるようにしても良い。
【０１６３】
図２１は、コンピューティングインスタンスの起動時間を短縮する例示的な方法のフロー図である。ブロック２１１０のように、コンピューティングサービス環境の予想トラフィックパターンを識別しても良い。予想トラフィックパターンは、定められた期間中にコンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスと関連したマシンイメージを示しても良い。一例では、経験則を使用して、コンピューティングサービス環境の予想トラフィックパターンを識別しても良い。経験則は、コンピューティングサービス環境の履歴トラフィックパターンに関するものであって良い。
【０１６４】
ブロック２１２０のように、コンピューティングサービス環境内の既定の領域にマシンイメージをキャッシュすることを決定することにより、マシンイメージをキャッシュしない場合と比較してコンピューティングインスタンスの起動時間を短縮するようにしても良い。換言すれば、コンピューティングインスタンスを起動している物理ホストに対して局所的なマシンイメージをキャッシュすることにより、データ記憶装置からネットワークを介してマシンイメージを読み込む場合と比較して相対的により速い起動時間が提供され得る。一例では、起動時間予測モデルを使用して、既定の領域でマシンイメージをキャッシュするように決定しても良い。
【０１６５】
ブロック２１３０のように、コンピューティングサービス環境にマシンイメージをキャッシュすることを可能にするキャッシュレイアウトを決定しても良い。キャッシュレイアウトは、コンピューティングサービス環境内の既定の領域の物理ホストを識別しても良い。この物理ホストは、マシンイメージをキャッシュするのに利用可能である。キャッシュレイアウトは、マシンイメージをキャッシュするのに利用可能な物理ホスト、またはマシンイメージのコピーをそれぞれキャッシュするのに利用可能な一群の物理ホストを識別しても良い。
【０１６６】
ブロック２１４０のように、マシンイメージは、キャッシュレイアウトに従ってコンピューティング環境内の少なくとも１つの物理ホストに記憶されても良い。物理ホストにマシンイメージを記憶することにより、コンピューティングインスタンスを起動するための起動時間を短縮しても良い。一例において、マシンイメージを複数の物理ホストに記憶して、同じマシンイメージに基づく複数のコンピューティングインスタンスの起動時間を短縮するようにしても良い。
【０１６７】
一例において、コンピューティングインスタンスを起動するための所望の起動時間を受信しても良く、キャッシュレイアウトは、マシンイメージをキャッシュすることを可能とすることによってコンピューティングインスタンスを起動するための実起動時間が上記の所望の起動時間と実質的に同等となるように決定されても良い。更に別の例において、コンピューティングサービス環境にキャッシュされる各種のマシンイメージを識別しても良く、これら各種のマシンイメージをキャッシュすることができる物理ホストに１つ以上のキャッシングスロットを搭載するようにキャッシュレイアウトを決定しても良い。
【０１６８】
図２２は、コンピューティングインスタンスの起動時間を短縮する別の例示的な方法のフロー図である。ブロック２２１０のように、定められた期間中にコンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスを識別しても良い。一例では、経験則を使用して、コンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスを識別しても良い。経験則は、コンピューティングサービス環境の履歴トラフィックパターンに関するものであって良い。一例において、定められた期間中にコンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスは、コンピューティングサービス環境の予想トラフィックパターンを予測する機械学習モデルを用いて識別されても良い。
【０１６９】
ブロック２２２０のように、コンピューティングサービス環境にマシンイメージをキャッシュするように決定することにより、マシンイメージをキャッシュしない場合と比較してコンピューティングインスタンスを起動するための起動時間を短縮するようにしても良い。一例では、起動時間予測モデルを使用して、マシンイメージをキャッシュするように決定しても良い。起動時間予測モデルは、コンピューティングインスタンスと関連したインスタンスの特徴及びコンピューティングサービス環境内の一群の物理ホストと関連した物理ホスト特徴に一部基づいてコンピューティングインスタンスの起動時間を予測する回帰モデルであって良い。
【０１７０】
ブロック２２３０のように、コンピューティングインスタンスのマシンイメージをキャッシュするのに利用可能なコンピューティングサービス環境内の少なくとも１つの物理ホストは、起動時間予測モデルを用いて選択されても良い。加えて、物理ホストは、マシンイメージをキャッシュすることが可能であって良い（例えば、物理ホストは、マシンイメージをキャッシュするのに十分な能力を有する利用可能なストレージスロットを含む）。
【０１７１】
ブロック２２４０のように、マシンイメージは、物理ホストに記憶されても良い。マシンイメージを物理ホストに記憶することにより、コンピューティングインスタンスを起動するための起動時間を短縮しても良い。一例において、マシンイメージは、選択されたトポロジ層に従ってコンピューティングサービス環境内の物理ホストまたは物理ストレージデバイスに記憶されても良い。別の例において、マシンイメージは、キャッシュレイアウトに従って記憶されても良い。キャッシュレイアウトは、マシンイメージをキャッシュしてコンピューティングインスタンス（複数可）の起動時間を短縮するのに利用可能なコンピューティングサービス環境内の複数の物理ホストを示しても良い。更に別の例において、コンピューティングインスタンスの起動時間がコンピューティングサービス環境のサービスレベルに関する合意（ＳＬＡ）に従うように、マシンイメージを物理ホストに記憶しても良い。
【０１７２】
１つの構成において、コンピューティングインスタンスの起動を求める要求を受信しても良い。コンピューティングサービス環境内の物理ホストでキャッシュされる、コンピューティングインスタンスと関連したマシンイメージを識別しても良い。マシンイメージは、コンピューティングサービスを提供するために物理ホストにロードされても良い。別の構成において、コンピューティングサービス環境にキャッシュされるマシンイメージのサイズを識別しても良い。当該サイズのマシンイメージをキャッシュすることができるスロットを備えた、コンピューティングサービス環境内の物理ホストを選択しても良い。コンピューティングサービス環境内の既定の領域でマシンイメージをキャッシュすることにより、そのマシンイメージと関連した起動時間を短縮しても良い。
【０１７３】
一例において、コンピューティングインスタンスを起動するための所望の起動時間を特定しても良い。所望の起動時間は、コンピューティングサービス環境にアクセスしている顧客から受信されても良い。コンピューティングインスタンスと関連したマシンイメージを記憶するのに利用可能なコンピューティングサービス環境内の物理ホストを選択しても良い。物理ホストは、起動時間予測モデルを用いて、所望の起動時間に従ってコンピューティングインスタンスを起動することが可能であるものとして検証されても良い。マシンイメージは、コンピューティングインスタンスを起動するための実起動時間が所望の起動時間と実質的に同等となるように、コンピューティング環境の物理ホストに記憶されても良い。
【０１７４】
別の例において、コンピューティングインスタンスの起動時間は、コンピューティングサービス環境のサービスレベルに関する合意（ＳＬＡ）に従っていないと判定される場合がある。コンピューティングインスタンスと関連したマシンイメージを、コンピューティングサービス環境内の別の物理ホストに記憶することにより、コンピューティングインスタンスの起動時間を更に短縮してＳＬＡに適合するようにしても良い。別の物理ホストにマシンイメージを記憶することにより、複数のコンピューティングインスタンスが同時に起動されるときの起動時間を短縮しても良い。加えて、別の物理ホストにマシンイメージを記憶することにより、相対的に最も短い起動時間を提供する物理ホストを選択してコンピューティングインスタンスを起動できるようにしても良い。更に別の例において、コンピューティングサービス環境内でコンピューティングインスタンスを起動することを求める要求を受信しても良い。コンピューティングインスタンスと関連したマシンイメージを、休止状態にあるものとして認識しても良い。コンピューティングインスタンスは、休止状態から実行状態にマシンイメージを切り替えることによってコンピューティングサービス環境内で起動されても良い。それにより、コンピューティングサービス環境内でコンピューティングインスタンスを起動するための起動時間が最小になる。本開示の実施形態は、以下の条項に照らして記載することができる。
【０１７５】
１．非一時的マシン可読記憶媒体であって、前記非一時的マシン可読記憶媒体に具現化された命令を有し、プロセッサによって実行されると、前記命令は、
以前の複数のコンピューティングインスタンスの起動に関する起動特徴を表す訓練データを取得し、
前記訓練データを用いてランダムフォレスト回帰モデルを訓練し、
コンピューティングサービス環境内の物理ホスト上でコンピューティングインスタンスを起動するための予測起動時間を求める要求を受信し、
前記コンピューティングサービス環境内で前記コンピューティングインスタンスを起動することと関連した起動特徴であって、前記コンピューティングインスタンスの起動時間に影響を及ぼすと判定された前記起動特徴を識別し、
前記コンピューティングインスタンスを起動することと関連した前記起動特徴を、前記コンピューティングサービス環境内で前記コンピューティングインスタンスを起動するための予測起動時間を出力する機械学習回帰モデルに入力する、
前記非一時的マシン可読記憶媒体。
【０１７６】
２．前記プロセッサによって実行されると、命令は、マシンイメージの起動特徴、物理ホストの起動特徴及び顧客構成の起動特徴を含む起動特徴から、コンピューティングインスタンスの起動時間に影響を及ぼすと判定された起動特徴を更に選択する、条項１に記載の非一時的マシン可読記憶媒体。
【０１７７】
３．前記プロセッサによって実行されると、命令は、前記予測起動時間をＳＬＡ（ｓｅｒｖｉｃｅ  ｌｅｖｅｌ  ａｇｒｅｅｍｅｎｔ）起動時間と比較することによって前記ＳＬＡ起動時間が満たされる可能性があるかどうかを更に判定する、条項１に記載の非一時的マシン可読記憶媒体。
【０１７８】
４．コンピュータ実装方法であって、
実行可能命令を用いて構成された１つ以上のコンピュータシステムの制御下で、
コンピューティングサービス環境内の物理ホスト上でコンピューティングインスタンスを起動するための予測起動時間を求める要求を受信することと、
プロセッサを用いて、コンピューティングサービス環境内の物理ホスト上での前記コンピューティングインスタンスの起動に影響を及ぼすと判定されたコンピューティングインスタンスの起動特徴と関連したデータを取得することと、
前記プロセッサを用いて、前記コンピューティングサービス環境内でコンピューティングインスタンスを起動するための予測起動時間を出力する機械学習モデルに前記コンピューティングインスタンスの前記起動特徴を入力することと、
を含む前記方法。
【０１７９】
５．起動特徴と関連した前記データを取得することは、マシンイメージの起動特徴、物理ホストの起動特徴及び顧客構成の起動特徴と関連したデータを取得することを更に含む、条項４に記載の方法。
【０１８０】
６．前記機械学習モデルに前記起動特徴を入力する前に前記起動特徴を正規化することを更に含む、条項４に記載の方法。
【０１８１】
７．前記起動特徴に対する前記機械学習モデルの適合度となる機械学習パラメータのパラメータ値探索を実行することを更に含む、条項４に記載の方法。
【０１８２】
８．前記パラメータ値探索を実行することは、分散遺伝的アルゴリズムを用いて機械学習パラメータのパラメータ値探索を実行することを更に含む、条項７に記載の方法。
【０１８３】
９．起動特徴と関連したデータを取得することは、
以前の複数のコンピューティングインスタンスの起動に関する起動特徴を表す有効訓練データを取得することと、
前記起動特徴と関連した前記有効訓練データから特徴を抽出することと、
前記有効訓練データからの前記特徴を用いて前記機械学習モデルを訓練することと、
を更に含む、条項４に記載の方法。
【０１８４】
１０．前記起動特徴を機械学習モデルに入力することは、ランダムフォレストモデル、ｅｘｔｒｅｍｅｌｙ  ｒａｎｄｏｍｉｚｅｄ  ｔｒｅｅｓモデル、ＡｄａＢｏｏｓｔモデル、確率的勾配降下モデルまたはサポートベクターマシンモデルの少なくとも１つから選択された機械学習モデルに前記起動特徴を入力することを更に含む、条項４に記載の方法。
【０１８５】
１１．前記起動特徴を機械学習モデルに入力することは、前記コンピューティングインスタンスの前記起動特徴を機械学習回帰モデルに入力することを更に含む、条項４に記載の方法。
【０１８６】
１２．前記コンピューティングインスタンスの起動を求める顧客からの起動要求を受信することと、
前記コンピューティングインスタンスのコンピューティングインスタンスタイプと関連したＳＬＡ起動時間を特定することと、
前記コンピューティングインスタンスの前記予測起動時間を前記ＳＬＡ起動時間と比較することによって前記ＳＬＡ起動時間が満たされる可能性があるかどうかを判定することと
を更に含む、請求項４に記載の方法。
【０１８７】
１３．前記予測起動時間が前記ＳＬＡ起動時間より長いと判定されたときに、前記ＳＬＡ起動時間を達成する可能性がないとコンピューティングサービスプロバイダに通知することを更に含む、条項１２に記載の方法。
【０１８８】
１４．前記予測起動時間が前記ＳＬＡ起動時間より長い場合にＳＬＡ違反特徴を作成することと、
機械学習分類モデルに入力された他の特徴に前記ＳＬＡ違反特徴を含めることと、
を更に含む、条項１２に記載の方法。
【０１８９】
１５．前記コンピューティングインスタンスのＳＬＡ起動時間を特定することと、
前記コンピューティングインスタンスの前記予測起動時間を前記ＳＬＡ起動時間と比較することによって前記ＳＬＡ起動時間が満たされる可能性があるかどうかを判定することと、
コンピューティングインスタンスが起動されるコンピューティングサービス環境の状態を分析して、前記ＳＬＡ起動時間に違反する可能性があると判定されたときに前記ＳＬＡ起動時間に対する違反を防ぐ可能性のある処置を実行し得るかどうかを判定することと、
を更に含む、請求項４に記載の方法。
【０１９０】
１６．実行される処置は、前記コンピューティングインスタンスをホストするのに利用可能な一群の物理ホストから物理ホストを除去することを更に含む、条項１５に記載の方法。
【０１９１】
１７．実行される処置は、前記コンピューティングインスタンスをホストするのに利用可能な一群の物理ホストに少なくとも１つの物理ホストを加えることを更に含む、条項１５に記載の方法。
【０１９２】
１８．プロセッサと、
メモリデバイスであって、前記プロセッサによって実行されると、前記システムに、
起動構成に含まれる起動特徴であって、コンピューティングサービス環境内のコンピューティングインスタンスの起動時間に影響を及ぼすと判定された前記起動特徴を識別し、
前記起動特徴に関するデータをデータソースから取得し、
前記コンピューティングサービス環境内でコンピューティングインスタンスを起動するための予測起動時間を出力する機械学習モデルに前記起動特徴を入力し、
前記予測起動時間をＳＬＡ起動時間と比較することによって前記ＳＬＡ起動時間が満たされる可能性があるかどうかを判定すること、
を行わせる命令、を含む前記メモリデバイスと、
を備えるシステム。
【０１９３】
１９． 前記メモリデバイスは、前記プロセッサによって実行されると、前記起動特徴を機械学習回帰モデルに入力することを前記システムに行わせる命令、を含む、条項１８に記載のシステム。
【０１９４】
２０．前記メモリデバイスは、前記プロセッサによって実行されると、
コンピューティングインスタンスを起動するのに使用されるマシンイメージの特徴、
前記コンピューティングインスタンスをホストすることができる物理ホストサーバの特徴、及び
起動されるときに前記コンピューティングインスタンスに接続されるコンピューティングインスタンスアタッチメントの特徴、
を取得することを前記システムに行わせる命令、を含む、条項１８に記載のシステム。
【０１９５】
２１．具現化された命令を含む非一時的マシン可読記憶媒体であって、前記命令は、プロセッサによって実行されると、システムに、
コンピューティングサービス環境内でコンピューティングインスタンスを起動することを求める要求を受信し、
前記コンピューティングインスタンスと関連したインスタンスの特徴及び前記コンピューティングサービス環境内の一群の物理ホストと関連した物理ホストの特徴を機械学習モデルに提供し、
前記コンピューティングサービス環境内の各物理ホスト上で前記コンピューティングインスタンスを起動するための推定起動時間を前記機械学習モデルを用いて決定し、
前記一群の物理ホスト中の他の物理ホストと比較してより短い推定起動時間に従って前記コンピューティングインスタンスの配置を実現する物理ホストを前記一群の物理ホストから選択する、ことを行わせる、
前記非一時的マシン可読記憶媒体。
【０１９６】
２２．実行されると、前記システムに、
前記コンピューティングインスタンスの前記推定起動時間に加重値を割り当て、
前記推定起動時間に割り当てられた前記加重値に一部基づき、前記コンピューティングインスタンスを配置するための前記物理ホストを選択することを更に行わせる命令を更に含む、条項２１に記載の非一時的マシン可読記憶媒体。
【０１９７】
２３．実行されると、前記システムに、前記コンピューティングインスタンスの起動を求める前記要求に含まれる配置制約を用いて、前記コンピューティングインスタンスの配置を実現する前記物理ホストを前記一群の物理ホストから選択することを更に行わせる命令を更に含む、条項２１に記載の非一時的マシン可読記憶媒体。
【０１９８】
２４．前記推定起動時間は、前記コンピューティングインスタンスを配置するための前記物理ホストを選択するときに使用される複数の要因のうちの１つであり、
前記複数の要因は、物理ホストの利用率の配置要因、ライセンスコストの配置要因及び災害の影響の要因の少なくとも一つを含む、条項２１に記載の非一時的マシン可読記憶媒体。
【０１９９】
２５．コンピュータ実装方法であって、
実行可能命令を用いて構成された１つ以上のコンピュータシステムの制御下で、
前記コンピュータシステムの１つ以上のプロセッサを用いて、コンピューティングサービス環境内でコンピューティングインスタンスを起動することを求める要求を受信することと、
前記コンピュータシステムの前記１つ以上のプロセッサを用いて、一群の物理ホスト中の物理ホスト上で起動するための前記コンピューティングインスタンスの推定起動時間を特定することと、
前記コンピュータシステムの前記１つ以上のプロセッサを用いて、前記コンピューティングインスタンスの前記推定起動時間に一部基づき、前記コンピューティングインスタンスを配置するための前記一群の物理ホスト中の物理ホストを選択することと、
を含む前記方法。
【０２００】
２６．前記物理ホスト上で前記コンピューティングインスタンスを起動させることを更に含む、条項２５に記載の方法。
【０２０１】
２７．各物理ホスト上での前記コンピューティングインスタンスの前記推定起動時間を前記一群の物理ホスト中の他の物理ホストと比較することと、
前記一群の物理ホスト中の前記他の物理ホストと比較して推定起動時間が短い前記一群の物理ホスト中の物理ホストを選択することと、
を更に含む、条項２５に記載の方法。
【０２０２】
２８．前記コンピューティングインスタンスと関連したインスタンスの特徴及び前記一群の物理ホスト中の前記物理ホストと関連した物理ホストの特徴に一部基づき、
前記コンピューティングインスタンスを起動するための前記推定起動時間を特定することを更に含み、
前記コンピューティングインスタンスと関連した前記インスタンスの特徴は、ユーザーによって選択された特徴を含む、条項２５に記載の方法。
【０２０３】
２９．回帰モデルを用いて前記コンピューティングインスタンスを起動する前記推定起動時間を特定することを更に含む、条項２５に記載の方法。
【０２０４】
３０．前記コンピューティングインスタンスの前記推定起動時間に加重値を割り当てることと、
前記推定起動時間に割り当てられた前記加重値に一部基づき、前記コンピューティングインスタンスを配置するための前記物理ホストを選択することと、
を更に含む、条項２５に記載の方法。
【０２０５】
３１．物理ホストの利用率の配置要因、ライセンスコストの配置要因または災害の影響の配置要因のうちの少なくとも１つを含む別の配置要因を用いて、前記コンピューティングインスタンスを配置するための前記一群の物理ホスト中の前記物理ホストを選択することを更に含む、条項２５に記載の方法。
【０２０６】
３２．前記一群の物理ホスト中の他の物理ホストと比較してより少ない数の同時起動中のコンピューティングインスタンスを含む前記物理ホストを選択することを更に含む、条項２５に記載の方法。
【０２０７】
３３．前記コンピューティングインスタンスを配置するための領域またはゾーンを、前記領域またはゾーン内のコンピューティングインスタンスの前記推定起動時間に一部基づいて選択することを更に含む、条項２５に記載の方法。
【０２０８】
３４．前記コンピューティングインスタンスを実行するために選択された前記物理ホストが、所定の閾値を超える複数のコンピューティングインスタンスを同時に実行していないことを検証することを更に含む、条項２５に記載の方法。
【０２０９】
３５．前記推定起動時間は、顧客からコンピューティングインスタンス起動要求を受信してから前記物理ホスト上で前記コンピューティングインスタンスをブートするまでの時間を含む、条項２５に記載の方法。
【０２１０】
３６．前記コンピューティングインスタンスと関連したアタッチメントを起動するための推定時間を特定することと、
前記一群の物理ホスト中の他の物理ホストと比較して短い推定接続時間で前記コンピューティングインスタンスの配置を実現することができる前記物理ホストを選択することと、
を更に含む、条項２５に記載の方法。
【０２１１】
３７．コンピューティングインスタンスの配置を決定するシステムであって、
プロセッサと、
メモリデバイスであって、前記プロセッサによって実行されると、前記システムに、
コンピューティングサービスプロバイダ上でコンピューティングインスタンスを起動することを求める要求を受信し、
前記コンピューティングインスタンスと関連したインスタンスの特徴、及びコンピューティングインスタンスをホストするように構成された物理ホストと関連した物理ホストの特徴に一部基づき、物理ホスト上で前記コンピューティングインスタンスを起動するための推定起動時間を特定し、
前記コンピューティングインスタンスの前記推定起動時間に一部基づき、前記コンピューティングインスタンスを配置するための物理ホストを選択する、
ことを行わせる命令を含む前記メモリデバイスと、
を備える前記システム。
【０２１２】
３８．前記メモリデバイスは、前記プロセッサによって実行されると、他の物理ホストと比較してより少ない数の同時起動中のコンピューティングインスタンスを有する物理ホストを選択することを前記システムに行わせる命令を含む、条項３７に記載のシステム。
【０２１３】
３９．前記メモリデバイスは、前記プロセッサによって実行されると、前記コンピューティングインスタンスを実行するために選択された前記物理ホストが、所定の閾値を超える複数のコンピューティングインスタンスを同時に実行していないことを検証することを前記システムに行わせる命令を含む、条項３７に記載のシステム。
【０２１４】
４０．前記メモリデバイスは、前記プロセッサによって実行されると、前記インスタンスの特徴及び前記物理ホストの特徴に一部基づいてコンピューティングインスタンスの起動時間を予測する回帰モデルを用いて前記コンピューティングインスタンスの前記推定起動時間を特定することを前記システムに行わせる命令を含む、条項３７に記載のシステム。
【０２１５】
４１．非一時的マシン可読記憶媒体であって、非一時的マシン可読記憶媒体は前記非一時的マシン可読記憶媒体に具現化された命令を有し、前記命令は、コンピューティングインスタンスの起動時間を向上させるためにプロセッサによって実行され、
前記命令は、
定められた期間中にコンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスと関連したマシンイメージを示す予想トラフィックパターンを識別することと、
起動時間予測モデルを用いて、前記コンピューティングサービス環境内の既定の領域で前記マシンイメージをキャッシュすることは、前記マシンイメージをキャッシュしない場合と比較して前記コンピューティングインスタンスの起動時間を短縮すると判定することと、
前記コンピューティングサービス環境に前記マシンイメージをキャッシュすることを可能にするようにキャッシュレイアウトを決定することであって、前記キャッシュレイアウトは、前記マシンイメージをキャッシュするのに利用可能な前記コンピューティングサービス環境内の前記所定の領域の物理ホストを識別する、前記決定することと、
前記キャッシュレイアウトに従って前記コンピューティング環境内の少なくとも１つの物理ホストに前記マシンイメージを記憶することと、
を含む、前記非一時的マシン可読記憶媒体。
【０２１６】
４２．経験則を使用して前記コンピューティングサービス環境の前記予想トラフィックパターンを識別することを更に含み、前記経験則は、前記コンピューティングサービス環境の履歴トラフィックパターンに関する、請求項４１に記載の非一時的マシン可読記憶媒体。
【０２１７】
４３．コンピューティングインスタンスを起動するための所望の起動時間を受信することと、
前記コンピューティングインスタンスを起動するための実起動時間が前記所望の起動時間と実質的に同等となるように、前記コンピューティングインスタンスと関連したマシンイメージをキャッシュすることを可能とする前記キャッシュレイアウトを決定することと、
を更に含む、請求項４１に記載の非一時的マシン可読記憶媒体。
【０２１８】
４４．前記コンピューティングサービス環境にキャッシュされる各種のマシンイメージを識別することと、
前記各種のマシンイメージをキャッシュすることができる前記物理ホストに１つ以上のスロットを搭載するように前記キャッシュレイアウトを決定することと、
を更に含む、請求項４１に記載の非一時的マシン可読記憶媒体。
【０２１９】
４５．コンピュータ実装方法であって、
実行可能命令を用いて構成された１つ以上のコンピュータシステムの制御下で、
前記コンピュータシステムの１つ以上のプロセッサを用いて、定められた期間中にコンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスを識別することと、
前記コンピューティングサービス環境に前記コンピューティングインスタンスのマシンイメージをキャッシュすることは、前記マシンイメージをキャッシュしない場合と比較して前記コンピューティングインスタンスを起動するための起動時間を短縮することを、起動時間予測モデルを介して、前記コンピュータシステムの前記１つ以上のプロセッサを用いて判定することと、
前記コンピュータシステムの前記１つ以上のプロセッサを用いて、前記起動時間予測モデルによって予測されたように、前記コンピューティングインスタンスの前記起動時間を短くするために、前記マシンイメージをキャッシュするのに利用可能な前記コンピューティングサービス環境内の少なくとも１つの物理ホストを選択することと、
前記コンピュータシステムの前記１つ以上のプロセッサを用いて、前記物理ホストに前記マシンイメージを記憶することと、
を含む前記方法。
【０２２０】
４６．前記コンピューティングインスタンスの起動を求める要求を受信することと、
前記コンピューティングサービス環境内の前記物理ホストでキャッシュされる前記コンピューティングインスタンスと関連した前記マシンイメージを識別することと、
コンピューティングサービスを提供するために前記物理ホストに前記マシンイメージをロードすることと、
を更に含む、請求項４５に記載の方法。
【０２２１】
４７．経験則を使用して前記コンピューティングサービス環境の予想トラフィックパターンを識別することを更に含み、前記経験則は、前記コンピューティングサービス環境の履歴トラフィックパターンに関する、請求項４５に記載の方法。
【０２２２】
４８．前記コンピューティングサービス環境の予想トラフィックパターンを予測する機械学習モデルを用いて、前記定められた期間かつ定められた地理的領域において、前記コンピューティングサービス環境内で起動されると予想される前記コンピューティングインスタンスを識別すること、を更に含む、請求項４５に記載の方法。
【０２２３】
４９．前記コンピューティングサービス環境にキャッシュされる前記マシンイメージのサイズを特定することと、
前記サイズのマシンイメージをキャッシュすることができるスロットを備えた前記コンピューティングサービス環境内の前記物理ホストを選択することであって、前記マシンイメージは、前記マシンイメージと関連した前記起動時間を短縮するために前記コンピューティングサービス環境内の既定の領域でキャッシュされる、前記選択することと、
を更に含む、請求項４５に記載の方法。
【０２２４】
５０．選択されたトポロジ層に従って、前記コンピューティングサービス環境に前記マシンイメージを記憶することを更に含む、請求項４５に記載の方法。
【０２２５】
５１．キャッシュレイアウトに従って前記マシンイメージを記憶することを更に含み、前記キャッシュレイアウトは、前記起動時間を短縮するために前記マシンイメージをキャッシュするのに利用可能な前記コンピューティングサービス環境内の複数の物理ホストを示す、請求項４５に記載の方法。
【０２２６】
５２．前記コンピューティングインスタンスを起動するための所望の起動時間を特定することと、
前記コンピューティングインスタンスと関連した前記マシンイメージを記憶するのに利用可能な前記コンピューティングサービス環境内の物理ホストを選択することと、
前記コンピューティングインスタンスを起動するための実起動時間が前記所望の起動時間と実質的に同等となるように、前記コンピューティング環境内の前記物理ホストに前記マシンイメージを記憶することと、
を更に含む、請求項４５に記載の方法。
【０２２７】
５３．前記起動時間が前記コンピューティングサービス環境のサービスレベルに関する合意（ＳＬＡ）に従うように、前記マシンイメージを前記物理ホストに記憶することを更に含む、請求項４５に記載の方法。
【０２２８】
５４．前記コンピューティングインスタンスの前記起動時間が、前記コンピューティングサービス環境のサービスレベルに関する合意（ＳＬＡ）に従っていないと判定することと、
前記ＳＬＡに適合するように前記マシンイメージと関連したコンピューティングインスタンスの前記起動時間を更に短縮するように、前記コンピューティングインスタンスと関連した前記マシンイメージを前記コンピューティングサービス環境内の別の物理ホストに記憶することと、
を更に含む、請求項４５に記載の方法。
【０２２９】
５５．前記コンピューティングサービス環境内で前記コンピューティングインスタンスを起動することを求める要求を受信することと、
前記コンピューティングインスタンスと関連した前記マシンイメージが休止状態にあると認識することと、
前記休止状態から実行状態に前記マシンイメージを切り替えることによって前記コンピューティングサービス環境内で前記コンピューティングインスタンスを起動し、それにより、前記コンピューティングサービス環境内で前記コンピューティングインスタンスを起動するための前記起動時間を最小にすることと、
を更に含む、請求項４５に記載の方法。
【０２３０】
５６．前記起動時間予測モデルは、前記コンピューティングインスタンスと関連したインスタンスの特徴及び前記コンピューティングサービス環境内の一群の物理ホストと関連した物理ホストの特徴に一部基づいて前記コンピューティングインスタンスの前記起動時間を予測する回帰モデルである、請求項４５に記載の方法。
【０２３１】
５７．コンピューティングインスタンスの起動時間を短縮するシステムであって、
プロセッサと、
メモリデバイスであって、前記プロセッサによって実行されると、前記システムに、
コンピューティングサービス環境の予想トラフィックパターンであって、定められた期間中に前記コンピューティングサービス環境内で起動されると予想されるコンピューティングインスタンスと関連したマシンイメージを示す前記予想トラフィックパターンを識別し、
前記コンピューティングサービス環境内の既定の領域で前記マシンイメージをキャッシュすることが、前記マシンイメージをキャッシュしない場合と比較して前記コンピューティングインスタンスの起動時間を短縮することを、起動時間予測モデルを用いて判定し、
前記マシンイメージをキャッシュするのに利用可能な前記コンピューティングサービス環境内の前記既定の領域の物理ホストを識別するキャッシュレイアウトを、前記コンピューティングサービス環境に前記マシンイメージをキャッシュすることを可能にするように決定し、
前記キャッシュレイアウトに従って前記コンピューティング環境内の少なくとも１つの物理ホストに前記マシンイメージを記憶すること、
を行わせる命令を含む前記メモリデバイスと、
を備える前記システム。
【０２３２】
５８．前記メモリデバイスは、前記プロセッサによって実行されると、前記起動時間が前記コンピューティングサービス環境のサービスレベルに関する合意（ＳＬＡ）に従うように前記マシンイメージを前記物理ホストに記憶することを前記システムに行わせる命令を含む、請求項５７に記載のシステム。
【０２３３】
５９．前記メモリデバイスは、前記プロセッサによって実行されると、選択されたトポロジ層に従って前記コンピューティングサービス環境に前記マシンイメージを記憶することを前記システムに行わせる命令を含む、請求項５７に記載のシステム。
【０２３４】
６０．前記メモリデバイスは、前記プロセッサによって実行されると、前記システムに、
前記コンピューティングインスタンスの起動を求める要求を受信し、
前記コンピューティングサービス環境内の前記物理ホストでキャッシュされる前記コンピューティングインスタンスと関連した前記マシンイメージを識別し、
コンピューティングサービスを提供するために前記マシンイメージをロードすること、を行わせる命令を含む、請求項５７に記載のシステム。
【０２３５】
本技術のために提示されたフローチャートは実行の具体的な順序を示し得るが、実行の順序は図示したものと異なっていても良い。例えば、２つ以上のブロックの順序を、図示した順序に対して並び替えても良い。更に、連続して図示した２つ以上のブロックを並列に実行しても良く、または部分的に並列化して実行しても良い。いくつか構成において、フローチャートに示した１つ以上のブロックを省略しても良く、またはスキップしても良い。任意の数のカウンタ、状態変数、警告セマフォまたはメッセージを、有用性の向上、課金、性能、測定、トラブルシューティングの目的のために、または類似の理由のために論理フローに追加しても良い。
【０２３６】
本明細書で説明した機能ユニットの一部は、それらの実装の独立性を特に強調するために、モジュールとして表記されている。例えば、モジュールは、カスタムＶＬＳＩ回路もしくはゲートアレイを備えたハードウェア回路、論理チップなどの既成の半導体、トランジスタ、または他のディスクリート部品として実装されても良い。モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイスなどのプログラマブルハードウェアデバイスに実装されても良い。
【０２３７】
モジュールは、各種のプロセッサによって実行するためのソフトウェアで実装されても良い。実行可能コードの個別モジュールは、例えば、コンピュータ命令の１つ以上のブロックを含んでも良く、これらのブロックは、オブジェクト、手順または機能として編成されても良い。それにもかかわらず、個別モジュールの実行ファイルは、共に物理的に配置される必要はなく、モジュールを含む種々の領域に記憶された異なる命令を含んでも良く、共に論理的に結合されるときにモジュールの規定の目的を達成しても良い。
【０２３８】
実際、実行可能コードのモジュールは、単一の命令または多数の命令であって良く、更には、いくつかの異なるコードセグメントにわたって、種々のプログラムの間で、更にいくつかのメモリデバイス全体にわたって分散されても良い。同様に、運用データは、モジュールの内部において、識別され、本明細書で例示されても良く、任意の適切な形式で具現化されても良く、任意の適切な種類のデータ構造内で編成されても良い。運用データは、単一のデータセットとして集約されても良く、または種々のストレージデバイスにわたるなどして、種々の領域にわたって分散されても良い。モジュールは、受動的でも能動的でも良く、所望の機能を実行するように運用可能なエージェントを含む。
【０２３９】
本明細書で説明した技術は、コンピュータ可読媒体に記憶されても良い。このような媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を保存するための任意の技術を用いて実装された、揮発性及び不揮発性の、着脱可能及び着脱不可能な媒体が含まれる。コンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭなどの非一時的媒体、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を記憶するのに使用され得る任意の他のコンピュータ記憶媒体及び説明した技術を含むが、これらに限定されることはない。
【０２４０】
本明細書で説明した各デバイスは、これらのデバイスが他のデバイスと通信することを可能にする通信接続またはネットワーク装置及びネットワーク接続を含んでも良い。通信接続は、通信媒体の一例である。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、及び搬送波または他の搬送機構などの被変調データ信号内の他のデータを具現化するものであり、任意の情報伝達媒体を含む。「ｍｏｄｕｌａｔｅｄ  ｄａｔａ  ｓｉｇｎａｌ（被変調データ信号）」は、信号内に情報を符号化する方法でその特性の１つ以上が調節され、または変更された信号を意味する。例えば、限定されることはないが、通信媒体には、有線ネットワークまたは直接の有線接続などの有線媒体、ならびに音響、無線周波数、赤外線及び他の無線媒体などの無線媒体が含まれる。本明細書で使用されるコンピュータ可読媒体という用語には、通信媒体が含まれる。
【０２４１】
図面に示した例を参照し、同一のものを説明するために本明細書において特定の言葉を使用した。それにもかかわらず、技術の範囲を限定することがそれによって意図されるものではないことが理解されよう。本明細書に示した特徴の変更及び更なる修正、ならびに本明細書に示した例のその他の適用は、本明細書の範囲に含まれるとみなすべきである。
【０２４２】
更に、説明した特徴、構造または特性を、１つ以上の例において、任意の好適な方法で組み合わせても良い。先の記述では、説明した技術の例に対する完全な理解を提供するための各種構成例などの、多数の具体的な詳細事項を提示した。しかしながら、本技術は、具体的な詳細事項の１つ以上を伴わずに実施されても良く、または他の方法、構成要素、デバイスなどによって実施されても良いことが認められるであろう。他の事例では、本技術の態様が分かりにくくならないようにするために、周知の構造または動作については詳細に図示も説明もされてない。
【０２４３】
構造的な特徴及び／または動作に特有の言葉を用いて主題を説明してきたものの、添付された特許請求の範囲において定められる主題は、上述した特定の特徴及び動作に必ずしも限定されているわけではないことを理解すべきである。むしろ、上述した特定の特徴及び行為は、特許請求の範囲を実施することの例示的な形態として開示される。説明した技術の精神及び範囲から逸脱することなく、多数の修正及び代替構成が考案され得る。
【図１】
0006564023.tif 000002
【図２】
0006564023.tif 000003
【図３】
0006564023.tif 000004
【図４】
0006564023.tif 000005
【図５】
0006564023.tif 000006
【図６】
0006564023.tif 000007
【図７】
0006564023.tif 000008
【図８】
0006564023.tif 000009
【図９】
0006564023.tif 000010
【図１０】
0006564023.tif 000011
【図１１】
0006564023.tif 000012
【図１２】
0006564023.tif 000013
【図１３】
0006564023.tif 000014
【図１４】
0006564023.tif 000015
【図１５】
0006564023.tif 000016
【図１６】
0006564023.tif 000017
【図１７】
0006564023.tif 000018
【図１８】
0006564023.tif 000019
【図１９】
0006564023.tif 000020
【図２０】
0006564023.tif 000021
【図２１】
0006564023.tif 000022
【図２２】
0006564023.tif 000023