JP6878512B2 - 仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット - Google Patents

仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット Download PDF

Info

Publication number
JP6878512B2
JP6878512B2 JP2019132615A JP2019132615A JP6878512B2 JP 6878512 B2 JP6878512 B2 JP 6878512B2 JP 2019132615 A JP2019132615 A JP 2019132615A JP 2019132615 A JP2019132615 A JP 2019132615A JP 6878512 B2 JP6878512 B2 JP 6878512B2
Authority
JP
Japan
Prior art keywords
virtual
resource
instance
credits
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019132615A
Other languages
English (en)
Other versions
JP2019194914A (ja
Inventor
フィリップス,ジョン・メリル
アール,ウィリアム・ジョン
シング,ディーパック
Original Assignee
アマゾン・テクノロジーズ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アマゾン・テクノロジーズ・インコーポレーテッド filed Critical アマゾン・テクノロジーズ・インコーポレーテッド
Publication of JP2019194914A publication Critical patent/JP2019194914A/ja
Priority to JP2021075891A priority Critical patent/JP7189997B2/ja
Application granted granted Critical
Publication of JP6878512B2 publication Critical patent/JP6878512B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

汎用ハードウェアに対する仮想化技術の出現は、多様なニーズを有する多数の顧客のた
めの大規模なコンピューティングリソースを管理する上で利益をもたらし、これにより、
様々なコンピューティングリソースが、複数の顧客により効率的かつ安全に共有されるこ
とが可能になる。例えば、仮想化技術は、各ユーザに、単一の物理的なコンピューティン
グマシンによりホストされる1つ以上の仮想マシンを提供することにより、単一の物理的
なコンピューティングマシンが、複数のユーザの間で共有されることを可能にすることが
でき、それぞれの係る仮想マシンは、ユーザが所与のハードウェアコンピューティングリ
ソースの唯一のオペレータ及び管理者であるという錯覚をユーザに提供する別個の論理的
コンピューティングシステムとして機能するソフトウェアシミュレーションであり、同時
に様々な仮想マシン間のアプリケーション分離及びセキュリティも提供する。別の例とし
て、仮想化技術は、複数のデータストレージデバイスにわたり分散され得る仮想化された
データストアを各ユーザに提供することにより、データストレージハードウェアが複数の
ユーザ間で共有されることを可能にすることができ、それぞれの係る仮想化されたデータ
ストアは、ユーザがデータストレージリソースの唯一のオペレータ及び管理者であるとい
う錯覚をユーザに提供する別個の論理的データストアとして機能する。
仮想化技術を利用して、クライアントシステムもしくはデバイスに多くの異なる種類の
サービスを作成するか、または異なる機能を実行しても良い。例えば、仮想マシンを使用
して、電子商取引プラットフォームなどの外部顧客のためのネットワークベースのサービ
スを実装しても良い。仮想マシンをさらに使用して、企業の内部ネットワークの一部とし
て実装される情報技術(IT)サービスなど、内部顧客のためのサービスまたはツールを
さらに実装しても良い。しかしながら、これらの仮想リソースを効率的に活用するには、
多くの異なる種類の仮想リソース作業量に対する柔軟な活用オプションが必要になり得る
。一部の環境では、複数の仮想マシンが単一のホスト上で一緒にホストされる場合があり
、これにより同じ物理的なコンピュータリソースに依存し得る異なる仮想コンピューティ
ングリソースを活用する際に、競合及び衝突が生まれる可能性がある。
いくつかの実施形態に係る、仮想計算インスタンスに対するローリングリソースクレジット残量を例示するグラフである。 いくつかの実施形態に係る、仮想コンピュータリソースをスケジュールするためにローリングリソースクレジットを実施する仮想計算インスタンスを提供するネットワークベースの仮想コンピューティングサービスを例示するブロック図である。 いくつかの実施形態に係る、仮想コンピュータリソースをスケジュールするためにローリングリソースクレジットを実施する仮想化ホストを例示するブロック図である。 いくつかの実施形態に係る、仮想計算インスタンスに対するローリングクレジット指標を提供するインターフェースの一例の説明図である。 いくつかの実施形態に係る、仮想コンピュータリソースをスケジュールするためにローリングコンピュータリソースクレジットを実施する様々な方法及び技法を例示する高レベルフロー図である。 いくつかの実施形態に係る、仮想コンピュータに対する処理リソースをスケジュールするためにローリングコンピュータリソースクレジットを実施する様々な方法及び技法を例示する高レベルフロー図である。 いくつかの実施形態に係る、仮想計算インスタンスへの作業要求に対する利用可能なリソースクレジットに従って、物理的なコンピュータリソースの活用を低下または上昇する様々な方法及び技法を例示する高レベルフロー図である。 いくつかの実施形態に係る、仮想コンピュータリソースをスケジュールするためにローリングクレジットリソースを実施する仮想計算インスタンスに対するデータ指標を記録及び活用する様々な方法及び技法を例示する高レベルフロー図である。 いくつかの実施形態に係る、コンピューティングシステムの一例を例示するブロック図である。
本明細書では、実施形態がいくつかの実施形態及び説明図に対する例により記載される
が、実施形態は記載される実施形態または図面に限定されないことを当業者は認識するで
あろう。図面及びその詳細な記載は、開示される特定の形態に実施形態を限定する意図は
なく、それとは逆に、添付の請求項で定義される精神及び範囲に入る全ての修正、均等物
及び代替案を含める意図があることを理解されたい。本明細書で使用される見出しは、本
明細書を構成する目的でのみ使用され、明細書または請求項の範囲を限定するために使用
されることを意図しない。本出願を通して使用される単語「may」は、義務的な意味(
つまり、「するべきである」という意味)ではなく、許容的な意味(つまり、「する可能
性がある」という意味)で使用される。同様に、単語「include」、「inclu
ding」、及び「includes」は「含む」ことを意味するが、その対象を限定し
ない。
本明細書に記載のシステム及び方法は、いくつかの実施形態に係る、仮想コンピューテ
ィングリソースをスケジュールするためにローリングリソースクレジットを実施し得る。
仮想コンピューティングリソースを実施する異なるクライアントは異なるリソース要求を
有する。例えば、あるクライアントの作業量は予測不可能であり、固定リソースを効率的
に活用しない可能性がある。仮想コンピューティングリソースをスケジュールするために
ローリングリソースクレジットを実施する仮想計算インスタンスは、活用されていない固
定リソースを無駄にすることなく、リソースの動的な活用を提供し、柔軟性のある高性能
を提供し得る。リソースクレジットは個別の仮想計算インスタンスに対して蓄積される。
仮想計算インスタンスが高性能で作業を行う必要がある場合、リソースクレジットが作業
に適用されも良く、これによりリソースクレジットの持続期間中に基礎を成す物理的なリ
ソースのフル活用を効果的に提供する。仮想計算インスタンスがその共有リソースより少
ないリソースを使用している場合(例えば、実行中の作業がほとんどない、または全く無
い)、クレジットが取得され、後続タスクのために使用されても良い。リソースは、様々
な実施形態では、管理された物理的なコンピュータリソースにより実施または実行される
任意の仮想化されたコンピュータリソースであり得る。リソースは、処理リソース、通信
もしくはネットワーキングリソース及びストレージリソースを含むが、これらに限定され
ない。
仮想計算インスタンスは仮想コンピューティングリソースをスケジュールするためのロ
ーリングリソースクレジットを実施しても良く、限定期間に低価格で応答性及び高性能を
提供する。図1はいくつかの実施形態に係る、仮想計算インスタンスに対するローリング
リソースクレジット残量を例示するグラフである。グラフ100は、スケジューリングの
ためにローリングリソースクレジットを実施する計算インスタンスに対する、リソースク
レジット使用量及びリソースクレジット残量の両方を例示する。初期のリソースクレジッ
ト残量が提供されても良く110(例えば、30クレジット)、すぐに使用されても良い
。いくつかの実施形態では、経時的に、計算インスタンスはローリングリソースクレジッ
ト残量限度120に達するまで、より多くのクレジットを蓄積し得る。この限度は、一定
時間(例えば、24時間)後に、特定の蓄積されたリソースクレジットを除外することに
より実施され得る。いくつかの実施形態では、適用されると、リソースクレジットは特定
の時間(例えば、コンピュータリソースクレジットは中央処理装置(CPU)の1分間の
フル活用、30秒間の特定のネットワーキングチャネル、または保証され得る一部の他の
使用期間に等しくても良い)に対してリソースのフル活用を提供し得る。リソースクレジ
ットは使用されるとリソースクレジット残量から差し引かれ得る。
リソースクレジットを消費すると、仮想計算インスタンスは必要な時に十分なリソース
(例えば、CPUコア、ネットワークインターフェースカード機能等)を活用して、高性
能を取得し得る。例えば、時間5でのクレジットリソース使用量は時間5でのリソースク
レジット残量より少ない。したがって、現在のリソースクレジット残量のうち、タスクを
行うのに必要であったリソースクレジットよりも多くのリソースクレジットが消費のため
に利用可能であったため、時間5で実行される作業は、タスク期間にわたりフル活用で行
われた。さらに、さらなるリソースクレジット使用量が示されないため、リソースクレジ
ットは残量限度120に達するまで引き続き繰り越され、次回の大量使用期間(または同
じ仮想化ホスト上でホストされる別の計算インスタンスに対する別の作業要求)のために
さらなる物理的なリソースを節約する。タスクを行う際に利用可能なリソースクレジット
が無い場合、ベースライン活用保証をさらに適用して、作業要求を行っても良い。いくつ
かの実施形態では、ベースライン活用保証は、仮想計算インスタンスがクレジットリソー
ス残量のクレジットを全く費やすことなく、リソースを使用することができる時間量であ
り得る。
少なくともいくつかの実施形態では、ベースライン活用保証はリソースクレジット蓄積
率に一致し得る。例えば、リソースクレジットが1時間当たりの1分間のフル活用に等し
い場合、1時間当たりの6リソースクレジット累積率は60分のうちの6分、つまり1時
間に対する10%のリソース活用に等しい。この例では、ベースライン保証は1時間に対
する10%のリソース活用となり得る。しかしながら、いくつかの実施形態では、リソー
スクレジット蓄積率はベースライン保証と無関係の場合があり(例えば、1時間当たり1
2リソースクレジット蓄積率及び10%のベースライン保証)、これにより、計算インス
タンスが、割り当てられたベースライン活用保証を活用する作業要求を送信したとしても
、リソースクレジットがリソースクレジット残量のものになることが可能である。前述の
例は、リソースクレジット蓄積率及びベースライン性能が実施され得る様々な方法または
組み合わせを限定する意図ではないことに留意されたい。
仮想コンピュータリソースをスケジュールするためのローリングリソースクレジットは
(以下に説明する図2及び図3に例示の通り)同じ仮想化ホストにおいてホストされる複
数の仮想計算インスタンスに対して実施され得る。ローリングリソースクレジット残量限
度120を実施することは、任意の1つの計算インスタンスが、他のインスタンスに対す
る作業要求の性能を妨害するのに十分なリソースクレジットを蓄積しないようにし得る。
例えば、図1に例示の通り、ローリングリソースクレジット残量限度が144リソースク
レジットに設定されると、いずれか1つの仮想計算インスタンスが物理的なコンピュータ
リソースを独占し得る最大限度は2時間24分(リソースクレジットがリソースの1分間
のフル活用に等しいと仮定する)である。
前述の記載は計算インスタンスに対するローリングリソースクレジット残量及び使用量
の一例を提供するにすぎず、限定する意図はないことに留意されたい。リソースクレジッ
トが使用され得る様々な量に応じて、蓄積率、初期の残量及び残量限度は全て異なり得る
本明細書は次に、仮想コンピューティングリソースプロバイダ概要を含み、仮想コンピ
ューティングリソースプロバイダは、プロバイダネットワークに実施されるネットワーク
トラフィックポリシに含まれるネットワークエンティティハンドルに対してネットワーク
エンティティ登録を実施し得る。その後、仮想コンピューティングリソースの様々な例が
説明され、これは仮想コンピューティングリソースプロバイダ実施の一部として利用され
得る、異なる構成要素/モジュールまたは構成要素/モジュールの配置を含む。プロバイ
ダネットワークに実施されるネットワークトラフィックポリシに含まれるネットワークエ
ンティティハンドルに対する、ネットワークエンティティ登録を実施するための多数の異
なる方法及び技法がその後説明され、そのいくつかは添付のフロー図で例示される。最後
に、様々な構成要素、モジュール、システム、デバイス及び/またはノードが実装され得
るコンピューティングシステムの一例の記載が提供される。様々な例は明細書を通じて提
供される。
図2は、いくつかの実施形態に係る、仮想コンピューティングリソースをスケジュール
するためのローリングリソースクレジットを実施する仮想計算インスタンスを提供するネ
ットワークベースの仮想コンピューティングサービスを例示するブロック図である。ネッ
トワークベースの仮想コンピューティングサービス200は企業または公的機関などのエ
ンティティにより設定され、インターネット及び/または他のネットワークを介して、ア
クセス可能な1つ以上のサービス(様々な種類のクラウドベースのコンピューティングサ
ービスまたはストレージサービスなど)をクライアント202に提供しても良い。ネット
ワークベースの仮想コンピューティングサービス200は、ネットワークベースの仮想コ
ンピューティングサービス200により供給されるインフラストラクチャ及びサービスを
実施及び分散するために必要とされる、物理的及び/または仮想化されたコンピュータサ
ーバ、ストレージデバイス、ネットワーキング装置の集合などの様々なリソースプールを
ホストする無数のデータセンタを含み得る。いくつかの実施形態では、ネットワークベー
スの仮想コンピューティングサービス200はコンピューティングリソースを提供し得る
。これらのコンピューティングリソースは、いくつかの実施形態では、仮想計算インスタ
ンスなどの「インスタンス」234と呼ばれる単位でクライアントに供給され得る。
様々な実施形態では、ネットワークベースの仮想コンピューティングサービス200は
、ネットワークベースの仮想コンピューティングサービス200によりクライアント20
2に提供されるコンピューティングリソース供給物を管理するために、制御プレーン21
0を実装し得る。制御プレーン210はコンピューティングリソース供給物を管理するた
めに様々な異なる構成要素を実装し得る。制御プレーン210は種々のサーバ、ノードま
たは他のコンピューティングシステムもしくはデバイス(図9に関して以下に記載するコ
ンピューティングシステム1000など)にわたり実装され得る。所与の構成要素の1つ
以上のインスタンスが存在し得る場合、本明細書におけるその構成要素に対する言及は、
単数または複数のいずれかを指し得ることが留意される。しかしながら、いずれかの形態
の使用は他方を排除することを意図しない。
少なくともいくつかの実施形態では、制御プレーン210はインターフェース212を
実装し得る。インターフェース212は、ネットワーク260を介して受信される着信要
求を処理し、さらなる処理のために要求を適切な構成要素に導くように構成され得る。少
なくともいくつかの実施形態では、インターフェース212はネットワークベースのイン
ターフェースでも良く、(例えば、管理制御パネルもしくはウェブサイトの一部としての
)グラフィカルインターフェース及び/または(例えば、様々なアプリケーションプログ
ラミングインターフェース(API)コマンドを処理する)プログラマチックインターフ
ェースとして実装されても良い。様々な実施形態では、インターフェース212は、リソ
ース管理214、予約管理216、リソース監視218及び請求220などの様々な他の
構成要素に要求を発信するフロントエンドモジュールまたは構成要素の一部として実装さ
れ得る。クライアント202は、様々な実施形態では、リソースを直接的に整備したり、
起動したり、または構成したりし得ないが、例示された構成要素(または例示されない他
の構成要素、機能もしくはサービス)が要求されたアクションを行い得るよう、要求を制
御プレーン210に送信し得る。
制御プレーン210はリソース管理モジュール214を実装し、プロバイダネットワー
クにより供給されるコンピューティングリソースへのアクセス、コンピューティングリソ
ースの容量、コンピューティングリソースへのマッピング及びコンピューティングリソー
スの他の制御もしくは命令を管理し得る。少なくともいくつかの実施形態では、リソース
管理モジュール214は容量予約(例えば、予約された計算インスタンス)のための直接
販売及び第三者再販市場の両方を提供し得る。例えば、リソース管理モジュール214は
、インターフェース212を介して、クライアント202が初期の販売マーケットプレイ
スまたは再販マーケットプレイスのいずれかからコンピューティングリソースの容量を把
握し、選択し、アクセス権を購入及び/または予約することを可能にしても良く、これは
ウェブページを介して、またはAPIを介して行われる。例えば、リソース管理構成要素
は、インターフェース212を介して、異なる利用可能な計算インスタンスの種類のリス
トを提供しても良く、リストのそれぞれは異なるクレジット蓄積率を備える。追加的に、
いくつかの実施形態では、リソース管理モジュール214は、指定された購入量またはス
キーム(例えば、一括払い、追加定期支払等)に対して、(インスタンスの種類に対する
クレジット蓄積率を介して提供されるクレジットに加えて)購入用クレジットを供給する
ように構成され得る。例えば、リソース管理モジュール214はクレジット購入要求(例
えば、API要求)を受信し、仮想インスタンス残量に購入済みのクレジットを入れるよ
うに構成され得る。同様に、リソース管理モジュール214は、特定のインスタンスに対
するクレジット蓄積率を増加する要求を処理するように構成され得る。リソース管理21
4は、さらに一連の柔軟なリソース予約、制御及びインターフェース212を介したクラ
イアント202に対するインターフェースへのアクセスを供給及び/または実装し得る。
例えば、リソース管理モジュール214は、計算インスタンス制御動作/クライアントと
使用中のコンピューティングリソースとの相互作用が行われ得るよう、認証情報またはア
クセス許可をクライアント202に提供し得る。
様々な実施形態では、予約管理モジュール216はインスタンス234の様々な価格スキ
ーム(少なくとも初期の販売マーケットプレイスに対して)を処理するように様々な実施
形態で構成され得る。例えば、いくつかの実施形態では、ネットワークベースの仮想コン
ピューティングサービス200は、例えば、期間予約(つまり、予約された計算インスタ
ンス)、オンデマンドのリソース割り当てまたはスポット価格ベースのリソース割り当て
等、いくつかの異なる購入モード(本明細書において、予約モードとしてさらに言及され
得る)をサポートしても良い。長期予約モードを使用すると、クライアントは、計算イン
スタンスまたは他のコンピューティングリソースに対して低価格の1回限りの前払いを行
ない、1年間または3年間などの指定期間にわたって計算インスタンスを予約し、そのイ
ンスタンスに対して低価格の時間当たりの料金を支払うことができ、クライアントは、予
約期間にわたって利用可能な予約されたインスタンスを有することが保証されるだろう。
オンデマンドモードを使用すると、クライアントは、長期間の約束または前払いをするこ
となく、1時間(または何らかの適切な時間単位)毎に容量に対して支払うことが可能で
ある。スポット価格モードでは、クライアントは、計算インスタンスまたは他のコンピュ
ーティングリソースの特定の種類に対して支払うことを望んでいる、単位時間当たりの最
高価格を指定することが可能であり、クライアントの最高価格が、少なくとも部分的に供
給及び需要により決定された動的スポット価格を超えた場合、その種類のリソースがクラ
イアントに提供されることになる。
要求されたリソースの種類の供給が需要を超えた期間中、スポット価格は、オンデマン
ドモードの価格よりもはるかに低くなり得る。いくつかの実装において、スポット価格が
クライアントにより指定された最高の指値を上回って増加した場合、リソース割り当ては
中断されても良く、すなわち、以前にクライアントに割り当てられていたリソースインス
タンスは、リソース管理モジュール330により回収されても良く、より高い価格を支払
うことを望んでいる誰か他のクライアントに割り当てられても良い。リソース容量予約は
、さらに制御プレーンデータストア222を更新し、所有権、クライアント使用、クライ
アントアカウントまたは他のリソース情報の変更を反映し得る。
様々な実施形態では、制御プレーン210はリソース監視モジュール218により実装
され得る。リソース監視モジュール218は、異なる仮想コンピュータリソース、クライ
アント、ユーザアカウント及び/または特定のインスタンスのために消費される、様々な
コンピューティングインスタンス(例えば、リソースクレジット残量、リソースクレジッ
ト消費)の消費を追跡し得る。少なくともいくつかの実施形態では、リソース監視モジュ
ール218は一群の全ての仮想化ホスト230及びインスタンス234の様々な異なるシ
ナリオを停止、解決、管理、または別の方法で応答するための様々な管理アクションを実
施し得る。リソース監視モジュール218は、クライアント202(複数可)にクライア
ントが構成したアラームの管理ならびに様々な指標データへのアクセスをさらに提供し得
る。以下に詳細に説明される図8は、リソース監視モジュールが実施し得る様々な技法の
さらなる例を提供する。
様々な実施形態では、制御プレーン210は請求管理モジュール220を実装し得る。
請求管理モジュール220は請求イベント(例えば、特定の日付、時間、使用量、請求額
に対する要求または特定のユーザアカウントもしくはユーザアカウントにリンクされた支
払アカウントに対する請求額を生成する任意の他の要因)を検出するように構成され得る
。請求イベントの検出に応えて、請求管理モジュールはユーザアカウントまたはユーザア
カウントにリンクされた支払アカウントに対する請求額を生成するように構成され得る。
仮想計算インスタンス234は、例えば、指定された計算能力(CPUの種類及び数、
メインメモリサイズ等を示すことにより指定されても良い)、及び指定されたソフトウェ
アスタック(例えば、これによりハイパーバイザの上位で稼動することができる、オペレ
ーティングシステムの特定のバージョン)を備える1つ以上のサーバを含み得る。異なる
実施形態において、ネットワークベースの仮想コンピューティングサービス200の計算
インスタンス234を実装するために、汎用または専用コンピュータサーバ、ストレージ
デバイス、ネットワークデバイスなどを含む、多数の異なる種類のコンピューティングデ
バイスが単独または組み合わされて使用されても良い。いくつかの実施形態では、インス
タンスクライアント202または他の任意の他のユーザはネットワークトラフィックを計
算インスタンス234に導くように構成(及び/または許可)され得る。
計算インスタンス234は種々の異なるプラットフォームを動作または実装しても良く
、このようなプラットフォームとしては、アプリケーションサーバインスタンス、Jav
a(登録商標)仮想マシン(JVM)、汎用もしくは専用オペレーティングシステム、R
uby、Perl、Python、C、C++などの様々なインタープリタ方式もしくは
コンパイラ方式のプログラミング言語をサポートするプラットフォームなど、または高性
能コンピューティングプラットフォームなどがあり、例えば、クライアント202がイン
スタンス234にアクセスする必要なく、クライアント202アプリケーションを行うの
に好適である。様々な異なる種類の計算インスタンスがあり得る。少なくともいくつかの
実施形態では、仮想コンピュータリソース動作をスケジュールするためのローリングリソ
ースクレジット残量を実施する計算インスタンスがあり得る。この種類のインスタンスは
リソースクレジットに基づき実行し、ここでリソースクレジットはインスタンスが物理的
なリソースの作業を行うのに費やすことができる時間(例えば、物理的なCPUの処理時
間、ネットワーク通信チャネルを活用する時間等)を表す。インスタンスがコンピュータ
リソースに対して有するリソースクレジットが多いほど、物理的なリソースが作業を実行
するのに費やし得る時間が長くなる(性能が増加する)。リソースクレジットはインスタ
ンスの起動時に提供されても良く、活用時間(例えば、CPU―分などのCPU時間)と
して定義されても良く、活用時間は、あるインスタンスの仮想リソースが基礎を成す物理
的なリソースのタスク実行に費やすことができる時間を表し得る。
様々な実施形態では、リソースクレジットはベースライン活用保証を超過した時間また
はリソースの活用を表し得る。例えば、計算インスタンスはリソースに対して10%のベ
ースライン活用保証を有しても良く、したがって、リソースクレジットはリソースの活用
が10%を超えるよう増加しても良い。残りのリソースクレジットが無い場合でも、やは
り10%のベースラインで計算インスタンスに活用が保証され得る。クレジット消費は、
インスタンスがベースライン性能を超える作業を行うために物理的なリソースを必要とす
る際にのみ発生し得る。いくつかの実施形態では、計算インスタンスがリソースのベース
ライン活用保証を消費する作業要求を送信するかどうかに関わらず、クレジットは更新さ
れるか、またはリソースクレジット残量に蓄積され得る。
コンピュータリソースをスケジュールするためのローリングリソースクレジットを実施
する異なる種類の計算インスタンスが供給され得る。異なる計算インスタンスは、特定の
数の仮想CPUコア、メモリ、キャッシュ、ストレージ、ネットワーキングならびに任意
の他の性能特性を有し得る。計算インスタンスの構成は、その位置、特定のデータセンタ
においては、利用可能ゾーン、地理、位置等及び(予約計算インスタンスの場合は)予約
期間の長さをさらに含み得る。異なる計算インスタンスは異なる仮想リソースに対して異
なるリソースクレジット蓄積率を有しても良く、計算インスタンスのために維持されるリ
ソースクレジットの現在の残量に蓄積する多数のリソースクレジットであっても良い。例
えば、いくつかの実施形態では、計算インスタンスのある種類は1つの仮想コンピュータ
リソースに対して1時間当たり6クレジットを蓄積しても良く、一方で別の種類の計算イ
ンスタンスは同じ種類の仮想コンピュータリソースに対して1時間当たり24クレジット
を蓄積しても良い。別の例では、同じ仮想計算インスタンスの1つのリソース(例えば、
vCPU)に対するリソースクレジット蓄積率は、別の仮想コンピュータリソース(例え
ば、ネットワーキングチャネル)に対するリソースクレジット蓄積率とは異なり得る。い
くつかの実施形態では、ある仮想計算インスタンスにより使用される複数の異なる仮想コ
ンピュータリソースに対して、その仮想計算インスタンスのために複数の異なるリソース
クレジット残量が維持され得る。ベースライン性能保証は、仮想コンピュータリソースの
それぞれに対してさらに実施されても良く、ベースライン性能保証は、異なるインスタン
ス種類に対して、ならびに各それぞれの仮想コンピュータリソースに対して異なり得る。
ベースライン性能保証は、いくつかの実施形態では、リソースクレジット蓄積率と共に
含まれ得る。したがって、一例では、インスタンス種類は、処理のための特定のリソース
クレジット蓄積率及び保証されたベースライン性能、ならびにネットワーキングチャネル
のための別の特定のリソースクレジット蓄積率及び保証されたベースライン性能率を含み
得る。このように、ネットワークベースの仮想コンピューティングサービス200は、異
なる仮想コンピュータリソースに対する異なる組み合わせのリソースクレジット蓄積率及
びベースライン保証を備える、多くの異なる種類のインスタンスを供給し得る。これらの
異なる構成は、リソースクレジット蓄積率及びベースライン性能率ならびに様々な物理的
及び/または仮想容量に従って、別々に価格設定され得る。いくつかの実施形態では、仮
想計算インスタンスは1時間毎の価格で予約及び/または活用され得る。一方、長期予約
インスタンス構成は異なる価格スキームを活用しても良いが、やはりクレジット蓄積率及
びベースライン性能保証を含む。
図2に例示する通り、いくつかの実施形態では、仮想化ホスト230a、230b〜2
30nなどの仮想化ホスト230は複数の計算インスタンス234を実装及び/または管
理しても良く、図9に関して以下に記載されるコンピューティングシステム1000など
の1つ以上のコンピューティングデバイスであっても良い。仮想化ホスト230は仮想化
管理モジュール232a、232b〜232nなどの仮想化管理モジュール232を含ん
でも良く、多数の異なるクライアントがアクセス可能な仮想マシンまたは計算インスタン
ス234をインスタンス化及び管理することができる。仮想化管理モジュール232は、
例えば、オペレーティングシステムのハイパーバイザ及び管理インスタンスを含んでも良
く、いくつかの実装では、「ドメインゼロ」または「dom0」と呼ばれ得る。dom0
オペレーティングシステムは、クライアントによりアクセスすることができず、その代り
に計算インスタンス234が動作するが、計算インスタンス234に導かれる、または計
算インスタンス234から導かれるネットワークトラフィックの処理を含め、ネットワー
クプロバイダの様々な管理または制御プレーン動作を代わりに担う。
クライアント202(複数可)は要求をネットワークベースの仮想コンピューティング
サービス200に送信するように構成可能な、任意の種類のクライアントを包含し得る。
例えば、所与のクライアント202は好適なバージョンのウェブブラウザを含み得るか、
あるいはウェブブラウザにより提供される実行環境への拡張として、または実行環境内で
実行するように構成されるプラグインモジュールもしくは他の種類のコードモジュールを
含んでも良い。代替的には、クライアント202はダッシュボードアプリケーション(ま
たはダッシュボードアプリケーションのユーザインターフェース)、メディアアプリケー
ション、オフィスアプリケーションまたは様々な動作を行うために計算インスタンス23
4を利用し得る任意の他のアプリケーションなどのアプリケーションを包含しても良い。
いくつかの実施形態では、係るアプリケーションは、あらゆる種類のネットワークベース
のデータの完全なブラウザサポートを必ずしも実装することなく、ネットワークベースの
サービス要求を生成及び処理するのに十分なプロトコルサポート(例えば、好適なバージ
ョンのハイパーテキスト転送プロトコル(HTTP)に対してのサポート)を含んでも良
い。いくつかの実施形態では、クライアント202は、リプリゼンテーショナル・ステー
ト・トランスファ(REST)型のネットワークベースのサービスアーキテクチャ、ドキ
ュメントまたはメッセージベースのネットワークベースのサービスアーキテクチャ、また
は別の好適なネットワークベースのサービスアーキテクチャに従って、ネットワークベー
スのサービス要求を生成するように構成されても良い。いくつかの実施形態では、クライ
アント202(例えば、計算クライアント)は、計算インスタンス324により提供され
る計算リソースを活用して、クライアント202上でのアプリケーション実装に透過的な
方式で、計算インスタンス234へのアクセスを提供するように構成されても良い。
クライアント202はネットワーク260を介してネットワークベースのサービス要求
をネットワークベースの仮想コンピューティングサービス200に伝送しても良い。様々
な実施形態では、ネットワーク260は、クライアント202とネットワークベースの仮
想コンピューティングサービス200との間のネットワークベース通信を構築するために
必要なネットワーキングハードウェア及びプロトコルの任意の好適な組み合わせを包含し
得る。例えば、ネットワーク260は、概して、集合的にインターネットを実装する様々
な電気通信ネットワーク及びサービスプロバイダを包含し得る。ネットワーク260は、
ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)など
のプライベートネットワーク、ならびに公衆またはプライベート無線ネットワークをさら
に含んでも良い。例えば、所与のクライアント202及びネットワークベースの仮想コン
ピューティングサービス200の両方が、それぞれ、独自の内部ネットワークを有する企
業内で整備されても良い。係る実施形態では、ネットワーク260は、所与のクライアン
ト202とインターネットとの間、ならびにインターネットとネットワークベースの仮想
コンピューティングサービス200との間のネットワーキングリンクを構築するために必
要なハードウェア(例えば、モデム、ルータ、スイッチ、ロードバランサ、プロキシサー
バ等)及びソフトウェア(例えば、プロトコルスタック、会計ソフトウェア、ファイアウ
ォール/セキュリティソフトウェア等)を含んでも良い。いくつかの実施形態では、クラ
イアント202は、公衆インターネットよりもむしろプライベートネットワークを使用し
て、ネットワークベースの仮想コンピューティングサービス200と通信しても良いこと
が留意される。
図3はいくつかの実施形態に係る、仮想コンピュータリソースをスケジュールするため
にローリングリソースクレジットを実施する仮想化ホストを例示するブロック図である。
上記の図2で述べる通り、仮想化ホストは1つ以上の仮想計算インスタンスのためのホス
トプラットフォームとして機能し得る。これらの仮想計算インスタンスは仮想化されたハ
ードウェアインターフェースを活用し、様々なタスク、機能、サービス及び/またはアプ
リケーションを行い得る。これらのタスクの実行の一部として、仮想計算インスタンスは
、それぞれの計算インスタンスに対するそれぞれの物理的なコンピュータリソース上で作
業を行うために、仮想化ホストで実装される仮想化されたコンピュータリソース(例えば
、物理的なCPU(複数可)に対する仮想プロキシとして機能し得る仮想中央処理装置(
複数可)(vCPU))を活用し得る。
図3は仮想化ホスト310を例示する。仮想化ホスト310は、計算インスタンス33
0a、330b、330c〜330nをホストし得る。少なくともいくつかの実施形態で
は、計算インスタンス330は同じ種類の計算インスタンスであっても良い。図3では、
計算インスタンス330は仮想コンピュータリソースをスケジュールするためのローリン
グリソースクレジットを実施する計算インスタンスである。仮想化ホスト310は、仮想
計算インスタンス330と物理的なコンピューティングリソース(複数可)340との間
の様々なインターフェース(例えば、様々なハードウェア構成要素、プロセッサ、入出力
デバイス、ネットワーキングデバイス等)を処理し得る仮想化管理モジュール320をさ
らに実装し得る。
図3では、仮想化管理モジュール320はローリングリソースクレジット残量スケジュ
ーラ324を実装し得る。ローリングリソースクレジット残量スケジューラ324はメタ
スケジューラとして機能しても良く、それぞれの計算インスタンス330に対して全ての
リソースクレジット残量を管理、追跡、適用、差し引き、及び/または別の方法で処理す
る。様々な実施形態では、ローリングリソースクレジット残量スケジューラ324は計算
インスタンスから仮想計算リソース作業要求332を受信するように構成され得る。各作
業要求332は作業を送信した計算インスタンスに対応する仮想コンピュータリソースに
向けて導き得る。各要求332に対し、ローリングリソースクレジット残量スケジューラ
は、要求している計算インスタンス330に対する現在のリソースクレジット残量を判定
し、作業要求を行う際にリソースクレジットを適用するスケジューリング命令を生成する
ように構成され得る。いくつかの実施形態では、ローリングリソースクレジット残量スケ
ジューラ324はスケジューリング命令の実行を行うか、スケジューリング命令の実行を
命令し、実行対象の基礎を成す物理的なコンピューティングリソース340に作業要求を
導くか、または送信し得る。例えば、いくつかの実施形態では、異なるハードウェアキュ
ーが実施され、ローリングリソースクレジット残量スケジューラ324は適用されたリソ
ースクレジット(例えば、適用されたリソースクレジットの時間量に従ったタスクのキュ
ーイング)に従って、キューの作業要求を行うためのタスクを配置するために使用され得
る。しかしながら、いくつかの実施形態では、リソーススケジューリング命令は仮想計算
リソーススケジューラ322に送信されても良く334、仮想計算リソーススケジューラ
322は仮想化ホスト310で実装され得る、CPU(複数可)などの物理的なリソース
340に対するスケジューラであっても良い。ローリングリソースクレジット残量スケジ
ューラ324は、リソースクレジットを適用し、リソースクレジットを差し引き、及び/
または別の方法で作業要求が適用されたリソースクレジットに従って行われることを保証
するために、図5〜図7に関して以下に記載される様々な技法を行うように構成されても
良い。
いくつかの実施形態では、スケジューリング命令を受信することに応えて、仮想計算リ
ソーススケジューラ322は、様々な実施形態では、作業要求336に対する物理的なス
ケジューリング命令を物理的なCPU(複数可)などの物理的なコンピューティングリソ
ースに提供し得る。少なくともいくつかの実施形態では、仮想計算リソーススケジューラ
322は、1つ以上のCPUに対するクレジットベースのスケジューラであっても良い。
ローリングリソースクレジット残量スケジューラ324はクレジット残量及び使用量指
標362を監視エージェント326にさらに報告しても良く、監視エージェント326は
、次にこれらの指標を任意の他のホスト指標364(健全性情報等)と共にリソース監視
モジュール218に報告しても良い。
図2に関して上記の通り、仮想コンピューティングリソースプロバイダに対するネット
ワークベースのインターフェースが図式化して実装され得る。図4はいくつかの実施形態
に係る、仮想計算インスタンスに対するローリングクレジット指標を提供するインターフ
ェースの一例の説明図である。ローリングリソースクレジットインターフェース400は
様々なクライアントにアクセス可能なネットワークベースのサイトとして実装され得る。
いくつかの実施形態では、ローリングリソースクレジットインターフェース400は、A
PIなどのプログラマチックインターフェースを介して、ネットワークベースの仮想コン
ピューティングリソースプロバイダと通信し得る、ダウンロード可能なアプリケーション
、またはローカルに実行されるアプリケーションとして実装され得る。
エリア410は、指標データが表示され得る様々なインスタンスのリストを例示する。
セレクタ412a、412b、412c、414a、414b及び414cなどの様々な
異なるユーザインターフェース要素を実装して、どの物理的なリソース及び特定のインス
タンスデータを読み出すべきかを示しても良い。エリア420は、表示用に選択され得る
異なる種類の指標データを例示する。例えば、いくつかの実施形態では、特定のインスタ
ンスに対するリソースクレジット残量指標422、及び選択されたインスタンスによるリ
ソースクレジット使用量424を選択しても良い。いくつかの実施形態では、特定のイン
スタンスに対するクレジット更新率が例示され得る。エリア430はインスタンス指標表
示エリアを表し得る。読み出されたインスタンス指標は様々な形式(例示の線グラフ、図
、表または任意の他の図式またはテキストデータ表現技法など)で表示されても良い。エ
リア440は表示された指標データの形式を変更するための異なるユーザインターフェー
ス要素を表し得る。例えば、表示設定444が選択されると、ポップウィンドウまたはダ
イアログボックスが開き、これによりデータを表示する時間範囲などの異なる表示設定を
修正することが可能になり得る。表示指標要素442が選択されると、行われた変更が実
行され、インスタンス指標表示430に表示されるデータを生成または再生成し得る。エ
クスポート指標446要素はユーザにより指定された場所にダウンロードまたは記憶され
る未処理の指標データを抽出するための様々な機構を提供するように構成され得る(例え
ば、ファイルダイアログウィンドウを開く)。ツール要素448は、指標データを基に、
様々な異なるツール、分析または他の推奨エンジンを実行するように選択可能であり得る
。例えば、インスタンス種類を(例えば、より大きいまたはより小さいバースト処理イン
スタンスに)変更するかどうかを推奨するツールが選択され得る。
図4の例示及び添付の記載はグラフィカルユーザインターフェースの一例を提供するこ
とを意図するにすぎないことに留意されたい。グラフィカルインターフェースを含まない
、様々な他の構成及びインターフェースが実装されても良く、したがって、前述の例は限
定を意図するものではない。例えば、上記に説明したデータ、指標または他の情報に対す
る様々な要求がプログラマティックインターフェース(API)を介して仮想コンピュー
ティングリソースプロバイダから要求されても良く、未処理のデータが要求中のクライア
ントに戻されても良い。例えば、クライアントが仮想コンピューティングリソースプロバ
イダのAPIを介して、特定の計算インスタンスに対するクレジット使用量及び更新率を
要求した場合、そのクライアントのための指標または追跡情報がクライアントに提供され
ても良い。
図2〜図4に関して上記に説明した仮想コンピューティングリソースをスケジュールす
るためにローリングリソースクレジットを実施する例は、ネットワークベースのコンピュ
ーティングリソースサービスにより供給される仮想コンピューティングリソースに関して
与えられた。仮想コンピューティングリソースの様々な他の種類または構成はこれらの技
法を実施しても良く、これらの技法はネットワークベースのサービスの一部として供給さ
れても良く、または供給されなくても良い。例えば、他の仮想コンピューティングリソー
スは、より短い期間でバースト処理または他のバースト活用に高性能レベルで利用可能で
あることを望み、例えば、仮想コンピューティングリソースをスケジュールするためのロ
ーリングリソースクレジットを実施し得る。図5はいくつかの実施形態に係る、仮想コン
ピュータリソースをスケジュールするためにローリングリソースクレジットを実施する様
々な方法及び技法を例示する高レベルフロー図である。これらの技法は、図2〜図4に関
して上記に記載したネットワークベースの仮想コンピューティングサービスの様々な構成
要素または他の仮想コンピューティングリソースホストを使用して実施され得る。
510に示す通り、1つ以上の仮想コンピュータリソースに対する作業要求が仮想計算
インスタンスに対する仮想化ホストで受信され得る。要求は仮想コンピュータリソース(
例えば、処理、ネットワーキング、ストレージ等)を識別し得る。作業要求は作業要求を
完了するために行われる作業量またはタスク量を識別し得る。
520に示す通り、仮想コンピュータリソースそれぞれ計算インスタンスに対する現在
のリソースクレジット残量が判定され得る。リソースクレジット蓄積率は、様々な実施形
態では、期間中に未使用である現在のリソースクレジット残量に追加されるいくつかのリ
ソースクレジットであり得る。例えば、リソースクレジット蓄積率が1時間当たり12リ
ソースクレジットに設定されると、その後、その時間中に消費されない全てのリソースク
レジットが現在のリソースクレジット残量の合計に追加され得る(例えば、12のうち9
が使用されていないと、9が追加され得る)。いくつかの実施形態では、リソースクレジ
ット蓄積率は仮想計算インスタンスに対するベースライン活用または性能保証に一致し得
る。現在のリソースクレジット残量が高いほど、仮想計算インスタンスが仮想コンピュー
タリソースを使用してより高いレベルの性能を持続することができる時間がより長くなり
得る。複数の異なるリソースクレジット残量が異なる仮想コンピュータリソースに対して
実施されても良いため、判定されたクレジットリソース残量は作業要求を行う仮想コンピ
ュータリソースに固有であり得る。
少なくともいくつかの実施形態では、リソースクレジット蓄積は特定の期間に限定され
得る。したがって、リソースクレジット蓄積期間より前に蓄積された未使用のリソースク
レジットは、現在のリソースクレジット残量に含むことはできない。例えば、いくつかの
実施形態では、リソースクレジット蓄積時間は24時間であっても良く、所与の時点の前
の24時間より以前に蓄積された任意の未使用のリソースクレジットを除外する。様々な
実施形態では、現在のリソースクレジット残量に利用可能な少なくとも1つのリソースク
レジットは、現在の期間の前の期間から繰り越される。
530に示す通り、スケジューリング命令を生成して、1つ以上のリソースクレジット
を適用することに少なくとも部分的に基づき、作業要求を行っても良い。したがって、ス
ケジューリング命令は、いくつかの実施形態では、仮想コンピュータリソース(複数可)
に対して、または仮想コンピュータリソース(複数可)としての作業要求を行う基礎を成
す物理的なコンピュータリソース(複数可)が活用される継続期間を指定しても良い。い
くつかの実施形態では、生成されたスケジューリング命令は、物理的なコンピュータリソ
ース(複数可)に対するタスクまたはハードウェアキューとして実施されても良い。いく
つかの実施形態では、別のスケジューラまたは仮想コンピュータリソースドライバもしく
はマネジャが命令を、入力、パラメータ及び/または他の情報として受信しても良く、同
時に物理的なリソース(複数可)での作業要求の実行を命令する。以下に説明する図7は
、リソースクレジットが作業要求を行うのに利用不可能な際に利用可能なリソースクレジ
ットを適用するため、ならびにシナリオを処理するための様々な技法を記載する。540
に示す通り、適用されたリソースクレジット(複数可)を差し引くために、現在のリソー
スクレジット残量が更新され得る。
図5に記載の様々な要素は、いくつかの実施形態では、異なる物理的なリソースに依存
する異なる仮想コンピュータリソースに対して作業要求を行うために、複数回繰り返され
ても良いことに留意されたい。追加的に、要素の異なる並び替えが行われても良い。した
がって、例示及び上記の説明は限定を意図するものではない。
図6はリソースを処理するために、図5に関して上記に記載した様々な技法を行うため
の一例を例示する。610に示す通り、仮想計算インスタンスの1つ以上の仮想中央処理
装置(vCPU)に対する作業要求は、仮想計算インスタンスをホストする仮想化ホスト
のための仮想化マネジャで受信され得る。作業要求は仮想計算インスタンスの1つ以上の
vCPUにより行われる特定のプロセス、タスクまたは他のアクションを対象としても良
い。例えば、特定のプロセスは、仮想計算インスタンスにより行われるか、実行される特
定のプログラムまたはアプリケーションを実施する、1つ以上の命令を実行することであ
っても良い。作業要求は、いくつかの実施形態では、使用される処理の負荷または処理量
を示し得る。
620に示す通り、リソースクレジット蓄積率に従ってアイドル状態のvCPU期間に
対してリソースクレジットを蓄積する計算インスタンスに対する現在のリソースクレジッ
ト残量が判定されても良い。上記の通り、リソースクレジット蓄積率は、様々な実施形態
では、期間中にアイドル状態である仮想インスタンスに対して現在のリソースクレジット
残量に追加されるいくつかのリソースクレジットであり得る。例えば、リソースクレジッ
ト蓄積率が1時間当たり12リソースクレジットに設定されると、その後、その時間中に
消費されない全てのリソースクレジットが現在のリソースクレジット残量の合計に追加さ
れ得る(例えば、12のうち9が使用されていないと、9が追加され得る)。いくつかの
実施形態では、リソースクレジット蓄積率は仮想計算インスタンスに対するベースライン
活用または性能保証に一致し得る。例えば、仮想計算インスタンスに対するベースライン
活用または性能保証が1時間の期間で10%の場合、仮想計算インスタンスは物理的なC
PU(複数可)上で6分間の独占的な処理時間を有すると言えるだろう。これらの6分が
全く使用されないか、またはこれらの6分の一部分のみが使用される場合、残りの分数が
次の期間(例えば、次の1時間)に効果的に繰り越され得る。物理的なCPUが要求され
た作業を行う際にリソースクレジットを消費し得るため、現在のリソースクレジット残量
が高いほど、仮想計算インスタンスがより高いレベルの性能を持続することができる時間
がより長くなり得る。
630に示す通り、いくつかの実施形態では、スケジューリング命令を生成して、判定
された現在のリソースクレジット残量に少なくとも部分的に基づき、作業要求を行っても
良い。スケジューリング命令は、1つ以上の物理的な中央処理装置(CPU)に対するタ
スクまたは作業をスケジュールするスケジューラに送信される形式で生成され得る。これ
らのCPU(複数可)は、上記に説明の通り、仮想化ホストがそれ自体のvCPU(複数
可)に命令する作業要求の実際の処理を行い得る。命令自体は現在の期間に対して物理的
なCPU(複数可)の活用を増加するために、リソースクレジット(利用可能な場合)を
適用するように構成され得る。リソースクレジットは物理的なCPUが仮想計算ホストに
より独占的に活用され得る作業量または時間を表し得る。したがって、命令は、スケジュ
ーラが適用されたリソースクレジットに等しいフル活用の時間を確実にスケジュールする
ように構成され得る。例えば、物理的なCPU(複数可)に対するスケジューラは、特定
の仮想計算インスタンスに対する作業要求をどのように処理すべきかを命令する、異なる
パラメータを受信するように構成され得る。これらのパラメータは、タイムスライス、優
先度、比例分配、会計期間及び/または容量のサイジングを含み得るが、これに限定され
ない。少なくともいくつかの実施形態では、スケジューラは比例的で公平な分配スケジュ
ーラを提供するクレジットベースのスケジューラであっても良い。図7に関して以下に説
明する通り、現在のリソースクレジット残量のリソースクレジットが作業要求の完了の前
に使い果たされると(または作業要求の実行の開始時に無い場合)、生成された命令は、
ベースライン性能要件(例えば、10%、20%または40%のCPU活用)に従って作
業要求を実行するか、または作業要求の性能を徐々に低下させ、特定の期間の経過後にベ
ースライン性能要件に等しくするように構成され得る。
640に示す通り、様々な実施形態では、スケジューリング命令は、その後、物理的な
CPU(複数可)のためのスケジューラに送信され得る。スケジューリング命令の送信は
、生成されたスケジューリング命令に従って作業要求の性能をスケジュールするために、
様々なパラメータ及び/または他の情報を伝達しながら、スケジューラをプログラムでコ
ール、呼び出し、または起動して、作業要求を行わせることを含み得る。550に示す通
り、作業要求を行う際に適用されるリソースクレジットを差し引くために、現在のリソー
スクレジット残量が更新され得る。
図6に記載する様々な要素は、いくつかの実施形態では、作業要求の様々なサブ部分を
行うために、複数回繰り返され得ることに留意されたい。追加的に、スケジューリング命
令をスケジューラに送信する前にリソースクレジット残量を更新するなど、要素の異なる
並び替えが行われても良い。したがって、例示及び上記の説明は限定を意図するものでは
ない。
上記の通り、リソースクレジットは、特定の仮想計算インスタンスが1つ以上のCPU
などの物理的なリソースを活用し得る時間量を上昇し得る。反対に、リソースクレジット
の不足は物理的なリソースの活用を低下させ得る。図6はいくつかの実施形態に係る、仮
想計算インスタンスに対する作業要求に利用可能なリソースクレジットに従って、物理的
なコンピュータリソースの活用を低下または上昇する様々な方法及び技法を例示する高レ
ベルフロー図である。
610に示す通り、様々な実施形態では、作業要求を行うためのリソースクレジットを
適用するために、仮想計算インスタンスに対する現在のリソースクレジット残量が確認さ
れ得る。620からの肯定的な出口により示される通り、適用するリソースクレジットが
ある場合、リソースクレジットが適用され、640に示す通り、仮想計算インスタンスに
対する作業要求を行うための物理的なリソース(複数可)の活用が増加されても良い。リ
ソースクレジットは、以前に述べた通り、作業要求を行うための物理的なリソースを活用
する追加時間を提供し得る。例えば、仮想計算インスタンスに対するベースライン処理率
が毎時6分(例えば、10%の活用)の場合、追加の1分と同等である追加のコンピュー
ティングリソースクレジットを追加することは、vCPU(複数可)に向かって導かれる
作業要求に対してプロセス活用率を毎時7分(例えば、11.667%の活用)に上昇さ
せ得る。
しかしながら、620からの否定的な出口により示される通り、適用するリソースクレ
ジットが残っていない場合、作業要求を行うための物理的なリソースの活用は仮想計算イ
ンスタンスにおいて仮想リソースに対するベースライン活用率まで徐々に低下され得る。
例えば、仮想計算インスタンスに対するvCPUの現在の活用(例えば、25%)が特定
の期間(例えば、15分)にわたり拡散して徐々に低下し、次第に活用率を低下し得る。
したがって、仮想計算インスタンスにおいてvCPUに対するベースライン活用率が10
%の場合、15%の活用は15分の期間にわたる均一な(またはほぼ均一な)拡散率への
個別変化に分かれ得る。活用を徐々に低下させることにより、リソースクレジットが不足
している仮想計算インスタンス(及び仮想計算インスタンスとの任意のクライアントまた
はシステム相互作用)が急激な性能低下に直面することを防ぎ得る。
特定のクライアントに対して独占的なリソースを提供する仮想計算インスタンスとは異
なり、仮想コンピュータリソースをスケジュールするためのローリングリソースクレジッ
トを実施する仮想インスタンスの動作または使用は、割り当てられたリソースの活用が、
仮想計算インスタンスを購入または予約した特定のクライアントのニーズを十分に満たし
ているかどうかを判定するために分析する必要があり得る。クライアントまたは顧客は、
クライアントまたは顧客がローリングリソースクレジットを提供する特定の種類の計算イ
ンスタンスを適切に選択したかどうかを判断することを望み得る。例えば、中位のリソー
スクレジット蓄積率を提供する仮想計算リソースを予約した顧客は、使用されたクレジッ
ト及び/またはクレジット残量の履歴を基に、より小さいまたはより大きい仮想計算イン
スタンスが適切であり得るかどうかを判断することができ得る。図8はいくつかの実施形
態に係る、仮想コンピュータリソースをスケジュールするためにローリングクレジットリ
ソースを実施する仮想計算インスタンスに対するデータ指標を記録及び活用する様々な方
法及び技法を例示する高レベルフロー図である。
810に示す通り、クレジット残量指標は仮想計算インスタンスに対して経時的な現在
のリソースクレジット残量に対して記録され得る。現在のリソースクレジット残量は種々
の精度レベルで記録され得る。例えば、いくつかの実施形態では、現在のリソースクレジ
ット残量は変化が発生した際(例えば、残量の増加または減少)にのみ記録され得る。別
の例では、変化が全く発生しなかったとしても、現在のリソースクレジット残量を記録す
る間の非常に短い経過期間である。いくつかの実施形態では、クライアント、管理者また
は他のユーザは、データが記録される時間間隔の精度を調整することができ得る。クレジ
ット残量指標は、データベースなどの永続データストレージシステムに記憶され得る。デ
ータ指標は選択的に読出し可能となるよう、データベースに記憶され得る。例えば、デー
タベースに指標を記憶することにより、特定のクエリは、データセット全体の指標を返す
ことなく、特定の範囲の情報、最小値、最大値または他のより専門的もしくは選択データ
セットを取得することが可能になり得る。
820に示す通り、仮想計算インスタンスに対して経時的に作業要求を行うために、適
用されたリソースクレジットに対するクレジット使用量指標が記録され得る。クレジット
残量指標と同様に、クレジット使用量指標は異なる時間に記憶もしくは記録されるか、ま
たは異なるイベントに応えて記憶もしくは記録され得る。例えば、いくつかの実施形態で
は、使用値は作業要求を行うための特定のクレジットが適用される度に記録され得る。代
替的には、全体の作業要求に適用されるクレジットの量(例えば、30)などの、総計使
用量は単一のデータポイントとして表され得る。当然ながら、これらの2つの例の間にあ
る様々な他の組み合わせまたは精度が実装されても良い(例えば、作業要求に対する合計
費用である9クレジットのうちの4適用クレジットなど、特定の作業要求の一部を行うた
めに使用される適用されたクレジットを記録する)。上記に説明したクレジット残量指標
と同様に、クレジット使用量指標は、選択的に維持されるように記憶され得る。例えば、
データベースに指標を記憶することにより、特定のクエリは、データセット全体の指標を
返すことなく、特定の範囲の情報、最小値、最大値または他のより専門的もしくは選択デ
ータセットを取得することが可能になり得る。
仮想計算インスタンスに対して記録された指標は様々な方法で使用され得る。指標のラ
イブ報告またはストリーミングは、例えば、現在の仮想リソース情報を一瞥で提供するダ
ッシュボードまたは他のユーザインターフェースに新規指標を記録する際に行われ得る。
特に、いくつかの実施形態では、クレジット残量及びクレジット使用量に対する指標は、
要求に応えてクライアントに提供され得る。例えば、830に示す通り、インターフェー
スを介して、仮想計算インスタンスのクレジット残量指標及び/またはクレジット使用量
指標に対する要求が受信され得る。インターフェース212と同様に、インターフェース
はネットワークベースのインターフェース(例えば、インターネットなどのネットワーク
を介してアクセス可能)であっても良く、様々なグラフィカルまたはプログラム式の通信
方法を提供し得る。例えば、いくつかの実施形態では、ネットワークベースのインターフ
ェースはアプリケーションプログラミングインターフェース(API)であっても良い。
データに対する特定の要求は、返される特定のデータセットに対する様々な異なるパラメ
ータまたは制約を含むAPIに従って形式化されても良い。同様に、ウェブサイトまたは
他の表示可能なアプリケーションのためにホストまたは実装され得るようなグラフィカル
インターフェースは、提供される特定の情報(図4に関して上記に説明したものなど)を
ユーザが選択することを可能にし得る。要求の受信に応えて、840に示す通り、要求さ
れた指標(使用量指標の一部か、使用量指標を全く含まないか、使用量指標の全ては、ネ
ットワークベースのインターフェースを介して(例えば、APIまたは要求者の閲覧用に
表示される図式もしくはテキストデータに従って形式化された応答を介して)は戻され得
る。
いくつかの実施形態では、様々な異なる動的ツール、モニタ、構成要素または他のデバ
イスを使用して指標データを分析しても良い。いくつかの実施形態では、仮想コンピュー
ティングリソースプロバイダネットワークのクライアントは、トリガされ得るアラーム及
び通知を定義し、修正し、または設定しても良い。850に示す通り、様々な実施形態で
は、仮想計算インスタンスに対するクレジット残量指標及びユーザ値指標が監視されても
良い。例えば、特定の変化または急激な変化に対して現在の値(例えば、現在のリソース
クレジット残量またはクレジット使用値)が評価されても良い。860に示す通り、例え
ば、リソースクレジット使用量が急増するか、または何らかの閾値を超える際、アラーム
がトリガされても良い。長期的な傾向及び他の種類の情報は、仮想計算インスタンスに対
するクレジット残量及び/またはクレジット使用量指標を監視することから収集されても
良い。860に示す通り、例えば、長期的な傾向が低いクレジット使用(または98%な
どの特定の時間パーセンテージに対して高い現在のリソースクレジット残量を有する)を
示す場合、アラームがトリガされても良い。より一般的には、アラームは、様々な方法で
クレジット残量指標及び/またはクレジット使用量指標を評価するように構成され得る。
860からの否定的な出口に示す通り、アラームがトリガされない場合、クレジット残量
指標及び/または使用量指標の監視が継続され得る。
860からの肯定的な出口に示す通り、様々な実施形態では、アラームがトリガされる
と、870に示す通り、トリガされるアラームの通知が提供され得る。例えば、メッセー
ジングシステム(例えば、音声、テキストまたは電子メール)を使用してアラームの所有
者/作成者または責任者(仮想コンピューティングリソースプロバイダネットワークのク
ライアント/顧客であっても良い)にアラームをトリガしたインスタンスに対して通知し
ても良い。アラームの通知を提供することに加え、いくつかの実施形態では、自動または
プログラム式のアクションを行い、アラームを解消するか、アラームに反応しても良い。
例えば、特定の仮想インスタンスに高いリソースクレジット活用が見られる場合、仮想イ
ンスタンスにより行われる作業の一部を別の仮想化ホスト上の別の仮想インスタンスにシ
フトして、特定の処理を行う仮想計算インスタンスの数を拡大しても良い。
記録されたリソースクレジット残量指標及び/またはリソースクレジット使用量指標を
個別の仮想コンピュータインスタンスベースでクライアントまたはその他に提供すること
に加え、ネットワークベースの仮想コンピューティングサービスプロバイダあるいは他の
実装者、オペレータ、管理者または他の制御システムもしくはエージェントは、ネットワ
ークベースの仮想コンピューティングリソースプロバイダの動作及び性能への全体的な洞
察力を有するクレジット残量指標及び/またはリソースクレジット使用量指標の総括的な
考察を見出し得る。
例えば、いくつかの実施形態では、システム管理者、制御システムまたは他の構成要素
は、特定の仮想計算インスタンスを検出するために熱または競合管理を実施しても良く、
特定の仮想計算インスタンスとは、過剰なトラフィックを受信しているため、クライアン
トに対するサービス保証を満たすことができていないか、特定のホスト(例えば、競合)
上の仮想計算インスタンス間に過剰な対立アクティビティがあり得るかのいずれかである
。図2のリソース監視モジュール218に関して上記に説明した通り、仮想化ホスト上の
各仮想計算インスタンスに対する記録データは共に集計され得る。その後、集計された指
標を基に、仮想化ホストに関する管理決定が行われ得る。例えば、仮想化ホスト上の異な
る仮想計算インスタンスに対する使用量指標が類似する時間に出現してvCPU上の作業
を要求する際、使用量指標はその仮想化ホスト上の仮想インスタンス間の何らかの競合レ
ベルを示しても良い。競合レベルが何らかの最大競合閾値を超過する場合、1つ以上の仮
想計算インスタンスが異なる仮想化ホスト上で移動または再開しても良く、コンピューテ
ィングリソースを開放し、残りの仮想計算インスタンスの作業要求をより優れた柔軟性で
行い得る。
仮想計算インスタンス動作の報告に依存する(または単独で依存する)代わりに、いく
つかの実施形態では、制御プレーン、システム管理者、健全性構成要素または他のシステ
ムもしくはデバイスは、ベンチマークインスタンスを起動して、仮想化ホスト上の他の仮
想計算インスタンスと一緒に実行され得る。これらのベンチマークインスタンスは、vC
PUに対して作業量の特定のサイズまたは種類を要求するなど、係る要求が他の仮想計算
インスタンスに対する作業要求の性能に及ぼし得る影響をテストするために、特定の種類
のアクションを行うように構成され得る。ベンチマークインスタンスは、ベンチマークイ
ンスタンスのテスト結果を回収し、かつリソース監視モジュール218などの報告モジュ
ールまたはサービスに直接報告するようにさらに構成され得る。前述の例は限定ではなく
、ローリングクレジットリソースに対する回収された指標が使用され得る多くの異なる方
法の一部を意図することに留意されたい。
本開示の実施形態は、以下の条項を考慮して説明することができる。
1.少なくとも1つのそれぞれのプロセッサ及びメモリを備え、仮想化ホストを実装す
る計算ノードと、
1つ以上の中央処理装置(vCPU)に対する作業要求を仮想計算インスタンスから受
信することと、
それぞれの期間に対する固定率に少なくとも部分的に基づき、リソースクレジット蓄積
率が現在のリソースクレジット残量に適用され、前記現在のリソースクレジット残量の少
なくとも1つのリソースクレジットが現在の期間の前の期間に対する前記現在のリソース
クレジット残量に蓄積される、前記vCPUそれぞれの前記仮想計算インスタンスに対す
る前記現在のリソースクレジット残量を計算することと、
1つ以上のスケジューリング命令は前記仮想計算インスタンスに対する前記現在のリソ
ースクレジット残量の1つ以上のリソースクレジットの適用に少なくとも部分的に基づき
生成され、前記作業要求に適用された前記1つ以上のリソースクレジットのそれぞれを、
前記現在の期間に対して前記それぞれの少なくとも1つのプロセッサの活用を相応して増
加させる、前記計算ノードの前記それぞれの少なくとも1つのプロセッサを活用して性能
に対する前記作業要求をスケジュールするために、前記1つ以上のスケジューリング命令
を生成することと、
前記作業要求を行うために適用された前記1つ以上のリソースクレジットを差し引くた
めに、前記現在のリソースクレジット残量を更新することと
を行うように構成される実行可能命令を備える前記仮想化ホストと
を備えるシステム。
2.前記1つ以上のスケジューリング命令の生成において、前記仮想化ホストはさらに

前記1つ以上のリソースクレジットを前記作業要求に適用した後で、
前記現在のリソースクレジット残量に前記作業要求に適用するための残りのリソースク
レジットが無いという判定に応えて、前記それぞれの少なくとも1つのプロセッサが前記
仮想計算インスタンスに対するベースライン活用まで徐々に低下されるよう、前記1つ以
上のスケジューリング命令の少なくとも一部を構成する
ように構成される、条項1に記載のシステム。
3.前記仮想化ホストは、経時的な前記仮想計算インスタンスに対する前記現在のリソ
ースクレジット残量及び経時的な前記仮想計算インスタンスに対する作業要求のために適
用されたリソースクレジットを追跡するように構成される監視エージェントを備え、
前記計算ノードが共にネットワークベースの仮想コンピューティングサービスを実施す
る複数の計算ノードの一部として実装され、前記ネットワークベースの仮想コンピューテ
ィングサービスは前記ネットワークベースの仮想コンピューティングサービスのクライア
ントに経時的な前記仮想計算インスタンスに対する前記現在のリソースクレジット残量及
び経時的な前記仮想計算インスタンスに対する作業要求のために適用されたリソースクレ
ジットを提供するように構成されるネットワークベースのインターフェースを備える、
条項1に記載のシステム。
4.前記仮想計算インスタンスは、前記ネットワークベースの仮想コンピューティング
サービスを介して供給される複数の異なる種類の仮想計算インスタンスのうちの1つであ
り、前記異なる種類の仮想計算インスタンスのそれぞれが異なるそれぞれのリソースクレ
ジット蓄積率に対応する、条項3に記載のシステム。
5.1つ以上のコンピューティングデバイスにより、
仮想化ホストに対する仮想化マネジャで、前記仮想化ホスト上でホストされる仮想計算
インスタンスの1つ以上のコンピュータリソースに対する作業要求を受信することと、
それぞれの期間に対する固定率に少なくとも部分的に基づき、リソースクレジット蓄積
率が現在のリソースクレジット残量に適用され、前記現在のリソースクレジット残量の少
なくとも1つのリソースクレジットが現在の期間の前の期間に対する前記現在のリソース
クレジット残量に蓄積される、前記1つ以上のコンピュータリソースそれぞれの前記仮想
計算インスタンスに対する前記現在のリソースクレジット残量を判定することと、
1つ以上のスケジューリング命令は前記仮想計算インスタンスに対する前記現在のリソ
ースクレジット残量の1つ以上のリソースクレジットの適用に少なくとも部分的に基づき
生成され、前記作業要求に適用された前記1つ以上のリソースクレジットのそれぞれは、
前記現在の期間に対して前記少なくとも1つの物理的なコンピュータリソースの活用を相
応して増加させる、前記仮想化ホストの一部として実装される1つ以上の物理的なコンピ
ュータリソースにおける性能に対する前記作業要求をスケジュールするために、前記1つ
以上のスケジューリング命令を生成することと、
前記作業要求を行うために適用された前記1つ以上のリソースクレジットを差し引くた
めに、前記仮想計算インスタンスに対する前記現在のリソースクレジット残量を更新する
ことと
を行う方法。
6.前記受信、前記判定、前記生成及び前記更新は複数の異なる作業要求に対して行わ
れ、
前記複数の異なる作業要求のそれぞれに対して前記判定された現在のリソースクレジッ
ト残量をクレジット残量指標として記録することと、
前記複数の異なる作業要求のそれぞれに対して前記適用された1つ以上のリソースクレ
ジットをクレジット使用量指標として記録することと
をさらに備える、条項5に記載の方法。
7.ネットワークベースのインターフェースを介して、前記仮想計算インスタンスに対
する前記クレジット残量指標の少なくとも一部に対する要求を受信することと、
前記要求の受信に応えて、前記ネットワークベースのインターフェースを介して、前記
仮想計算インスタンスに対する前記クレジット残量指標の少なくとも一部を提供すること

をさらに備える、条項6に記載の方法。
8.ネットワークベースのインターフェースを介して、前記仮想計算インスタンスに対
する前記クレジット使用量指標の少なくとも一部に対する要求を受信することと、
前記要求の受信に応えて、前記ネットワークベースのインターフェースを介して、前記
仮想計算インスタンスに対する前記クレジット使用量指標の少なくとも一部を提供するこ
とと
をさらに備える、条項6に記載の方法。
9.前記仮想計算インスタンスに対する前記クレジット残量指標または前記クレジット
使用量指標を監視することと、
前記監視に少なくとも部分的に基づき、前記仮想計算インスタンスに対するアラームイ
ベントを検出することと、
前記アラームイベントの検出に応えて、前記仮想計算インスタンスに対する前記アラー
ムイベントの通知を提供することと
をさらに備える、条項6に記載の方法。
10.前記スケジューラに送信するための前記1つ以上のスケジューリング命令の前記
生成は、
前記1つ以上のリソースクレジットを前記作業要求に適用した後で、
前記現在のリソースクレジット残量に前記作業要求に適用するための残りのリソースク
レジットが無いことを判定することと、
残りのリソースクレジットが無いという判定に応えて、前記1つ以上の物理的なコンピ
ューティングリソースの活用が前記仮想計算インスタンスに対するベースライン活用まで
徐々に低下されるよう、前記1つ以上の生成されたスケジューリング命令の少なくとも1
つを構成することと
を備える、条項5に記載の方法。
11.前記1つ以上のコンピュータリソースが1つ以上の仮想中央処理装置(vCPU
)であり、前記1つ以上の物理的なコンピュータリソースが1つ以上の中央処理装置(C
PU)であり、前記方法が前記1つ以上のスケジューリング命令を前記1つ以上の物理的
なCPUに対するスケジューラに送信することをさらに備える、条項5に記載の方法。
12.前記1つの仮想計算インスタンスに対する前記現在のリソースクレジット残量の
前記判定は、リソースクレジット蓄積期間の前に蓄積された未使用のリソースクレジット
を前記現在のリソースクレジット残量から除外することを備える、条項5に記載の方法。
13.前記1つ以上のコンピュータリソースは複数の異なるコンピュータリソースの一
部であり、異なるそれぞれの現在のリソースクレジット残量は前記複数の異なるコンピュ
ータリソースのうちの異なるコンピュータリソースに対して維持され、別の作業要求は前
記複数の異なるコンピュータリソースのうちの別のコンピュータリソースに対して受信さ
れ、前記判定、前記生成及び前記更新は前記他の作業要求に対して行われる、条項5に記
載の方法。
14.1つ以上のコンピューティングデバイスにより実行されると、前記1つ以上のコ
ンピューティングデバイスに、
仮想化ホストに対する仮想化マネジャで、前記仮想化ホスト上でホストされる仮想計算
インスタンスの1つ以上のコンピュータリソースに対する作業要求を受信することと、
それぞれの期間に対する固定率に少なくとも部分的に基づき、リソースクレジット蓄積
率が現在のリソースクレジット残量に適用され、前記現在のリソースクレジット残量の少
なくとも1つのリソースクレジットが現在の期間の前の期間に対する前記現在のリソース
クレジット残量に蓄積される、前記1つ以上の仮想コンピュータリソースそれぞれの前記
仮想計算インスタンスに対する前記現在のリソースクレジット残量を判定することと、
1つ以上のスケジューリング命令は前記仮想計算インスタンスに対する前記現在のリソ
ースクレジット残量の1つ以上のリソースクレジットの適用に少なくとも部分的に基づき
生成され、前記作業要求に適用された前記1つ以上のリソースクレジットのそれぞれは、
前記現在の期間に対して前記1つ以上の物理的なコンピュータリソースの活用を相応して
増加させる、前記仮想化ホストの一部として実装される1つ以上の物理的なコンピュータ
リソースにおける性能に対する前記作業要求をスケジュールするために、前記1つ以上の
スケジューリング命令を生成することと、
前記作業要求を行うために適用された前記1つ以上のリソースクレジットを差し引くた
めに、前記1つの仮想計算インスタンスに対する前記現在のリソースクレジット残量を更
新することと
を実施させるプログラム命令を記憶する、非一時的コンピュータ可読記憶媒体。
15.前記プログラム命令が、前記1つ以上のコンピューティングデバイスにさらに、
前記受信、前記判定、前記生成、前記送信及び前記更新は複数の異なる作業要求に対し
て行われ、
前記複数の異なる作業要求のそれぞれに対して前記判定された現在のリソースクレジッ
ト残量をクレジット残量指標として記録することと、
前記複数の異なる作業要求のそれぞれに対して前記適用された1つ以上のリソースクレ
ジットをクレジット使用量指標として記録することと
を実施させる、条項14に記載の非一時的コンピュータ可読記憶媒体。
16.前記プログラム命令が、前記1つ以上のコンピューティングデバイスにさらに、
前記仮想計算インスタンスに対する前記クレジット残量指標または前記クレジット使用量
指標を監視することと、
前記監視に少なくとも部分的に基づき、前記仮想計算インスタンスに対するアラームイ
ベントを検出することと、
前記アラームイベントの検出に応えて、前記仮想計算インスタンスに対する前記アラー
ムイベントの通知を提供することと
を実施させる、条項15に記載の非一時的コンピュータ可読記憶媒体。
17.前記1つ以上の計算リソースが1つ以上のネットワーキングリソースであり、前
記1つ以上の物理的なコンピュータリソースが1つ以上のネットワーク通信デバイスであ
る、条項14に記載の非一時的コンピュータ可読記憶媒体。
18.前記スケジューラに送信するための前記1つ以上のスケジューリング命令の前記
生成において、前記プログラム命令は前記1つ以上のコンピューティングデバイスに、
前記1つ以上のリソースクレジットを前記作業要求に適用した後で、
前記現在のリソースクレジット残量に前記作業要求に適用するための残りのリソースク
レジットが無いことを判定することと、
残りのリソースクレジットが無いという判定に応えて、前記1つ以上の物理的なコンピ
ュータリソースの活用が前記仮想計算インスタンスに対するベースライン活用まで徐々に
低下されるよう、前記1つ以上の生成されたスケジューリング命令の少なくとも1つを構
成することと
を実施させる、条項14に記載の非一時的コンピュータ可読記憶媒体。
19.前記仮想計算インスタンスに対する前記現在のリソースクレジット残量の前記判
定において、前記プログラム命令が、前記1つ以上のコンピューティングデバイスに、リ
ソースクレジット蓄積期間の前に蓄積された未使用のリソースクレジットを前記現在のリ
ソースクレジット残量から除外することを実施させる、条項14に記載の非一時的コンピ
ュータ可読記憶媒体。
20.前記仮想化ホストはネットワークベースの仮想コンピューティングサービスの一
部として実装され、前記仮想計算インスタンスは、前記ネットワークベースの仮想コンピ
ューティングサービスを介して供給される複数の異なる種類の仮想計算インスタンスのう
ちの1つであり、前記異なる種類の仮想計算インスタンスのそれぞれが異なるそれぞれの
リソースクレジット蓄積率に対応する、条項14に記載の非一時的コンピュータ可読記憶
媒体。
本明細書に記載の方法は、様々な実施形態では、ハードウェア及びソフトウェアの任意
の組み合わせにより実装され得る。例えば、一実施形態では、方法はプロセッサに連結さ
れるコンピュータ可読記憶媒体に記憶されるプログラム命令を実行する1つ以上のプロセ
ッサを含むコンピュータシステム(例えば、図9のコンピュータシステム)により実施さ
れ得る。プログラム命令は本明細書に記載する機能性(例えば、本明細書に記載のネット
ワークベースの仮想コンピューティングリソースプロバイダを実装する様々なサーバ及び
他の構成要素の機能性)を実施するように構成され得る。図面に例示し本明細書に記載し
た様々な方法は、方法の実施形態例を表す。任意の方法の順序は変更されて良く、様々な
要素が追加、再順序付け、結合、省略、修正等、されて良い。
本明細書に記載の仮想コンピュータリソースをスケジュールするためのローリングクレ
ジットリソースの実施形態は1つ以上のコンピュータシステム上で実行されても良く、コ
ンピュータシステムは様々な他のデバイスと相互作用しても良い。図9は、様々な実施形
態に係る、コンピュータシステムの一例を例示するブロック図である。例えば、コンピュ
ータシステム1000は、異なる実施形態では、計算クラスタ、分散キーバリューデータ
ストア、及び/またはクライアントのノードを実装するように構成され得る。コンピュー
タシステム1000は、パーソナルコンピュータシステム、デスクトップコンピュータ、
ラップトップコンピュータもしくはノートブックコンピュータ、メインフレームコンピュ
ータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュ
ータ、コンシューマデバイス、アプリケーションサーバ、ストレージデバイス、電話、携
帯電話、または一般的な任意の種類のコンピューティングデバイスを含む様々な種類のデ
バイスのいずれでもあって良いが、これらに限定されない。
コンピュータシステム1000は、入出力(I/O)インターフェース1030を介し
てシステムメモリ1020に連結された1つ以上のプロセッサ1010を含む(これらの
プロセッサはいずれも複数のコアを含んで良く、それらのコアはシングルスレッド方式で
もマルチスレッド方式でも良い)。コンピュータシステム1000は、I/Oインターフ
ェース1030に連結されたネットワークインターフェース1040をさらに含む。様々
な実施形態では、コンピュータシステム1000は、1つのプロセッサ1010を含むユ
ニプロセッサシステム、またはいくつかのプロセッサ1010(例えば、2個、4個、8
個もしくは他の好適な数)を含むマルチプロセッサシステムであって良い。プロセッサ1
010は、命令を実行可能な任意の好適なプロセッサであって良い。例えば、様々な実施
形態では、プロセッサ1010は、x86、PowerPC、SPARCもしくはMIP
SのISAまたはその他の好適なISAなどの種々の命令セットアーキテクチャ(ISA
)のいずれかを実装する汎用プロセッサまたは組み込みプロセッサであって良い。マルチ
プロセッサシステムでは、プロセッサ1010のそれぞれは、通常は同じISAを実装し
得るが、必ずしもそのように実装されるとは限らない。コンピュータシステム1000は
、1つ以上のネットワーク通信デバイス(例えば、ネットワークインターフェース104
0)をさらに含み、通信ネットワーク(例えば、インターネット、LAN等)を介して他
のシステム及び/または構成要素と通信する。例えば、システム1000上で実行される
クライアントアプリケーションは、ネットワークインターフェース1040を使用して、
本明細書に記載したデータウェアハウスシステムの構成要素の1つ以上を実装する単一の
サーバまたはサーバのクラスタ上で実行するサーバアプリケーションと通信しても良い。
別の例では、コンピュータシステム1000上で実行するサーバアプリケーションのイン
スタンスは、ネットワークインターフェース1040を使用して、他のコンピュータシス
テム(例えば、コンピュータシステム1090)上に実装され得るサーバアプリケーショ
ン(または別のサーバアプリケーション)の他のインスタンスと通信しても良い。
例示した実施形態では、コンピュータシステム1000は、1つ以上の永続ストレージ
デバイス1060及び/または1つ以上のI/Oデバイス1080をさらに含む。様々な
実施形態では、永続ストレージデバイス1060は、ディスクドライブ、テープドライブ
、ソリッドステートメモリ、他の大容量ストレージデバイス、またはその他の永続ストレ
ージデバイスに対応し得る。コンピュータシステム1000(または分散アプリケーショ
ンもしくはそのシステム上で動作するオペレーティングシステム)は、所望により、命令
及び/またはデータを永続ストレージデバイス1060に記憶しても良く、記憶された命
令及び/またはデータを必要に応じて検索しても良い。例えば、いくつかの実施形態では
、コンピュータシステム1000は、ストレージシステムサーバノードをホストしても良
く、永続ストレージ1060は、そのサーバノードに取り付けられたSSDを含んでも良
い。
コンピュータシステム1000は、1つ以上のシステムメモリ1020を含み、これら
のメモリは、プロセッサ1010(複数可)によりアクセス可能な命令及びデータを記憶
するように構成される。様々な実施形態では、システムメモリ1020は、任意の好適な
メモリ技術(例えば、1つ以上のキャッシュ、スタティックランダムアクセスメモリ(S
RAM)、DRAM、RDRAM、EDO RAM、DDR 10 RAM、同期式ダイ
ナミックRAM(SDRAM)、Rambus RAM、EEPROM、不揮発性/フラ
ッシュ型メモリ、またはその他任意の種類のメモリ)を使用して実装され得る。システム
メモリ1020は、本明細書に記載された方法及び技法を実装するために、プロセッサ1
010(複数可)により実行可能なプログラム命令1025を含み得る。様々な実施形態
では、プログラム命令1025は、プラットフォームのネイティブバイナリ、Java(
登録商標)バイトコードなどの任意のインタープリタ型言語、もしくはC/C++、Ja
va(登録商標)等などの任意の他の言語、またはそれらの任意の組み合わせにコード化
され得る。例えば、例示した実施形態では、プログラム命令1025は、異なる実施形態
では、仮想コンピューティングリソースプロバイダネットワークの機能性を実装するため
に実行可能なプログラム命令を含む。いくつかの実施形態では、プログラム命令1025
は、複数の個別のクライアント、サーバノード及び/または他の構成要素を実装しても良
い。
いくつかの実施形態では、プログラム命令1025は、オペレーティングシステム(図
示せず)を実装するために実行可能な命令を含んでも良く、このオペレーティングシステ
ムは、UNIX(登録商標)、LINUX、Solaris(登録商標)、MacOS(
登録商標)、Windows(登録商標)等などの様々なオペレーティングシステムのい
ずれでも良い。プログラム命令1025のいずれかまたは全ては、コンピュータプログラ
ム製品またはソフトウェアとして提供され得る。このコンピュータプログラム製品または
ソフトウェアは、命令が記憶された非一時的コンピュータ可読記憶媒体を含んでも良く、
この媒体を使用してコンピュータシステム(または他の電子装置)をプログラムすること
により、様々な実施形態に応じたプロセスを実行しても良い。非一時的コンピュータ可読
記憶媒体は、マシン(例えば、コンピュータ)により読み取り可能な形態(例えば、ソフ
トウェア、処理アプリケーション)で情報を記憶するための任意の機構を含んでも良い。
一般的に言えば、非一時的コンピュータアクセス可能媒体は、コンピュータ可読記憶媒体
またはメモリ媒体を含み得る。このような媒体としては、磁気媒体または光学媒体、例え
ば、I/Oインターフェース1030を介してコンピュータシステム1000に連結され
たディスクまたはDVD/CD−ROMなどがある。非一時的コンピュータ可読記憶媒体
は、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAM等)、R
OM等などの任意の揮発性または不揮発性媒体も含み得る。これらの媒体は、コンピュー
タシステム1000のいくつかの実施形態では、システムメモリ1020または別の種類
のメモリとして含まれ得る。他の実施形態では、プログラム命令は、ネットワークインタ
ーフェース1040を介して実装され得るようなネットワーク及び/または無線リンクな
どの通信媒体を介して伝わる光学的、音響的または他の形態の伝搬信号(例えば、搬送波
、赤外線信号、デジタル信号等)を使用して伝送され得る。
いくつかの実施形態では、システムメモリ1020は、データストア1045を含んで
も良く、このデータストアは、本明細書に記載されたように構成され得る。概して、シス
テムメモリ1020(例えば、システムメモリ1020内のデータストア1045)、永
続ストレージ1060及び/またはリモートストレージ1070は、データブロック、デ
ータブロックのレプリカ、データブロック及び/もしくはそれらの状態に関連付けられた
メタデータ、構成情報、ならびに/または本明細書に記載された方法及び技法を実装する
のに使用可能な他の任意の情報を記憶し得る。
一実施形態では、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に直接組み込
んでも良い。
ネットワークインターフェース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インターフェース、イーサネットイン
ターフェース、フレームリレーインターフェースなどの他のネットワークインターフェー
ス等)を含んでも良い。
本明細書に記載された分散システムの任意の実施形態、またはそれらの任意の構成要素
は、1つ以上のネットワークベースのサービスとして実装され得ることが留意される。例
えば、コンピューティングサービス内の計算クラスタは、コンピューティングサービス及
び/または本明細書に記載した分散コンピューティングシステムを利用する他の種類のサ
ービスを、ネットワークベースのサービスとしてクライアントに与え得る。いくつかの実
施形態では、ネットワークベースのサービスは、ネットワークを介して相互運用可能なマ
シン対マシン相互作用をサポートするように設計されたソフトウェア及び/またはハード
ウェアシステムにより実装され得る。ネットワークベースのサービスは、Webサービス
記述言語(WSDL)などの、マシンが処理可能な形式で記述されたインターフェースを
有しても良い。他のシステムは、ネットワークベースのサービスのインターフェースを記
述することにより定められる方法でネットワークベースのサービスと相互作用しても良い
。やはり、例えば、ネットワークベースのサービスは、他のシステムが呼び出すことがで
きる様々な動作を定義しても良く、様々な動作を要求する際に他のシステムが適合してい
ると見込むことができる特定のアプリケーションプログラミングインターフェース(AP
I)を定義しても良い。
様々な実施形態において、ネットワークベースのサービスは、ネットワークベースのサ
ービス要求に関連するパラメータ及び/またはデータを含むメッセージの使用を通して、
要求、または呼び出され得る。係るメッセージは、拡張マークアップ言語(XML)等の
特定のマークアップ言語に従って形式化され、及び/または簡易オブジェクトアクセスプ
ロトコル(SOAP)などのプロトコルを使用してカプセル化され得る。ネットワークベ
ースのサービス要求を行うために、ネットワークベースのサービスのクライアントは、要
求を含むメッセージをアセンブルし、メッセージをネットワークベースのサービスに対応
するアドレス指定可能なエンドポイント(例えば、ユニフォームリソースロケータ(UR
L))へ、ハイパーテキスト転送プロトコル(HTTP)等のインターネットベースのア
プリケーション層転送プロトコルを使用して伝送し得る。
いくつかの実施形態において、ネットワークベースのサービスは、メッセージベースの
技法ではなく、リプリゼンテーショナル・ステート・トランスファ(「RESTful」
)技法を使用して実施され得る。例えば、RESTful技法に従って実施されるネット
ワークベースのサービスは、SOAPメッセージ内にカプセル化されたパラメータではな
く、PUT、GET、またはDELETEなどのHTTPメソッド内に含まれるパラメー
タを通して呼び出され得る。
上記の実施形態はかなり詳細に説明されているが、いったん上記開示が完全に理解され
ると当業者に明らかになるように、多数の変形形態及び修正形態が行われて良い。以下の
請求項は全ての係る修正形態及び変更を包含し、したがって、上記の記載は制限的な意味
ではなく例示的な意味としてみなされることを意図する。

