IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン・テクノロジーズ・インコーポレーテッドの特許一覧

特許7189997仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット
<>
  • 特許-仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット 図1
  • 特許-仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット 図2
  • 特許-仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット 図3
  • 特許-仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット 図4
  • 特許-仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット 図5
  • 特許-仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット 図6
  • 特許-仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット 図7
  • 特許-仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット 図8
  • 特許-仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-06
(45)【発行日】2022-12-14
(54)【発明の名称】仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット
(51)【国際特許分類】
   G06F 9/50 20060101AFI20221207BHJP
   G06F 9/455 20060101ALI20221207BHJP
【FI】
G06F9/50 150Z
G06F9/455 150
【請求項の数】 15
【外国語出願】
(21)【出願番号】P 2021075891
(22)【出願日】2021-04-28
(62)【分割の表示】P 2019132615の分割
【原出願日】2015-06-24
(65)【公開番号】P2021119502
(43)【公開日】2021-08-12
【審査請求日】2021-04-28
(31)【優先権主張番号】62/018,466
(32)【優先日】2014-06-27
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/331,745
(32)【優先日】2014-07-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】507303550
【氏名又は名称】アマゾン・テクノロジーズ・インコーポレーテッド
(74)【代理人】
【識別番号】100098394
【弁理士】
【氏名又は名称】山川 茂樹
(72)【発明者】
【氏名】フィリップス,ジョン・メリル
(72)【発明者】
【氏名】アール,ウィリアム・ジョン
(72)【発明者】
【氏名】シング,ディーパック
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2011-198027(JP,A)
【文献】特開2010-113677(JP,A)
【文献】特表2010-539570(JP,A)
【文献】国際公開第2014/073024(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサとメモリとをそれぞれ備え、仮想コンピューティングサービスを実装するように構成された複数のコンピューティングデバイスを有するシステムであって、前記仮想コンピューティングサービスは、
前記仮想コンピューティングサービスによってホストされている計算インスタンスのクレジット残量を継時的に蓄積することであって、前記計算インスタンスは、固定率で提供されたクレジット数が前記計算インスタンスによって消費されクレジット数を超えるとき、前記クレジット残量にクレジットを蓄積し、蓄積されたクレジットは、前記計算インスタンスの活用を、前記計算インスタンスのベースライン活用を超えるよう増加させるために、前記計算インスタンスによって使用され、前記クレジット残量のクレジットは、前記ベースライン活用を超過する前記計算インスタンスの活用に対する割り当てクレジットであり、前記ベースライン活用は、前記計算インスタンスが、前記クレジット残量のクレジットを費やすことなく活用されることができる時間量である、前記蓄積することと、
前記計算インスタンスのリソースクレジット使用量を、前記仮想コンピューティングサービスのためのインターフェースに表示することと
を行うように構成されている、システム。
【請求項2】
前記計算インスタンスの活用は、前記計算インスタンスをホストするコンピューティングデバイスの複数の種類のリソースの活用であり、異なるそれぞれのクレジット残量は、前記計算インスタンスによって使用される前記コンピューティングデバイスの前記複数の種類のリソースに対して記録される、請求項1に記載のシステム。
【請求項3】
前記仮想コンピューティングサービスは、
前記リソースクレジット使用量に加えて、前記計算インスタンスに対するクレジット残量を、前記仮想コンピューティングサービスのための前記インターフェースに表示すること
をさらに行うように構成されている、請求項1又は2に記載のシステム。
【請求項4】
前記仮想コンピューティングサービスは、
前記計算インスタンスの前記クレジット残量を監視することと、
その監視に少なくとも部分的に基づき、前記計算インスタンスに対するアラームイベントを検出することと、
前記アラームイベントの検出に応えて、前記計算インスタンスに対する前記アラームイベントの通知を提供することと
をさらに行うように構成されている、請求項1~3のいずれか1項に記載のシステム。
【請求項5】
前記リソースクレジット使用量は、時間に対するグラフとして表示される、請求項1~4のいずれか1項に記載のシステム。
【請求項6】
前記仮想コンピューティングサービスは、
継時的に記録されたクレジット使用量の評価に少なくとも部分的に基づいて異なる種類の計算インスタンスを推奨すること
をさらに行うように構成されている、請求項1~5のいずれか1項に記載のシステム。
【請求項7】
前記仮想コンピューティングサービスは、
異なるリソースに対応するグラフィカルユーザインターフェース要素の選択に応えて、前記計算インスタンスに提供された前記コンピューティングデバイスの前記異なるリソースに対して記録された異なるリソースクレジット使用量を表示すること
をさらに行うように構成されている、請求項1~6のいずれか1項に記載のシステム。
【請求項8】
1つ以上のコンピューティングデバイス上に実装される仮想コンピューティングサービスによってホストされている計算インスタンスのクレジット残量を継時的に蓄積することであって、前記計算インスタンスは、固定率で提供されたクレジット数が前記計算インスタンスによって消費されクレジット数を超えるとき、前記クレジット残量にクレジットを蓄積し、蓄積されたクレジットは、前記計算インスタンスの活用を、前記計算インスタンスのベースライン活用を超えるよう増加させるために、前記計算インスタンスによって使用され、前記クレジット残量のクレジットは、前記ベースライン活用を超過する前記計算インスタンスの活用に対する割り当てクレジットであり、前記ベースライン活用は、前記計算インスタンスが、前記クレジット残量のクレジットを費やすことなく活用されることができる時間量である、前記蓄積することと、
前記計算インスタンスのリソースクレジット使用量を、前記仮想コンピューティングサービスのためのインターフェースに表示すること
とを有する、方法。
【請求項9】
前記計算インスタンスの活用は、前記計算インスタンスをホストするコンピューティングデバイスの複数の種類のリソースの活用であり、異なるそれぞれのクレジット残量は、前記計算インスタンスによって使用される前記コンピューティングデバイスの前記複数の種類のリソースに対して記録される、請求項8に記載の方法。
【請求項10】
前記仮想コンピューティングサービスは、
前記リソースクレジット使用量に加えて、前記計算インスタンスに対するクレジット残量を、前記仮想コンピューティングサービスのための前記インターフェースに表示すること
をさらに有する、請求項8又は9に記載の方法。
【請求項11】
前記仮想コンピューティングサービスは、
前記計算インスタンスの前記クレジット残量を監視することと、
その監視に少なくとも部分的に基づき、前記計算インスタンスに対するアラームイベントを検出することと、
前記アラームイベントの検出に応えて、前記計算インスタンスに対する前記アラームイベントの通知を提供することと
をさらに有する、請求項8~10のいずれか1項に記載の方法。
【請求項12】
前記リソースクレジット使用量は、時間に対するグラフとして表示される、請求項8~11のいずれか1項に記載の方法。
【請求項13】
前記クレジット使用量の評価又は記録されたクレジット残量の履歴に少なくとも部分的に基づいて異なる種類の計算インスタンスを推奨すること
をさらに有する、請求項8~12のいずれか1項に記載の方法。
【請求項14】
異なるリソースに対応するユーザインターフェース要素の選択に応えて、前記計算インスタンスによって使用される前記コンピューティングデバイスの前記異なるリソースに対して記録された異なるリソースクレジット使用量を表示すること
をさらに有する、請求項8~13のいずれか1項に記載の方法。
【請求項15】
仮想コンピューティングサービスを実装するように構成された1つ以上のコンピューティングデバイス上でまたは1つ以上のコンピューティングデバイスにわたり実行されると、前記1つ以上のコンピューティングデバイスに、
前記仮想コンピューティングサービスによってホストされている計算インスタンスのクレジット残量を継時的に蓄積することであって、前記計算インスタンスは、固定率で提供されたクレジット数が前記計算インスタンスによって消費されクレジット数を超えるとき、前記クレジット残量にクレジットを蓄積し、蓄積されたクレジットは、前記計算インスタンスの活用を、前記計算インスタンスのベースライン活用を超えるよう増加させるために、前記計算インスタンスによって使用され、前記クレジット残量のクレジットは、前記ベースライン活用を超過する前記計算インスタンスの活用に対する割り当てクレジットであり、前記ベースライン活用は、前記計算インスタンスが、前記クレジット残量のクレジットを費やすことなく活用されることができる時間量である、前記蓄積することと、
前記計算インスタンスのリソースクレジット使用量を、前記仮想コンピューティングサービスのためのインターフェースに表示すること
を実行させるプログラム命令を記憶する、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
汎用ハードウェアに対する仮想化技術の出現は、多様なニーズを有する多数の顧客のための大規模なコンピューティングリソースを管理する上で利益をもたらし、これにより、様々なコンピューティングリソースが、複数の顧客により効率的かつ安全に共有されることが可能になる。例えば、仮想化技術は、各ユーザに、単一の物理的なコンピューティングマシンによりホストされる1つ以上の仮想マシンを提供することにより、単一の物理的なコンピューティングマシンが、複数のユーザの間で共有されることを可能にすることができ、それぞれの係る仮想マシンは、ユーザが所与のハードウェアコンピューティングリソースの唯一のオペレータ及び管理者であるという錯覚をユーザに提供する別個の論理的コンピューティングシステムとして機能するソフトウェアシミュレーションであり、同時に様々な仮想マシン間のアプリケーション分離及びセキュリティも提供する。別の例として、仮想化技術は、複数のデータストレージデバイスにわたり分散され得る仮想化されたデータストアを各ユーザに提供することにより、データストレージハードウェアが複数のユーザ間で共有されることを可能にすることができ、それぞれの係る仮想化されたデータストアは、ユーザがデータストレージリソースの唯一のオペレータ及び管理者であるという錯覚をユーザに提供する別個の論理的データストアとして機能する。
【0002】
仮想化技術を利用して、クライアントシステムもしくはデバイスに多くの異なる種類のサービスを作成するか、または異なる機能を実行しても良い。例えば、仮想マシンを使用して、電子商取引プラットフォームなどの外部顧客のためのネットワークベースのサービスを実装しても良い。仮想マシンをさらに使用して、企業の内部ネットワークの一部として実装される情報技術(IT)サービスなど、内部顧客のためのサービスまたはツールをさらに実装しても良い。しかしながら、これらの仮想リソースを効率的に活用するには、多くの異なる種類の仮想リソース作業量に対する柔軟な活用オプションが必要になり得る。一部の環境では、複数の仮想マシンが単一のホスト上で一緒にホストされる場合があり、これにより同じ物理的なコンピュータリソースに依存し得る異なる仮想コンピューティングリソースを活用する際に、競合及び衝突が生まれる可能性がある。
【図面の簡単な説明】
【0003】
図1】いくつかの実施形態に係る、仮想計算インスタンスに対するローリングリソースクレジット残量を例示するグラフである。
図2】いくつかの実施形態に係る、仮想コンピュータリソースをスケジュールするためにローリングリソースクレジットを実施する仮想計算インスタンスを提供するネットワークベースの仮想コンピューティングサービスを例示するブロック図である。
図3】いくつかの実施形態に係る、仮想コンピュータリソースをスケジュールするためにローリングリソースクレジットを実施する仮想化ホストを例示するブロック図である。
図4】いくつかの実施形態に係る、仮想計算インスタンスに対するローリングクレジット指標を提供するインターフェースの一例の説明図である。
図5】いくつかの実施形態に係る、仮想コンピュータリソースをスケジュールするためにローリングコンピュータリソースクレジットを実施する様々な方法及び技法を例示する高レベルフロー図である。
図6】いくつかの実施形態に係る、仮想コンピュータに対する処理リソースをスケジュールするためにローリングコンピュータリソースクレジットを実施する様々な方法及び技法を例示する高レベルフロー図である。
図7】いくつかの実施形態に係る、仮想計算インスタンスへの作業要求に対する利用可能なリソースクレジットに従って、物理的なコンピュータリソースの活用を低下または上昇する様々な方法及び技法を例示する高レベルフロー図である。
図8】いくつかの実施形態に係る、仮想コンピュータリソースをスケジュールするためにローリングクレジットリソースを実施する仮想計算インスタンスに対するデータ指標を記録及び活用する様々な方法及び技法を例示する高レベルフロー図である。
図9】いくつかの実施形態に係る、コンピューティングシステムの一例を例示するブロック図である。
【発明を実施するための形態】
【0004】
本明細書では、実施形態がいくつかの実施形態及び説明図に対する例により記載されるが、実施形態は記載される実施形態または図面に限定されないことを当業者は認識するであろう。図面及びその詳細な記載は、開示される特定の形態に実施形態を限定する意図はなく、それとは逆に、添付の請求項で定義される精神及び範囲に入る全ての修正、均等物及び代替案を含める意図があることを理解されたい。本明細書で使用される見出しは、本明細書を構成する目的でのみ使用され、明細書または請求項の範囲を限定するために使用されることを意図しない。本出願を通して使用される単語「may」は、義務的な意味(つまり、「するべきである」という意味)ではなく、許容的な意味(つまり、「する可能性がある」という意味)で使用される。同様に、単語「include」、「including」、及び「includes」は「含む」ことを意味するが、その対象を限定しない。
【0005】
本明細書に記載のシステム及び方法は、いくつかの実施形態に係る、仮想コンピューティングリソースをスケジュールするためにローリングリソースクレジットを実施し得る。仮想コンピューティングリソースを実施する異なるクライアントは異なるリソース要求を有する。例えば、あるクライアントの作業量は予測不可能であり、固定リソースを効率的に活用しない可能性がある。仮想コンピューティングリソースをスケジュールするためにローリングリソースクレジットを実施する仮想計算インスタンスは、活用されていない固定リソースを無駄にすることなく、リソースの動的な活用を提供し、柔軟性のある高性能を提供し得る。リソースクレジットは個別の仮想計算インスタンスに対して蓄積される。仮想計算インスタンスが高性能で作業を行う必要がある場合、リソースクレジットが作業に適用されも良く、これによりリソースクレジットの持続期間中に基礎を成す物理的なリソースのフル活用を効果的に提供する。仮想計算インスタンスがその共有リソースより少ないリソースを使用している場合(例えば、実行中の作業がほとんどない、または全く無い)、クレジットが取得され、後続タスクのために使用されても良い。リソースは、様々な実施形態では、管理された物理的なコンピュータリソースにより実施または実行される任意の仮想化されたコンピュータリソースであり得る。リソースは、処理リソース、通信もしくはネットワーキングリソース及びストレージリソースを含むが、これらに限定されない。
【0006】
仮想計算インスタンスは仮想コンピューティングリソースをスケジュールするためのローリングリソースクレジットを実施しても良く、限定期間に低価格で応答性及び高性能を提供する。図1はいくつかの実施形態に係る、仮想計算インスタンスに対するローリングリソースクレジット残量を例示するグラフである。グラフ100は、スケジューリングのためにローリングリソースクレジットを実施する計算インスタンスに対する、リソースクレジット使用量及びリソースクレジット残量の両方を例示する。初期のリソースクレジット残量が提供されても良く110(例えば、30クレジット)、すぐに使用されても良い。いくつかの実施形態では、経時的に、計算インスタンスはローリングリソースクレジット残量限度120に達するまで、より多くのクレジットを蓄積し得る。この限度は、一定時間(例えば、24時間)後に、特定の蓄積されたリソースクレジットを除外することにより実施され得る。いくつかの実施形態では、適用されると、リソースクレジットは特定
の時間(例えば、コンピュータリソースクレジットは中央処理装置(CPU)の1分間のフル活用、30秒間の特定のネットワーキングチャネル、または保証され得る一部の他の使用期間に等しくても良い)に対してリソースのフル活用を提供し得る。リソースクレジットは使用されるとリソースクレジット残量から差し引かれ得る。
【0007】
リソースクレジットを消費すると、仮想計算インスタンスは必要な時に十分なリソース(例えば、CPUコア、ネットワークインターフェースカード機能等)を活用して、高性能を取得し得る。例えば、時間5でのクレジットリソース使用量は時間5でのリソースクレジット残量より少ない。したがって、現在のリソースクレジット残量のうち、タスクを行うのに必要であったリソースクレジットよりも多くのリソースクレジットが消費のために利用可能であったため、時間5で実行される作業は、タスク期間にわたりフル活用で行われた。さらに、さらなるリソースクレジット使用量が示されないため、リソースクレジットは残量限度120に達するまで引き続き繰り越され、次回の大量使用期間(または同じ仮想化ホスト上でホストされる別の計算インスタンスに対する別の作業要求)のためにさらなる物理的なリソースを節約する。タスクを行う際に利用可能なリソースクレジットが無い場合、ベースライン活用保証をさらに適用して、作業要求を行っても良い。いくつかの実施形態では、ベースライン活用保証は、仮想計算インスタンスがクレジットリソース残量のクレジットを全く費やすことなく、リソースを使用することができる時間量であり得る。
【0008】
少なくともいくつかの実施形態では、ベースライン活用保証はリソースクレジット蓄積率に一致し得る。例えば、リソースクレジットが1時間当たりの1分間のフル活用に等しい場合、1時間当たりの6リソースクレジット累積率は60分のうちの6分、つまり1時間に対する10%のリソース活用に等しい。この例では、ベースライン保証は1時間に対する10%のリソース活用となり得る。しかしながら、いくつかの実施形態では、リソースクレジット蓄積率はベースライン保証と無関係の場合があり(例えば、1時間当たり12リソースクレジット蓄積率及び10%のベースライン保証)、これにより、計算インスタンスが、割り当てられたベースライン活用保証を活用する作業要求を送信したとしても、リソースクレジットがリソースクレジット残量のものになることが可能である。前述の例は、リソースクレジット蓄積率及びベースライン性能が実施され得る様々な方法または組み合わせを限定する意図ではないことに留意されたい。
【0009】
仮想コンピュータリソースをスケジュールするためのローリングリソースクレジットは(以下に説明する図2及び図3に例示の通り)同じ仮想化ホストにおいてホストされる複数の仮想計算インスタンスに対して実施され得る。ローリングリソースクレジット残量限度120を実施することは、任意の1つの計算インスタンスが、他のインスタンスに対する作業要求の性能を妨害するのに十分なリソースクレジットを蓄積しないようにし得る。例えば、図1に例示の通り、ローリングリソースクレジット残量限度が144リソースクレジットに設定されると、いずれか1つの仮想計算インスタンスが物理的なコンピュータリソースを独占し得る最大限度は2時間24分(リソースクレジットがリソースの1分間のフル活用に等しいと仮定する)である。
【0010】
前述の記載は計算インスタンスに対するローリングリソースクレジット残量及び使用量の一例を提供するにすぎず、限定する意図はないことに留意されたい。リソースクレジットが使用され得る様々な量に応じて、蓄積率、初期の残量及び残量限度は全て異なり得る。
【0011】
本明細書は次に、仮想コンピューティングリソースプロバイダ概要を含み、仮想コンピューティングリソースプロバイダは、プロバイダネットワークに実施されるネットワークトラフィックポリシに含まれるネットワークエンティティハンドルに対してネットワーク
エンティティ登録を実施し得る。その後、仮想コンピューティングリソースの様々な例が説明され、これは仮想コンピューティングリソースプロバイダ実施の一部として利用され得る、異なる構成要素/モジュールまたは構成要素/モジュールの配置を含む。プロバイダネットワークに実施されるネットワークトラフィックポリシに含まれるネットワークエンティティハンドルに対する、ネットワークエンティティ登録を実施するための多数の異なる方法及び技法がその後説明され、そのいくつかは添付のフロー図で例示される。最後に、様々な構成要素、モジュール、システム、デバイス及び/またはノードが実装され得るコンピューティングシステムの一例の記載が提供される。様々な例は明細書を通じて提供される。
【0012】
図2は、いくつかの実施形態に係る、仮想コンピューティングリソースをスケジュールするためのローリングリソースクレジットを実施する仮想計算インスタンスを提供するネットワークベースの仮想コンピューティングサービスを例示するブロック図である。ネットワークベースの仮想コンピューティングサービス200は企業または公的機関などのエンティティにより設定され、インターネット及び/または他のネットワークを介して、アクセス可能な1つ以上のサービス(様々な種類のクラウドベースのコンピューティングサービスまたはストレージサービスなど)をクライアント202に提供しても良い。ネットワークベースの仮想コンピューティングサービス200は、ネットワークベースの仮想コンピューティングサービス200により供給されるインフラストラクチャ及びサービスを実施及び分散するために必要とされる、物理的及び/または仮想化されたコンピュータサーバ、ストレージデバイス、ネットワーキング装置の集合などの様々なリソースプールをホストする無数のデータセンタを含み得る。いくつかの実施形態では、ネットワークベースの仮想コンピューティングサービス200はコンピューティングリソースを提供し得る。これらのコンピューティングリソースは、いくつかの実施形態では、仮想計算インスタンスなどの「インスタンス」234と呼ばれる単位でクライアントに供給され得る。
【0013】
様々な実施形態では、ネットワークベースの仮想コンピューティングサービス200は、ネットワークベースの仮想コンピューティングサービス200によりクライアント202に提供されるコンピューティングリソース供給物を管理するために、制御プレーン210を実装し得る。制御プレーン210はコンピューティングリソース供給物を管理するために様々な異なる構成要素を実装し得る。制御プレーン210は種々のサーバ、ノードまたは他のコンピューティングシステムもしくはデバイス(図9に関して以下に記載するコンピューティングシステム1000など)にわたり実装され得る。所与の構成要素の1つ以上のインスタンスが存在し得る場合、本明細書におけるその構成要素に対する言及は、単数または複数のいずれかを指し得ることが留意される。しかしながら、いずれかの形態の使用は他方を排除することを意図しない。
【0014】
少なくともいくつかの実施形態では、制御プレーン210はインターフェース212を実装し得る。インターフェース212は、ネットワーク260を介して受信される着信要求を処理し、さらなる処理のために要求を適切な構成要素に導くように構成され得る。少なくともいくつかの実施形態では、インターフェース212はネットワークベースのインターフェースでも良く、(例えば、管理制御パネルもしくはウェブサイトの一部としての)グラフィカルインターフェース及び/または(例えば、様々なアプリケーションプログラミングインターフェース(API)コマンドを処理する)プログラマチックインターフェースとして実装されても良い。様々な実施形態では、インターフェース212は、リソース管理214、予約管理216、リソース監視218及び請求220などの様々な他の構成要素に要求を発信するフロントエンドモジュールまたは構成要素の一部として実装され得る。クライアント202は、様々な実施形態では、リソースを直接的に整備したり、起動したり、または構成したりし得ないが、例示された構成要素(または例示されない他の構成要素、機能もしくはサービス)が要求されたアクションを行い得るよう、要求を制
御プレーン210に送信し得る。
【0015】
制御プレーン210はリソース管理モジュール214を実装し、プロバイダネットワークにより供給されるコンピューティングリソースへのアクセス、コンピューティングリソースの容量、コンピューティングリソースへのマッピング及びコンピューティングリソースの他の制御もしくは命令を管理し得る。少なくともいくつかの実施形態では、リソース管理モジュール214は容量予約(例えば、予約された計算インスタンス)のための直接販売及び第三者再販市場の両方を提供し得る。例えば、リソース管理モジュール214は、インターフェース212を介して、クライアント202が初期の販売マーケットプレイスまたは再販マーケットプレイスのいずれかからコンピューティングリソースの容量を把握し、選択し、アクセス権を購入及び/または予約することを可能にしても良く、これはウェブページを介して、またはAPIを介して行われる。例えば、リソース管理構成要素は、インターフェース212を介して、異なる利用可能な計算インスタンスの種類のリストを提供しても良く、リストのそれぞれは異なるクレジット蓄積率を備える。追加的に、いくつかの実施形態では、リソース管理モジュール214は、指定された購入量またはスキーム(例えば、一括払い、追加定期支払等)に対して、(インスタンスの種類に対するクレジット蓄積率を介して提供されるクレジットに加えて)購入用クレジットを供給するように構成され得る。例えば、リソース管理モジュール214はクレジット購入要求(例えば、API要求)を受信し、仮想インスタンス残量に購入済みのクレジットを入れるように構成され得る。同様に、リソース管理モジュール214は、特定のインスタンスに対するクレジット蓄積率を増加する要求を処理するように構成され得る。リソース管理214は、さらに一連の柔軟なリソース予約、制御及びインターフェース212を介したクライアント202に対するインターフェースへのアクセスを供給及び/または実装し得る。例えば、リソース管理モジュール214は、計算インスタンス制御動作/クライアントと使用中のコンピューティングリソースとの相互作用が行われ得るよう、認証情報またはアクセス許可をクライアント202に提供し得る。
【0016】
様々な実施形態では、予約管理モジュール216はインスタンス234の様々な価格スキーム(少なくとも初期の販売マーケットプレイスに対して)を処理するように様々な実施形態で構成され得る。例えば、いくつかの実施形態では、ネットワークベースの仮想コンピューティングサービス200は、例えば、期間予約(つまり、予約された計算インスタンス)、オンデマンドのリソース割り当てまたはスポット価格ベースのリソース割り当て等、いくつかの異なる購入モード(本明細書において、予約モードとしてさらに言及され得る)をサポートしても良い。長期予約モードを使用すると、クライアントは、計算インスタンスまたは他のコンピューティングリソースに対して低価格の1回限りの前払いを行ない、1年間または3年間などの指定期間にわたって計算インスタンスを予約し、そのインスタンスに対して低価格の時間当たりの料金を支払うことができ、クライアントは、予約期間にわたって利用可能な予約されたインスタンスを有することが保証されるだろう。オンデマンドモードを使用すると、クライアントは、長期間の約束または前払いをすることなく、1時間(または何らかの適切な時間単位)毎に容量に対して支払うことが可能である。スポット価格モードでは、クライアントは、計算インスタンスまたは他のコンピューティングリソースの特定の種類に対して支払うことを望んでいる、単位時間当たりの最高価格を指定することが可能であり、クライアントの最高価格が、少なくとも部分的に供給及び需要により決定された動的スポット価格を超えた場合、その種類のリソースがクライアントに提供されることになる。
【0017】
要求されたリソースの種類の供給が需要を超えた期間中、スポット価格は、オンデマンドモードの価格よりもはるかに低くなり得る。いくつかの実装において、スポット価格がクライアントにより指定された最高の指値を上回って増加した場合、リソース割り当ては中断されても良く、すなわち、以前にクライアントに割り当てられていたリソースインス
タンスは、リソース管理モジュール330により回収されても良く、より高い価格を支払うことを望んでいる誰か他のクライアントに割り当てられても良い。リソース容量予約は、さらに制御プレーンデータストア222を更新し、所有権、クライアント使用、クライアントアカウントまたは他のリソース情報の変更を反映し得る。
【0018】
様々な実施形態では、制御プレーン210はリソース監視モジュール218により実装され得る。リソース監視モジュール218は、異なる仮想コンピュータリソース、クライアント、ユーザアカウント及び/または特定のインスタンスのために消費される、様々なコンピューティングインスタンス(例えば、リソースクレジット残量、リソースクレジット消費)の消費を追跡し得る。少なくともいくつかの実施形態では、リソース監視モジュール218は一群の全ての仮想化ホスト230及びインスタンス234の様々な異なるシナリオを停止、解決、管理、または別の方法で応答するための様々な管理アクションを実施し得る。リソース監視モジュール218は、クライアント202(複数可)にクライアントが構成したアラームの管理ならびに様々な指標データへのアクセスをさらに提供し得る。以下に詳細に説明される図8は、リソース監視モジュールが実施し得る様々な技法のさらなる例を提供する。
【0019】
様々な実施形態では、制御プレーン210は請求管理モジュール220を実装し得る。請求管理モジュール220は請求イベント(例えば、特定の日付、時間、使用量、請求額に対する要求または特定のユーザアカウントもしくはユーザアカウントにリンクされた支払アカウントに対する請求額を生成する任意の他の要因)を検出するように構成され得る。請求イベントの検出に応えて、請求管理モジュールはユーザアカウントまたはユーザアカウントにリンクされた支払アカウントに対する請求額を生成するように構成され得る。
【0020】
仮想計算インスタンス234は、例えば、指定された計算能力(CPUの種類及び数、メインメモリサイズ等を示すことにより指定されても良い)、及び指定されたソフトウェアスタック(例えば、これによりハイパーバイザの上位で稼動することができる、オペレーティングシステムの特定のバージョン)を備える1つ以上のサーバを含み得る。異なる実施形態において、ネットワークベースの仮想コンピューティングサービス200の計算インスタンス234を実装するために、汎用または専用コンピュータサーバ、ストレージデバイス、ネットワークデバイスなどを含む、多数の異なる種類のコンピューティングデバイスが単独または組み合わされて使用されても良い。いくつかの実施形態では、インスタンスクライアント202または他の任意の他のユーザはネットワークトラフィックを計算インスタンス234に導くように構成(及び/または許可)され得る。
【0021】
計算インスタンス234は種々の異なるプラットフォームを動作または実装しても良く、このようなプラットフォームとしては、アプリケーションサーバインスタンス、Java(登録商標)仮想マシン(JVM)、汎用もしくは専用オペレーティングシステム、Ruby、Perl、Python、C、C++などの様々なインタープリタ方式もしくはコンパイラ方式のプログラミング言語をサポートするプラットフォームなど、または高性能コンピューティングプラットフォームなどがあり、例えば、クライアント202がインスタンス234にアクセスする必要なく、クライアント202アプリケーションを行うのに好適である。様々な異なる種類の計算インスタンスがあり得る。少なくともいくつかの実施形態では、仮想コンピュータリソース動作をスケジュールするためのローリングリソースクレジット残量を実施する計算インスタンスがあり得る。この種類のインスタンスはリソースクレジットに基づき実行し、ここでリソースクレジットはインスタンスが物理的なリソースの作業を行うのに費やすことができる時間(例えば、物理的なCPUの処理時間、ネットワーク通信チャネルを活用する時間等)を表す。インスタンスがコンピュータリソースに対して有するリソースクレジットが多いほど、物理的なリソースが作業を実行するのに費やし得る時間が長くなる(性能が増加する)。リソースクレジットはインスタ
ンスの起動時に提供されても良く、活用時間(例えば、CPU―分などのCPU時間)として定義されても良く、活用時間は、あるインスタンスの仮想リソースが基礎を成す物理的なリソースのタスク実行に費やすことができる時間を表し得る。
【0022】
様々な実施形態では、リソースクレジットはベースライン活用保証を超過した時間またはリソースの活用を表し得る。例えば、計算インスタンスはリソースに対して10%のベースライン活用保証を有しても良く、したがって、リソースクレジットはリソースの活用が10%を超えるよう増加しても良い。残りのリソースクレジットが無い場合でも、やはり10%のベースラインで計算インスタンスに活用が保証され得る。クレジット消費は、インスタンスがベースライン性能を超える作業を行うために物理的なリソースを必要とする際にのみ発生し得る。いくつかの実施形態では、計算インスタンスがリソースのベースライン活用保証を消費する作業要求を送信するかどうかに関わらず、クレジットは更新されるか、またはリソースクレジット残量に蓄積され得る。
【0023】
コンピュータリソースをスケジュールするためのローリングリソースクレジットを実施する異なる種類の計算インスタンスが供給され得る。異なる計算インスタンスは、特定の数の仮想CPUコア、メモリ、キャッシュ、ストレージ、ネットワーキングならびに任意の他の性能特性を有し得る。計算インスタンスの構成は、その位置、特定のデータセンタにおいては、利用可能ゾーン、地理、位置等及び(予約計算インスタンスの場合は)予約期間の長さをさらに含み得る。異なる計算インスタンスは異なる仮想リソースに対して異なるリソースクレジット蓄積率を有しても良く、計算インスタンスのために維持されるリソースクレジットの現在の残量に蓄積する多数のリソースクレジットであっても良い。例えば、いくつかの実施形態では、計算インスタンスのある種類は1つの仮想コンピュータリソースに対して1時間当たり6クレジットを蓄積しても良く、一方で別の種類の計算インスタンスは同じ種類の仮想コンピュータリソースに対して1時間当たり24クレジットを蓄積しても良い。別の例では、同じ仮想計算インスタンスの1つのリソース(例えば、vCPU)に対するリソースクレジット蓄積率は、別の仮想コンピュータリソース(例えば、ネットワーキングチャネル)に対するリソースクレジット蓄積率とは異なり得る。いくつかの実施形態では、ある仮想計算インスタンスにより使用される複数の異なる仮想コンピュータリソースに対して、その仮想計算インスタンスのために複数の異なるリソースクレジット残量が維持され得る。ベースライン性能保証は、仮想コンピュータリソースのそれぞれに対してさらに実施されても良く、ベースライン性能保証は、異なるインスタンス種類に対して、ならびに各それぞれの仮想コンピュータリソースに対して異なり得る。
【0024】
ベースライン性能保証は、いくつかの実施形態では、リソースクレジット蓄積率と共に含まれ得る。したがって、一例では、インスタンス種類は、処理のための特定のリソースクレジット蓄積率及び保証されたベースライン性能、ならびにネットワーキングチャネルのための別の特定のリソースクレジット蓄積率及び保証されたベースライン性能率を含み得る。このように、ネットワークベースの仮想コンピューティングサービス200は、異なる仮想コンピュータリソースに対する異なる組み合わせのリソースクレジット蓄積率及びベースライン保証を備える、多くの異なる種類のインスタンスを供給し得る。これらの異なる構成は、リソースクレジット蓄積率及びベースライン性能率ならびに様々な物理的及び/または仮想容量に従って、別々に価格設定され得る。いくつかの実施形態では、仮想計算インスタンスは1時間毎の価格で予約及び/または活用され得る。一方、長期予約インスタンス構成は異なる価格スキームを活用しても良いが、やはりクレジット蓄積率及びベースライン性能保証を含む。
【0025】
図2に例示する通り、いくつかの実施形態では、仮想化ホスト230a、230b~230nなどの仮想化ホスト230は複数の計算インスタンス234を実装及び/または管理しても良く、図9に関して以下に記載されるコンピューティングシステム1000など
の1つ以上のコンピューティングデバイスであっても良い。仮想化ホスト230は仮想化管理モジュール232a、232b~232nなどの仮想化管理モジュール232を含んでも良く、多数の異なるクライアントがアクセス可能な仮想マシンまたは計算インスタンス234をインスタンス化及び管理することができる。仮想化管理モジュール232は、例えば、オペレーティングシステムのハイパーバイザ及び管理インスタンスを含んでも良く、いくつかの実装では、「ドメインゼロ」または「dom0」と呼ばれ得る。dom0オペレーティングシステムは、クライアントによりアクセスすることができず、その代りに計算インスタンス234が動作するが、計算インスタンス234に導かれる、または計算インスタンス234から導かれるネットワークトラフィックの処理を含め、ネットワークプロバイダの様々な管理または制御プレーン動作を代わりに担う。
【0026】
クライアント202(複数可)は要求をネットワークベースの仮想コンピューティングサービス200に送信するように構成可能な、任意の種類のクライアントを包含し得る。例えば、所与のクライアント202は好適なバージョンのウェブブラウザを含み得るか、あるいはウェブブラウザにより提供される実行環境への拡張として、または実行環境内で実行するように構成されるプラグインモジュールもしくは他の種類のコードモジュールを含んでも良い。代替的には、クライアント202はダッシュボードアプリケーション(またはダッシュボードアプリケーションのユーザインターフェース)、メディアアプリケーション、オフィスアプリケーションまたは様々な動作を行うために計算インスタンス234を利用し得る任意の他のアプリケーションなどのアプリケーションを包含しても良い。いくつかの実施形態では、係るアプリケーションは、あらゆる種類のネットワークベースのデータの完全なブラウザサポートを必ずしも実装することなく、ネットワークベースのサービス要求を生成及び処理するのに十分なプロトコルサポート(例えば、好適なバージョンのハイパーテキスト転送プロトコル(HTTP)に対してのサポート)を含んでも良い。いくつかの実施形態では、クライアント202は、リプリゼンテーショナル・ステート・トランスファ(REST)型のネットワークベースのサービスアーキテクチャ、ドキュメントまたはメッセージベースのネットワークベースのサービスアーキテクチャ、または別の好適なネットワークベースのサービスアーキテクチャに従って、ネットワークベースのサービス要求を生成するように構成されても良い。いくつかの実施形態では、クライアント202(例えば、計算クライアント)は、計算インスタンス324により提供される計算リソースを活用して、クライアント202上でのアプリケーション実装に透過的な方式で、計算インスタンス234へのアクセスを提供するように構成されても良い。
【0027】
クライアント202はネットワーク260を介してネットワークベースのサービス要求をネットワークベースの仮想コンピューティングサービス200に伝送しても良い。様々な実施形態では、ネットワーク260は、クライアント202とネットワークベースの仮想コンピューティングサービス200との間のネットワークベース通信を構築するために必要なネットワーキングハードウェア及びプロトコルの任意の好適な組み合わせを包含し得る。例えば、ネットワーク260は、概して、集合的にインターネットを実装する様々な電気通信ネットワーク及びサービスプロバイダを包含し得る。ネットワーク260は、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)などのプライベートネットワーク、ならびに公衆またはプライベート無線ネットワークをさらに含んでも良い。例えば、所与のクライアント202及びネットワークベースの仮想コンピューティングサービス200の両方が、それぞれ、独自の内部ネットワークを有する企業内で整備されても良い。係る実施形態では、ネットワーク260は、所与のクライアント202とインターネットとの間、ならびにインターネットとネットワークベースの仮想コンピューティングサービス200との間のネットワーキングリンクを構築するために必要なハードウェア(例えば、モデム、ルータ、スイッチ、ロードバランサ、プロキシサーバ等)及びソフトウェア(例えば、プロトコルスタック、会計ソフトウェア、ファイアウォール/セキュリティソフトウェア等)を含んでも良い。いくつかの実施形態では、クラ
イアント202は、公衆インターネットよりもむしろプライベートネットワークを使用して、ネットワークベースの仮想コンピューティングサービス200と通信しても良いことが留意される。
【0028】
図3はいくつかの実施形態に係る、仮想コンピュータリソースをスケジュールするためにローリングリソースクレジットを実施する仮想化ホストを例示するブロック図である。上記の図2で述べる通り、仮想化ホストは1つ以上の仮想計算インスタンスのためのホストプラットフォームとして機能し得る。これらの仮想計算インスタンスは仮想化されたハードウェアインターフェースを活用し、様々なタスク、機能、サービス及び/またはアプリケーションを行い得る。これらのタスクの実行の一部として、仮想計算インスタンスは、それぞれの計算インスタンスに対するそれぞれの物理的なコンピュータリソース上で作業を行うために、仮想化ホストで実装される仮想化されたコンピュータリソース(例えば、物理的なCPU(複数可)に対する仮想プロキシとして機能し得る仮想中央処理装置(複数可)(vCPU))を活用し得る。
【0029】
図3は仮想化ホスト310を例示する。仮想化ホスト310は、計算インスタンス330a、330b、330c~330nをホストし得る。少なくともいくつかの実施形態では、計算インスタンス330は同じ種類の計算インスタンスであっても良い。図3では、計算インスタンス330は仮想コンピュータリソースをスケジュールするためのローリングリソースクレジットを実施する計算インスタンスである。仮想化ホスト310は、仮想計算インスタンス330と物理的なコンピューティングリソース(複数可)340との間の様々なインターフェース(例えば、様々なハードウェア構成要素、プロセッサ、入出力デバイス、ネットワーキングデバイス等)を処理し得る仮想化管理モジュール320をさらに実装し得る。
【0030】
図3では、仮想化管理モジュール320はローリングリソースクレジット残量スケジューラ324を実装し得る。ローリングリソースクレジット残量スケジューラ324はメタスケジューラとして機能しても良く、それぞれの計算インスタンス330に対して全てのリソースクレジット残量を管理、追跡、適用、差し引き、及び/または別の方法で処理する。様々な実施形態では、ローリングリソースクレジット残量スケジューラ324は計算インスタンスから仮想計算リソース作業要求332を受信するように構成され得る。各作業要求332は作業を送信した計算インスタンスに対応する仮想コンピュータリソースに向けて導き得る。各要求332に対し、ローリングリソースクレジット残量スケジューラは、要求している計算インスタンス330に対する現在のリソースクレジット残量を判定し、作業要求を行う際にリソースクレジットを適用するスケジューリング命令を生成するように構成され得る。いくつかの実施形態では、ローリングリソースクレジット残量スケジューラ324はスケジューリング命令の実行を行うか、スケジューリング命令の実行を命令し、実行対象の基礎を成す物理的なコンピューティングリソース340に作業要求を導くか、または送信し得る。例えば、いくつかの実施形態では、異なるハードウェアキューが実施され、ローリングリソースクレジット残量スケジューラ324は適用されたリソースクレジット(例えば、適用されたリソースクレジットの時間量に従ったタスクのキューイング)に従って、キューの作業要求を行うためのタスクを配置するために使用され得る。しかしながら、いくつかの実施形態では、リソーススケジューリング命令は仮想計算リソーススケジューラ322に送信されても良く334、仮想計算リソーススケジューラ322は仮想化ホスト310で実装され得る、CPU(複数可)などの物理的なリソース340に対するスケジューラであっても良い。ローリングリソースクレジット残量スケジューラ324は、リソースクレジットを適用し、リソースクレジットを差し引き、及び/または別の方法で作業要求が適用されたリソースクレジットに従って行われることを保証するために、図5図7に関して以下に記載される様々な技法を行うように構成されても良い。
【0031】
いくつかの実施形態では、スケジューリング命令を受信することに応えて、仮想計算リソーススケジューラ322は、様々な実施形態では、作業要求336に対する物理的なスケジューリング命令を物理的なCPU(複数可)などの物理的なコンピューティングリソースに提供し得る。少なくともいくつかの実施形態では、仮想計算リソーススケジューラ322は、1つ以上のCPUに対するクレジットベースのスケジューラであっても良い。
【0032】
ローリングリソースクレジット残量スケジューラ324はクレジット残量及び使用量指標362を監視エージェント326にさらに報告しても良く、監視エージェント326は、次にこれらの指標を任意の他のホスト指標364(健全性情報等)と共にリソース監視モジュール218に報告しても良い。
【0033】
図2に関して上記の通り、仮想コンピューティングリソースプロバイダに対するネットワークベースのインターフェースが図式化して実装され得る。図4はいくつかの実施形態に係る、仮想計算インスタンスに対するローリングクレジット指標を提供するインターフェースの一例の説明図である。ローリングリソースクレジットインターフェース400は様々なクライアントにアクセス可能なネットワークベースのサイトとして実装され得る。いくつかの実施形態では、ローリングリソースクレジットインターフェース400は、APIなどのプログラマチックインターフェースを介して、ネットワークベースの仮想コンピューティングリソースプロバイダと通信し得る、ダウンロード可能なアプリケーション、またはローカルに実行されるアプリケーションとして実装され得る。
【0034】
エリア410は、指標データが表示され得る様々なインスタンスのリストを例示する。セレクタ412a、412b、412c、414a、414b及び414cなどの様々な異なるユーザインターフェース要素を実装して、どの物理的なリソース及び特定のインスタンスデータを読み出すべきかを示しても良い。エリア420は、表示用に選択され得る異なる種類の指標データを例示する。例えば、いくつかの実施形態では、特定のインスタンスに対するリソースクレジット残量指標422、及び選択されたインスタンスによるリソースクレジット使用量424を選択しても良い。いくつかの実施形態では、特定のインスタンスに対するクレジット更新率が例示され得る。エリア430はインスタンス指標表示エリアを表し得る。読み出されたインスタンス指標は様々な形式(例示の線グラフ、図、表または任意の他の図式またはテキストデータ表現技法など)で表示されても良い。エリア440は表示された指標データの形式を変更するための異なるユーザインターフェース要素を表し得る。例えば、表示設定444が選択されると、ポップウィンドウまたはダイアログボックスが開き、これによりデータを表示する時間範囲などの異なる表示設定を修正することが可能になり得る。表示指標要素442が選択されると、行われた変更が実行され、インスタンス指標表示430に表示されるデータを生成または再生成し得る。エクスポート指標446要素はユーザにより指定された場所にダウンロードまたは記憶される未処理の指標データを抽出するための様々な機構を提供するように構成され得る(例えば、ファイルダイアログウィンドウを開く)。ツール要素448は、指標データを基に、様々な異なるツール、分析または他の推奨エンジンを実行するように選択可能であり得る。例えば、インスタンス種類を(例えば、より大きいまたはより小さいバースト処理インスタンスに)変更するかどうかを推奨するツールが選択され得る。
【0035】
図4の例示及び添付の記載はグラフィカルユーザインターフェースの一例を提供することを意図するにすぎないことに留意されたい。グラフィカルインターフェースを含まない、様々な他の構成及びインターフェースが実装されても良く、したがって、前述の例は限定を意図するものではない。例えば、上記に説明したデータ、指標または他の情報に対する様々な要求がプログラマティックインターフェース(API)を介して仮想コンピューティングリソースプロバイダから要求されても良く、未処理のデータが要求中のクライア
ントに戻されても良い。例えば、クライアントが仮想コンピューティングリソースプロバイダのAPIを介して、特定の計算インスタンスに対するクレジット使用量及び更新率を要求した場合、そのクライアントのための指標または追跡情報がクライアントに提供されても良い。
【0036】
図2図4に関して上記に説明した仮想コンピューティングリソースをスケジュールするためにローリングリソースクレジットを実施する例は、ネットワークベースのコンピューティングリソースサービスにより供給される仮想コンピューティングリソースに関して与えられた。仮想コンピューティングリソースの様々な他の種類または構成はこれらの技法を実施しても良く、これらの技法はネットワークベースのサービスの一部として供給されても良く、または供給されなくても良い。例えば、他の仮想コンピューティングリソースは、より短い期間でバースト処理または他のバースト活用に高性能レベルで利用可能であることを望み、例えば、仮想コンピューティングリソースをスケジュールするためのローリングリソースクレジットを実施し得る。図5はいくつかの実施形態に係る、仮想コンピュータリソースをスケジュールするためにローリングリソースクレジットを実施する様々な方法及び技法を例示する高レベルフロー図である。これらの技法は、図2図4に関して上記に記載したネットワークベースの仮想コンピューティングサービスの様々な構成要素または他の仮想コンピューティングリソースホストを使用して実施され得る。
【0037】
510に示す通り、1つ以上の仮想コンピュータリソースに対する作業要求が仮想計算インスタンスに対する仮想化ホストで受信され得る。要求は仮想コンピュータリソース(例えば、処理、ネットワーキング、ストレージ等)を識別し得る。作業要求は作業要求を完了するために行われる作業量またはタスク量を識別し得る。
【0038】
520に示す通り、仮想コンピュータリソースそれぞれ計算インスタンスに対する現在のリソースクレジット残量が判定され得る。リソースクレジット蓄積率は、様々な実施形態では、期間中に未使用である現在のリソースクレジット残量に追加されるいくつかのリソースクレジットであり得る。例えば、リソースクレジット蓄積率が1時間当たり12リソースクレジットに設定されると、その後、その時間中に消費されない全てのリソースクレジットが現在のリソースクレジット残量の合計に追加され得る(例えば、12のうち9が使用されていないと、9が追加され得る)。いくつかの実施形態では、リソースクレジット蓄積率は仮想計算インスタンスに対するベースライン活用または性能保証に一致し得る。現在のリソースクレジット残量が高いほど、仮想計算インスタンスが仮想コンピュータリソースを使用してより高いレベルの性能を持続することができる時間がより長くなり得る。複数の異なるリソースクレジット残量が異なる仮想コンピュータリソースに対して実施されても良いため、判定されたクレジットリソース残量は作業要求を行う仮想コンピュータリソースに固有であり得る。
【0039】
少なくともいくつかの実施形態では、リソースクレジット蓄積は特定の期間に限定され得る。したがって、リソースクレジット蓄積期間より前に蓄積された未使用のリソースクレジットは、現在のリソースクレジット残量に含むことはできない。例えば、いくつかの実施形態では、リソースクレジット蓄積時間は24時間であっても良く、所与の時点の前の24時間より以前に蓄積された任意の未使用のリソースクレジットを除外する。様々な実施形態では、現在のリソースクレジット残量に利用可能な少なくとも1つのリソースクレジットは、現在の期間の前の期間から繰り越される。
【0040】
530に示す通り、スケジューリング命令を生成して、1つ以上のリソースクレジットを適用することに少なくとも部分的に基づき、作業要求を行っても良い。したがって、スケジューリング命令は、いくつかの実施形態では、仮想コンピュータリソース(複数可)に対して、または仮想コンピュータリソース(複数可)としての作業要求を行う基礎を成
す物理的なコンピュータリソース(複数可)が活用される継続期間を指定しても良い。いくつかの実施形態では、生成されたスケジューリング命令は、物理的なコンピュータリソース(複数可)に対するタスクまたはハードウェアキューとして実施されても良い。いくつかの実施形態では、別のスケジューラまたは仮想コンピュータリソースドライバもしくはマネジャが命令を、入力、パラメータ及び/または他の情報として受信しても良く、同時に物理的なリソース(複数可)での作業要求の実行を命令する。以下に説明する図7は、リソースクレジットが作業要求を行うのに利用不可能な際に利用可能なリソースクレジットを適用するため、ならびにシナリオを処理するための様々な技法を記載する。540に示す通り、適用されたリソースクレジット(複数可)を差し引くために、現在のリソースクレジット残量が更新され得る。
【0041】
図5に記載の様々な要素は、いくつかの実施形態では、異なる物理的なリソースに依存する異なる仮想コンピュータリソースに対して作業要求を行うために、複数回繰り返されても良いことに留意されたい。追加的に、要素の異なる並び替えが行われても良い。したがって、例示及び上記の説明は限定を意図するものではない。
【0042】
図6はリソースを処理するために、図5に関して上記に記載した様々な技法を行うための一例を例示する。610に示す通り、仮想計算インスタンスの1つ以上の仮想中央処理装置(vCPU)に対する作業要求は、仮想計算インスタンスをホストする仮想化ホストのための仮想化マネジャで受信され得る。作業要求は仮想計算インスタンスの1つ以上のvCPUにより行われる特定のプロセス、タスクまたは他のアクションを対象としても良い。例えば、特定のプロセスは、仮想計算インスタンスにより行われるか、実行される特定のプログラムまたはアプリケーションを実施する、1つ以上の命令を実行することであっても良い。作業要求は、いくつかの実施形態では、使用される処理の負荷または処理量を示し得る。
【0043】
620に示す通り、リソースクレジット蓄積率に従ってアイドル状態のvCPU期間に対してリソースクレジットを蓄積する計算インスタンスに対する現在のリソースクレジット残量が判定されても良い。上記の通り、リソースクレジット蓄積率は、様々な実施形態では、期間中にアイドル状態である仮想インスタンスに対して現在のリソースクレジット残量に追加されるいくつかのリソースクレジットであり得る。例えば、リソースクレジット蓄積率が1時間当たり12リソースクレジットに設定されると、その後、その時間中に消費されない全てのリソースクレジットが現在のリソースクレジット残量の合計に追加され得る(例えば、12のうち9が使用されていないと、9が追加され得る)。いくつかの実施形態では、リソースクレジット蓄積率は仮想計算インスタンスに対するベースライン活用または性能保証に一致し得る。例えば、仮想計算インスタンスに対するベースライン活用または性能保証が1時間の期間で10%の場合、仮想計算インスタンスは物理的なCPU(複数可)上で6分間の独占的な処理時間を有すると言えるだろう。これらの6分が全く使用されないか、またはこれらの6分の一部分のみが使用される場合、残りの分数が次の期間(例えば、次の1時間)に効果的に繰り越され得る。物理的なCPUが要求された作業を行う際にリソースクレジットを消費し得るため、現在のリソースクレジット残量が高いほど、仮想計算インスタンスがより高いレベルの性能を持続することができる時間がより長くなり得る。
【0044】
630に示す通り、いくつかの実施形態では、スケジューリング命令を生成して、判定された現在のリソースクレジット残量に少なくとも部分的に基づき、作業要求を行っても良い。スケジューリング命令は、1つ以上の物理的な中央処理装置(CPU)に対するタスクまたは作業をスケジュールするスケジューラに送信される形式で生成され得る。これらのCPU(複数可)は、上記に説明の通り、仮想化ホストがそれ自体のvCPU(複数可)に命令する作業要求の実際の処理を行い得る。命令自体は現在の期間に対して物理的
なCPU(複数可)の活用を増加するために、リソースクレジット(利用可能な場合)を適用するように構成され得る。リソースクレジットは物理的なCPUが仮想計算ホストにより独占的に活用され得る作業量または時間を表し得る。したがって、命令は、スケジューラが適用されたリソースクレジットに等しいフル活用の時間を確実にスケジュールするように構成され得る。例えば、物理的なCPU(複数可)に対するスケジューラは、特定の仮想計算インスタンスに対する作業要求をどのように処理すべきかを命令する、異なるパラメータを受信するように構成され得る。これらのパラメータは、タイムスライス、優先度、比例分配、会計期間及び/または容量のサイジングを含み得るが、これに限定されない。少なくともいくつかの実施形態では、スケジューラは比例的で公平な分配スケジューラを提供するクレジットベースのスケジューラであっても良い。図7に関して以下に説明する通り、現在のリソースクレジット残量のリソースクレジットが作業要求の完了の前に使い果たされると(または作業要求の実行の開始時に無い場合)、生成された命令は、ベースライン性能要件(例えば、10%、20%または40%のCPU活用)に従って作業要求を実行するか、または作業要求の性能を徐々に低下させ、特定の期間の経過後にベースライン性能要件に等しくするように構成され得る。
【0045】
640に示す通り、様々な実施形態では、スケジューリング命令は、その後、物理的なCPU(複数可)のためのスケジューラに送信され得る。スケジューリング命令の送信は、生成されたスケジューリング命令に従って作業要求の性能をスケジュールするために、様々なパラメータ及び/または他の情報を伝達しながら、スケジューラをプログラムでコール、呼び出し、または起動して、作業要求を行わせることを含み得る。50に示す通り、作業要求を行う際に適用されるリソースクレジットを差し引くために、現在のリソースクレジット残量が更新され得る。
【0046】
図6に記載する様々な要素は、いくつかの実施形態では、作業要求の様々なサブ部分を行うために、複数回繰り返され得ることに留意されたい。追加的に、スケジューリング命令をスケジューラに送信する前にリソースクレジット残量を更新するなど、要素の異なる並び替えが行われても良い。したがって、例示及び上記の説明は限定を意図するものではない。
【0047】
上記の通り、リソースクレジットは、特定の仮想計算インスタンスが1つ以上のCPUなどの物理的なリソースを活用し得る時間量を上昇し得る。反対に、リソースクレジットの不足は物理的なリソースの活用を低下させ得る。図はいくつかの実施形態に係る、仮想計算インスタンスに対する作業要求に利用可能なリソースクレジットに従って、物理的なコンピュータリソースの活用を低下または上昇する様々な方法及び技法を例示する高レベルフロー図である。
【0048】
10に示す通り、様々な実施形態では、作業要求を行うためのリソースクレジットを適用するために、仮想計算インスタンスに対する現在のリソースクレジット残量が確認され得る。20からの肯定的な出口により示される通り、適用するリソースクレジットがある場合、リソースクレジットが適用され、40に示す通り、仮想計算インスタンスに対する作業要求を行うための物理的なリソース(複数可)の活用が増加されても良い。リソースクレジットは、以前に述べた通り、作業要求を行うための物理的なリソースを活用する追加時間を提供し得る。例えば、仮想計算インスタンスに対するベースライン処理率が毎時6分(例えば、10%の活用)の場合、追加の1分と同等である追加のコンピューティングリソースクレジットを追加することは、vCPU(複数可)に向かって導かれる作業要求に対してプロセス活用率を毎時7分(例えば、11.667%の活用)に上昇させ得る。
【0049】
しかしながら、20からの否定的な出口により示される通り、適用するリソースクレジットが残っていない場合、作業要求を行うための物理的なリソースの活用は仮想計算インスタンスにおいて仮想リソースに対するベースライン活用率まで徐々に低下され得る。例えば、仮想計算インスタンスに対するvCPUの現在の活用(例えば、25%)が特定の期間(例えば、15分)にわたり拡散して徐々に低下し、次第に活用率を低下し得る。したがって、仮想計算インスタンスにおいてvCPUに対するベースライン活用率が10%の場合、15%の活用は15分の期間にわたる均一な(またはほぼ均一な)拡散率への個別変化に分かれ得る。活用を徐々に低下させることにより、リソースクレジットが不足している仮想計算インスタンス(及び仮想計算インスタンスとの任意のクライアントまたはシステム相互作用)が急激な性能低下に直面することを防ぎ得る。
【0050】
特定のクライアントに対して独占的なリソースを提供する仮想計算インスタンスとは異なり、仮想コンピュータリソースをスケジュールするためのローリングリソースクレジットを実施する仮想インスタンスの動作または使用は、割り当てられたリソースの活用が、仮想計算インスタンスを購入または予約した特定のクライアントのニーズを十分に満たしているかどうかを判定するために分析する必要があり得る。クライアントまたは顧客は、クライアントまたは顧客がローリングリソースクレジットを提供する特定の種類の計算インスタンスを適切に選択したかどうかを判断することを望み得る。例えば、中位のリソースクレジット蓄積率を提供する仮想計算リソースを予約した顧客は、使用されたクレジット及び/またはクレジット残量の履歴を基に、より小さいまたはより大きい仮想計算インスタンスが適切であり得るかどうかを判断することができ得る。図8はいくつかの実施形態に係る、仮想コンピュータリソースをスケジュールするためにローリングクレジットリソースを実施する仮想計算インスタンスに対するデータ指標を記録及び活用する様々な方法及び技法を例示する高レベルフロー図である。
【0051】
810に示す通り、クレジット残量指標は仮想計算インスタンスに対して経時的な現在のリソースクレジット残量に対して記録され得る。現在のリソースクレジット残量は種々の精度レベルで記録され得る。例えば、いくつかの実施形態では、現在のリソースクレジット残量は変化が発生した際(例えば、残量の増加または減少)にのみ記録され得る。別の例では、変化が全く発生しなかったとしても、現在のリソースクレジット残量を記録する間の非常に短い経過期間である。いくつかの実施形態では、クライアント、管理者または他のユーザは、データが記録される時間間隔の精度を調整することができ得る。クレジット残量指標は、データベースなどの永続データストレージシステムに記憶され得る。データ指標は選択的に読出し可能となるよう、データベースに記憶され得る。例えば、データベースに指標を記憶することにより、特定のクエリは、データセット全体の指標を返すことなく、特定の範囲の情報、最小値、最大値または他のより専門的もしくは選択データセットを取得することが可能になり得る。
【0052】
820に示す通り、仮想計算インスタンスに対して経時的に作業要求を行うために、適用されたリソースクレジットに対するクレジット使用量指標が記録され得る。クレジット残量指標と同様に、クレジット使用量指標は異なる時間に記憶もしくは記録されるか、または異なるイベントに応えて記憶もしくは記録され得る。例えば、いくつかの実施形態では、使用値は作業要求を行うための特定のクレジットが適用される度に記録され得る。代替的には、全体の作業要求に適用されるクレジットの量(例えば、30)などの、総計使用量は単一のデータポイントとして表され得る。当然ながら、これらの2つの例の間にある様々な他の組み合わせまたは精度が実装されても良い(例えば、作業要求に対する合計費用である9クレジットのうちの4適用クレジットなど、特定の作業要求の一部を行うために使用される適用されたクレジットを記録する)。上記に説明したクレジット残量指標と同様に、クレジット使用量指標は、選択的に維持されるように記憶され得る。例えば、データベースに指標を記憶することにより、特定のクエリは、データセット全体の指標を返すことなく、特定の範囲の情報、最小値、最大値または他のより専門的もしくは選択デ
ータセットを取得することが可能になり得る。
【0053】
仮想計算インスタンスに対して記録された指標は様々な方法で使用され得る。指標のライブ報告またはストリーミングは、例えば、現在の仮想リソース情報を一瞥で提供するダッシュボードまたは他のユーザインターフェースに新規指標を記録する際に行われ得る。特に、いくつかの実施形態では、クレジット残量及びクレジット使用量に対する指標は、要求に応えてクライアントに提供され得る。例えば、830に示す通り、インターフェースを介して、仮想計算インスタンスのクレジット残量指標及び/またはクレジット使用量指標に対する要求が受信され得る。インターフェース212と同様に、インターフェースはネットワークベースのインターフェース(例えば、インターネットなどのネットワークを介してアクセス可能)であっても良く、様々なグラフィカルまたはプログラム式の通信方法を提供し得る。例えば、いくつかの実施形態では、ネットワークベースのインターフェースはアプリケーションプログラミングインターフェース(API)であっても良い。データに対する特定の要求は、返される特定のデータセットに対する様々な異なるパラメータまたは制約を含むAPIに従って形式化されても良い。同様に、ウェブサイトまたは他の表示可能なアプリケーションのためにホストまたは実装され得るようなグラフィカルインターフェースは、提供される特定の情報(図4に関して上記に説明したものなど)をユーザが選択することを可能にし得る。要求の受信に応えて、840に示す通り、要求された指標(使用量指標の一部か、使用量指標を全く含まないか、使用量指標の全ては、ネットワークベースのインターフェースを介して(例えば、APIまたは要求者の閲覧用に表示される図式もしくはテキストデータに従って形式化された応答を介して)は戻され得る。
【0054】
いくつかの実施形態では、様々な異なる動的ツール、モニタ、構成要素または他のデバイスを使用して指標データを分析しても良い。いくつかの実施形態では、仮想コンピューティングリソースプロバイダネットワークのクライアントは、トリガされ得るアラーム及び通知を定義し、修正し、または設定しても良い。850に示す通り、様々な実施形態では、仮想計算インスタンスに対するクレジット残量指標及びユーザ値指標が監視されても良い。例えば、特定の変化または急激な変化に対して現在の値(例えば、現在のリソースクレジット残量またはクレジット使用値)が評価されても良い。860に示す通り、例えば、リソースクレジット使用量が急増するか、または何らかの閾値を超える際、アラームがトリガされても良い。長期的な傾向及び他の種類の情報は、仮想計算インスタンスに対するクレジット残量及び/またはクレジット使用量指標を監視することから収集されても良い。860に示す通り、例えば、長期的な傾向が低いクレジット使用(または98%などの特定の時間パーセンテージに対して高い現在のリソースクレジット残量を有する)を示す場合、アラームがトリガされても良い。より一般的には、アラームは、様々な方法でクレジット残量指標及び/またはクレジット使用量指標を評価するように構成され得る。860からの否定的な出口に示す通り、アラームがトリガされない場合、クレジット残量指標及び/または使用量指標の監視が継続され得る。
【0055】
860からの肯定的な出口に示す通り、様々な実施形態では、アラームがトリガされると、870に示す通り、トリガされるアラームの通知が提供され得る。例えば、メッセージングシステム(例えば、音声、テキストまたは電子メール)を使用してアラームの所有者/作成者または責任者(仮想コンピューティングリソースプロバイダネットワークのクライアント/顧客であっても良い)にアラームをトリガしたインスタンスに対して通知しても良い。アラームの通知を提供することに加え、いくつかの実施形態では、自動またはプログラム式のアクションを行い、アラームを解消するか、アラームに反応しても良い。例えば、特定の仮想インスタンスに高いリソースクレジット活用が見られる場合、仮想インスタンスにより行われる作業の一部を別の仮想化ホスト上の別の仮想インスタンスにシフトして、特定の処理を行う仮想計算インスタンスの数を拡大しても良い。
【0056】
記録されたリソースクレジット残量指標及び/またはリソースクレジット使用量指標を個別の仮想コンピュータインスタンスベースでクライアントまたはその他に提供することに加え、ネットワークベースの仮想コンピューティングサービスプロバイダあるいは他の実装者、オペレータ、管理者または他の制御システムもしくはエージェントは、ネットワークベースの仮想コンピューティングリソースプロバイダの動作及び性能への全体的な洞察力を有するクレジット残量指標及び/またはリソースクレジット使用量指標の総括的な考察を見出し得る。
【0057】
例えば、いくつかの実施形態では、システム管理者、制御システムまたは他の構成要素は、特定の仮想計算インスタンスを検出するために熱または競合管理を実施しても良く、特定の仮想計算インスタンスとは、過剰なトラフィックを受信しているため、クライアントに対するサービス保証を満たすことができていないか、特定のホスト(例えば、競合)上の仮想計算インスタンス間に過剰な対立アクティビティがあり得るかのいずれかである。図2のリソース監視モジュール218に関して上記に説明した通り、仮想化ホスト上の各仮想計算インスタンスに対する記録データは共に集計され得る。その後、集計された指標を基に、仮想化ホストに関する管理決定が行われ得る。例えば、仮想化ホスト上の異なる仮想計算インスタンスに対する使用量指標が類似する時間に出現してvCPU上の作業を要求する際、使用量指標はその仮想化ホスト上の仮想インスタンス間の何らかの競合レベルを示しても良い。競合レベルが何らかの最大競合閾値を超過する場合、1つ以上の仮想計算インスタンスが異なる仮想化ホスト上で移動または再開しても良く、コンピューティングリソースを開放し、残りの仮想計算インスタンスの作業要求をより優れた柔軟性で行い得る。
【0058】
仮想計算インスタンス動作の報告に依存する(または単独で依存する)代わりに、いくつかの実施形態では、制御プレーン、システム管理者、健全性構成要素または他のシステムもしくはデバイスは、ベンチマークインスタンスを起動して、仮想化ホスト上の他の仮想計算インスタンスと一緒に実行され得る。これらのベンチマークインスタンスは、vCPUに対して作業量の特定のサイズまたは種類を要求するなど、係る要求が他の仮想計算インスタンスに対する作業要求の性能に及ぼし得る影響をテストするために、特定の種類のアクションを行うように構成され得る。ベンチマークインスタンスは、ベンチマークインスタンスのテスト結果を回収し、かつリソース監視モジュール218などの報告モジュールまたはサービスに直接報告するようにさらに構成され得る。前述の例は限定ではなく、ローリングクレジットリソースに対する回収された指標が使用され得る多くの異なる方法の一部を意図することに留意されたい。
【0059】
本開示の実施形態は、以下の条項を考慮して説明することができる。
1.少なくとも1つのそれぞれのプロセッサ及びメモリを備え、仮想化ホストを実装する計算ノードと、
1つ以上の中央処理装置(vCPU)に対する作業要求を仮想計算インスタンスから受信することと、
それぞれの期間に対する固定率に少なくとも部分的に基づき、リソースクレジット蓄積率が現在のリソースクレジット残量に適用され、前記現在のリソースクレジット残量の少なくとも1つのリソースクレジットが現在の期間の前の期間に対する前記現在のリソースクレジット残量に蓄積される、前記vCPUそれぞれの前記仮想計算インスタンスに対する前記現在のリソースクレジット残量を計算することと、
1つ以上のスケジューリング命令は前記仮想計算インスタンスに対する前記現在のリソースクレジット残量の1つ以上のリソースクレジットの適用に少なくとも部分的に基づき生成され、前記作業要求に適用された前記1つ以上のリソースクレジットのそれぞれを、前記現在の期間に対して前記それぞれの少なくとも1つのプロセッサの活用を相応して増
加させる、前記計算ノードの前記それぞれの少なくとも1つのプロセッサを活用して性能に対する前記作業要求をスケジュールするために、前記1つ以上のスケジューリング命令を生成することと、
前記作業要求を行うために適用された前記1つ以上のリソースクレジットを差し引くために、前記現在のリソースクレジット残量を更新することと
を行うように構成される実行可能命令を備える前記仮想化ホストと
を備えるシステム。
【0060】
2.前記1つ以上のスケジューリング命令の生成において、前記仮想化ホストはさらに、
前記1つ以上のリソースクレジットを前記作業要求に適用した後で、
前記現在のリソースクレジット残量に前記作業要求に適用するための残りのリソースクレジットが無いという判定に応えて、前記それぞれの少なくとも1つのプロセッサが前記仮想計算インスタンスに対するベースライン活用まで徐々に低下されるよう、前記1つ以上のスケジューリング命令の少なくとも一部を構成する
ように構成される、条項1に記載のシステム。
【0061】
3.前記仮想化ホストは、経時的な前記仮想計算インスタンスに対する前記現在のリソースクレジット残量及び経時的な前記仮想計算インスタンスに対する作業要求のために適用されたリソースクレジットを追跡するように構成される監視エージェントを備え、
前記計算ノードが共にネットワークベースの仮想コンピューティングサービスを実施する複数の計算ノードの一部として実装され、前記ネットワークベースの仮想コンピューティングサービスは前記ネットワークベースの仮想コンピューティングサービスのクライアントに経時的な前記仮想計算インスタンスに対する前記現在のリソースクレジット残量及び経時的な前記仮想計算インスタンスに対する作業要求のために適用されたリソースクレジットを提供するように構成されるネットワークベースのインターフェースを備える、
条項1に記載のシステム。
【0062】
4.前記仮想計算インスタンスは、前記ネットワークベースの仮想コンピューティングサービスを介して供給される複数の異なる種類の仮想計算インスタンスのうちの1つであり、前記異なる種類の仮想計算インスタンスのそれぞれが異なるそれぞれのリソースクレジット蓄積率に対応する、条項3に記載のシステム。
【0063】
5.1つ以上のコンピューティングデバイスにより、
仮想化ホストに対する仮想化マネジャで、前記仮想化ホスト上でホストされる仮想計算インスタンスの1つ以上のコンピュータリソースに対する作業要求を受信することと、
それぞれの期間に対する固定率に少なくとも部分的に基づき、リソースクレジット蓄積率が現在のリソースクレジット残量に適用され、前記現在のリソースクレジット残量の少なくとも1つのリソースクレジットが現在の期間の前の期間に対する前記現在のリソースクレジット残量に蓄積される、前記1つ以上のコンピュータリソースそれぞれの前記仮想計算インスタンスに対する前記現在のリソースクレジット残量を判定することと、
1つ以上のスケジューリング命令は前記仮想計算インスタンスに対する前記現在のリソースクレジット残量の1つ以上のリソースクレジットの適用に少なくとも部分的に基づき生成され、前記作業要求に適用された前記1つ以上のリソースクレジットのそれぞれは、前記現在の期間に対して前記少なくとも1つの物理的なコンピュータリソースの活用を相応して増加させる、前記仮想化ホストの一部として実装される1つ以上の物理的なコンピュータリソースにおける性能に対する前記作業要求をスケジュールするために、前記1つ以上のスケジューリング命令を生成することと、
前記作業要求を行うために適用された前記1つ以上のリソースクレジットを差し引くために、前記仮想計算インスタンスに対する前記現在のリソースクレジット残量を更新する
ことと
を行う方法。
【0064】
6.前記受信、前記判定、前記生成及び前記更新は複数の異なる作業要求に対して行われ、
前記複数の異なる作業要求のそれぞれに対して前記判定された現在のリソースクレジット残量をクレジット残量指標として記録することと、
前記複数の異なる作業要求のそれぞれに対して前記適用された1つ以上のリソースクレジットをクレジット使用量指標として記録することと
をさらに備える、条項5に記載の方法。
【0065】
7.ネットワークベースのインターフェースを介して、前記仮想計算インスタンスに対する前記クレジット残量指標の少なくとも一部に対する要求を受信することと、
前記要求の受信に応えて、前記ネットワークベースのインターフェースを介して、前記仮想計算インスタンスに対する前記クレジット残量指標の少なくとも一部を提供することと
をさらに備える、条項6に記載の方法。
【0066】
8.ネットワークベースのインターフェースを介して、前記仮想計算インスタンスに対する前記クレジット使用量指標の少なくとも一部に対する要求を受信することと、
前記要求の受信に応えて、前記ネットワークベースのインターフェースを介して、前記仮想計算インスタンスに対する前記クレジット使用量指標の少なくとも一部を提供することと
をさらに備える、条項6に記載の方法。
【0067】
9.前記仮想計算インスタンスに対する前記クレジット残量指標または前記クレジット使用量指標を監視することと、
前記監視に少なくとも部分的に基づき、前記仮想計算インスタンスに対するアラームイベントを検出することと、
前記アラームイベントの検出に応えて、前記仮想計算インスタンスに対する前記アラームイベントの通知を提供することと
をさらに備える、条項6に記載の方法。
【0068】
10.前記スケジューラに送信するための前記1つ以上のスケジューリング命令の前記生成は、
前記1つ以上のリソースクレジットを前記作業要求に適用した後で、
前記現在のリソースクレジット残量に前記作業要求に適用するための残りのリソースクレジットが無いことを判定することと、
残りのリソースクレジットが無いという判定に応えて、前記1つ以上の物理的なコンピューティングリソースの活用が前記仮想計算インスタンスに対するベースライン活用まで徐々に低下されるよう、前記1つ以上の生成されたスケジューリング命令の少なくとも1つを構成することと
を備える、条項5に記載の方法。
【0069】
11.前記1つ以上のコンピュータリソースが1つ以上の仮想中央処理装置(vCPU)であり、前記1つ以上の物理的なコンピュータリソースが1つ以上の中央処理装置(CPU)であり、前記方法が前記1つ以上のスケジューリング命令を前記1つ以上の物理的なCPUに対するスケジューラに送信することをさらに備える、条項5に記載の方法。
【0070】
12.前記1つの仮想計算インスタンスに対する前記現在のリソースクレジット残量の
前記判定は、リソースクレジット蓄積期間の前に蓄積された未使用のリソースクレジットを前記現在のリソースクレジット残量から除外することを備える、条項5に記載の方法。
【0071】
13.前記1つ以上のコンピュータリソースは複数の異なるコンピュータリソースの一部であり、異なるそれぞれの現在のリソースクレジット残量は前記複数の異なるコンピュータリソースのうちの異なるコンピュータリソースに対して維持され、別の作業要求は前記複数の異なるコンピュータリソースのうちの別のコンピュータリソースに対して受信され、前記判定、前記生成及び前記更新は前記他の作業要求に対して行われる、条項5に記載の方法。
【0072】
14.1つ以上のコンピューティングデバイスにより実行されると、前記1つ以上のコンピューティングデバイスに、
仮想化ホストに対する仮想化マネジャで、前記仮想化ホスト上でホストされる仮想計算インスタンスの1つ以上のコンピュータリソースに対する作業要求を受信することと、
それぞれの期間に対する固定率に少なくとも部分的に基づき、リソースクレジット蓄積率が現在のリソースクレジット残量に適用され、前記現在のリソースクレジット残量の少なくとも1つのリソースクレジットが現在の期間の前の期間に対する前記現在のリソースクレジット残量に蓄積される、前記1つ以上の仮想コンピュータリソースそれぞれの前記仮想計算インスタンスに対する前記現在のリソースクレジット残量を判定することと、
1つ以上のスケジューリング命令は前記仮想計算インスタンスに対する前記現在のリソースクレジット残量の1つ以上のリソースクレジットの適用に少なくとも部分的に基づき生成され、前記作業要求に適用された前記1つ以上のリソースクレジットのそれぞれは、前記現在の期間に対して前記1つ以上の物理的なコンピュータリソースの活用を相応して増加させる、前記仮想化ホストの一部として実装される1つ以上の物理的なコンピュータリソースにおける性能に対する前記作業要求をスケジュールするために、前記1つ以上のスケジューリング命令を生成することと、
前記作業要求を行うために適用された前記1つ以上のリソースクレジットを差し引くために、前記1つの仮想計算インスタンスに対する前記現在のリソースクレジット残量を更新することと
を実施させるプログラム命令を記憶する、非一時的コンピュータ可読記憶媒体。
【0073】
15.前記プログラム命令が、前記1つ以上のコンピューティングデバイスにさらに、
前記受信、前記判定、前記生成、前記送信及び前記更新は複数の異なる作業要求に対して行われ、
前記複数の異なる作業要求のそれぞれに対して前記判定された現在のリソースクレジット残量をクレジット残量指標として記録することと、
前記複数の異なる作業要求のそれぞれに対して前記適用された1つ以上のリソースクレジットをクレジット使用量指標として記録することと
を実施させる、条項14に記載の非一時的コンピュータ可読記憶媒体。
【0074】
16.前記プログラム命令が、前記1つ以上のコンピューティングデバイスにさらに、前記仮想計算インスタンスに対する前記クレジット残量指標または前記クレジット使用量指標を監視することと、
前記監視に少なくとも部分的に基づき、前記仮想計算インスタンスに対するアラームイベントを検出することと、
前記アラームイベントの検出に応えて、前記仮想計算インスタンスに対する前記アラームイベントの通知を提供することと
を実施させる、条項15に記載の非一時的コンピュータ可読記憶媒体。
【0075】
17.前記1つ以上の計算リソースが1つ以上のネットワーキングリソースであり、前
記1つ以上の物理的なコンピュータリソースが1つ以上のネットワーク通信デバイスである、条項14に記載の非一時的コンピュータ可読記憶媒体。
【0076】
18.前記スケジューラに送信するための前記1つ以上のスケジューリング命令の前記生成において、前記プログラム命令は前記1つ以上のコンピューティングデバイスに、
前記1つ以上のリソースクレジットを前記作業要求に適用した後で、
前記現在のリソースクレジット残量に前記作業要求に適用するための残りのリソースクレジットが無いことを判定することと、
残りのリソースクレジットが無いという判定に応えて、前記1つ以上の物理的なコンピュータリソースの活用が前記仮想計算インスタンスに対するベースライン活用まで徐々に低下されるよう、前記1つ以上の生成されたスケジューリング命令の少なくとも1つを構成することと
を実施させる、条項14に記載の非一時的コンピュータ可読記憶媒体。
【0077】
19.前記仮想計算インスタンスに対する前記現在のリソースクレジット残量の前記判定において、前記プログラム命令が、前記1つ以上のコンピューティングデバイスに、リソースクレジット蓄積期間の前に蓄積された未使用のリソースクレジットを前記現在のリソースクレジット残量から除外することを実施させる、条項14に記載の非一時的コンピュータ可読記憶媒体。
【0078】
20.前記仮想化ホストはネットワークベースの仮想コンピューティングサービスの一部として実装され、前記仮想計算インスタンスは、前記ネットワークベースの仮想コンピューティングサービスを介して供給される複数の異なる種類の仮想計算インスタンスのうちの1つであり、前記異なる種類の仮想計算インスタンスのそれぞれが異なるそれぞれのリソースクレジット蓄積率に対応する、条項14に記載の非一時的コンピュータ可読記憶媒体。
【0079】
本明細書に記載の方法は、様々な実施形態では、ハードウェア及びソフトウェアの任意の組み合わせにより実装され得る。例えば、一実施形態では、方法はプロセッサに連結されるコンピュータ可読記憶媒体に記憶されるプログラム命令を実行する1つ以上のプロセッサを含むコンピュータシステム(例えば、図9のコンピュータシステム)により実施され得る。プログラム命令は本明細書に記載する機能性(例えば、本明細書に記載のネットワークベースの仮想コンピューティングリソースプロバイダを実装する様々なサーバ及び他の構成要素の機能性)を実施するように構成され得る。図面に例示し本明細書に記載した様々な方法は、方法の実施形態例を表す。任意の方法の順序は変更されて良く、様々な要素が追加、再順序付け、結合、省略、修正等、されて良い。
【0080】
本明細書に記載の仮想コンピュータリソースをスケジュールするためのローリングクレジットリソースの実施形態は1つ以上のコンピュータシステム上で実行されても良く、コンピュータシステムは様々な他のデバイスと相互作用しても良い。図9は、様々な実施形態に係る、コンピュータシステムの一例を例示するブロック図である。例えば、コンピュータシステム1000は、異なる実施形態では、計算クラスタ、分散キーバリューデータストア、及び/またはクライアントのノードを実装するように構成され得る。コンピュータシステム1000は、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップコンピュータもしくはノートブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、コンシューマデバイス、アプリケーションサーバ、ストレージデバイス、電話、携帯電話、または一般的な任意の種類のコンピューティングデバイスを含む様々な種類のデバイスのいずれでもあって良いが、これらに限定されない。
【0081】
コンピュータシステム1000は、入出力(I/O)インターフェース1030を介してシステムメモリ1020に連結された1つ以上のプロセッサ1010を含む(これらのプロセッサはいずれも複数のコアを含んで良く、それらのコアはシングルスレッド方式でもマルチスレッド方式でも良い)。コンピュータシステム1000は、I/Oインターフェース1030に連結されたネットワークインターフェース1040をさらに含む。様々な実施形態では、コンピュータシステム1000は、1つのプロセッサ1010を含むユニプロセッサシステム、またはいくつかのプロセッサ1010(例えば、2個、4個、8個もしくは他の好適な数)を含むマルチプロセッサシステムであって良い。プロセッサ1010は、命令を実行可能な任意の好適なプロセッサであって良い。例えば、様々な実施形態では、プロセッサ1010は、x86、PowerPC、SPARCもしくはMIPSのISAまたはその他の好適なISAなどの種々の命令セットアーキテクチャ(ISA)のいずれかを実装する汎用プロセッサまたは組み込みプロセッサであって良い。マルチプロセッサシステムでは、プロセッサ1010のそれぞれは、通常は同じISAを実装し得るが、必ずしもそのように実装されるとは限らない。コンピュータシステム1000は、1つ以上のネットワーク通信デバイス(例えば、ネットワークインターフェース1040)をさらに含み、通信ネットワーク(例えば、インターネット、LAN等)を介して他のシステム及び/または構成要素と通信する。例えば、システム1000上で実行されるクライアントアプリケーションは、ネットワークインターフェース1040を使用して、本明細書に記載したデータウェアハウスシステムの構成要素の1つ以上を実装する単一のサーバまたはサーバのクラスタ上で実行するサーバアプリケーションと通信しても良い。別の例では、コンピュータシステム1000上で実行するサーバアプリケーションのインスタンスは、ネットワークインターフェース1040を使用して、他のコンピュータシステム(例えば、コンピュータシステム1090)上に実装され得るサーバアプリケーション(または別のサーバアプリケーション)の他のインスタンスと通信しても良い。
【0082】
例示した実施形態では、コンピュータシステム1000は、1つ以上の永続ストレージデバイス1060及び/または1つ以上のI/Oデバイス1080をさらに含む。様々な実施形態では、永続ストレージデバイス1060は、ディスクドライブ、テープドライブ、ソリッドステートメモリ、他の大容量ストレージデバイス、またはその他の永続ストレージデバイスに対応し得る。コンピュータシステム1000(または分散アプリケーションもしくはそのシステム上で動作するオペレーティングシステム)は、所望により、命令及び/またはデータを永続ストレージデバイス1060に記憶しても良く、記憶された命令及び/またはデータを必要に応じて検索しても良い。例えば、いくつかの実施形態では、コンピュータシステム1000は、ストレージシステムサーバノードをホストしても良く、永続ストレージ1060は、そのサーバノードに取り付けられたSSDを含んでも良い。
【0083】
コンピュータシステム1000は、1つ以上のシステムメモリ1020を含み、これらのメモリは、プロセッサ1010(複数可)によりアクセス可能な命令及びデータを記憶するように構成される。様々な実施形態では、システムメモリ1020は、任意の好適なメモリ技術(例えば、1つ以上のキャッシュ、スタティックランダムアクセスメモリ(SRAM)、DRAM、RDRAM、EDO RAM、DDR 10 RAM、同期式ダイナミックRAM(SDRAM)、Rambus RAM、EEPROM、不揮発性/フラッシュ型メモリ、またはその他任意の種類のメモリ)を使用して実装され得る。システムメモリ1020は、本明細書に記載された方法及び技法を実装するために、プロセッサ1010(複数可)により実行可能なプログラム命令1025を含み得る。様々な実施形態では、プログラム命令1025は、プラットフォームのネイティブバイナリ、Java(登録商標)バイトコードなどの任意のインタープリタ型言語、もしくはC/C++、Java(登録商標)等などの任意の他の言語、またはそれらの任意の組み合わせにコード化され得る。例えば、例示した実施形態では、プログラム命令1025は、異なる実施形態
では、仮想コンピューティングリソースプロバイダネットワークの機能性を実装するために実行可能なプログラム命令を含む。いくつかの実施形態では、プログラム命令1025は、複数の個別のクライアント、サーバノード及び/または他の構成要素を実装しても良い。
【0084】
いくつかの実施形態では、プログラム命令1025は、オペレーティングシステム(図示せず)を実装するために実行可能な命令を含んでも良く、このオペレーティングシステムは、UNIX(登録商標)、LINUX、Solaris(登録商標)、MacOS(登録商標)、Windows(登録商標)等などの様々なオペレーティングシステムのいずれでも良い。プログラム命令1025のいずれかまたは全ては、コンピュータプログラム製品またはソフトウェアとして提供され得る。このコンピュータプログラム製品またはソフトウェアは、命令が記憶された非一時的コンピュータ可読記憶媒体を含んでも良く、この媒体を使用してコンピュータシステム(または他の電子装置)をプログラムすることにより、様々な実施形態に応じたプロセスを実行しても良い。非一時的コンピュータ可読記憶媒体は、マシン(例えば、コンピュータ)により読み取り可能な形態(例えば、ソフトウェア、処理アプリケーション)で情報を記憶するための任意の機構を含んでも良い。一般的に言えば、非一時的コンピュータアクセス可能媒体は、コンピュータ可読記憶媒体またはメモリ媒体を含み得る。このような媒体としては、磁気媒体または光学媒体、例えば、I/Oインターフェース1030を介してコンピュータシステム1000に連結されたディスクまたはDVD/CD-ROMなどがある。非一時的コンピュータ可読記憶媒体は、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等などの任意の揮発性または不揮発性媒体も含み得る。これらの媒体は、コンピュータシステム1000のいくつかの実施形態では、システムメモリ1020または別の種類のメモリとして含まれ得る。他の実施形態では、プログラム命令は、ネットワークインターフェース1040を介して実装され得るようなネットワーク及び/または無線リンクなどの通信媒体を介して伝わる光学的、音響的または他の形態の伝搬信号(例えば、搬送波、赤外線信号、デジタル信号等)を使用して伝送され得る。
【0085】
いくつかの実施形態では、システムメモリ1020は、データストア1045を含んでも良く、このデータストアは、本明細書に記載されたように構成され得る。概して、システムメモリ1020(例えば、システムメモリ1020内のデータストア1045)、永続ストレージ1060及び/またはリモートストレージ1070は、データブロック、データブロックのレプリカ、データブロック及び/もしくはそれらの状態に関連付けられたメタデータ、構成情報、ならびに/または本明細書に記載された方法及び技法を実装するのに使用可能な他の任意の情報を記憶し得る。
【0086】
一実施形態では、I/Oインターフェース1030は、ネットワークインターフェース1040または他の周辺インターフェースを通るものを含む、プロセッサ1010、システムメモリ1020及びシステム内の任意の周辺デバイスの間のI/Oトラフィックを調整するように構成され得る。いくつかの実施形態では、I/Oインターフェース1030は、任意の必要なプロトコル変換、タイミング変換または他のデータ変換を実行し、ある構成要素(例えば、システムメモリ1020)からのデータ信号を別の構成要素(例えば、プロセッサ1010)による使用に好適な形式に変換し得る。いくつかの実施形態では、I/Oインターフェース1030は、例えば、ペリフェラル・コンポーネント・インターコネクト(PCI)バス規格またはユニバーサル・シリアル・バス(USB)規格の変型などの様々な種類の周辺バスを通じて取り付けられたデバイスのサポートも含み得る。いくつかの実施形態では、I/Oインターフェース1030の機能は、例えば、ノースブリッジ及びサウスブリッジなどの、2つ以上の別々の構成要素に分割され得る。さらに、いくつかの実施形態では、システムメモリ1020とのインターフェースなどの、I/Oインターフェース1030の機能性の一部または全てをプロセッサ1010に直接組み込
んでも良い。
【0087】
ネットワークインターフェース1040は、例えば、コンピュータシステム1000と、他のコンピュータシステム1090(このシステムは、本明細書に記載されたデータベースシステムの1つ以上のストレージシステムサーバノード、データベースエンジン・ヘッドノード及び/またはクライアントを実装し得る)などの、ネットワークに取り付けられた他のデバイスとの間でデータを交換できるように構成され得る。加えて、ネットワークインターフェース1040は、コンピュータシステム1000と、様々なI/Oデバイス1050及び/またはリモートストレージ1070との間の通信を行うことができるように構成され得る。入出力デバイス1050は、いくつかの実施形態では、1つ以上の表示端末、キーボード、キーパッド、タッチパッド、スキャニングデバイス、音声認識デバイスもしくは光学認識デバイス、または1つ以上のコンピュータシステム1000によるデータの入力もしくは検索に好適なその他のデバイスを含んでも良い。複数の入出力デバイス1050は、コンピュータシステム1000内に存在しても良く、またはコンピュータシステム1000を含む分散システムの様々なノードに分散されても良い。いくつかの実施形態では、同様の入出力デバイスは、コンピュータシステム1000から分離されても良く、コンピュータシステム1000を含む分散システムの1つ以上のノードと、ネットワークインターフェース1040を介するような有線または無線接続を通じて相互作用しても良い。ネットワークインターフェース1040は、通常1つ以上の無線ネットワーキングプロトコル(例えば、Wi-Fi/IEEE802.11、または別の無線ネットワーキング規格)をサポートし得る。しかしながら、様々な実施形態では、ネットワークインターフェース1040は、例えば、他の種類のイーサネットネットワークなどの、任意の好適な有線または無線の一般的なデータネットワークを介した通信をサポートし得る。加えて、ネットワークインターフェース1040は、アナログ音声ネットワークもしくはデジタルファイバ通信ネットワークなどの電気通信ネットワーク/電話網、ファイバチャネルSANなどのストレージエリアネットワーク、またはその他任意の好適な種類のネットワーク及び/またはプロトコルを介した通信をサポートし得る。様々な実施形態では、コンピュータシステム1000は、図9に例示した構成要素よりも多い構成要素、これよりも少ない構成要素、またはこれとは異なる構成要素(例えば、ディスプレイ、ビデオカード、オーディオカード、周辺デバイス、ATMインターフェース、イーサネットインターフェース、フレームリレーインターフェースなどの他のネットワークインターフェース等)を含んでも良い。
【0088】
本明細書に記載された分散システムの任意の実施形態、またはそれらの任意の構成要素は、1つ以上のネットワークベースのサービスとして実装され得ることが留意される。例えば、コンピューティングサービス内の計算クラスタは、コンピューティングサービス及び/または本明細書に記載した分散コンピューティングシステムを利用する他の種類のサービスを、ネットワークベースのサービスとしてクライアントに与え得る。いくつかの実施形態では、ネットワークベースのサービスは、ネットワークを介して相互運用可能なマシン対マシン相互作用をサポートするように設計されたソフトウェア及び/またはハードウェアシステムにより実装され得る。ネットワークベースのサービスは、Webサービス記述言語(WSDL)などの、マシンが処理可能な形式で記述されたインターフェースを有しても良い。他のシステムは、ネットワークベースのサービスのインターフェースを記述することにより定められる方法でネットワークベースのサービスと相互作用しても良い。やはり、例えば、ネットワークベースのサービスは、他のシステムが呼び出すことができる様々な動作を定義しても良く、様々な動作を要求する際に他のシステムが適合していると見込むことができる特定のアプリケーションプログラミングインターフェース(API)を定義しても良い。
【0089】
様々な実施形態において、ネットワークベースのサービスは、ネットワークベースのサ
ービス要求に関連するパラメータ及び/またはデータを含むメッセージの使用を通して、要求、または呼び出され得る。係るメッセージは、拡張マークアップ言語(XML)等の特定のマークアップ言語に従って形式化され、及び/または簡易オブジェクトアクセスプロトコル(SOAP)などのプロトコルを使用してカプセル化され得る。ネットワークベースのサービス要求を行うために、ネットワークベースのサービスのクライアントは、要求を含むメッセージをアセンブルし、メッセージをネットワークベースのサービスに対応するアドレス指定可能なエンドポイント(例えば、ユニフォームリソースロケータ(URL))へ、ハイパーテキスト転送プロトコル(HTTP)等のインターネットベースのアプリケーション層転送プロトコルを使用して伝送し得る。
【0090】
いくつかの実施形態において、ネットワークベースのサービスは、メッセージベースの技法ではなく、リプリゼンテーショナル・ステート・トランスファ(「RESTful」)技法を使用して実施され得る。例えば、RESTful技法に従って実施されるネットワークベースのサービスは、SOAPメッセージ内にカプセル化されたパラメータではなく、PUT、GET、またはDELETEなどのHTTPメソッド内に含まれるパラメータを通して呼び出され得る。
【0091】
上記の実施形態はかなり詳細に説明されているが、いったん上記開示が完全に理解されると当業者に明らかになるように、多数の変形形態及び修正形態が行われて良い。以下の請求項は全ての係る修正形態及び変更を包含し、したがって、上記の記載は制限的な意味ではなく例示的な意味としてみなされることを意図する。
図1
図2
図3
図4
図5
図6
図7
図8
図9