(57)【特許請求の範囲】
【請求項１】
サービス事業者ネットワーク内のハードウェアプラットフォームへの仮想マシンインスタンスの配置に影響を与えることに使用するための、配置戦略を共有するためのコンピュータで実装された方法であって、
複数の顧客提供配置戦略および前記複数の顧客提供配置戦略に対する１つまたは複数の顧客提供評価を記憶することと、
特定されたコンピューティング作業負荷と共に使用するための配置戦略に対する要求を受信することと、
前記記憶された配置戦略および前記１つまたは複数の顧客提供評価を活用して、前記特定されたコンピューティング作業負荷を実行する、前記サービス事業者ネットワーク内のハードウェアプラットフォームを特定することに使用するための配置戦略を選択することと、
のためのコンピュータで実装された動作を実行することを備える、前記コンピュータで実装された方法。
【請求項２】
前記コンピューティング作業負荷が、仮想マシンのイメージを備える、請求項１に記載のコンピュータで実装された方法。
【請求項３】
前記複数の顧客提供配置戦略の発行者に対する１つまたは複数の顧客提供評価を記憶することをさらに備える、請求項１に記載のコンピュータで実装された方法。
【請求項４】
前記複数の顧客提供配置戦略の発行者に対する前記評価も活用して、前記特定されたコ
ンピューティング作業負荷を実行する、前記サービス事業者ネットワーク内の前記ハード
ウェアプラットフォームを特定することに使用するための前記配置戦略を選択する、請求
項３に記載のコンピュータで実装された方法。
【請求項５】
前記サービス事業者ネットワーク内における配置戦略の使用履歴を定義するデータの分析を通して特定された、１つまたは複数の配置戦略を記憶することをさらに備える、請求項１に記載のコンピュータで実装された方法。
【請求項６】
前記選択された配置戦略を活用して、前記サービス事業者ネットワーク内の特定のハードウェアプラットフォームへの前記作業負荷の前記配置に影響を与えることをさらに備える、請求項１に記載のコンピュータで実装された方法。
【請求項７】
サービス事業者ネットワーク内のコンピューティング作業負荷のための配置戦略を選択するためのコンピューティングシステムであって、
複数の顧客提供配置戦略および前記複数の顧客提供配置戦略に対する１つまたは複数の顧客提供評価を記憶することと、
前記コンピューティング作業負荷と共に使用するのに適切な配置戦略に対する要求を受信することと、
前記記憶された配置戦略および前記１つまたは複数の顧客提供評価を活用して、特定されたコンピューティング作業負荷を実行する、前記サービス事業者ネットワーク内のハードウェアプラットフォームを特定することに使用するための配置戦略を選択することと、
を行うように構成された１つまたは複数のコンピュータを備える、前記システム。
【請求項８】
前記作業負荷が、仮想マシンのイメージを備える、請求項７に記載のシステム。
【請求項９】
前記選択された配置戦略が、前記サービス事業者ネットワーク内における配置戦略の過去の使用法を定義するデータの分析を通して特定された、１つまたは複数の配置戦略からさらに選択され得る、請求項７に記載のシステム。
【請求項１０】
前記選択された配置戦略が、前記複数の配置戦略の発行者に対する評価に基づいてさらに識別される、請求項７に記載のシステム。
【請求項１１】
前記１つまたは複数のコンピュータが、
前記作業負荷と共に使用するための前記配置戦略を、前記要求に関連する顧客に推奨する、
ようにさらに構成されている、請求項７に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
いくつかのネットワークベースのコンピューティングサービス事業者は、仮想マシンインスタンスなどのコンピューティング資源を、顧客が、恒久的にまたは必要な場合に購入し、活用することを可能にする。仮想マシンインスタンスに加えて、そのようなコンピューティングサービス事業者は、通常、顧客が、他の種類のコンピューティング資源を購入し、活用することを可能にする。たとえば、顧客は、ファイル及びブロックデータストレージ資源とデータベース資源とネットワーキング資源と他の種類のコンピューティング資源とへのアクセスと、それらの使用とを購入することを許可され得る。これらのコンピューティング資源を基礎的要素として活用して、そのようなネットワークベースのコンピューティングサービスの顧客は、アプリケーションホスティング、バックアップ及び記憶、コンテンツ配信、ワールドワイドウェブ（「ウェブ」）ホスティング、企業情報技術（「ＩＴ」）ソリューション、データベースサービスなどの、さまざまな種類の機能を提供するカスタムソリューションを作成することができる。
【０００２】
仮想マシンインスタンスなどの特定の種類のコンピューティング資源を立ち上げる時は、上で説明したものなどのサービス事業者ネットワークの顧客は、通常、コンピューティング資源がインスタンス化される、（本明細書では「インフラストラクチャプラットフォームとも呼ばれ得る」）実際のハードウェアプラットフォームとソフトウェアプラットフォームとについて、詳細を特定することができない。むしろ、顧客は、所望のコンピューティング資源を大まかに説明することができるのみであり得る。たとえば、仮想マシンインスタンスの場合、顧客は、所望のメモリ容量と、所望の処理能力レベルと、所望のストレージ容量とだけを特定することができ得る。ネットワークベースのコンピューティングサービスは、その結果、特定のサーバコンピュータなどの特定のハードウェアプラットフォームを選択して、顧客によって要求されたコンピューティング資源をインスタンス化するように活用する。
【０００３】
本開示は、本明細書においてなされる開示は、これらの考慮事項と他の考慮事項とに関して提示される。
【図面の簡単な説明】
【０００４】
【図１】本明細書で開示する一実施形態による、配置戦略を使用して、サービス事業者ネットワーク内に、仮想マシンの、ユーザから影響を受けた配置を行うための、本明細書で説明する一例示機構の態様を示したネットワークアーキテクチャ図である。
【図２】本明細書で開示する実施形態による、配置戦略を共有するための、また配置戦略と配置戦略の発行者とを評価するための、本明細書で説明する一機構の態様を示したシステム図である。
【図３】本明細書で開示する一実施形態による、配置戦略を共有するための、また配置戦略と配置戦略の発行者とを評価するための、一例示ルーチンを示したフロー図である。
【図４】本明細書で開示する一実施形態による、ベンダー非依存配置戦略を活用して、仮想マシンインスタンスをインスタンス化するためのサービス事業者ネットワークを選択するための、本明細書で説明する一機構の態様を示したシステム図である。
【図５】本明細書で開示する一実施形態による、ベンダー非依存配置戦略を活用して、仮想マシンインスタンスをインスタンス化するためのサービス事業者ネットワークを選択するための、一例示ルーチンを示したフロー図である。
【図６】本明細書で開示する一実施形態による、動的に評価されるパラメータを含む配置戦略を活用して、顧客フリート内の仮想マシンインスタンスを修正するための、本明細書で開示される一機構の態様を示したシステム図である。
【図７】本明細書で開示する一実施形態による、動的に評価されたパラメータを含む配置戦略を活用して、顧客フリート内の仮想マシンインスタンスを修正するための、一例示ルーチンを示したフロー図である。
【図８】本明細書で開示する一実施形態による、仮想マシンインスタンスと他の種類のコンピューティング資源とを実装するための機能を提供するように構成されたサービス事業者ネットワークを含む、本明細書で開示する実施形態の、一例示動作環境を示すシステム及びネットワーク図である。
【図９】本明細書で開示する一実施形態による、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための、本明細書で開示される概念と技術との態様を実装するデータセンタの一構成を例示するコンピューティングシステム図である。
【図１０】本明細書で提示するさまざまな実施形態の態様を実装するために活用され得るコンピューティングデバイスを実装するための、例示コンピュータハードウェアアーキテクチャを示すコンピュータアーキテクチャ図である。
【発明を実施するための形態】
【０００５】
以下の詳細な説明は、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための技術に向けられている。本明細書で説明する技術を活用して、サービス事業者ネットワーク内での仮想マシンインスタンスと他の種類のコンピューティング資源との配置に影響を与えるように、配置戦略を定義し、活用することができる。配置戦略を、サービス事業者ネットワークの顧客間で共有することができ、配置戦略と配置戦略の発行者とを、評価することができる。他の実施形態では、ベンダー非依存配置戦略を活用して、仮想マシンインスタンスをインスタンス化するためのサービス事業者ネットワークを選択することができる。さらに別の実施形態では、動的に評価されるパラメータを含む配置戦略を活用して、顧客フリート内の仮想マシンインスタンスを修正することができる。
【０００６】
配置戦略を使用して、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための本明細書で開示するさまざまな機構は、顧客が、それを通じて、仮想マシンインスタンスとデータストレージ資源とデータベース資源とネットワーキング資源と他の種類のコンピューティング資源とを、恒久的にまたは必要な場合に購入し、活用することができる、（本明細書では、「サービス事業者ネットワーク」とも呼ばれる、）サービス事業者によって運用されているネットワークベースの分散コンピューティング環境と連動して動作することができる。
【０００７】
サービス事業者ネットワークを運用しているサービス事業者は、コンピューティング資源を動作させるための料金を、資源を作成し、使用する顧客に対して請求することができる。サービス事業者は、また、さまざまな購入モデルを活用して、サービス事業者によって提供されるコンピューティング資源の使用に対して顧客にいくら請求するかを決定することができる。上述の通り、そのようなサービス事業者の顧客は、アプリケーションホスティングとバックアップ及び記憶とコンテンツ配信とウェブホスティングと企業ITソリューションとデータベースサービスなどの、さまざまな種類の機能を提供するカスタムソリューションを作成するための基礎的要素として、コンピューティング資源を活用することができる。
【０００８】
上でも述べた通り、上で説明したものなどのサービス事業者ネットワークの顧客は、通常、特定のコンピューティング資源がインスタンス化される実際のハードウェアプラットフォームについて、詳細を特定することができない。むしろ、顧客は、所望のコンピューティング資源を大まかに説明することができるのみであり得る。たとえば、仮想マシンインスタンスの場合、顧客は、所望のメモリ容量と、所望の処理能力レベルと、所望のストレージ容量とだけを特定することができ得る。しかしながら、顧客は、仮想マシンインスタンスが作成されるべき特定のハードウェアプラットフォームまたはインフラストラクチャプラットフォームについて、特定することができない。むしろ、ネットワークベースのコンピューティングサービスが、顧客によって要求されたコンピューティング資源をインスタンス化するために活用する、特定のサーバコンピュータなどの特定のハードウェアプラットフォームを選択する。本明細書で開示するさまざまな実施形態は、これらの考慮事項と潜在的に他の考慮事項とに対処する。
【０００９】
上で明記した考慮事項のうちの少なくともいくつかに対処するために、本明細書で開示する実施形態は、配置戦略を使用して、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための、いくつかのコンピュータ実装機構を提供する。これらの実施形態では、サービス事業者ネットワークは、仮想マシンインスタンス及び／または他の種類のコンピューティング資源の、ユーザから影響を受けた配置を行うための機能を提供することができる。たとえば、サービス事業者ネットワークの顧客は、サービス事業者ネットワークの特定のハードウェアプラットフォームにおける、仮想マシンインスタンスの配置、または他の種類のコンピューティング資源の配置に影響を与えるように活用され得る配置戦略を、特定することができ得る。配置戦略を活用して、価格、ハードウェア製造者、ハードウェアプラットフォームが製造された年、チップセット、ハードウェアカードまたは他の種類の周辺機器、ネットワーク接続、プロセッサタイプ、及び／またはコンピューティングデバイスの他の属性に基づいて、特定のハードウェアプラットフォームにおける仮想マシンインスタンスの配置に影響を与えることができる。
【００１０】
本明細書で開示する特定の一実施例では、サービス事業者ネットワークの顧客は、配置戦略を互いに共有することを許可され得る。たとえば、サービス事業者ネットワーク内の構成要素は、サービス事業者ネットワークの顧客から配置戦略を受信するように構成され得る。受信された配置戦略は、特定の仮想マシンのイメージなどの特定の種類のコンピューティング作業負荷と共に使用するのに適切である、と定義され得る。配置戦略を記憶し、同一または類似のコンピューティング作業負荷と共に使用するための配置戦略をサービス事業者ネットワークの他の顧客に推奨するために、後で活用することができる。
【００１１】
また、配置戦略及び／または配置戦略を提供する顧客についての評価を、顧客が提供することを可能にするための機構も提供することができる。特定の作業負荷と共に使用するための、顧客に推奨する配置戦略を選択する時に、これらの評価も活用することができる。特定の種類のコンピューティング作業負荷のための配置戦略を選択することに使用するために、これらの評価を、サービス事業者ネットワークの顧客に見せることもできる。
【００１２】
別の実施形態では、ベンダー非依存配置戦略を使用した、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための機能を提供する。この実施形態では、仮想マシンインスタンスを実行するための特定のサービス事業者を選択するために、ベンダー非依存配置戦略を定義し、活用することができる。ベンダー非依存配置戦略は、いかなる特定のサービス事業者（つまり、ベンダー）及び／またはサービス事業者ネットワークからも独立している（つまり、非依存である）ように定義された配置戦略である。
【００１３】
一実装形態では、インスタンス配置サービスが、異なるベンダーによって運用されている多数のサービス事業者ネットワークについて、インスタンス利用可能性データとインスタンス価格決定データとを読み出す。インスタンス利用可能性データは、各サービス事業者ネットワークから利用可能な、仮想マシンインスタンスタイプ及び／または仮想マシンインスタンスタイプを実行するためのハードウェアプラットフォームを記述している。インスタンス価格決定データは、さまざまな仮想マシンインスタンスタイプを活用するための価格を記述している。インスタンス利用可能性データとインスタンス価格決定データとを、仮想マシンインスタンスを立ち上げることに対する要求を受信する前に、またはそのような要求が受信された時に、取得することができる。
【００１４】
インスタンス配置サービスは、また、ベンダー非依存配置戦略を含む仮想マシンインスタンス立ち上げることに対する要求も受信することができる。そのような要求を受信したことに応答して、インスタンス配置サービスは、インスタンス利用可能性データとインスタンス価格決定データとベンダー非依存配置戦略とを活用して、仮想マシンインスタンス立ち上げるためのサービス事業者ネットワークを選択することができる。一実施形態では、仮想マシンインスタンス立ち上げるために選択されたサービス事業者ネットワークは、ベンダー非依存配置戦略のパラメータを満たすことができ、また、所望の仮想マシンインスタンスを最小コストで実行することもできるサービス事業者ネットワークである。サービス事業者ネットワークが選択されると、インスタンス配置サービスは、選択されたサービス事業者ネットワークに、仮想マシンインスタンスをインスタンス化することに対する要求を送信する。
【００１５】
さらに別の実施形態では、動的パラメータを使用した、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための機構が提供される。この実施形態では、動的に評価されるパラメータを含む配置戦略を定義することができる。動的に評価されるパラメータは、配置戦略が評価される時に動的に定義されるパラメータである。たとえば、１つまたは複数の動的に評価されるパラメータの値を、配置戦略が評価される時に、サービス事業者ネットワークの内部のデータソースから読み出すことができる。また、１つまたは複数の動的に評価されるパラメータの値を、配置戦略が評価される時に、サービス事業者ネットワークの外部データソースから読み出すこともできる。
【００１６】
配置戦略のための動的に評価されるパラメータの値が読み出されると、配置戦略を評価することができる。評価の結果により、サービス事業者ネットワークの顧客によって運用されている仮想マシンインスタンスのフリートに対して、さまざまな修正がなされ得る。たとえば、特定のハードウェアプラットフォーム上で実行している仮想マシンインスタンスを、異なるハードウェアプラットフォームに移行することができる。別の実施例では、動的に評価されるパラメータを含む配置戦略によって特定されたハードウェアプラットフォーム上で実行される新しい仮想マシンインスタンスを、フリートに追加することができる。
【００１７】
いくつかの実施形態では、動的に評価されるパラメータの値を周期的に更新して、配置戦略を評価するために活用することができる。その後、配置戦略の評価の結果によって、顧客フリート内の仮想マシンインスタンスを適切に更新することができる。このようにして、配置戦略に明記されたパラメータに従って、顧客フリートに対する修正を継続的に行うことができる。仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための、上で簡単に説明したさまざまな構成要素とプロセスとに関する追加的な詳細を、図１〜図１０に関連して以下に提示する。
【００１８】
本明細書で提示する主題を、コンピュータプロセス、コンピュータで制御される装置、コンピューティングシステム、コンピュータ可読記憶媒体などのまたは製造品として実装することができる、ということを理解すべきである。本明細書で説明する主題を、１つまたは複数のコンピューティングデバイス上で実行するプログラムモジュールという一般的文脈において提示するが、当業者は、他の実装形態を、他の種類のプログラムモジュールと組み合わせて実行することができる、ということを認識する。一般的に、プログラムモジュールは、ルーチンと、プログラムと、構成要素と、データ構造と、特定のタスクを実行する、または特定の抽象的データタイプを実装する、他の種類の構造とを含む。
【００１９】
当業者は、また、本明細書で説明する主題の態様を、本明細書で説明するものを超える他のコンピュータシステム構成上で、またはそれと連動して、実行することができる、ということを理解し、本明細書で説明するものを超える他のコンピュータシステム構成には、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家電製品、ミニコンピュータ、メインフレームコンピュータ、携帯用コンピュータ、携帯情報端末、電子書籍リーダ、携帯電話デバイス、タブレットコンピューティングデバイス、専用ハードウェアデバイス、ネットワーク機器、などが含まれる。上で簡単に述べた通り、本明細書で説明する実施形態を、通信ネットワークを通してつながっている遠隔コンピューティングデバイスによってタスクが実行され得る分散コンピューティング環境において、実行することができる。分散コンピューティング環境では、プログラムモジュールを、ローカルメモリストレージデバイスと遠隔メモリストレージデバイスとの両方に置くことができる。
【００２０】
以下の詳細な説明では、本明細書の一部を形成し、例示として、特定の実施形態または実施例を示す、添付図面を参照する。本明細書中の図面は、正しい縮尺で描かれていない。同一番号は、（本明細書では、「図」と呼ばれ得る）いくつかの図を通して、同じ要素を表している。
【００２１】
図１は、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための、本明細書で説明する一例示機構の態様を示す、ネットワークアーキテクチャ図である。上で簡単に説明した通り、本明細書で開示するさまざまな機構は、サービス事業者ネットワーク１０２と連動して動作することができ、サービス事業者ネットワーク１０２では、顧客は、（本明細書では、「仮想マシン」または「インスタンス」１０４とも呼ばれ得る）仮想マシンインスタンス１０４Ａ〜１０４Ｂ、ネットワーキング資源、ストレージ資源または他の種類のコンピューティング資源などの（本明細書では、「資源」とも呼ばれ得る）コンピューティング資源を、サービス事業者ネットワーク１０２を運用するサービス事業者から、恒久的に、または必要な場合に、購入し、活用することができる。図１に関して本明細書で提示する説明は、仮想マシンインスタンス１０４という文脈において主に説明されるが、本明細書で開示する実施形態は、他の種類のコンピューティング資源と共に活用され得る、ということを理解すべきである。
【００２２】
コンピューティング資源の各種類または構成は、サービス事業者ネットワーク１０２を運用するサービス事業者から、異なる大きさで利用可能であり得る。たとえば、サービス事業者は、プロセッサ能力とメインメモリとディスクストレージとオペレーティングシステムとの多くの異なる構成を有する、購入し、使用することができるインスタンス１０４または他の種類のデータ処理資源を提供することができる。サービス事業者は、また、顧客によって購入され、使用されるための、他の種類の資源も提供することができる。たとえば、サービス事業者は、データベース資源、ファイルまたはブロックデータストレージ資源、ネットワーキング資源、及び／または他の種類の資源を、恒久的に、または必要な場合に、提供することができる。
【００２３】
サービス事業者ネットワーク１０２を運用するサービス事業者は、また、資源を運用するための料金を、資源を作成し、使用する顧客に請求することができる。特定の資源に対して請求される料金は、資源の種類及び／または構成に基づき得る。特定の資源に対して請求される料金は、また、資源が活用される時間の量に基づき得る。たとえば、仮想マシンインスタンス１０４のようなデータ処理資源の場合、資源の使用のための料金は、仮想マシンインスタンス１０４の構成と、仮想マシンインスタンス１０４が活用される時間の量とに基づいて請求され得る。データストレージ資源の場合、料金は、記憶されたデータの容量、及び／または資源の中に、または資源から移動させたデータ量に基づいて計算され得る。他の種類の資源に対する料金も、他の考慮事項に基づき得る。サービス事業者は、また、さまざまな購入モデルを活用して、サービス事業者によって提供される資源の使用に対して、顧客に請求する金額を決定することができる。
【００２４】
上で説明した資源は、サービス事業者によって運用されている１つまたは複数のデータセンタによる、１つの特定の実装形態として提供され得る。当業者に知られている通り、データセンタは、サーバコンピュータ１０６Ａ〜１０６Ｎなどのコンピュータシステムと関連構成要素とを収納し、運用するために活用される施設である。データセンタは、また、通常、冗長電源及び非常用電源システムと、通信システムと、冷却システムと、セキュリティシステムとを含む。データセンタは、地理的に全く異なる場所に置かれてよく、また、コロケーション施設などのさまざまな他の施設と、インターネットなどのさまざまな広域ネットワーク（「ＷＡＮ」）とに接続され得る。図１に示す環境では、サービス事業者は、仮想マシンインスタンス１０４をサービス事業者ネットワーク１０２内でその顧客に提供するように構成された、１つまたは複数のデータセンタを運用することができる。本明細書で開示する機能を提供するためのサービス事業者ネットワーク１０２の実装に関する詳細を、図８と図９とに関連して、以下に提供する。
【００２５】
上で説明したさまざまな資源は、また、必要に応じて、自動的に設定、解除され得る。たとえば、顧客は、仮想マシンの新しいインスタンス１０４Ａをインスタンス化するために、仮想マシンインスタンス立ち上げ要求１０８（「立ち上げ要求１０８」または「要求１０８」）をサービス事業者ネットワーク１０２に提出することができる。そのような要求１０８を受信したことに応答して、展開構成要素１１０、またはサービス事業者ネットワーク１０２内の１つまたは複数の構成要素が、顧客によって要求された、仮想マシンの新しいインスタンス１０４Ａを作成することができる。顧客は、その後、所望の通り、仮想マシンの新しいインスタンス１０４Ａを活用することを許可され得る。他の種類のコンピューティング資源を、同様の方法でインスタンス化することができる。
【００２６】
顧客が、仮想マシンインスタンス１０４Ａなどのコンピューティング資源を使用し終えると、顧客は、資源が解除されるよう要求することができる。それに応答して、展開構成要素１１０またはサービス事業者ネットワーク１０２内の他の構成要素は、コンピューティング資源が解除されるようにすることができる。たとえば、展開構成要素１１０は、仮想マシンインスタンス１０４Ａを解除することができる。他の種類のコンピューティング資源も、同様の方法で設定し、解除することができる。サービス事業者ネットワーク１０２は、また、コンピューティング資源に対する需要または他の要因に基づいて、資源を自動的に拡大及び／または縮小するための機能も提供することができる。
【００２７】
上述の通り、サービス事業者ネットワーク１０２は、また、いくつかの実施形態では、仮想マシンインスタンス１０４の、ユーザから影響を受けた配置を行うための機能も提供することができる。たとえば、サービス事業者ネットワーク１０２の顧客は、顧客指定の基準を満たす特定のハードウェアプラットフォームにおける、仮想マシンインスタンス１０４または他のコンピューティング資源の配置に影響を与えることができる、１つまたは複数の追加的パラメータ（本明細書では、「配置戦略１１２」と呼ぶ）を特定することを許可され得る。たとえば、顧客は、価格、ハードウェア製造者、ハードウェアプラットフォームが製造された年、チップセット、ハードウェアカードまたは他の種類の周辺機器、ネットワーク接続、プロセッサタイプ、及び／またはハードウェアプラットフォームまたはインフラストラクチャプラットフォームの他の属性に基づいて、特定の種類のサーバコンピュータ１０６における仮想マシンインスタンス１０４の配置に影響を与えることを許可され得る。そのような機構を使用して、ネットワークベースのサービス事業者は、より新しいハードウェアプラットフォームの使用に対して、より高い価格を請求することができる。代替的に、そのようなネットワークベースのサービス事業者の顧客は、より旧式、またはあまり望ましくないハードウェアプラットフォーム上のコンピューティング資源をインスタンス化することによって、コストを削減することができる。
【００２８】
一実装形態では、仮想マシンインスタンス１０４の配置に影響を与える機能は、顧客が、それを通して、所望のハードウェアプラットフォームを定義する配置戦略１１２を特定することができる、サービスアプリケーションプログラミングインターフェース（「ＡＰＩ」）コールの使用を通して実装される。たとえば、例示的なＡＰＩコールは、ある特定の種類のハードウェアを有する、または他の基準を満たすサーバコンピュータ１０６における、仮想マシンインスタンス１０４の配置に関するガイダンスを提供することを、サービス事業者ネットワーク１０２の顧客に可能にすることができる。たとえば、特定のメモリ容量を有する特定の仮想マシンインスタンスタイプを要求するＡＰＩコールは、仮想マシンインスタンス１０４が実行されるハードウェアの、所望の製造者または年または製造を特定する配置戦略１１２を含むことができる。たとえば、配置戦略を活用して、ＡＤＶＡＮＣＥＤ  ＭＩＣＲＯ  ＤＥＶＩＣＥＳ（「ＡＭＤ」）からのプロセッサを有するサーバコンピュータ１０６、または２０１２年に製造されたサーバコンピュータ１０６を活用する、ということを特定することができる。ＡＰＩ以外の機構を活用して、配置戦略１１２を、サービス事業者ネットワーク１０２内の適切な構成要素に提供することもできる。いくつかの実装形態では、所望のインフラストラクチャプラットフォーム上で同時に実行されるべきでない他のソフトウェア構成要素を特定し、及び／または、特定のハードウェア資源の特定の割合（たとえば、１００％）をインスタンスに割くということを特定する配置戦略１１２も特定することができる。
【００２９】
いくつかの実装形態では、ユーザは、デフォルトの配置戦略１１２を登録すること、または仮想マシンインスタンス１０４を立ち上げた時に活用される配置戦略１１２を特定することを許可され得る。展開構成要素１１０は、ユーザ特定の配置戦略１１２を尊重するように努めることができ、または、特定された配置戦略１１２を満たすことができない場合、要求された仮想マシンインスタンス１０４を立ち上げないことができる。たとえば、立ち上げ要求１０８は、特定のプロセッサタイプを活用することを関連配置戦略１１２が特定し、所望のプロセッサタイプを有するサーバコンピュータ１０６が、サービス事業者ネットワーク１０２において利用可能でない場合、拒否され得る。
【００３０】
他の実施形態では、サービス事業者ネットワーク１０２によって提供される自動拡大縮小機能を有する配置戦略１１２を活用することもできる。たとえば、配置戦略１１２は、２０１１年に製造されたハードウェアを活用し、そのハードウェアが利用可能でない場合、２０１０年に製造されたハードウェアを活用し、２０１０年のハードウェアについて知られている問題を補うために、生産能力を１０％増加させる、ということを特定することができる。この機能を予め定義されたベンチマークと組み合わせて、作業負荷のフラクショナルバーティカルスケーリングを実行して、世代間で異なるインスタンスの大きさに合わせることができる。たとえば、配置戦略１１２は、２０１０年に製造されたハードウェア上で仮想マシンインスタンス１０４を立ち上げ、それが可能でない場合、２０１１年に製造されたハードウェアを使用するが、２０１１年に製造された各サーバコンピュータ１０６に送信される作業負荷を１０％増加させて、より新しいハードウェアを使用するコストを相殺する、と特定することができる。
【００３１】
図１に示した実施例では、サービス事業者ネットワークの顧客は、立ち上げ要求１０８を展開構成要素１１０にすでに提出している。立ち上げ要求１０８は、展開構成要素１１０が、仮想マシンの新しいインスタンス１０４をサービス事業者ネットワーク１０２内でインスタンス化することを要求する。立ち上げ要求１０８は、要求された仮想マシンインスタンス１０４の種類を一般的に特定するインスタンスタイプ識別子１１１を含むことができる。たとえば、インスタンスタイプ識別子１１１は、新しい仮想マシンインスタンス１０４の、所望のメモリ容量と、所望の処理能力レベルと、所望のストレージ容量とを一般的に特定することができる。しかしながら、インスタンスタイプ識別子１１１は、新しいインスタンス１０４が作成されるべき実際のハードウェアプラットフォームについての具体的な詳細を特定しない。
【００３２】
上述の通り、立ち上げ要求１０８は、また、ユーザが定義した配置戦略１１２を含むことができる。配置戦略１１２は、いくつかの実施形態では、立ち上げ要求１０８の中に含まれ得、または他の実施形態では、別々に提供され得る。たとえば、いくつかの実装形態では、サービス事業者ネットワーク１０２の顧客は、顧客のための新しい仮想マシンインスタンス１０４をインスタンス化することに対する要求１０８を展開構成要素１１０が受信した時に、アクセスされ、活用され得る、ユーザアカウントに関連する配置戦略１１２を維持することができる。
【００３３】
利用可能なインフラストラクチャプラットフォームが特定されるまで評価され得る、特定のインフラストラクチャプラットフォームに対する代替の好み設定を、配置戦略１１２が定義することができる、ということを理解すべきである。たとえば、特定の一実装形態では、２０１３年に製造されたハードウェアに対して第１の好み設定を含む配置戦略１１２を定義することができる。配置戦略１１２は、また、２０１３年に製造されたハードウェアが利用可能でない場合、２０１２年に製造されたハードウェアを活用すべきである、と特定することができる。配置戦略１１２は、２０１２年に製造されたハードウェアが利用可能でない場合、ＩＮＴＥＬ  ＣＯＲＰＯＲＡＴＩＯＮ（「ＩＮＴＥＬ」）からのチップセットを含むサーバコンピュータ１０６を活用する、とさらに特定することができる。ＩＮＴＥＬからのチップセットを有するサーバコンピュータが利用可能でない場合、配置戦略１１２は、いかなるインスタンス１０４も起動すべきでない、とさらに特定することができる。このようにして、サービス事業者ネットワーク１０２の顧客は、多数のインフラストラクチャプラットフォームの候補を特定して、サービス事業者ネットワーク１０２における仮想マシンインスタンス１０４または他の種類のコンピューティング資源の配置に影響を与えることができる。
【００３４】
上で説明したものよりもよりさらに複雑な配置戦略１１２を定義し、活用することができる、ということを理解すべきである。しかしながら、一般には、配置戦略１１２は、所望のインフラストラクチャ属性の順序付きリストとして定義され得る、ということを理解すべきである。リストは、所望の属性を有するサーバコンピュータ１０６または他のハードウェアプラットフォームが特定されるまで、上で説明したような優先順で評価され得る。所望のインフラストラクチャ属性は、サーバコンピュータ１０６がこの優先度によって選択可能であるとみなされるためには全部が満たされなければならない、キーと値とのペアの制約のセット、ブール演算子を含む自由形式のテキスト文、または予め決められ、公表されている特性を有する特定の仮想マシンインスタンスタイプ１０４などの、異なる実施形態で異なる形式を取ることができる。他の形式も活用することができる。
【００３５】
上で簡単に述べた通り、一実装形態では、展開構成要素１１０は立ち上げ要求１０８を受信する。次いで、展開構成要素１１０は、要求された仮想マシンインスタンス１０４を、サーバコンピュータ１０６Ａ〜１０６Ｎのどれの上で立ち上げるかを特定する。サーバコンピュータ１０６Ａ〜１０６Ｎは、ハードウェアプラットフォーム、ソフトウェアプラットフォーム及び／またはそれらそれぞれの構成を含むことができる、さまざまな異なるインフラストラクチャプラットフォームを活用することがでる、ということを理解すべきである。たとえば、あるサーバコンピュータ１０６Ａは、特定のプロセッサとチップセットとを活用することができ、一方、別のサーバコンピュータ１０６Ｂは、異なるプロセッサとチップセットとを活用することができる。サーバコンピュータ１０６Ａ〜１０６Ｎは、また、異なる年に製造されている場合がある。サーバコンピュータ１０６Ａ〜１０６Ｎは、また、そこに異なるオペレーティングシステムまたは他のソフトウェア構成要素をインストールされている場合がある。この点で、多くの異なるハードウェア構成とソフトウェア構成とを有するサーバコンピュータ１０６Ａ〜１０６Ｎが、本明細書で説明した方法での使用のために、サーバ事業者ネットワーク１０２内で利用可能にされ得る、ということを理解すべきである。
【００３６】
展開構成要素１１０が立ち上げ要求１０８を受信すると、展開構成要素１１０は配置戦略１１２とサーバ構成データストア１１４（「データストア１１４」）の内容とを活用して、サーバコンピュータ１０６Ａ〜１０６Ｎのうちのどれで、新しい仮想マシンインスタンスをインスタンス化するかを決定することができる。データストア１１４は、サービス事業者ネットワーク１０２内で利用可能なサーバコンピュータ１０６Ａ〜１０６Ｎを特定するデータを、各サーバコンピュータのインフラストラクチャプラットフォームの詳細を記述した、サーバコンピュータ１０６Ａ〜１０６Ｎの各々についてのデータと共に含む。たとえば、データストア１１４は、サーバコンピュータ１０６のハードウェア構成要素とソフトウェア構成要素との種類と製造者と、ハードウェア構成要素の製造年と、ソフトウェア構成要素のバージョンと、特定のサーバコンピュータ１０６の使用に対する価格と、他の種類のハードウェア属性及び／またはソフトウェア属性とを特定する、サーバコンピュータ１０６Ａ〜１０６Ｎの各々についてのデータを記憶することができる。これらの実施例は単に例示であり、サーバコンピュータ１０６Ａ〜１０６Ｎの他のハードウェア属性及び／またはソフトウェア属性を記述したデータを、データストア１１４内に維持することができる、ということを理解すべきである。
【００３７】
展開構成要素１１０は、配置戦略１１２とデータストア１１４内に記憶されたデータとを活用して、ユーザが特定した配置戦略１１２を満たす１つまたは複数のサーバコンピュータ１０６を特定することができる。配置戦略１１２を満たす１つまたは複数のサーバコンピュータ１０６が特定されると、次いで、展開構成要素１１０は、要求された仮想マシンインスタンス１０４または他の種類のコンピューティング資源を、マッチするサーバコンピュータ、またはサーバコンピュータ１０６上で立ち上げることができる。
【００３８】
別の実装形態では、展開構成要素１１０は、さまざまな種類の情報と共に立ち上げ要求１０８に応答することができる。たとえば、サーバ１０６Ａが配置戦略１１２にマッチすると分かった場合、立ち上げ要求１０８に応じて、サーバコンピュータ１０６Ａを活用するための価格を記述したデータを返すことができる。次いで、顧客は、価格情報を活用して、仮想マシンインスタンス１０４Ａをサーバコンピュータ１０６Ａ上で立ち上げるかどうかを決定することができる。立ち上げ要求１０８に応じて、他の情報を返すこともできる。
【００３９】
上で説明したものなどの配置戦略１１２を提供することによって、サービス事業者ネットワーク１０２の顧客は、異なるハードウェア構成とソフトウェア構成とを有する多数のサーバコンピュータ１０６のうち、どこで特定の仮想マシンインスタンス１０４または他の種類のコンピューティング資源をインスタンス化するかに影響を与えることができる。仮想マシンインスタンス１０４の、ユーザからの影響を受けた配置について上で説明した機構に関する追加的な詳細を、２０１２年１１月１６日に出願され、その全体が参照により本明細書に明示的に組み込まれる、「ＵＳＥＲ−ＩＮＦＬＵＥＮＣＥＤ  ＰＬＡＣＥＭＥＮＴ  ＯＦ  ＶＩＲＴＵＡＬ  ＭＡＣＨＩＮＥＳ」という題名の、Ｕ．Ｓ．  Ｐａｔｅｎｔ  Ａｐｐｌｉｃａｔｉｏｎ  Ｎｏ．１３／６７９，４５１で見ることができる。
【００４０】
図２及び図３は、サービス事業者ネットワーク１０２の顧客が互いに配置戦略１１２を共有することを許可される、本明細書で開示する一実施形態の態様を示している。これは、たとえば、特定の種類のコンピューティング作業負荷を実行するためのハードウェアプラットフォームを選択することに対して、特定の配置戦略１１２が良好に機能する、と顧客が判断した時に望ましいことがある。
【００４１】
（「作業負荷」とも呼ばれ得る）コンピューティング作業負荷は、アプリケーション、仮想マシンのイメージ、仮想機器、または仮想マシン上で実行され得る他の種類のプログラムである。配置戦略１１２が、作業負荷を、その作業負荷に対して最適化されたサーバコンピュータ１０６に配置されるようにする場合に、配置戦略１１２は、特定の種類の作業負荷に対して良好に機能する。サーバコンピュータ１０６が作業負荷に対して最適化されているかどうかは、サービス事業者ネットワーク１０２の顧客によって定義された１つまたは複数の要因に基づくことができ、それには、コスト、アプリケーション性能、処理量、使用される仮想マシンインスタンス１０４の数、及び／または他の要因または要因の組み合わせを含むが、これらに限定されない。
【００４２】
サービス事業者ネットワーク１０２の顧客が、特定の配置戦略１１２が特定の作業負荷に対して良好に機能すると判断した場合、特定の作業負荷のための最適な配置戦略１１２を作成するという時に困難なタスクに他の顧客が携わる必要がないように、顧客は、配置戦略１１２を他の顧客と共有することを好むことがある。いくつかの実施形態では、配置戦略１１２を共有する顧客（本明細書では、そのような顧客を「発行者」と呼ぶことができ）は、他の顧客が共有された配置戦略１１２を使用した時に、報酬を支払われ得る。配置戦略１１２を共有するための、本明細書で開示するさまざまな実施形態に関する追加的な詳細を、図２と図３とに関連して以下に提供する。
【００４３】
図２に示す通り、一実施形態では、サービス事業者ネットワーク１０２は、配置戦略提出インターフェース２０４（「インターフェース２０４」）を含む。インターフェース２０４は、ユーザインターフェース（「ＵＩ」）、ＡＰＩ、または、サービス事業者ネットワーク１０２の顧客２０２が、それを通して、他の顧客２０２と共有する配置戦略１１２を提出することができる別の種類のインターフェースであってよい。顧客が配置戦略１１２をインターフェース２０４に提出する時は、顧客は、また、作業負荷記述子２０６も提供する。作業負荷記述子２０６は、提出された配置戦略１１２が、それと共に使用されるように構成されている作業負荷の種類を定義する。上述の通り、作業負荷は、アプリケーション、仮想マシンのイメージ、仮想機器、または仮想マシン上で実行され得る他の種類のアプリケーションである。配置戦略１１２を提出する顧客２０２は、また、発行者識別子（「ＩＤ」）２０８を提供することができる。発行者ＩＤ２０８は、配置戦略１１２を共有している顧客２０２を識別する。
【００４４】
図２に示す実施例では、たとえば、顧客２０２Ａは、配置戦略１１２Ａと、対応する作業負荷記述子２０６Ａと、顧客２０２Ａを識別する発行者ＩＤ２０８Ａとを、インターフェース２０４にすでに提出している。同様に、顧客２０２Ｂは、配置戦略１１２Ｂと、対応する作業負荷記述子２０６Ｂと、顧客２０２Ｂを識別する発行者ＩＤ２０８Ｂとを、インターフェース２０４にすでに提出している。インターフェース２０４は、顧客２０２Ａと２０２Ｂとからの提出を受信し、提出されたデータを、配置戦略データストア２１０（「データストア２１０」）の中に記憶する。
【００４５】
データストア２１０は、サービス事業者ネットワーク１０２の顧客２０２によって提出された配置戦略１１２を記憶するように構成されたデータベースまたは他の種類のストレージシステムである。以下でより詳細に説明する通り、データストア２１０は、また、他の方法で特定された配置戦略１１２も記憶することができる。特定の一実施形態では、データストア２１０は、フィールド２１２Ａ〜２１２Ｅを有するレコードを含む。フィールド２１２Ｅを活用して、配置戦略１１２または配置戦略１１２を識別するデータを記憶する。フィールド２１２Ｄを活用して、フィールド２１２Ｅ内で識別された配置戦略１１２に対応する作業負荷記述子２０６Ａを記憶する。フィールド２１２Ａを活用して、フィールド２１２Ｅ内で識別された配置戦略１１２を提出した顧客２０２を識別するデータを記憶する。
【００４６】
以下でより詳細に説明する通り、サービス事業者ネットワーク１０２の顧客２０２は、また、配置戦略１１２と配置戦略１１２の発行者とに対する評価を提供することを許可され得る。一実施例として、サービス事業者ネットワーク１０２の顧客２０２は、配置戦略１１２及び／または特定の配置戦略１１２の発行者を、１〜５、１〜１０、１〜１００の尺度で、または他の方法で、評価することを許可され得る。これらの実施形態では、データストア２１０は、また、特定の配置戦略１１２及び／または発行者に対する評価を定義するデータも記憶するように構成され得る。たとえば、フィールド２１２Ｃを活用して、フィールド２１２Ｅ内で識別された配置戦略１１２に対する評価を定義するデータを記憶することができる。フィールド２１２Ｂを活用して、フィールド２１２Ｅ内で識別された配置戦略１１２の発行者に対する評価を定義するデータを記憶することができる。図２で示したデータ構造が単に例示であり、上で説明したデータ及び／または他の関連データを記憶するために、他の種類のデータ構造とストレージシステムと技術とを活用することができる、ということを理解すべきである。
【００４７】
サービス事業者ネットワーク１０２は、また、一実施形態では、配置戦略特定構成要素２１４（「特定構成要素２１４」）を有して構成される。特定構成要素２１４は、ＵＩ、ＡＰＩ、またはサービス事業者ネットワーク１０２の顧客が、それを通じて、特定の種類の作業負荷と共にしようするのに適切な配置戦略１１２を得ることができる他の機構を提供する。たとえば、図２に示した実施例では、顧客２０２Ｃは、適切なコンピューティングデバイスを活用して、配置戦略要求２１６（「要求２１６」）を特定構成要素２１４にすでに送信している。要求２１６は、顧客２０２Ｃが、それに対する適切な配置戦略１１２を探している作業負荷を識別する作業負荷記述子２０６Ｃを含む。
【００４８】
要求２１６を受信したことに応答して、特定構成要素２１４は、作業負荷記述子２０６Ｂによって識別された作業負荷に対して適切な配置戦略１１２を特定するために、データストア２１０の内容を検索する。たとえば、特定構成要素２１４は、要求２１６中で提出された作業負荷記述子２０２Ｃに合う作業負荷記述子について、フィールド２１２を検索することができる。いくつかの実施形態では、特定構成要素２１４は、また、要求２１６に応答して、データストア２１０内に記憶された他のデータのうちのいくつかを活用して、配置戦略１１２を選択することができる。たとえば、作業負荷記述子２０６Ｃに対して複数のマッチが見つかった場合、特定構成要素２１４は、フィールド２１２Ｃ内に記憶された、最も高い評価を有する、マッチする配置戦略１１２を選択することができる。別の実施例として、特定構成要素２１４は、フィールド２１２Ｂ内で反映されている、最も高い発行者評価を有する配置戦略１１２を選択することができる。他の機構も活用して、要求２１６に応答して返すべき配置戦略１１２を選択することができる。
【００４９】
図２に示す実施例では、特定構成要素２１４は、作業負荷記述子２０６Ｂによって識別された作業負荷に対して適切だとして、配置戦略１１２Ｂをすでに選択している。その結果、特定構成要素２１４は、要求２１６に応答して、配置戦略１１２Ｂ、または配置戦略１１２Ｂへの参照を返している。そこで、顧客２０２Ｃは、返された配置戦略１１２Ｂを活用して、作業負荷記述子２０６Ｂによって記述された作業負荷を扱うための仮想マシンの配置に、図１に関して上で説明した方法で影響を与えることができる。上でも述べた通り、返された配置戦略１１２Ｂの発行者（この場合、顧客２０２Ｂ）は、配置戦略１１２Ｂの顧客２０２Ｃへの提供に対して報酬を支払われ得る。配置戦略１１２の発行者は、また、他の顧客２０２による配置戦略１１２の使用に対して、別の方法でも報酬を支払われ得る。
【００５０】
上述の通り、いくつかの実装形態では、サービス事業者ネットワーク１０２の顧客２０２は、配置戦略１１２及び／または配置戦略の発行者に対する評価を提出することができる。これらの実装形態では、特定構成要素２１４、またはサービス事業者ネットワーク１０２の内部または外部の他の構成要素は、顧客２０２または他のユーザが、それを通して、配置戦略１１２及び／または配置戦略１１２の発行者に対する評価を提出することができる、ＵＩ、ＡＰＩ、または他の種類のインターフェースを提供することができる。図２に示した実施例では、たとえば、サービス事業者ネットワーク１０２の顧客２０２Ｄは、配置戦略１１２に対する評価２１８と配置戦略１１２の発行者に対する評価２２０とを提出している。上でも述べた通り、提供された評価２１８と２２０とを、データストア２１０内、または他の場所に記憶することができる。提供された評価２１８と２２０とを、平均化、重み付け、及び／または他の方法で修正して、配置戦略１１２及び／または配置戦略１１２の発行者に対する適切な評価手段を提供することもできる。
【００５１】
また、データストア２１０に記憶されたデータを、別の方法で活用及び／または見えるようにすることもできる、ということを理解すべきである。たとえば、さまざまな配置戦略１１２に対する配置戦略評価２１８を、ウェブサイトまたは他の種類のユーザインターフェースを通して見えるようにすることができる。同様に、配置戦略１１２の発行者についての発行者評価２２０も、同様の方法で見えるようにすることができる。この情報は、特定の種類の作業負荷に対する配置戦略１１２を選択する時に、サービス事業者ネットワーク１０２の顧客２０２を補助することができる。この情報を、別の方法で活用することもできる。
【００５２】
上で簡単に述べた通り、配置戦略１１２を、顧客２０２による手動提出とは異なる方法でデータストア２１０に追加することができる。特定の一実施形態では、たとえば、展開構成要素１１０などのサービス事業者ネットワーク１０２内の構成要素は、特定の種類の作業負荷と共に使用されている、特定の配置戦略１１２に関する履歴データを維持することができる。特定の種類の作業負荷のうちの大部分または大半と共に使用されている配置戦略１１２を、データストア２１０に追加することができる。たとえば、展開構成要素１１０は、特定の種類の作業負荷に対して、６５％の場合で特定の配置戦略１１２が活用される、ということを判定することができる。そのような判定に応答して、展開構成要素１１０は、上で説明した方法で、顧客に提供するための配置戦略１１２をデータストア２１０に追加させることができる。機械学習などのさまざまな技術を活用して、時間をかけて、顧客が、特定の種類の作業負荷に対して特定のインフラストラクチャプラットフォームを活用する、ということを判定することができる。そこで、この情報を活用して、特定の作業負荷に対する最適な配置戦略１１２を決定することができる。
【００５３】
特定の配置戦略１１２がある特定の種類の作業負荷と共に活用される頻度を定義する情報を、他の方法で活用することもできる。たとえば、この情報は、サービス事業者ネットワーク１０２の運用者によって活用されて、顧客ネットワーク１０２における特定の仮想マシンインスタンスタイプの使用を推奨またはやめさせることができる。具体的には、顧客２０２が、ほとんど使用されないハードウェアタイプまたは不適切なハードウェアタイプを特定する配置戦略１１２を使用して仮想マシンインスタンス立ち上げることを要求していると、サービス事業者ネットワーク１０２が判断した場合、サービス事業者ネットワーク１０２内の構成要素は、履歴データを顧客に提示し、異なる配置戦略１１２を活用して仮想マシンインスタンス立ち上げることを、顧客に推奨することができる。
【００５４】
いくつかの実施形態では、特定の作業負荷に対する最適な配置戦略１１２を選択するために、データストア２１０内で識別された配置戦略１１２を「ベンチマーク」することができる。たとえば、異なる配置戦略１１２を活用して、作業負荷を異なるインフラストラクチャタイプ上でインスタンス化することができる。次いで、異なるインフラストラクチャタイプ上での作業負荷の性能を測定し、作業負荷に対して最も高い性能を有するインフラストラクチャタイプを特定する配置戦略１１２を、最適な配置戦略１１２として選択することができる。性能は、絶対計算性能として、価格対性能比として、コストのみに基づいて、または他の方法で測定され得る。特定の作業負荷に対する最適な配置戦略１１２は、上で説明した方法で、作業負荷のための配置戦略１１２に対する要求２１６に応答して、選択され得る。
【００５５】
図３は、本明細書で開示される一実施形態による、配置戦略１１２を共有するための、また、配置戦略１１２と配置戦略１１２の発行者とを評価するための、１つの例示的なルーチン３００を示したフロー図である。図３と他の図とに関連して本明細書で説明する論理動作を、（１）コンピュータシステム上で実行される、コンピュータ実装動作またはプログラムモジュールのシーケンスとして、及び／または（２）コンピュータシステム内で相互接続された機械論理回路または回路モジュールとして、実装することができる、ということを理解すべきである。本明細書で説明するさまざまな構成要素の実装形態は、コンピューティングシステムの性能と他の要件とによる、好みの問題である。その結果、本明細書で説明する論理動作は、演算、構造デバイス、動作、モジュールとさまざまに呼ばれる。これらの演算、構造デバイス、動作、及びモジュールは、ソフトウェアと、ファームウェアと、専用デジタル論理と、それらの組み合わせとにおいて実装され得る。図で示し、本明細書で説明するものよりも多い、または少ない動作を実行することができる、ということも理解すべきである。また、これらの動作を、並列に、または本明細書で説明するものとは異なる順番で実行することもできる。
【００５６】
ルーチン３００は、動作３０２から始まり、サービス事業者ネットワーク１０２が、顧客２０２が配置戦略１１２を共有することを可能にするための、上で説明した提出インターフェース２０４を提供する。上述の通り、提出インターフェース２０４は、ウェブサイトなどのＵＩ、ＡＰＩ、または顧客２０２または他のユーザが、それを通して、配置戦略１１２をサービス事業者ネットワーク１０２に提出することができる、他の種類のインターフェースであることができる。
【００５７】
動作３０２から、ルーチン３００は動作３０４に進み、提出インターフェース２０４が配置戦略１１２を受信する。上述の通り、提出された配置戦略１１２が共に使用されるのが適切な、１つまたは複数の作業負荷を定義する作業負荷記述子２０６も、各提出された配置戦略１１２と共に提供することができる。提出は、また、配置戦略１１２を提出するユーザを識別する発行者ＩＤ２０８も含むことができる。他の情報も提供することができる。動作３０４から、ルーチン３００は動作３０６へ進み、提出インターフェース２０４が、配置戦略１１２と作業負荷記述子２０６などの他の関連データとをデータストア２１０の中に記憶する。
【００５８】
動作３０６から、ルーチン３００は動作３０８へ進み、特定構成要素２１４またはサービス事業者ネットワーク１０２内の他の構成要素が、配置戦略１１２の評価２１８を受信する。次いで、評価２１８は、上で説明した方法で、データストア２１０内に記憶される。上でも述べた通り、データストア２１０内に記憶する前または後に、評価２１８を平均化、重み付け、または他の方法で処理することができる。配置戦略１１２の発行者に対する評価２２０を、動作３１０と同様の方法で受信し、記憶することができる。
【００５９】
動作３１０から、ルーチン３００は動作３１２へ進み、特定構成要素２１４が、特定の作業負荷のための配置戦略１１２に対する要求２１６を受信する。上述の通り、作業負荷を、要求２１６内の作業負荷記述子２０６によって識別することができる。要求２１６を受信したことに応答して、ルーチン３００は動作３１２から動作３１４に進み、特定構成要素２１４が、提供された作業負荷記述子２０６とデータストア２１０の内容とを活用して、要求２１６で識別された作業負荷に対して適切な配置戦略１１２を選択する。適切な配置戦略１１２を特定することができる場合、特定構成要素２１４は、動作３１６で、要求２１６に応答して、選択された配置戦略１１２を返す。選択された配置戦略１１２を活用して仮想マシンインスタンスまたは他の種類の作業負荷を実行することに関連するコストもまた、要求２１６に応答して、返すことができる。次いで、ルーチン３００は、動作３１６から動作３１８に進み、そこで終了する。
【００６０】
図４は、本明細書で開示される一実施形態による、ベンダー非依存配置戦略４０８を活用して、仮想マシンインスタンス１０４をインスタンス化するためのサービス事業者ネットワーク１０２を選択するための、本明細書で開示する一機構の態様を示したシステム図である。図４で示す実施形態では、異なるベンダーが、異なるサービス事業者ネットワーク１０２Ａ〜１０２Ｎを運用している。サービス事業者ネットワーク１０２Ａ〜１０２Ｎの各々は、仮想マシンインスタンス１０４などのコンピューティング資源をオンデマンドで使用するための、上で説明した機能のうちのいくつかまたは全てを提供することができる。しかしながら、サービス事業者ネットワーク１０２Ａ〜１０２Ｎは、異なる構成を有し、異なるハードウェアプラットフォームを活用して実装された、異なる種類のコンピューティング資源を提供し得る。サービス事業者ネットワーク１０２Ａ〜１０２Ｎを運用するベンダーは、また、コンピューティング資源の使用に対して異なる価格を請求する場合もある。
【００６１】
図４に示す実施形態では、インスタンス配置サービス４０２を活用して、仮想マシンインスタンス１０４または他の種類のコンピューティング資源を実行するためのサービス事業者ネットワーク１０２Ａ〜１０２Ｎの選択について、ユーザを補助することができる。この機能を提供するために、インスタンス配置サービス４０２は、サービス事業者ネットワーク１０２Ａ〜１０２Ｎの各々について、インスタンス利用可能性データ４０４とインスタンス価格決定データ４０６とを読み出す。インスタンス利用可能性データ４０４は、各サービス事業者ネットワーク１０２Ａ〜１０２Ｎから利用可能な、仮想マシンインスタンス１０４タイプ及び／または仮想マシンインスタンスタイプを実行するためのハードウェアプラットフォームを記述している。インスタンス利用可能性データ４０４は、また、各サービス事業者ネットワーク１０２から利用可能な他の種類の利用可能コンピューティング資源も記述している。
【００６２】
インスタンス価格決定データ４０６は、各サービス事業者ネットワーク１０２から利用可能な、さまざまな仮想マシンインスタンスタイプを活用するための価格を記述している。インスタンス配置サービス４０２は、仮想マシンインスタンス１０４を立ち上げることに対する要求１０８を受信する前に、インスタンス利用可能性データ４０４とインスタンス価格決定データ４０６とを読み出し、将来使用するために、データ４０４とデータ４０６とを記憶することができる。代替的に、インスタンス配置サービス４０２は、仮想マシンインスタンス１０４を立ち上げることに対する要求１０８の受信の直後に、インスタンス利用可能性データ４０４とインスタンス価格決定データ４０６とを取得することができる。
【００６３】
別の実施形態では、インスタンス配置サービス４０２は、サービス事業者ネットワーク１０２のうちの１つで、仮想マシンインスタンス１０４を迅速に立ち上げることができる。立ち上げの後、インスタンス配置サービス４０２は、次いで、インスタンス利用可能性データ４０４とインスタンス価格決定データ４０６とを取得することができる。そこで、インスタンス利用可能性データ４０４と、インスタンス価格決定データ４０６と、ベンダー非依存配置戦略４０８とを活用して、以下に説明する方法で、仮想マシンインスタンス１０４のためのサービス事業者ネットワーク１０２を選択することができる。選択されたサービス事業者ネットワーク１０２が、仮想マシンインスタンス１０４が起動されたサービス事業者ネットワーク１０２と同じでない場合、仮想マシンインスタンス１０４を、選択されたサービス事業者ネットワーク１０２に移行することができる。さまざまな機構を活用して、仮想マシンインスタンス１０４を移行することができ、機構には、実行中の仮想マシンインスタンス１０４の状態が保存され、移行され、再開される「ライブ」移行と、実行仮想マシンインスタンス１０４が、移行の前に停止される「リブート」移行とを含むが、これらに限定されない。他の移行技術も活用することができる。
【００６４】
図４に示す通り、インスタンス配置サービス４０２は、また、立ち上げ要求１０８も受信することができる。本実施形態では、立ち上げ要求１０８は、ベンダー非依存配置戦略４０８を含む。上で簡単に説明した通り、ベンダー非依存配置戦略４０８は、特定のサービス事業者（つまり、ベンダー）及び／またはサービス事業者ネットワーク１０２から独立した（つまり、非依存の）方法で定義された配置戦略１１２である。ベンダー非依存配置戦略４０８を、適切な拡張マークアップ言語（「ＸＭＬ」）スキーマを活用して、または他の技術を使用する他の方法で、定義することができる。
【００６５】
いくつかの実装形態では、立ち上げ要求１０８は、また、１つまたは複数の配置選好４１０も含む。配置選好４１０は、要求された仮想マシンインスタンス１０４を立ち上げるための、好みのサービス事業者ネットワーク１０２を特定することができる。配置選好４１０は、また、要求された仮想マシンインスタンス１０４を立ち上げるために活用されない、特定のサービス事業者ネットワーク１０２、またはネットワーク１０２を特定することもできる。他の種類の配置選好４１０も、立ち上げ要求１０８内で特定することができる。
【００６６】
立ち上げ要求１０８を受信したことに応答して、インスタンス配置サービス４０２は、インスタンス利用可能性データ４０４と、インスタンス価格決定データ４０６と、ベンダー非依存配置戦略４０８とを活用して、要求された仮想マシンインスタンス１０４を立ち上げるためのサービス事業者ネットワーク１０２Ａ〜１０２Ｎを選択することができる。一実施形態では、仮想マシンインスタンス１０４を立ち上げるために選択されるサービス事業者ネットワーク１０２は、ベンダー非依存配置戦略４０８のパラメータを満たすことができ、仮想マシンインスタンス１０４を最低コストで実行することもできる、サービス事業者ネットワーク１０２である。要求された仮想マシンインスタンス１０４をインスタンス化するためのサービス事業者ネットワーク１０２は、また、他の実施形態では、インスタンス利用可能性データ４０４、インスタンス価格決定データ４０６、及び／またはベンダー非依存配置戦略４０８を別の方法で使用して選択され得る。この点において、要求された仮想マシンインスタンス１０４をインスタンス化するためのサービス事業者ネットワーク１０２を選択する時に、他の要因も活用することができ、他の要因は、各サービス事業者ネットワーク１０２の、地理的位置、ネットワーク帯域幅及び／または待ち時間、サービス履歴、顧客供給評価、及び／または過去のタイプアップなどであるが、これらに限定されない。
【００６７】
サービス事業者ネットワーク１０２を選択するために、インスタンス配置サービス４０２は、ベンダー非依存配置戦略４０８をベンダー固有の配置戦略に変換する必要があり得る。この点において、立ち上げ要求１０８は、ベンダー非依存配置戦略４０８のベンダー固有の同等物を任意で特定して、この変換を補助することができる。同様な方法で、インスタンス配置サービス４０２は、さまざまな処理を実行して、サービス事業者ネットワーク１０２Ａ〜１０２Ｎの各々から利用可能な、概同等なインスタンスタイプを特定する必要があり得る。インスタンス配置サービス４０２もまた、ベンダー非依存配置戦略４０８内に明記されたさまざまなパラメータを満たすことができるサービス事業者ネットワーク１０２を特定するために、他の種類の処理を実行することができる。
【００６８】
サービス事業者ネットワーク１０２が選択されると、インスタンス配置サービス４０２は、立ち上げ要求４１２を選択されたサービス事業者ネットワーク１０２に送信して、要求された仮想マシンインスタンス１０４をインスタンス化することができる。図４に示す実施例では、たとえば、サービス事業者ネットワーク１０２Ａが選択され、その結果、インスタンス配置サービス４０２は、立ち上げ要求４１２を、サービス事業者ネットワーク１０２Ａの展開構成要素１１０などの適切な構成要素にすでに送信している。立ち上げ要求４１２を、適切なＡＰＩ、または選択されたサービス事業者ネットワーク１０２Ａによって見られる他の種類のインターフェースに送信することができる。
【００６９】
次いで、選択されたサービス事業者ネットワーク１０２Ａは、提供されたベンダー非依存配置戦略４０８を活用して、要求された仮想マシンインスタンス１０４を、サービス事業者ネットワーク１０２Ａ内でインスタンス化することができる。いくつかの実施形態では、インスタンス配置サービス４０２は、また、選択されたサービス事業者ネットワーク１０２Ａ内での要求されたインスタンスの立ち上げの後に、立ち上げ確認４１４を立ち上げ要求１０８の送信者に送信することもできる。インスタンス配置サービス４０２は、また、要求されたインスタンス１０４を選択されたサービス事業者ネットワーク１０２内で実行するための推定コスト４１６を、立ち上げ要求１０８の送信者に送信することもできる。他の実施形態では、他の種類の情報も、立ち上げ要求１０８の送信者に返すことができる。
【００７０】
一実装形態では、ベンダー非依存配置戦略４０８を、各サービス事業者ネットワーク１０２Ａ〜１０２Ｎに直接提出することができる。本実装形態では、各サービス事業者ネットワーク１０２Ａ〜１０２Ｎの構成要素は、ベンダー非依存配置戦略４０８を受信することができ、それに応答して、サービス事業者ネットワーク１０２が、ベンダー非依存配置戦略４０８を満たす適切なハードウェアプラットフォームを有しているかどうかに関する指示を返すことができる。サービス事業者ネットワーク１０２が適切なハードウェアプラットフォームを有する場合、ベンダー非依存配置戦略４０８によって定義された資源をインスタンス化するサービス事業者ネットワーク１０２を活用するための推定コストを示す、インスタンス価格決定データ４０６を返すこともできる。ベンダー非依存配置戦略４０８を提出する顧客は、そこで、このデータを活用して、特定のサービス事業者ネットワーク１０２を活用するかどうかを決定することができる。
【００７１】
インスタンス配置サービス４０２は、サービス事業者ネットワーク１０２Ａ〜１０２Ｎのうちの１つも運用するエンティティによって運用され得る。このシナリオでは、インスタンス配置サービス４０２は、サービス事業者ネットワーク１０２Ａ〜１０２Ｎのうちの１つの中で動作しているコンピューティング資源上で運用され得る。別の実施形態では、インスタンス配置サービス４０２は、サービス事業者ネットワーク１０２Ａ〜１０２Ｎの運用者に関連しない第三者によって運用される。インスタンス配置サービス４０２は、また、サービス事業者ネットワーク１０２Ａ〜１０２Ｎのうちの１つまたは複数の顧客によって所有されているネットワーク内で運用され得る。インスタンス配置サービス４０２は、また、他の実施形態では、他のネットワーク内の他のエンティティによって運用され得る。
【００７２】
図５は、本明細書で開示される一実施形態による、ベンダー非依存配置戦略４０８を活用して、仮想マシンインスタンスをインスタンス化するためのサービス事業者ネットワーク１０２を選択するための、１つの例示的なルーチン５００を示したフロー図である。ルーチン５００は動作５０２で開始し、インスタンス配置サービス４０２が、ベンダー非依存配置戦略４０８を含む立ち上げ要求１０８を受信する。次いで、ルーチン５００は、動作５０２から動作５０４に進み、インスタンス配置サービス４０２が、インスタンス利用可能性データ４０４を、サービス事業者ネットワーク１０２Ａ〜１０２Ｎから読み出す。上述の通り、インスタンス配置サービス４０２は、（図５に示す通り）立ち上げ要求１０８を受信する時に、または立ち上げ要求１０８を受信する時よりも前に、インスタンス利用可能性データ４０４を読み出すことができる。インスタンス利用可能性データ４０４が、立ち上げ要求１０８を受信する時よりも前に読み出される場合、立ち上げ要求１０８を受信した時に使用するために、インスタンス利用可能性データ４０４を適切なデータストアの中にキャッシュすることができる。
【００７３】
動作５０４から、ルーチン５００は動作５０６へ進み、インスタンス配置サービス４０２が、インスタンス価格決定データ４０６を、サービス事業者ネットワーク１０２Ａ〜１０２Ｎから読み出す。上述の通り、インスタンス配置サービス４０２は、（図５に示す通り）立ち上げ要求１０８を受信する時に、または立ち上げ要求１０８を受信する時より前に、インスタンス価格決定データ４０６を読み出すことができる。インスタンス価格決定データ４０６が、立ち上げ要求１０８を受信する時よりも前に読み出される場合、立ち上げ要求１０８を受信した時に使用するために、インスタンス価格決定データ４０６を適切なデータストアの中にキャッシュすることができる。
【００７４】
動作５０６から、ルーチン５００は動作５０８へ進み、インスタンス配置サービス４０２が、インスタンス利用可能性データ４０４と、インスタンス価格決定データ４０６と、ベンダー非依存配置戦略４０８とを活用して、立ち上げ要求１０８で特定された仮想マシンインスタンス１０４を立ち上げるためのサービス事業者ネットワーク１０２Ａ〜１０２Ｎを選択する。上述の通り、ベンダー非依存配置戦略４０８に明記されたパラメータを満たすことと、また、仮想マシンインスタンス１０４を（他のサービス事業者ネットワーク１０２と比較して）最低コストで実行することとの両方ができる、仮想マシンインスタンス１０４を立ち上げるためのサービス事業者ネットワーク１０２を選択する。他の実施形態では、立ち上げ要求１０８で要求された仮想マシンインスタンス１０４をインスタンス化するためのサービス事業者ネットワーク１０２を、インスタンス利用可能性データ４０４、インスタンス価格決定データ４０６、及び／またはベンダー非依存配置戦略４０８を他の方法で使用して、選択することもできる。
【００７５】
動作５０８から、ルーチン５００は動作５１０へ進み、インスタンス配置サービス４０２が、立ち上げ要求４１２を、要求された仮想マシンインスタンス１０４をインスタンス化するために選択されたサービス事業者ネットワーク１０２に送信する。それに応答して、選択されたサービス事業者ネットワーク１０２は、ベンダー非依存配置戦略４０８を活用して、新しい仮想マシンインスタンス１０４をインスタンス化する。動作５１２で、インスタンス配置サービス４０２は、また、起動確認４１４及び／または推定コスト４１６を、立ち上げ要求１０８の送信者に提供することができる。動作５１２から、ルーチン５００は動作５１４へ進み、ルーチン５００が終了する。
【００７６】
図６は、本明細書で開示される一実施形態による、動的に評価されるパラメータ６０４を含む配置戦略１１２を活用して、顧客フリート６０２内の仮想マシンインスタンス１０４を修正するための、本明細書で開示される一機構の態様を示したシステム図である。図６で示す実施形態では、動的に評価されるパラメータ６０４を含む配置戦略１１２を定義することができる。上で簡単に説明した通り、動的に評価されるパラメータ６０４は、配置戦略１１２が評価される時に動的に定義されるパラメータである。たとえば、１つまたは複数の動的に評価されるパラメータ６０４の値を、配置戦略１１２が評価される時に、サービス事業者ネットワーク１０２の内部のデータソース６０６から読み出すことができる。サービス事業者ネットワーク１０２の内部のデータソース６０６から読み出された値は、たとえば、サービス事業者ネットワーク１０２内で利用可能な仮想マシンインスタンス１０４の現在の価格決定に関連する値を含むことができる。展開構成要素１１０は、内部データソース６０６及び／または外部データソース６０８から、ＡＰＩコールまたは他の適切な機構を活用して、データを読み出すことができる。
【００７７】
いくつかの実装形態では、１つまたは複数の動的に評価されるパラメータ６０４の値を、配置戦略１１２が評価される時に、サービス事業者ネットワーク１０２の外部のデータソース６０８から読み出すこともできる。いくつかの実施形態では、外部データソース６０８は、サービス事業者ネットワーク１０２の顧客によって運用され得、また、サービス事業者ネットワーク１０２の顧客に関連する値を提供することができる。たとえば、データソース６０８は、顧客による業務用のネットワークの運用に関連するデータを見せるようにすることができる。このようにして、顧客の業務用のネットワークの状態に関連する動的に評価されるパラメータ６０４を含む配置戦略１１２を定義することができる。具体的には、顧客の業務用のネットワークの活用が特定の閾値を超えた場合に、仮想マシンインスタンス１０４をサービス事業者ネットワーク１０２内でインスタンス化する配置戦略１１２を定義することができる。同様に、顧客の業務用のネットワークの活用が特定の閾値を下回った場合に、仮想マシンインスタンス１０４をサービス事業者ネットワーク１０２内から除く配置戦略１１２を定義することができる。外部データソース６０８から利用可能な他の種類のデータを含む、他の種類の配置戦略１１２も定義することができる。
【００７８】
配置戦略１１２の動的に評価されるパラメータ６０４の値を受信すると、配置戦略１１２を評価することができる。評価の結果に依存して、サービス事業者ネットワーク１０２の顧客によって運用されている仮想マシンインスタンス１０４のフリート６０２に対して、さまざまな修正を行うことができる。たとえば、図６に示す通り、特定のハードウェアプラットフォーム６１０Ａ上で実行している仮想マシンインスタンス１０４Ａを、異なるハードウェアプラットフォーム６１０Ｂに移行することができる。上で説明した通り、さまざまな技術を活用してそのような移行を実行することができ、技術にはライブ移行とリブート移行とを含むが、これらに限定されない。別の実施例では、動的に評価されるパラメータ６０４を含む配置戦略１１２によって特定されたハードウェアプラットフォーム上で実行されている新しい仮想マシンインスタンス１０４を、フリート６０２に追加することができる。フリート６０２に対する他の種類の修正を、動的に評価されるパラメータ６０４の評価に基づいて行うこともできる。
【００７９】
いくつかの実施形態では、動的に評価されるパラメータ６０４の値は、定期的に更新され、配置戦略１１２を再評価するために活用される。そこで、顧客フリート６０２内の仮想マシンインスタンス１０４は、配置戦略１１２の評価の結果により、それに従って修正され得る。このようにして、配置戦略１１２に明記されたパラメータに従って、顧客フリート６０２内のインスタンスに対する修正を継続的に行うことができる。たとえば、内部データソース６０６から読み出されたデータ（たとえば、コスト）及び／または外部データソース６０８から読み出されたデータ（たとえば、業務用の顧客ネットワークの状態）に依存して、顧客フリート６０２内の仮想マシンインスタンス１０４を、異なるハードウェアプラットフォームに継続的に移行することができる。上で説明したさまざまな移行技術を、この点で活用することができる。ある特定の実施形態は、また、循環性能変動を有すると知られている、過去及び／またはリアルタイムの制約パラメータを利用することによって、リアルタイムの価格決定傾向を動的に考慮する配置戦略１１２も提供することができる。
【００８０】
図７は、本明細書で開示される一実施形態による、動的に評価されるパラメータ６０４を含む配置戦略１１２を活用して、顧客フリート６０２内の仮想マシンインスタンス１０４を修正するための、１つの例示的なルーチン７００を示したフロー図である。ルーチン７００は動作７０２で開始し、展開構成要素１１０が、動的に評価されるパラメータ６０４を有する配置戦略１１２を受信する。動作７０２から、ルーチン７００は動作７０４へ進み、展開構成要素１１０が、特定されている場合、任意の外部データソース６０８から値を読み出す。次いで、ルーチン７００は動作７０４から動作７０６に進み、展開構成要素１０１が、特定されている場合、任意の内部データソース６０６から値を読み出す。
【００８１】
動作７０６から、ルーチン７００は動作７０８へ進み、展開構成要素１１０が、内部データソース６０６と外部データソース６０８とからそれぞれ読み出した、動的に評価されるパラメータ６０４の値を活用して、配置戦略１１２を評価する。読み出された値に基づいて、配置戦略１１２内の基準が満たされていないと展開構成要素１１０が判断した場合、ルーチン７００は、動作７１０から動作７１２に進む。動作７１２で、ルーチン７００が動作７０４に戻る前に、いくらかの期間が経過することが許可され得、いくらかの期間の後に、動作７０４で、動的に評価されるパラメータ６０４の値が、上で説明した方法で再び読み出され、評価され得る。
【００８２】
動作７１０で、配置戦略１１２に明記された基準が満たされていると展開構成要素１１０が判断した場合、ルーチン７００は、動作７１０から動作７１４に進む。動作７１４で、展開構成要素１１０は、１つまたは複数の修正が、フリート６０２に対して行われるようにする。たとえば、上で説明した通り、展開構成要素１１０は、仮想マシンインスタンス１０４を、上で説明した方法で、あるハードウェアプラットフォームからの別のハードウェアプラットフォームに移行することができる。代替的に、展開構成要素１１０は、配置戦略１１２で特定されたハードウェアプラットフォームを使用して、新しい仮想マシンインスタンス１０４または他の種類のコンピューティング資源を、フリート６０２内にインスタンス化することができる。動作７１４から、ルーチン７００は動作７１２へ進み、上で説明した、読み出しと、評価と、修正とを、繰り返し実行することができる。
【００８３】
ポーリング機構を、図７に関して上で示し、説明したが、動的に評価されるパラメータ６０４について変更した値が利用可能であるかどうかを判定するために、他の種類の機構も活用することができる、ということを理解すべきである。たとえば、他の実装形態では、展開構成要素１１０は、動的に評価されるパラメータ６０４が変化した時に、イベント通知を受信するように登録することができる。このようにして、図７に関して上で説明したポーリングを避けることができる。他の機構も活用することができる。
【００８４】
図８は、仮想マシンの、ユーザから影響を受けた配置を行うための、上で説明した機能を提供するように構成され得るサービス事業者ネットワーク１０２を含む、本明細書で開示する実施形態の１つの例示的な動作環境を示した、システムとネットワークとの図である。上で簡単に説明した通り、サービス事業者ネットワーク１０２は、恒久的に、または必要な場合に、コンピューティング資源を提供することができる。サービス事業者ネットワーク１０２によって提供されるコンピューティング資源は、データ処理資源、データストレージ資源、ネットワーキング資源、データ通信資源などの、さまざまな種類のコンピューティング資源を含むことができる。
【００８５】
各種類のコンピューティング資源は、汎用であり得、またはいくつかの特定の構成で利用可能であり得る。たとえば、上で簡単に説明した通り、データ処理資源は、いくつかのの異なる構成の仮想マシンインスタンス１０４として利用可能であり得る。仮想マシンインスタンス１０４は、ウェブサーバと、アプリケーションサーバと、メディアサーバと、データベースサーバと、他の種類のアプリケーションとを含むアプリケーションを実行するように構成され得る。データストレージ資源は、ファイルストレージデバイス、ブロックストレージデバイス、などを含むことができる。
【００８６】
上でも簡単に述べた通り、サービス事業者ネットワーク１０２によって提供されるコンピューティング資源は、（本明細書では、単数形で「データセンタ８０２」または複数形で「データセンタ８０２」と呼ばれ得る）１つまたは複数のデータセンタ８０２Ａ〜８０２Ｎによって、１つの実装形態で可能にされる。データセンタ８０２は、コンピュータシステムと関連構成要素とを格納し、動作させるために活用される施設である。データセンタ８０２は、通常、冗長電源及び非常用電源システムと、通信システムと、冷却システムと、セキュリティシステムとを含む。データセンタ８０２は、また、地理的に全く異なる場所に置かれてよい。仮想マシンの、ユーザから影響を受けた配置を行うための、本明細書で開示する機能の態様を実装するデータセンタ８０２の１つの例示的な構成を、図９に関して以下に説明する。
【００８７】
以下の条項を考慮して、本開示の実施形態を説明することができる。
【００８８】
１．コンピュータによって実行された時に、前記コンピュータに、
複数の配置戦略であって、サービス事業者ネットワーク内の特定のハードウェアプラットフォーム上への仮想マシンインスタンスの配置に影響を与えることに使用するために構成されたデータを備える、複数の配置戦略を記憶することと、
特定された仮想マシンのイメージと共に使用するのに適切な配置戦略に対する要求を受信することと、
前記記憶されたデータを使用して、前記特定された仮想マシンのイメージをその上で実行する、サービス事業者ネットワーク内のハードウェアプラットフォームを特定することに使用するための配置戦略を選択することと、
前記要求に応答して、前記選択された配置戦略を返すことと、
を行わせる、記憶されたコンピュータ実行可能命令を有するコンピュータ可読記憶媒体。
【００８９】
２．前記記憶されたデータが、前記複数の配置戦略に対するユーザ提供評価をさらに備え、前記複数の配置戦略に対する前記ユーザ提供評価を活用して、前記識別された仮想マシンのイメージと共に使用するための前記配置戦略を選択する、１項に記載のコンピュータ可読記憶媒体。
【００９０】
３．前記記憶されたデータが、前記複数の配置戦略の発行者に対するユーザ提供評価をさらに備え、前記複数の配置戦略の前記発行者に対する前記ユーザ提供評価を活用して、前記特定された仮想マシンのイメージと共に使用するのに適切な前記配置戦略を選択する、１項に記載のコンピュータ可読記憶媒体。
【００９１】
４．前記記憶された複数の配置戦略のうちの１つまたは複数が、前記サービス事業者ネットワークの顧客によって提供される、１項に記載のコンピュータ可読記憶媒体。
【００９２】
５．前記記憶された複数の配置戦略のうちの１つまたは複数が、前記サービス事業者ネットワークにおける配置戦略の使用履歴を定義するデータの分析を通して特定される、１項に記載のコンピュータ可読記憶媒体。
【００９３】
６．前記コンピュータによって実行された時に、前記コンピュータに、前記選択された配置戦略を活用して、前記サービス事業者ネットワーク内の特定のハードウェアプラットフォームへの前記特定された仮想マシンのイメージの前記配置に影響を与えることを行わせる、記憶されたコンピュータ実行可能命令をさらに有する、１項に記載のコンピュータ可読記憶媒体。
【００９４】
７．サービス事業者ネットワーク内のハードウェアプラットフォームへの仮想マシンインスタンスの前記配置に影響を与えることに使用するための、配置戦略を共有するためのコンピュータで実装された方法であって、
複数の顧客提供配置戦略を記憶することと、
特定されたコンピューティング作業負荷と共に使用するための配置戦略に対する要求を受信することと、
前記記憶された配置戦略を活用して、前記特定されたコンピューティング作業負荷を実行する、前記サービス事業者ネットワーク内のハードウェアプラットフォームを特定することに使用するための配置戦略を選択することと、
のためのコンピュータで実装された動作を実行することを備える、前記コンピュータで実装された方法。
【００９５】
８．前記コンピューティング作業負荷が、仮想マシンのイメージを備える、７項に記載のコンピュータで実装された方法。
【００９６】
９．前記複数の顧客提供配置戦略に対する１つまたは複数の顧客提供評価を記憶することをさらに備える、７項に記載のコンピュータで実装された方法。
【００９７】
１０．前記複数の顧客提供配置戦略に対する前記顧客提供評価も活用して、前記特定されたコンピューティング作業負荷を実行する、前記サービス事業者ネットワーク内の前記ハードウェアプラットフォームを特定することに使用するための、前記配置戦略を選択する、９項に記載のコンピュータで実装された方法。
【００９８】
１１．前記複数の顧客提供配置戦略の発行者に対する１つまたは複数の顧客提供評価を記憶することをさらに備える、７項に記載のコンピュータで実装された方法。
【００９９】
１２．前記複数の顧客提供配置戦略の発行者に対する前記評価も活用して、前記特定されたコンピューティング作業負荷を実行する、前記サービス事業者ネットワーク内の前記ハードウェアプラットフォームを特定することに使用するための前記配置戦略を選択する、１１項に記載のコンピュータで実装された方法。
【０１００】
１３．前記サービス事業者ネットワークにおける配置戦略の使用履歴を定義するデータの分析を通して識別された、１つまたは複数の配置戦略を記憶することをさらに備える、７項に記載のコンピュータで実装された方法。
【０１０１】
１４．前記選択された配置戦略を活用して、前記サービス事業者ネットワーク内の特定のハードウェアプラットフォームへの前記作業負荷の前記配置に影響を与えることをさらに備える、７項に記載のコンピュータで実装された方法。
【０１０２】
１５．サービス事業者ネットワーク内のコンピューティング作業負荷のための配置戦略を選択するためのコンピューティングシステムであって、
前記コンピューティング作業負荷と共に使用するのに適切な配置戦略に対する要求を受信することと、
前記作業負荷と共に使用するための配置戦略を、前記サービス事業者ネットワークの顧客によって共有されている複数の配置戦略から選択することと、
を行うように構成された１つまたは複数のコンピュータを、
備える、前記システム。
【０１０３】
１６．前記１つまたは複数のコンピュータが、前記選択された配置戦略を活用して、前記サービス事業者ネットワーク内の特定のハードウェアプラットフォームへの前記作業負荷の前記配置に影響を与えるように構成されている、１５項に記載のシステム。
【０１０４】
１７．前記作業負荷が、仮想マシンのイメージを備える、１６項に記載のシステム。
【０１０５】
１８．前記選択された配置戦略が、前記サービス事業者ネットワーク内における配置戦略の過去の使用履歴を定義するデータの分析を通して特定された、１つまたは複数の配置戦略からさらに選択され得る、１５項に記載のシステム。
【０１０６】
１９．前記選択された配置戦略が、前記複数の配置戦略の発行者に対する評価に基づいてさらに識別される、１５項に記載のシステム。
【０１０７】
２０．前記選択された配置戦略が、前記複数の配置戦略に対する評価に基づいてさらに特定される、１５項に記載のシステム。
【０１０８】
２１．コンピュータによって実行された時、前記コンピュータに、
仮想マシンインスタンスをインスタンス化することに対する要求を受信することであって、前記要求がベンダー非依存配置戦略を備える、要求することと、
複数のサービス事業者ネットワークのためのインスタンス利用可能性データを読み出すことであって、前記インスタンス利用可能性データが、前記サービス事業者ネットワークの各々から利用可能な、仮想マシンインスタンスタイプと、前記仮想マシンインスタンスタイプを実行するためのハードウェアプラットフォームを記述している、読み出すことと、
前記複数のサービス事業者ネットワークのためのインスタンス価格決定データを読み出すことであって、前記インスタンス価格決定データが、前記仮想マシンインスタンスタイプを前記サービス事業者ネットワーク内で実行するための価格を記述している、読み出すことと、
前記ベンダー非依存配置戦略と、前記インスタンス利用可能性データと、前記インスタンス価格決定データとを活用して、前記仮想マシンインスタンスをインスタンス化するために前記サービス事業者ネットワークのうちの１つを選択することと、
を行わせる、記憶されたコンピュータ実行可能命令を有するコンピュータ可読記憶媒体。
【０１０９】
２２．前記サービス事業者ネットワークのうちの前記選択された１つが、前記仮想マシンインスタンスを動作させるための最低価格を提供し、また、前記ベンダー非依存配置戦略に明記された１つまたは複数のパラメータも満たす、前記サービス事業者ネットワークを備える、２１項に記載のコンピュータ可読記憶媒体。
【０１１０】
２３．前記複数のサービス事業者ネットワークのための前記インスタンス利用可能性データが、前記仮想マシンインスタンスをインスタンス化することに対する前記要求を受信する前に読み出される、２１項に記載のコンピュータ可読記憶媒体。
【０１１１】
２４．前記複数のサービス事業者ネットワークのための前記インスタンス利用可能性データが、前記仮想マシンインスタンスをインスタンス化することに対する前記要求を受信したことに応答して読み出される、２１項に記載のコンピュータ可読記憶媒体。
【０１１２】
２５．前記複数のサービス事業者ネットワークのための前記インスタンス利用可能性データが、前記仮想マシンインスタンスを前記サービス事業者ネットワークのうちの１つの上で立ち上げた後に読み出される、２１項に記載のコンピュータ可読記憶媒体。
【０１１３】
２６．前記インスタンス価格決定データが、前記仮想マシンインスタンスをインスタンス化することに対する前記要求を受信する前に読み出される、２１項に記載のコンピュータ可読記憶媒体。
【０１１４】
２７．前記インスタンス価格決定データが、前記仮想マシンインスタンスをインスタンス化することに対する前記要求を受信したことに応答して読み出される、２１項に記載のコンピュータ可読記憶媒体。
【０１１５】
２８．前記インスタンス価格決定データが、前記仮想マシンインスタンスを前記サービス事業者ネットワークのうちの１つの上で立ち上げた後に読み出される、２１項に記載のコンピュータ可読記憶媒体。
【０１１６】
２９．前記コンピュータによって実行された時に、前記コンピュータに、前記仮想マシンインスタンスをインスタンス化することに対する要求を、前記サービス事業者ネットワークのうちの前記選択された１つに送信させる、記憶されたコンピュータ実行可能命令をさらに有する、２１項に記載のコンピュータ可読記憶媒体。
【０１１７】
３０．前記コンピュータによって実行された時に、前記コンピュータに、前記仮想マシンインスタンスをインスタンス化することに対する前記要求に応答して、前記仮想マシンインスタンスを前記サービス事業者ネットワークのうちの前記選択された１つの上で実行するための推定コストを返させる、記憶されたコンピュータ実行可能命令をさらに有する、２１項に記載のコンピュータ可読記憶媒体。
【０１１８】
３１．仮想マシンインスタンスを実行するための、複数のサービス事業者ネットワークのうちの１つを選択するためのコンピュータで実装された方法であって、
複数のサービス事業者ネットワークのためのインスタンス利用可能性データを取得することであって、前記インスタンス利用可能性データが、１つまたは複数の仮想マシンインスタンスタイプと、前記仮想マシンインスタンスタイプを実行するためのハードウェアプラットフォームとを記述している、取得することと、
前記複数のサービス事業者ネットワークのためのインスタンス価格決定データを取得することであって、前記インスタンス価格決定データが、前記仮想マシンインスタンスタイプを活用するための価格を記述している、取得することと、
前記インスタンス利用可能性データと、前記インスタンス価格決定データと、ベンダー非依存配置戦略とを活用して、仮想マシンインスタンスを実行するための、前記複数のサービス事業者ネットワークのうちの１つを選択することと、
のためのコンピュータで実装された動作を実行することを備える、前記方法。
【０１１９】
３２．前記ベンダー非依存配置戦略が、サービス事業者ネットワーク内の特定のハードウェアプラットフォームへの仮想マシンインスタンスの前記配置に影響を与えることに使用するために構成されたベンダー非依存データを備える、３１項に記載のコンピュータで実装された方法。
【０１２０】
３３．前記サービス事業者ネットワークのうちの前記選択された１つが、前記仮想マシンインスタンスを実行するための最低価格を提供し、また、前記ベンダー非依存配置戦略に明記された１つまたは複数のパラメータも満たす前記サービス事業者ネットワークを備える、３１項に記載のコンピュータで実装された方法。
【０１２１】
３４．前記仮想マシンインスタンスを実行するための前記サービス事業者ネットワークが、前記仮想マシンインスタンスを実行するための好みのサービス事業者ネットワークを特定する、１つまたは複数の配置選好を考慮してさらに選択される、３２項に記載のコンピュータで実装された方法。
【０１２２】
３５．前記仮想マシンインスタンスを実行するための前記サービス事業者ネットワークが、前記仮想マシンインスタンスを実行するために活用されるべきでないサービス事業者ネットワークを特定する、１つまたは複数の配置選好を考慮してさらに選択される、３２項に記載のコンピュータで実装された方法。
【０１２３】
３６．前記インスタンス利用可能性データ及び前記インスタンス価格決定データが、前記仮想マシンインスタンスを実行することに対する要求を受信する前に取得される、３２項に記載のコンピュータで実装された方法。
【０１２４】
３７．前記インスタンス利用可能性データ及び前記インスタンス価格決定データが、前記仮想マシンインスタンスを実行することに対する要求を受信したことに応答して取得される、３１項に記載のコンピュータで実装された方法。
【０１２５】
３８．前記仮想マシンインスタンスを、前記サービス事業者ネットワークのうちの前記選択された１つの上で実行させることをさらに備える、３２項に記載のコンピュータで実装された方法。
【０１２６】
３９．仮想マシンインスタンスを実行するためのサービス事業者ネットワークを選択するためのコンピューティングシステムであって、
仮想マシンインスタンスを実行することに対する要求を受信することであって、前記要求がベンダー非依存配置戦略を備える、受信することと、前記ベンダー非依存配置戦略を活用して、前記仮想マシンインスタンスを実行するための、複数のサービス事業者ネットワークのうちの１つを選択することと、を行うように構成された１つまたは複数のコンピュータ、
を備える、前記システム。
【０１２７】
４０．前記複数のサービス事業者ネットワークのうちの前記選択された１つが、前記ベンダー非依存配置戦略で特定された１つまたは複数のパラメータを満たすことができ、また、前記仮想マシンインスタンスを、前記複数のサービス事業者のうちで最低コストで実行することもできる前記サービス事業者ネットワークを備える、３９項に記載のシステム。
【０１２８】
４１．前記１つまたは複数のコンピュータが、前記サービス事業者ネットワークから取得したインスタンス利用可能性データに基づいて、前記サービス事業者ネットワークが、前記ベンダー非依存配置戦略で特定された前記１つまたは複数のパラメータを満たすことができるかどうかを判断するように構成されている、４０項に記載のシステム。
【０１２９】
４２．前記１つまたは複数のコンピュータが、前記サービス事業者ネットワークから取得したインスタンス価格決定データに基づいて、前記仮想マシンインスタンスを前記最低コストで実行することができる前記サービス事業者ネットワークを特定するように構成されている、４０項に記載のシステム。
【０１３０】
４３．コンピュータによって実行された時に、前記コンピュータに、
１つまたは複数の動的に評価されるパラメータを備える配置戦略を受信することと、
前記動的に評価されるパラメータの１つまたは複数の値を、サービス事業者ネットワークの外部の１つまたは複数のソースから読み出すことと、
前記配置戦略を、少なくとも、前記サービス事業者ネットワークの外部の前記１つまたは複数のソースから読み出された前記動的に評価されるパラメータの前記値を活用して評価することと、
前記配置戦略の前記評価に基づいて、前記サービス事業者ネットワーク内で動作している、顧客フリート内の１つまたは複数の仮想マシンインスタンスを修正することと、
を行うようにさせる、記憶されたコンピュータ実行可能命令を有するコンピュータ可読記憶媒体。
【０１３１】
４４．顧客フリート内の１つまたは複数の仮想マシンインスタンスを修正することが、前記顧客フリート内の仮想マシンインスタンスを、前記サービス事業者ネットワーク内の第１のハードウェアプラットフォームから第２のハードウェアプラットフォームに移行させることを含む、４３項に記載のコンピュータ可読記憶媒体。
【０１３２】
４５．顧客フリート内の１つまたは複数の仮想マシンインスタンスを修正することが、前記サービス事業者ネットワーク内で、前記配置戦略によって特定されたハードウェアプラットフォーム上で仮想マシンインスタンス立ち上げることを含む、４３項に記載のコンピュータ可読記憶媒体。
【０１３３】
４６．前記コンピュータによって実行された時に、前記コンピュータに、前記読み出し動作と、評価動作と、修正動作とを定期的に繰り返させる、記憶されたコンピュータ実行可能命令をさらに有する、４３項に記載のコンピュータ可読記憶媒体。
【０１３４】
４７．前記コンピュータによって実行された時に、前記コンピュータに、前記動的に評価されるパラメータの１つまたは複数の値を、前記サービス事業者ネットワークの内部の１つまたは複数のデータソースから読み出させる、記憶されたコンピュータ実行可能命令をさらに有する、４３項に記載のコンピュータ可読記憶媒体。
【０１３５】
４８．前記配置戦略が、前記サービス事業者ネットワークの内部の前記１つまたは複数のデータソースから読み出された前記動的に評価されるパラメータの前記値に基づいて、さらに評価される、３５項に記載のコンピュータ可読記憶媒体。
【０１３６】
４９．前記配置戦略が、前記動的に評価されるパラメータのうちの１つまたは複数が変更されたことを示すイベント通知を受信したことに応答して評価される、３５項に記載のコンピュータ可読記憶媒体。
【０１３７】
５０．仮想マシンインスタンスのフリート内の１つまたは複数の仮想マシンインスタンスを、１つまたは複数の動的に評価されるパラメータを特定する配置戦略を使用して修正するためのコンピュータで実装された方法であって、
前記配置戦略によって特定された前記１つまたは複数の動的に評価されるパラメータの値を読み出すことと、
前記配置戦略を、前記動的に評価されるパラメータの前記読み出された値に少なくとも部分的に基づいて評価することと、
前記フリート内の前記１つまたは複数の仮想マシンインスタンスを、前記配置戦略の前記評価に基づいて修正することと、
のためのコンピュータで実装された動作を実行することを備える、前記方法。
【０１３８】
５１．前記１つまたは複数の動的に評価されるパラメータの前記値のうちの少なくとも１つが、前記仮想マシンインスタンスを提供しているサービス事業者ネットワークの外部のデータソースから読み出される、５０項に記載のコンピュータで実装された方法。
【０１３９】
５２．前記サービス事業者ネットワークの外部の前記データソースが、前記１つまたは複数の仮想マシンインスタンスに関連する前記サービス事業者ネットワークの顧客によって提供される、５１項に記載のコンピュータで実装された方法。
【０１４０】
５３．前記１つまたは複数の動的に評価されるパラメータの前記値のうちの少なくとも１つが、前記仮想マシンインスタンスを提供しているサービス事業者ネットワークの内部のデータソースから読み出される、５０項に記載のコンピュータで実装された方法。
【０１４１】
５４．前記フリート内の前記１つまたは複数の仮想マシンインスタンスを修正することが、第１のハードウェアプラットフォーム上で実行している前記フリート内の第１の仮想マシンインスタンスを、第２のハードウェアプラットフォーム上で実行している第２の仮想マシンと置き換えることを備える、５０項に記載のコンピュータで実装された方法。
【０１４２】
５５．前記フリート内の前記１つまたは複数の仮想マシンインスタンスを修正することが、前記配置戦略によって特定されたハードウェアプラットフォーム上で実行される新しい仮想マシンインスタンスを、前記フリート内に作成することを備える、５０項に記載のコンピュータで実装された方法。
【０１４３】
５６．前記読み出し動作と、評価動作と、修正動作とを、定期的に繰り返すことをさらに備える、５０項に記載のコンピュータで実装された方法。
【０１４４】
５７．１つまたは複数の動的に評価されるパラメータを特定する顧客提供配置戦略を使用した、仮想マシンインスタンスのフリートの修正のためのコンピューティングシステムであって、
前記顧客提供配置戦略を、前記動的に評価されるパラメータの値を読み出すことによって評価することと、
前記フリート内の１つまたは複数の仮想マシンインスタンスを、前記顧客提供配置戦略の前記評価に基づいて修正することと、
を行うように構成された１つまたは複数のコンピュータ、
を備える、前記システム。
【０１４５】
５８．前記動的に評価されるパラメータの前記値のうちの少なくとも１つが、前記仮想マシンインスタンスを実装しているサービス事業者ネットワークの外部のデータソースから読み出される、５７項に記載のシステム。
【０１４６】
５９．前記サービス事業者ネットワークの外部の前記データソースが、前記サービス事業者ネットワークの顧客によって提供される、５８項に記載のシステム。
【０１４７】
６０．前記動的に評価されるパラメータの前記値のうちの少なくとも１つが、前記仮想マシンインスタンスを提供しているサービス事業者ネットワークの内部のデータソースから読み出される、５７項に記載のシステム。
【０１４８】
６１．前記フリート内の前記１つまたは複数の仮想マシンインスタンスを修正することが、第１のハードウェアプラットフォーム上で実行している前記フリート内の第１の仮想マシンインスタンスを、第２のハードウェアプラットフォーム上で実行している第２の仮想マシンと置き換えることを備える、５７項に記載のシステム。
【０１４９】
６２．前記フリート内の前記１つまたは複数の仮想マシンインスタンスを修正することが、前記配置戦略によって特定されたハードウェアプラットフォーム上で実行される新しい仮想マシンインスタンスを、前記フリート内に作成することを備える、５７項に記載のシステム。
【０１５０】
６３．前記１つまたは複数のコンピュータが、前記評価動作と、修正動作とを定期的に繰り返すようにさらに構成されている、５７項に記載のシステム。
【０１５１】
サービス事業者ネットワーク１０２の顧客および他のユーザは、サービス事業者ネットワーク１０２によって提供されるコンピューティング資源に、ＷＡＮ８０４を介して、適切な顧客コンピューティングシステム８０１を使用して、アクセスすることができる。図８ではＷＡＮ８０４を示したが、ローカルエリアネットワーク（「ＬＡＮ」）、インターネット、またはデータセンタ８０２を遠隔の顧客と他のユーザとに接続する、当業で知られている他のネットワーキングトポロジーを活用することができる、ということを理解すべきである。そのようなネットワークの組み合わせも活用することができる、ということも理解すべきである。
【０１５２】
図９は、本明細書で開示される一実施形態による、仮想マシンの、ユーザから影響を受けた配置を行うための、本明細書で開示する概念と技術との態様を実装するデータセンタ８０２の一構成を示したコンピューティングシステム図である。図９に示す例示的なデータセンタ８０２は、上で説明したものなどのコンピューティング資源を提供するための、（本明細書では、単数形で「サーバコンピュータ９０２」、または複数形で、「サーバコンピュータ９０２」と呼ばれ得る）いくつかのサーバコンピュータ９０２Ａ〜９０２Ｆを含む。
【０１５３】
サーバコンピュータ９０２は、本明細書で説明するコンピューティング資源を提供するために適切に構成された、標準的なタワー型サーバコンピュータまたはラックマウント型サーバコンピュータであってよい。たとえば、一実装形態では、サーバコンピュータ９０２は、コンピューティング資源９０８Ａ〜９０８Ｎを提供するように構成されている。上述の通り、コンピューティング資源９０８は、仮想マシンインスタンス１０４などのデータ処理資源、データストレージ資源、データベース資源、ネットワーキング資源、などであり得る。サーバ９０２のうちのいくつかは、また、コンピューティング資源をインスタンス化及び／または管理することができる資源管理手段９０４を実行するようにも構成され得る。仮想マシンインスタンス１０４の場合では、たとえば、資源管理手段９０４は、たとえば、ハイパーバイザ、または１つのサーバコンピュータ９０２上で複数の仮想マシンインスタンス１０４の実行を可能にするように構成された他の種類のプログラムであり得る。
【０１５４】
図９に示すデータセンタ９０２は、また、データセンタ８０２とサーバコンピュータ９０２とコンピューティング資源との動作を管理するための、さまざまなソフトウェア構成要素を実行するために用意され得るサーバコンピュータ９０２Ｆも含む。上で説明したものなどのいくつかの実装形態では、サーバコンピュータ９０２Ｆは、また、配置戦略特定構成要素２１４、インスタンス配置サービス４０２、展開構成要素１１０、及び／または本明細書で説明した他のソフトウェア構成要素を実行するように構成され得る。データセンタ８０２内の他のコンピューティングシステムも活用して、これらおよび他の構成要素を実行することができる。他の構成も活用することができる。
【０１５５】
図９に示す例示的なデータセンタ８０２では、適切なＬＡＮ９０６を活用して、サーバコンピュータ９０２Ａ〜９０２Ｆを相互接続する。ＬＡＮ９０６は、また、図８に示したＷＡＮ８０４にも接続される。図１〜９に示した構成及びネットワークトポロジーが大幅に簡略化されており、さらに多くのコンピューティングシステムとネットワークとネットワークデバイスとを活用して、本明細書で開示するさまざまなコンピューティングシステムを相互接続することができ、上で説明した機能を提供することができる、ということを理解すべきである。データセンタ８０２Ａ〜８０２Ｎの各々の間と、各データセンタ８０２内のサーバコンピュータ９０２Ａ〜９０２Ｆの各々の間と、可能性として、データセンタ８０２の各々の中のコンピューティング資源間とでの負荷のバランスを取るための、適切な負荷バランシングデバイスまたはソフトウェアモジュールも活用することができる。図９に関して説明したデータセンタ８０２が、単に例示であり、他の実装形態も活用することができる、ということを理解すべきである。
【０１５６】
図１０は、仮想マシンインスタンス１０４の、ユーザから影響を受けた配置を行うための、上で説明したプログラム構成要素を実行することができる、コンピュータ１０００の例示的なコンピュータアーキテクチャを示している。図１０に示したコンピュータアーキテクチャは、従来のサーバコンピュータ、ワークステーション、デスクトップコンピュータ、ノートパソコン、タブレット、ネットワーク機器、携帯情報端末（「ＰＤＡ」）、電子書籍リーダ、デジタル携帯電話、または他のコンピューティングデバイスを示し、本明細書で提示するソフトウェア構成要素の態様を実行するために活用され得る。たとえば、図１０に示すコンピュータアーキテクチャを活用して、図１〜６に関して上で説明したさまざまな構成要素を実装することができる。
【０１５７】
コンピュータ１０００は、システムバスまたは他の電気通信経路を介して、多数の構成要素またはデバイスが接続され得るプリント基板であるベースボード１００２、または「マザーボード」を含む。一例示的実施形態では、１つまたは複数の中央処理装置（「ＣＰＵ」）１００４は、チップセット１００６と連動して動作する。ＣＰＵ１００４は、コンピュータ１０００の動作に必要な算術演算と論理演算とを実行する、標準的なプログラム可能プロセッサであってよい。
【０１５８】
ＣＰＵ１００４は、ある個別の物理的状態から次の状態に、これらの状態を区別し、変更するスイッチング要素の操作を通して遷移することによって、動作を実行する。スイッチング要素は、一般に、フリップフロップなどの、２つの２進状態のうちの１つを維持する電子回路と、論理ゲートなどの、１つまたは複数の他のスイッチング要素の状態の論理結合に基づいて出力状態を提供する電子回路とを含むことができる。これらの基本的なスイッチング要素を組み合わせて、より複雑な論理回路を作成することができ、それには、レジスタ、加減算回路、算術論理演算ユニット、浮動小数点演算ユニット、などが含まれる。
【０１５９】
チップセット１００６は、ＣＰＵ１００４と、ベースボード１００２上の残りの構成要素及びデバイスとの間のインターフェースを提供する。チップセット１００６は、コンピュータ１０００内でメインメモリとして使用されるランダムアクセスメモリ（「ＲＡＭ」）１００８へのインターフェースを提供することができる。チップセット１００６は、コンピュータ１０００を起動することと、情報をさまざまな構成要素とデバイスとの間で伝達することとを補助する基本的ルーチンを記憶するための、リードオンリーメモリ（「ＲＯＭ」）１０１０または非揮発性ＲＡＭ（「ＮＶＲＡＭ」）などのコンピュータ可読記憶媒体へのインターフェースをさらに提供することができる。ＲＯＭ１０１０またはＮＶＲＡＭは、また、本明細書で説明する実施形態に従った、コンピュータ１０００の動作に必要な他のソフトウェア構成要素を記憶することもできる。
【０１６０】
コンピュータ１０００は、ローカルエリアネットワーク１０２０などのネットワークを通した遠隔のコンピューティングデバイスとコンピュータシステムとへの論理接続を使用して、ネットワーク化された環境で動作することができる。チップセット１００６は、ギガビットイーサネットアダプタなどのＮＩＣ１０１２を通したネットワーク接続性を提供する機能を含むことができる。ＮＩＣ１０１２は、コンピュータ１０００を他のコンピューティングデバイスに、ネットワーク１０２０を介して接続することができる。コンピュータを、他の種類のネットワークと遠隔コンピュータシステムとに接続して、複数のＮＩＣ１０１２がコンピュータ１０００内に存在し得る、ということを理解すべきである。
【０１６１】
コンピュータ１０００は、コンピュータに非揮発性ストレージを提供する大容量記憶装置１０１８に接続され得る。大容量記憶装置１０１８は、本明細書で詳細に説明した、システムプログラムとアプリケーションプログラムと他のプログラムモジュールとデータとを記憶することができる。大容量記憶装置１０１８は、コンピュータ１０００に、チップセット１００６に接続されたストレージ制御部１０１４を通して接続され得る。大容量記憶装置１０１８は、１つまたは複数の物理的記憶装置から成ることができる。ストレージ制御部１０１４は、シリアル接続ＳＣＳＩ（「ＳＡＳ」）インターフェース、シリアルアドバンストテクノロジーアタッチメント（「ＳＡＴＡ」）インターフェース、ファイバーチャネル（「ＦＣ」）インターフェース、またはコンピュータと物理的記憶装置とを物理的に接続し、それらの間でデータを伝達するための他の種類のインターフェースを通して、物理的記憶装置にインターフェース接続することができる。
【０１６２】
コンピュータ１０００は、物理的記憶装置の物理的状態を変換して、記憶されている情報を反映させることによって、データを大容量記憶装置１０１８上に記憶することができる。物理的状態の具体的な変換は、本明細書の異なる実装形態で、さまざまな要因に依存し得る。そのような要因の例は、物理的記憶装置を実装するために使用される技術、大容量記憶装置１０１８が一次記憶装置としてまたは二次記憶装置として特徴付けられるか等を含むが、それに限定されない。
【０１６３】
たとえば、コンピュータ１０００は、ストレージ制御部１０１４を通して、磁気ディスクドライブユニット内の特定の場所の磁気特性、光学式記憶装置内の特定の場所の反射特性または屈折特性、または半導体記憶装置内の特定のコンデンサ、トランジスタ、または他の個別の構成要素の電気特性を変更する命令を発行することによって、情報を大容量記憶装置１０１８に記憶することができる。物理媒体の他の変換が、本明細書の範囲と精神とから逸脱することなく可能であり、前述の実施例は、本明細書を容易にするためにのみ提供されている。コンピュータ１０００は、物理的記憶装置内の１つまたは複数の特定の場所の物理的状態または特性を検出することによって、情報を大容量記憶装置１０１８からさらに読み出すことができる。
【０１６４】
上で説明した大容量記憶装置１０１８に加えて、コンピュータ１０００は、他のコンピュータ可読記憶媒体へのアクセスを有して、プログラムモジュール、データ構造、または他のデータなどの情報を記憶し、読み出すことができる。コンピュータ可読記憶媒体が、非一時的なデータの記憶装置を提供し、コンピュータ１０００によってアクセスされ得る、任意の利用可能な媒体であってよい、ということを当業者は理解すべきである。
【０１６５】
一例として、コンピュータ可読記憶媒体は、任意の方法または技術で実装された、
揮発性媒体及び非揮発性媒体と、取り外し可能媒体及び固定媒体とを含むことができる。コンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、消去プログラム可能ＲＯＭ（「ＥＰＲＯＭ」）、電気的消去プログラム可能ＲＯＭ（「ＥＥＰＲＯＭ」）、フラッシュメモリまたは他の半導体メモリ技術、コンパクトディスクＲＯＭ（「ＣＤ−ＲＯＭ」）、デジタル多用途ディスク（「ＤＶＤ」）、高解像度ＤＶＤ（「ＨＤ−ＤＶＤ」）、ＢＬＵ−ＲＡＹ（登録商標）、または他の光学的記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶デバイスまたは他の磁気記憶デバイス、または所望の情報を非一時的な方法で記憶するために使用され得る他の媒体を含む。
【０１６６】
大容量記憶装置１０１８は、コンピュータ１０００の動作を制御するために活用されるオペレーティングシステム１０３０を記憶することができる。一実施形態によると、オペレーティングシステムは、ＬＩＮＵＸオペレーティングシステムを備える。別の実施形態によると、オペレーティングシステムは、ＭＩＣＲＯＳＯＦＴ  ＣｏｒｐｏｒａｔｉｏｎからのＷＩＮＤＯＷＳ（登録商標）  ＳＥＲＶＥＲオペレーティングシステムを備える。さらなる実施形態によると、オペレーティングシステムは、ＵＮＩＸ（登録商標）またはＳＯＬＡＲＩＳオペレーティングシステムを備えることができる。他のオペレーティングシステムも活用することができる、ということを理解すべきである。大容量記憶装置１０１８は、配置戦略特定構成要素２１４、インスタンス配置サービス４０２、展開構成要素１１０、及び／または上で説明した他のソフトウェア構成要素とデータとのうちのいずれか、などのコンピュータ１０００によって活用される、他のシステムまたはアプリケーションと、データとを記憶することができる。大容量記憶装置１０１８は、また、本明細書で具体的に特定されない他のプログラムとデータとを記憶することもできる。
【０１６７】
一実施形態では、大容量記憶装置１０１８または他のコンピュータ可読記憶媒体は、コンピュータ１０００にロードされた時に、コンピュータを、汎用コンピューティングシステムから、本明細書で説明した実施形態を実装することができる専用コンピュータに変換する、コンピュータ実行可能命令を用いて符号化される。これらのコンピュータ実行可能命令は、ＣＰＵ１００４がどのように上で説明した状態間で遷移するかを特定することによって、コンピュータ１０００を変換する。一実施形態によると、コンピュータ１０００は、コンピュータ１０００によって実行された時に、上で説明したさまざまな処理ルーチンを実行するコンピュータ実行可能命令を記憶する、コンピュータ可読記憶媒体へのアクセスを有する。コンピュータ１０００は、また、本明細書で説明した他のコンピュータで実装された動作のうちのいずれかを実行するためのコンピュータ可読記憶媒体を含むことができる。
【０１６８】
コンピュータ１０００は、また、キーボード、マウス、タッチパッド、タッチパネル、電子スタイラスペン、または他の種類の入力デバイスなどの、いくつかの入力デバイスからの入力を受信し、処理するための、１つまたは複数の入力／出力制御部１０１６も含むことができる。同様に、入力／出力制御部１０１６は、コンピュータモニタなどのディスプレイ、フラットパネルディスプレイ、デジタルプロジェクター、プリンタ、プロッター、または他の種類の出力デバイスへ、出力を提供することができる。コンピュータ１０００が、図１０で示した構成要素の全部を含まないことがあり、図１０で明示的に示さない他の構成要素を含むことができ、図１０に示したアーキテクチャとは全く異なるアーキテクチャを活用することができる、ということを理解すべきである。
【０１６９】
前述に基づいて、仮想マシンインスタンス１０４と他の種類のコンピューティング資源との、ユーザから影響を受けた配置を行うためのさまざまな技術を本明細書で提示した、ということを理解すべきである。さらに、本明細書で提示した主題は、コンピュータ構造特性と方法論的動作とコンピュータ可読媒体とに特有の表現で説明されたが、添付の特許請求の範囲に定義される本発明が、必ずしも、本明細書で説明した具体的な特徴、動作、または媒体に限定されない、ということを理解すべきである。むしろ、具体的な特徴、動作、及び媒体は、本特許請求の範囲を実装する例示的な形態として開示されている。
【０１７０】
上で説明した主題は、例示としてのみ提供され、限定するものとして解釈されるべきでない。さらに、特許請求される主題は、本開示のいずれかの部分に記された、いずれかまたは全部の不利益を解決する実装形態に限定されない。示し、説明した例示的な実施形態とアプリケーションとに従わずに、以下の特許請求の範囲に明記する本発明の真の精神と範囲とから逸脱することなく、さまざまな修正および変更が、本明細書で説明した主題に対してなされ得る。
【図１】
0006291034.tif 000002
【図２】
0006291034.tif 000003
【図３】
0006291034.tif 000004
【図４】
0006291034.tif 000005
【図５】
0006291034.tif 000006
【図６】
0006291034.tif 000007
【図７】
0006291034.tif 000008
【図８】
0006291034.tif 000009
【図９】
0006291034.tif 000010
【図１０】
0006291034.tif 000011