図面 (/)

技術 事前設定および事前起動計算リソース

出願人 アマゾンテクノロジーズインコーポレイテッド
発明者 クリストファーリチャードジャックデカットアージュンラダクリシュナンジェイコブスヨハネスニコラースヴァンダーマーウェジェイムズアルフレッドゴードングリーンフィールド
出願日 2014年6月10日 (6年4ヶ月経過) 出願番号 2016-519600
公開日 2016年9月8日 (4年1ヶ月経過) 公開番号 2016-527604
状態 特許登録済
技術分野 マルチプログラミング
主要キーワード 事前配置 ゾーンパラメータ 数学的方程式 自動スケーリング 目標密度 密度パラメータ ラックマウントサーバ 電気的消去可能プログラマブルROM
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2016年9月8日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題・解決手段

データセンタにおいて計算インスタンス事前準備するためのシステム、方法およびコンピュータ可読媒体記述される。データセンタに関連するサービスプロバイダは、計算インスタンスについての要求を予測し、データセンタ内コンピューティングリソース事前設定することによって、計算インスタンスを事前起動することができる。そのようなものとして、ユーザが計算インスタンスをリクエストすると、サービスプロバイダは、事前準備された計算インスタンスをユーザに割り当てることによって、リクエストを満たすことができる。

概要

背景

サービスプロバイダは、企業、大学、政府機関および他のタイプの顧客などのさまざまな事業体コンピューティングリソースを提供している。サービスプロバイダによって供給されるサービスは、事業体に、リソース割り当てにおける柔軟性、スケーラビリティの向上、運転コストの減少などをもたらしている。

サービスプロバイダは、一般的に、コンピューティングリソースをインスタンスの形態で提供する。インスタンスは、仮想機械、仮想機械インスタンスなどとして実施される場合がある。インスタンスの形態でコンピューティングリソースを提供する能力によって、サービスプロバイダは、サービスを利用するさまざまな事業体のニーズおよび要件に合う利用可能なコンピューティングリソースを動的にスケーリングすることができる。

図面全体を通じて、参照番号は、参照された要素間の一致を示すために再使用され得る。図面は、本明細書に記述される実施例の実施形態を図示するために提供され、本開示の範囲を限定することは意図しない。

概要

データセンタにおいて計算インスタンスを事前準備するためのシステム、方法およびコンピュータ可読媒体が記述される。データセンタに関連するサービスプロバイダは、計算インスタンスについての要求を予測し、データセンタ内のコンピューティングリソースを事前設定することによって、計算インスタンスを事前起動することができる。そのようなものとして、ユーザが計算インスタンスをリクエストすると、サービスプロバイダは、事前準備された計算インスタンスをユーザに割り当てることによって、リクエストを満たすことができる。

目的

サービスプロバイダは、一般的に、コンピューティングリソースをインスタンスの形態で提供する

効果

実績

技術文献被引用数
2件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

計算インスタンスプロビジョンおよび起動するためのシステムであって、前記システムは、ネットワーク接続を通じて互いに通信するように構成された複数のコンピューティングデバイスを備えた1つ以上のデータセンタと、その内部にコンピュータ可読命令を保存した1つ以上のメモリと、を備えており、前記コンピュータ可読命令は、システムにおいて実行されたときに、前記システムに、少なくとも、複数の機械イメージおよび複数の計算インスタンスタイプに関連する複数の計算インスタンスについての予測要求を決定させ、前記予測要求に少なくとも部分的に基づいて、前記複数の計算インスタンスをホストするように構成された前記複数のコンピューティングデバイスのうちの1つ以上のコンピューティングデバイスを決定させ、計算インスタンスを起動するためのリクエスト顧客ノードから受信する前に、前記複数の機械イメージおよび前記複数の計算インスタンスタイプに少なくとも部分的に基づいて、前記1つ以上のコンピューティングデバイスにおいて前記複数の計算インスタンスを起動およびアイドリングさせ、前記計算インスタンスを起動するための前記顧客ノードからの前記リクエストの受信に応答して、前記1つ以上のコンピューティングデバイスにおいてアイドリングされた、前記複数の機械イメージの1つから前記計算インスタンスを起動させる、システム。

請求項2

前記予測要求は、顧客ノードから受信したリクエストの履歴に少なくとも部分的に基づいて決定され、前記リクエストの履歴は、前記リクエストに関連する計算インスタンスの設定パラメータに少なくとも部分的に基づいてソートされる、請求項1記載のシステム。

請求項3

複数の計算インスタンスについての予測要求を決定するための前記命令は、前記システムにおいて実行されたときに、前記システムに、少なくとも、計算インスタンスについてのリクエストの履歴を解析することによって、前記複数の計算インスタンスおよび前記1つ以上のコンピューティングデバイスについての目標を決定させ、前記リクエストに関連する統計的ファクタに少なくとも部分的に基づいて前記目標を修正させる、命令を含む、請求項1記載のシステム。

請求項4

前記複数のコンピューティングデバイスのうちから1つ以上のコンピューティングデバイスを決定するための前記命令は、前記システムにおいて実行されたときに、前記システムに、少なくとも、前記複数のコンピューティングデバイスの予測されるアベイラビリティを決定させ、前記複数の計算インスタンスの起動およびアイドリングに関連する制約を満たすように、前記予測要求と前記予測アベイラビリティとのバランスをとらせ、前記バランスに少なくとも部分的に基づいて前記1つ以上のコンピューティングデバイスを決定させる、命令を含む、請求項1記載のシステム。

請求項5

予測要求に少なくとも部分的に基づく複数の事前設定された機械イメージを複数の計算ノードに提供するステップと、計算インスタンスを起動するためのリクエストをユーザノードから受信した後に、前記計算インスタンスが、前記複数の事前設定された機械イメージのうちの少なくとも1つの機械イメージに関連することを決定するステップと、前記決定に少なくとも部分的に基づいて、前記複数の計算ノードのうちの1つの計算ノードにおいて前記関連する機械イメージを使用して、前記計算インスタンスの起動を完了するステップと、を含む、方法。

請求項6

前記予測要求は、計算インスタンスについての以前に受信したリクエストに少なくとも部分的に基づく、請求項5記載の方法。

請求項7

前記予測要求は、前記複数の事前設定された機械イメージに関連する複数の計算インスタンスのタイプ、および、前記複数の事前設定された機械イメージに関連する識別子を含む、請求項5記載の方法。

請求項8

前記予測要求は、ユーザノードからの前記複数の計算インスタンスについてのリクエストが受信されると予測されるタイムフレーム、および、前記ユーザノードからの前記リクエストに示されると予測される領域をさらに含む、請求項7記載の方法。

請求項9

前記機械イメージは、前記機械イメージを保存するルートストレージデバイスからの前記機械イメージのキャッシングと、前記計算インスタンスの構成に少なくとも部分的に基づく前記機械イメージの構成ファイルの変更と、前記計算インスタンスの前記構成に少なくとも部分的に基づく前記計算インスタンスへのストレージボリューム割り当てと、に少なくとも部分的に基づいて、前記計算ノードにおいて起動するように事前設定されている、請求項5記載の方法。

請求項10

前記計算インスタンスの起動を完了する前記ステップは、変更された前記構成ファイルに少なくとも部分的に基づいて、前記計算ノードにおいて前記機械イメージのオペレーティングシステムブートするステップを含む、請求項9記載の方法。

請求項11

前記計算インスタンスの起動を完了する前記ステップは、前記ユーザノードから前記リクエストを受信する前に、前記計算インスタンスを起動するステップと、前記ユーザノードから前記リクエストを受信する前に、前記起動された計算インスタンスをアイドリングするステップと、前記ユーザノードからの前記リクエストの受信に応答して、前記アイドルされた計算インスタンスを起動するステップと、を含む、請求項5記載の方法。

請求項12

複数の機械イメージに関連する複数の計算インスタンスについての要求を決定するステップと、複数の計算ノードにおける前記複数の計算インスタンスの起動に関連する制約に少なくとも部分的に基づいて、前記複数の機械イメージから前記複数の計算インスタンスを起動するように構成された前記複数の計算ノードを決定するステップと、前記複数の計算インスタンスのうちの計算インスタンスを起動するためのリクエストをユーザノードから受信する前に、複数のコンピューティングノードにおいて前記複数の機械イメージを構成するステップと、前記ユーザノードから前記リクエストを受信した後に、前記複数の計算ノードのうちの1つにおいて前記複数の構成された機械イメージの1つを使用して、特定の計算インスタンスの起動を完了するステップと、を含む、方法。

請求項13

前記制約は、前記複数の計算ノードにおいて利用可能な計算容量、または、ゾーンもしくは領域にわたる計算ノードのアベイラビリティに少なくとも部分的に基づく、請求項12記載の方法。

請求項14

前記制約は、前記複数の計算ノードのうちのある計算ノードにおいて同時に起動されるように構成された計算インスタンスの数に少なくとも部分的に基づく、請求項12記載の方法。

請求項15

前記制約は、前記複数の機械イメージのうちの1つに関連するアプリケーションもしくはオペレーティングシステムの実行に関連する料金、または、前記複数の計算ノードのうちの1つにおける、前記複数の機械イメージのうちの1つからの前記複数の計算インスタンスのうちの1つの起動に関連する料金に少なくとも部分的に基づく、請求項12記載の方法。

技術分野

0001

関連出願の参照
本願は、2013年6月10日に出願された米国特許出願第13/914,225号の利益を主張するものであり、その開示はその全体が参照により本明細書に組み入れられる。

背景技術

0002

サービスプロバイダは、企業、大学、政府機関および他のタイプの顧客などのさまざまな事業体コンピューティングリソースを提供している。サービスプロバイダによって供給されるサービスは、事業体に、リソース割り当てにおける柔軟性、スケーラビリティの向上、運転コストの減少などをもたらしている。

0003

サービスプロバイダは、一般的に、コンピューティングリソースをインスタンスの形態で提供する。インスタンスは、仮想機械、仮想機械インスタンスなどとして実施される場合がある。インスタンスの形態でコンピューティングリソースを提供する能力によって、サービスプロバイダは、サービスを利用するさまざまな事業体のニーズおよび要件に合う利用可能なコンピューティングリソースを動的にスケーリングすることができる。

0004

図面全体を通じて、参照番号は、参照された要素間の一致を示すために再使用され得る。図面は、本明細書に記述される実施例の実施形態を図示するために提供され、本開示の範囲を限定することは意図しない。

図面の簡単な説明

0005

実施形態に従う、データセンタの実施例の動作環境を図示する。
実施形態に従う、データセンタの実施例の構成を図示する。
インスタンスを起動するための実施例の手順を描写するフローチャートである。
実施形態に従う、インスタンスを起動するための別の実施例の手順を描写するフローチャートである。
実施形態に従う、予測要求を決定するための実施例の手順を描写するフローチャートである。
実施形態に従う、インスタンスを事前準備するデータセンタの実施例の構成を図示する。
実施形態に従う、インスタンスを事前準備するデータセンタの別の実施例の構成を図示する。
実施形態に従う、事前準備したインスタンスをコンピューティングリソースに配置するための実施例の手順を描写するフローチャートである。
本明細書に提示する実施形態に記述したさまざまなコンピューティングデバイスを実施するための実施例のコンピュータハードウェアアーキテクチャを図示する。

実施例

0006

前述のように、サービスプロバイダは、コンピューティングリソースを、通例、コンピューティングインスタンスの形態で動的に事業体に提供する。事業体は、ほとんどの場合に、顧客、すなわち、サービスプロバイダの顧客と置き換え可能に本明細書において参照され、そして所望のコンピューティングインスタンスのタイプおよび構成を規定するための入力をサービスプロバイダに提供し、加えて、顧客がコンピューティングインスタンスを必要としている時に関する情報を提供する。この入力情報のすべてが、コンピューティングインスタンスを構成および起動するために、サービスプロバイダによって操作されるサービスによって使用される。起動プロセスは、通常、オンデマンドで起こり、顧客ニーズに反応する。しかしながら、起動プロセスは、即時ではなく、ほぼ即時でさえもない。むしろ、顧客は、起動がリクエストされた時と、インスタンスを顧客が使用できる状態になる時との間の顕著な時間遅延体験する場合がある。顧客が体験する時間遅延は、そのコンピューティングリソースを構成してインスタンスを起動するサービスの結果としておよそ数分ともなることがある。その量の時間遅延は、顧客満足体験に影響を及ぼす可能性がある。