Claims (15)

  1. 1つ以上のコンピューティングデバイスにより、
    1つ以上のクレジットを仮想計算インスタンスに対するリソースクレジット残量に割り当てることであって、前記仮想計算インスタンスに対する前記リソースクレジット残量のクレジットは、前記仮想計算インスタンスが、前記仮想計算インスタンスを実装する1つ以上のコンピュータリソースをベースライン活用のレベルを超えて活用するために、前記クレジットを適用することを可能にする、前記割り当てることと、
    前記仮想計算インスタンスを実装する1つ以上のコンピュータリソースにおける性能に対する作業要求をスケジュールするために、1つ以上のスケジューリング命令を前記仮想計算インスタンスに対し生成することであって、前記1つ以上のスケジューリング命令は、前記仮想計算インスタンスに対する前記リソースクレジット残量の1つ以上のリソースクレジットの適用に少なくとも部分的に基づき生成される、前記生成することと、
    記仮想計算インスタンスに対する前記リソースクレジット残量の残りのリソースクレジットが閾値よりも少ないことを判定することと、
    前記判定に応答して、前記仮想計算インスタンスによる前記1つ以上のコンピュータリソースの活用が前記ベースライン活用まで低下するよう、前記1つ以上の生成されたスケジューリング命令の少なくとも1つを構成することと、
    を行う方法。
  2. 前記生成されたスケジューリング命令は、前記仮想計算インスタンスによる前記1つ以上のコンピュータリソースの活用を、前記ベースライン活用まで々に低下させる、請求項1に記載の方法。
  3. 前記1つ以上のコンピュータリソースは1つ以上の中央処理装置(CPU)を備え、更に前記1つ以上のスケジューリング命令を前記1つ以上のCPUに対するスケジューラに送信することを備える、請求項1または2に記載の方法。
  4. 前記ベースライン活用は処理容量に対する保証されたベースラインを備える、請求項3に記載の方法。
  5. 前記1つ以上のコンピュータリソースは1つ以上のネットワーキングチャネルを備え、更に前記1つ以上のネットワーキングチャネルに対するスケジューラに前記1つ以上のスケジューリング命令を送信することを備える、請求項1−4のいずれか一項に記載の方法。
  6. 前記ベースライン活用はネットワーキングチャネルに対する保証されたベースライン性能率を備える、請求項5に記載の方法。
  7. 前記仮想計算インスタンスは、ネットワークベースの仮想コンピューティングサービスを介して供給される複数の異なる種類の仮想計算インスタンスのうちの1つであり、前記仮想計算インスタンスのそれぞれは、個別に更新されるそれぞれのリソースクレジット残量を有する、請求項1−6のいずれか一項に記載の方法。
  8. 前記ネットワークベースの仮想コンピューティングサービスを介して供給される前記仮想計算インスタンスのうちの少なくともいくつかは、前記ネットワークベースの仮想コンピューティングサービスを介して供給される前記仮想計算インスタンスのうちの他のものとは異なるリソースクレジット割り当て率を有する、請求項7に記載の方法。
  9. 前記ネットワークベースの仮想コンピューティングサービスを介して供給される前記仮想計算インスタンスのうちの少なくともいくつかは、前記ネットワークベースの仮想コンピューティングサービスを介して供給される前記仮想計算インスタンスのうちの他のものとは異なるベースライン活用のレベルを有する、請求項7または8に記載の方法。
  10. 1つ以上の非一時的なコンピュータ読み取り可能な記憶媒体に連結される1つ以上のプロセッサを含むシステムであって、前記コンピュータ読み取り可能な記憶媒体は、プログラム命令を格納し、前記プログラム命令は、前記1つ以上のプロセッサにより実行されると、前記システムに、
    1つ以上のクレジットを仮想計算インスタンスに対するリソースクレジット残量に割り当てることであって、前記仮想計算インスタンスに対する前記リソースクレジット残量のクレジットは前記仮想計算インスタンスを実装する1つ以上のコンピュータリソースをベースライン活用のレベルを超えて活用するために、前記クレジットを適用することを可能にする、前記割り当てることと、
    前記仮想計算インスタンスを実装する1つ以上のコンピュータリソースにおける性能に対する作業要求をスケジュールするために、1つ以上のスケジューリング命令を前記仮想計算インスタンスに対し生成することであって、前記1つ以上のスケジューリング命令は、前記仮想計算インスタンスに対する前記リソースクレジット残量の1つ以上のリソースクレジットの適用に少なくとも部分的に基づき生成される、前記生成することと、
    記仮想計算インスタンスに対する前記リソースクレジット残量の残りのリソースクレジットが閾値よりも少ないことを判定することと、
    前記判定に応答して、前記仮想計算インスタンスによる前記1つ以上のコンピュータリソースの活用が前記ベースライン活用まで低下するよう、前記1つ以上の生成されたスケジューリング命令の少なくとも1つを構成することと、
    を行わせる、
    システム。
  11. 前記生成されたスケジューリング命令は、前記仮想計算インスタンスによる前記1つ以上のコンピュータリソースの活用を、前記ベースライン活用まで々に低下させる、請求項10に記載のシステム。
  12. 前記1つ以上のコンピュータリソースは1つ以上の中央処理装置(CPU)を備え、更に、前記システムは、前記1つ以上のスケジューリング命令を前記1つ以上のCPUに対するスケジューラに送信する、請求項10または11に記載のシステム。
  13. 前記1つ以上のコンピュータリソースは1つ以上のネットワーキングチャネルを備え、前記プログラム命令は、更に、前記システムに、前記1つ以上のネットワーキングチャネルに対するスケジューラに前記1つ以上のスケジューリング命令を送信することを行わせる、請求項10−12のいずれか一項に記載のシステム。
  14. 前記ベースライン活用は処理容量に対する保証されたベースラインおよびネットワーキングチャネルに対する保証されたベースライン性能率を備える、請求項13に記載のシステム。
  15. 前記仮想計算インスタンスは、ネットワークベースの仮想コンピューティングサービスを介して供給される複数の異なる種類の仮想計算インスタンスのうちの1つであり、前記仮想計算インスタンスのそれぞれは、個別に更新されるそれぞれのリソースクレジット残量を有する、請求項10−14のいずれか一項に記載のシステム。
