(57)【特許請求の範囲】
【請求項１】
プロバイダネットワーク内のコンピューティングリソースを割り当てるシステムであって、前記システムは、
それぞれがコンピューティングインスタンスをホスティングするように構成された１つ以上のリソーススロットを含む１つ以上のコンピューティングデバイスと、
コンピュータ可読命令が内部に記憶された少なくとも１つのメモリと、
を具え、
前記コンピュータ可読命令は、前記システムの１つ以上のプロセッサによって実行されると、
複数のリソーススロットを、前記プロバイダネットワークの割り当て方針に従って、第１ユーザに割り当てるステップと、
前記第１ユーザが、前記複数のリソーススロットの少なくとも一部分を第２ユーザに割り当てることを可能にするステップであって、前記第２ユーザは、前記第１のユーザによって確立された割り当て方針に従って、前記割り当てられた一部分にアクセスし、かつ、使用する権限を与えられており、前記第１ユーザによって確立された割り当て方針は、前記プロバイダネットワークの割り当て方針とは異なり、前記プロバイダネットワークは、前記第１ユーザによって確立された割り当て方針によって権限を与えられていない前記第２ユーザからの、前記複数のリソーススロットの前記割り当てられた一部分へアクセスする要求を拒否するように構成されている、ステップと、
前記割り当てられた一部分が、前記第１ユーザによって確立された割り当て方針に従って、前記第２ユーザによってアクセスされている間、前記プロバイダネットワークの割り当て方針に従った、前記複数のリソーススロットの前記第１ユーザへの割り当てを維持するステップと
を前記システムに少なくとも行わせる、システムであって、
前記第１ユーザによって確立された割り当て方針は、
前記第２ユーザが、入札額とリソーススロットに対する要求とを含む入札を提示することを可能にすることと、
前記入札額を、前記第１ユーザによって確立された割り当て方針の設定可能な予定最低価格と比較することと、
前記入札額が前記設定可能な予定最低価格よりも上にある間、１つ以上のリソーススロットを前記第２ユーザに割り当て、前記設定可能な予定最低価格が前記入札額よりも上になったとき、前記１つ以上のリソーススロットを前記第２ユーザに割り当てることを中断することと
を含む、システム。
【請求項２】
前記システムの前記１つ以上のプロセッサによって実行されると、前記第２ユーザが、通知されたリソーススロットに、前記第１ユーザによって確立された割り当て方針に従って入札することを少なくとも可能にすることを前記システムに行わせるコンピュータ可読命令をさらに含む、
請求項１に記載のシステム。
【請求項３】
前記システムの前記１つ以上のプロセッサによって実行されると、前記第２ユーザが、前記通知されたリソーススロットに入札することを可能にするユーザインターフェースを少なくとも提供することを前記システムに行わせるコンピュータ可読命令をさらに含む、
請求項２に記載のシステム。
【請求項４】
前記システムの前記１つ以上のプロセッサによって実行されると、前記通知されたリソーススロット、前記第２ユーザ、および、前記第１ユーザによって確立された割り当て方針の選択を容易にするユーザインターフェースを少なくとも提供することを前記システムに行わせるコンピュータ可読命令をさらに含む、
請求項２に記載のシステム。
【請求項５】
プロバイダネットワーク内のコンピューティングリソースを割り当てる方法であって、
複数のコンピューティングデバイスを含み、前記コンピューティングデバイスの容量が１つ以上のリソーススロットへと論理的に分割されたコンピューティング環境において、前記プロバイダネットワークの割り当て方針に従って、複数のリソーススロットを第１ユーザに関連付けるステップと、
前記第１ユーザが、前記関連付けられたリソーススロットの１つ以上を特定すること、および、前記第１ユーザが、前記関連付けられたリソーススロットの前記１つ以上に、前記第１ユーザによって決定された割り当て方針に従ってアクセス可能な他のユーザを通知すること、を可能にするステップであって、前記第１ユーザによって決定された割り当て方針は、前記プロバイダネットワークの割り当て方針とは異なり、前記プロバイダネットワークは、前記第１ユーザによって決定された割り当て方針によって権限を与えられていない前記他のユーザからの、前記特定されたリソーススロットへアクセスする要求を拒否するように構成されている、ステップと、
を含み、
前記第１ユーザによって決定された割り当て方針は、
前記他のユーザが、入札額とリソーススロットに対する要求とを含む入札を提示することを可能にすることと、
所与の入札額を、前記第１ユーザによって決定された割り当て方針の設定可能な予定最低価格と比較することと、
前記所与の入札額が前記設定可能な予定最低価格よりも上にある間、１つ以上のリソーススロットを前記他のユーザのうちの所与の１人のユーザに割り当て、前記設定可能な予定最低価格が前記所与の入札額よりも上になったとき、前記１つ以上のリソーススロットを前記他のユーザのうちの所与の１人のユーザに割り当てることを中断することと
を含む、方法。
【請求項６】
前記関連付けられたリソーススロットの前記１つ以上、前記関連付けられたリソーススロットの前記１つ以上にアクセス可能な前記他のユーザ、および、前記第１ユーザによって決定された割り当て方針の通知を受け取るように動作可能なユーザインターフェースを提供するステップをさらに含む、
請求項５の方法。
【請求項７】
前記第１ユーザによって決定された割り当て方針は、リソーススロットを取得するのに使用する通貨、最低／最高通貨水準または入札アルゴリズムを示す、
請求項５の方法。
【請求項８】
前記通貨は、金銭単位に関する、請求項７の方法。
【請求項９】
前記通貨は、ＣＰＵサイクル、ストレージ、メモリまたはネットワーク帯域の単位に選択される、請求項７の方法。
【請求項１０】
前記入札は、ＣＰＵサイクルまたはネットワーク帯域の単位に入札するステップを含む、
請求項５の方法。
【請求項１１】
前記関連付けられたリソーススロットの前記１つ以上に前記他のユーザの一部がアクセスすることを拒否することを前記第１ユーザに可能にするステップをさらに含む、
請求項５の方法。
【請求項１２】
前記可能にするステップは、前記関連付けられたリソーススロットの前記１つ以上を割り当てるための要求を受け取るステップと、前記要求を要求識別子に関連付けるステップと、前記関連付けられたリソーススロットの前記１つ以上をプール識別子に関連付けるステップと、を含む、
請求項５の方法。
【請求項１３】
前記関連付けられたリソーススロットの前記１つ以上にアクセスするための課金情報を決定するステップをさらに含む、
請求項５の方法。
【請求項１４】
前記関連付けられたリソーススロットの前記１つ以上の少なくとも１つに、前記第１ユーザによって決定された割り当て方針に従って、前記他のユーザのいずれが入札したかを決定するステップ、および、当該決定するステップに基づいて課金情報を収集するステップをさらに含む、請求項５の方法。
【請求項１５】
前記決定された他のユーザをユーザ識別子に関連付けるステップ、および、前記決定された他のユーザに関連付けられたレコードに前記ユーザ識別子を含めるステップをさらに含む、請求項１４の方法。
【請求項１６】
前記レコードは、キー値の組み合わせとして作成されている、請求項１５の方法。
【請求項１７】
前記入札は、前記関連付けられたリソーススロットの１つ以上に支払われるべき最高価格を含む、請求項５の方法。
【請求項１８】
前記最高価格が所定の価格を超えたときに、前記関連付けられたリソーススロットの１つ以上のうちの１つが、前記他のユーザのうちの１人に割り当てられる、請求項１７の方法。
【請求項１９】
前記所定の価格は、前記関連付けられたリソーススロットの１つ以上の需要と供給とに基づいている、請求項１８の方法。
【請求項２０】
前記所定の価格は前記第１ユーザによって選択可能である、請求項１９の方法。
【請求項２１】
コンピュータ可読命令が記憶された非一時的コンピュータ可読記憶媒体であって、前記コンピュータ可読命令は、１つ以上のコンピューティングデバイス上で実行されると、
複数のコンピューティングデバイスを含み、前記コンピューティングデバイスの容量が１つ以上のリソーススロットへと論理的に分割されたコンピューティング環境において、ユーザが、前記ユーザに関連付けられた１つ以上のリソーススロットを特定すること、および、前記ユーザが、前記ユーザに関連付けられた前記１つ以上のリソーススロットに、前記ユーザによって決定された割り当て方針に従ってアクセス可能な他のユーザを選択すること、を可能にするインターフェースを生成するステップであって、プロバイダネットワークは、前記ユーザによって決定された割り当て方針によって権限を与えられていない前記他のユーザからの、前記特定されたリソーススロットへアクセスする要求を拒否するように構成されている、ステップと、
前記他のユーザが、前記ユーザに関連付けられた前記１つ以上のリソーススロットを、前記ユーザによって決定された割り当て方針に従って要求することを少なくとも可能にすることを前記コンピューティング環境に行わせるステップと
を少なくとも行わせる命令を含み、
前記ユーザによって決定された割り当て方針は、
前記他のユーザが、入札額とリソーススロットに対する要求とを含む入札を提示することを可能にすることと、
所与の入札額を、前記ユーザによって決定された割り当て方針の設定可能な予定最低価格と比較することと、
前記所与の入札額が前記設定可能な予定最低価格よりも上にある間、１つ以上のリソーススロットを前記他のユーザのうちの所与の１人のユーザに割り当て、前記設定可能な予定最低価格が前記所与の入札額よりも上になったときに、前記１つ以上のリソーススロットを前記他のユーザのうちの所与の１人のユーザに条件付きで割り当てることを中断することと
を含む、非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記ユーザによって決定された割り当て方針は、リソーススロットを取得するのに使用する通貨、価格水準または入札アルゴリズムを含む、請求項２１の非一時的コンピュータ可読記憶媒体。
【請求項２３】
前記入札アルゴリズムは、競り上げ式オークションおよび競り下げ式オークションのうちの一方を含む、請求項２２の非一時的コンピュータ可読記憶媒体。
【請求項２４】
１つ以上のコンピューティングデバイス上で実行されると、前記ユーザに関連付けられた前記１つ以上のリソーススロットに前記他のユーザが入札することを可能にするための課金情報を決定するステップを少なくとも行わせる命令を含む、請求項２１の非一時的コンピュータ可読記憶媒体。
【請求項２５】
１つ以上のコンピューティングデバイス上で実行されると、前記ユーザに関連付けられた前記１つ以上のリソーススロットの１つ以上に、前記ユーザによって決定された割り当て方針に従って、前記他のユーザのいずれが入札したかを決定するステップ、および、前記決定された他のユーザに基づいて課金情報を決定するステップを少なくとも行わせる命令を含む、請求項２４の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[0001]本出願は、２０１３年４月２日に出願された米国特許出願第１３／８５５，４４９号、２０１３年４月２日に出願された米国特許出願第１３／８５５，４９８号および２０１３年４月２日に出願された米国特許出願第１３／８５５，５１８号の利点を主張するものであり、ここに本明細書の一部を構成するものとして、これらの開示全体を援用する。
【背景技術】
【０００２】
[0002]データセンターは、コンピュータシステム、並びに様々なネットワーキング要素、ストレージ要素およびその他の関連要素を収容する設備である。データセンターは、例えば、企業や個人に対し、コンピューティングサービスを遠隔コンピューティングサービスとして提供し、あるいは「サービスとしてのソフトウェア（ｓｏｆｔｗａｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅ）」（例えば、クラウドコンピューティング）を提供し得る。データセンターのリソースの利用を促進するため、仮想化技術によって１つの物理コンピューティングマシンに仮想マシンの１つ以上のインスタンスをホスティングさせることが可能であるが、これらの仮想マシンは、接続されたコンピュータのユーザにとっては見かけ上独立したコンピュータマシンとして動作する。仮想化により、１つの物理コンピューティングデバイスは、動的に仮想マシンを作成、維持または削除することができる。
【０００３】
[0003]一部の仮想化技術では、２つ以上の物理リソースにわたる仮想リソース（複数の別個の物理コンピューティングシステムにわたる複数の仮想プロセッサを備えた単一の仮想マシンなど）を提供することができる。別の実施例では、仮想化技術を用いて、複数のデータストレージデバイス全体にわたって分散し得る仮想データ記憶装置を各ユーザに提供することにより、データストレージ用ハードウェアを複数のユーザ間で共有させるようにしてもよい。このとき、こうした仮想データ記憶装置は、それぞれ別個の論理データ記憶装置として機能しており、ユーザに対し、自身が当該データストレージリソースの唯一のオペレータかつ管理者であるように錯覚させる。
【０００４】
[0004]多くの環境では、各種の仮想化コンピューティングリソース、ストレージリソースおよび／または他のネットワークアクセス可能なリソースを実装するデータセンターの事業者は、様々なリソース取得モードでリソースへのアクセスを顧客に予約または購入させることができる。コンピューティングリソースの提供者が顧客に設備を提供することにより、顧客は、所望のコンピューティングリソースを選択して起動し、そのコンピューティングリソースにアプリケーションコンポーネントを展開し、当該環境でアプリケーションの実行を維持し得る。加えて、コンピューティングリソースの提供者が顧客に設備をさらに提供することにより、アプリケーションに対する需要または容量の要求が変化するにつれて、顧客は、手動で、または自動スケーリングによって、アプリケーションに割り当てられたリソースの数およびタイプを迅速かつ容易にスケールアップまたはスケールダウンし得る。コンピューティングリソースの提供者によって提供されるコンピューティングリソースは、個別のユニット（インスタンスと呼ぶこともある）において利用可能となり得る。インスタンスは、物理的なサーバハードウェアプラットフォーム上で、仮想マシン内で、または両者の何らかの組み合わせにおいて直接実行され得る。様々なタイプおよび構成のインスタンスは、種々のオペレーティングシステム（ＯＳ）および／またはハイパーバイザを実行する種々のサイズのリソースを含んでおり、様々なインストール済みソフトウェアアプリケーション、ランタイムなどと共に利用可能となり得る。
【０００５】
[0005]図面全体で、参照番号は、参照された要素間の対応を示すために再使用され得る。図面は、本明細書で説明される例示的な実施形態を図示するために提供されるが、本開示の範囲を限定することを意図したものではない。
【図面の簡単な説明】
【０００６】
【図１】本開示に係るインスタンスをプーリングするメカニズムを示す図である。
【図２】ある実施形態で使用され得る例示的なコンピューティングシステムを示す図である。
【図３】ある実施形態で使用され得る例示的なコンピューティングシステムを示す図である。
【図４】本開示に係るインスタンスをプーリングするシステムを示す図である。
【図５】本開示に係るインスタンスをプーリングするメカニズムを示す図である。
【図６】本開示に係るインスタンスをプーリングするシステムを示す図である。
【図７】本開示に係るインスタンスをプーリングするシステムを示す図である。
【図８】本開示に係る容量をバースティングするシステムを示す図である。
【図９】本開示に係るインスタンスをプーリングするシステムを示す図である。
【図１０】本開示に係る例示的なユーザインターフェースを示す図である。
【図１１】本開示に係る例示的なユーザインターフェースを示す図である。
【図１２】本開示に係る例示的なデータレコードを示す図である。
【図１３】本開示に係るインスタンスをプーリングする例示的な手順を記述するフローチャートである。
【図１４】本開示に係るインスタンスをプーリングする例示的な手順を記述するフローチャートである。
【図１５】本開示に係るインスタンスをプーリングする例示的な手順を記述するフローチャートである。
【発明を実施するための形態】
【０００７】
[0021]プロバイダネットワーク（１つ以上のデータセンターにわたって実装されたネットワークなど）は、リザーブドインスタンスおよびスポットインスタンスなどのコンピューティングリソースを提供し得る。リザーブドインスタンスは、特定のタイプおよび構成のインスタンスをいくつか一定期間（１年または３年など）予約する機能を顧客に提供し得る。スポットインスタンスは、スポット価格方式を利用してインスタンスの割り当てを参照し得る。この価格方式では、顧客は、インスタンスを実行するのに支払う意思がある単位時間当たりの最高価格を指定することができる。少なくとも部分的には需要と供給によって決定される動的なスポット価格を顧客の最高価格が超えた場合、その顧客向けにインスタンスが実行され得る。なお、プロバイダネットワークによって他のタイプのインスタンスを提供してもよい。
【０００８】
[0022]本開示でさらに説明される様々な実施形態では、プライベートマーケットプレイスを作成する機能が顧客に提供され得る。このプライベートマーケットプレイスを運用することにより、入札方式または価格設定方式（場合によっては、スポットインスタンス方式と同様となり得る）に従って、選択されたグループのユーザに顧客定義の一式の顧客インスタンスを提供する。例えば、大学などの組織は、一式のリザーブドインスタンスを有し得る。これらのリザーブドインスタンスはプライベートマーケットプレイス経由で提供され、それによってユーザはこれらのリザーブドインスタンスに入札することができる。本実施例では、上記大学は、顧客定義の一式のインスタンスを大学内の各学部に提供してよい。学部内の個人またはコンピュータは、リザーブドインスタンスに対して内部的に入札することができる。一実施例では、この学部は、入札価格を決定することができ、または一式の「通貨」もしくは入札クレジットを定義して使用することができる。通貨または入札クレジットの他に、最低価格または最高価格、入札／価格設定アルゴリズム、中断サイクル、および各リソースタイプ（スポットインスタンスなど）に適用可能となり得る他のパラメータなどの態様を大学が変更できるようにしてもよい。プライベートマーケットプレイスに対して他のタイプのインスタンスを大学が選択できるようにしてもよい。このようなインスタンスとしては、割り当て済みのスポットインスタンスおよびオンデマンドインスタンス（以下でさらに説明する）などがある。プライベートマーケットプレイスを作成する機能を提供することにより、顧客は、自らのコンピューティング容量を自身の内部ユーザにより効率良く分散させることができる。これにより、容量を上記のように分散させると、予約済み容量をそれほど多く必要としないような顧客のコストを低減させることができ、それと共に、プロバイダネットワーク自体の予備容量の利用を増やすことができる。プライベートマーケットプレイスの別の実施形態については、以下でさらに説明する。本明細書で説明される様々な実施形態では、プライベートマーケットプレイスは、プライベートマーケットプレイス、限定マーケットプレイス、ユーザ定義プール、ユーザ定義マーケット、プライベートスポットマーケットまたはユーザ定義スポットマーケットと呼ばれることがある。
【０００９】
[0023]図１は、本開示に係るユーザ定義プールを提供するメカニズムを含むシステム１００を示す図である。図１では、システム１００は、リザーブド仮想マシンインスタンス１１０、オンデマンド仮想マシンインスタンス１１５およびスポット仮想マシンインスタンス１２０を含み得る。これらのインスタンスは、例えば、１つ以上のサーバコンピュータ１３０、１３５および１４０上でそれぞれ実行され得る。なお、ある実施形態は、別のサーバコンピュータでインスタンス化され得る様々なタイプの別の仮想マシンインスタンスを含み得ることが理解されよう。
【００１０】
[0024]図１は、１つ以上のコンピュータ（コンピュータ１６０および１７０など）を含み得る公共ネットワーク１５０も示している。一実施形態によれば、インスタンス１１０、１１５および１２０は、公共ネットワーク１５０のコンピュータユーザ（図示せず）にコンピューティングサービスをゲートウェイ１９０並びにコンピュータ１６０および１７０を経由して提供するように構成され得る。例えば、リザーブド仮想マシンインスタンス１１０は、リモートアクセス型の企業向けアプリケーション一式をユーザ（例えば、大学または他の教育機関の従業員であり得る）のグループに提供し得る。
【００１１】
[0025]コンピュータ１６０または１７０のユーザは、ユーザ定義プール生成サービス１８０に、ユーザ定義プールまたはプライベートマーケットプレイスの作成を求める要求を送ってよい。ある実施形態では、サーバ１３０または１４０が、ユーザに代わって当該サーバのため、または他のサーバのために要求を送ってよい。インスタンスを求める要求に応答して、ユーザ定義プール生成サービス１８０は、その要求をログに記録し、当該要求の状態に応じて周期的に更新を行ってよい。ユーザ定義プール生成サービス１８０は、他のサービスと通信することにより、要求されたプライベートマーケットプレイスの作成を容易にし得る。ユーザ定義プール生成サービス１８０は、例えば、どのインスタンスがユーザに関連付けられているかを判定し得ると共に、ユーザが自身のインスタンスを選択し、選択されたインスタンスに対して誰が要求または入札し得るかを選択し、入札方式または価格設定方式を選択することを容易にするインターフェースを提供し得る。さらに、ユーザ定義プール生成サービス１８０は、プライベートマーケットプレイスがオンラインになったときにユーザに通知を送ってよい。
【００１２】
[0026]以下、この開示の様々な態様について、ある実施例および実施形態に関して説明を行うが、これらは例示を意図したものであり、開示を限定することを意図したものではない。本明細書に提示された要旨は、コンピュータプロセス、コンピュータ制御装置もしくはコンピューティングシステムまたはコンピュータ可読記憶媒体などの製造品として実装され得ることを理解すべきである。本明細書で説明された要旨は、１つ以上のコンピューティングデバイスで実行されるプログラムモジュールとの一般的な関連において提示されるが、当業者は、他の種類のプログラムモジュールと組み合わせて他の実施態様を実施し得ることを理解するであろう。一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実行し、または特定の抽象データ型を実装する他の種類の構造を含む。
【００１３】
[0027]当業者は、本明細書で説明されたもの以外にも、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ、ハンドヘルドコンピュータ、パーソナルデジタルアシスタント、電子書籍リーダー、携帯電話デバイス、専用ハードウェア装置、ネットワークアプライアンスなどを含む他のコンピュータシステム構成で、またはそれと組み合わせて本明細書で説明された主題を実施し得ることも理解するであろう。本明細書に説明された発明の実施形態は、分散コンピューティング環境で実施されてもよく、その場合には、通信ネットワークを介して接続されたリモートの処理デバイスによってタスクが実行される。分散コンピューティング環境では、ローカルおよびリモートのメモリストレージデバイスのいずれにもプログラムモジュールを配置してよい。
【００１４】
[0028]以下の詳細な説明では、本明細書の一部をなし、一例として特定の実施形態または実施例を示す添付図面を参照する。本明細書の図面は、縮尺に合わせて描かれたものではない。同一番号は、いくつかの図面全体にわたって同じ要素を表す。
【００１５】
[0029]インターネットおよび／または他のネットワークを経由して分散された一連のクライアントにアクセス可能な１つ以上のサービス（様々な種類のクラウドベースのコンピューティングまたはストレージなど）を提供するために企業または組織などのエンティティにより、またはそれに代わって確立されたネットワークは、プロバイダネットワークと呼ばれることがある。このようなプロバイダネットワークは、様々なリソースプール（物理コンピュータサーバおよび／または仮想化コンピュータサーバ、ストレージデバイス、ネットワーク機器並びに同種のものの集合など）をホスティングする１つ以上のデータセンターを含み得る。このようなデータセンターは、プロバイダネットワークによって提供される基盤およびサービスを実装および分散するのに使用され得る。これらのリソースは、ある実施形態では、「インスタンス」（仮想的または物理的なコンピューティングインスタンスまたはストレージインスタンスなど）と呼ばれる単位でクライアントに提供され得る。仮想コンピューティングインスタンスは、例えば、指定された演算能力を有する１つ以上のサーバ（このサーバは、ＣＰＵの種類および数、主記憶サイズなどを示すことによって指定され得る）、並びに特定のソフトウェアスタック（例えば、特定バージョンのオペレーティングシステムであり、このシステムはハイパーバイザの上で動作し得る）を備えてよい。
【００１６】
[0030]いくつかの異なる種類のコンピューティングデバイスを単独でまたは組み合わせて使用することにより、汎用または専用コンピュータサーバ、ストレージデバイス、ネットワークデバイスなどを含む、種々の実施形態におけるプロバイダネットワークのリソースを実装してよい。ある実施形態では、例えば、管理者のログインおよびパスワードをユーザに与えることにより、クライアントまたはユーザをリソースインスタンスに直接アクセスさせるようにしてよい。他の実施形態では、プロバイダネットワークの事業者は、特定のクライアントアプリケーションについて、それらのアプリケーションに適した実行プラットフォーム上のクライアントのため、当該アプリケーションの実行要件およびそれらのアプリケーションのスケジュール実行をそのクライアントが指定することを認めてよい。なお、このような実行プラットフォームとしては、アプリケーションサーバインスタンス、Ｊａｖａ（商標）仮想マシン（Ｊａｖａ  ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ：ＪＶＭ）、汎用もしくは専用オペレーティングシステム、様々なインタープリタ方式もしくはコンパイラ方式のプログラミング言語（Ｒｕｂｙ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、Ｃ、Ｃ＋＋など）をサポートするプラットフォームまたは高性能コンピューティングプラットフォームなどがある。上記は、例えば、インスタンスまたは実行プラットフォームにクライアントが直接アクセスせずに行われ得る。ある実施態様では、所与の実行プラットフォームが１つ以上のリソースインスタンスを利用してよく、他の実施態様では、１つのリソースインスタンスに複数の実行プラットフォームをマッピングさせてよい。
【００１７】
[0031]図２は、本明細書で説明された実施形態を実施し得る例示的なコンピューティング環境を示す図である。図２は、データセンター２１０の一実施例を概略的に示す図である。このデータセンターは、ユーザ２００ａおよび２００ｂ（本明細書においてこれらは、単数形で「ユーザ２００（ａ  ｕｓｅｒ  ２００）」、または複数形で「ユーザ２００（ｔｈｅ  ｕｓｅｒｓ  ２００）」と呼ばれることがある）に、ユーザコンピュータ２０２ａおよび２０２ｂ（本明細書においてこれらは、単数形で「コンピュータ２０２（ａ  ｃｏｍｐｕｔｅｒ  ２０２）」、または複数形で「コンピュータ２０２（ｔｈｅ  ｃｏｍｐｕｔｅｒｓ  ２０２）」と呼ばれることがある）を介して通信ネットワーク２３０経由でコンピューティングリソースを提供することができる。データセンター２１０は、常時または必要に応じてアプリケーションを実行するコンピューティングリソースを提供するように構成され得る。データセンター２１０によって提供されるコンピューティングリソースは、様々なタイプのリソース（データ処理リソース、データストレージリソース、データ通信リソースなど）を含み得る。各タイプのコンピューティングリソースは、汎用であってよく、あるいはいくつかの特定構成において利用可能であってよい。例えば、データ処理リソースは、仮想マシンインスタンスとして利用可能であってよい。これらの各インスタンスは、Ｗｅｂサーバ、アプリケーションサーバ、メディアサーバ、データベースサーバなどを含むアプリケーションを実行するように構成され得る。データストレージリソースは、ファイルストレージデバイス、ブロックストレージデバイスなどを含み得る。
【００１８】
[0032]各タイプまたは各構成のコンピューティングリソースは、種々のサイズ（多数のプロセッサ、大量のメモリおよび／または大きなストレージ容量からなる大規模なリソース、並びに少数のプロセッサ、少量のメモリおよび／または小さなストレージ容量からなる小規模なリソースなど）において利用可能であってよい。顧客は、例えば、いくつかの小さな処理リソースをＷｅｂサーバとして割り当て、かつ／または大きな処理リソースをデータベースサーバとして割り当てるように選択してよい。
【００１９】
[0033]データセンター２１０は、サーバ２１６ａおよび２１６ｂ（本明細書においてこれらは、単数形で「サーバ２１６（ａ  ｓｅｒｖｅｒ  ２１６）」、または複数形で「サーバ２１６（ｔｈｅ  ｓｅｒｖｅｒｓ  ２１６）」と呼ばれることがある）を含み得る。これらのサーバは、仮想マシンインスタンス２１８ａおよび２１８ｂ（本明細書においてこれらは、単数形で「仮想マシンインスタンス２１８（ａ  ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ  ｉｎｓｔａｎｃｅ  ２１８）」、または複数形で「仮想マシンインスタンス２１８（ｔｈｅ  ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ  ｉｎｓｔａｎｃｅｓ  ２１８）」と呼ばれることがある）として利用可能なコンピューティングリソースを提供する。仮想マシンインスタンス２１８は、Ｗｅｂサーバ、アプリケーションサーバ、メディアサーバ、データベースサーバなどを含むアプリケーションを実行するように構成され得る。提供され得る他のリソースにはデータストレージリソース（図示せず）が含まれ、さらに、ファイルストレージデバイス、ブロックストレージデバイスなどが含まれ得る。
【００２０】
[0034]コンピューティングハードウェアの仮想化技術を利用できることにより、大規模なコンピューティングリソースが顧客に提供され、複数の顧客間で効率良くかつ安全にコンピューティングリソースを共有できる利点が提供されてきた。例えば、仮想化技術（ＶＭｗａｒｅまたは他の仮想化システムによって提供されるものなど）では、物理コンピューティングデバイスによってホスティングされた１つ以上の仮想マシンインスタンスを各ユーザに提供することにより、物理コンピューティングデバイスを複数ユーザ間で共有させることが可能となる。仮想マシンインスタンスは、別個の論理コンピューティングシステムとして機能する特定の物理コンピューティングシステムをソフトウェアエミュレーションしてよい。こうした仮想マシンインスタンスにより、所与の物理コンピューティングリソースを共有する複数のオペレーティングシステム間が隔離される。さらに、一部の仮想化技術は、１つ以上の物理リソースにわたる仮想リソース（複数の別個の物理コンピューティングシステムにわたる複数の仮想プロセッサを備えた１つの仮想マシンインスタンスなど）を提供し得る。
【００２１】
[0035]図２を参照すると、通信ネットワーク２３０は、例えば、互いに接続されたネットワークで構成される公にアクセス可能なネットワーク（インターネットなど）であってよく、場合によっては様々な個別の当事者によって運用され得る。他の実施形態では、通信ネットワーク２３０は、プライベートネットワーク（例えば、非特権ユーザにとって完全にまたは部分的にアクセスできない企業または大学のネットワーク）であってよい。なお他の実施形態では、通信ネットワーク２３０は、インターネットにアクセスし、かつ／またはインターネットからアクセスを受ける１つ以上のプライベートネットワークを含み得る。
【００２２】
[0036]通信ネットワーク２３０は、コンピュータ２０２へのアクセスを提供し得る。コンピュータ２０２は、データセンター２１０の顧客２００または他の顧客によって利用されるコンピュータであってよい。例えば、ユーザコンピュータ２０２ａまたは２０２ｂは、サーバ、デスクトップ型もしくはラップトップ型コンピュータ、タブレット型コンピュータ、無線電話、携帯情報端末（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ：ＰＤＡ）、電子書籍リーダー、ゲーム機、セットトップボックス、またはデータセンター２１０にアクセス可能な他のコンピューティングデバイスであってよい。ユーザコンピュータ２０２ａまたは２０２ｂは、（例えば、ケーブルモデムまたはデジタル加入者線（Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ：ＤＳＬ）を経由して）インターネットに直接接続し得る。なお、２つのユーザコンピュータ２０２ａおよび２０２ｂのみを図示しているが、複数のユーザコンピュータが存在し得ることを理解すべきである。
【００２３】
[0037]コンピュータ２０２を利用して、データセンター２１０によって提供されたコンピューティングリソースの各態様を設定してもよい。その際、データセンター２１０はＷｅｂインターフェースを提供する場合があるが、それを介し、ユーザコンピュータ２０２上で実行されるＷｅｂブラウザ用アプリケーションプログラムを使用することによって当該データセンターの運用の態様が設定され得る。あるいは、ユーザコンピュータ２０２上で実行されるスタンドアローンのアプリケーションプログラムが、データセンター２１０によって公開されているアプリケーションプログラミングインターフェース（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ：ＡＰＩ）にアクセスして設定動作を行うようにしてもよい。なお、データセンター２１０の運用を設定するための他のメカニズム（アプリケーションに対する更新を配布することを含む）を利用する場合もある。
【００２４】
[0038]図２に示すサーバ２１６ａおよび２１６ｂは、上述したコンピューティングリソースを提供するように適切に構成された標準的なサーバであってよく、１つ以上のアプリケーションを実行するコンピューティングリソースを提供し得る。一実施形態では、コンピューティングリソースは仮想マシンインスタンス２１８であってよい。仮想マシンインスタンスの実施例では、それぞれのサーバ２１６は、仮想マシンインスタンスを実行可能なインスタンスマネージャ２２０ａまたは２２０ｂ（本明細書においてこれらは、単数形で「インスタンスマネージャ２２０（ａｎ  ｉｎｓｔａｎｃｅ  ｍａｎａｇｅｒ  ２２０）」、または複数形で「インスタンスマネージャ２２０（ｔｈｅ  ｉｎｓｔａｎｃｅ  ｍａｎａｇｅｒｓ  ２２０）」と呼ばれることがある）を実行するように構成され得る。インスタンスマネージャ２２０は、例えば、仮想マシンモニタ（ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ  ｍｏｎｉｔｏｒ：ＶＭＭ）、またはサーバ２１６上で仮想マシンインスタンス２１８を実行できるように構成された別の種類のプログラムであってよい。前述のように、それぞれの仮想マシンインスタンス２１８は、アプリケーションの全てまたは一部を実行するように構成され得る。
【００２５】
[0039]上記に開示された実施形態では仮想マシンインスタンスとの関連について述べているが、本明細書に開示された概念および技術と共に他の種類の実施態様を利用可能であることを理解すべきである。例えば、仮想マシンインスタンスを利用しないコンピューティングシステムと共に本明細書に開示された実施形態を利用してもよい。
【００２６】
[0040]図２に示す例示的なデータセンター２１０では、ルータ２１４を利用してサーバ２１６ａとサーバ２１６ｂを相互接続してよい。通信ネットワーク２３０に接続されているゲートウェイ２４０にルータ２１４を接続してもよい。ルータ２１４は、データセンター２１０におけるネットワーク内の通信を、例えば、こうした通信の特徴（例えば、送信元アドレスおよび／もしくは宛先アドレスを含むヘッダ情報、プロトコル識別子など）並びに／またはプライベートネットワークの特徴（例えば、ネットワークトポロジーに基づく経路など）に基づいて適切となるようにパケットまたは他のデータ通信を転送することによって管理し得る。簡単にするため、本実施例におけるコンピューティングシステムおよび他のデバイスの様々な態様は、従来の詳細事項をある程度示さずに説明されていることが理解されよう。別のコンピューティングシステムおよび他のデバイスを他の実施形態において相互接続してよく、その際には様々な方法を用いて相互接続してよい。
【００２７】
[0041]図２に示したネットワークトポロジーは、非常に簡易化されたものであり、これよりも多数のネットワークおよびネットワークデバイスを利用して、本明細書に開示された様々なコンピューティングシステムを相互接続してよいことを理解すべきである。これらのネットワークトポロジーおよびネットワークデバイスは、当業者にとって明らかのはずである。
【００２８】
[0042]図２で説明されたデータセンター２１０は、単に例示的なものであり、他の実施態様を利用してよいことも理解すべきである。さらに、ソフトウェア、ハードウェアまたはソフトウェアとハードウェアの組み合わせを用いて本明細書に開示された機能を実装してよいことを理解すべきである。他の実施態様は、当業者にとって明らかのはずである。サーバ、ゲートウェイまたは他のコンピューティングデバイスは、相互に影響し合い、説明された種類の機能を実行することができるハードウェアまたはソフトウェアを任意に組み合わせたものとして、デスクトップまたは他のコンピュータ、データベースサーバ、ネットワークストレージデバイスおよび他のネットワークデバイス、ＰＤＡ、タブレット、携帯電話、無線電話、ポケットベル、電子手帳、インターネット家電、（例えば、セットトップボックスおよび／またはパーソナル／デジタルビデオレコーダーを用いた）テレビジョンベースのシステム並びに適切な通信能力を備えた様々な他の民生機器などを含み得るが、それらに限定されないことも理解すべきである。加えて、ある実施形態では、例示したモジュールによって提供される機能をより少ないモジュールに統合してよく、あるいは別のモジュールに分散させてよい。同様に、ある実施形態では、例示したモジュールの一部の機能を提供しなくてよく、かつ／または他の追加機能を利用可能としてよい。
【００２９】
[0043]ところで、データセンター２１０によって提供される購入済みのコンピューティングリソースの能力は、需要に応じて増減させることができる。その際、スケーリングとは、需要に応じてコンピューティングリソースのインスタンスをインスタンス化し（本明細書では「起動する」もしくは「作成する」と呼ぶこともある）、または終了させる（本明細書では「デスケーリングする」と呼ぶこともある）プロセスを指す。このように、データセンター２１０の顧客によって購入されたリソースの能力をオンデマンドで増減させることができる。
【００３０】
[0044]自動スケーリングは、リソースに対する需要が増加するか後退するかに応じてコンピューティングリソースを増減させる１つのメカニズムである。自動スケーリングにより、データセンター２１０の顧客は、自身が購入したコンピューティングリソースを顧客によって定義される状況に従って増減させるようにデータセンター２１０の設定を行うことができる。例えば、特定の状況（需要の急増など）が発生したことに応じて、ある特定の方法で容量をスケールアップするようにルールを定義してよい。同様に、他の状況（需要の後退など）が発生したことに応じて、ある特定の方法で容量をスケールダウンするようにルールを定義してもよい。仮想マシンインスタンスを起動するための本明細書に開示されたメカニズムは、顧客によってインスタンスが手動で起動されるとき、またはデータセンター２１０内の自動スケーリング要素によってインスタンスが起動されるときに利用され得る。
【００３１】
[0045]データセンター２１０は、コンピューティングリソースの新規インスタンスを展開する際に顧客を支援する展開コンポーネントを用いて設定されてもよい。この展開コンポーネントは、新規インスタンスをどのように設定するかを記述したデータを含む設定を顧客から受領し得る。例えば、この設定では、新規インスタンスにインストールすべき１つ以上のアプリケーションまたはソフトウェアコンポーネントが指定され、新規インスタンスで実行すべきスクリプトおよび／または他の種類のコードが提供され、アプリケーションキャッシュをどのように用意すべきかを指定するキャッシュウォーミングロジックおよび他の種類の情報が提供され得る。展開コンポーネントは、顧客によって提供された設定およびキャッシュウォーミングロジックを利用することにより、コンピューティングリソースの新規インスタンスの起動、設定および準備を行う。
【００３２】
[0046]少なくともある実施形態では、本明細書で説明された１つ以上の技術（プール生成サービス１８０の機能を実装する技術を含む）の一部または全てを実装するサーバは、１つ以上のコンピュータアクセス可能な媒体を備え、またはこれにアクセスするように構成された汎用コンピュータシステムを含み得る。図３は、このような汎用のコンピューティングデバイス３００を示す図である。例示した実施形態では、コンピューティングデバイス３００は、入出力（Ｉ／Ｏ）インターフェース３３０を介してシステムメモリ３２０に接続された１つ以上のプロセッサ３１０ａ、３１０ｂおよび／または３１０ｎ（本明細書においてこれらは、単数形で「プロセッサ３１０（ａ  ｐｒｏｃｅｓｓｏｒ  ３１０）」、または複数形で「プロセッサ３１０（ｔｈｅ  ｐｒｏｃｅｓｓｏｒｓ  ３１０）」と呼ばれることがある）を備える。コンピューティングデバイス３００は、Ｉ／Ｏインターフェース３３０に接続されたネットワークインターフェース３４０をさらに備える。
【００３３】
[0047]様々な実施形態では、コンピューティングデバイス３００は、１つのプロセッサ３１０を含むユニプロセッサシステム、またはいくつかのプロセッサ３１０（例えば、２個、４個、８個もしくは他の適切な数）を含むマルチプロセッサシステムであってよい。プロセッサ３１０は、命令を実行可能な任意の適切なプロセッサであってよい。例えば、様々な実施形態では、プロセッサ３１０は、種々の命令セットアーキテクチャ（ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ａｒｃｈｉｔｅｃｔｕｒｅｓ：ＩＳＡ）のいずれかを実装する汎用プロセッサまたは組み込みプロセッサ（ｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣもしくはＭＩＰＳのＩＳＡまたはその他の適切なＩＳＡなど）であってよい。マルチプロセッサシステムでは、それぞれのプロセッサ３１０は、通常は同じＩＳＡを実装し得るが、必ずしもそのように実装されるとは限らない。
【００３４】
[0048]システムメモリ３２０は、プロセッサ３１０（単数または複数）によってアクセス可能な命令およびデータを記憶するように構成され得る。種々な実施形態では、システムメモリ３２０は、ＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＳＤＲＡＭ（ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ＲＡＭ）、不揮発／Ｆｌａｓｈ（商標）型メモリまたはその他の種類のメモリといった任意の適切なメモリ技術を用いて実装され得る。例示した実施形態では、１つ以上の所望の機能（上述した方法、技術およびデータなど）を実装するプログラム命令およびデータは、システムメモリ３２０内にコード３２５およびデータ３２６として記憶されているように示されている。
【００３５】
[0049]一実施形態では、Ｉ／Ｏインターフェース３３０は、プロセッサ３１０、システムメモリ３２０およびこの装置内の任意の周辺デバイス（ネットワークインターフェース３４０または他の周辺インターフェースを含む）の間のＩ／Ｏトラフィックを調整するように構成され得る。ある実施形態では、Ｉ／Ｏインターフェース３３０は、任意の必要なプロトコル変換、タイミング変換または他のデータの変換を実行することにより、ある構成要素（例えば、システムメモリ３２０）からのデータ信号を別の構成要素（例えば、プロセッサ３１０）での使用に適した形式に変換し得る。ある実施形態では、Ｉ／Ｏインターフェース３３０は、例えば、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス標準規格またはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）標準規格を変型したものなどの様々な種類の周辺バスを介して接続されたデバイスにも対応し得る。ある実施形態では、Ｉ／Ｏインターフェース３３０の機能は、例えば、２つ以上の別々の構成要素（ノースブリッジおよびサウスブリッジなど）に分割され得る。また、ある実施形態では、Ｉ／Ｏインターフェース３３０の機能の一部または全て（システムメモリ３２０とのインターフェースなど）をプロセッサ３１０に直接組み込んでもよい。
【００３６】
[0050]ネットワークインターフェース３４０は、例えば、コンピューティングデバイス３００と、１つ以上のネットワーク３５０に接続された他の１つ以上のデバイス３６０（図１から３に示したような他のコンピュータシステムまたはデバイスなど）との間でデータを交換することができるように構成され得る。様々な実施形態では、ネットワークインターフェース３４０は、例えば、任意の適切な有線または無線の一般的なデータネットワーク（各種のイーサネットネットワークなど）を経由した通信に対応し得る。さらに、ネットワークインターフェース３４０は、遠距離通信ネットワーク／電話網（アナログ音声ネットワークもしくはデジタル光ファイバー通信ネットワークなど）、ファイバーチャネルＳＡＮなどのストレージエリアネットワーク、またはその他の適切な種類のネットワークおよび／もしくはプロトコルを経由した通信に対応し得る。
【００３７】
[0051]ある実施形態では、システムメモリ３２０は、対応する方法および装置の実施形態を実装すべく図１および２に関して上述したプログラム命令およびデータを記憶するように構成されたコンピュータアクセス可能な媒体の一実施形態であってよい。しかしながら、他の実施形態では、プログラム命令および／またはデータを各種のコンピュータアクセス可能な媒体から受け取り、そこに送り、あるいはそこに記憶してよい。一般的に言えば、コンピュータアクセス可能な媒体は、非一時的な記憶媒体またはメモリ媒体を含み得る。このような媒体としては、磁気媒体または光学媒体（例えば、Ｉ／Ｏインターフェース３３０を介してコンピューティングデバイス３００に接続されたディスクまたはＤＶＤ／ＣＤ）などがある。非一時的なコンピュータアクセス可能な記憶媒体は、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどの任意の揮発性または不揮発性媒体も含み得る。このような媒体は、コンピューティングデバイス３００のある実施形態では、システムメモリ３２０または別の種類のメモリとして含まれ得る。さらに、コンピュータアクセス可能な媒体は、通信媒体（ネットワークインターフェース３４０を介して実装され得るようなネットワークおよび／または無線接続など）を経由して伝達される伝送媒体または伝送信号（電気信号、電磁信号またはデジタル信号など）を含み得る。複数のコンピューティングデバイス（図３に示したものなど）の一部または全てを使用して、様々な実施形態において説明された機能を実装してよい。例えば、種々の異なるデバイスおよびサーバ上で動作するソフトウェアコンポーネントを連携させることによってその機能を提供してよい。ある実施形態では、汎用コンピュータシステムを用いて実装するのに加えて（またはその代わりに）、ストレージデバイス、ネットワークデバイスまたは専用コンピュータシステムを用いて、説明された機能の一部を実装してよい。本明細書中用いられる「コンピューティングデバイス」という用語は、少なくとも全ての上記種類のデバイスを指すが、これらの種類のデバイスに限定されるものではない。
【００３８】
[0052]１つ以上のサービス（様々な種類のクラウドベースのコンピューティングまたはストレージなど）を提供するために企業または公的部門組織などのエンティティによって設置され、インターネットおよび／または他のネットワークを経由して、分散された一連のクライアントにアクセス可能なネットワークは、プロバイダネットワークと呼ばれることがある。このようなプロバイダネットワークは、そのプロバイダネットワークによって提供される基盤およびサービスを実装および分散するのに必要とされる様々なリソースプール（物理コンピュータサーバおよび／または仮想化コンピュータサーバ、ストレージデバイス、ネットワーク機器並びに同種のものの集合など）をホスティングする多くのデータセンターを含み得る。これらのリソースは、ある実施形態では、インスタンス（仮想的または物理的なコンピューティングインスタンスまたはストレージインスタンスなど）と呼ばれる単位でクライアントに提供され得る。仮想コンピューティングインスタンスは、例えば、指定された演算能力を有する１つ以上のサーバ（このサーバは、ＣＰＵの種類および数、主記憶サイズなどを示すことによって指定され得る）、並びに特定のソフトウェアスタック（例えば、特定バージョンのオペレーティングシステムであり、このシステムはハイパーバイザの上で動作し得る）を備える。
【００３９】
[0053]いくつかの異なる種類のコンピューティングデバイスを単独でまたは組み合わせて使用して、汎用または専用コンピュータサーバ、ストレージデバイス、ネットワークデバイスなどを含む、種々の実施形態におけるプロバイダネットワークのリソースを実装してよい。ある実施形態では、例えば、管理者のログインおよびパスワードをユーザに与えることにより、クライアントまたはユーザをリソースインスタンスに直接アクセスさせるようにしてよい。他の実施形態では、プロバイダネットワークの事業者は、特定のクライアントアプリケーションについて、それらのアプリケーションに適した実行プラットフォーム上のクライアントのために、例えば、インスタンスまたは実行プラットフォームにクライアントが直接アクセスしなくとも、当該アプリケーションの実行要件およびそれらのアプリケーションのスケジュール実行をそのクライアントが指定することを認めてよい。なお、このような実行プラットフォームとしては、アプリケーションサーバインスタンス、Ｊａｖａ（商標）仮想マシン（ＪＶＭ）、汎用もしくは専用オペレーティングシステム、様々なインタープリタ方式もしくはコンパイラ方式のプログラミング言語（Ｒｕｂｙ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、Ｃ、Ｃ＋＋など）をサポートするプラットフォームまたは高性能コンピューティングプラットフォームなどがある。一部の実施態様では、所与の実行プラットフォームが１つ以上のリソースインスタンスを利用してよく、他の実施態様では、１つのリソースインスタンスに複数の実行プラットフォームをマッピングさせてよい。
【００４０】
[0054]多くの環境では、様々な種類の仮想化コンピューティング、ストレージおよび／またはネットワークアクセス可能な他の機能を実装するプロバイダネットワークの事業者は、様々なリソース取得モードでリソースへのアクセスを顧客が予約または購入できるようにしてよい。コンピューティングリソースの提供者が顧客に設備を提供することにより、顧客は、所望のコンピューティングリソースを選択して起動し、そのコンピューティングリソースにアプリケーションコンポーネントを展開し、当該環境でアプリケーションの実行を維持し得る。加えて、コンピューティングリソースの提供者が顧客に設備をさらに提供することにより、アプリケーションに対する需要または容量の要求が変化するにつれて、顧客は、手動で、または自動スケーリングによって、アプリケーションに割り当てられたリソースの数およびタイプを迅速かつ容易にスケールアップまたはスケールダウンし得る。コンピューティングリソースの提供者によって提供されるコンピューティングリソースは、個別のユニット（インスタンスと呼ばれることがある）において利用可能となり得る。インスタンスは、物理的なサーバハードウェアプラットフォーム、サーバで実行される仮想マシンインスタンスまたは両者の何らかの組み合わせを表し得る。様々なタイプおよび構成のインスタンスは、種々のオペレーティングシステム（ＯＳ）および／またはハイパーバイザを実行する種々のサイズのリソースを含み、さらに、様々なインストール済みソフトウェアアプリケーション、ランタイムなどと共に利用可能となり得る。さらに、インスタンスは、例えば、特定の可用性ゾーン（データセンター、または下位のコンピューティングハードウェアの他の地理的位置を表す）において利用可能となり得る。
【００４１】
[0055]ある実施形態では、プロバイダネットワークは複数の地理的領域に編成され得るが、このとき各領域は１つ以上の可用性ゾーンを含み得る。可用性ゾーン（可用性コンテナと呼ばれることもある）は、１つ以上の互いに異なる位置またはデータセンターをさらに含み得ることにより、所与の可用性ゾーンにおけるリソースが他の可用性ゾーンにおける障害から切り離され、あるいは隔離されるように構成されている。すなわち、ある可用性ゾーンに障害が生じても、その他の可用性ゾーンにおいて障害の発生が予期されるとは限らない。従って、リソースインスタンスの可用性プロファイルでは、異なる可用性ゾーンにおけるリソースインスタンスの可用性プロファイルが独立するように意図されている。クライアントは、複数のアプリケーションインスタンスをそれぞれの可用性ゾーンで起動することにより、一地点での障害から自分のアプリケーションを保護できるようにしてよい。それと並行して、ある実施態様では、同じ地理的領域内にあるリソースインスタンス間で、安価かつ低遅延のネットワーク接続が提供され得る（それと共に、同じ可用性ゾーンのリソース間のネットワーク伝送が一層早くなり得る）。
【００４２】
[0056]プロバイダネットワークは、「オンデマンド」で利用可能なインスタンスを作成してよく、それによって顧客は、特定のタイプおよび構成（例えば、サイズ、プラットフォーム、テナンシー、可用性ゾーンなど）のいくつかのインスタンスを選択し、そのインスタンスを迅速に起動して展開することができる。オンデマンドインスタンスは、アプリケーションに対する需要または容量の要求が経時変化するにつれて、手動で、または自動スケーリングによって自動で、必要に応じてさらに追加または除去され得る。顧客は、例えば、運用時間数および／または実際に利用したリソースに基づき、自身のオンデマンドインスタンスに関連した継続的な使用コストを負担し得る。
【００４３】
[0057]コンピューティングリソースの提供者は、顧客にとって利用可能なリザーブドインスタンスも作成してよい。リザーブドインスタンスは、例えば、インスタンスを起動した場合かつその時に、単位時間ごとの使用コストまたは他の使用コストが減少するのと引き替えに安価な前払いの費用で、いくつかの特定のタイプおよび構成のインスタンスを一定期間（１年または３年など）予約する機能を顧客に提供し得る。これにより、顧客は、必要なときに適度なリソースを確実に利用できるようにしつつ、需要の増加に応じて展開済みアプリケーションをスケールアップするのに関わるコストを据え置くことができ得る。リザーブドインスタンスにより、顧客には自身のアプリケーションの増減に備えて信頼性の高い待機容量が提供される一方、リザーブドインスタンスを購入すると、所望の期間よりも長い期間、特定の可用性ゾーンにおいて特定の数、タイプおよび／または構成のコンピューティングリソースに顧客が束縛される場合もある。技術的アーキテクチャまたはアプリケーションのニーズが変化した場合でも、顧客は、リザーブドインスタンスへの投資を回収して換金することができるとは限らない。
【００４４】
[0058]こうしたプロバイダネットワークの事業者は、ある事例では、柔軟な一連のリソース予約、コントロールおよびアクセスインターフェースをクライアント向けに導入してよい。例えば、プロバイダネットワークのリソースマネージャには、（例えば、Ｗｅｂサイトまたは一連のＷｅｂページを介して）プログラム的なリソース予約インターフェースが実装され得る。このインターフェースにより、クライアントは、リソースインスタンスについて知り、リソースインスタンスを選択し、リソースインスタンスへのアクセスを購入し、かつ／またはリソースインスタンスを予約することができる。後述のある実施形態では、リソースマネージャまたは価格設定オプティマイザ（ｐｒｉｃｉｎｇ  ｏｐｔｉｍｉｚｅｒ）などのエンティティが１つ以上のプログラム的インターフェース（ＷｅｂページまたはＡＰＩなど）を実装しているものとして説明されるが、このような実施形態では、そのエンティティのインターフェースマネージャ・サブコンポーネントがインターフェース関連機能を担当し得る。多くの実施形態では、リソースマネージャおよび価格設定オプティマイザの外部にある単独（またはスタンドアローン）のインターフェースマネージャにより、同等のインターフェース関連機能が実装され得る。こうしたインターフェースは、リソースカタログを閲覧することができる機能を備えてよく、様々なタイプまたはサイズのサポート対象リソースの詳細事項および仕様、サポートする種々の予約種類または予約モード、価格設定モデルなどを提供してよい。
【００４５】
[0059]プロバイダネットワークは、上述したインスタンスタイプの一部に対応する数種類の購入モード（本明細書では予約モードと呼ぶこともある）をサポートし得る。例えば、プロバイダネットワークは、長期予約、オンデマンドのリソース割り当てまたはスポット価格ベースのリソース割り当てをサポートし得る。長期予約モードを利用すると、クライアントは、リソースインスタンスに対して１回限りの前払いを安価で行い、そのインスタンスを特定期間（１年間または３年間など）予約し、そのインスタンスに対して一時間当たりの料金を低額で支払い得る。そのため、クライアントにとっては、その予約期間中利用可能なリザーブドインスタンスを有することが保証される。オンデマンドモードを利用すると、クライアントは、長期契約または前払いをしなくても、容量に対して時間単位（または何らかの適切な時間単位）で支払うことが可能となる。スポット価格モードでは、クライアントは、特定タイプのリソースに対して支払う意思がある単位時間当たりの最高価格を指定することが可能であり、少なくとも部分的には需要と供給によって決定される動的なスポット価格をクライアントの最高価格が超えた場合、そのタイプのリソースがそのクライアントに提供され得る。ある実施形態では、リソースインスタンスで構成される動的にサイズ変更可能なプールは、種々の予約タイプまたはモードに備えて確保され得る。例えば、長期リザーブドインスタンスをあるプールから割り当て、オンデマンドインスタンスを別のプールから割り当てるなどしてよい。要求されたリソースタイプの供給が需要を超えている期間中は、オンデマンドモードの価格よりもスポット価格が大幅に低下し得る。ある実施態様では、クライアントによって指定された最高入札額を超えてスポット価格が上昇した場合、リソースの割り当てが中断される場合がある。すなわち、以前にクライアントに割り当てられたリソースインスタンスの返還がリソースマネージャによって要求され、それよりも高い価格を支払う意思のある他のクライアントに割り当てられる場合がある。他の購入モードまたは各モードの組み合わせは、ある実施形態では、リソースマネージャによって実施され得る。
【００４６】
[0060]本明細書で説明された技術を利用することにより、プロバイダネットワークは、プライベートマーケットプレイスの作成を可能にするサービスも実装し得る。このサービスにより、自身に関連付けられ、あるいは自ら指定したユーザに自分のリザーブドインスタンスおよび他のタイプのインスタンスを提供することを顧客が望んでいる場合、あるメカニズムがその顧客に提供され得る。例えば、顧客の組織に属する顧客の内部ユーザは、コンピューティングリソースの提供者によって通常提供されるものよりも短期間のリザーブドインスタンスを利用したかったり、あるいはある限定された期間中にインスタンスにアクセスすれば十分であったりする場合がある。顧客は、自分のリザーブドインスタンスの残り期間、いくつかの未使用のリザーブドインスタンスおよび割り当て済みスポットインスタンス、またはそれらの一部を選択し、選択したインスタンスをその顧客の内部ユーザにプライベートマーケットプレイスで提供してよく、これによってその内部ユーザは、当該プライベートマーケットプレイスを介して、インスタンスを「購入する」、そのインスタンスに「入札する」、あるいはそのインスタンスへのアクセスを要求することができる。従って、インスタンスを最も必要とし、あるいはインスタンスに最高額の「通貨」を支払う意思のある内部ユーザにインスタンスを提供するためのこうした限定的なプライベートマーケットプレイスを実装することにより、顧客には、自身が取得したインスタンスをより効率的に利用する方法が提供され、それにより、顧客に割り当てられた容量をより効率的に分散させることができる。
【００４７】
[0061]図４は、少なくともある実施形態に係る、インスタンスを提供するための例示的なシステム環境を示す図である。システム４００は、複数のリソースインスタンス４３０（本明細書においてこれらは、単数形で「リソースインスタンス４３０（ａ  ｒｅｓｏｕｒｃｅ  ｉｎｓｔａｎｃｅ  ４３０）」、または複数形で「リソースインスタンス４３０（ｔｈｅ  ｒｅｓｏｕｒｃｅ  ｉｎｓｔａｎｃｅｓ  ４３０）」と呼ばれることがある）で構成されるプロバイダネットワーク４１０を含み得る。なお、これらのリソースインスタンスには、ある可用性ゾーン４２０Ａ内のインスタンス４３０Ａ、４３０Ｂ、４３０Ｄ、４３０Ｅ、４３０Ｇおよび４３０Ｈ、並びに異なる可用性ゾーン４２０Ｂ内のインスタンス４３０Ｊ、４３０Ｋ、４３０Ｍ、４３０Ｎ、４３０Ｐおよび４３０Ｑなどがある。可用性ゾーン４２０Ａおよび４２０Ｂ（本明細書においてこれらは、単数形で「可用性ゾーン４２０（ａｎ  ａｖａｉｌａｂｉｌｉｔｙ  ｚｏｎｅ  ４２０）」、または複数形で「可用性ゾーン４２０（ｔｈｅ  ａｖａｉｌａｂｉｌｉｔｙ  ｚｏｎｅｓ  ４２０）」と呼ばれることがある）内の様々なリソースインスタンス４３０は、クライアント４４８Ａおよび４４８Ｂ（本明細書においてこれらは、単数形で「クライアント４４８（ａ  ｃｌｉｅｎｔ  ４４８）」、または複数形で「クライアント４４８（ｔｈｅ  ｃｌｉｅｎｔｓ  ４４８）」と呼ばれることがある）などのクライアント（または潜在的なクライアント）によって利用するために予約され、かつ／または割り当てられ得る。例示した実施形態では、システム４００は、リソースマネージャ４８０およびインターフェースマネージャ４８２を含む。先に述べたように、ある実施形態では、インターフェースマネージャ４８２の機能は、リソースマネージャ４８０のサブコンポーネントによって実装され得る。
【００４８】
[0062]インターフェースマネージャ４８２は、ある実施形態では、１つ以上のプログラム的インターフェースを実装し得る。このインターフェースにより、クライアント４４８は、インスタンス４３０を検索、閲覧、予約および取得して、（例えば、様々なアプリケーションを実行し、かつ／またはそれらにアクセスするための）様々な種類のサービスを得ることができる。例示した実施形態では、任意の時点で、インスタンス４３０の一部または全てをインスタンスプールに割り当ててよい。このようなインスタンスプールとしては、リザーブドインスタンスプール４２１Ａもしくは４２１Ｂ、オンデマンドインスタンスプール４２３Ａもしくは４２３Ｂ、利用可能インスタンスのプール４２５、またはそれ以外のプール（他のプール４２７など）などがある。
【００４９】
[0063]ある実施形態では、利用可能インスタンスのプール４２５などの所与のプールは、例えば、サポートするインスタンス予約モードおよびインスタンス割り当てモードに基づき、それ自体のサブプールを内部に含み得る。各プール（またはサブプール）は、プールまたはサブプールに割り当てられ得るインスタンスの中断可能性（ｉｎｔｅｒｒｕｐｔｉｂｉｌｉｔｙ）に関する設定といった他のプロパティに加えて、そのインスタンスに関連した価格設定方式を有し得る。なお、プールは、論理的な集合または集約を表し得る。従って、例えば、同じプールまたはサブプール内に２つのインスタンスが存在しても、その２つのインスタンスに使用されるハードウェアの物理的位置に関する何かが必ずしも示唆されるとは限らない。図４に示すインスタンス４３０は可用性ゾーン４２０に属するものとして示されているが、他の実施形態では、プロバイダネットワーク４１０は別の編成をとってもよい。例えば、ある実施形態では、可用性ゾーン４２０を実装しなくてよい。可用性ゾーン４２０は、ある実施形態では、各地理的領域（図４には図示せず）にグループ分けしてよい。インスタンスプールは、ある実施態様では、可用性ゾーン内に実装され得る（例えば、各可用性ゾーンは、独自のリザーブドインスタンスプールを含んでよい）。それに対し、他の実施態様では、インスタンスプールまたはサブプールは、複数の可用性ゾーンにわたってもよい。
【００５０】
[0064]ある実施形態では、図５などのように、データセンター５００を共有コンピューティングリソースおよび／または共有基盤の集合とみなす場合がある。例えば、図５に示すように、データセンター５００は、仮想マシンスロット５０４、物理ホスト５０２、電源５０６、ルータ５０８、隔離ゾーン５１０および地理的位置５１２を含み得る。仮想マシンスロット５０４は、スロットまたはリソーススロットと呼ばれることがある。物理ホスト５０２は、複数の仮想マシンスロット５０４によって共有され得るが、各スロット５０４は、仮想マシン（ゲストドメインなど）をホスティングすることが可能である。複数の物理ホスト５０２は、電源５０６（サーバラック上に設けられた電源５０６など）を共有し得る。ルータ５０８は、いくつかの電源５０６にまたがる複数の物理ホスト５０２にネットワークトラフィックをルーティングするサービスを提供し得る。隔離ゾーン５１０は、多数のルータ５０８にサービスを提供し得る。この隔離ゾーン５１０は、冗長なリソース（補助発電機など）によってサービスを受け得るコンピューティングリソースの集まりである。複数の隔離ゾーン５１０は、データセンター５００などの地理的位置５１２に存在し得る。プロビジョニングサーバ５１４は、メモリと、決められた役割および共有リソース／基盤を計算に利用してユーザデータを分析し、利用可能な実装リソースを順位付けする命令を用いて構成されたプロセッサとを含み得る。プロビジョニングサーバ（単数または複数）５１４は、コンピューティングリソースの健全性および／または障害を検知することに加え、コンピューティングリソースをプロビジョニングし、あるいはそのプロビジョニングを解除する作業フローを管理してもよい。
【００５１】
[0065]プロビジョニングサーバ５１４は、データセンター内のリソースの配置を判断し得る。ある実施形態では、この配置は、利用可能なコンピューティングリソースおよび／またはコンピューティングリソース間の関係に少なくとも部分的に基づき得る。一実施形態では、リソース間の距離は、共有されたリソースの程度によって計測され得る。この距離は、役割に応じてリソースを順位付けするのに使用され得る。例えば、第２システムとルータ５０８を共有するホスト５０２上の第１システムは、隔離ゾーン５１０を共有するのみの第３システムに比べて第２システムにより近接し得る。アプリケーションに応じて、スループットを高めるために距離を短く保ち、あるいは耐久性を向上させるために距離を長く保つことが望ましい場合がある。別の実施形態では、この距離は、非共有リソースに関して決定され得る。例えば、ルータ５０８を共有する２つのスロット５０４は、物理ホスト５０２と電源５０６の距離を有し得る。リソースが違う場合、距離計算においてそれぞれ異なるように重み付けがなされ得る。
【００５２】
[0066]ある準備済みのリソースを選択してクライアントのアカウントに移すときに配置計算を利用してもよい。一実施形態では、クライアントは、オペレーティングシステムを搭載した仮想マシンを要求する。プロビジョニングサーバ５１４は、スロット５０４内の多段容量を用いてその要求を満たし得ることを判断してよい。どの基盤が共有に望ましい場合があるか、およびどの基盤が共有に望ましくないかを決める配置判断が行われ得る。この配置判断を利用して、その配置判断の特徴の少なくとも一部を満たす多段容量を利用可能なリソースのプールから選択してよい。例えば、多段容量のプールは、クラスターコンピューティングの導入によって使用され得る。新たな容量が要求されると、プロビジョニングサーバ５１４は、他の既存の容量の近くに配置することが遅延の関係から望ましいと判断する場合がある。従って、その判断により、ルータ５０８を共有することは望ましいが、電源５０６および物理ホスト５０２を共有することは望ましくないことが判明する場合がある。次いで、これらの属性に適合するようにそのプール内の容量を選択してよく、同じルータ５０８上に他の容量として好ましくは配置されるものの、物理ホスト５０２と電源５０６は異なるようにその容量を配置してよい。配置判断の他の実施例（データベースシャードに関するものなど）では、基盤の共有はそれほど望ましくない場合があり、他の関連容量と共通した基盤がより少なくなるように容量が選択され得る。
【００５３】
[0067]プロバイダネットワークの事業者（上述したものなど）は、ある実施形態では、図１に示したユーザ定義プール生成サービス１８０などの基盤を提供し得る。このサービスは、ユーザ定義のプライベートマーケットプレイスを要求および作成する機能を顧客に提供するものである。一実施形態では、顧客は、いくつかのリソース（リザーブドインスタンスおよびオンデマンドインスタンスなど）を購入したエンティティ（教育機関など）であってよい。顧客は、自身のリザーブドインスタンスおよびオンデマンドインスタンスのサブセットを選択し、それらのリザーブドインスタンスおよびオンデマンドインスタンスにその教育機関内の部署および／またはユーザが内部的に入札し得る内部マーケットプレイスを作成してよい。この入札プロセスは、上述したようにスポットマーケットでスポットインスタンスに入札するプロセスと同様であってよい。ある実施形態では、顧客は、他の入札プロセスを選択してよく、または分割クレジットを用いるなどの他の支払いの形態を利用して入札できる場合がある。様々な実施形態では、通貨、最低／最高価格または最低／最高価格水準、入札／価格設定アルゴリズム、中断サイクルおよび他のパラメータなどの各態様をカスタマイズできるようにしてよい。
【００５４】
[0068]図６を参照すると、本開示に係る、ユーザがプライベートマーケットプレイスにリソースを割り当てる実施例が図示されている。ユーザＡは、関連するリザーブドインスタンス６００、オンデマンドインスタンス６０５およびスポットインスタンス６１０を有し得る。ユーザＡは、自身のリザーブドインスタンス６００のインスタンスＡ、Ｂ、ＣおよびＤをユーザ定義プール６２０に割り当ててよい。ユーザＡは、スポットインスタンス６００のインスタンス１および２をユーザ定義プール６２０に割り当ててもよい。ユーザＡのリザーブドインスタンス６００のインスタンスＡ、Ｂ、ＣおよびＤは、リザーブドインスタンス６００のサブセットと呼ばれることがあり、スポットインスタンス６００のインスタンス１および２は、スポットインスタンス６００のサブセットと呼ばれることがある。ユーザＢは、関連するリザーブドインスタンス６３０およびスポットインスタンス６４０を有し得る。ユーザＢは、自身のリザーブドインスタンス６３０のインスタンスＫおよびＬをユーザ定義プール６５０に割り当ててよい。ユーザＢは、自身のスポットインスタンス６４０のインスタンス８および９をユーザ定義プール６５０に割り当ててもよい。ユーザＢのリザーブドインスタンス６３０のインスタンスＫおよびＬは、リザーブドインスタンス６３０のサブセットと呼ばれることがあり、ユーザＢのスポットインスタンス６４０のインスタンス８および９は、スポットインスタンス６４０のサブセットと呼ばれることがある。ある実施形態では、ユーザＡまたはユーザＢは、ユーザ定義プールに割り当てられたインスタンスを削除することができる。
【００５５】
[0069]前述のように、インスタンスは、リソーススロット、仮想マシンスロットまたはスロットと呼ばれることがある。ユーザ定義プールまたはプライベートマーケットプレイスは、顧客のリソーススロットを管理する追加的なサービス（図１のユーザ定義プール生成サービス１８０など）として提供され得る。一実施形態では、ユーザ定義プール生成サービス１８０は、プライベートデータセンター内などのコンピュータネットワークにインストール可能なソフトウェアによって具現化することができる。
【００５６】
[0070]ユーザは、自身が取得し、プロバイダネットワークによって割り当てられた各インスタンスタイプのインスタンスをいくつか選択してよい。一実施形態では、価格設定アルゴリズムをユーザが提供または選択できるようにしてもよい。例えば、規格化された形式（ＸＭＬなど）を用いて、１つ以上のアルゴリズムまたは手法をユーザがアップロードできるようにしてよい。一実施形態では、プール生成サービスは、１つ以上のテンプレートをアルゴリズムまたは手法に提供し得る。プール生成サービスは、別のテンプレート、または各パラメータ（インスタンスの数およびタイプなど）に対する所定の選択内容を提供してもよく、それにより、選択されたインスタンスを設定して、入札者などの間の公正を強化できるように選択を行う。
【００５７】
[0071]プライベートマーケットプレイス内のインスタンスにユーザが入札できるようにするために、いくつかの方法を利用することができる。一実施形態では、イングリッシュオークション方式を選択するオプションをユーザに提供することができる。この方式では、競り上がっていく価格が表示されるが、落札者は最高入札者であり、このときインスタンスの価格は最も高い入札額である。別の実施形態では、ダッチオークション方式を選択するオプションをユーザに提供してよい。この方式では、インスタンスの価格が高水準で始まり、ユーザが現行価格を受け入れるまで下げられる。上述したように、ユーザは、自身が支払う意思のある最高価格を選択することができ、少なくとも部分的には需要と供給によって決定される動的な価格をユーザの最高価格が超えた場合、そのユーザにインスタンスが提供され得る。
【００５８】
[0072]一実施形態では、入札プロセスに使用され得る通貨を選択するオプションをユーザに提供することができる。この通貨には、プライベートマーケットプレイスが作成されたときに顧客によって定義または選択される価値単位を含めることができる。顧客は、インスタンスに対して通常の金銭単位または金銭価値（ドル／単位時間当たりなど）を選択し得るが、他の単位（ＣＰＵサイクルまたはネットワーク帯域など）を選択してもよく、それによって種々の価値基準に基づいて価値を反映させてよい。ある実施形態では、通貨を使用して、リソーススロットなどのコンピューティング容量の単位に入札し、あるいはユーザによって定義され得るコンピューティング容量の他の単位に入札してよい。例えば、入札には、金銭的な入札額および所望のコンピューティング容量の数（コンピューティングサイクルの数など）を含めることができる。
【００５９】
[0073]一実施形態では、ユーザ定義プール生成サービス１８０は、プライベートマーケットプレイス用のパラメータの選択を容易にするＡＰＩを提供することができる。このＡＰＩは、どの顧客がプール生成サービスと通信しているかを判定し、プライベートマーケットプレイスを作成するための要求を生成し得る。ユーザ定義プール生成サービス１８０は、その要求にＩＤを割り当て、当該要求を処理している間、要求されたプライベートマーケットプレイスの上記ＩＤを追跡し得る。
【００６０】
[0074]一実施形態では、１人の正規ユーザと同一視されるにすぎない顧客（例えば、プロバイダネットワークに対する大学のアカウントを変更可能な１人の権限保持者を有する大学の顧客）は、プライベートマーケットを設置可能な１人の正規ユーザを許容し得る。複数の権限保持者が存在する場合、プール生成サービスは、プライベートマーケットを設置できるものとして１つの専用アカウントが識別されることを要求し得る。ユーザ定義プール生成サービス１８０は、例えば、その専用アカウントを有するユーザを、例えば、当該ユーザによって提示された証明書に基づいて認証してよい。ユーザ定義プール生成サービス１８０は、プライベートマーケットプレイスを作成する行動を課金目的のために追跡することができる。ユーザ定義プール生成サービス１８０は、プライベートマーケットプレイス内のインスタンスに入札するユーザのいずれがインスタンスに入札し、いずれにインスタンスが割り当てられたかをさらに追跡し得る。従って、顧客はこうした行動を追跡し得る。ユーザ定義プール生成サービス１８０は、ユーザ単位、利用単位、入札単位または他の計測単位で使用率を追跡し、課金および追跡目的のために顧客に情報を提供し得る。
【００６１】
[0075]一実施形態では、入札要求に応答して、ユーザ定義プール生成サービス１８０は、入札要求を処理して実行するときに入札ユーザを識別するのに使用可能なメタデータとして入札ユーザのＩＤを埋め込むことができる。このメタデータは、ユーザＩＤを有するフィールドを含むことができるが、このフィールドは課金レコード内に含めることができる。従って、ユーザ定義プール生成サービス１８０は、プライベートマーケットプレイス内のインスタンスに入札したユーザを識別するのみならず、プライベートマーケットプレイスを要求した顧客を追跡することもできる。
【００６２】
[0076]ある実施形態では、キー値の組み合わせを用いて、プライベートマーケットプレイスを求める要求に関連付けられたデータもしくは属性、またはプライベートマーケットプレイス内のリソーススロットへの入札を追跡することができる。ユーザ定義プール生成サービス１８０は、一意のデータ用識別子と共に、そのデータ自体またはそのデータの位置へのポインタを含む連結データレコードを追跡し得る。例えば、拡張可能なデータ構造を用いて、＜ユーザ定義プールＩＤ、ユーザＩＤ、要求ＩＤ＞などのユーザデータを収集し得る。
【００６３】
[0077]場合によっては、顧客は、プロバイダネットワークのアカウントを２つ以上有し得るため、割り当て済みのリソースのプールを複数有し得る。例えば、顧客は、第１プロジェクト用の第１アカウントを有してよく、その第１アカウントを用いて割り当てられた関連リソーススロットを有してよい。また、顧客は、第２プロジェクト用の第２アカウントを有してもよく、その第２アカウントを用いて割り当てられた関連リソーススロットを有してよい。一実施形態では、顧客には、第１または第２アカウントのいずれかに関連付けられたリソーススロットを選択し、選択されたリソーススロットを１つのプライベートマーケットプレイスに割り当てる機能が提供され得る。従って、顧客は、複数のリソースプールからリソースを混ぜて、１つのユーザ定義プールに合わせることができ得る。
【００６４】
[0078]場合によっては、２人以上の顧客がリソースを合わせることを決定し、その２人以上の顧客に関連付けられたユーザによってアクセスされ得る１つのプライベートマーケットプレイスを要求し得る。従って、組織および企業は、各エンティティの間でリソースをプールしてプライベートマーケットプレイスを作成することができ得る。一実施形態では、ユーザ定義プール生成サービス１８０は、２人以上の顧客の各アカウントを結合して、１つのユーザ定義プールを作成することができる。ユーザ定義プール生成サービス１８０は、リソースの実際の使用率に基づいて、かつリソースに入札するユーザおよび顧客とそれらのユーザの関係を追跡することによって使用率を追跡してもよい。１つのユーザ定義プールは、その１つのユーザ定義プールを変更する権限が与えられている１人の顧客によって更新され得る。あるいは、１つのユーザ定義プールを変更する権限を別の複数の顧客に与えてもよい。同様に、１つのユーザ定義プールに関連付けられた方式を変更する権限を１人の顧客に与えてよい。あるいは、１つのユーザ定義プールに関連付けられた方式を変更する権限を別の複数の顧客に与えてもよい。
【００６５】
[0079]一実施形態では、ユーザ定義プール生成サービス１８０の機能は、顧客のコンピューティングリソースにインストールし、そこで実行することができるソフトウェアによって提供され得る。例えば、顧客は、自身のコンピューティング基盤を所有および／または運用してよく、コンピューティングリソースをホスティングするように構成された複数のリソーススロットとして自身のコンピューティングリソースを構成してよい。プール生成サービスソフトウェアは、上述したように顧客のリソーススロットを選択し、ユーザ選択プールのパラメータを選択するためのインターフェースを提供し、ユーザ選択プールを作成し得る。プール生成サービスソフトウェアは、リソーススロットを求める要求／入札をさらに促進し、追跡／課金目的のために使用情報を追跡し得る。
【００６６】
[0080]図７を参照すると、本開示に係る、プライベートマーケットプレイスにリソースおよびユーザを割り当てるエンティティを示す例が図示されている。エンティティＡは、図６のエンティティＡに対応し得るが、関連する内部ユーザＡ、Ｂ、Ｃ、Ｄ、ＥおよびＦを有し得る。エンティティＡは、エンティティＡのリザーブドインスタンスのうち、割り当て済みのリザーブドインスタンスＡ、Ｂ、ＣおよびＤをユーザ定義プール６２０内にも有し得る。エンティティＡは、エンティティＡのスポットインスタンスのうち、インスタンス１および２をユーザ定義プール６２０に割り当ててもよい。エンティティＢは、関連する内部ユーザＮ、Ｐ、Ｒ、Ｓ、ＴおよびＵを有し得る。また、エンティティＢは、エンティティＢのリザーブドインスタンスのうち、インスタンスＫおよびＬをユーザ定義プール６５０に割り当ててもよい。ユーザＢは、ユーザＢのスポットインスタンスのうち、インスタンス８および９をユーザ定義プール６５０に割り当ててもよい。エンティティＡはさらに、自身の内部ユーザＡ、Ｂ、ＣおよびＤ（サブセット７１０）に対し、自らのユーザ定義プール６２０にアクセスする権限を与えてよい。エンティティＢはさらに、自身の内部ユーザＲ、ＳおよびＴ（サブセット７２０）に対し、自らのユーザ定義プール６５０にアクセスする権限を与えてよい。次に、権限を与えられた内部ユーザは、各自のユーザ定義プール内のインスタンスにアクセスできるように入札を行ってよい。さらに、エンティティＡおよびエンティティＢは、リソースを合わせることを決定してよく、ユーザ定義プール６２０およびユーザ定義プール６５０を１つのユーザ定義プールに合わせることを要求してよい。一実施形態では、エンティティＡのユーザＡ、Ｂ、ＣおよびＤ並びにエンティティＢのユーザＲ、ＳおよびＴは、組み合わされた１つのユーザ定義プールに入札してよい。
【００６７】
[0081]場合によっては、顧客によってユーザ定義プールに割り当てられたリソーススロットの容量が、ユーザによって生成されたリソーススロットを求める要求によって超過される場合がある。例えば、顧客は、リソーススロットに対する需要を過小評価し、実際の需要を満足させるには不十分なユーザ定義プールに対していくつかのリソーススロットを選択する場合がある。一実施形態では、プロバイダネットワークは、未使用の容量を用いてこうした超過容量の需要を満たすことができるオプションを顧客に提供してよい。例えば、既に顧客に割り当てられているがユーザ定義プールには割り当てられていない未使用の容量を用いて超過した容量を満たすオプションを提供してよい。別の実施例では、プロバイダネットワークによって提供された未使用の容量を用いて超過容量を満たすオプションを提供してよい。プロバイダネットワークは、このサービスに料金を請求してよい。こうした容量を提供することにより、容量が不十分であるためにユーザの要求を拒絶する代わりに、サービスの提供者または（顧客が使用していない容量を用いて）顧客によって提供された追加容量に必要に応じてアクセスし、または「バースティング」することにより、顧客は、ユーザ定義プールへのアクセスを提供し続けることができ得る。こうした機能は、ピーク需要が時々発生する場合にのみ有用となり得るが、その場合、追加のリソーススロットをユーザ定義プールに確保するのではなくバースト容量を購入することが顧客にとってより費用対効果が高い場合がある。ある実施形態では、超過容量をプロバイダネットワークからバースティングさせるか、それとも顧客が割り当てていない容量からバースティングさせるかに関する判断を、顧客によって選択された方針に基づいて行うことができる。例えば、顧客は、自身が超過容量に支払う意思のある最高価格を指定してよい。顧客が最高予算を指定することにより、その最高予算に到達するまで当該予算内でバースト要求を満たすことができるようにしてもよい。
【００６８】
[0082]図８に目を向けると、バースト容量にアクセスするように構成されたユーザ定義プールの一実施例が図示されている。ユーザ定義プール８００は、スポットインスタンス８０６、８０７および８０８に加え、リザーブドインスタンス８０１、８０２、８０３、８０４および８０５を含み得る。ピーク活動の期間中、ユーザ定義プール８００は、このユーザ定義プールに割り当てられたリソースを用いて提供され得るよりも多くの要求を受け取ってよい。一実施形態では、ユーザ定義プール８００をリザーブドインスタンスプール８１０にアクセスさせて容量をバースティングできるように方針が確立されていた場合がある。例えば、図に示すように、リザーブドインスタンススロット８１１、８１２および８１３をバースト容量用にユーザ定義プール８００に割り当ててよい。同様に、この方針により、オンデマンドインスタンス８２１、８２２および８２３を含むオンデマンドインスタンスプール８２０、並びにスポットインスタンス８３１、８３２および８３３を含むスポットインスタンスプール８３０にユーザ定義プール８００をアクセスさせて容量をバースティングできるようにしてもよい。
【００６９】
[0083]図９は、プライベートマーケットプレイスを実装できるようにいくつかのコンポーネントを含む例示的な運用環境９００を示すシステム図である。この環境９００は、コンピューティングプラットフォーム９０２を含み得る。コンピューティングプラットフォーム９０２は、分散アプリケーションの展開および実行のために顧客９２０に利用可能なコンピューティングリソースを作成するコンピューティングリソースの提供者によって実装され得る。
【００７０】
[0084]コンピューティングプラットフォーム９０２によって提供されるコンピューティングリソースは、様々な種類のリソース（データ処理リソース、データストレージリソース、データ通信リソースなど）を含み得る。各種のコンピューティングリソースは、汎用であってよく、あるいはいくつかの特定構成において利用可能であってよい。例えば、コンピューティングリソースの提供者によって提供されたデータ処理リソースは、個別のユニットまたはインスタンス９０４において利用可能となり得る。各インスタンス９０４は、本明細書では専用テナンシーインスタンスと呼ばれる、専用のホストコンピュータ９０６におけるデータ処理リソースを表し得る。あるいは、各インスタンス９０４は、ホストコンピュータ９０６上で実行される仮想マシンインスタンスを表し得るが、これは共有テナンシーインスタンスと呼ばれることもある。
【００７１】
[0085]ホストコンピュータ９０６は、汎用マルチプロセッサのサーバデバイス、専用ハードウェアデバイスなどを表し得る。前述のように、様々なタイプおよび構成のインスタンス９０４が利用可能となり得る。例えば、データ処理リソースにおいて利用可能な各インスタンス９０４は、そのインスタンスを含み、またはそれに割り当てられた物理的および／または仮想的リソースの種々の組み合わせ（プロセッサの数および種類、メモリの量、ローカルストレージのサイズおよび速度、ネットワークアドレスもしくは通信チャネルの数並びに／または同種のものなど）を表す特定のサイズ（小規模、中規模および大規模など）を有し得る。さらに、インスタンス９０４は、特定のプラットフォーム（そのインスタンスにインストールされた特定のＯＳおよび／またはハイパーバイザなど）を用いて構成され得る。インスタンス９０４は、インストールされる特定のアプリケーションソフトウェアコンポーネント（Ｗｅｂサーバソフトウェア、データベース管理ソフトウェア、ポータルソフトウェア、特定のランタイム環境またはプラットフォームなど）を用いて利用可能となる場合もある。
【００７２】
[0086]さらに、インスタンスは、上述した特定の可用性ゾーン９０８Ａおよび９０８Ｂで利用可能となり得る。前述のように、可用性ゾーン９０８は、特定の物理的位置（データセンターなど）、またはコンピューティングプラットフォーム９０２によって提供されたインスタンス９０４をサポートする下位のホストコンピュータ９０６およびコンピューティングデバイスの他の物理的および／もしくは論理的なグループ分けを表し得る。種々のサイズおよび種々の可用性ゾーン９０８でインスタンス９０４を提供することにより、地理的に分散してアプリケーションを展開させることができ、それによってエンドユーザのパフォーマンスを向上させると共に、ある特定の位置またはゾーンにおける障害からアプリケーション全体を隔離することが可能となる。例えば、顧客９２０は、アプリケーションのある機能（Ｗｅｂサーバなど）のために複数の可用性ゾーン９０８にわたっていくつかの小規模なインスタンス９０４を展開し、それと並行して、例えば、他の機能（例えば、データベースサーバなど）のために１つの大規模なインスタンス９０４を展開することを選択してよい。顧客９２０は、同様に地政学的な理由により、特定の地理的位置におけるホストコンピュータ９０６によってインスタンス９０４をホスティングすることを要求してもよい。
【００７３】
[0087]エンドユーザ９５０は、エンドユーザ・コンピュータシステム９５２を利用して、割り当てられたインスタンス９０４上で実行されるアプリケーションの機能に１つ以上のネットワーク９４４を介してアクセスしてよい。ネットワーク（単数または複数）９４４は、ローカルエリアネットワーク（ｌｏｃａｌ−ａｒｅａ  ｎｅｔｗｏｒｋ：ＬＡＮ）、ワイドエリアネットワーク（ｗｉｄｅ−ａｒｅａ  ｎｅｔｗｏｒｋ：ＷＡＮ）、インターネットおよび／または当技術分野において既知の他のネットワーク基盤の組み合わせを表し得る。このネットワーク９４４により、コンピューティングプラットフォーム９０２内の各ホストコンピュータ９０６は、エンドユーザ・コンピュータシステム９５２に接続され、互いに接続され、さらには他のコンピューティングリソースに接続される。エンドユーザ・コンピュータシステム９５２は、パーソナルコンピュータ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ：ＰＣ）、デスクトップワークステーション、ラップトップコンピュータ、ノートブック、パーソナルデジタルアシスタント（ＰＤＡ）、電子書籍リーダー、ゲーム機、セットトップボックス、家庭用電子機器、サーバコンピュータ、またはネットワーク（単数または複数）９４４に接続することができ、コンピューティングプラットフォーム９０２内のホストコンピュータ９０６と通信を行うことが可能なその他のコンピューティングデバイスを表し得る。
【００７４】
[0088]顧客９２０は、コンピューティングプラットフォーム９０２上のリソースへのアクセスを望む場合、同様に顧客コンピュータシステム９２２を利用して、ネットワーク（単数または複数）９４４を介してコンピューティングプラットフォームに接続することにより、コンピューティングプラットフォームによって提供されたコンピューティングリソースの設定および管理を行ってよい。その際、コンピューティングプラットフォーム９０２は、いくつかのアプリケーションサーバ９２４を含み得る。これらのアプリケーションサーバは、様々な管理サービスを顧客９２０に提供することにより、この顧客がデータ処理リソースおよび／または他のコンピューティングリソースのインスタンス９０４を購入および保守し、購入したインスタンス９０４全体にわたってアプリケーションのコンポーネントを展開し、そのアプリケーションの実行を監視・統括するといったことを行えるようにする。エンドユーザ・コンピュータシステム９５２の場合のように、顧客コンピュータシステム９２２は、ＰＣ、デスクトップワークステーション、ラップトップコンピュータ、ノートブック、ＰＤＡ、電子書籍リーダー、ゲーム機、セットトップボックス、家庭用電子機器、サーバコンピュータ、またはネットワーク（単数または複数）９４４に接続可能であり、コンピューティングプラットフォーム９０２内のアプリケーションサーバ９２４と通信を行うことができるその他のコンピューティングデバイスを表し得る。
【００７５】
[0089]アプリケーションサーバ９２４は、標準的なサーバコンピュータ、データベースサーバ、Ｗｅｂサーバ、ネットワークアプライアンス、デスクトップコンピュータ、他のコンピューティングデバイスおよびこれらの任意の組み合わせを表し得る。アプリケーションサーバ９２４は、管理サービスを提供するためにいくつかのモジュールを実行し得る。これらのモジュールは、１つのアプリケーションサーバ９２４上で、またはコンピューティングプラットフォーム９０２内の複数のアプリケーションサーバにわたって並列に実行され得る。加えて、各モジュールは、種々のアプリケーションサーバ９２４、またはコンピューティングプラットフォーム９０２内の他のコンピューティングデバイス上で実行されるいくつかのサブコンポーネントからなる場合がある。これらのモジュールは、ソフトウェア、ハードウェアまたは両者の何らかの組み合わせとして実施され得る。
【００７６】
[0090]アプリケーションサーバ９２４は、インスタンス管理モジュール９２６を実行し得る。インスタンス管理モジュール９２６により、顧客９２０は、データ処理リソースまたは他のコンピューティングリソースのインスタンス９０４を購入および設定し、購入したインスタンス９０４を管理および保守するといったことを行うことができ得る。インスタンス９０４は、様々なモードを通じて取得可能なインスタンス（上述したリザーブドインスタンス、スポットインスタンスおよびオンデマンドインスタンスなど）を含み得る。各顧客９２０についての購入済みインスタンス９０４、並びに対応する設定情報およびステータス情報は、顧客／インスタンス管理データ９２８に記憶され得る。顧客／インスタンス管理データ９２８は、データベース９３０内に、またはコンピューティングプラットフォーム９０２内のアプリケーションサーバ（単数または複数）９２４に使用可能な他のデータストレージシステム内に記憶され得る。
【００７７】
[0091]リザーブドインスタンスは、特定のタイプおよび構成のインスタンスをいくつか一定期間（１年または３年など）予約する機能を顧客に提供する。リザーブドインスタンスは、将来のある時点で顧客９２０によって起動および展開するために待機状態で指定および配置されるように構成されたデータ処理リソースの実際のインスタンスを表し得る。またはリザーブドインスタンス９０４は、必要なときに迅速に構成および起動できるようにコンピューティングリソースの提供者によって予約された全体容量を表し得る。アプリケーションを展開するとき、顧客９２０は、特定のタイプおよび構成（例えば、サイズ、プラットフォーム、テナンシー、可用性ゾーンなど）のいくつかのオンデマンドインスタンス９０４を購入して起動することにより、そのアプリケーションを直ちに利用可能なようにサポートすることができ、それと同様に、例えば、同一または同様のタイプおよび構成のいくつかのリザーブドインスタンスを購入して起動することにより、上記アプリケーションに対する需要または容量の要求が増大したことに応答して将来的にそのアプリケーションをスケールアップすることができる。
【００７８】
[0092]顧客９２０は、顧客コンピュータシステム９２２上で実行されるＷｅｂブラウザアプリケーションを利用して、インスタンス管理モジュール９２６によって提示されたユーザインターフェース（ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ：ＵＩ）にＷｅｂサービスを通じてアクセスすることにより、自身が購入したインスタンス９０４の設定および保守を行ってよい。顧客９２０は、顧客コンピュータシステム９２２上で実行されるＷｅｂブラウザアプリケーションを利用して、プール生成モジュール９４６によって提示されたＵＩにＷｅｂサービスを通じてアクセスすることにより、自ら購入したインスタンス９０４の１つ以上を上述したユーザ定義プールとして作成してよい。追加的または代替的に、インスタンス管理モジュール９２６またはプール生成モジュール９４６は、アプリケーションプログラミングインターフェース（ＡＰＩ）９３２を公開し得る。このＡＰＩは、ネットワーク（単数または複数）９４４を介し、顧客コンピュータシステム９２２上で実行されるスタンドアローンのアプリケーションプログラムによってアクセスされ得る。インスタンス管理モジュール９２６またはプール生成モジュール９４６を設定および保守するサービスにアクセスするための他のメカニズム（リモートプロシージャコール、ＳＯＡＰベースのＷｅｂサービス、リモートファイルアクセス、独自のクライアントサーバアーキテクチャおよび同種のものなど）も想定され得る。
【００７９】
[0093]ある実施形態では、インスタンス管理モジュール９２６により、オンデマンドインスタンスとリザーブドインスタンスを顧客９２０が共に購入できるようにしてよい。オンデマンドインスタンスは、購入後直ちに起動されて、アプリケーションのコンポーネントを迅速に展開させることができる。オンデマンドインスタンスは、アプリケーションに対する需要または容量の要求が経時変化するにつれて、手動で、または自動スケーリングによって自動で、必要に応じてさらに追加または除去され得る。顧客９２０は、例えば、インスタンス９０４の運用時間数および／または実際に利用したリソースに基づき、自身のオンデマンドインスタンスに関連した継続的な使用コストを負担し得る。
【００８０】
[0094]顧客９２０は、アプリケーションの展開時に購入した自身のインスタンス９０４が、プライベートな購入／入札プロセスを用いて上記のプライベートマーケットプレイス経由で自らの内部ユーザに提供されるのであれば、自身のコンピューティング容量がより効率良く利用され得ると判断する場合がある。例えば、顧客９２０のユーザの計算ニーズは経時的に変化するため、それぞれの時刻で異なるサイズまたはプラットフォームのデータ処理インスタンス９０４が必要となる場合がある。同様に、リソースに対する全需要も変化するため、より多くのインスタンス９０４が必要となり、あるいは本来期待されるものとは異なる可用性ゾーン９０８内のインスタンスが必要となる場合がある。顧客９２０は、自らのインスタンス９０４によって提供されるコンピューティング容量をより効率良く利用し、購入したインスタンスへの当初の投資をより多く回収するため、自身の内部ユーザにそのインスタンス９０４を「販売」することを望む場合がある。その際、プール生成モジュール９４６はさらに、顧客９２０がいくつかのインスタンス９０４を選択してプライベートマーケットプレイスに割り当てることができるようにしてよい。インスタンス管理モジュール９２６は、プライベートマーケットプレイス用に選択されたインスタンス（単数または複数）９０４に関する情報を、データベース９３０内、またはコンピューティングプラットフォーム９０２内のアプリケーションサーバ（単数または複数）９２４に使用可能な他のデータストレージシステム内のリザーブドインスタンスリスト９３４およびスポットインスタンスリスト９４０に記憶し得る。
【００８１】
[0095]一実施形態では、顧客９２０は、顧客９２０によって指定された一連の内部ユーザにとってアクセス可能なユーザ定義プールまたはプライベートマーケットプレイスにいくつかのインスタンス９０４を移管してよい。一実施形態では、プライベートマーケットプレイスはプライベートスポットマーケットを実装し得る。このスポットマーケットは、上述したようなスポットマーケットに使用される特徴の一部を用いてインスタンスへのアクセスを提供するように構成されている。しかしながら、プライベートマーケットプレイスは、顧客９２０の指定ユーザまたは内部ユーザに限定され得る。さらに、プライベートマーケットプレイスは、顧客９２０によって選択された個別的な一連のパラメータおよび特徴を用いて動作し得る。
【００８２】
[0096]一実施形態では、プール生成モジュール９４６は、ユーザ定義プールまたはプライベートマーケットプレイスを顧客９２０が購入できるようにしてよい。ユーザ定義プールを購入して起動することにより、そのユーザ定義プールに割り当てられているインスタンスに対し、顧客９２０によって指定されたユーザが入札できるようにしてよい。ユーザ定義プールは、手動で、または各方針を利用することによって自動で、顧客９２０により必要に応じてさらに追加または除去され得る。顧客９２０は、例えば、ユーザ定義プールの数並びにユーザ定義プールの運用時間数および／または実際に利用したリソースに基づき、自身のユーザ定義プールに関連した１回限りの料金および／または継続的な使用コストを負担し得る。
【００８３】
[0097]アプリケーションサーバ９２４は、インスタンスリスティングモジュール９３６をさらに実行し得る。インスタンスリスティングモジュール９３６により、顧客９２０によって特定されたユーザが、プライベートマーケットプレイスに割り当てられたインスタンス９０４を閲覧し、それに入札することが可能となり得る。顧客９２０のユーザは、顧客コンピュータシステム９２２上で実行されるＷｅｂブラウザアプリケーションを利用して、インスタンスリスティングモジュール９３６によって提示されたユーザインターフェース（ＵＩ）にＷｅｂサービスを通じてアクセスすることにより、プライベートマーケットプレイスにリストアップされたインスタンス９０４を閲覧および選択して「購入」または「入札」し得る。追加的または代替的に、インスタンスリスティングモジュール９３６は、ＡＰＩ９３２を公開し得る。このＡＰＩは、ネットワーク（単数または複数）９４４を介し、顧客コンピュータシステム９２２上で実行されるスタンドアローンのアプリケーションプログラムによってアクセスされ得る。
【００８４】
[0098]インスタンスリスティングモジュール９３６は、データベース９３０内のリザーブドインスタンスリスト９３４およびスポットインスタンスリスト９４０にアクセスして、特定のタイプおよび構成要件（例えば、サイズ、プラットフォーム、テナンシー、可用性ゾーンなど）を満足させるインスタンスの可用性および価格設定を決定し得る。インスタンスリスティングモジュール９３６は、プライベートマーケットプレイス内のインスタンスの割り当てに影響を与える場合もある。リザーブドインスタンスリスティングモジュール９３６は、データベース９３０または他のデータストレージシステム内のプライベートマーケットプレイス履歴データ９３８内に、プライベートマーケットプレイスを介したインスタンスの個々の「販売」に関するデータをさらに記憶してもよい。プライベートマーケットプレイス履歴データ９３８は、プライベートマーケットプレイスを介したインスタンスの割り当てに関する課金データを分析するために、顧客９２０またはコンピューティングリソースの提供者によって利用され得る。
【００８５】
[0099]ある実施形態では、顧客９２０は、上記モジュールの１つ以上を利用して、別のタイプのインスタンスが利用可能になったらそれらを追加してよい。上記機能の少なくとも一部は、顧客のインスタンスの１つ以上において実行することができ、あるいはプロバイダネットワークのインスタンスまたは他のリソース上で実行することができる。
【００８６】
[0100]一実施形態では、プライベートマーケットプレイス用にユーザのリソーススロットの１つ以上を選択し、関連パラメータを選択するためのユーザインターフェースをユーザに提供することができる。例えば、図１０に示したものなどのユーザインターフェースにユーザがアクセスできるようにしてよい。一実施形態では、顧客は、図９のインスタンス管理モジュール９９２６によって提示されたＵＩを利用して、プライベートマーケットプレイスにリストアップすべきインスタンスを選択してよい。例えば、図１０に示すように、インスタンス管理モジュール９２６またはクラウドコンピューティングプラットフォーム９０２内の別のモジュールは、顧客９２０に対し、顧客コンピュータシステム９２２上で実行されるＷｅｂブラウザまたは他のクライアントアプリケーションのウィンドウ１０２内にＵＩ１００を提示し得る。ＵＩ１００は、リザーブドインスタンスリスト１０４を含み得る。このリストは、顧客９２０によって現在所有されている図８のインスタンス９０４のリザーブドインスタンスをリストアップしており、このリストには、それぞれのタイプおよび設定パラメータ（可用性ゾーン、プラットフォーム、サイズ、テナンシーなど）が含まれる。リザーブドインスタンスリスト１０４は、インスタンス９０４を構成する各リザーブドインスタンスの本来の期間およびリザーブドインスタンスの有効期限が切れるまでの残り期間をさらに含み得る。リザーブドインスタンスリスト１０４は、リザーブドインスタンスが有効であるかどうか、期限切れかどうか、ユーザ定義プールに既にリストアップされているかどうか、既にリストアップされていた場合にはそのユーザ定義プールの名前など、インスタンス９０４を構成するリザーブドインスタンスの現在状態も含み得る。
【００８７】
[0101]ＵＩ１００は、選択型ＵＩコントロール（図９に示すチェックボックスＵＩコントロール１０６など）をさらに含み得る。このコントロールにより、顧客９２０は、リザーブドインスタンスリスト１０４に示した１つ以上のリザーブドインスタンスを選択して、プライベートマーケットプレイスにリストアップすることができる。その後、顧客９２０は、コマンド型ＵＩコントロール（図９に示すリスト作成ＵＩコントロール１０８など）を選択してよい。ＵＩ１００を介してインスタンス９０４のリザーブドインスタンスを選択し、リザーブドインスタンスのマーケットプレイスにリストアップする他の方法も実装してよい。例えば、マウスまたは他の入力コントロールを用いてリザーブドインスタンスリスト１０４の列を選択し、その選択された列に対し、インスタンス管理モジュール９２６によって提示されたコンテキストメニューからコマンド型ＵＩコントロールを選択するといった方法がある。
【００８８】
[0102]プライベートマーケットプレイスを作成するオプションを選択した後、インスタンス管理モジュール９２６は、そのプライベートマーケットプレイス用のパラメータについての情報を受け取ってよい。例えば、図９に示すＵＩ１１０内のユーザ定義プール作成ＵＩコントロール１１８を選択すると、インスタンス管理モジュール９２６またはクラウドコンピューティングプラットフォーム９０２内の別のモジュールは、図１１に示すように、ＵＩ１１００を顧客８２０に提示し得る。ＵＩ１１００は、例えば、顧客コンピュータシステム８２２上で実行されるＷｅｂブラウザまたは他のクライアントアプリケーションのウィンドウ１１０２内に提示され得る。ＵＩ１１００は、プライベートマーケットプレイスの概要を含み得る。この概要には、当該プライベートマーケットプレイス（ユーザ定義プール）のプロパティおよび入札パラメータ（例えば、要求タイプ、入札方法、通貨など）が含まれる。ＵＩ１１００は、ユーザ選択ＵＩコントロール１１０２をさらに含み、それによってプライベートマーケットプレイスに参加できるユーザの最大人数を顧客８２０が選択することができる。
【００８９】
[0103]ＵＩ１１００は、いくつかの入力ＵＩコントロール１１０４Ａ〜１１０４Ｎをさらに含むことができ、それによってプライベートマーケットプレイスに参加できるユーザを顧客９２０が特定することができる。一実施形態によれば、マーケットプレイスにアクセス可能な各ユーザに対し、顧客９２０が固有の識別子、名前および組織をリストアップできるようにしてよい。これらのユーザは、顧客９２０に関連付けられたユーザとして前もって入力され、記憶されていた場合がある。このユーザ情報を使用することにより、プライベートマーケットプレイス内のリソースに入札する権限が与えられているユーザを判別することができる。また、このユーザ情報を使用して、課金目的のために使用率を追跡することもできる。顧客９２０は、ＵＩコントロール１１０４Ａ〜１１０４Ｎを用いてユーザを削除することによって１人以上のユーザを除外してもよい。
【００９０】
[0104]ある実施形態では、ユーザ定義プールの作成および管理を容易に行うことができるようにＡＰＩが提供され得る。このＡＰＩは、電子メッセージを受信するように構成され得る。この電子メッセージでは、プロバイダネットワーク内のコンピューティングリソースの割り当てを行い、それらのコンピューティングリソースで構成されるユーザ定義プールを作成することを求める要求を示す識別子がコード化されている。それらの電子メッセージの１つを受信したことに応答して、ＡＰＩは、別の電子メッセージを送信し得る。この電子メッセージでは、顧客に関連した一連のリソーススロットが、ある価格設定方式、および上記ユーザ定義プール向けに指定された１人以上のユーザに関連付けられていることを知らせる情報が示されている。
【００９１】
[0105]図１２は、あるユーザ定義プールに関するユーザ定義プールレコード１２００に記憶されたいくつかのデータ要素を示すデータ構造図である。図に示したデータ構造は、データファイル、データベーステーブル、コンピュータメモリに記憶されたオブジェクト、プログラム的構造、または当技術分野において広く知られたその他のデータコンテナを表し得ることが当業者によって理解されるであろう。このデータ構造に含まれる各データ要素は、データファイル内の１つ以上のフィールド、データベーステーブルの１つ以上のカラム、オブジェクトの１つ以上の属性、プログラム的構造の１つ以上のメンバ変数、または当技術分野において広く知られたデータ構造のその他のデータ単位を表し得る。この実装は選択可能な事項であるが、上記データ構造を実装するコンピューティングシステムの技術、性能および他の要件に依存し得る。
【００９２】
[0106]各ユーザ定義プールレコード１２００は、プライベートマーケットプレイスを作成しているクラウドコンピューティングプラットフォーム８０２の顧客８２０を識別する顧客ＩＤ１２０２を含み得る。一実施形態によれば、各ユーザ定義プールレコード１２００は、入札要求との関連付けが可能な特定のインスタンス８０４を識別するインスタンスＩＤ１２０４も含み得る。インスタンスＩＤ１２０４は、例えば、顧客／インスタンス管理データ８２８に記憶されたインスタンス１０４に関する情報に相当し得る。本実施形態では、各インスタンス１０４は、プライベートマーケットプレイス内に含まれ得るが、関連するユーザ定義プールレコード１２００をデータベース８３０内に有し得る。
【００９３】
[0107]ある実施形態では、ユーザ定義プールレコード１２００は、追加的または代替的に、関連するインスタンス１２０４（単数または複数）を記述するタイプおよび構成用パラメータを含み得る。このようなパラメータとしては、サイズ１２０６、プラットフォーム１２０８、テナンシー１２１０、可用性ゾーン１２１２、インスタンスタイプ１２１４などがある。ユーザ定義プールレコード１２００は、そのレコードに関連付けられた特定ユーザの識別を示すユーザＩＤ１２１６も含み得る。ユーザＩＤ１２１６は、図１０に関して上述したように、ユーザ定義プールを作成するときに顧客８２０によって提供される識別子情報に相当し得る。
【００９４】
[0108]ユーザ定義プールレコード１２００は、インスタンスを求める特定の要求に相当する要求ＩＤ１２１８に関する情報、およびその要求に対する入札金額に相当する提示価格１２１９も含み得る。ユーザ定義プールレコード１２００は、１つ以上の使用率レコード１２２０Ａ〜１２２０Ｎ（本明細書では通常「使用率１２２０」とも呼ばれる）、および１つ以上の課金レコード１２２２Ａ〜１２２２Ｎ（本明細書では通常「課金１２２２」とも呼ばれる）に関する情報をさらに含み得る。図１０に関してさらに上述したように、ユーザは、プライベートマーケットプレイス内のインスタンスへの入札が成功した後、インスタンスにアクセスし得る。そのユーザについて課金目的のために、使用率１２２０Ａ〜１２０２Ｎに対する課金レコード１２２２Ａ〜１２２２Ｎが追跡され得る。ユーザ定義プールレコード１２００は、図１２に示したもの、並びにインスタンス管理モジュール９２６、インスタンスリスティングモジュール９３６および／またはプライベートマーケットプレイスを実装するクラウドコンピューティングプラットフォーム９０２の他のモジュールによって利用される上記のもの以外の別のデータ要素を含み得ることが理解されよう。
【００９５】
[0109]別の実施形態では、インスタンス管理モジュール９９２６またはクラウドコンピューティングプラットフォーム０９０２内の他のモジュールは、顧客９２０および／または顧客コンピュータシステム９９２２にＵＩまたはＡＰＩ９３２を提供し得る。このＵＩまたはＡＰＩ９３２を用いることにより、顧客は、自身のユーザ定義プールを修正し、そのユーザ定義プールのステータスを確認し、かつ／またはユーザ定義プールを引き渡すメカニズムを用いてインスタンスを提供することをそれ以上望まない場合、そのユーザ定義プールを削除することができる。
【００９６】
[0110]図１３は、プロバイダネットワーク内のコンピューティングリソースを割り当てる例示的な動作手順を示す図である。ある実施形態では、ユーザ定義プールを作成するメカニズムは、図１のユーザ定義プール生成サービス１８０などのサービスによって提供することができる。この動作手順は、１つ以上のコンピューティングデバイスを含むシステムによって実装され得る。１つ以上のコンピューティングデバイスは、複数のリソーススロットを含み得る。これらの各リソーススロットは、コンピューティングインスタンスをホスティングするように構成されている。図１３を参照すると、この動作手順は動作１３００で開始される。動作１３００の後、動作１３０２が実行され得る。動作１３０２は、第１の価格設定方式に従って複数のリソーススロットを複数のエンティティに割り当てることを示している。これらのエンティティは、プロバイダネットワークの顧客またはユーザ（大学または他の組織など）に相当し得る。第１の価格設定方式は、リソーススロットおよびプロバイダネットワーク内の他のリソースの販売および割り当てを行うためにプロバイダネットワークによって利用される価格方式であってよい。
【００９７】
[0111]動作１３０２の後、動作１３０４が実行され得る。動作１３０４は、複数のエンティティのうちの第１エンティティに関連付けられたリソーススロットの少なくとも１つが第２の価格設定方式に関連付けられている旨の通知を受領することを示している。このように通知されたリソーススロットは、他のエンティティにとってアクセス可能となり得る。一実施形態では、第１エンティティにより、第２の価格設定方式および他のエンティティが指定され得る。サブセットは、プライベートマーケットプレイスに割り当てるために顧客によって指定されたリソーススロットのグループに相当し得る。第２の価格設定方式は、他のエンティティにリソーススロットを提供するためにユーザによって選択された方式に相当し得る。他のエンティティは、顧客によって指定された、プライベートマーケットプレイス内のリソーススロットにアクセス可能なユーザに相当し得る。
【００９８】
[0112]動作１３０４の後、動作１３０６が実行され得る。動作１３０６は、通知されたリソーススロットをオンラインにする必要があることを第１エンティティが指示したと判定することを示している。
【００９９】
[0113]通知されたリソーススロットをオンラインにする必要がある場合、動作１３０６の後に動作１３０８が実行され得る。この動作は、第２の価格設定方式に従って、通知されたリソーススロットを他のエンティティに割り当てることを示している。
【０１００】
[0114]図１４は、プロバイダネットワーク内のコンピューティングリソースを割り当てる例示的な動作手順を示す図である。ある実施形態では、コンピューティングリソースを割り当てるメカニズムは、図１のユーザ定義プール生成サービス１８０などのサービスによって提供することができる。この動作手順は、１つ以上のコンピューティングデバイスを含むシステムによって実装され得る。１つ以上のコンピューティングデバイスは、複数のリソーススロットを含み得る。これらの各リソーススロットは、コンピューティングインスタンスをホスティングするように構成されている。図１４を参照すると、この動作手順は動作１４００で開始される。動作１４００の後、動作１４０２が実行され得る。動作１４０２は、第１の価格設定方式に従って複数のエンティティに割り当てられた複数のリソーススロットを維持することを示している。
【０１０１】
[0115]動作１４０２の後、動作１４０４が実行され得る。動作１４０４は、複数のエンティティのうちの第１エンティティに関連付けられた１つ以上のリソーススロットが第２の価格設定方式に関連付けられ、グループ分けされた他のエンティティにとってアクセス可能である旨の第１通知を受領することを示している。
【０１０２】
[0116]動作１４０４の後、動作１４０６が実行され得る。動作１４０６は、複数のエンティティのうちの第２エンティティに関連付けられた１つ以上のリソーススロットが第２の価格設定方式に関連付けられ、グループ分けされた他のエンティティにとってアクセス可能である旨の第２通知を受領することを示している。
【０１０３】
[0117]動作１４０６の後、動作１４０８が実行され得る。動作１４０８は、第１エンティティに関連付けられた１つ以上のリソーススロットと第２エンティティに関連付けられた１つ以上のリソーススロットとを組み合わせてオンラインにする必要があると判定することを示している。これらのリソーススロットをオンラインにする必要がある場合、動作１４０８の後に動作１４１０が実行され得る。この動作は、第１エンティティに関連付けられた１つ以上のリソーススロットと第２エンティティに関連付けられた１つ以上のリソーススロットとを組み合わせること、およびこのように組み合わされたリソーススロットに対し、グループ分けされた他のエンティティが第２の価格設定方式に従って入札できることを示している。
【０１０４】
[0118]図１５は、プロバイダネットワーク内のコンピューティングリソースを割り当てる例示的な動作手順を示す図である。ある実施形態では、ユーザ定義プールを作成するメカニズムは、図１のユーザ定義プール生成サービス１８０などのサービスによって提供することができる。この動作手順は、１つ以上のコンピューティングデバイスを含むシステムによって実装され得る。１つ以上のコンピューティングデバイスは、複数のリソーススロットを含み得る。これらの各リソーススロットは、コンピューティングインスタンスをホスティングするように構成されている。図１５を参照すると、この動作手順は動作１５００で開始される。動作１５００の後、動作１５０２が実行され得る。動作１５０２は、ユーザ選択の価格設定方式に従って、１つ以上のリソーススロットへのアクセスを要求することが認められたユーザの指定グループに１つ以上のリソーススロットを割り当てることを示している。一実施形態では、提供者選択の価格設定方式に従って、あるエンティティに関連付けられたリソーススロットから１つ以上のリソーススロットが選択され得る。
【０１０５】
[0119]動作１５０２の後、動作１５０４が実行され得る。動作１５０４は、１つ以上のリソーススロットのコンピューティング容量を超えて１つ以上のリソーススロットへのアクセスを求める要求を受け取った旨の通知を受領することを示している。
【０１０６】
[0120]動作１５０４の後、動作１５０６が実行され得る。動作１５０６は、１つ以上のリソーススロットを求める超過コンピューティング容量の要求を割り当てるように方針が記憶されていることを判定することを示している。
【０１０７】
[0121]１つ以上のリソーススロットを求める超過コンピューティング容量の要求を割り当てるように方針が記憶されている場合、動作１５０６の後に動作１５０８が実行され得る。この動作は、そのアクセス要求を実現させるために別のコンピューティング容量を割り当てることを示している。
【０１０８】
[0122]本開示の実施形態は、以下の条項に照らして記載することができる。
【０１０９】
条項１
プロバイダネットワーク内のコンピューティングリソースを割り当てるシステムであって、
それぞれがコンピューティングインスタンスをホスティングするように構成された１つ以上のリソーススロット、を含む１つ以上のコンピューティングデバイスと、
少なくとも１つのメモリであって、システムの１つ以上のプロセッサによって実行されると、
第１の価格設定方式に従って複数のリソーススロットを複数のエンティティに割り当てること、
複数のエンティティのうちの第１エンティティに関連付けられたリソーススロットの少なくとも一部が、第１エンティティによって指定された第２の価格設定方式に関連付けられ、第１エンティティによって特定された１人以上のユーザにとってアクセス可能である旨の通知を受領すること、
および通知されたリソーススロットを第２の価格設定方式に従って１人以上のユーザに割り当てること、をシステムに少なくとも行わせるコンピュータ命令が内部に記憶された少なくとも１つのメモリと、を含むシステム。
【０１１０】
条項２
システムの１つ以上のプロセッサによって実行されると、第１エンティティによって特定された１人以上のユーザが、通知されたリソーススロットに第２の価格設定方式に従って入札することを少なくとも可能にすることをシステムに行わせるコンピュータ可読命令をさらに含む、条項１に記載のシステム。
【０１１１】
条項３
システムの１つ以上のプロセッサによって実行されると、第１エンティティによって特定された１人以上のユーザが、通知されたリソーススロットに入札することを可能にするユーザインターフェースを少なくとも提供することをシステムに行わせるコンピュータ可読命令をさらに含む、条項２に記載のシステム。
【０１１２】
条項４
システムの１つ以上のプロセッサによって実行されると、通知されたリソーススロット、第１エンティティによって特定された１人以上のユーザ、および第２の価格設定方式の選択を容易にするユーザインターフェースを少なくとも提供することをシステムに行わせるコンピュータ可読命令をさらに含む、条項１に記載のシステム。
【０１１３】
条項５
プロバイダネットワーク内のコンピューティングリソースの割り当て方法であって、
複数のコンピューティングデバイスを含み、各コンピューティングデバイスの容量が１つ以上のリソーススロットへと論理的に分割されたコンピューティング環境において、第１セットの価格設定方式に従って複数のリソーススロットを第１ユーザに関連付けること、並びに
１つ以上の関連付けられたリソーススロットを特定すること、および１つ以上の関連付けられたリソーススロットに、ユーザによって指定された第２セットの価格設定方式に従ってアクセス可能な他のユーザを特定することをユーザに可能にすること、を含む方法。
【０１１４】
条項６
第２の価格設定方式に従って１つ以上の関連付けられたリソーススロットを他のユーザに割り当てることをさらに含む条項５の方法。
【０１１５】
条項７
第２の価格設定方式に従って１つ以上の関連付けられたリソーススロットに他のユーザが入札することを可能にすることをさらに含む、条項５の方法。
【０１１６】
条項８
１つ以上の関連付けられたリソーススロット、１つ以上の関連付けられたリソーススロットにアクセス可能な他のユーザ、および第２の価格設定方式の指定を受け取るように動作可能なユーザインターフェースを提供することをさらに含む、条項５の方法。
【０１１７】
条項９
第２の価格設定方式は、リソーススロットを取得するのに使用する通貨、最低／最高通貨水準または入札アルゴリズムを示す、条項５の方法。
【０１１８】
条項１０
通貨が金銭単位に関する、条項９の方法。
【０１１９】
条項１１
通貨がＣＰＵサイクル、ストレージ、メモリまたはネットワーク帯域に関する、条項９の方法。
【０１２０】
条項１２
上記入札は、ＣＰＵサイクルまたはネットワーク帯域に入札することを含む、条項７の方法。
【０１２１】
条項１３
１つ以上の関連付けられたリソーススロットに他のユーザの一部がアクセスすることを拒否することをユーザに可能にすることをさらに含む、条項５の方法。
【０１２２】
条項１４
上記可能にすることは、１つ以上の関連付けられたリソーススロットを割り当てるための要求を受領すること、当該要求を要求識別子に関連付けること、および１つ以上の関連付けられたリソーススロットをプール識別子に関連付けることを含む、条項５の方法。
【０１２３】
条項１５
１つ以上の関連付けられたリソーススロットにアクセスするための課金情報を求めることをさらに含む、条項５の方法。
【０１２４】
条項１６
１つ以上の関連付けられたリソーススロットの少なくとも１つに第２の価格設定方式に従って他のユーザのいずれが入札したかを判定すること、当該判定することに基づいて課金情報を収集することをさらに含む、条項７の方法。
【０１２５】
条項１７
判定された他のユーザをユーザ識別子に関連付けること、および判定された他のユーザに関連付けられたレコードにユーザ識別子を含めることをさらに含む、条項１６の方法。
【０１２６】
条項１８
キー値の組み合わせとしてレコードが作成されている、条項１７の方法。
【０１２７】
条項１９
入札は、１つ以上の関連付けられたリソーススロットに支払われるべき最高価格を含む、条項７の方法。
【０１２８】
条項２０
最高価格が予定価格を超えたときに、１つ以上の関連付けられたリソーススロットの１つが他のユーザの１人に割り当てられる、条項１９の方法。
【０１２９】
条項２１
予定価格は、１つ以上の関連付けられたリソーススロットの需要と供給に基づいている、条項２０の方法。
【０１３０】
条項２２
予定価格はユーザによって選択可能である、条項２１の方法。
【０１３１】
条項２３
コンピュータ可読命令が記憶された非一時的コンピュータ可読記憶媒体であって、コンピュータ可読命令は、１つ以上のコンピューティングデバイス上で実行されると、
複数のコンピューティングデバイスを含み、各コンピューティングデバイスの容量が１つ以上のリソーススロットへと論理的に分割されたコンピューティング環境において、ユーザに関連付けられた１つ以上のリソーススロットを特定すること、およびユーザに関連付けられた１つ以上のリソーススロットに、ユーザによって指定された価格設定方式に従ってアクセス可能な他のユーザを特定することをユーザに可能にするインターフェースを生成すること、並びに
ユーザに関連付けられた１つ以上のリソーススロットに他のユーザが価格設定方式に従って入札することを少なくとも可能にすることをコンピューティング環境に行わせること、を少なくとも行わせる命令を含む、非一時的コンピュータ可読記憶媒体。
【０１３２】
条項２４
価格設定方式は、リソーススロットを取得するのに使用する通貨、価格水準または入札アルゴリズムを含む、条項２３の非一時的コンピュータ可読記憶媒体。
【０１３３】
条項２５
入札アルゴリズムは、競り上げ式オークションと競り下げ式オークションの一方を含む、条項２４の非一時的コンピュータ可読記憶媒体。
【０１３４】
条項２６
１つ以上のコンピューティングデバイス上で実行されると、ユーザに関連付けられた１つ以上のリソーススロットに他のユーザが入札することを可能にするための課金情報を求めることを少なくとも行わせる命令を含む、条項２３の非一時的コンピュータ可読記憶媒体。
【０１３５】
条項２７
１つ以上のコンピューティングデバイス上で実行されると、ユーザに関連付けられた１つ以上のリソーススロットの１つ以上に他のユーザのいずれが価格設定方式に従って入札したかを判定すること、および当該判定することに基づいて課金情報を求めることを少なくとも行わせる命令を含む、条項２６の非一時的コンピュータ可読記憶媒体。
【０１３６】
条項２８
プロバイダネットワーク内のコンピューティングリソースを割り当てるシステムであって、
それぞれがコンピューティングインスタンスをホスティングするように構成された１つ以上のリソーススロット、を含む１つ以上のコンピューティングデバイスと、
少なくとも１つのメモリであって、システムの１つ以上のプロセッサによって実行されると、
第１の価格設定方式に従って複数のエンティティに割り当てた複数のリソーススロットを維持すること、
複数のエンティティのうちの第１エンティティに関連付けられた１つ以上のリソーススロットが第２の価格設定方式に関連付けられ、１人以上のユーザにとってアクセス可能である旨の第１通知を受領すること、
複数のエンティティのうちの第２エンティティに関連付けられた１つ以上のリソーススロットが第２の価格設定方式に関連付けられ、１人以上のユーザにとってアクセス可能である旨の第２通知を受領すること、および
第２の価格設定方式に従って、第１エンティティに関連付けられた１つ以上のリソーススロットおよび第２エンティティに関連付けられた１つ以上のリソーススロットを１人以上のユーザに割り当てること、をシステムに少なくとも行わせるコンピュータ命令が内部に記憶された少なくとも１つのメモリと、を含むシステム。
【０１３７】
条項２９
システムの１つ以上のプロセッサによって実行されると、第１エンティティに関連付けられた１つ以上のリソーススロットおよび第２エンティティに関連付けられた１つ以上のリソーススロットに、第２の価格設定方式に従って１人以上のユーザが入札することを少なくとも可能にすることをシステムに行わせるコンピュータ可読命令をさらに含む、条項２８に記載のシステム。
【０１３８】
条項３０
システムの１つ以上のプロセッサによって実行されると、第１エンティティに関連付けられた１つ以上のリソーススロットおよび第２エンティティに関連付けられた１つ以上のリソーススロットに１人以上のユーザが入札することを可能にするユーザインターフェースを少なくとも提供することをシステムに行わせるコンピュータ可読命令をさらに含む、条項２８に記載のシステム。
【０１３９】
条項３１
システムの１つ以上のプロセッサによって実行されると、第１エンティティに関連付けられた１つ以上のリソーススロットおよび第２エンティティに関連付けられた１つ以上のリソーススロット、１人以上のユーザ並びに第２の価格設定方式の選択を容易にするユーザインターフェースを少なくとも提供することをシステムに行わせるコンピュータ可読命令をさらに含む、条項２８に記載のシステム。
【０１４０】
条項３２
プロバイダネットワーク内のコンピューティングリソースの割り当て方法であって、
複数のコンピューティングデバイスを含み、各コンピューティングデバイスの容量が１つ以上のリソーススロットへと論理的に分割されたコンピューティング環境において、第１セットの価格設定方式に従って１つ以上のリソーススロットを第１ユーザに関連付け、第１セットの価格設定方式に従って１つ以上のリソーススロットを第２ユーザに関連付けること、
第１ユーザに関連付けられた少なくとも１つのリソーススロットであって、指定された一連の他のユーザにより第２の価格設定方式に従ってアクセスされ得る少なくとも１つのリソーススロットを特定することを第１ユーザに可能にすること、および
第２ユーザに関連付けられた少なくとも１つのリソーススロットであって、指定された一連の他のユーザにより第２の価格設定方式に従ってアクセスされ得る少なくとも１つのリソーススロットを特定することを第２ユーザに可能にすること、を含む方法。
【０１４１】
条項３３
第２の価格設定方式が第１ユーザまたは第２ユーザによって選択される、条項３２の方法。
【０１４２】
条項３４
第１ユーザに関連付けられた少なくとも１つのリソーススロットまたは第２ユーザに関連付けられた少なくとも１つのリソーススロットにアクセス可能な他のユーザの別の１人を特定することを第２ユーザに可能にすることをさらに含む、条項３２の方法。
【０１４３】
条項３５
指定された一連の他のユーザの少なくとも１人が、第１ユーザに関連付けられた少なくとも１つのリソーススロットまたは第２ユーザに関連付けられた少なくとも１つのリソーススロットにアクセスすることを第１ユーザまたは第２ユーザが拒否することを可能にすることをさらに含む、条項３２の方法。
【０１４４】
条項３６
第２の価格設定方式を第１ユーザまたは第２ユーザが更新することを可能にすることをさらに含む、条項３２の方法。
【０１４５】
条項３７
第１ユーザに関連付けられた少なくとも１つのリソーススロットと第２ユーザに関連付けられた少なくとも１つのリソーススロットを組み合わせること、および組み合わされたリソーススロットの少なくとも１つに第２の価格設定方式に従ってアクセスすることを、指定された一連の他のユーザが要求することを可能にすることをさらに含む、条項３２の方法。
【０１４６】
条項３８
第１ユーザに関連付けられた少なくとも１つのリソーススロット、第２ユーザに関連付けられた少なくとも１つのリソーススロット、指定された一連の他のユーザ、および第２の価格設定方式の指定を受け取るように動作可能なユーザインターフェースを提供することをさらに含む、条項３２の方法。
【０１４７】
条項３９
上記要求は、組み合わされたリソーススロット内のリソーススロットへの入札を含む、条項３７の方法。
【０１４８】
条項４０
第２の価格設定方式は、リソーススロットを取得するのに使用する通貨、限度価格または入札アルゴリズムを含む、条項３２の方法。
【０１４９】
条項４１
第１ユーザに上記可能にすることおよび第２ユーザに上記可能にすることは、第１ユーザに関連付けられた少なくとも１つのリソーススロットまたは第２ユーザに関連付けられた少なくとも１つのリソーススロットを割り当てることの要求を受領すること、当該要求を要求識別子に関連付けること、および第１ユーザに関連付けられた少なくとも１つのリソーススロットまたは第２ユーザに関連付けられた少なくとも１つのリソーススロットをプール識別子に関連付けることを含む、条項３２の方法。
【０１５０】
条項４２
第１ユーザに関連付けられた少なくとも１つのリソーススロットまたは第２ユーザに関連付けられた少なくとも１つのリソーススロットにアクセスするための課金情報を求めることをさらに含む、条項３２の方法。
【０１５１】
条項４３
第１ユーザに関連付けられた少なくとも１つのリソーススロットまたは第２ユーザに関連付けられた少なくとも１つのリソーススロットに、指定された一連の他のユーザのいずれが第２の価格設定方式に従って入札したかを判定すること、および当該判定することに基づいて課金情報を求めることをさらに含む、条項３９の方法。
【０１５２】
条項４４
判定された他のユーザをユーザ識別子に関連付けること、および判定された他のユーザに関連付けられたレコードにユーザ識別子を含めることをさらに含む、条項４３の方法。
【０１５３】
条項４５
課金情報は、第１ユーザに関連付けられた少なくとも１つのリソーススロットと第２ユーザに関連付けられた少なくとも１つのリソーススロットを組み合わせる課金方針に従って収集される、条項４２の方法。
【０１５４】
条項４６
コンピュータ可読命令が記憶された非一時的コンピュータ可読記憶媒体であって、コンピュータ可読命令は、１つ以上のコンピューティングデバイス上で実行されると、
複数のコンピューティングデバイスを含み、各コンピューティングデバイスの容量が１つ以上のリソーススロットへと論理的に分割されたコンピューティング環境において、
第１ユーザに関連付けられた１つ以上のリソーススロットであって、グループ分けされた他のユーザにより価格設定方式に従ってアクセス可能な１つ以上のリソーススロットを第１ユーザが特定すること、および
第２ユーザに関連付けられた１つ以上のリソーススロットであって、グループ分けされた他のユーザにより価格設定方式に従ってアクセス可能な１つ以上のリソーススロットを第２ユーザが特定すること、を可能にするユーザインターフェースであって、
グループ分けされた他のユーザおよび価格設定方式が第１ユーザまたは第２ユーザによって選択されるユーザインターフェースを生成すること、並びに
第１ユーザに関連付けられた１つ以上のリソーススロットおよび第２ユーザに関連付けられた１つ以上のリソーススロットに、グループ分けされた他のユーザが価格設定方式に従って入札することを少なくとも可能にすることをコンピューティング環境に行わせること、を少なくとも行わせる命令を含む、非一時的コンピュータ可読記憶媒体。
【０１５５】
条項４７
価格設定方式は、リソーススロットを取得するのに使用する通貨、最低／最高価格設定水準または入札／価格設定アルゴリズムのうちの１つ以上を含む、条項４６の非一時的コンピュータ可読記憶媒体。
【０１５６】
条項４８
入札／価格設定アルゴリズムは、競り上げ式オークションと競り下げ式オークションの一方を含む、条項４７の非一時的コンピュータ可読記憶媒体。
【０１５７】
条項４９
１つ以上のコンピューティングデバイス上で実行されると、第１ユーザに関連付けられた１つ以上のリソーススロットおよび第２ユーザに関連付けられた１つ以上のリソーススロットに入札することをグループ分けされた他のユーザに可能にするための課金情報を求めることを少なくとも行わせる命令をさらに含む、条項４６の非一時的コンピュータ可読記憶媒体。
【０１５８】
条項５０
１つ以上のコンピューティングデバイス上で実行されると、第１ユーザに関連付けられた１つ以上のリソーススロットまたは第２ユーザに関連付けられた１つ以上のリソーススロットに、グループ分けされた他のユーザのいずれが価格設定方式に従って入札したかを判定すること、および当該判定することに基づいて課金情報を収集することを少なくとも行わせる命令を含む、条項４９の非一時的コンピュータ可読記憶媒体。
【０１５９】
条項５１
プロバイダネットワーク内のコンピューティングリソースを割り当てるシステムであって、
それぞれがコンピューティングインスタンスをホスティングするように構成された１つ以上のリソーススロット、を含む１つ以上のコンピューティングデバイスと、
少なくとも１つのメモリであって、システムの１つ以上のプロセッサによって実行されると、
提供者選択の価格設定方式に従ってエンティティに関連付けられたリソーススロットから選択された複数のリソーススロットの一部に、エンティティ選択の価格設定方式に従ってアクセスすることを要求可能な１人以上のユーザに複数のリソーススロットの少なくとも一部を関連付けること、
複数のリソーススロットの一部のコンピューティング容量を超えて複数のリソーススロットの一部へのアクセスを求める要求を受け取った旨の通知を受領すること、
当該通知に応答して、超過コンピューティング容量の要求を複数のリソーススロットの一部に割り当てるように方針が記憶されていることを判定すること、および
アクセスを求める当該要求を実現させるために別のコンピューティング容量を割り当てること、をシステムに少なくとも行わせるコンピュータ命令が内部に記憶された少なくとも１つのメモリと、を含むシステム。
【０１６０】
条項５２
複数のリソーススロットの一部、１人以上のユーザおよびエンティティ選択の価格設定方式はエンティティによって選択される、条項５１に記載のシステム。
【０１６１】
条項５３
システムの１つ以上のプロセッサによって実行されると、グループ分けされた複数のリソーススロットに１人以上のユーザが入札することを可能にするユーザインターフェースを提供することをシステムに少なくとも行わせるコンピュータ可読命令をさらに含む、条項５１に記載のシステム。
【０１６２】
条項５４
別のコンピューティング容量が複数のリソーススロットから提供される、条項５１に記載のシステム。
【０１６３】
条項５５
プロバイダネットワーク内のコンピューティングリソースの割り当て方法であって、
複数のコンピューティングデバイスを含むコンピューティング環境であって、各コンピューティングデバイスの容量が１つ以上のリソーススロットへと論理的に分割され、第１セットの価格設定方式に従って１つ以上のリソーススロットがユーザに関連付けられているコンピューティング環境において、１つ以上の関連付けられたリソーススロットの少なくとも１つを特定すること、および少なくとも１つの関連付けられたリソーススロットに第２セットの価格設定方式に従ってアクセス可能な他のユーザを特定することをユーザに可能にすること、
少なくとも１つの関連付けられたリソーススロットのコンピューティング容量を超えて少なくとも１つの関連付けられたリソーススロットへのアクセスを求める要求を受け取った旨の通知を受領すること、並びに
当該通知に応答して、アクセスを求める当該要求を実現させるために別のコンピューティング容量を割り当てること、を含む方法。
【０１６４】
条項５６
少なくとも１つの関連付けられたリソーススロットを第２の価格設定方式に従って他のユーザに割り当てることをさらに含む、条項５５の方法。
【０１６５】
条項５７
第２セットの価格設定方式がユーザによって選択される、条項５５の方法。
【０１６６】
条項５８
少なくとも１つの関連付けられたリソーススロットに別のコンピューティング容量を割り当てるように方針が記憶されていることを判定することをさらに含み、当該方針に従って別のコンピューティング容量が割り当てられる、条項５５の方法。
【０１６７】
条項５９
少なくとも１つの関連付けられたリソーススロットに他のユーザが入札することを可能にするユーザインターフェースを提供することをさらに含む、条項５５の方法。
【０１６８】
条項６０
少なくとも１つの関連付けられたリソーススロット、少なくとも１つの関連付けられたリソーススロットにアクセス可能な他のユーザ、および第２セットの価格設定方式の選択を容易にするユーザインターフェースを提供することをさらに含む、条項５５の方法。
【０１６９】
条項６１
少なくとも１つの関連付けられたリソーススロットに第２の価格設定方式に従って他のユーザが入札することを可能にすることをさらに含む、条項５５の方法。
【０１７０】
条項６２
第２の価格設定方式は、リソーススロットを取得するのに使用する通貨、最低／最高価格、または入札／価格設定アルゴリズムを含む、条項５５の方法。
【０１７１】
条項６３
上記可能にすることは、少なくとも１つの関連付けられたリソーススロットを割り当てるための要求を受領すること、当該要求を要求識別子に関連付けること、少なくとも１つの関連付けられたリソーススロットをプール識別子に関連付けることを含む、条項６１の方法。
【０１７２】
条項６４
少なくとも１つの関連付けられたリソーススロットを割り当てるための課金情報を求めること、および別のコンピューティング容量を割り当てることをさらに含む、条項５５の方法。
【０１７３】
条項６５
少なくとも１つの関連付けられたリソーススロットの１つ以上に第２の価格設定方式に従って他のユーザのいずれが入札したかを判定すること、および当該判定することに基づいて課金情報を収集することをさらに含む、条項６１の方法。
【０１７４】
条項６６
ユーザ識別子に他のユーザを関連付けること、および他のユーザに関連付けられたレコードにユーザ識別子を含めることをさらに含む、条項６５の方法。
【０１７５】
条項６７
コンピュータ可読命令が記憶された非一時的コンピュータ可読記憶媒体であって、コンピュータ可読命令は、１つ以上のコンピューティングデバイス上で実行されると、
複数のコンピューティングデバイスを含み、各コンピューティングデバイスの容量が１つ以上のリソーススロットへと論理的に分割され、第１セットの価格設定方式に従って１つ以上のリソーススロットがユーザに関連付けられているコンピューティング環境において、少なくとも１つの関連付けられたリソーススロットを特定すること、および少なくとも１つの関連付けられたリソーススロットに第２セットの価格設定方式に従ってアクセス可能な他のユーザを特定することをユーザに可能にするユーザインターフェースを生成すること、
少なくとも１つの関連付けられたリソーススロットへのアクセスを他のユーザが要求することを可能にするユーザインターフェースを生成すること、並びに
少なくとも１つの関連付けられたリソーススロットのコンピューティング容量を超えて少なくとも１つの関連付けられたリソーススロットへのアクセスを求める要求を受け取った旨の通知を受領することに応答して、アクセスを求める当該要求を実現させるために別のコンピューティング容量を割り当てることをコンピューティング環境に行わせること、を少なくとも行わせる命令を含む、非一時的コンピュータ可読記憶媒体。
【０１７６】
条項６８
第２セットの価格設定方式は、リソーススロットを取得するのに使用する通貨、最低／最高価格、または入札／価格設定アルゴリズムを含む、条項６６の非一時的コンピュータ可読記憶媒体。
【０１７７】
条項６９
入札／価格設定アルゴリズムは、競り上げ式オークションと競り下げ式オークションの一方を含む、条項６８の非一時的コンピュータ可読記憶媒体。
【０１７８】
条項７０
１つ以上のコンピューティングデバイス上で実行されると、少なくとも１つの関連付けられたリソーススロットに他のユーザが入札することを可能にするための課金情報を求めることをコンピューティング環境に少なくとも行わせる命令を含む、条項６７の非一時的コンピュータ可読記憶媒体。
【０１７９】
条項７１
１つ以上のコンピューティングデバイス上で実行されると、少なくとも１つの関連付けられたリソーススロットに別のコンピューティング容量を割り当てるように方針が記憶されていることを判定することをコンピューティング環境に少なくとも行わせる命令を含み、当該方針に従って別のコンピューティング容量が割り当てられる、条項６７の非一時的コンピュータ可読記憶媒体。
【０１８０】
条項７２
別のコンピューティング容量は、ユーザに関連付けられた１つ以上のリソーススロットから割り当てられる、条項６７の非一時的コンピュータ可読記憶媒体。
【０１８１】
[0123]前述の各段落で説明されたプロセス、方法およびアルゴリズムのそれぞれは、１つ以上のコンピュータまたはコンピュータプロセッサによって実行されるコードモジュールで具現化され、かつそのコードモジュールによって完全にまたは部分的に自動化され得る。このコードモジュールは、ハードドライブ、ソリッドステートメモリ、光ディスクおよび／または同種のものなどの任意の種類の非一時的コンピュータ可読媒体またはコンピュータストレージデバイスに記憶され得る。プロセスおよびアルゴリズムは、特定用途向け回路を用いて部分的または完全に実装され得る。開示されたプロセスおよびプロセスステップの結果は、永続的であろうとなかろうと、任意の種類の非一時的コンピュータストレージ（例えば、揮発性または不揮発性ストレージなど）に記憶され得る。
【０１８２】
[0124]上述した様々な特徴およびプロセスは、互いに独立して使用され、あるいは様々な方法を用いて組み合わされ得る。全ての可能な組み合わせおよび部分的組み合わせは、本開示の範囲に含まれることが意図される。なお、一定の方法またはプロセスのブロックは、ある実施態様では省略される場合がある。また、本明細書で説明された方法およびプロセスは、任意の特定のシーケンスに限定されることはなく、そのシーケンスに関するブロックまたはステートは、適切な他のシーケンスで実行することができる。例えば、説明されたブロックまたはステートは、具体的に開示された順序以外の順序で実行され得る。あるいは複数のブロックまたはステートは、１つのブロックまたはステートに組み合わされ得る。例示的なブロックまたはステートは、連続的に、並列に、またはその他の方法で実行され得る。ブロックまたはステートは、開示された例示的な実施形態に追加され、またはそこから除去され得る。本明細書で説明された例示的なシステムおよび構成要素は、説明されたものと異なるように構成され得る。例えば、開示された例示的な実施形態に要素を追加し、そこから要素を除去し、あるいはそれと比較して要素を再配置してもよい。
【０１８３】
[0125]様々な項目が使用されつつメモリまたはストレージに記憶されているものとして例示されたが、これらの項目またはその各部は、メモリ管理およびデータの完全性を目的としてメモリと他のストレージデバイスの間で転送され得ることも理解されよう。あるいは、他の実施形態では、ソフトウェアモジュールおよび／またはシステムの一部または全ては、メモリまたは他のデバイスにおいて動作し、例示されたコンピューティングシステムとコンピュータ間通信を介して通信し得る。さらに、ある実施形態では、システムおよび／またはモジュールの一部または全ては、少なくとも部分的にファームウェアおよび／またはハードウェアを用いるなどの他の方法によって実装または提供され得る。このようなファームウェアおよび／またはハードウェアとしては、１つ以上の特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ：ＡＳＩＣ）、標準的な集積回路、（例えば、適切な命令を実行することによる、かつマイクロコントローラおよび／または組み込みコントローラを含む）コントローラ、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ：ＦＰＧＡ）、複合プログラマブル論理デバイス（ｃｏｍｐｌｅｘ  ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ：ＣＰＬＤ）などが含まれるが、これらに限定されることはない。モジュール、システムおよびデータ構造の一部または全ては、ハードディスク、メモリ、ネットワーク、または適切なドライブによって、もしくは適切な接続を介して読み取られるポータブルメディア製品などのコンピュータ可読媒体に（例えば、ソフトウェア命令または構造化データとして）記憶されてもよい。これらのシステム、モジュールおよびデータ構造は、無線ベースおよび有線／ケーブルベースの媒体を含む様々なコンピュータ可読伝送媒体上の生成データ信号として（例えば、搬送波または他のアナログもしくはデジタル伝播信号の一部として）伝送されてもよく、（例えば、単一もしくは多重アナログ信号の一部として、または複数の離散デジタルパケットもしくはフレームとして）様々な形態を取ってもよい。このようなコンピュータプログラム製品は、他の実施形態では他の形態を取り得る。従って、本発明は、他のコンピュータシステム構成と共に実施され得る。
【０１８４】
[0126]本明細書で使用される条件付きの文言、とりわけ、「できる（ｃａｎ）」、「する可能性がある（ｃｏｕｌｄ）」、「する場合がある（ｍｉｇｈｔ）」、「し得る（ｍａｙ）」、「例えば（ｅ．ｇ．）」などは、特に明確に指定のない限り、または、使用された文脈で解釈されない限り、一般に、ある特徴、要素および／またはステップを、ある実施形態では含むが、他の実施形態では含まないことを伝えるように意図されるものである。従って、このような条件付き文言は、一般に、特徴、要素および／またはステップが１つ以上の実施形態に全て必要であることを示すように意図されるものでもなく、これらの特徴、要素および／またはステップが含まれているかどうか、または任意の特定の実施形態において実行されるものであるかどうかについて、著者の指摘または示唆の有無にかかわらず決定する論理を１つ以上の実施形態が必ず含むことを示すように意図されるものでもない。用語「備える（ｃｏｍｐｒｉｓｉｎｇ）」「含む（ｉｎｃｌｕｄｉｎｇ）」「有する（ｈａｖｉｎｇ）」などは同義語であり、包括的に、制限されない様式で使用され、追加の要素、特徴、行為、操作などを除外しない。また、用語「または（ｏｒ）」は、包括的な意味で使用される（すなわち、排他的な意味では使用されない）。従って、例えば、要素のリストを接続するのに使用されるとき、用語「または（ｏｒ）」は、そのリスト内の要素の１つ、一部または全てであることを意味する。
【０１８５】
[0127]ある例示的な実施形態について説明してきたが、これらの実施形態は単なる例示として提示されたものであって、本明細書に開示された発明の範囲を限定するように意図されるものではない。従って、前述の説明においては、いずれかの特定の特徴、特性、ステップ、モジュールまたはブロックが必要または不可欠であることを示すことは何ら意図されていない。実際に、本明細書に説明された新規の方法およびシステムは、他の様々な形態において具体化され得る。さらに、本明細書に説明された方法およびシステムの形態においては、本明細書に開示された発明の概念から逸脱することなく種々の省略、置換および変更が行われ得る。添付の特許請求の範囲およびその均等物は、本明細書に開示された発明の特定の範囲および概念に属するような形態または改変を包含するように意図されている。
【図１】
0006494595.tif 000002
【図２】
0006494595.tif 000003
【図３】
0006494595.tif 000004
【図４】
0006494595.tif 000005
【図５】
0006494595.tif 000006
【図６】
0006494595.tif 000007
【図７】
0006494595.tif 000008
【図８】
0006494595.tif 000009
【図９】
0006494595.tif 000010
【図１０】
0006494595.tif 000011
【図１１】
0006494595.tif 000012
【図１２】
0006494595.tif 000013
【図１３】
0006494595.tif 000014
【図１４】
0006494595.tif 000015
【図１５】
0006494595.tif 000016