0007

顧客満足体験を向上するために、サービスプロバイダは、インスタンスリクエストの履歴解析し、その情報を使用してインスタンスの予測要求を決定することができる。この予測要求情報は、例えば、その顧客がリクエストすることをサービスプロバイダが予測するインスタンスの数およびタイプを含むことができる。予測要求情報に基づいて、サービスプロバイダは、コンピューティングリソースを事前設定し、事前設定されたコンピューティングリソースに計算インスタンスをプロビジョンすることによって、顧客がインスタンスをリクエストした時から、顧客がインスタンスを使用可能になる時までに要する時間を短縮することができる。サービスプロバイダは、顧客のコンピューティングデバイスからの、特定の構成のインスタンスを起動するためのリクエストを受信すると、プロビジョン済のインスタンスのうちのインスタンスを割り当てることによって、リクエストにサービスする。プロビジョン済のインスタンスを事前設定し、コンピューティングリソースに事前配置できるため、顧客は、顧客に転送されるインスタンスを制御するのみ、または顧客に接続するように(例えば、アイドリング状態からレジュームされて、またはキャッシュイメージからブートアップされて)起動されるインスタンスを待つのみでよい。

0008

インスタンスおよびサービスのコンピューティングリソースの事前設定についてのさらなる詳細が、本明細書に提供される。本明細書に提示する主題が、コンピュータプロセスコンピュータ制御の装置、コンピューティングシステム、またはコンピュータ可読記憶媒体などの製造品として実施できることが認識されるはずである。本明細書に記述される主題は、1つ以上のコンピューティングデバイスにおいて実行するプログラムモジュールの一般の文脈において提示するが、当業者は、他の実施を他のタイプのプログラムモジュールとの組み合わせにおいて実行できることを認識する。通常、プログラムモジュールは、ルーチンプログラムコンポーネントデータ構造、および特定のタスクを実行または特定の抽象データ型を実施する他のタイプの構造を含む。

0009

当業者はまた、本明細書に記述された主題が、マルチプロセッサシステムマイクロプロセッサベース家庭用電化製品またはプログラマブル家庭用電化製品、ミニコンピュータメインフレームコンピュータ、ハンドヘルドコンピュータ携帯情報端末電子リーダ携帯電話装置専用ハードウェア装置、ネットワークアプライアンスなどを含む、本明細書に記述されたもの以外の他のコンピュータシステム構成において、またはそれらとともに実践できることも認識する。本明細書に記述される実施形態は、通信ネットワークを通じてリンクされたリモート処理装置によってタスクが実行される分散コンピューティング環境においても実践することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモート両方のメモリストレージデバイス位置付けることができる。

0010

計算ノードは、コンピューティングノードとしても参照されることがあり、コモディティハードウェアコンピュータ、仮想機械、コンピューティングクラスタおよびコンピューティングアプライアンスなどの種々のコンピューティング環境において実施することができる。これらのコンピューティングデバイスまたは環境のいくつかは、便宜上、計算ノードとして記述されることがある。

0011

図1は、本明細書に記述される実施形態を実施することができる適切なコンピューティング環境の実施例を図示する。サービスプロバイダは、図示したコンピューティング環境を構成し、その顧客用計算リソースおよび起動インスタンスを仮想化することができる。特に、図1は、プログラム実行サービス(「PES」)プラットフォーム108を含む例示の動作環境100を示すシステムおよびネットワーク図である。プラットフォーム108は、オンデマンドでインスタンスへのアクセスを提供するためのPES108として参照することができる。PESプラットフォーム108は、パーマネントでまたは必要に応じてアプリケーションを実行するための計算リソースを提供し、プライベートネットワークとして構成することができる。これらの計算リソースは、例えば、データ処理リソースデータストレージリソースデータ通信リソースなどのさまざまなタイプのリソースを含むことができる。各々のタイプの計算リソースは、汎用であってもよいし、多くの具体的な構成において利用可能なものであってもよい。例えば、データ処理リソースは、仮想機械インスタンスとして利用可能なものであってもよい。インスタンスは、例えば、ウェブサーバアプリケーションサーバ媒体サーバデータベースサーバなどを含むアプリケーションを実行するように構成できる。データストレージリソースは、ファイルストレージデバイスブロックストレージデバイスなどを含むことができる。

0012

各々のタイプまたは構成の計算リソースは、種々のサイズのものを利用可能であり、例えば、多くのプロセッサ大容量メモリおよび/もしくは大きなストレージ容量からなる大容量のリソース、並びに少数のプロセッサ、より少ない容量のメモリ、および/もしくはより小さいストレージ容量からなる小容量のリソースのものを利用可能である。顧客は、例えば、ウェブサーバとして多くの小容量の処理リソース、および/またはデータベースサーバとして1つの大容量の処理リソースを割り当てるように選択することができる。

0013

PESプラットフォーム108によって提供される計算リソースは、1つ以上のデータセンタ102A、102B、102C〜102Nによって有効にすることができる。これらは、「データセンタ102」として単数で、または「データセンタ(複数)102」として複数形において本明細に参照され得る。データセンタ102は、コンピュータシステムおよび付随するコンポーネントを収容して動作させる施設であってもよく、冗長およびバックアップ電源通信路、冷却およびセキュリティシステムを含むことができる。データセンタ102は、同じ施設内などの同じ地理的地域に位置付けることができ、高速光ファイバネットワークなどのプライベートネットワークを使用して相互接続し、PESプラットフォーム108のサービスプロバイダによって制御および管理することができる。データセンタ102はまた、地理的に異なる位置にわたって分布し、インターネットなどのパブリックネットワークを使用して部分的に相互接続することができる。本明細書に開示する概念および技術を実施するデータセンタ102の1つの例示の構成を、図2に関して後述する。

0014

PESプラットフォーム108の顧客は、広域ネットワーク(「WAN」)106を通じて、データセンタ102によって提供された計算リソースにアクセスすることができる。図1にはWANを図示するが、ローカルエリアネットワーク(「LAN」)、インターネット、またはデータセンタ102とリモートの顧客および他のユーザとを接続する、当業界において公知の任意の他のネットワークトポロジおよびネットワーク接続を利用できることが認識されるはずである。そのようなネットワークの組み合わせも利用できることも認識されるはずである。

0015

PESプラットフォーム108の顧客は、コンピューティングシステム104を利用して、データセンタ102によって提供された計算リソースにアクセスすることができる。(「顧客ノード」、「ユーザノード」などとしても参照され得る)顧客コンピューティングシステム104は、サーバコンピュータデスクトップもしくはラップトップコンピュータタブレットコンピュータ無線電話、PDA、電子リーダ、ゲーム機セットトップボックス、または任意の他のコンピューティングデバイスなどのPESプラットフォーム108にアクセスする能力があるコンピュータであってもよい。

0016

詳細については後述するように、顧客コンピューティングシステム104を利用して、PESプラットフォーム108によって提供された計算リソースの態様を構成することができる。これに関連して、PESプラットフォーム108は、ウェブインターフェースを提供し、これを通じて、その動作の態様を、顧客コンピューティングシステム104において実行するウェブブラウザアプリケーションプログラムを使用して構成することができる。代替的に、顧客コンピューティングシステム104において実行するスタンドアロンアプリケーションプログラムは、設定動作を実行するための、PESプラットフォーム108によって露出されたアプリケーションプログラミングインターフェース(「API」)にアクセスすることができる。PESプラットフォーム108における新規の仮想機械インスタンスの起動を含む、PESプラットフォーム108の動作を設定するための他のメカニズムも利用することができる。

0017

本明細書に開示する実施形態に従う、PESプラットフォーム108によって提供される取得した計算リソースの容量は、要求に応じてスケーリングすることができる。これに関連して、スケーリングは、「起動」もしくは「作製」としても本明細書に参照され得るインスタンス化、または「デスケーリング」としても本明細書に参照され得る「終了」として、要求に応じて計算リソースのインスタンスをインスタンス化するプロセスを指す。

0018

自動スケーリングは、リソースについての要求に応じた増大または一時的静止応答して計算リソースをスケーリングするための1つのメカニズムであり得る。自動スケーリングによって、PESプラットフォーム108の顧客は、顧客が規定した条件に従い取得した計算リソースをスケーリングすることができる。例として、要求に応じて、スパイクなどの特定の条件の発生に応じて、特定の様式において容量をスケーリングアップするようにルールを規定することができる。同様に、ルールを、要求に応じて、一時的静止などの他の条件の発生に応じて、特定の様式において容量をスケーリングダウンするように規定することもできる。仮想機械インスタンスを起動するための本明細書に開示するメカニズムは、顧客が手動でインスタンスを起動する場合、またはPESプラットフォーム108における自動スケーリングコンポーネントによってインスタンスが起動される場合に利用することができる。

0019

PESプラットフォーム108は、計算リソースの新規のインスタンスの展開において顧客を援助するための展開コンポーネントを備えて構成することもできる。展開コンポーネントは、新規のインスタンスをどのように構成すべきかを記述するデータを含み得る、顧客からの設定を受信することができる。例えば、この設定は、新規のインスタンスにインストールすべき1つ以上のアプリケーションまたはソフトウェアコンポーネントを指定し、そして新規のインスタンスにおいて実行されるスクリプトおよび/または他のタイプのコード、どのようなアプリケーションキャッシュを準備すべきかを指定するキャッシュウォーミング論理、並びに他のタイプの情報を提供することができる。展開コンポーネントは、顧客が提供した設定およびキャッシュウォーミング論理を利用して、計算リソースの新規のインスタンスを起動、設定および用意する。

0020

図2は、PESプラットフォーム108を実施するデータセンタ102の1つの構成を図示するコンピューティングシステム図である。図2に示す実施例のデータセンタ102は、いくつかのサーバコンピュータ202A、202B、202C、202D〜202Nを含むことができる。これらは、インスタンスをホストし、アプリケーションを実行するための計算リソースを提供するための、「サーバコンピュータ202」として単数で、または「サーバコンピュータ(複数)202」として複数形において本明細に参照され得る。サーバコンピュータ202は、前述の計算リソースを提供するように適切に構成されたスタンダードタワーまたはラックマウントサーバコンピュータであってもよい。例として、1つの実施では、サーバコンピュータ202は、「インスタンス206」として単数で、または「インスタンス(複数)206」として複数形において本明細に参照され得る、計算リソースのインスタンス206A〜206D〜206G〜206J〜206Nを提供するように構成できる。

0021

インスタンス206は、仮想機械インスタンスであってもよい。当業界において公知のように、仮想機械インスタンスは、物理機械のような、プログラムを実行する機械(すなわち、コンピュータ)のソフトウェア実装のインスタンスである。サーバは、機械(例えば、オペレーティングシステム、アプリケーションサーバおよびアプリケーション)のイメージを使用して、仮想機械インスタンスを起動することができる。このイメージは、機械イメージとしても参照され得、ソフトウェア構成、およびインスタンスをブートするのに必要なすべての情報を包含するテンプレートである。仮想機械インスタンスの実施例では、各サーバ202は、インスタンスを実行する能力があるインスタンスマネージャ208を実行するように構成できる。インスタンスマネージャ208は、例えば、ハイパーバイザであってもよいし、単一サーバ202における複数のインスタンス206の実行を可能にするように構成された別のタイプのプログラムであってもよい。前述のように、インスタンス206の各々は、アプリケーションのすべてまたは一部を実行するように構成できる。