JP2019132615A 2014-06-27 2019-07-18 仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット Active JP6878512B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021075891A JP7189997B2 (ja) 2014-06-27 2021-04-28 仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462018466P 2014-06-27 2014-06-27
US62/018,466 2014-06-27
US14/331,745 US10649796B2 (en) 2014-06-27 2014-07-15 Rolling resource credits for scheduling of virtual computer resources
US14/331,745 2014-07-15

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016573062A Division JP6560263B2 (ja) 2014-06-27 2015-06-24 仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021075891A Division JP7189997B2 (ja) 2014-06-27 2021-04-28 仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット

Publications (2)

Publication Number Publication Date
JP2019194914A JP2019194914A (ja) 2019-11-07
JP6878512B2 true JP6878512B2 (ja) 2021-05-26

Family

ID=54930573

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2016573062A Active JP6560263B2 (ja) 2014-06-27 2015-06-24 仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット
JP2019132615A Active JP6878512B2 (ja) 2014-06-27 2019-07-18 仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット
JP2021075891A Active JP7189997B2 (ja) 2014-06-27 2021-04-28 仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016573062A Active JP6560263B2 (ja) 2014-06-27 2015-06-24 仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021075891A Active JP7189997B2 (ja) 2014-06-27 2021-04-28 仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット

