以下の詳細な説明は、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための技術に向けられている。本明細書で説明する技術を活用して、サービス事業者ネットワーク内での仮想マシンインスタンスと他の種類のコンピューティング資源との配置に影響を与えるように、配置戦略を定義し、活用することができる。配置戦略を、サービス事業者ネットワークの顧客間で共有することができ、配置戦略と配置戦略の発行者とを、評価することができる。他の実施形態では、ベンダー非依存配置戦略を活用して、仮想マシンインスタンスをインスタンス化するためのサービス事業者ネットワークを選択することができる。さらに別の実施形態では、動的に評価されるパラメータを含む配置戦略を活用して、顧客フリート内の仮想マシンインスタンスを修正することができる。
配置戦略を使用して、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための本明細書で開示するさまざまな機構は、顧客が、それを通じて、仮想マシンインスタンスとデータストレージ資源とデータベース資源とネットワーキング資源と他の種類のコンピューティング資源とを、恒久的にまたは必要な場合に購入し、活用することができる、(本明細書では、「サービス事業者ネットワーク」とも呼ばれる、)サービス事業者によって運用されているネットワークベースの分散コンピューティング環境と連動して動作することができる。
サービス事業者ネットワークを運用しているサービス事業者は、コンピューティング資源を動作させるための料金を、資源を作成し、使用する顧客に対して請求することができる。サービス事業者は、また、さまざまな購入モデルを活用して、サービス事業者によって提供されるコンピューティング資源の使用に対して顧客にいくら請求するかを決定することができる。上述の通り、そのようなサービス事業者の顧客は、アプリケーションホスティングとバックアップ及び記憶とコンテンツ配信とウェブホスティングと企業ITソリューションとデータベースサービスなどの、さまざまな種類の機能を提供するカスタムソリューションを作成するための基礎的要素として、コンピューティング資源を活用することができる。
上でも述べた通り、上で説明したものなどのサービス事業者ネットワークの顧客は、通常、特定のコンピューティング資源がインスタンス化される実際のハードウェアプラットフォームについて、詳細を特定することができない。むしろ、顧客は、所望のコンピューティング資源を大まかに説明することができるのみであり得る。たとえば、仮想マシンインスタンスの場合、顧客は、所望のメモリ容量と、所望の処理能力レベルと、所望のストレージ容量とだけを特定することができ得る。しかしながら、顧客は、仮想マシンインスタンスが作成されるべき特定のハードウェアプラットフォームまたはインフラストラクチャプラットフォームについて、特定することができない。むしろ、ネットワークベースのコンピューティングサービスが、顧客によって要求されたコンピューティング資源をインスタンス化するために活用する、特定のサーバコンピュータなどの特定のハードウェアプラットフォームを選択する。本明細書で開示するさまざまな実施形態は、これらの考慮事項と潜在的に他の考慮事項とに対処する。
上で明記した考慮事項のうちの少なくともいくつかに対処するために、本明細書で開示する実施形態は、配置戦略を使用して、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための、いくつかのコンピュータ実装機構を提供する。これらの実施形態では、サービス事業者ネットワークは、仮想マシンインスタンス及び/または他の種類のコンピューティング資源の、ユーザから影響を受けた配置を行うための機能を提供することができる。たとえば、サービス事業者ネットワークの顧客は、サービス事業者ネットワークの特定のハードウェアプラットフォームにおける、仮想マシンインスタンスの配置、または他の種類のコンピューティング資源の配置に影響を与えるように活用され得る配置戦略を、特定することができ得る。配置戦略を活用して、価格、ハードウェア製造者、ハードウェアプラットフォームが製造された年、チップセット、ハードウェアカードまたは他の種類の周辺機器、ネットワーク接続、プロセッサタイプ、及び/またはコンピューティングデバイスの他の属性に基づいて、特定のハードウェアプラットフォームにおける仮想マシンインスタンスの配置に影響を与えることができる。
本明細書で開示する特定の一実施例では、サービス事業者ネットワークの顧客は、配置戦略を互いに共有することを許可され得る。たとえば、サービス事業者ネットワーク内の構成要素は、サービス事業者ネットワークの顧客から配置戦略を受信するように構成され得る。受信された配置戦略は、特定の仮想マシンのイメージなどの特定の種類のコンピューティング作業負荷と共に使用するのに適切である、と定義され得る。配置戦略を記憶し、同一または類似のコンピューティング作業負荷と共に使用するための配置戦略をサービス事業者ネットワークの他の顧客に推奨するために、後で活用することができる。
また、配置戦略及び/または配置戦略を提供する顧客についての評価を、顧客が提供することを可能にするための機構も提供することができる。特定の作業負荷と共に使用するための、顧客に推奨する配置戦略を選択する時に、これらの評価も活用することができる。特定の種類のコンピューティング作業負荷のための配置戦略を選択することに使用するために、これらの評価を、サービス事業者ネットワークの顧客に見せることもできる。
別の実施形態では、ベンダー非依存配置戦略を使用した、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための機能を提供する。この実施形態では、仮想マシンインスタンスを実行するための特定のサービス事業者を選択するために、ベンダー非依存配置戦略を定義し、活用することができる。ベンダー非依存配置戦略は、いかなる特定のサービス事業者(つまり、ベンダー)及び/またはサービス事業者ネットワークからも独立している(つまり、非依存である)ように定義された配置戦略である。
一実装形態では、インスタンス配置サービスが、異なるベンダーによって運用されている多数のサービス事業者ネットワークについて、インスタンス利用可能性データとインスタンス価格決定データとを読み出す。インスタンス利用可能性データは、各サービス事業者ネットワークから利用可能な、仮想マシンインスタンスタイプ及び/または仮想マシンインスタンスタイプを実行するためのハードウェアプラットフォームを記述している。インスタンス価格決定データは、さまざまな仮想マシンインスタンスタイプを活用するための価格を記述している。インスタンス利用可能性データとインスタンス価格決定データとを、仮想マシンインスタンスを立ち上げることに対する要求を受信する前に、またはそのような要求が受信された時に、取得することができる。
インスタンス配置サービスは、また、ベンダー非依存配置戦略を含む仮想マシンインスタンス立ち上げることに対する要求も受信することができる。そのような要求を受信したことに応答して、インスタンス配置サービスは、インスタンス利用可能性データとインスタンス価格決定データとベンダー非依存配置戦略とを活用して、仮想マシンインスタンス立ち上げるためのサービス事業者ネットワークを選択することができる。一実施形態では、仮想マシンインスタンス立ち上げるために選択されたサービス事業者ネットワークは、ベンダー非依存配置戦略のパラメータを満たすことができ、また、所望の仮想マシンインスタンスを最小コストで実行することもできるサービス事業者ネットワークである。サービス事業者ネットワークが選択されると、インスタンス配置サービスは、選択されたサービス事業者ネットワークに、仮想マシンインスタンスをインスタンス化することに対する要求を送信する。
さらに別の実施形態では、動的パラメータを使用した、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための機構が提供される。この実施形態では、動的に評価されるパラメータを含む配置戦略を定義することができる。動的に評価されるパラメータは、配置戦略が評価される時に動的に定義されるパラメータである。たとえば、1つまたは複数の動的に評価されるパラメータの値を、配置戦略が評価される時に、サービス事業者ネットワークの内部のデータソースから読み出すことができる。また、1つまたは複数の動的に評価されるパラメータの値を、配置戦略が評価される時に、サービス事業者ネットワークの外部データソースから読み出すこともできる。
配置戦略のための動的に評価されるパラメータの値が読み出されると、配置戦略を評価することができる。評価の結果により、サービス事業者ネットワークの顧客によって運用されている仮想マシンインスタンスのフリートに対して、さまざまな修正がなされ得る。たとえば、特定のハードウェアプラットフォーム上で実行している仮想マシンインスタンスを、異なるハードウェアプラットフォームに移行することができる。別の実施例では、動的に評価されるパラメータを含む配置戦略によって特定されたハードウェアプラットフォーム上で実行される新しい仮想マシンインスタンスを、フリートに追加することができる。
いくつかの実施形態では、動的に評価されるパラメータの値を周期的に更新して、配置戦略を評価するために活用することができる。その後、配置戦略の評価の結果によって、顧客フリート内の仮想マシンインスタンスを適切に更新することができる。このようにして、配置戦略に明記されたパラメータに従って、顧客フリートに対する修正を継続的に行うことができる。仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための、上で簡単に説明したさまざまな構成要素とプロセスとに関する追加的な詳細を、図1〜図10に関連して以下に提示する。
本明細書で提示する主題を、コンピュータプロセス、コンピュータで制御される装置、コンピューティングシステム、コンピュータ可読記憶媒体などのまたは製造品として実装することができる、ということを理解すべきである。本明細書で説明する主題を、1つまたは複数のコンピューティングデバイス上で実行するプログラムモジュールという一般的文脈において提示するが、当業者は、他の実装形態を、他の種類のプログラムモジュールと組み合わせて実行することができる、ということを認識する。一般的に、プログラムモジュールは、ルーチンと、プログラムと、構成要素と、データ構造と、特定のタスクを実行する、または特定の抽象的データタイプを実装する、他の種類の構造とを含む。
当業者は、また、本明細書で説明する主題の態様を、本明細書で説明するものを超える他のコンピュータシステム構成上で、またはそれと連動して、実行することができる、ということを理解し、本明細書で説明するものを超える他のコンピュータシステム構成には、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家電製品、ミニコンピュータ、メインフレームコンピュータ、携帯用コンピュータ、携帯情報端末、電子書籍リーダ、携帯電話デバイス、タブレットコンピューティングデバイス、専用ハードウェアデバイス、ネットワーク機器、などが含まれる。上で簡単に述べた通り、本明細書で説明する実施形態を、通信ネットワークを通してつながっている遠隔コンピューティングデバイスによってタスクが実行され得る分散コンピューティング環境において、実行することができる。分散コンピューティング環境では、プログラムモジュールを、ローカルメモリストレージデバイスと遠隔メモリストレージデバイスとの両方に置くことができる。
以下の詳細な説明では、本明細書の一部を形成し、例示として、特定の実施形態または実施例を示す、添付図面を参照する。本明細書中の図面は、正しい縮尺で描かれていない。同一番号は、(本明細書では、「図」と呼ばれ得る)いくつかの図を通して、同じ要素を表している。
図1は、仮想マシンインスタンスの、ユーザから影響を受けた配置を行うための、本明細書で説明する一例示機構の態様を示す、ネットワークアーキテクチャ図である。上で簡単に説明した通り、本明細書で開示するさまざまな機構は、サービス事業者ネットワーク102と連動して動作することができ、サービス事業者ネットワーク102では、顧客は、(本明細書では、「仮想マシン」または「インスタンス」104とも呼ばれ得る)仮想マシンインスタンス104A〜104B、ネットワーキング資源、ストレージ資源または他の種類のコンピューティング資源などの(本明細書では、「資源」とも呼ばれ得る)コンピューティング資源を、サービス事業者ネットワーク102を運用するサービス事業者から、恒久的に、または必要な場合に、購入し、活用することができる。図1に関して本明細書で提示する説明は、仮想マシンインスタンス104という文脈において主に説明されるが、本明細書で開示する実施形態は、他の種類のコンピューティング資源と共に活用され得る、ということを理解すべきである。
コンピューティング資源の各種類または構成は、サービス事業者ネットワーク102を運用するサービス事業者から、異なる大きさで利用可能であり得る。たとえば、サービス事業者は、プロセッサ能力とメインメモリとディスクストレージとオペレーティングシステムとの多くの異なる構成を有する、購入し、使用することができるインスタンス104または他の種類のデータ処理資源を提供することができる。サービス事業者は、また、顧客によって購入され、使用されるための、他の種類の資源も提供することができる。たとえば、サービス事業者は、データベース資源、ファイルまたはブロックデータストレージ資源、ネットワーキング資源、及び/または他の種類の資源を、恒久的に、または必要な場合に、提供することができる。
サービス事業者ネットワーク102を運用するサービス事業者は、また、資源を運用するための料金を、資源を作成し、使用する顧客に請求することができる。特定の資源に対して請求される料金は、資源の種類及び/または構成に基づき得る。特定の資源に対して請求される料金は、また、資源が活用される時間の量に基づき得る。たとえば、仮想マシンインスタンス104のようなデータ処理資源の場合、資源の使用のための料金は、仮想マシンインスタンス104の構成と、仮想マシンインスタンス104が活用される時間の量とに基づいて請求され得る。データストレージ資源の場合、料金は、記憶されたデータの容量、及び/または資源の中に、または資源から移動させたデータ量に基づいて計算され得る。他の種類の資源に対する料金も、他の考慮事項に基づき得る。サービス事業者は、また、さまざまな購入モデルを活用して、サービス事業者によって提供される資源の使用に対して、顧客に請求する金額を決定することができる。
上で説明した資源は、サービス事業者によって運用されている1つまたは複数のデータセンタによる、1つの特定の実装形態として提供され得る。当業者に知られている通り、データセンタは、サーバコンピュータ106A〜106Nなどのコンピュータシステムと関連構成要素とを収納し、運用するために活用される施設である。データセンタは、また、通常、冗長電源及び非常用電源システムと、通信システムと、冷却システムと、セキュリティシステムとを含む。データセンタは、地理的に全く異なる場所に置かれてよく、また、コロケーション施設などのさまざまな他の施設と、インターネットなどのさまざまな広域ネットワーク(「WAN」)とに接続され得る。図1に示す環境では、サービス事業者は、仮想マシンインスタンス104をサービス事業者ネットワーク102内でその顧客に提供するように構成された、1つまたは複数のデータセンタを運用することができる。本明細書で開示する機能を提供するためのサービス事業者ネットワーク102の実装に関する詳細を、図8と図9とに関連して、以下に提供する。
上で説明したさまざまな資源は、また、必要に応じて、自動的に設定、解除され得る。たとえば、顧客は、仮想マシンの新しいインスタンス104Aをインスタンス化するために、仮想マシンインスタンス立ち上げ要求108(「立ち上げ要求108」または「要求108」)をサービス事業者ネットワーク102に提出することができる。そのような要求108を受信したことに応答して、展開構成要素110、またはサービス事業者ネットワーク102内の1つまたは複数の構成要素が、顧客によって要求された、仮想マシンの新しいインスタンス104Aを作成することができる。顧客は、その後、所望の通り、仮想マシンの新しいインスタンス104Aを活用することを許可され得る。他の種類のコンピューティング資源を、同様の方法でインスタンス化することができる。
顧客が、仮想マシンインスタンス104Aなどのコンピューティング資源を使用し終えると、顧客は、資源が解除されるよう要求することができる。それに応答して、展開構成要素110またはサービス事業者ネットワーク102内の他の構成要素は、コンピューティング資源が解除されるようにすることができる。たとえば、展開構成要素110は、仮想マシンインスタンス104Aを解除することができる。他の種類のコンピューティング資源も、同様の方法で設定し、解除することができる。サービス事業者ネットワーク102は、また、コンピューティング資源に対する需要または他の要因に基づいて、資源を自動的に拡大及び/または縮小するための機能も提供することができる。
上述の通り、サービス事業者ネットワーク102は、また、いくつかの実施形態では、仮想マシンインスタンス104の、ユーザから影響を受けた配置を行うための機能も提供することができる。たとえば、サービス事業者ネットワーク102の顧客は、顧客指定の基準を満たす特定のハードウェアプラットフォームにおける、仮想マシンインスタンス104または他のコンピューティング資源の配置に影響を与えることができる、1つまたは複数の追加的パラメータ(本明細書では、「配置戦略112」と呼ぶ)を特定することを許可され得る。たとえば、顧客は、価格、ハードウェア製造者、ハードウェアプラットフォームが製造された年、チップセット、ハードウェアカードまたは他の種類の周辺機器、ネットワーク接続、プロセッサタイプ、及び/またはハードウェアプラットフォームまたはインフラストラクチャプラットフォームの他の属性に基づいて、特定の種類のサーバコンピュータ106における仮想マシンインスタンス104の配置に影響を与えることを許可され得る。そのような機構を使用して、ネットワークベースのサービス事業者は、より新しいハードウェアプラットフォームの使用に対して、より高い価格を請求することができる。代替的に、そのようなネットワークベースのサービス事業者の顧客は、より旧式、またはあまり望ましくないハードウェアプラットフォーム上のコンピューティング資源をインスタンス化することによって、コストを削減することができる。
一実装形態では、仮想マシンインスタンス104の配置に影響を与える機能は、顧客が、それを通して、所望のハードウェアプラットフォームを定義する配置戦略112を特定することができる、サービスアプリケーションプログラミングインターフェース(「API」)コールの使用を通して実装される。たとえば、例示的なAPIコールは、ある特定の種類のハードウェアを有する、または他の基準を満たすサーバコンピュータ106における、仮想マシンインスタンス104の配置に関するガイダンスを提供することを、サービス事業者ネットワーク102の顧客に可能にすることができる。たとえば、特定のメモリ容量を有する特定の仮想マシンインスタンスタイプを要求するAPIコールは、仮想マシンインスタンス104が実行されるハードウェアの、所望の製造者または年または製造を特定する配置戦略112を含むことができる。たとえば、配置戦略を活用して、ADVANCED MICRO DEVICES(「AMD」)からのプロセッサを有するサーバコンピュータ106、または2012年に製造されたサーバコンピュータ106を活用する、ということを特定することができる。API以外の機構を活用して、配置戦略112を、サービス事業者ネットワーク102内の適切な構成要素に提供することもできる。いくつかの実装形態では、所望のインフラストラクチャプラットフォーム上で同時に実行されるべきでない他のソフトウェア構成要素を特定し、及び/または、特定のハードウェア資源の特定の割合(たとえば、100%)をインスタンスに割くということを特定する配置戦略112も特定することができる。
いくつかの実装形態では、ユーザは、デフォルトの配置戦略112を登録すること、または仮想マシンインスタンス104を立ち上げた時に活用される配置戦略112を特定することを許可され得る。展開構成要素110は、ユーザ特定の配置戦略112を尊重するように努めることができ、または、特定された配置戦略112を満たすことができない場合、要求された仮想マシンインスタンス104を立ち上げないことができる。たとえば、立ち上げ要求108は、特定のプロセッサタイプを活用することを関連配置戦略112が特定し、所望のプロセッサタイプを有するサーバコンピュータ106が、サービス事業者ネットワーク102において利用可能でない場合、拒否され得る。
他の実施形態では、サービス事業者ネットワーク102によって提供される自動拡大縮小機能を有する配置戦略112を活用することもできる。たとえば、配置戦略112は、2011年に製造されたハードウェアを活用し、そのハードウェアが利用可能でない場合、2010年に製造されたハードウェアを活用し、2010年のハードウェアについて知られている問題を補うために、生産能力を10%増加させる、ということを特定することができる。この機能を予め定義されたベンチマークと組み合わせて、作業負荷のフラクショナルバーティカルスケーリングを実行して、世代間で異なるインスタンスの大きさに合わせることができる。たとえば、配置戦略112は、2010年に製造されたハードウェア上で仮想マシンインスタンス104を立ち上げ、それが可能でない場合、2011年に製造されたハードウェアを使用するが、2011年に製造された各サーバコンピュータ106に送信される作業負荷を10%増加させて、より新しいハードウェアを使用するコストを相殺する、と特定することができる。
図1に示した実施例では、サービス事業者ネットワークの顧客は、立ち上げ要求108を展開構成要素110にすでに提出している。立ち上げ要求108は、展開構成要素110が、仮想マシンの新しいインスタンス104をサービス事業者ネットワーク102内でインスタンス化することを要求する。立ち上げ要求108は、要求された仮想マシンインスタンス104の種類を一般的に特定するインスタンスタイプ識別子111を含むことができる。たとえば、インスタンスタイプ識別子111は、新しい仮想マシンインスタンス104の、所望のメモリ容量と、所望の処理能力レベルと、所望のストレージ容量とを一般的に特定することができる。しかしながら、インスタンスタイプ識別子111は、新しいインスタンス104が作成されるべき実際のハードウェアプラットフォームについての具体的な詳細を特定しない。
上述の通り、立ち上げ要求108は、また、ユーザが定義した配置戦略112を含むことができる。配置戦略112は、いくつかの実施形態では、立ち上げ要求108の中に含まれ得、または他の実施形態では、別々に提供され得る。たとえば、いくつかの実装形態では、サービス事業者ネットワーク102の顧客は、顧客のための新しい仮想マシンインスタンス104をインスタンス化することに対する要求108を展開構成要素110が受信した時に、アクセスされ、活用され得る、ユーザアカウントに関連する配置戦略112を維持することができる。
利用可能なインフラストラクチャプラットフォームが特定されるまで評価され得る、特定のインフラストラクチャプラットフォームに対する代替の好み設定を、配置戦略112が定義することができる、ということを理解すべきである。たとえば、特定の一実装形態では、2013年に製造されたハードウェアに対して第1の好み設定を含む配置戦略112を定義することができる。配置戦略112は、また、2013年に製造されたハードウェアが利用可能でない場合、2012年に製造されたハードウェアを活用すべきである、と特定することができる。配置戦略112は、2012年に製造されたハードウェアが利用可能でない場合、INTEL CORPORATION(「INTEL」)からのチップセットを含むサーバコンピュータ106を活用する、とさらに特定することができる。INTELからのチップセットを有するサーバコンピュータが利用可能でない場合、配置戦略112は、いかなるインスタンス104も起動すべきでない、とさらに特定することができる。このようにして、サービス事業者ネットワーク102の顧客は、多数のインフラストラクチャプラットフォームの候補を特定して、サービス事業者ネットワーク102における仮想マシンインスタンス104または他の種類のコンピューティング資源の配置に影響を与えることができる。
上で説明したものよりもよりさらに複雑な配置戦略112を定義し、活用することができる、ということを理解すべきである。しかしながら、一般には、配置戦略112は、所望のインフラストラクチャ属性の順序付きリストとして定義され得る、ということを理解すべきである。リストは、所望の属性を有するサーバコンピュータ106または他のハードウェアプラットフォームが特定されるまで、上で説明したような優先順で評価され得る。所望のインフラストラクチャ属性は、サーバコンピュータ106がこの優先度によって選択可能であるとみなされるためには全部が満たされなければならない、キーと値とのペアの制約のセット、ブール演算子を含む自由形式のテキスト文、または予め決められ、公表されている特性を有する特定の仮想マシンインスタンスタイプ104などの、異なる実施形態で異なる形式を取ることができる。他の形式も活用することができる。
上で簡単に述べた通り、一実装形態では、展開構成要素110は立ち上げ要求108を受信する。次いで、展開構成要素110は、要求された仮想マシンインスタンス104を、サーバコンピュータ106A〜106Nのどれの上で立ち上げるかを特定する。サーバコンピュータ106A〜106Nは、ハードウェアプラットフォーム、ソフトウェアプラットフォーム及び/またはそれらそれぞれの構成を含むことができる、さまざまな異なるインフラストラクチャプラットフォームを活用することがでる、ということを理解すべきである。たとえば、あるサーバコンピュータ106Aは、特定のプロセッサとチップセットとを活用することができ、一方、別のサーバコンピュータ106Bは、異なるプロセッサとチップセットとを活用することができる。サーバコンピュータ106A〜106Nは、また、異なる年に製造されている場合がある。サーバコンピュータ106A〜106Nは、また、そこに異なるオペレーティングシステムまたは他のソフトウェア構成要素をインストールされている場合がある。この点で、多くの異なるハードウェア構成とソフトウェア構成とを有するサーバコンピュータ106A〜106Nが、本明細書で説明した方法での使用のために、サーバ事業者ネットワーク102内で利用可能にされ得る、ということを理解すべきである。
展開構成要素110が立ち上げ要求108を受信すると、展開構成要素110は配置戦略112とサーバ構成データストア114(「データストア114」)の内容とを活用して、サーバコンピュータ106A〜106Nのうちのどれで、新しい仮想マシンインスタンスをインスタンス化するかを決定することができる。データストア114は、サービス事業者ネットワーク102内で利用可能なサーバコンピュータ106A〜106Nを特定するデータを、各サーバコンピュータのインフラストラクチャプラットフォームの詳細を記述した、サーバコンピュータ106A〜106Nの各々についてのデータと共に含む。たとえば、データストア114は、サーバコンピュータ106のハードウェア構成要素とソフトウェア構成要素との種類と製造者と、ハードウェア構成要素の製造年と、ソフトウェア構成要素のバージョンと、特定のサーバコンピュータ106の使用に対する価格と、他の種類のハードウェア属性及び/またはソフトウェア属性とを特定する、サーバコンピュータ106A〜106Nの各々についてのデータを記憶することができる。これらの実施例は単に例示であり、サーバコンピュータ106A〜106Nの他のハードウェア属性及び/またはソフトウェア属性を記述したデータを、データストア114内に維持することができる、ということを理解すべきである。
展開構成要素110は、配置戦略112とデータストア114内に記憶されたデータとを活用して、ユーザが特定した配置戦略112を満たす1つまたは複数のサーバコンピュータ106を特定することができる。配置戦略112を満たす1つまたは複数のサーバコンピュータ106が特定されると、次いで、展開構成要素110は、要求された仮想マシンインスタンス104または他の種類のコンピューティング資源を、マッチするサーバコンピュータ、またはサーバコンピュータ106上で立ち上げることができる。
別の実装形態では、展開構成要素110は、さまざまな種類の情報と共に立ち上げ要求108に応答することができる。たとえば、サーバ106Aが配置戦略112にマッチすると分かった場合、立ち上げ要求108に応じて、サーバコンピュータ106Aを活用するための価格を記述したデータを返すことができる。次いで、顧客は、価格情報を活用して、仮想マシンインスタンス104Aをサーバコンピュータ106A上で立ち上げるかどうかを決定することができる。立ち上げ要求108に応じて、他の情報を返すこともできる。
上で説明したものなどの配置戦略112を提供することによって、サービス事業者ネットワーク102の顧客は、異なるハードウェア構成とソフトウェア構成とを有する多数のサーバコンピュータ106のうち、どこで特定の仮想マシンインスタンス104または他の種類のコンピューティング資源をインスタンス化するかに影響を与えることができる。仮想マシンインスタンス104の、ユーザからの影響を受けた配置について上で説明した機構に関する追加的な詳細を、2012年11月16日に出願され、その全体が参照により本明細書に明示的に組み込まれる、「USER−INFLUENCED PLACEMENT OF VIRTUAL MACHINES」という題名の、U.S. Patent Application No.13/679,451で見ることができる。
図2及び図3は、サービス事業者ネットワーク102の顧客が互いに配置戦略112を共有することを許可される、本明細書で開示する一実施形態の態様を示している。これは、たとえば、特定の種類のコンピューティング作業負荷を実行するためのハードウェアプラットフォームを選択することに対して、特定の配置戦略112が良好に機能する、と顧客が判断した時に望ましいことがある。
(「作業負荷」とも呼ばれ得る)コンピューティング作業負荷は、アプリケーション、仮想マシンのイメージ、仮想機器、または仮想マシン上で実行され得る他の種類のプログラムである。配置戦略112が、作業負荷を、その作業負荷に対して最適化されたサーバコンピュータ106に配置されるようにする場合に、配置戦略112は、特定の種類の作業負荷に対して良好に機能する。サーバコンピュータ106が作業負荷に対して最適化されているかどうかは、サービス事業者ネットワーク102の顧客によって定義された1つまたは複数の要因に基づくことができ、それには、コスト、アプリケーション性能、処理量、使用される仮想マシンインスタンス104の数、及び/または他の要因または要因の組み合わせを含むが、これらに限定されない。
サービス事業者ネットワーク102の顧客が、特定の配置戦略112が特定の作業負荷に対して良好に機能すると判断した場合、特定の作業負荷のための最適な配置戦略112を作成するという時に困難なタスクに他の顧客が携わる必要がないように、顧客は、配置戦略112を他の顧客と共有することを好むことがある。いくつかの実施形態では、配置戦略112を共有する顧客(本明細書では、そのような顧客を「発行者」と呼ぶことができ)は、他の顧客が共有された配置戦略112を使用した時に、報酬を支払われ得る。配置戦略112を共有するための、本明細書で開示するさまざまな実施形態に関する追加的な詳細を、図2と図3とに関連して以下に提供する。
図2に示す通り、一実施形態では、サービス事業者ネットワーク102は、配置戦略提出インターフェース204(「インターフェース204」)を含む。インターフェース204は、ユーザインターフェース(「UI」)、API、または、サービス事業者ネットワーク102の顧客202が、それを通して、他の顧客202と共有する配置戦略112を提出することができる別の種類のインターフェースであってよい。顧客が配置戦略112をインターフェース204に提出する時は、顧客は、また、作業負荷記述子206も提供する。作業負荷記述子206は、提出された配置戦略112が、それと共に使用されるように構成されている作業負荷の種類を定義する。上述の通り、作業負荷は、アプリケーション、仮想マシンのイメージ、仮想機器、または仮想マシン上で実行され得る他の種類のアプリケーションである。配置戦略112を提出する顧客202は、また、発行者識別子(「ID」)208を提供することができる。発行者ID208は、配置戦略112を共有している顧客202を識別する。
図2に示す実施例では、たとえば、顧客202Aは、配置戦略112Aと、対応する作業負荷記述子206Aと、顧客202Aを識別する発行者ID208Aとを、インターフェース204にすでに提出している。同様に、顧客202Bは、配置戦略112Bと、対応する作業負荷記述子206Bと、顧客202Bを識別する発行者ID208Bとを、インターフェース204にすでに提出している。インターフェース204は、顧客202Aと202Bとからの提出を受信し、提出されたデータを、配置戦略データストア210(「データストア210」)の中に記憶する。
データストア210は、サービス事業者ネットワーク102の顧客202によって提出された配置戦略112を記憶するように構成されたデータベースまたは他の種類のストレージシステムである。以下でより詳細に説明する通り、データストア210は、また、他の方法で特定された配置戦略112も記憶することができる。特定の一実施形態では、データストア210は、フィールド212A〜212Eを有するレコードを含む。フィールド212Eを活用して、配置戦略112または配置戦略112を識別するデータを記憶する。フィールド212Dを活用して、フィールド212E内で識別された配置戦略112に対応する作業負荷記述子206Aを記憶する。フィールド212Aを活用して、フィールド212E内で識別された配置戦略112を提出した顧客202を識別するデータを記憶する。
以下でより詳細に説明する通り、サービス事業者ネットワーク102の顧客202は、また、配置戦略112と配置戦略112の発行者とに対する評価を提供することを許可され得る。一実施例として、サービス事業者ネットワーク102の顧客202は、配置戦略112及び/または特定の配置戦略112の発行者を、1〜5、1〜10、1〜100の尺度で、または他の方法で、評価することを許可され得る。これらの実施形態では、データストア210は、また、特定の配置戦略112及び/または発行者に対する評価を定義するデータも記憶するように構成され得る。たとえば、フィールド212Cを活用して、フィールド212E内で識別された配置戦略112に対する評価を定義するデータを記憶することができる。フィールド212Bを活用して、フィールド212E内で識別された配置戦略112の発行者に対する評価を定義するデータを記憶することができる。図2で示したデータ構造が単に例示であり、上で説明したデータ及び/または他の関連データを記憶するために、他の種類のデータ構造とストレージシステムと技術とを活用することができる、ということを理解すべきである。
サービス事業者ネットワーク102は、また、一実施形態では、配置戦略特定構成要素214(「特定構成要素214」)を有して構成される。特定構成要素214は、UI、API、またはサービス事業者ネットワーク102の顧客が、それを通じて、特定の種類の作業負荷と共にしようするのに適切な配置戦略112を得ることができる他の機構を提供する。たとえば、図2に示した実施例では、顧客202Cは、適切なコンピューティングデバイスを活用して、配置戦略要求216(「要求216」)を特定構成要素214にすでに送信している。要求216は、顧客202Cが、それに対する適切な配置戦略112を探している作業負荷を識別する作業負荷記述子206Cを含む。
要求216を受信したことに応答して、特定構成要素214は、作業負荷記述子206Bによって識別された作業負荷に対して適切な配置戦略112を特定するために、データストア210の内容を検索する。たとえば、特定構成要素214は、要求216中で提出された作業負荷記述子202Cに合う作業負荷記述子について、フィールド212を検索することができる。いくつかの実施形態では、特定構成要素214は、また、要求216に応答して、データストア210内に記憶された他のデータのうちのいくつかを活用して、配置戦略112を選択することができる。たとえば、作業負荷記述子206Cに対して複数のマッチが見つかった場合、特定構成要素214は、フィールド212C内に記憶された、最も高い評価を有する、マッチする配置戦略112を選択することができる。別の実施例として、特定構成要素214は、フィールド212B内で反映されている、最も高い発行者評価を有する配置戦略112を選択することができる。他の機構も活用して、要求216に応答して返すべき配置戦略112を選択することができる。
図2に示す実施例では、特定構成要素214は、作業負荷記述子206Bによって識別された作業負荷に対して適切だとして、配置戦略112Bをすでに選択している。その結果、特定構成要素214は、要求216に応答して、配置戦略112B、または配置戦略112Bへの参照を返している。そこで、顧客202Cは、返された配置戦略112Bを活用して、作業負荷記述子206Bによって記述された作業負荷を扱うための仮想マシンの配置に、図1に関して上で説明した方法で影響を与えることができる。上でも述べた通り、返された配置戦略112Bの発行者(この場合、顧客202B)は、配置戦略112Bの顧客202Cへの提供に対して報酬を支払われ得る。配置戦略112の発行者は、また、他の顧客202による配置戦略112の使用に対して、別の方法でも報酬を支払われ得る。
上述の通り、いくつかの実装形態では、サービス事業者ネットワーク102の顧客202は、配置戦略112及び/または配置戦略の発行者に対する評価を提出することができる。これらの実装形態では、特定構成要素214、またはサービス事業者ネットワーク102の内部または外部の他の構成要素は、顧客202または他のユーザが、それを通して、配置戦略112及び/または配置戦略112の発行者に対する評価を提出することができる、UI、API、または他の種類のインターフェースを提供することができる。図2に示した実施例では、たとえば、サービス事業者ネットワーク102の顧客202Dは、配置戦略112に対する評価218と配置戦略112の発行者に対する評価220とを提出している。上でも述べた通り、提供された評価218と220とを、データストア210内、または他の場所に記憶することができる。提供された評価218と220とを、平均化、重み付け、及び/または他の方法で修正して、配置戦略112及び/または配置戦略112の発行者に対する適切な評価手段を提供することもできる。
また、データストア210に記憶されたデータを、別の方法で活用及び/または見えるようにすることもできる、ということを理解すべきである。たとえば、さまざまな配置戦略112に対する配置戦略評価218を、ウェブサイトまたは他の種類のユーザインターフェースを通して見えるようにすることができる。同様に、配置戦略112の発行者についての発行者評価220も、同様の方法で見えるようにすることができる。この情報は、特定の種類の作業負荷に対する配置戦略112を選択する時に、サービス事業者ネットワーク102の顧客202を補助することができる。この情報を、別の方法で活用することもできる。
上で簡単に述べた通り、配置戦略112を、顧客202による手動提出とは異なる方法でデータストア210に追加することができる。特定の一実施形態では、たとえば、展開構成要素110などのサービス事業者ネットワーク102内の構成要素は、特定の種類の作業負荷と共に使用されている、特定の配置戦略112に関する履歴データを維持することができる。特定の種類の作業負荷のうちの大部分または大半と共に使用されている配置戦略112を、データストア210に追加することができる。たとえば、展開構成要素110は、特定の種類の作業負荷に対して、65%の場合で特定の配置戦略112が活用される、ということを判定することができる。そのような判定に応答して、展開構成要素110は、上で説明した方法で、顧客に提供するための配置戦略112をデータストア210に追加させることができる。機械学習などのさまざまな技術を活用して、時間をかけて、顧客が、特定の種類の作業負荷に対して特定のインフラストラクチャプラットフォームを活用する、ということを判定することができる。そこで、この情報を活用して、特定の作業負荷に対する最適な配置戦略112を決定することができる。
特定の配置戦略112がある特定の種類の作業負荷と共に活用される頻度を定義する情報を、他の方法で活用することもできる。たとえば、この情報は、サービス事業者ネットワーク102の運用者によって活用されて、顧客ネットワーク102における特定の仮想マシンインスタンスタイプの使用を推奨またはやめさせることができる。具体的には、顧客202が、ほとんど使用されないハードウェアタイプまたは不適切なハードウェアタイプを特定する配置戦略112を使用して仮想マシンインスタンス立ち上げることを要求していると、サービス事業者ネットワーク102が判断した場合、サービス事業者ネットワーク102内の構成要素は、履歴データを顧客に提示し、異なる配置戦略112を活用して仮想マシンインスタンス立ち上げることを、顧客に推奨することができる。
いくつかの実施形態では、特定の作業負荷に対する最適な配置戦略112を選択するために、データストア210内で識別された配置戦略112を「ベンチマーク」することができる。たとえば、異なる配置戦略112を活用して、作業負荷を異なるインフラストラクチャタイプ上でインスタンス化することができる。次いで、異なるインフラストラクチャタイプ上での作業負荷の性能を測定し、作業負荷に対して最も高い性能を有するインフラストラクチャタイプを特定する配置戦略112を、最適な配置戦略112として選択することができる。性能は、絶対計算性能として、価格対性能比として、コストのみに基づいて、または他の方法で測定され得る。特定の作業負荷に対する最適な配置戦略112は、上で説明した方法で、作業負荷のための配置戦略112に対する要求216に応答して、選択され得る。
図3は、本明細書で開示される一実施形態による、配置戦略112を共有するための、また、配置戦略112と配置戦略112の発行者とを評価するための、1つの例示的なルーチン300を示したフロー図である。図3と他の図とに関連して本明細書で説明する論理動作を、(1)コンピュータシステム上で実行される、コンピュータ実装動作またはプログラムモジュールのシーケンスとして、及び/または(2)コンピュータシステム内で相互接続された機械論理回路または回路モジュールとして、実装することができる、ということを理解すべきである。本明細書で説明するさまざまな構成要素の実装形態は、コンピューティングシステムの性能と他の要件とによる、好みの問題である。その結果、本明細書で説明する論理動作は、演算、構造デバイス、動作、モジュールとさまざまに呼ばれる。これらの演算、構造デバイス、動作、及びモジュールは、ソフトウェアと、ファームウェアと、専用デジタル論理と、それらの組み合わせとにおいて実装され得る。図で示し、本明細書で説明するものよりも多い、または少ない動作を実行することができる、ということも理解すべきである。また、これらの動作を、並列に、または本明細書で説明するものとは異なる順番で実行することもできる。
ルーチン300は、動作302から始まり、サービス事業者ネットワーク102が、顧客202が配置戦略112を共有することを可能にするための、上で説明した提出インターフェース204を提供する。上述の通り、提出インターフェース204は、ウェブサイトなどのUI、API、または顧客202または他のユーザが、それを通して、配置戦略112をサービス事業者ネットワーク102に提出することができる、他の種類のインターフェースであることができる。
動作302から、ルーチン300は動作304に進み、提出インターフェース204が配置戦略112を受信する。上述の通り、提出された配置戦略112が共に使用されるのが適切な、1つまたは複数の作業負荷を定義する作業負荷記述子206も、各提出された配置戦略112と共に提供することができる。提出は、また、配置戦略112を提出するユーザを識別する発行者ID208も含むことができる。他の情報も提供することができる。動作304から、ルーチン300は動作306へ進み、提出インターフェース204が、配置戦略112と作業負荷記述子206などの他の関連データとをデータストア210の中に記憶する。
動作306から、ルーチン300は動作308へ進み、特定構成要素214またはサービス事業者ネットワーク102内の他の構成要素が、配置戦略112の評価218を受信する。次いで、評価218は、上で説明した方法で、データストア210内に記憶される。上でも述べた通り、データストア210内に記憶する前または後に、評価218を平均化、重み付け、または他の方法で処理することができる。配置戦略112の発行者に対する評価220を、動作310と同様の方法で受信し、記憶することができる。
動作310から、ルーチン300は動作312へ進み、特定構成要素214が、特定の作業負荷のための配置戦略112に対する要求216を受信する。上述の通り、作業負荷を、要求216内の作業負荷記述子206によって識別することができる。要求216を受信したことに応答して、ルーチン300は動作312から動作314に進み、特定構成要素214が、提供された作業負荷記述子206とデータストア210の内容とを活用して、要求216で識別された作業負荷に対して適切な配置戦略112を選択する。適切な配置戦略112を特定することができる場合、特定構成要素214は、動作316で、要求216に応答して、選択された配置戦略112を返す。選択された配置戦略112を活用して仮想マシンインスタンスまたは他の種類の作業負荷を実行することに関連するコストもまた、要求216に応答して、返すことができる。次いで、ルーチン300は、動作316から動作318に進み、そこで終了する。
図4は、本明細書で開示される一実施形態による、ベンダー非依存配置戦略408を活用して、仮想マシンインスタンス104をインスタンス化するためのサービス事業者ネットワーク102を選択するための、本明細書で開示する一機構の態様を示したシステム図である。図4で示す実施形態では、異なるベンダーが、異なるサービス事業者ネットワーク102A〜102Nを運用している。サービス事業者ネットワーク102A〜102Nの各々は、仮想マシンインスタンス104などのコンピューティング資源をオンデマンドで使用するための、上で説明した機能のうちのいくつかまたは全てを提供することができる。しかしながら、サービス事業者ネットワーク102A〜102Nは、異なる構成を有し、異なるハードウェアプラットフォームを活用して実装された、異なる種類のコンピューティング資源を提供し得る。サービス事業者ネットワーク102A〜102Nを運用するベンダーは、また、コンピューティング資源の使用に対して異なる価格を請求する場合もある。
図4に示す実施形態では、インスタンス配置サービス402を活用して、仮想マシンインスタンス104または他の種類のコンピューティング資源を実行するためのサービス事業者ネットワーク102A〜102Nの選択について、ユーザを補助することができる。この機能を提供するために、インスタンス配置サービス402は、サービス事業者ネットワーク102A〜102Nの各々について、インスタンス利用可能性データ404とインスタンス価格決定データ406とを読み出す。インスタンス利用可能性データ404は、各サービス事業者ネットワーク102A〜102Nから利用可能な、仮想マシンインスタンス104タイプ及び/または仮想マシンインスタンスタイプを実行するためのハードウェアプラットフォームを記述している。インスタンス利用可能性データ404は、また、各サービス事業者ネットワーク102から利用可能な他の種類の利用可能コンピューティング資源も記述している。
インスタンス価格決定データ406は、各サービス事業者ネットワーク102から利用可能な、さまざまな仮想マシンインスタンスタイプを活用するための価格を記述している。インスタンス配置サービス402は、仮想マシンインスタンス104を立ち上げることに対する要求108を受信する前に、インスタンス利用可能性データ404とインスタンス価格決定データ406とを読み出し、将来使用するために、データ404とデータ406とを記憶することができる。代替的に、インスタンス配置サービス402は、仮想マシンインスタンス104を立ち上げることに対する要求108の受信の直後に、インスタンス利用可能性データ404とインスタンス価格決定データ406とを取得することができる。
別の実施形態では、インスタンス配置サービス402は、サービス事業者ネットワーク102のうちの1つで、仮想マシンインスタンス104を迅速に立ち上げることができる。立ち上げの後、インスタンス配置サービス402は、次いで、インスタンス利用可能性データ404とインスタンス価格決定データ406とを取得することができる。そこで、インスタンス利用可能性データ404と、インスタンス価格決定データ406と、ベンダー非依存配置戦略408とを活用して、以下に説明する方法で、仮想マシンインスタンス104のためのサービス事業者ネットワーク102を選択することができる。選択されたサービス事業者ネットワーク102が、仮想マシンインスタンス104が起動されたサービス事業者ネットワーク102と同じでない場合、仮想マシンインスタンス104を、選択されたサービス事業者ネットワーク102に移行することができる。さまざまな機構を活用して、仮想マシンインスタンス104を移行することができ、機構には、実行中の仮想マシンインスタンス104の状態が保存され、移行され、再開される「ライブ」移行と、実行仮想マシンインスタンス104が、移行の前に停止される「リブート」移行とを含むが、これらに限定されない。他の移行技術も活用することができる。
図4に示す通り、インスタンス配置サービス402は、また、立ち上げ要求108も受信することができる。本実施形態では、立ち上げ要求108は、ベンダー非依存配置戦略408を含む。上で簡単に説明した通り、ベンダー非依存配置戦略408は、特定のサービス事業者(つまり、ベンダー)及び/またはサービス事業者ネットワーク102から独立した(つまり、非依存の)方法で定義された配置戦略112である。ベンダー非依存配置戦略408を、適切な拡張マークアップ言語(「XML」)スキーマを活用して、または他の技術を使用する他の方法で、定義することができる。
いくつかの実装形態では、立ち上げ要求108は、また、1つまたは複数の配置選好410も含む。配置選好410は、要求された仮想マシンインスタンス104を立ち上げるための、好みのサービス事業者ネットワーク102を特定することができる。配置選好410は、また、要求された仮想マシンインスタンス104を立ち上げるために活用されない、特定のサービス事業者ネットワーク102、またはネットワーク102を特定することもできる。他の種類の配置選好410も、立ち上げ要求108内で特定することができる。
立ち上げ要求108を受信したことに応答して、インスタンス配置サービス402は、インスタンス利用可能性データ404と、インスタンス価格決定データ406と、ベンダー非依存配置戦略408とを活用して、要求された仮想マシンインスタンス104を立ち上げるためのサービス事業者ネットワーク102A〜102Nを選択することができる。一実施形態では、仮想マシンインスタンス104を立ち上げるために選択されるサービス事業者ネットワーク102は、ベンダー非依存配置戦略408のパラメータを満たすことができ、仮想マシンインスタンス104を最低コストで実行することもできる、サービス事業者ネットワーク102である。要求された仮想マシンインスタンス104をインスタンス化するためのサービス事業者ネットワーク102は、また、他の実施形態では、インスタンス利用可能性データ404、インスタンス価格決定データ406、及び/またはベンダー非依存配置戦略408を別の方法で使用して選択され得る。この点において、要求された仮想マシンインスタンス104をインスタンス化するためのサービス事業者ネットワーク102を選択する時に、他の要因も活用することができ、他の要因は、各サービス事業者ネットワーク102の、地理的位置、ネットワーク帯域幅及び/または待ち時間、サービス履歴、顧客供給評価、及び/または過去のタイプアップなどであるが、これらに限定されない。
サービス事業者ネットワーク102を選択するために、インスタンス配置サービス402は、ベンダー非依存配置戦略408をベンダー固有の配置戦略に変換する必要があり得る。この点において、立ち上げ要求108は、ベンダー非依存配置戦略408のベンダー固有の同等物を任意で特定して、この変換を補助することができる。同様な方法で、インスタンス配置サービス402は、さまざまな処理を実行して、サービス事業者ネットワーク102A〜102Nの各々から利用可能な、概同等なインスタンスタイプを特定する必要があり得る。インスタンス配置サービス402もまた、ベンダー非依存配置戦略408内に明記されたさまざまなパラメータを満たすことができるサービス事業者ネットワーク102を特定するために、他の種類の処理を実行することができる。
サービス事業者ネットワーク102が選択されると、インスタンス配置サービス402は、立ち上げ要求412を選択されたサービス事業者ネットワーク102に送信して、要求された仮想マシンインスタンス104をインスタンス化することができる。図4に示す実施例では、たとえば、サービス事業者ネットワーク102Aが選択され、その結果、インスタンス配置サービス402は、立ち上げ要求412を、サービス事業者ネットワーク102Aの展開構成要素110などの適切な構成要素にすでに送信している。立ち上げ要求412を、適切なAPI、または選択されたサービス事業者ネットワーク102Aによって見られる他の種類のインターフェースに送信することができる。
次いで、選択されたサービス事業者ネットワーク102Aは、提供されたベンダー非依存配置戦略408を活用して、要求された仮想マシンインスタンス104を、サービス事業者ネットワーク102A内でインスタンス化することができる。いくつかの実施形態では、インスタンス配置サービス402は、また、選択されたサービス事業者ネットワーク102A内での要求されたインスタンスの立ち上げの後に、立ち上げ確認414を立ち上げ要求108の送信者に送信することもできる。インスタンス配置サービス402は、また、要求されたインスタンス104を選択されたサービス事業者ネットワーク102内で実行するための推定コスト416を、立ち上げ要求108の送信者に送信することもできる。他の実施形態では、他の種類の情報も、立ち上げ要求108の送信者に返すことができる。
一実装形態では、ベンダー非依存配置戦略408を、各サービス事業者ネットワーク102A〜102Nに直接提出することができる。本実装形態では、各サービス事業者ネットワーク102A〜102Nの構成要素は、ベンダー非依存配置戦略408を受信することができ、それに応答して、サービス事業者ネットワーク102が、ベンダー非依存配置戦略408を満たす適切なハードウェアプラットフォームを有しているかどうかに関する指示を返すことができる。サービス事業者ネットワーク102が適切なハードウェアプラットフォームを有する場合、ベンダー非依存配置戦略408によって定義された資源をインスタンス化するサービス事業者ネットワーク102を活用するための推定コストを示す、インスタンス価格決定データ406を返すこともできる。ベンダー非依存配置戦略408を提出する顧客は、そこで、このデータを活用して、特定のサービス事業者ネットワーク102を活用するかどうかを決定することができる。
インスタンス配置サービス402は、サービス事業者ネットワーク102A〜102Nのうちの1つも運用するエンティティによって運用され得る。このシナリオでは、インスタンス配置サービス402は、サービス事業者ネットワーク102A〜102Nのうちの1つの中で動作しているコンピューティング資源上で運用され得る。別の実施形態では、インスタンス配置サービス402は、サービス事業者ネットワーク102A〜102Nの運用者に関連しない第三者によって運用される。インスタンス配置サービス402は、また、サービス事業者ネットワーク102A〜102Nのうちの1つまたは複数の顧客によって所有されているネットワーク内で運用され得る。インスタンス配置サービス402は、また、他の実施形態では、他のネットワーク内の他のエンティティによって運用され得る。
図5は、本明細書で開示される一実施形態による、ベンダー非依存配置戦略408を活用して、仮想マシンインスタンスをインスタンス化するためのサービス事業者ネットワーク102を選択するための、1つの例示的なルーチン500を示したフロー図である。ルーチン500は動作502で開始し、インスタンス配置サービス402が、ベンダー非依存配置戦略408を含む立ち上げ要求108を受信する。次いで、ルーチン500は、動作502から動作504に進み、インスタンス配置サービス402が、インスタンス利用可能性データ404を、サービス事業者ネットワーク102A〜102Nから読み出す。上述の通り、インスタンス配置サービス402は、(図5に示す通り)立ち上げ要求108を受信する時に、または立ち上げ要求108を受信する時よりも前に、インスタンス利用可能性データ404を読み出すことができる。インスタンス利用可能性データ404が、立ち上げ要求108を受信する時よりも前に読み出される場合、立ち上げ要求108を受信した時に使用するために、インスタンス利用可能性データ404を適切なデータストアの中にキャッシュすることができる。
動作504から、ルーチン500は動作506へ進み、インスタンス配置サービス402が、インスタンス価格決定データ406を、サービス事業者ネットワーク102A〜102Nから読み出す。上述の通り、インスタンス配置サービス402は、(図5に示す通り)立ち上げ要求108を受信する時に、または立ち上げ要求108を受信する時より前に、インスタンス価格決定データ406を読み出すことができる。インスタンス価格決定データ406が、立ち上げ要求108を受信する時よりも前に読み出される場合、立ち上げ要求108を受信した時に使用するために、インスタンス価格決定データ406を適切なデータストアの中にキャッシュすることができる。
動作506から、ルーチン500は動作508へ進み、インスタンス配置サービス402が、インスタンス利用可能性データ404と、インスタンス価格決定データ406と、ベンダー非依存配置戦略408とを活用して、立ち上げ要求108で特定された仮想マシンインスタンス104を立ち上げるためのサービス事業者ネットワーク102A〜102Nを選択する。上述の通り、ベンダー非依存配置戦略408に明記されたパラメータを満たすことと、また、仮想マシンインスタンス104を(他のサービス事業者ネットワーク102と比較して)最低コストで実行することとの両方ができる、仮想マシンインスタンス104を立ち上げるためのサービス事業者ネットワーク102を選択する。他の実施形態では、立ち上げ要求108で要求された仮想マシンインスタンス104をインスタンス化するためのサービス事業者ネットワーク102を、インスタンス利用可能性データ404、インスタンス価格決定データ406、及び/またはベンダー非依存配置戦略408を他の方法で使用して、選択することもできる。
動作508から、ルーチン500は動作510へ進み、インスタンス配置サービス402が、立ち上げ要求412を、要求された仮想マシンインスタンス104をインスタンス化するために選択されたサービス事業者ネットワーク102に送信する。それに応答して、選択されたサービス事業者ネットワーク102は、ベンダー非依存配置戦略408を活用して、新しい仮想マシンインスタンス104をインスタンス化する。動作512で、インスタンス配置サービス402は、また、起動確認414及び/または推定コスト416を、立ち上げ要求108の送信者に提供することができる。動作512から、ルーチン500は動作514へ進み、ルーチン500が終了する。
図6は、本明細書で開示される一実施形態による、動的に評価されるパラメータ604を含む配置戦略112を活用して、顧客フリート602内の仮想マシンインスタンス104を修正するための、本明細書で開示される一機構の態様を示したシステム図である。図6で示す実施形態では、動的に評価されるパラメータ604を含む配置戦略112を定義することができる。上で簡単に説明した通り、動的に評価されるパラメータ604は、配置戦略112が評価される時に動的に定義されるパラメータである。たとえば、1つまたは複数の動的に評価されるパラメータ604の値を、配置戦略112が評価される時に、サービス事業者ネットワーク102の内部のデータソース606から読み出すことができる。サービス事業者ネットワーク102の内部のデータソース606から読み出された値は、たとえば、サービス事業者ネットワーク102内で利用可能な仮想マシンインスタンス104の現在の価格決定に関連する値を含むことができる。展開構成要素110は、内部データソース606及び/または外部データソース608から、APIコールまたは他の適切な機構を活用して、データを読み出すことができる。
いくつかの実装形態では、1つまたは複数の動的に評価されるパラメータ604の値を、配置戦略112が評価される時に、サービス事業者ネットワーク102の外部のデータソース608から読み出すこともできる。いくつかの実施形態では、外部データソース608は、サービス事業者ネットワーク102の顧客によって運用され得、また、サービス事業者ネットワーク102の顧客に関連する値を提供することができる。たとえば、データソース608は、顧客による業務用のネットワークの運用に関連するデータを見せるようにすることができる。このようにして、顧客の業務用のネットワークの状態に関連する動的に評価されるパラメータ604を含む配置戦略112を定義することができる。具体的には、顧客の業務用のネットワークの活用が特定の閾値を超えた場合に、仮想マシンインスタンス104をサービス事業者ネットワーク102内でインスタンス化する配置戦略112を定義することができる。同様に、顧客の業務用のネットワークの活用が特定の閾値を下回った場合に、仮想マシンインスタンス104をサービス事業者ネットワーク102内から除く配置戦略112を定義することができる。外部データソース608から利用可能な他の種類のデータを含む、他の種類の配置戦略112も定義することができる。
配置戦略112の動的に評価されるパラメータ604の値を受信すると、配置戦略112を評価することができる。評価の結果に依存して、サービス事業者ネットワーク102の顧客によって運用されている仮想マシンインスタンス104のフリート602に対して、さまざまな修正を行うことができる。たとえば、図6に示す通り、特定のハードウェアプラットフォーム610A上で実行している仮想マシンインスタンス104Aを、異なるハードウェアプラットフォーム610Bに移行することができる。上で説明した通り、さまざまな技術を活用してそのような移行を実行することができ、技術にはライブ移行とリブート移行とを含むが、これらに限定されない。別の実施例では、動的に評価されるパラメータ604を含む配置戦略112によって特定されたハードウェアプラットフォーム上で実行されている新しい仮想マシンインスタンス104を、フリート602に追加することができる。フリート602に対する他の種類の修正を、動的に評価されるパラメータ604の評価に基づいて行うこともできる。
いくつかの実施形態では、動的に評価されるパラメータ604の値は、定期的に更新され、配置戦略112を再評価するために活用される。そこで、顧客フリート602内の仮想マシンインスタンス104は、配置戦略112の評価の結果により、それに従って修正され得る。このようにして、配置戦略112に明記されたパラメータに従って、顧客フリート602内のインスタンスに対する修正を継続的に行うことができる。たとえば、内部データソース606から読み出されたデータ(たとえば、コスト)及び/または外部データソース608から読み出されたデータ(たとえば、業務用の顧客ネットワークの状態)に依存して、顧客フリート602内の仮想マシンインスタンス104を、異なるハードウェアプラットフォームに継続的に移行することができる。上で説明したさまざまな移行技術を、この点で活用することができる。ある特定の実施形態は、また、循環性能変動を有すると知られている、過去及び/またはリアルタイムの制約パラメータを利用することによって、リアルタイムの価格決定傾向を動的に考慮する配置戦略112も提供することができる。
図7は、本明細書で開示される一実施形態による、動的に評価されるパラメータ604を含む配置戦略112を活用して、顧客フリート602内の仮想マシンインスタンス104を修正するための、1つの例示的なルーチン700を示したフロー図である。ルーチン700は動作702で開始し、展開構成要素110が、動的に評価されるパラメータ604を有する配置戦略112を受信する。動作702から、ルーチン700は動作704へ進み、展開構成要素110が、特定されている場合、任意の外部データソース608から値を読み出す。次いで、ルーチン700は動作704から動作706に進み、展開構成要素101が、特定されている場合、任意の内部データソース606から値を読み出す。
動作706から、ルーチン700は動作708へ進み、展開構成要素110が、内部データソース606と外部データソース608とからそれぞれ読み出した、動的に評価されるパラメータ604の値を活用して、配置戦略112を評価する。読み出された値に基づいて、配置戦略112内の基準が満たされていないと展開構成要素110が判断した場合、ルーチン700は、動作710から動作712に進む。動作712で、ルーチン700が動作704に戻る前に、いくらかの期間が経過することが許可され得、いくらかの期間の後に、動作704で、動的に評価されるパラメータ604の値が、上で説明した方法で再び読み出され、評価され得る。
動作710で、配置戦略112に明記された基準が満たされていると展開構成要素110が判断した場合、ルーチン700は、動作710から動作714に進む。動作714で、展開構成要素110は、1つまたは複数の修正が、フリート602に対して行われるようにする。たとえば、上で説明した通り、展開構成要素110は、仮想マシンインスタンス104を、上で説明した方法で、あるハードウェアプラットフォームからの別のハードウェアプラットフォームに移行することができる。代替的に、展開構成要素110は、配置戦略112で特定されたハードウェアプラットフォームを使用して、新しい仮想マシンインスタンス104または他の種類のコンピューティング資源を、フリート602内にインスタンス化することができる。動作714から、ルーチン700は動作712へ進み、上で説明した、読み出しと、評価と、修正とを、繰り返し実行することができる。
ポーリング機構を、図7に関して上で示し、説明したが、動的に評価されるパラメータ604について変更した値が利用可能であるかどうかを判定するために、他の種類の機構も活用することができる、ということを理解すべきである。たとえば、他の実装形態では、展開構成要素110は、動的に評価されるパラメータ604が変化した時に、イベント通知を受信するように登録することができる。このようにして、図7に関して上で説明したポーリングを避けることができる。他の機構も活用することができる。
図8は、仮想マシンの、ユーザから影響を受けた配置を行うための、上で説明した機能を提供するように構成され得るサービス事業者ネットワーク102を含む、本明細書で開示する実施形態の1つの例示的な動作環境を示した、システムとネットワークとの図である。上で簡単に説明した通り、サービス事業者ネットワーク102は、恒久的に、または必要な場合に、コンピューティング資源を提供することができる。サービス事業者ネットワーク102によって提供されるコンピューティング資源は、データ処理資源、データストレージ資源、ネットワーキング資源、データ通信資源などの、さまざまな種類のコンピューティング資源を含むことができる。
各種類のコンピューティング資源は、汎用であり得、またはいくつかの特定の構成で利用可能であり得る。たとえば、上で簡単に説明した通り、データ処理資源は、いくつかのの異なる構成の仮想マシンインスタンス104として利用可能であり得る。仮想マシンインスタンス104は、ウェブサーバと、アプリケーションサーバと、メディアサーバと、データベースサーバと、他の種類のアプリケーションとを含むアプリケーションを実行するように構成され得る。データストレージ資源は、ファイルストレージデバイス、ブロックストレージデバイス、などを含むことができる。
上でも簡単に述べた通り、サービス事業者ネットワーク102によって提供されるコンピューティング資源は、(本明細書では、単数形で「データセンタ802」または複数形で「データセンタ802」と呼ばれ得る)1つまたは複数のデータセンタ802A〜802Nによって、1つの実装形態で可能にされる。データセンタ802は、コンピュータシステムと関連構成要素とを格納し、動作させるために活用される施設である。データセンタ802は、通常、冗長電源及び非常用電源システムと、通信システムと、冷却システムと、セキュリティシステムとを含む。データセンタ802は、また、地理的に全く異なる場所に置かれてよい。仮想マシンの、ユーザから影響を受けた配置を行うための、本明細書で開示する機能の態様を実装するデータセンタ802の1つの例示的な構成を、図9に関して以下に説明する。
以下の条項を考慮して、本開示の実施形態を説明することができる。
1.コンピュータによって実行された時に、前記コンピュータに、
複数の配置戦略であって、サービス事業者ネットワーク内の特定のハードウェアプラットフォーム上への仮想マシンインスタンスの配置に影響を与えることに使用するために構成されたデータを備える、複数の配置戦略を記憶することと、
特定された仮想マシンのイメージと共に使用するのに適切な配置戦略に対する要求を受信することと、
前記記憶されたデータを使用して、前記特定された仮想マシンのイメージをその上で実行する、サービス事業者ネットワーク内のハードウェアプラットフォームを特定することに使用するための配置戦略を選択することと、
前記要求に応答して、前記選択された配置戦略を返すことと、
を行わせる、記憶されたコンピュータ実行可能命令を有するコンピュータ可読記憶媒体。
2.前記記憶されたデータが、前記複数の配置戦略に対するユーザ提供評価をさらに備え、前記複数の配置戦略に対する前記ユーザ提供評価を活用して、前記識別された仮想マシンのイメージと共に使用するための前記配置戦略を選択する、1項に記載のコンピュータ可読記憶媒体。
3.前記記憶されたデータが、前記複数の配置戦略の発行者に対するユーザ提供評価をさらに備え、前記複数の配置戦略の前記発行者に対する前記ユーザ提供評価を活用して、前記特定された仮想マシンのイメージと共に使用するのに適切な前記配置戦略を選択する、1項に記載のコンピュータ可読記憶媒体。
4.前記記憶された複数の配置戦略のうちの1つまたは複数が、前記サービス事業者ネットワークの顧客によって提供される、1項に記載のコンピュータ可読記憶媒体。
5.前記記憶された複数の配置戦略のうちの1つまたは複数が、前記サービス事業者ネットワークにおける配置戦略の使用履歴を定義するデータの分析を通して特定される、1項に記載のコンピュータ可読記憶媒体。
6.前記コンピュータによって実行された時に、前記コンピュータに、前記選択された配置戦略を活用して、前記サービス事業者ネットワーク内の特定のハードウェアプラットフォームへの前記特定された仮想マシンのイメージの前記配置に影響を与えることを行わせる、記憶されたコンピュータ実行可能命令をさらに有する、1項に記載のコンピュータ可読記憶媒体。
7.サービス事業者ネットワーク内のハードウェアプラットフォームへの仮想マシンインスタンスの前記配置に影響を与えることに使用するための、配置戦略を共有するためのコンピュータで実装された方法であって、
複数の顧客提供配置戦略を記憶することと、
特定されたコンピューティング作業負荷と共に使用するための配置戦略に対する要求を受信することと、
前記記憶された配置戦略を活用して、前記特定されたコンピューティング作業負荷を実行する、前記サービス事業者ネットワーク内のハードウェアプラットフォームを特定することに使用するための配置戦略を選択することと、
のためのコンピュータで実装された動作を実行することを備える、前記コンピュータで実装された方法。
8.前記コンピューティング作業負荷が、仮想マシンのイメージを備える、7項に記載のコンピュータで実装された方法。
9.前記複数の顧客提供配置戦略に対する1つまたは複数の顧客提供評価を記憶することをさらに備える、7項に記載のコンピュータで実装された方法。
10.前記複数の顧客提供配置戦略に対する前記顧客提供評価も活用して、前記特定されたコンピューティング作業負荷を実行する、前記サービス事業者ネットワーク内の前記ハードウェアプラットフォームを特定することに使用するための、前記配置戦略を選択する、9項に記載のコンピュータで実装された方法。
11.前記複数の顧客提供配置戦略の発行者に対する1つまたは複数の顧客提供評価を記憶することをさらに備える、7項に記載のコンピュータで実装された方法。
12.前記複数の顧客提供配置戦略の発行者に対する前記評価も活用して、前記特定されたコンピューティング作業負荷を実行する、前記サービス事業者ネットワーク内の前記ハードウェアプラットフォームを特定することに使用するための前記配置戦略を選択する、11項に記載のコンピュータで実装された方法。
13.前記サービス事業者ネットワークにおける配置戦略の使用履歴を定義するデータの分析を通して識別された、1つまたは複数の配置戦略を記憶することをさらに備える、7項に記載のコンピュータで実装された方法。
14.前記選択された配置戦略を活用して、前記サービス事業者ネットワーク内の特定のハードウェアプラットフォームへの前記作業負荷の前記配置に影響を与えることをさらに備える、7項に記載のコンピュータで実装された方法。
15.サービス事業者ネットワーク内のコンピューティング作業負荷のための配置戦略を選択するためのコンピューティングシステムであって、
前記コンピューティング作業負荷と共に使用するのに適切な配置戦略に対する要求を受信することと、
前記作業負荷と共に使用するための配置戦略を、前記サービス事業者ネットワークの顧客によって共有されている複数の配置戦略から選択することと、
を行うように構成された1つまたは複数のコンピュータを、
備える、前記システム。
16.前記1つまたは複数のコンピュータが、前記選択された配置戦略を活用して、前記サービス事業者ネットワーク内の特定のハードウェアプラットフォームへの前記作業負荷の前記配置に影響を与えるように構成されている、15項に記載のシステム。
17.前記作業負荷が、仮想マシンのイメージを備える、16項に記載のシステム。
18.前記選択された配置戦略が、前記サービス事業者ネットワーク内における配置戦略の過去の使用履歴を定義するデータの分析を通して特定された、1つまたは複数の配置戦略からさらに選択され得る、15項に記載のシステム。
19.前記選択された配置戦略が、前記複数の配置戦略の発行者に対する評価に基づいてさらに識別される、15項に記載のシステム。
20.前記選択された配置戦略が、前記複数の配置戦略に対する評価に基づいてさらに特定される、15項に記載のシステム。
21.コンピュータによって実行された時、前記コンピュータに、
仮想マシンインスタンスをインスタンス化することに対する要求を受信することであって、前記要求がベンダー非依存配置戦略を備える、要求することと、
複数のサービス事業者ネットワークのためのインスタンス利用可能性データを読み出すことであって、前記インスタンス利用可能性データが、前記サービス事業者ネットワークの各々から利用可能な、仮想マシンインスタンスタイプと、前記仮想マシンインスタンスタイプを実行するためのハードウェアプラットフォームを記述している、読み出すことと、
前記複数のサービス事業者ネットワークのためのインスタンス価格決定データを読み出すことであって、前記インスタンス価格決定データが、前記仮想マシンインスタンスタイプを前記サービス事業者ネットワーク内で実行するための価格を記述している、読み出すことと、
前記ベンダー非依存配置戦略と、前記インスタンス利用可能性データと、前記インスタンス価格決定データとを活用して、前記仮想マシンインスタンスをインスタンス化するために前記サービス事業者ネットワークのうちの1つを選択することと、
を行わせる、記憶されたコンピュータ実行可能命令を有するコンピュータ可読記憶媒体。
22.前記サービス事業者ネットワークのうちの前記選択された1つが、前記仮想マシンインスタンスを動作させるための最低価格を提供し、また、前記ベンダー非依存配置戦略に明記された1つまたは複数のパラメータも満たす、前記サービス事業者ネットワークを備える、21項に記載のコンピュータ可読記憶媒体。
23.前記複数のサービス事業者ネットワークのための前記インスタンス利用可能性データが、前記仮想マシンインスタンスをインスタンス化することに対する前記要求を受信する前に読み出される、21項に記載のコンピュータ可読記憶媒体。
24.前記複数のサービス事業者ネットワークのための前記インスタンス利用可能性データが、前記仮想マシンインスタンスをインスタンス化することに対する前記要求を受信したことに応答して読み出される、21項に記載のコンピュータ可読記憶媒体。
25.前記複数のサービス事業者ネットワークのための前記インスタンス利用可能性データが、前記仮想マシンインスタンスを前記サービス事業者ネットワークのうちの1つの上で立ち上げた後に読み出される、21項に記載のコンピュータ可読記憶媒体。
26.前記インスタンス価格決定データが、前記仮想マシンインスタンスをインスタンス化することに対する前記要求を受信する前に読み出される、21項に記載のコンピュータ可読記憶媒体。
27.前記インスタンス価格決定データが、前記仮想マシンインスタンスをインスタンス化することに対する前記要求を受信したことに応答して読み出される、21項に記載のコンピュータ可読記憶媒体。
28.前記インスタンス価格決定データが、前記仮想マシンインスタンスを前記サービス事業者ネットワークのうちの1つの上で立ち上げた後に読み出される、21項に記載のコンピュータ可読記憶媒体。
29.前記コンピュータによって実行された時に、前記コンピュータに、前記仮想マシンインスタンスをインスタンス化することに対する要求を、前記サービス事業者ネットワークのうちの前記選択された1つに送信させる、記憶されたコンピュータ実行可能命令をさらに有する、21項に記載のコンピュータ可読記憶媒体。
30.前記コンピュータによって実行された時に、前記コンピュータに、前記仮想マシンインスタンスをインスタンス化することに対する前記要求に応答して、前記仮想マシンインスタンスを前記サービス事業者ネットワークのうちの前記選択された1つの上で実行するための推定コストを返させる、記憶されたコンピュータ実行可能命令をさらに有する、21項に記載のコンピュータ可読記憶媒体。
31.仮想マシンインスタンスを実行するための、複数のサービス事業者ネットワークのうちの1つを選択するためのコンピュータで実装された方法であって、
複数のサービス事業者ネットワークのためのインスタンス利用可能性データを取得することであって、前記インスタンス利用可能性データが、1つまたは複数の仮想マシンインスタンスタイプと、前記仮想マシンインスタンスタイプを実行するためのハードウェアプラットフォームとを記述している、取得することと、
前記複数のサービス事業者ネットワークのためのインスタンス価格決定データを取得することであって、前記インスタンス価格決定データが、前記仮想マシンインスタンスタイプを活用するための価格を記述している、取得することと、
前記インスタンス利用可能性データと、前記インスタンス価格決定データと、ベンダー非依存配置戦略とを活用して、仮想マシンインスタンスを実行するための、前記複数のサービス事業者ネットワークのうちの1つを選択することと、
のためのコンピュータで実装された動作を実行することを備える、前記方法。
32.前記ベンダー非依存配置戦略が、サービス事業者ネットワーク内の特定のハードウェアプラットフォームへの仮想マシンインスタンスの前記配置に影響を与えることに使用するために構成されたベンダー非依存データを備える、31項に記載のコンピュータで実装された方法。
33.前記サービス事業者ネットワークのうちの前記選択された1つが、前記仮想マシンインスタンスを実行するための最低価格を提供し、また、前記ベンダー非依存配置戦略に明記された1つまたは複数のパラメータも満たす前記サービス事業者ネットワークを備える、31項に記載のコンピュータで実装された方法。
34.前記仮想マシンインスタンスを実行するための前記サービス事業者ネットワークが、前記仮想マシンインスタンスを実行するための好みのサービス事業者ネットワークを特定する、1つまたは複数の配置選好を考慮してさらに選択される、32項に記載のコンピュータで実装された方法。
35.前記仮想マシンインスタンスを実行するための前記サービス事業者ネットワークが、前記仮想マシンインスタンスを実行するために活用されるべきでないサービス事業者ネットワークを特定する、1つまたは複数の配置選好を考慮してさらに選択される、32項に記載のコンピュータで実装された方法。
36.前記インスタンス利用可能性データ及び前記インスタンス価格決定データが、前記仮想マシンインスタンスを実行することに対する要求を受信する前に取得される、32項に記載のコンピュータで実装された方法。
37.前記インスタンス利用可能性データ及び前記インスタンス価格決定データが、前記仮想マシンインスタンスを実行することに対する要求を受信したことに応答して取得される、31項に記載のコンピュータで実装された方法。
38.前記仮想マシンインスタンスを、前記サービス事業者ネットワークのうちの前記選択された1つの上で実行させることをさらに備える、32項に記載のコンピュータで実装された方法。
39.仮想マシンインスタンスを実行するためのサービス事業者ネットワークを選択するためのコンピューティングシステムであって、
仮想マシンインスタンスを実行することに対する要求を受信することであって、前記要求がベンダー非依存配置戦略を備える、受信することと、前記ベンダー非依存配置戦略を活用して、前記仮想マシンインスタンスを実行するための、複数のサービス事業者ネットワークのうちの1つを選択することと、を行うように構成された1つまたは複数のコンピュータ、
を備える、前記システム。
40.前記複数のサービス事業者ネットワークのうちの前記選択された1つが、前記ベンダー非依存配置戦略で特定された1つまたは複数のパラメータを満たすことができ、また、前記仮想マシンインスタンスを、前記複数のサービス事業者のうちで最低コストで実行することもできる前記サービス事業者ネットワークを備える、39項に記載のシステム。
41.前記1つまたは複数のコンピュータが、前記サービス事業者ネットワークから取得したインスタンス利用可能性データに基づいて、前記サービス事業者ネットワークが、前記ベンダー非依存配置戦略で特定された前記1つまたは複数のパラメータを満たすことができるかどうかを判断するように構成されている、40項に記載のシステム。
42.前記1つまたは複数のコンピュータが、前記サービス事業者ネットワークから取得したインスタンス価格決定データに基づいて、前記仮想マシンインスタンスを前記最低コストで実行することができる前記サービス事業者ネットワークを特定するように構成されている、40項に記載のシステム。
43.コンピュータによって実行された時に、前記コンピュータに、
1つまたは複数の動的に評価されるパラメータを備える配置戦略を受信することと、
前記動的に評価されるパラメータの1つまたは複数の値を、サービス事業者ネットワークの外部の1つまたは複数のソースから読み出すことと、
前記配置戦略を、少なくとも、前記サービス事業者ネットワークの外部の前記1つまたは複数のソースから読み出された前記動的に評価されるパラメータの前記値を活用して評価することと、
前記配置戦略の前記評価に基づいて、前記サービス事業者ネットワーク内で動作している、顧客フリート内の1つまたは複数の仮想マシンインスタンスを修正することと、
を行うようにさせる、記憶されたコンピュータ実行可能命令を有するコンピュータ可読記憶媒体。
44.顧客フリート内の1つまたは複数の仮想マシンインスタンスを修正することが、前記顧客フリート内の仮想マシンインスタンスを、前記サービス事業者ネットワーク内の第1のハードウェアプラットフォームから第2のハードウェアプラットフォームに移行させることを含む、43項に記載のコンピュータ可読記憶媒体。
45.顧客フリート内の1つまたは複数の仮想マシンインスタンスを修正することが、前記サービス事業者ネットワーク内で、前記配置戦略によって特定されたハードウェアプラットフォーム上で仮想マシンインスタンス立ち上げることを含む、43項に記載のコンピュータ可読記憶媒体。
46.前記コンピュータによって実行された時に、前記コンピュータに、前記読み出し動作と、評価動作と、修正動作とを定期的に繰り返させる、記憶されたコンピュータ実行可能命令をさらに有する、43項に記載のコンピュータ可読記憶媒体。
47.前記コンピュータによって実行された時に、前記コンピュータに、前記動的に評価されるパラメータの1つまたは複数の値を、前記サービス事業者ネットワークの内部の1つまたは複数のデータソースから読み出させる、記憶されたコンピュータ実行可能命令をさらに有する、43項に記載のコンピュータ可読記憶媒体。
48.前記配置戦略が、前記サービス事業者ネットワークの内部の前記1つまたは複数のデータソースから読み出された前記動的に評価されるパラメータの前記値に基づいて、さらに評価される、35項に記載のコンピュータ可読記憶媒体。
49.前記配置戦略が、前記動的に評価されるパラメータのうちの1つまたは複数が変更されたことを示すイベント通知を受信したことに応答して評価される、35項に記載のコンピュータ可読記憶媒体。
50.仮想マシンインスタンスのフリート内の1つまたは複数の仮想マシンインスタンスを、1つまたは複数の動的に評価されるパラメータを特定する配置戦略を使用して修正するためのコンピュータで実装された方法であって、
前記配置戦略によって特定された前記1つまたは複数の動的に評価されるパラメータの値を読み出すことと、
前記配置戦略を、前記動的に評価されるパラメータの前記読み出された値に少なくとも部分的に基づいて評価することと、
前記フリート内の前記1つまたは複数の仮想マシンインスタンスを、前記配置戦略の前記評価に基づいて修正することと、
のためのコンピュータで実装された動作を実行することを備える、前記方法。
51.前記1つまたは複数の動的に評価されるパラメータの前記値のうちの少なくとも1つが、前記仮想マシンインスタンスを提供しているサービス事業者ネットワークの外部のデータソースから読み出される、50項に記載のコンピュータで実装された方法。
52.前記サービス事業者ネットワークの外部の前記データソースが、前記1つまたは複数の仮想マシンインスタンスに関連する前記サービス事業者ネットワークの顧客によって提供される、51項に記載のコンピュータで実装された方法。
53.前記1つまたは複数の動的に評価されるパラメータの前記値のうちの少なくとも1つが、前記仮想マシンインスタンスを提供しているサービス事業者ネットワークの内部のデータソースから読み出される、50項に記載のコンピュータで実装された方法。
54.前記フリート内の前記1つまたは複数の仮想マシンインスタンスを修正することが、第1のハードウェアプラットフォーム上で実行している前記フリート内の第1の仮想マシンインスタンスを、第2のハードウェアプラットフォーム上で実行している第2の仮想マシンと置き換えることを備える、50項に記載のコンピュータで実装された方法。
55.前記フリート内の前記1つまたは複数の仮想マシンインスタンスを修正することが、前記配置戦略によって特定されたハードウェアプラットフォーム上で実行される新しい仮想マシンインスタンスを、前記フリート内に作成することを備える、50項に記載のコンピュータで実装された方法。
56.前記読み出し動作と、評価動作と、修正動作とを、定期的に繰り返すことをさらに備える、50項に記載のコンピュータで実装された方法。
57.1つまたは複数の動的に評価されるパラメータを特定する顧客提供配置戦略を使用した、仮想マシンインスタンスのフリートの修正のためのコンピューティングシステムであって、
前記顧客提供配置戦略を、前記動的に評価されるパラメータの値を読み出すことによって評価することと、
前記フリート内の1つまたは複数の仮想マシンインスタンスを、前記顧客提供配置戦略の前記評価に基づいて修正することと、
を行うように構成された1つまたは複数のコンピュータ、
を備える、前記システム。
58.前記動的に評価されるパラメータの前記値のうちの少なくとも1つが、前記仮想マシンインスタンスを実装しているサービス事業者ネットワークの外部のデータソースから読み出される、57項に記載のシステム。
59.前記サービス事業者ネットワークの外部の前記データソースが、前記サービス事業者ネットワークの顧客によって提供される、58項に記載のシステム。
60.前記動的に評価されるパラメータの前記値のうちの少なくとも1つが、前記仮想マシンインスタンスを提供しているサービス事業者ネットワークの内部のデータソースから読み出される、57項に記載のシステム。
61.前記フリート内の前記1つまたは複数の仮想マシンインスタンスを修正することが、第1のハードウェアプラットフォーム上で実行している前記フリート内の第1の仮想マシンインスタンスを、第2のハードウェアプラットフォーム上で実行している第2の仮想マシンと置き換えることを備える、57項に記載のシステム。
62.前記フリート内の前記1つまたは複数の仮想マシンインスタンスを修正することが、前記配置戦略によって特定されたハードウェアプラットフォーム上で実行される新しい仮想マシンインスタンスを、前記フリート内に作成することを備える、57項に記載のシステム。
63.前記1つまたは複数のコンピュータが、前記評価動作と、修正動作とを定期的に繰り返すようにさらに構成されている、57項に記載のシステム。
サービス事業者ネットワーク102の顧客および他のユーザは、サービス事業者ネットワーク102によって提供されるコンピューティング資源に、WAN804を介して、適切な顧客コンピューティングシステム801を使用して、アクセスすることができる。図8ではWAN804を示したが、ローカルエリアネットワーク(「LAN」)、インターネット、またはデータセンタ802を遠隔の顧客と他のユーザとに接続する、当業で知られている他のネットワーキングトポロジーを活用することができる、ということを理解すべきである。そのようなネットワークの組み合わせも活用することができる、ということも理解すべきである。
図9は、本明細書で開示される一実施形態による、仮想マシンの、ユーザから影響を受けた配置を行うための、本明細書で開示する概念と技術との態様を実装するデータセンタ802の一構成を示したコンピューティングシステム図である。図9に示す例示的なデータセンタ802は、上で説明したものなどのコンピューティング資源を提供するための、(本明細書では、単数形で「サーバコンピュータ902」、または複数形で、「サーバコンピュータ902」と呼ばれ得る)いくつかのサーバコンピュータ902A〜902Fを含む。
サーバコンピュータ902は、本明細書で説明するコンピューティング資源を提供するために適切に構成された、標準的なタワー型サーバコンピュータまたはラックマウント型サーバコンピュータであってよい。たとえば、一実装形態では、サーバコンピュータ902は、コンピューティング資源908A〜908Nを提供するように構成されている。上述の通り、コンピューティング資源908は、仮想マシンインスタンス104などのデータ処理資源、データストレージ資源、データベース資源、ネットワーキング資源、などであり得る。サーバ902のうちのいくつかは、また、コンピューティング資源をインスタンス化及び/または管理することができる資源管理手段904を実行するようにも構成され得る。仮想マシンインスタンス104の場合では、たとえば、資源管理手段904は、たとえば、ハイパーバイザ、または1つのサーバコンピュータ902上で複数の仮想マシンインスタンス104の実行を可能にするように構成された他の種類のプログラムであり得る。
図9に示すデータセンタ902は、また、データセンタ802とサーバコンピュータ902とコンピューティング資源との動作を管理するための、さまざまなソフトウェア構成要素を実行するために用意され得るサーバコンピュータ902Fも含む。上で説明したものなどのいくつかの実装形態では、サーバコンピュータ902Fは、また、配置戦略特定構成要素214、インスタンス配置サービス402、展開構成要素110、及び/または本明細書で説明した他のソフトウェア構成要素を実行するように構成され得る。データセンタ802内の他のコンピューティングシステムも活用して、これらおよび他の構成要素を実行することができる。他の構成も活用することができる。
図9に示す例示的なデータセンタ802では、適切なLAN906を活用して、サーバコンピュータ902A〜902Fを相互接続する。LAN906は、また、図8に示したWAN804にも接続される。図1〜9に示した構成及びネットワークトポロジーが大幅に簡略化されており、さらに多くのコンピューティングシステムとネットワークとネットワークデバイスとを活用して、本明細書で開示するさまざまなコンピューティングシステムを相互接続することができ、上で説明した機能を提供することができる、ということを理解すべきである。データセンタ802A〜802Nの各々の間と、各データセンタ802内のサーバコンピュータ902A〜902Fの各々の間と、可能性として、データセンタ802の各々の中のコンピューティング資源間とでの負荷のバランスを取るための、適切な負荷バランシングデバイスまたはソフトウェアモジュールも活用することができる。図9に関して説明したデータセンタ802が、単に例示であり、他の実装形態も活用することができる、ということを理解すべきである。
図10は、仮想マシンインスタンス104の、ユーザから影響を受けた配置を行うための、上で説明したプログラム構成要素を実行することができる、コンピュータ1000の例示的なコンピュータアーキテクチャを示している。図10に示したコンピュータアーキテクチャは、従来のサーバコンピュータ、ワークステーション、デスクトップコンピュータ、ノートパソコン、タブレット、ネットワーク機器、携帯情報端末(「PDA」)、電子書籍リーダ、デジタル携帯電話、または他のコンピューティングデバイスを示し、本明細書で提示するソフトウェア構成要素の態様を実行するために活用され得る。たとえば、図10に示すコンピュータアーキテクチャを活用して、図1〜6に関して上で説明したさまざまな構成要素を実装することができる。
コンピュータ1000は、システムバスまたは他の電気通信経路を介して、多数の構成要素またはデバイスが接続され得るプリント基板であるベースボード1002、または「マザーボード」を含む。一例示的実施形態では、1つまたは複数の中央処理装置(「CPU」)1004は、チップセット1006と連動して動作する。CPU1004は、コンピュータ1000の動作に必要な算術演算と論理演算とを実行する、標準的なプログラム可能プロセッサであってよい。
CPU1004は、ある個別の物理的状態から次の状態に、これらの状態を区別し、変更するスイッチング要素の操作を通して遷移することによって、動作を実行する。スイッチング要素は、一般に、フリップフロップなどの、2つの2進状態のうちの1つを維持する電子回路と、論理ゲートなどの、1つまたは複数の他のスイッチング要素の状態の論理結合に基づいて出力状態を提供する電子回路とを含むことができる。これらの基本的なスイッチング要素を組み合わせて、より複雑な論理回路を作成することができ、それには、レジスタ、加減算回路、算術論理演算ユニット、浮動小数点演算ユニット、などが含まれる。
チップセット1006は、CPU1004と、ベースボード1002上の残りの構成要素及びデバイスとの間のインターフェースを提供する。チップセット1006は、コンピュータ1000内でメインメモリとして使用されるランダムアクセスメモリ(「RAM」)1008へのインターフェースを提供することができる。チップセット1006は、コンピュータ1000を起動することと、情報をさまざまな構成要素とデバイスとの間で伝達することとを補助する基本的ルーチンを記憶するための、リードオンリーメモリ(「ROM」)1010または非揮発性RAM(「NVRAM」)などのコンピュータ可読記憶媒体へのインターフェースをさらに提供することができる。ROM1010またはNVRAMは、また、本明細書で説明する実施形態に従った、コンピュータ1000の動作に必要な他のソフトウェア構成要素を記憶することもできる。
コンピュータ1000は、ローカルエリアネットワーク1020などのネットワークを通した遠隔のコンピューティングデバイスとコンピュータシステムとへの論理接続を使用して、ネットワーク化された環境で動作することができる。チップセット1006は、ギガビットイーサネットアダプタなどのNIC1012を通したネットワーク接続性を提供する機能を含むことができる。NIC1012は、コンピュータ1000を他のコンピューティングデバイスに、ネットワーク1020を介して接続することができる。コンピュータを、他の種類のネットワークと遠隔コンピュータシステムとに接続して、複数のNIC1012がコンピュータ1000内に存在し得る、ということを理解すべきである。
コンピュータ1000は、コンピュータに非揮発性ストレージを提供する大容量記憶装置1018に接続され得る。大容量記憶装置1018は、本明細書で詳細に説明した、システムプログラムとアプリケーションプログラムと他のプログラムモジュールとデータとを記憶することができる。大容量記憶装置1018は、コンピュータ1000に、チップセット1006に接続されたストレージ制御部1014を通して接続され得る。大容量記憶装置1018は、1つまたは複数の物理的記憶装置から成ることができる。ストレージ制御部1014は、シリアル接続SCSI(「SAS」)インターフェース、シリアルアドバンストテクノロジーアタッチメント(「SATA」)インターフェース、ファイバーチャネル(「FC」)インターフェース、またはコンピュータと物理的記憶装置とを物理的に接続し、それらの間でデータを伝達するための他の種類のインターフェースを通して、物理的記憶装置にインターフェース接続することができる。
コンピュータ1000は、物理的記憶装置の物理的状態を変換して、記憶されている情報を反映させることによって、データを大容量記憶装置1018上に記憶することができる。物理的状態の具体的な変換は、本明細書の異なる実装形態で、さまざまな要因に依存し得る。そのような要因の例は、物理的記憶装置を実装するために使用される技術、大容量記憶装置1018が一次記憶装置としてまたは二次記憶装置として特徴付けられるか等を含むが、それに限定されない。
たとえば、コンピュータ1000は、ストレージ制御部1014を通して、磁気ディスクドライブユニット内の特定の場所の磁気特性、光学式記憶装置内の特定の場所の反射特性または屈折特性、または半導体記憶装置内の特定のコンデンサ、トランジスタ、または他の個別の構成要素の電気特性を変更する命令を発行することによって、情報を大容量記憶装置1018に記憶することができる。物理媒体の他の変換が、本明細書の範囲と精神とから逸脱することなく可能であり、前述の実施例は、本明細書を容易にするためにのみ提供されている。コンピュータ1000は、物理的記憶装置内の1つまたは複数の特定の場所の物理的状態または特性を検出することによって、情報を大容量記憶装置1018からさらに読み出すことができる。
上で説明した大容量記憶装置1018に加えて、コンピュータ1000は、他のコンピュータ可読記憶媒体へのアクセスを有して、プログラムモジュール、データ構造、または他のデータなどの情報を記憶し、読み出すことができる。コンピュータ可読記憶媒体が、非一時的なデータの記憶装置を提供し、コンピュータ1000によってアクセスされ得る、任意の利用可能な媒体であってよい、ということを当業者は理解すべきである。
一例として、コンピュータ可読記憶媒体は、任意の方法または技術で実装された、
揮発性媒体及び非揮発性媒体と、取り外し可能媒体及び固定媒体とを含むことができる。コンピュータ可読記憶媒体は、RAM、ROM、消去プログラム可能ROM(「EPROM」)、電気的消去プログラム可能ROM(「EEPROM」)、フラッシュメモリまたは他の半導体メモリ技術、コンパクトディスクROM(「CD−ROM」)、デジタル多用途ディスク(「DVD」)、高解像度DVD(「HD−DVD」)、BLU−RAY(登録商標)、または他の光学的記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶デバイスまたは他の磁気記憶デバイス、または所望の情報を非一時的な方法で記憶するために使用され得る他の媒体を含む。
大容量記憶装置1018は、コンピュータ1000の動作を制御するために活用されるオペレーティングシステム1030を記憶することができる。一実施形態によると、オペレーティングシステムは、LINUXオペレーティングシステムを備える。別の実施形態によると、オペレーティングシステムは、MICROSOFT CorporationからのWINDOWS(登録商標) SERVERオペレーティングシステムを備える。さらなる実施形態によると、オペレーティングシステムは、UNIX(登録商標)またはSOLARISオペレーティングシステムを備えることができる。他のオペレーティングシステムも活用することができる、ということを理解すべきである。大容量記憶装置1018は、配置戦略特定構成要素214、インスタンス配置サービス402、展開構成要素110、及び/または上で説明した他のソフトウェア構成要素とデータとのうちのいずれか、などのコンピュータ1000によって活用される、他のシステムまたはアプリケーションと、データとを記憶することができる。大容量記憶装置1018は、また、本明細書で具体的に特定されない他のプログラムとデータとを記憶することもできる。
一実施形態では、大容量記憶装置1018または他のコンピュータ可読記憶媒体は、コンピュータ1000にロードされた時に、コンピュータを、汎用コンピューティングシステムから、本明細書で説明した実施形態を実装することができる専用コンピュータに変換する、コンピュータ実行可能命令を用いて符号化される。これらのコンピュータ実行可能命令は、CPU1004がどのように上で説明した状態間で遷移するかを特定することによって、コンピュータ1000を変換する。一実施形態によると、コンピュータ1000は、コンピュータ1000によって実行された時に、上で説明したさまざまな処理ルーチンを実行するコンピュータ実行可能命令を記憶する、コンピュータ可読記憶媒体へのアクセスを有する。コンピュータ1000は、また、本明細書で説明した他のコンピュータで実装された動作のうちのいずれかを実行するためのコンピュータ可読記憶媒体を含むことができる。
コンピュータ1000は、また、キーボード、マウス、タッチパッド、タッチパネル、電子スタイラスペン、または他の種類の入力デバイスなどの、いくつかの入力デバイスからの入力を受信し、処理するための、1つまたは複数の入力/出力制御部1016も含むことができる。同様に、入力/出力制御部1016は、コンピュータモニタなどのディスプレイ、フラットパネルディスプレイ、デジタルプロジェクター、プリンタ、プロッター、または他の種類の出力デバイスへ、出力を提供することができる。コンピュータ1000が、図10で示した構成要素の全部を含まないことがあり、図10で明示的に示さない他の構成要素を含むことができ、図10に示したアーキテクチャとは全く異なるアーキテクチャを活用することができる、ということを理解すべきである。
前述に基づいて、仮想マシンインスタンス104と他の種類のコンピューティング資源との、ユーザから影響を受けた配置を行うためのさまざまな技術を本明細書で提示した、ということを理解すべきである。さらに、本明細書で提示した主題は、コンピュータ構造特性と方法論的動作とコンピュータ可読媒体とに特有の表現で説明されたが、添付の特許請求の範囲に定義される本発明が、必ずしも、本明細書で説明した具体的な特徴、動作、または媒体に限定されない、ということを理解すべきである。むしろ、具体的な特徴、動作、及び媒体は、本特許請求の範囲を実装する例示的な形態として開示されている。
上で説明した主題は、例示としてのみ提供され、限定するものとして解釈されるべきでない。さらに、特許請求される主題は、本開示のいずれかの部分に記された、いずれかまたは全部の不利益を解決する実装形態に限定されない。示し、説明した例示的な実施形態とアプリケーションとに従わずに、以下の特許請求の範囲に明記する本発明の真の精神と範囲とから逸脱することなく、さまざまな修正および変更が、本明細書で説明した主題に対してなされ得る。