0022

本明細書に開示する実施形態を、主に仮想機械インスタンスの文脈において記述したが、他のタイプのインスタンスも本明細書に開示する概念および技術とともに利用できることが認識されるはずである。例として、本明細書に開示する技術は、ストレージリソースのインスタンス、データ通信リソースのインスタンス、および計算インスタンスとして参照され得るすべての他のタイプのリソースとともに利用することができる。本明細書に開示する実施形態はまた、仮想機械インスタンスを利用しなくても、コンピュータシステムにおいて直接にアプリケーションのすべてまたは一部を実行することができる。

0023

図2に示すデータセンタ102は、「サーバコンピュータ204」として単数形において、または「サーバコンピュータ(複数)204」として複数形において参照され得る1つ以上のサーバコンピュータ204も含むことができる。これは、データセンタ102、サーバコンピュータ202およびインスタンス206の動作を管理するためのソフトウェアコンポーネントを実行するためにリザーブされている。特に、サーバコンピュータ204は、管理コンポーネント210を実行することができる。前述のように、PESプラットフォーム108の顧客は、顧客コンピューティングシステム104を利用して管理コンポーネント210にアクセスし、顧客が購買したPESプラットフォーム108およびインスタンス206の動作のさまざまな態様を設定することができる。例えば、顧客は、インスタンスを取得し、インスタンスの構成を規定および変更することができる。インスタンスの構成は、計算インスタンスを起動するためにデータセンタ102が使用する機械イメージのオペレーティングシステム、アプリケーションサーバ、アプリケーションなどを指定するパラメータを含むことができる。顧客はまた、インスタンスを起動するためのリクエストを管理コンポーネント210に提供し、取得したインスタンスを要求に応じてどのようにスケーリングするかについての設定を指定することができる。

0024

簡潔に前述もしたように、自動スケーリングコンポーネント212は、PESプラットフォーム108の顧客が規定したルールに基づいて、インスタンス206をスケーリングすることができる。例えば、自動スケーリングコンポーネント212において顧客は、新規のインスタンスをインスタンス化すべき時を決定するのに使用されるルールをスケーリングアップし、既存のインスタンスを終了すべき時を決定するのに使用されるルールをスケーリングダウンすることを指定できる。

0025

自動スケーリングコンポーネント212は、単一サーバコンピュータ204上において実行してもよいし、PESプラットフォーム108内の複数のサーバコンピュータ202にわたって並行して実行してもよい。さらに、自動スケーリングコンポーネント212は、PESプラットフォーム108内の異なるサーバコンピュータ202または他のコンピューティングデバイスにおいて実行する多くのサブコンポーネントからなることもできる。自動スケーリングコンポーネント212は、ソフトウェア、ハードウェアまたはそれらの任意の組み合わせとして実施することができる。自動スケーリングコンポーネント212は、例えば、内部管理ネットワークを通じて、PESプラットフォーム108内の利用可能な計算リソースを監視することができる。

0026

簡潔に前述したように、データセンタ102は、計算リソースの新規のインスタンス206の展開において顧客を援助するための展開コンポーネント214を備えて構成することもできる。展開コンポーネント214は、新規のインスタンス206をどのように構成すべきかを記述するデータを含む、顧客からの設定を受信することができる。例えば、この設定は、新規のインスタンス206にインストールすべき1つ以上のアプリケーションを指定し、新規のインスタンス206を構成するために実行されるスクリプトおよび/または他のタイプのコード、どのようなアプリケーションキャッシュを準備すべきかを指定するキャッシュウォーミング論理、並びに他のタイプの情報を提供することができる。別の実施例では、顧客から受信した設定情報は、機械イメージの識別子および新規のインスタンス206のタイプを含むことができる。

0027

展開コンポーネント214は、顧客が提供した設定およびキャッシュウォーミング論理を利用して、新規のインスタンス206を構成、用意および起動することができる。この構成、キャッシュウォーミング論理および他の情報は、管理コンポーネント210を使用する顧客によって指定されてもよいし、この情報を展開コンポーネント214に直接に提供することによって特定されてもよい。他のメカニズムも、展開コンポーネント214の動作を設定するのに利用できる。例えば、展開コンポーネント214は、機械イメージの識別子、および新規のインスタンス206のタイプのインスタンスをホストするように構成されたコンピューティングリソース(例えば、サーバコンピュータ202)に基づいて、新規のインスタンス206を起動することができる。

0028

データセンタ102は、サーバコンピュータにわたってインスタンスの実行を分配するためのロードバランサコンポーネント216も実行することができる。ロードバランサコンポーネント216は、展開コンポーネント214、管理コンポーネント210内のアプリケーションであってもよいし、サーバコンピュータ204以外のサーバにおいて実行されてもよい。実施例では、ロードバランサコンポーネント216は、展開コンポーネント214から命令を受信し、データセンタ102内で利用可能なリソースを決定し、いかなるリソースも過度な使用または使用不足にならないようにインスタンスを利用可能なリソースに分配する。それ故に、インスタンスは、データセンタ102内の単一障害点に対して保護される。

0029

図2に示す実施例のデータセンタ102では、サーバコンピュータ202とサーバコンピュータ204とを相互接続するのに適当なLAN218を利用することができる。LAN218は、図1に図示するWAN106にも接続することができる。図1および図2に図示するネットワークトポロジが、大いに単純化されており、本明細書に開示するさまざまなコンピューティングシステムを相互接続するのに、より多くのネットワーク、ネットワーク接続およびネットワーキングデバイスを利用できることが認識されるはずである。各データセンタ102間、各データセンタ102内の各サーバコンピュータ202間、PESプラットフォーム108の各々の顧客が取得したインスタンス206間のロードをバランシングするために、適当なロードバランシングデバイスまたはソフトウェアモジューも利用することができる。これらのネットワークトポロジおよびデバイスは、当業者に明らかであるはずである。

0030

図2に記述されたデータセンタ102が、単なる例示であり、他の実施も利用できることが認識されるはずである。特に、管理コンポーネント210、自動スケーリングコンポーネント212、展開コンポーネント214、およびロードバランサコンポーネント216によって実行されるものとして本明細書に記述された機能性は、互いによって実行されてもよいし、他のコンポーネントによって実行されてもよいし、これらのまたは他のコンポーネントの組み合わせによって実行されてもよい。さらに、これらのコンポーネントの各々は、プログラム実行サービスPES108内部のサービスとして実施することができる。その上、この機能性を、ソフトウェア、ハードウェアまたはソフトウェアとハードウェアとの組み合わせにおいて実施できることが認識されるはずである。他の実施も当業者に明らかであるはずである。

0031

図2のデータセンタ102においてインスタンスを起動するための実施例の手順を、図3および図4に記述する。説明の明確さのために、図3および図4は、単独の顧客に関連する単一のインスタンスに関して記述する。しかしながら、手順は、複数の顧客に関連し得る複数のインスタンスに関連して使用することもできる。その上、単独の顧客に関連するインスタンスは、単一データセンタ内においても、複数のデータセンタにわたっても起動することができる。なおその上に、データセンタ102およびデータセンタ102の実施例のコンポーネントが、実施例の手順を実行するものとして図3および図4に記述される。それでもなお、他のコンポーネントまたはコンポーネントの組み合わせを使用することができ、それらが当業者に明らかであるはずである。

0032

通常、顧客コンピューティングシステム104から、インスタンスを起動するためのリクエストの受信に答えて、データセンタ102(すなわち、後述するデータセンタ内のコンピューティングコンポーネント)は、事前準備したインスタンスを使用してリクエストを満たすことができるか否かを決定する。リクエストを満たすことができる場合には、データセンタは、図4に記述された手順を実行し、そうでない場合には、図3に記述された手順を実行する。インスタンスを事前準備したインスタンスでは起動できない場合には、図3に示すように、データセンタ102は、リクエストに応じてそのコンピューティングリソースを構成し、インスタンスを起動し、顧客コンピューティングシステムがインスタンスとの接続を確立できる情報を提供する。図3は、コンピューティングデバイスにおいて動作するためのインスタンスを準備する一般のエンドツーエンドのプロセスを第一に例証するように提示される。その後、図4を、図3と対比して、事前準備したインスタンスが利用可能である場合に実現される起動時間の短縮を実証するために提示する。

0033

図3を参照するように、工程302は、データセンタ102が、顧客コンピューティングシステムから、インスタンスを起動するためのリクエストを受信することを例証する。リクエストは、ウェブAPIへの呼び出しの形態であってもよく、通常、顧客の特性および所望のインスタンスの特性を特定する情報を含む。例えば、管理コンポーネント210は、インスタンスの何らかの構成特性を規定する入力パラメータに加えて、ユーザ名、パスワードおよび顧客のクレデンシャルを受信することができる。入力パラメータは、例えば、インスタンスを起動すべき機械イメージの識別子、計算インスタンスタイプ(例えば、プロセッサの数、メモリ容量、ストレージ容量、ネットワーク帯域幅などの、インスタンスが割り当てられるハードウェアリソースの量を表すタイプ識別子など)、利用されるネットワークセキュリティ、インスタンスに関連するストレージボリューム、および他の情報などを指定することができる。パラメータはまた、例えば、インスタンスにインストールすべき1つ以上のアプリケーションまたはソフトウェアコンポーネント、インスタンスにおいて実行されるスクリプトおよび/または他のタイプのコード、どのようなアプリケーションキャッシュを準備すべきかを指定するキャッシュウォーミング論理、並びに他のタイプの情報も指定することができる。

0034

実施形態では、管理コンポーネント210は、顧客がそこから選択できるさまざまなインスタンス構成のリストの提供に応答した顧客コンピューティングシステムからリクエストを受信する。顧客の選択は、サービスプロバイダによって供給された機械イメージ、および計算インスタンスタイプを含むことができる。さらに、管理コンポーネント210によって、顧客は、例えば、インスタンスに到達できるネットワークトラフィックを制御するファイアウォールルールの形態のデフォルトまたは顧客ネットワークセキュリティを選択することができる。顧客がリクエストにおいて指定することもできる情報のタイプの他の実施例は、インスタンスを起動する領域内のゾーン、インスタンス名、起動されるインスタンスの数などを含む。

0035

工程304は、データセンタ102がリクエストを有効にすることを例証する。実施例では、管理コンポーネント210は、APIリクエスト内のデジタル署名、ユーザ名およびパスワードなどに基づいて顧客を認証し、リクエストにおいて受信した顧客のクレデンシャルに基づいてインスタンスを起動する許可を顧客が有しているか否かを決定する。リクエストが有効である場合には、管理コンポーネント210は、(図3の工程308〜318に示す)インスタンスの起動を開始することを、または(図4の工程に示す)事前準備したインスタンスによってリクエストを満たすことを、展開コンポーネント214にリクエストする。

0036

工程306は、データセンタ102が、事前準備したインスタンスの使用ではリクエストを満たせないことを決定することを例証する。この工程は、展開コンポーネント214が、事前準備したインスタンスのいずれも所望のインスタンスの特性に一致する特性を有さないことを決定することを含むことができる。そのように決定した場合には、展開コンポーネント214およびデータセンタ102の他のコンポーネントは、次に、工程308〜318に記述するように、顧客のための新規のインスタンスを起動する。

0037

工程308は、データセンタ102が、インスタンス識別を顧客コンピューティングシステムに返送することを例証する。この工程は、展開コンポーネント214が、さらに、例えば、インスタンスをホストするデータセンタにおいて十分な容量が利用可能であるか否かを決定するためのリクエストを有効にすることを含むことができる。この決定には、例えば、インスタンスタイプ、機械イメージ、そして他の顧客のインスタンスおよびその使用パターンを含む顧客のプロフィールとともに、サーバコンピュータ202においてインスタンスをホストできるか否かなどの、リクエストからのさまざまなパラメータが考慮される。有効な場合には、展開コンポーネント214は、インスタンス識別を生成し、インスタンスステータスペンディング更新し、情報を管理コンポーネント210に返送する。次に、管理コンポーネントは、インスタンスのステータスおよび他のインスタンス関連情報の表示とともに、インスタンス識別を顧客コンピューティングシステムに伝送する。