Country Status (7)

Country Link
US (2) US10649796B2 (ja)
EP (1) EP3161637A1 (ja)
JP (3) JP6560263B2 (ja)
CN (2) CN106415500B (ja)
AU (3) AU2015279996A1 (ja)
CA (1) CA2951401C (ja)
WO (1) WO2015200493A1 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649796B2 (en) 2014-06-27 2020-05-12 Amazon Technologies, Inc. Rolling resource credits for scheduling of virtual computer resources
US10853077B2 (en) 2015-08-26 2020-12-01 Huawei Technologies Co., Ltd. Handling Instruction Data and Shared resources in a Processor Having an Architecture Including a Pre-Execution Pipeline and a Resource and a Resource Tracker Circuit Based on Credit Availability
US11221853B2 (en) * 2015-08-26 2022-01-11 Huawei Technologies Co., Ltd. Method of dispatching instruction data when a number of available resource credits meets a resource requirement
CN107133087A (zh) 2016-02-29 2017-09-05 阿里巴巴集团控股有限公司 一种资源调度方法与设备
US10149193B2 (en) 2016-06-15 2018-12-04 At&T Intellectual Property I, L.P. Method and apparatus for dynamically managing network resources
US10454836B2 (en) 2016-11-01 2019-10-22 At&T Intellectual Property I, L.P. Method and apparatus for dynamically adapting a software defined network
US10284730B2 (en) 2016-11-01 2019-05-07 At&T Intellectual Property I, L.P. Method and apparatus for adaptive charging and performance in a software defined network
US10505870B2 (en) 2016-11-07 2019-12-10 At&T Intellectual Property I, L.P. Method and apparatus for a responsive software defined network
US10469376B2 (en) 2016-11-15 2019-11-05 At&T Intellectual Property I, L.P. Method and apparatus for dynamic network routing in a software defined network
US10039006B2 (en) 2016-12-05 2018-07-31 At&T Intellectual Property I, L.P. Method and system providing local data breakout within mobility networks
US10373284B2 (en) * 2016-12-12 2019-08-06 Amazon Technologies, Inc. Capacity reservation for virtualized graphics processing
US10264075B2 (en) * 2017-02-27 2019-04-16 At&T Intellectual Property I, L.P. Methods, systems, and devices for multiplexing service information from sensor data
US10469286B2 (en) 2017-03-06 2019-11-05 At&T Intellectual Property I, L.P. Methods, systems, and devices for managing client devices using a virtual anchor manager
US10212289B2 (en) 2017-04-27 2019-02-19 At&T Intellectual Property I, L.P. Method and apparatus for managing resources in a software defined network
US10819606B2 (en) 2017-04-27 2020-10-27 At&T Intellectual Property I, L.P. Method and apparatus for selecting processing paths in a converged network
US10749796B2 (en) 2017-04-27 2020-08-18 At&T Intellectual Property I, L.P. Method and apparatus for selecting processing paths in a software defined network
US10673751B2 (en) 2017-04-27 2020-06-02 At&T Intellectual Property I, L.P. Method and apparatus for enhancing services in a software defined network
US10382903B2 (en) 2017-05-09 2019-08-13 At&T Intellectual Property I, L.P. Multi-slicing orchestration system and method for service and/or content delivery
US10257668B2 (en) 2017-05-09 2019-04-09 At&T Intellectual Property I, L.P. Dynamic network slice-switching and handover system and method
CN108984264B (zh) * 2017-06-02 2022-11-15 阿里巴巴集团控股有限公司 虚拟gpu的实现方法、装置及系统
US10070344B1 (en) 2017-07-25 2018-09-04 At&T Intellectual Property I, L.P. Method and system for managing utilization of slices in a virtual network function environment
US10104548B1 (en) 2017-12-18 2018-10-16 At&T Intellectual Property I, L.P. Method and apparatus for dynamic instantiation of virtual service slices for autonomous machines
KR102507249B1 (ko) * 2018-03-08 2023-03-07 삼성전자주식회사 성능 모드 제어 방법 및 이를 지원하는 전자 장치
US10963296B1 (en) * 2018-06-22 2021-03-30 Amazon Technologies, Inc. Load balancing of compute resources based on resource credits
CN109033468B (zh) * 2018-08-31 2022-09-16 创新先进技术有限公司 资源变动的处理方法及装置
US11550634B2 (en) 2019-03-08 2023-01-10 Microsoft Technology Licensing, Llc Capacity management in a cloud computing system using virtual machine series modeling
CN110648232A (zh) * 2019-08-20 2020-01-03 上海数据交易中心有限公司 处理节点的额度控制方法及装置、存储介质、终端
KR102496115B1 (ko) * 2019-11-28 2023-02-06 한국전자통신연구원 강화학습 기반 이타적 스케줄링 장치 및 방법
US20220327003A1 (en) * 2021-04-09 2022-10-13 Oracle International Corporation Cloud edge device virtualization