0038

工程302〜308は、同期して実行することができ、数秒以下で完了することができる。対照的に、インスタンスを起動する残りの工程は、通例、およそ数分などのより長い時間を消費し、非同期的に実行される。

0039

工程310は、データセンタ102が、インスタンスを起動するためのさまざまなコンピューティングリソースを構成することを例証する。この工程では、展開コンポーネント214は、リクエストにおいて受信した情報を使用して、さまざまなコンピューティングリソースをセットアップすることができる。これによりサーバコンピュータ202は、機械イメージをブートアップすることによってインスタンスを起動することができる。例えば、展開コンポーネント214は、機械イメージを包含するルートストレージデバイスを決定し、ブロックレベル永続性記憶装置をインスタンスに割り当て、インターネットプロトコル(IP)アドレスをインスタンスに与え、ネットワークインターフェースをセットアップし、ルーティング情報を生成し、ファイアウォールを構成し、そして他の物理的および仮想リソースを、インスタンスに関連するサーバコンピュータに加える。

0040

工程312は、データセンタ102が、インスタンスのためのホストを決定することを例証する。この工程は、展開コンポーネント214が、インスタンスを起動する特定のゾーンを決定し、ロードバランサコンポーネント216が、インスタンスが配置されたそのゾーン内の特定のサーバコンピュータを決定することを伴う。このゾーンは、あるゾーンの不具合に伴う別のゾーンへの影響を最小限にし、展開コンポーネント214およびロードバランサコンポーネント216が、複数のサーバコンピュータおよびゾーンにわたってインスタンスを分配するように構成されたコンピューティングリソースの集まりである。このインスタンスの分配は、例えば、コンピューティングリソースアベイラビリティフォールトトレランス要件、インスタンスをホストするための財務コストなどに関連し、複数のサーバコンピュータおよびゾーンにわたるインスタンスの配置を制限し得る多くの制約を受ける場合がある。

0041

さまざまなパラメータを使用して、インスタンスをサーバコンピュータに配置するときに満たし得る制約の数を最適化することができる。これらのパラメータは、インスタンスの構成、サーバコンピュータの構成、ビジネス上の考慮事項、フォールトトレランス要件などに関連し得る。例えば、ロードバランサコンポーネント216は、特定のサーバコンピュータを考慮し、インスタンスのアーキテクチャおよびネットワーク要件をサポートできるか否かを決定する。ロードバランサコンポーネントはまた、特定のサーバコンピュータにおいて現在実行されている既存のインスタンスを決定し、いろいろな顧客の新規のインスタンスを同じサーバコンピュータによってホストできるかを検証する。特定のサーバコンピュータがこれらの要件を満たす場合には、ロードバランサは、インスタンスをそのサーバコンピュータに分配する。

0042

さらなる実施例では、インスタンス、およびサーバコンピュータにおいてホストされている既存のインスタンスは、ベンダーに関連する同じオペレーティングシステムを有する。ベンダーが、サーバコンピュータにおいてホストされているインスタンスの数には依存しない、そのオペレーティングシステムを実行するためのライセンス料を請求する場合に、ロードバランサコンポーネントは、インスタンスをそのサーバコンピュータに分配する。その結果、インスタンスを起動するための財務コストを減少する。

0043

別の実施例では、ロードバランサコンポーネント216は、サーバコンピュータにおけるインスタンスの目標密度を満たすように、インスタンスをサーバコンピュータに分配する。ロードバランサは、サーバコンピュータにおいて多数の他のインスタンスが同時に起動されているか否かも考慮し、そうである場合には、ホットスポットの形成を回避するために、別のサーバコンピュータを選択する。他のサーバコンピュータを選択する場合には、ロードバランサは、顧客に関連する他のインスタンスをホストしているサーバコンピュータを考慮し、可能であれば、インスタンスを、これらのインスタンスのいずれもまたは最小数しか現在ホストしていないサーバコンピュータに分配する。この選択によって、顧客におけるサーバコンピュータの何らかの不具合の影響が低減される。当業者は、これらのおよび他のパラメータを組み合わせて使用して、インスタンスを起動するためのサーバコンピュータを選択できることを認識する。

0044

サーバコンピュータが選択されると、ロードバランサコンポーネント216は、インスタンスの構成についての情報をサーバコンピュータにパスし、サーバコンピュータについての情報を展開コンポーネント214にパスする。工程314は、データセンタ102が、インスタンスを起動するためのホストを呼び出すことを例証する。例えば、展開コンポーネント214は、インスタンスの起動を開始するためのコマンドをサーバコンピュータに送信する。

0045

工程316は、データセンタ102が、ホストにおいてインスタンスを起動することを例証する。この工程では、サーバコンピュータにおいて実行するインスタンスマネージャ208が、インスタンスが起動されるパーティションを構成する。例えば、インスタンスマネージャは、ルートストレージデバイスからの機械イメージにアクセス、それをキャッシュ、解読および解凍する。インスタンスマネージャはまた、機械イメージ内構成ファイル、およびインスタンスの設定パラメータに従う構成ファイルを構文解析する。次に、インスタンスマネージャは、インスタンスを開始する。これは、次に、変更された機械イメージをマウントしかつ読み出しマスターブートレコードを探索し、オペレーティングシステムをブートする。インスタンスマネージャはまた、ストレージボリューム、デバイスインターフェースおよびネットワークインターフェースをインスタンスに加える。ブートプロセスが完了すると、アプリケーションおよびインスタンスの他のコンポーネントが実行できる状態になり、インスタンスマネージャは、顧客がインスタンスを使用できる状態になったことの表示を、管理コンポーネント210に伝送する。

0046

工程318は、データセンタ102が、インスタンスとの接続を確立するための情報を顧客コンピューティングシステムに提供することによって、インスタンスが使用状態にあることを顧客に通知することを例証する。例えば、管理コンポーネント210は、インスタンスのステータスを実行ステータスに更新し、例えば、顧客のクレデンシャルを使用したセキュアシェルSSH)プロトコルを利用して、顧客コンピューティングシステムとインスタンスとの安全な接続を促進する。管理コンポーネントはまた、顧客のインターフェースを、インスタンスの実行ステータスを反映するように更新し、そのコンピューティングシステムにおいてSSHクライアントを起動することを顧客に指示する。

0047

前述のように、データセンタ102は、事前準備したインスタンスによってリクエストを満たすことができることを決定した場合に、図4の手順を実行する。通常、データセンタ102(すなわち、後述するようなデータセンタ内のコンピューティングコンポーネント)は、インスタンスについての予測要求に基づくリクエストを受信する前に、インスタンスを事前設定および事前起動する。この手順によって、データセンタ102は、インスタンスについてのリクエストを受信した時から、顧客がインスタンスを使用できる時までの時間を最小限にすることができる。

0048

工程402は、データセンタ102が、インスタンスについての予測要求に基づいてインスタンスを事前準備することを例証する。この工程は、予測要求を決定し、それに応じてインスタンスを事前準備することを伴い得る。予測要求を決定するための実施例の手順は、図5にさらに記述され、例えば、インスタンスの事前準備についての目標、および事前準備に必要とされるインスタンスの設定パラメータを決定することを含む。この手順は、データセンタ102においてホストされたサービスとして、または外部データセンタ102ホストされたサービスとして実施することができ、データセンタ102のコンピューティングコンポーネントに提供することができる。

0049

予測要求を決定すると、データセンタ102のコンピューティングコンポーネントは、対応する設定パラメータに基づいてこれらのインスタンスを事前準備する。通例、インスタンスの事前準備は、これらのインスタンスについてのリクエストを顧客から受信する前に、利用可能なコンピューティングリソースにおいてインスタンスを事前設定および事前起動することを伴う。事前設定は、図3の工程310〜316と同様の工程を伴い得、これによりコンピューティングコンポーネントは、リクエストを受信する前に、対応する設定パラメータに基づいて、インスタンスの機械イメージおよびさまざまなコンピューティングリソースを事前設定する。例えば、事前設定は、インスタンスをホストする領域、ゾーンおよびサーバコンピュータを決定し、機械イメージを保存するルートストレージデバイスを追加し、ストレージボリュームをインスタンスに割り当て、ネットワークセキュリティおよびインターフェースを設定することなどを含む。この実施例に追加的にまたは代替的に、コンピューティングコンポーネントは、図8の実施例の手順を実施し、事前準備したインスタンスのさまざまなコンピューティングリソースへの配置に関連する制約を考慮することによって、事前設定を最適化することができる。

0050

事前起動工程は、機械イメージにアクセス、それをキャッシュ、解読および解凍し、それらの構成ファイルを変更することを含む。この実施の実施例は、図7にさらに記述される。図6に記述されるさらなる実施例では、インスタンスの事前起動は、インスタンスを起動およびアイドリングし、アイドリングしたインスタンスをルートストレージデバイスとスワッピングすることも伴う。

0051

コンピューティングコンポーネントは、インスタンスを事前準備するための他の技術も使用することができる。実施例では、コンピューティングコンポーネントは、インスタンスを起動およびサスペンドし、その後、顧客からのリクエストに応じた数のインスタンスを再起動する。別の実施例では、コンピューティングコンポーネントは、インスタンスを起動し、それらのスナップショットを生成し、スナップショットをストレージボリュームに保存し、インスタンスを停止し、その後、リクエストに応じて、対応するスナップショットから多くのインスタンスを再び起動する。

0052

インスタンスを事前準備すると、コンピューティングコンポーネントは、一定のタイムフレームの間それらを管理することができる。例えば、コンピューティングコンポーネントは、このタイムフレーム中に、インスタンスの設定パラメータの更新に基づいて、事前準備したインスタンスを再構成することができる。コンピューティングコンポーネントは、タイムフレーム内に顧客からのリクエストに応じて事前準備したインスタンスを起動しない場合には、事前準備したインスタンスを除去し、そのインスタンスに関連していたコンピューティングリソースを解放する。ただし、リクエストが受信された場合には、コンピューティングコンポーネントは、次に、本明細書に記述したようにインスタンスを起動する。

0053

工程404は、データセンタ102(例えば、管理コンポーネント210)が、インスタンスについての顧客リクエストを受信して有効にすることを例証する。この工程は、時間を圧縮されるにもかかわらず、図3の工程302、304および308と同様の工程であってもよい。より詳しくは、受信したリクエストは、インスタンスに関連する顧客情報および設定パラメータを含む。データセンタ(例えば、管理コンポーネント210)は、顧客を認証し、顧客情報に基づいてその顧客がインスタンスを実行する許可を有しているか否かを決定する。認証および認可された場合には、データセンタは、インスタンスのステータスをペンディングに更新し、情報の中でも特に、ステータスの表示およびインスタンスの識別を顧客に返送する。データセンタはまた、リクエストにおける設定パラメータと、事前準備したインスタンスの設定パラメータとを比較することによって、リクエストをサーブし、かつリクエストを、事前準備したインスタンスに関連するサーバコンピュータに送信することができる、複数の事前準備したインスタンスのうちから事前準備したインスタンスを決定し、事前準備したインスタンスの起動を完了する。

0054

工程406は、データセンタ102(例えば、展開コンポーネント214)が、事前準備したインスタンスから、リクエストされたインスタンスを起動することを例証する。通常、工程406は、インスタンスの起動を完了し、インスタンスが実行状態になるような、事前準備したインスタンスのアクティブ化を含むことができる。この工程は、例えば、インスタンス、リクエストにおいて受信したネットワークセキュリティおよびクレデンシャルに適用することによる、インスタンスと顧客との関連付けも含むことができる。この工程の実施は、工程402の実施によって決まる。例えば、事前準備したインスタンスがアイドリングされている場合には、サーバコンピュータは、実行するためのアイドリングしたインスタンスを呼び出す。同様に、事前準備したインスタンスが事前設定され、ブート状態にある場合には、サーバコンピュータは、機械イメージのオペレーティングシステムをブートする。同様に、インスタンスがサスペンドされている場合には、サーバコンピュータは、そのインスタンスをレジュームする、またはサーバコンピュータがスナップショットを生成し、インスタンスを停止した場合には、サーバコンピュータは、スナップショットからインスタンを再起動する。

0055

工程408は、データセンタ102(例えば、管理コンポーネント210)が、インスタンスとの接続を確立するための情報を顧客コンピューティングシステムに提供することによって、インスタンスが使用状態にあることを顧客に通知することを例証する。この工程は、図3の工程318と同様の工程であってもよい。より詳しくは、データセンタ102(例えば、管理コンポーネント210)は、インスタンスのステータスを実行に更新し、顧客のクレデンシャルを使用して、インスタンスとの安全な接続を確立するための情報を顧客コンピューティングシステムに提供する。

0056

起動するためのインスタンスをリクエストするときに、顧客は、利用可能なかつ組み合わせることが可能な設定パラメータのラージプールから、インスタンスについての構成を選択することができる。例えば、顧客は、多数の機械イメージからの機械イメージの選択、多数の計算インスタンスタイプからのインスタンスタイプの選択、および本明細書において前述したような他のインスタンス設定パラメータの選択を有する。さらに、各機械イメージおよびインスタンスは、顧客の具体的なニーズにカスタマイズすることができる。データセンタ102を多数の顧客にサービスするように構成できるため、これらの顧客がリクエストできるインスタンスの数および構成は、利用可能な構成の選択に少なくとも基づいて、指数関数的に増えることができる。それ故に、リクエストできる各々の構成の選択に基づくインスタンスの事前準備を実行できないことがある。代わりに、サービスは、インスタンスについての予測要求を決定し、利用可能であると予測されるコンピューティングリソースを決定し、予測要求と予測されたコンピューティングリソースアベイラビリティとのバランスをとり、それに応じてインスタンスを事前準備するように構成できる。

0057

このサービスは、データセンタ102、またはデータセンタ102外部のコンピューティングノード(例えば、サーバ、異なるデータセンタにおけるコンピューティングコンポーネント、第三者コンピューティングリソースなど)においてホストすることができる。例えば、サービスは、サーバコンピュータ204においてホストされたスタンドアロンアプリケーションとして、または管理コンポーネント210もしくは展開コンポーネント214などの、データセンタのコンピューティングコンポーネントと一体化されたアプリケーションとして実施することができる。スタンドアロンアプリケーションの実施例を、事前準備コンポーネント618として図6および図7に示す。代替的な実施例では、サービスは、データセンタ102のコンピューティングコンポーネントとインターフェースし、コンピューティングコンポーネントから必要な情報を受信し(図5にさらに記述する)、受信した情報を使用して予測要求を決定し、予測要求についての情報をコンピューティングコンポーネントに返送するように、コンピューティングノードにおいて構成することができる。

0058

図5を参照すると、この図は、予測要求を決定するための実施例の手順を例証する。説明の明確さのために、予測要求を決定するためのサービスは、本明細書において事前準備コンポーネントとして参照され、本明細書に前述したようなデータセンタ102内のまたはその外部のアプリケーションとして構成することができる。工程502は、事前準備コンポーネントが、インスタンスについてのリクエストの履歴を表すデータセットを考慮し、そのデータセットを解析してインスタンスについての予測されるリクエストを決定することを例証する。考慮されたデータセットは、リクエストおよび/または起動されたインスタンスに関連する履歴データ、並びに現在ホストされているインスタンスを表すデータを含むことができる。事前準備コンポーネントは、例えば、リクエストされた場所、リクエストしている顧客、リクエストの時刻などのファクタの組み合わせを使用して、データセットを選択することができる。例えば、事前準備コンポーネントは、一定の顧客(例えば、特定の顧客、多くの顧客またはすべての顧客)による、または必要とされる解析の包括度に応じた一定の期間(例えば、数日、数週間、数ヶ月、さらには数年)にわたる、具体的な場所(例えば、ある領域、アベイラビリティのゾーンなど)の範囲内のインスタンスについてのリクエストを考慮することができる。

0059

次に、事前準備コンポーネントは、考慮されたデータセットを数学モデルにかけることによってそれを解析することができる。例えば、事前準備コンポーネントは、データセットからのデータを、機械イメージおよびインスタンスタイプに基づいたグループソートし、各グループについてのカウントを得ることができる。グループの各々は、機械イメージおよびインスタンスタイプの組を表すことができる。事前準備コンポーネントは、長期にわたる各グループについてのカウントをプロットし、例えば、外挿法を使用してプロットされた曲線フィットする数学的方程式を決定することができる。この方程式は、各グループについての予測要求を概算し、各グループに関連する追加のデータを考慮することによって、長期にわたって継続的に改善することができる。そのようなものとして、特定の組の機械イメージおよびインスタンスタイプについて、事前準備コンポーネントは、時間の関数として予測要求を表現すること(例えば、週の初日に特定のインスタンスタイプおよび機械イメージに対応する一千個のインスタンスを事前準備し、週の二日目にこれらのインスタンスの二千個を事前準備し、週の三日目にこれらのインスタンスの五百個を事前準備することなど)ができる。

0060

事前準備コンポーネントは、インスタンスタイプもしくは機械イメージのいずれか、またはインスタンスの他の設定パラメータに基づいた類似の解析を利用することもできる。例えば、特定のタイプのインスタンスを特定のコンピューティングリソースにおいてのみホストできるようにデータセンタ102が構成された場合には、事前準備コンポーネントは、インスタンスタイプごとの予測要求を概算する数学的方程式を決定することができる。これらの方程式を使用して、インスタンスタイプをサポートできるコンピューティングリソースについての予測要求を概算することができる。そのようなものとして、この実施例では、事前準備コンポーネントは、インスタンスを事前準備するのに必要なコンピューティング容量を概算することができる。

0061

オペレーティング504は、事前準備コンポーネントが、インスタンスの事前準備についての目標を設定することを例証する。インスタンスについての予測要求、場合によっては、コンピューティングリソースについての予測要求を概算した後、事前準備コンポーネントは、この概算に基づいて、インスタンスの事前準備についての目標をコンピューティングリソースに設定することができる。この目標は、インスタンスの設定パラメータ(例えば、インスタンスタイプ、機械イメージの識別子など)、インスタンスの総数、各インスタンスタイプの数、インスタンスがリクエストされると予測されるタイムフレーム、これらのインスタンスを事前準備すべき領域およびゾーンなどを含むことができる。例えば、一週間にわたるリクエストの履歴の解析は、十万個のリクエストされたインスタンスのうちの一万個が、FEDORAオペレーティングシステムを使用し、カリフォルニア州の特定のデータセンタ内の32ビットアーキテクチャにおけるAPACHEウェブサーバを実行するインスタンスであったことを示すことができる。この実施例の解析に基づいて、事前準備コンポーネントは、週間ベースで、カリフォルニア州の特定のデータセンタ内で起動されるこれらのFEDORA/APACHE/32ビットアーキテクチャインスタンスのうちの一万個を顧客がリクエストすると予測する。そのようなものとして、事前準備コンポーネントは、特定のデータセンタ内のこれらのインスタンスのうちの一万個を事前準備することを目標とする。

0062

しかしながら、リクエストできる各々の構成の選択(例えば、インスタンスタイプと機械イメージとの組み合わせ)に基づくインスタンスの事前準備を実行できない場合には、事前準備コンポーネントは、さらに、さまざまなファクタを予測要求に適用することによって、さまざまな構成の選択に関連する目標を修正することができる。これらのさまざまなファクタは、コンピューティングリソースアベイラビリティの統計的ファクタおよび考慮事項と、事前準備についての目標とされたインスタンスをデータセンタ102のリソースがサポートできることを確実にするために事前準備コンポーネントによって使用され得る制約との組み合わせを含むことができる。

0063

工程506は、事前準備コンポーネントが、予測要求に適用されたさまざまな統計的ファクタに基づいて目標を改善することを例証する。実施形態では、事前準備コンポーネントは、平均値ピーク値、谷値、閾値および標準偏差のいずれかまたはそれらの組み合わせを、予測要求に関連する解析したデータセットに適用することによって、目標を修正することができる。工程506を例証する前述の実施例に続いて、事前準備コンポーネントが、一週間にわたって、FEDORA/APACHE/32ビットアーキテクチャインスタンスが平均して一日約千五百回リクエストされたことを決定した場合には、事前準備コンポーネントは、一日としての、具体的な機械イメージについての目標としてその平均数を設定することができる。同様に、事前準備コンポーネントが、その一週間内において、その特定の構成を有するインスタンスの最大数がその週のうちの特定の日(例えば、水曜日)に起動され、同じインスタンスの最小数が別の日(例えば、金曜日)に起動されたことを決定した場合には、事前準備コンポーネントは、各週の水曜日および金曜日に、具体的なインスタンスタイプについてのそれぞれの目標として最大数および最小数を設定することができる。また、事前準備コンポーネントが、その一週間内に、わずかな比率のみ(例えば、0.1パーセント)のリクエストしか別のインスタンス構成に関連していないことを決定した場合には、事前準備コンポーネントは、初期目標が所定の閾値(例えば、最も多い構成の上位10パーセントのインスタンスを事前準備することを要求する閾値)を下回った場合に、この構成タイプのインスタンスの事前準備についてのその目標を、1パーセント(例えば、百個のインスタンス)からゼロに修正することができる。

0064

工程508は、事前準備コンポーネントが、コンピューティングデータセンタ102のリソースのアベイラビリティおよび制約に基づいて目標を改善することを例証する。事前準備コンポーネントは、さらに、インスタンスおよび/またはコンピューティングリソースについての予測要求と、そのコンピューティングリソースの予測アベイラビリティとのバランスをとるように目標を修正することができる。利用可能であると予測されるコンピューティングリソースを決定するために、事前準備コンポーネントは、前述と類似の解析をそのリソースの履歴使用に適用することもできる。例えば、事前準備コンポーネントは、カリフォルニア州の特定のデータセンタが平均して80パーセント容量において一週間にわたって実行することを決定できる。それ故に、事前準備コンポーネントは、週間ベースでカリフォルニア州のデータセンタにおいて20パーセントの利用可能な容量を有すると予測でき、この利用可能な容量を事前準備したインスタンスのためにリザーブすることができる。例証のために、週間ベースで、1パーセントの容量が百個のインスタンスをホストする能力に相当する場合には、カリフォルニア州のデータセンタにおいて20パーセントの利用可能な容量は二千個のインスタンスに達する。それ故に、事前準備コンポーネントは、一万個のFEDORA/APACHE/32ビットアーキテクチャインスタンスからそれらの二千個を事前準備するようにその目標を修正することができる。

0065

さらなる実施形態では、事前準備コンポーネントはまた、リソースアベイラビリティに影響する何らかの計画的な機能停止または保守を解析し、この解析に基づいてリザーブ容量を更新することもできる。例えば、事前準備コンポーネントは、カリフォルニア州の特定のデータセンタが、計画的保守の故に、次の一週間に90パーセントの容量まで下がることを決定した場合には、総計の利用可能なコンピューティング容量が超過しないように、リザーブ容量を20パーセントから10パーセントに抑制することを決定できる。

0066

次に、事前準備コンポーネントは、インスタンスおよび/またはコンピューティングリソースについての予測要求と、コンピューティングリソースにおけるインスタンスの配置を制限し得る制約とのバランスもとることによって、その目標をさらに改善することができる。このバランシングは、図8に記述され、データセンタにおける利用可能な容量が超過しない、複数のコンピューティングリソースおよびデータセンタにわたる事前準備したインスタンスのバランスがとられた分配をサポートすることを確実にするために実施することができる。当業者は、これらのおよび他のタイプの解析を組み合わせて使用して、予測要求を定量化し、インスタンスの事前準備についての目標を改善することができることを認識する。