Family Cites Families (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6714960B1 (en) * 1996-11-20 2004-03-30 Silicon Graphics, Inc. Earnings-based time-share scheduling
US7065762B1 (en) * 1999-03-22 2006-06-20 Cisco Technology, Inc. Method, apparatus and computer program product for borrowed-virtual-time scheduling
US7065764B1 (en) 2001-07-20 2006-06-20 Netrendered, Inc. Dynamically allocated cluster system
US7093250B1 (en) * 2001-10-11 2006-08-15 Ncr Corporation Priority scheduler for database access
US7194616B2 (en) * 2001-10-27 2007-03-20 International Business Machines Corporation Flexible temporary capacity upgrade/downgrade in a computer system without involvement of the operating system
US7330430B2 (en) * 2002-06-04 2008-02-12 Lucent Technologies Inc. Packet-based traffic shaping
US7698115B2 (en) * 2003-06-30 2010-04-13 Microsoft Corporation System and method for dynamically allocating resources in a client/server environment
EP2341432A1 (en) * 2004-03-13 2011-07-06 Adaptive Computing Enterprises, Inc. System and method of co-allocating a reservation spanning different compute resources types
US20050273511A1 (en) * 2004-06-08 2005-12-08 Hewlett-Packard Development Company, L.P. Equitable resource sharing in grid-based computing environments
US7797699B2 (en) 2004-09-23 2010-09-14 Intel Corporation Method and apparatus for scheduling virtual machine access to shared resources
US20060130062A1 (en) * 2004-12-14 2006-06-15 International Business Machines Corporation Scheduling threads in a multi-threaded computer
US7770173B2 (en) * 2005-02-03 2010-08-03 International Business Machines Corporation System for dynamic processor enablement
US8091088B2 (en) * 2005-02-22 2012-01-03 Microsoft Corporation Method and system for hierarchical resource management involving hard and soft resource limits
US7613897B2 (en) * 2005-03-30 2009-11-03 International Business Machines Corporation Allocating entitled processor cycles for preempted virtual processors
EP2036267B1 (en) * 2006-06-22 2009-10-07 Xelerated AB A processor and a method for a processor
US8255910B2 (en) * 2006-07-18 2012-08-28 Hewlett-Packard Development Company, L.P. Fair weighted proportional-share virtual time scheduler
CN100517237C (zh) * 2006-09-28 2009-07-22 联想(北京)有限公司 一种虚拟机系统及其cpu调度方法
US9354960B2 (en) * 2010-12-27 2016-05-31 Red Hat, Inc. Assigning virtual machines to business application service groups based on ranking of the virtual machines
US7707248B2 (en) * 2007-06-25 2010-04-27 Microsoft Corporation Credit-based peer-to-peer storage
WO2009029549A2 (en) * 2007-08-24 2009-03-05 Virtualmetrix, Inc. Method and apparatus for fine grain performance management of computer systems
US20090077248A1 (en) 2007-09-14 2009-03-19 International Business Machines Corporation Balancing access to shared resources
US8045563B2 (en) 2007-12-27 2011-10-25 Cellco Partnership Dynamically adjusted credit based round robin scheduler
EP2141643A1 (en) * 2008-07-04 2010-01-06 Koninklijke KPN N.V. Software usage controlled by CPU utilization
JP5157717B2 (ja) * 2008-07-28 2013-03-06 富士通株式会社 仮想バッテリを備えた仮想マシンシステムおよび仮想バッテリを備えた仮想マシンシステム用プログラム
JP2010113677A (ja) 2008-11-10 2010-05-20 Hitachi Ltd サービス管理装置、サービス管理方法およびサービス管理システム
TWI397010B (zh) * 2008-12-10 2013-05-21 Inst Information Industry Virtual machine module scheduling, scheduling methods and computer program products
US9086913B2 (en) * 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
US8019861B2 (en) 2009-01-29 2011-09-13 Vmware, Inc. Speculative virtual machine resource scheduling
CN101488098B (zh) * 2009-02-13 2011-11-30 华中科技大学 基于虚拟计算技术的多核计算资源管理系统
US8914511B1 (en) * 2009-06-26 2014-12-16 VMTurbo, Inc. Managing resources in virtualization systems
US8910153B2 (en) * 2009-07-13 2014-12-09 Hewlett-Packard Development Company, L. P. Managing virtualized accelerators using admission control, load balancing and scheduling
US8245234B2 (en) * 2009-08-10 2012-08-14 Avaya Inc. Credit scheduler for ordering the execution of tasks
EP2323035B1 (en) * 2009-11-16 2019-04-17 Red Bend Software Scheduling system
US8037187B2 (en) * 2009-12-11 2011-10-11 International Business Machines Corporation Resource exchange management within a cloud computing environment
US8984521B2 (en) * 2010-02-18 2015-03-17 International Business Machines Corporation Computer system performance by applying rate limits to control block tenancy
JP2011182115A (ja) * 2010-02-26 2011-09-15 Hitachi Ltd 通信方法、通信システム及びサーバ
JP5388909B2 (ja) * 2010-03-09 2014-01-15 株式会社日立製作所 ハイパバイザ、計算機システム、及び、仮想プロセッサのスケジューリング方法
JP5458998B2 (ja) 2010-03-19 2014-04-02 富士通株式会社 仮想マシンシステムおよび仮想マシン管理方法
KR101690652B1 (ko) * 2010-08-25 2016-12-28 삼성전자주식회사 멀티코어 시스템의 스케쥴링 장치 및 방법
CN103154926B (zh) * 2010-09-30 2016-06-01 亚马逊技术股份有限公司 用专用实施资源进行虚拟资源成本追踪
US8429276B1 (en) * 2010-10-25 2013-04-23 Juniper Networks, Inc. Dynamic resource allocation in virtual environments
US8918784B1 (en) 2010-12-21 2014-12-23 Amazon Technologies, Inc. Providing service quality levels through CPU scheduling
US8615579B1 (en) * 2010-12-28 2013-12-24 Amazon Technologies, Inc. Managing virtual machine migration
US9454406B2 (en) * 2011-02-28 2016-09-27 Novell, Inc. Techniques for cloud bursting
US20120221454A1 (en) * 2011-02-28 2012-08-30 Morgan Christopher Edwin Systems and methods for generating marketplace brokerage exchange of excess subscribed resources using dynamic subscription periods
CN102681899B (zh) * 2011-03-14 2015-06-10 金剑 云计算服务平台的虚拟计算资源动态管理方法
US8990149B2 (en) * 2011-03-15 2015-03-24 International Business Machines Corporation Generating a predictive model from multiple data sources
CN102117226A (zh) * 2011-03-18 2011-07-06 浪潮(北京)电子信息产业有限公司 一种资源调度系统及资源调度方法
US8676981B2 (en) * 2011-05-12 2014-03-18 International Business Machines Corporation Routing service requests based on lowest actual cost within a federated virtual service cloud
US8863140B2 (en) * 2011-08-29 2014-10-14 Oracle International Corporation Method for resource management allocating and freeing credits from and to a resource credit tree
US8959114B2 (en) * 2011-10-21 2015-02-17 Salesforce.Com, Inc. Entitlement management in an on-demand system
CN102413186B (zh) * 2011-12-02 2014-07-30 北京星网锐捷网络技术有限公司 基于私有云计算的资源调度方法、装置和云管理服务器
CN104011680B (zh) 2011-12-26 2017-03-01 英特尔公司 在物理处理单元中调度虚拟机的虚拟中央处理单元
CN103744714A (zh) * 2011-12-31 2014-04-23 华茂云天科技(北京)有限公司 基于云计算的虚拟机管理平台
CN103248659B (zh) * 2012-02-13 2016-04-20 北京华胜天成科技股份有限公司 一种云计算资源调度方法和系统
US20170278087A1 (en) * 2012-03-28 2017-09-28 Google Inc. Virtual machine pricing model
US9027024B2 (en) * 2012-05-09 2015-05-05 Rackspace Us, Inc. Market-based virtual machine allocation
US9218196B2 (en) * 2012-05-17 2015-12-22 International Business Machines Corporation Performing pre-stage replication of data associated with virtual machines prior to migration of virtual machines based on resource usage
US8930948B2 (en) * 2012-06-21 2015-01-06 Vmware, Inc. Opportunistically proactive resource management using spare capacity
US20140013321A1 (en) 2012-07-05 2014-01-09 Telefonica, S.A. Method for providing cloud computing resources
US8949848B2 (en) * 2012-08-20 2015-02-03 International Business Machines Corporation Reducing usage of resource utilized by a virtual machine whose resource utilization is adversely affecting neighboring virtual machines
US9130969B2 (en) * 2012-08-23 2015-09-08 Seagate Technology Llc Data storage I/O communication method and apparatus
US9379995B2 (en) * 2012-09-11 2016-06-28 Vmware, Inc. Resource allocation diagnosis on distributed computer systems based on resource hierarchy
US9189260B2 (en) * 2012-09-27 2015-11-17 International Business Machines Corporation Resource allocation for virtual machines and logical partitions
JP5951111B2 (ja) 2012-11-09 2016-07-13 株式会社日立製作所 管理計算機、計算機システム、及びインスタンス管理方法
US9304803B2 (en) * 2012-11-12 2016-04-05 Vmware, Inc. Cooperative application workload scheduling for a consolidated virtual environment
CN103036800B (zh) * 2012-12-14 2015-09-09 北京高森明晨信息科技有限公司 虚拟机负载均衡系统、节点及方法
CN103095599A (zh) * 2013-01-18 2013-05-08 浪潮电子信息产业股份有限公司 一种云计算操作系统中动态反馈加权综合负载调度方法
CN103064746B (zh) * 2013-01-23 2015-08-12 上海交通大学 基于当前credit进行预测调度的处理器资源精确分配方法
US20140280964A1 (en) * 2013-03-15 2014-09-18 Gravitant, Inc. Systems, methods and computer readable mediums for implementing cloud service brokerage platform functionalities
US9634958B2 (en) * 2013-04-02 2017-04-25 Amazon Technologies, Inc. Burst capacity for user-defined pools
US10063712B2 (en) * 2013-06-21 2018-08-28 Openet Telecom Ltd. System and method for dynamically allocating quota for shared balances in distributed telecommunications networks
US9602426B2 (en) * 2013-06-21 2017-03-21 Microsoft Technology Licensing, Llc Dynamic allocation of resources while considering resource reservations
US9218221B2 (en) * 2013-06-25 2015-12-22 Amazon Technologies, Inc. Token sharing mechanisms for burst-mode operations
KR20160004365A (ko) * 2013-06-29 2016-01-12 인텔 코포레이션 크레딧 기반의 중재를 위한 서비스 레이트 재분배
US9880883B2 (en) * 2013-08-05 2018-01-30 Nec Corporation Virtual resource control system determining new allocation of resources at a hub
US10554579B2 (en) * 2014-01-02 2020-02-04 Sky Atlas Iletisim Sanayi Ve Ticaret Anonim Sirketi Method and system for allocating resources to resource consumers in a cloud computing environment
US9396009B2 (en) * 2014-01-30 2016-07-19 International Business Machines Corporation Optimized global capacity management in a virtualized computing environment
US10721173B2 (en) * 2014-03-31 2020-07-21 Hewlett Packard Enterprise Development Lp Credit distribution to clients
US10649796B2 (en) 2014-06-27 2020-05-12 Amazon Technologies, Inc. Rolling resource credits for scheduling of virtual computer resources

Also Published As

Publication number Publication date
EP3161637A1 (en) 2017-05-03
AU2015279996A1 (en) 2017-01-05
AU2020250308A1 (en) 2020-11-05
WO2015200493A1 (en) 2015-12-30
US20150378753A1 (en) 2015-12-31
JP7189997B2 (ja) 2022-12-14
US20200272486A1 (en) 2020-08-27
US11487562B2 (en) 2022-11-01
CN106415500A (zh) 2017-02-15
US10649796B2 (en) 2020-05-12
CN106415500B (zh) 2020-02-21
CN111176796B (zh) 2023-12-05
AU2018204629A1 (en) 2018-07-12
JP2017526999A (ja) 2017-09-14
JP2019194914A (ja) 2019-11-07
CN111176796A (zh) 2020-05-19
CA2951401C (en) 2020-02-25
JP2021119502A (ja) 2021-08-12
CA2951401A1 (en) 2015-12-30
JP6560263B2 (ja) 2019-08-14

Similar Documents

Publication Publication Date Title
JP6878512B2 (ja) 仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット
US9626210B2 (en) Resource credit pools for replenishing instance resource credit balances of virtual compute instances
US10452438B2 (en) Parameter selection for optimization of task execution based on execution history for prior tasks
US9635103B2 (en) Dynamic virtual resource request rate control for utilizing physical resources
US11010197B2 (en) Dynamic allocation of physical computing resources amongst virtual machines
US10552774B2 (en) Cost-minimizing task scheduler
US9529633B2 (en) Variable timeslices for processing latency-dependent workloads
US9430280B1 (en) Task timeouts based on input data characteristics
US8156226B2 (en) Ordering provisioning request execution based on service level agreement and customer entitlement
JP2021519478A (ja) 異種コンピューティング資源の使用量を単一の測定単位として定量化する方法
US10057332B2 (en) Preemptive extraction of data from long latency storage in a cloud computing environment
US10915250B2 (en) Addressing usage of shared SSD resources in volatile and unpredictable operating environments
WO2016040743A1 (en) Dynamic virtual resource request rate control for utilizing physical resources
US10929245B1 (en) Flexible scheduler for backups
JP2023154849A (ja) ソフトウェアのライセンスを管理するシステム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201211

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210330

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210428

R150 Certificate of patent or registration of utility model

Ref document number: 6878512

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250