0067

図6を参照すると、この図は、事前準備したインスタンスが図4の手順を実行するのに使用できるアイドルされた計算インスタンスを含む場合のデータセンタ102の実施例の構成を例証する。顧客コンピューティングシステムからインスタンスについてのリクエストを受信する前に、さまざまなコンピューティングデータセンタ102のリソースが、機械イメージ620からインスタンス650を事前準備するように構成される。例えば、サーバコンピュータ204が、(図6に示す事前準備コンポーネント618のような)事前準備コンポーネントを実行して事前準備したインスタンスの設定パラメータを決定し、そして管理コンポーネント210、展開コンポーネント214およびロードバランサコンポーネント216を実行して事前準備したインスタンス650のホストとしてサーバコンピュータ202を選択し、機械イメージ、ストレージボリューム640、ネットワークインターフェースおよびデバイス、並びに他のリソースを包含するルートストレージデバイス630を、事前準備したインスタンスに関連付ける。

0068

図6は、サーバコンピュータ204においてホストされたスタンドアロンアプリケーションとして事前準備コンポーネント618を図示するが、この事前準備コンポーネントは、データセンタ102外部のコンピューティングノードにホストされてもよく、この構成では、事前準備したインスタンスの設定パラメータおよび予測要求に関連する情報が、本明細書に前述したようなサービスとして、データセンタのコンピューティングコンポーネント(例えば、管理コンポーネント210、展開コンポーネント214、ロードバランサコンポーネント216)に提供される。同様に、別の実施例では、事前準備コンポーネント618は、データセンタ102内のコンピュータサーバにホストされ、サーバコンピュータ204とインターフェースしてもよく、この構成では、事前準備コンポーネント618が、事前準備したインスタンスに関連する情報を、サーバコンピュータ204によって実行されるコンピューティングコンポーネントに提供する。

0069

インスタンスを事前起動するために、インスタンスマネージャ208は、機械イメージ620にアクセスし、その構成ファイル626を変更し、変更された機械イメージからインスタンス650をブートする。この時点で、インスタンス650が起動され、インスタンスマネージャ208が、仮想メモリをそのゲストオペレーティングシステム622に割り当てる。この仮想メモリは、通常、そのRAMなどの、サーバコンピュータ202の物理メモリマッピングされる。また、この時点で、インスタンス650は、顧客コンピューティングシステムに接続していなく、アプリケーション624を実行しない。それ故に、顧客コンピューティングシステムからリクエストが受信されるまで、インスタンス650は、アイドリング状態にある。

0070

インスタンスマネージャは、インスタンスがアイドリング状態にあることを検出すると、関連する物理メモリをディスクとスワッピングすることによって、サーバコンピュータにおいて実行している他のインスタンスからこの物理メモリを解放することができる。例えば、インスタンスマネージャは、関連する物理メモリのコンテンツを、ルートストレージデバイス632におけるスワップファイル632に保存し、その物理メモリを仮想メモリマッピングに更新する。

0071

データセンタ102が顧客コンピューティングシステムからリクエストを受信するまで、インスタンスはアイドリング状態のままである。その後、管理コンポーネント210は、顧客を認証し、その顧客がインスタンスを使用する許可を有しているか否かを決定する。許可を有していると判断した場合には、展開コンポーネント214が、インスタンス650を使用してリクエストを満たすことができることを決定する。次に、展開コンポーネント214は、インスタンス650を開始することをロードバランサコンポーネント216に指示する。次に、ロードバランサコンポーネントは、インスタンスを起動するためにインスタンスマネージャ208を呼び出す。

0072

インスタンスマネージャ208は、ロードバランサからの命令を受信してインスタンス650を起動すると、割り当てられた物理メモリにスワップファイルをロードし、物理メモリと仮想メモリとの間のマッピングを更新し、インスタンスに、マッピングされた仮想メモリとして物理メモリを使用させる。その時点において、インスタンスは、起動されるものとして、かつ顧客コンピューティングシステムに接続された状態にあるとみなされる。

0073

図7は、顧客コンピューティングシステムからインスタンスについてのリクエストを受信する前にインスタンスを事前準備するためのデータセンタ102の別の実施例の構成を図示する。図7の構成では、データセンタのさまざまなコンピューティングコンポーネント(例えば、管理コンポーネント210、展開コンポーネント214、ロードバランサコンポーネント216、および事前準備コンポーネント618)が、サーバコンピュータ202においてインスタンス750を事前設定するが、これらはリクエストが受信されるまでブートしない。実施例の実施形態では、事前準備コンポーネント618は、リクエストを受信する前に、機械イメージ620にアクセス、それをキャッシュ、解読および解凍し、事前準備したインスタンス750に関連するさまざまなパラメータに基づいて、構成ファイル626を構文解析および変更するように、インスタンスマネージャ208に指示して実行させることができる。これらのパラメータは、例えば、事前準備したインスタンスの設定パラメータ、サーバコンピュータ202のハードウェアおよびシステム構成、追加されたストレージボリュームのアドレス指定、ネットワークインターフェースなどを含む。変更およびキャッシュ機械イメージを、図7に機械イメージ760として示す。

0074

インスタンスについてのリクエストが受信されると、管理コンポーネント210が、顧客を認証および認可してインスタンスを起動する。次に、展開コンポーネント214が、事前準備したインスタンス750によってリクエストを満たすことができることを決定し、事前準備したインスタンスの起動を完了することをロードバランサコンポーネント216に指示する。次に、ロードバランサコンポーネントは、事前準備したインスタンスを起動するためにサーバコンピュータ202を呼び出す。サーバコンピュータのインスタンスマネージャ208は、事前設定された機械イメージ760をマウントしかつ読み出し、そのオペレーティングシステムをブートする。ブートが完了すると、インスタンスは、起動されるもの、かつ顧客コンピューティングシステムに接続できるものとみなされる。

0075

図4の工程404〜408並びに図6および図7のシステムを、単一のインスタンスの文脈において本明細書に前述したが、より多い数、およそ数百個および数千個以上のインスタンスを利用することもできる。また、予測要求に基づいたインスタンスの事前準備についての目標の設定に加えて、さまざまなコンピューティングコンポーネント(例えば、事前準備コンポーネント618、展開コンポーネント214)は、サーバコンピュータにおける事前準備したインスタンスの配置に関連する制約を考慮して、それらを特定のサーバコンピュータに配置することができる。

0076

図8は、そのような手順の実施例であり、コンピューティングリソースの使用および財務コストを最適化するように実施される。説明の明確さのために、事前準備コンポーネント618は、図8の実施例の手順を実行するものとして記述される。それでもなお、データセンタ102の他のコンポーネントまたはコンポーネントの組み合わせを使用することができ、それらが当業者に明らかであるはずである。

0077

工程802は、事前準備コンポーネント618が、さまざまなサーバコンピュータにおける利用可能な容量を表す密度パラメータを決定することを例証する。事前準備コンポーネント618は、これらのパラメータを使用して、サーバコンピュータを効率的に使用する(例えば、大容量使用を目標にする)、並びにサーバコンピュータ内およびそれのいたるところの不具合の影響を低減する(例えば、特定の顧客の事前準備したインスタンスを複数のサーバコンピュータにわたって分配する)ような密度を目標にする。

0078

工程804は、事前準備コンポーネント618が、サーバコンピュータにおいて同時に事前準備されているインスタンスの数を表す同時パラメータを決定することを例証する。事前準備コンポーネント618は、これらのパラメータを使用して、単一サーバコンピュータにおける短時間内の多数のインスタンスの事前準備に伴うホットスポットの形成を回避する。

0079

工程806は、事前準備コンポーネント618が、事前準備したインスタンスを顧客に利用可能にすべきタイムフレームを決定することを例証する。このタイムフレームは、通常、例えば、利用可能な容量、およびアベイラビリティの対応する期間に関連するさまざまなパラメータに応じて決まる。タイムフレームが一旦設定されても、利用可能な容量が減少した場合、または予測されていなかった新規のトラフィックをデータセンタ102が受信した場合には、タイムフレームを短縮することができる。同様に、利用可能な容量が増大した場合、または計画されたトラフィックが予想外に減少した場合には、タイムフレームを延長することができる。

0080

工程808は、事前準備コンポーネント618が、複数のゾーンおよび/または領域にわたるリソースアベイラビリティを表す領域およびゾーンパラメータを決定することを例証する。事前準備コンポーネント618は、これらのパラメータを使用して、領域またはゾーンのいずれかにおける不具合の顧客への影響を最小限にするように、事前準備したインスタンスを複数のゾーンおよび領域にわたってサーバコンピュータに分配する。この工程はまた、事前準備コンポーネント618が、事前準備されたインスタンを最もよくサポートするようなサーバコンピュータの互換性を決定することも含むことができる。例えば、事前準備したインスタンスは、1つの領域のみにおいて利用可能な特定のネットワーキングインターフェースを要求することができる。この実施例では、事前準備コンポーネント618は、事前準備したインスタンスを、その領域内のサーバコンピュータに配置する。

0081

工程808は、事前準備コンポーネント618が、事前準備したインスタンスをサポートできるコンピューティングリソースを表す互換性パラメータを決定することを例証する。事前準備コンポーネント618は、特定のタイプのインスタンスが特定のコンピューティングリソースにおいてのみホストされ得るように、データセンタ102が構成されたときにこれらのパラメータを使用することができる。そのようなものとして、この工程では、事前準備コンポーネントは、事前準備したインスタンスを実際にサポートできるサーバコンピュータを決定し、事前準備したインスタンスをこれらのサーバコンピュータに積極的に配置することによって、事前準備したインスタンスの構成と、コンピュータサーバの構成との間の互換性を確実に持たせることができる。

0082

工程812は、事前準備コンポーネント618が、インスタンスの事前準備に伴う財務コストを表す財務パラメータを決定することを例証する。例えば、特定のオペレーティングシステムのベンダーは、インスタンスごとの基準ではなく、サーバコンピュータごとの基準においてライセンス料を支払うことができる。換言すれば、サーバコンピュータにおいてホストされている、特定のオペレーティングシステムを実行するインスタンスの数にかかわらず、料金は均一である。そのような実施例では、事前準備コンポーネントは、特定のオペレーティングシステムを実行する事前準備したインスタンスを、その特定のオペレーティングシステムを持つ、インスタンスを既にホストしているサーバコンピュータに配置することによって、追加のライセンス料の負担を回避する。

0083

工程814は、事前準備コンポーネント618が、事前準備したインスタンスをサーバコンピュータに配置することを例証する。この工程では、事前準備コンポーネント618は、前述のパラメータを組み合わせて、インスタンスの展開を最適化する。この最適化は、事前準備したインスタンスのサーバコンピュータへの配置に関連する多くの制約の優先順位を決めるおよびそれを最大限生かすことを含むことができる。一旦選択されると、事前準備コンポーネント618は、図4の手順に記述するような、これらのコンピュータリソースへの事前準備したインスタンスの展開を開始する。

0084

図9を参照すると、この図は、前述のソフトウェアコンポーネントを実行する能力があるコンピュータ800についての実施例のコンピュータアーキテクチャを示す。図9に示すコンピュータアーキテクチャは、従来のサーバコンピュータ、ワークステーションデスクトップコンピュータラップトップタブレット、ネットワークアプライアンス、PDA、電子リーダ、デジタル携帯電話、または他のコンピューティングデバイスを例証し、そしてこれを利用して、データセンタ102内、サーバコンピュータ202上、顧客コンピューティングシステム104上、または本明細書に言及した任意の他のコンピューティングシステムにおいて実行するものとして記述され、本明細書に提示されたソフトウェアコンポーネントの任意の態様を実行することができる。

0085

コンピュータ900は、ベースボード、または数多くのコンポーネントもしくはデバイスを、システムバスまたは他の電気通信パスを手段として接続できるプリント基板である「マザーボード」を含むことができる。1つ以上の中央処理装置(「CPU」)904が、チップセット906ととともに動作することができる。CPU904は、コンピュータ900の工程に必須の算術および論理演算を実行する標準的なプログラマブルプロセッサであってもよい。

0086

CPU904は、状態間を差別化するおよび変化させるスイッチング素子の操作を通じて、ある離散的物理的状態から次の状態に遷移させることによって、必須の工程を実行することができる。スイッチング素子は、通常、フリップフロップなどの、2つのバイナリ状態のうちの1つの状態を維持する電子回路、および論理ゲートなどの、1つ以上の他のスイッチング素子の状態の論理結合に基づいた出力状態を提供する電子回路を含むことができる。これらの基本的なスイッチング素子を組み合わせて、レジスタ加減算器算術論理演算ユニット浮動小数点演算ユニットなどを含むより複雑な論理回路を作り出すことができる。

0087

チップセット906は、CPU904と、ベースボード上の残りのコンポーネントおよびデバイスとの間のインターフェースを提供することができる。チップセット906は、コンピュータ900におけるメインメモリとして使用されるランダムアクセスメモリ(「RAM」)908とのインターフェースを提供することができる。チップセット906は、さらに、コンピュータ900の起動、並びにさまざまなコンポーネントおよびデバイス間の情報の転送を支援できる基本的ルーチンを保存するリードオンリメモリ(「ROM」)920または不揮発性RAM(「NVRAM」)などのコンピュータ可読記憶媒体とのインターフェースを提供することができる。ROM920またはNVRAMはまた、本明細書に記述された実施形態に従うコンピュータ900の工程に必須のコンピュータ可読命令などの他のソフトウェアコンポーネントも保存することができる。

0088

コンピュータ900は、ネットワーク218を通じたリモートコンピューティングデバイスおよびコンピュータシステムとの論理的接続を使用したネットワーク化された環境において動作することができる。チップセット906は、ギガビットイーサネットアダプタなどのネットワークインターフェースコントローラ(「NIC」)922を通じたネットワークの接続性を提供するための機能性を含むことができる。NIC922は、ネットワーク218を通じて、コンピュータ900と他のコンピューティングデバイスとを接続する能力がある。コンピュータと他のタイプのネットワークおよびリモートコンピュータシステムとを接続する複数のNIC922がコンピュータ900に存在できることが認識されるはずである。

0089

コンピュータ900は、コンピュータに不揮発性ストレージを提供するマスストレージデバイス928に接続することができる。マスストレージデバイス928は、より詳細を本明細書に記述したシステムプログラムアプリケーションプログラム、他のプログラムモジュールおよびデータを保存することができる。マスストレージデバイス928は、チップセット906に接続されたストレージコントローラ924を通じてコンピュータ900に接続することができる。マスストレージデバイス928は、1つ以上の物理ストレージユニットからなってもよい。ストレージコントローラ924は、シリアル接続SCSI(「SAS」)インターフェース、シリアルアドバンスト・テクノロジアタッチメント(「SATA」)インターフェース、ファイバチャンネル(「FC」)インターフェース、またはコンピュータと物理ストレージユニットとの間でデータを物理的に接続および転送するための他のタイプのインターフェースを通じて、物理ストレージユニットとインターフェース接続することができる。

0090

コンピュータ900は、保存されている情報を反映するように物理ストレージユニットの物理的状態を変形することによって、マスストレージデバイス928にデータを保存することができる。物理的状態の具体的な変形は、さまざまなファクタおよびこの記述の種々の実施に応じて決まり得る。そのようなファクタの実施例は、これらに限定されないが、マスストレージデバイス928が一次記憶装置または二次記憶装置として特徴づけられているかなどにかかわらず、物理ストレージユニットを実施するのに使用される技術を含むことができる。

0091

例えば、コンピュータ900は、ストレージコントローラ924を通じて命令を出すことによって情報をマスストレージデバイス928に保存することができ、これにより、磁気ディスクドライブユニット内の特定の場所の磁気特性光学記憶装置内の特定の場所の反射もしくは屈折特性、または特定のコンデンサトランジスタもしくはソリッドステート記憶装置における他の離散コンポーネントの電気特性を変えることができる。本記述の範囲および精神から逸脱することなく、この記述を容易にするためだけに提供された前述の実施例によって、物理媒体の他の変形も可能である。コンピュータ900は、さらに、物理ストレージユニット内の1つ以上の特定の場所の物理的状態または特性を検出することによって、マスストレージデバイス928から情報を読み出すことができる。

0092

前述のマスストレージデバイス928に加えて、コンピュータ900は、プログラムモジュール、データ構造または他のデータなどの情報を保存および取得するための他のコンピュータ可読ストレージ媒体へのアクセスを有することができる。コンピュータ可読ストレージ媒体が、非一時的データのストレージを提供し、コンピュータ900によってアクセスできる任意の利用可能な媒体であってもよいことが当業者によって認識されるはずである。

0093

限定されない実施例として、コンピュータ可読ストレージ媒体は、方法または技術において実装される、揮発性および不揮発性の、取り外し可能な媒体および取り外し不可能な媒体を含むことができる。コンピュータ可読ストレージ媒体は、これらに限定されないが、RAM、ROM、消去可プログラマブルROM(「EPROM」)、電気的消去可能プログラマブルROM(「EEPROM」)、フラッシュメモリもしくは他のソリッドステートメモリ技術、コンパクトディスクROM(「CD−ROM」)、デジタル多用途ディスク(「DVD」)、高解像度DVD(「HD−DVD」)、BLU−RAYもしくは他の光学ストレージ、磁気カセット磁気テープ磁気ディスク記憶装置もしくは他の磁気記憶装置、または非一時的な方法で所望の情報を保存するのに使用できる任意の他の媒体を含む。

0094

マスストレージデバイス928は、コンピュータ900の動作を制御するのに利用されるオペレーティングシステムを保存することができる。一実施形態に従い、オペレーティングシステムは、LINUXオペレーティングシステムのバージョンを含む。別の実施形態に従い、オペレーティングシステムは、マイクロソフトが提供するWINDOWS SERVERオペレーティングシステムのバージョンを含む。さらなる実施形態に従い、オペレーティングシステムは、UNIXオペレーティングシステムのバージョンを含むことができる。他のオペレーティングシステムも利用できることが認識されるはずである。マスストレージデバイス928は、管理コンポーネント210および/または前述の他のソフトウェアコンポーネントなどのコンピュータ900によって利用される、他のシステムまたはアプリケーションプログラムおよびデータを保存することができる。

0095

マスストレージデバイス928または他のコンピュータ可読ストレージ媒体はまた、コンピュータ900にロードされると、汎用コンピューティングシステムからのコンピュータを本明細書に記述される実施形態を実施する能力がある専用コンピュータに変形するコンピュータ実行可能命令でエンコードすることもできる。これらのコンピュータ実行可能命令は、前述のようなCPU904による状態間の遷移方法を指定することによって、コンピュータ900を変形する。コンピュータ900は、コンピュータ900によって実行されたときに図3および図4に関して記述した手順を実行するコンピュータ実行可能命令を保存するコンピュータ可読ストレージ媒体へのアクセスを有することができる。

0096

コンピュータ900は、キーボードマウスタッチパッドタッチスクリーン電子スタイラスなどの多くの入力デバイス、または他のタイプの入力デバイスからの入力を受信および処理するための入出力コントローラ932も含むことができる。同様に、入出力コントローラ932は、出力を、コンピュータモニタフラットパネルディスプレイなどのディスプレイデジタルプロジェクタプリンタプロッタまたは他のタイプの出力デバイスに提供することができる。コンピュータ900は、図9に示すコンポーネントのすべては含まなくてもよく、図9に明白に示されない他のコンポーネントを含んでもよいし、図9に示すものとは完全に異なるアーキテクチャを利用してもよいことが認識される。

0097

図面に図示するネットワークトポロジが、大いに単純化されており、本明細書に開示するさまざまなコンピューティングシステムを相互接続するのに、より多くのネットワークおよびネットワーキングデバイスを利用できることが認識されるはずである。これらのネットワークトポロジおよびデバイスは、当業者に明らかであるはずである。

0098

図面のシステムが、単なる例示であり、他の実施も使用できることも認識されるはずである。その上、本明細書に開示する機能性を、ソフトウェア、ハードウェアまたはソフトウェアとハードウェアとの組み合わせにおいて実施できることが認識されるはずである。他の実施も当業者に明らかであるはずである。サーバ、ゲートウェイまたは他のコンピューティングデバイスが、記述したタイプの機能性と相互作用およびそれを実行できるハードウェアまたはソフトウェアの任意の組み合わせを備えることができることも認識されるはずである。これらには、制限なく、デスクトップまたは他のコンピュータ、データベースサーバ、ネットワークストレージデバイスおよび他のネットワークデバイス、PDA、タブレット、携帯電話、無線電話、ポケットベル電子手帳インターネット家電テレビベースのシステム(例えば、セットトップボックスおよび/またはデジタル式ビデオ録画再生装置もしくはデジタルビデオテープレコーダを使用したもの)、および適当な通信機能を含むさまざまな他の消費者製品が含まれる。さらに、図示したモジュールによってもたらされる機能性は、いくつかの実施形態では、より少ないモジュールにおいて組み合わされてもよいし、追加のモジュールに分配されてもよい。同様に、いくつかの実施形態では、図示したモジュールのいくつかの機能性はもたらされなくてもよいし、かつ/または他の追加の機能性が利用可能であってもよい。

0099

先行するセクションに記述された工程、プロセス、方法およびアルゴリズムの各々は、1つ以上のコンピュータまたはコンピュータプロセッサによって実行されるコードモジュールにおいて具現され、かつそれによって完全にまたは部分的に自動化することができる。コードモジュールは、例えば、ハードドライブ、ソリッドステートメモリ、光ディスクなどの任意のタイプの非一時的コンピュータ可読媒体、またはコンピュータ記憶装置に保存することができる。プロセスおよびアルゴリズムは、特定用途向け集積回路において部分的にまたは全体的に実装することができる。開示したプロセスおよびプロセスステップの結果は、永続的に、さもなければ、例えば、揮発性または不揮発性ストレージなどの任意のタイプの非一時的コンピュータストレージに保存することができる。

0100

前述のさまざまな特徴およびプロセスは、互いに独立して使用してもよいし、さまざまな様式において組み合わせてもよい。すべての可能なコンビネーションおよびサブコンビネーションが、本開示の範囲内にあると意図される。さらに、特定の方法またはプロセスブロックは、いくつかの実施では除外してもよい。本明細書に記述された方法およびプロセスはまた、任意の特定のシーケンスに制限されず、それに関連するブロックまたはステートは、適当な他のシーケンスにおいて実行することができる。例えば、記述したブロックまたはステートは、具体的に開示された以外の順序で実行してもよいし、複数のブロックまたはステートを、単一のブロックまたはステートに結合してもよい。実施例のブロックまたはステートは、順番に、並行して、または何らかの他の様式で実行してもよい。開示した実施例の実施形態にブロックまたはステートを追加してもよいし、それから除外してもよい。本明細書に記述された実施例のシステムおよびコンポーネントは、記述したものと異なって構成してもよい。例えば、開示した実施例の実施形態に要素を追加してもよいし、それから除外してもよいし、それに対して再配置してもよい。

0101

さまざまなアイテムが、使用中にメモリまたはストレージに保存されるものとして例証され、これらのアイテムまたはそれらの一部が、メモリ管理およびデータ保全を目的として、メモリと他のストレージデバイスとの間を転送され得ることも認識される。代替的に、他の実施形態では、ソフトウェアモジュールおよび/またはシステムのいくつかまたはすべては、コンピュータ間通信を通じて、別のデバイスにおけるメモリにおいて実行し、例証したコンピューティングシステムと通信することができる。なおその上に、いくつかの実施形態では、システムおよび/またはモジュールのいくつかまたはすべては、これらに限定されないが、1つ以上の特定用途向け集積回路(ASIC)、標準集積回路、(例えば、適当な命令を実行する、マイクロコントローラおよび/または組込コントローラを含む)コントローラフィールドプログラマブルゲートアレイFPGA)、結合プログラム可能論理回路(CPLD)などを含む、少なくとも部分的にファームウェアおよび/またはハードウェアにおいてなどの、他の様式で実施または提供することができる。モジュール、システムおよびデータ構造のいくつかまたはすべては、ハードディスク、メモリ、ネットワークまたは適当なドライブによってもしくは適当な接続を通じて読み出される可搬型媒体品などのコンピュータ可読媒体に(例えば、ソフトウェア命令または構造化データとして)保存することもできる。システム、モジュールおよびデータ構造は、無線ベースのおよび有線もしくはケーブルベースの媒体を含む、様々なコンピュータ可読伝送媒体において、(例えば、搬送波または他のアナログもしくはデジタル伝搬信号の一部として)、生成されたデータ信号として伝送することもできる。そしてこれは、(例えば、単一もしくは多重化アナログ信号の一部として、または複数の離散デジタルパケットもしくはフレームとして)様々な形態をとることができる。そのようなコンピュータプログラム製品は、他の実施形態では他の形態もとることができる。したがって、本発明は、他のコンピュータシステム構成とともに実践することができる。

0102

本明細書に使用される条件付き言語、例えば、特に、「can」、「could」、「might」、「may」、「e.g.」などは、別途記載がない限り、または使用される文脈内で別な様に理解されない限り、通常、特定の実施形態が、他の実施形態が含まない特定の特徴、要素および/またはステップを含むことを伝達することが意図される。それ故に、そのような条件付き言語は、通常、特徴、要素および/またはステップが何らかの様式において1つ以上の実施形態に必須である、または1つ以上の実施形態が、作者の入力または助言の有無にかかわらず、これらの特徴、要素および/またはステップが任意の特定の実施形態に含まれるか、またはそこで実行されるかを決定するための論理を必ず含むことを暗示することは意図しない。用語「備えている」、「含んでいる」、「有している」などは、同義的であり、制限のない様式で包括的に使用され、追加の要素、特徴、行為、工程などを除外するものではない。また、用語「または」は、その包括的意味で(かつ、その排他的意味ではない)使用され、そのため、使用される場合には、例えば、要素のリストを結びつけ、リストにおける要素の1つ、いくつかまたはすべてを意味する。

0103

特定の実施例の実施形態を記述したが、これらの実施形態は、単に実施例として提示され、本明細書に開示する本発明の範囲を限定するようには意図されない。それ故に、いかなる前の記述も、任意の特定の特徴、特性、ステップ、モジュールまたはブロックが必須または不可欠であることを暗示することは意図しない。実際、本明細書に記述された新規の方法およびシステムは、様々な他の形態で具現することができ、さらに、本明細書に開示する本発明の精神から逸脱することなく、本明細書に記述された方法およびシステムの形態にさまざまな排除、置き換えおよび変更を為すことができる。添付の特許請求の範囲およびそれらの均等物は、本明細書に開示する本発明の特定の範囲および精神内に収まるようなそのような形態または変更を含むように意図される。

0104

本開示の実施形態は、以下の条項を考慮して記述することができる。
(1)
ネットワーク接続を通じて互いに通信するように構成された複数のコンピューティングデバイスを備えた1つ以上のデータセンタと、
その内部にコンピュータ可読命令を保存した1つ以上のメモリと、を備えており、前記コンピュータ可読命令が、システムにおいて実行されたときに、前記システムに、少なくとも、
複数の機械イメージおよび複数の計算インスタンスタイプに関連する複数の計算インスタンスについての予測要求を決定させ、
前記予測要求に少なくとも部分的に基づいて、前記複数の計算インスタンスをホストするように構成された前記複数のコンピューティングデバイスのうちの1つ以上のコンピューティングデバイスを決定させ、
計算インスタンスを起動するためのリクエストを顧客ノードから受信する前に、前記複数の機械イメージおよび前記複数の計算インスタンスタイプに少なくとも部分的に基づいて、前記1つ以上のコンピューティングデバイスにおいて前記複数の計算インスタンスを起動およびアイドリングさせ、かつ
前記計算インスタンスを起動するための前記顧客ノードからの前記リクエストの受信に応答して、前記1つ以上のコンピューティングデバイスにおいてアイドリングされた、前記複数の機械イメージの1つから前記計算インスタンスを起動させる、計算インスタンスをプロビジョンおよび起動するためのシステム。
(2)
前記予測要求が、顧客ノードから受信したリクエストの履歴に少なくとも部分的に基づいて決定され、前記リクエストの履歴が、前記リクエストに関連する計算インスタンスの設定パラメータに少なくとも部分的に基づいてソートされる、条項1記載のシステム。
(3)
複数の計算インスタンスについての予測要求を決定するための前記命令が、前記システムにおいて実行されたときに、前記システムに、少なくとも、
計算インスタンスについてのリクエストの履歴を解析することによって、前記複数の計算インスタンスについての目標、および前記1つ以上のコンピューティングデバイスを決定させ、かつ
前記リクエストに関連する統計的ファクタに少なくとも部分的に基づいて前記目標を修正させる命令を含む、条項1記載のシステム。
(4)
前記複数のコンピューティングデバイスのうちから1つ以上のコンピューティングデバイスを決定するための前記命令が、前記システムにおいて実行されたときに、前記システムに、少なくとも、
前記複数のコンピューティングデバイスの予測されるアベイラビリティを決定させ、
前記複数の計算インスタンスの起動およびアイドリングに関連する制約を満たすように、前記予測要求と前記予測アベイラビリティとのバランスをとらせ、かつ
前記バランスに少なくとも部分的に基づいて前記1つ以上のコンピューティングデバイスを決定させる命令を含む、条項1記載のシステム。
(5)
予測要求に少なくとも部分的に基づく複数の事前設定された機械イメージを複数の計算ノードに提供することと、
計算インスタンスを起動するためのリクエストをユーザノードから受信した後に、前記計算インスタンスが、前記複数の事前設定された機械イメージのうちの少なくとも1つの機械イメージに関連することを決定することと、
前記決定に少なくとも部分的に基づいて、前記複数の計算ノードのうちの1つの計算ノードにおいて前記関連する機械イメージを使用して、前記計算インスタンスの起動を完了することと、を含む、方法。
(6)
前記予測要求が、計算インスタンスについての以前に受信したリクエストに少なくとも部分的に基づく、条項5記載の方法。
(7)
前記予測要求が、前記複数の事前設定された機械イメージに関連する複数の計算インスタンスのタイプ、および前記複数の事前設定された機械イメージに関連する識別子を含む、条項5記載の方法。
(8)
前記予測要求が、ユーザノードからの前記複数の計算インスタンスについてのリクエストが受信されると予測されるタイムフレーム、および前記ユーザノードからの前記リクエストに示されると予測される領域をさらに含む、条項7記載の方法。
(9)
前記機械イメージを保存するルートストレージデバイスからの前記機械イメージのキャッシング
前記計算インスタンスの構成に少なくとも部分的に基づく前記機械イメージの構成ファイルの変更、および
前記計算インスタンスの前記構成に少なくとも部分的に基づく前記計算インスタンスへのストレージボリュームの割り当て、に少なくとも部分的に基づいて、前記機械イメージが前記計算ノードにおいて起動するように事前設定された、条項5記載の方法。
(10)
前記計算インスタンスの起動の前記完了が、変更された前記構成ファイルに少なくとも部分的に基づいて、前記計算ノードにおいて前記機械イメージのオペレーティングシステムをブートすることを含む、条項9記載の方法。
(11)
前記計算インスタンスの起動の前記完了が、
前記ユーザノードから前記リクエストを受信する前に、前記計算インスタンスを起動することと、
前記ユーザノードから前記リクエストを受信する前に、前記起動された計算インスタンスをアイドリングすることと、
前記ユーザノードからの前記リクエストの受信に応答して、前記アイドルされた計算インスタンスを起動することと、を含む、条項5記載の方法。
(12)
システムにおいて実行されたときに、前記システムに、
複数の機械イメージに関連する複数の計算インスタンスについての要求を決定させる工程と、
複数の計算ノードにおける前記複数の計算インスタンスの起動に関連する制約に少なくとも部分的に基づいて、前記複数の機械イメージから前記複数の計算インスタンスを起動するように構成された前記複数の計算ノードを決定させる工程と、
前記複数の計算インスタンスのうちの計算インスタンスを起動するためのリクエストをユーザノードから受信する前に、複数のコンピューティングノードにおいて前記複数の機械イメージを構成させる工程と、
前記ユーザノードから前記リクエストを受信した後に、前記複数の計算ノードのうちの1つにおいて前記複数の構成された機械イメージの1つを使用して、特定の計算インスタンスの起動を完了させる工程と、を含む工程を実行させる命令を含む非一時的コンピュータ可読媒体。
(13)
前記複数の計算インスタンスについての前記要求が、前記複数の計算インスタンスを起動するための予測されるリクエストに関連する、条項12記載の非一時的コンピュータ可読媒体。
(14)
前記システムにおいて実行されたときに、前記システムに、
起動されたインスタンスに関連する履歴を解析することによって、複数の計算インスタンスを起動するための前記予測リクエストに関連する複数の設定パラメータを決定させる工程と、
複数の計算ノードのアベイラビリティに少なくとも部分的に基づいて、前記複数の計算ノードにおける前記複数の計算インスタンスの起動に関連する目標を決定させる工程と、
前記目標に少なくとも部分的に基づいて、前記複数の設定パラメータのうちの1つ以上の設定パラメータを含む前記要求を設定させる工程と、を含む工程を実行させる命令をさらに含む、条項13記載の非一時的コンピュータ可読媒体。
(15)
前記複数の設定パラメータが、前記複数の計算インスタンスの数、前記複数の計算インスタンスのタイプ、および前記複数の機械イメージの識別子を含む、条項14記載の非一時的コンピュータ可読媒体。
(16)
前記履歴が複数のユーザノードに関連する前記起動されたインスタンスについてのリクエストに少なくとも部分的に基づき、前記起動されたインスタンスが特定の場所にホストされた、条項14記載の非一時的コンピュータ可読媒体。
(17)
前記制約が、前記複数の計算ノードにおいて利用可能な計算容量に少なくとも部分的に基づく、条項12記載の非一時的コンピュータ可読媒体。
(18)
前記制約が、前記複数の計算ノードのうちのある計算ノードにおいて同時に起動されるように構成された計算インスタンスの数に少なくとも部分的に基づく、条項12記載の非一時的コンピュータ可読媒体。
(19)
前記制約が、ゾーンまたは領域にわたる計算ノードのアベイラビリティに少なくとも部分的に基づく、条項12記載の非一時的コンピュータ可読媒体。
(20)
前記制約が、前記複数の機械イメージのうちの1つに関連するアプリケーションまたはオペレーティングシステムの実行に関連する料金に少なくとも部分的に基づく、条項12記載の非一時的コンピュータ可読媒体。
(21)
前記制約が、前記複数の計算ノードのうちの1つにおける、前記複数の機械イメージのうちの1つからの前記複数の計算インスタンスのうちの1つの起動に関連する料金に少なくとも部分的に基づく、条項12記載の非一時的コンピュータ可読媒体。
(22)
前記制約が、前記複数の計算インスタンスを起動するための前記複数の計算ノードの互換性に少なくとも部分的に基づく、条項12記載の非一時的コンピュータ可読媒体。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