(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-13
(45)【発行日】2022-01-13
(54)【発明の名称】動的ホストデバイスインスタンスモデル再構成を使用するプロバイダネットワークにおける容量管理
(51)【国際特許分類】
G06F 9/50 20060101AFI20220105BHJP
G06F 9/455 20060101ALI20220105BHJP
【FI】
G06F9/50 120Z
G06F9/455 150
(21)【出願番号】P 2020526013
(86)(22)【出願日】2018-11-09
(86)【国際出願番号】 US2018060175
(87)【国際公開番号】W WO2019094829
(87)【国際公開日】2019-05-16
【審査請求日】2020-05-18
(32)【優先日】2017-11-10
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】クイン、マイケル フィリップ
(72)【発明者】
【氏名】グプタ、ディワカー
【審査官】田中 幸雄
(56)【参考文献】
【文献】特表2016-527648(JP,A)
【文献】特表2016-507121(JP,A)
【文献】特表2014-517950(JP,A)
【文献】特開2012-226427(JP,A)
【文献】特開2014-235644(JP,A)
【文献】特開2014-154050(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
プロバイダネットワーク内の第1のコンピュートインスタンスタイプのための利用可能なスロットの数が、前記第1のコンピュートインスタンスタイプのために必要とされるスロットの数に満たないと判断することと、
第2のコンピュートインスタンスタイプのコンピュートインスタンスのために
利用可能な、電子デバイスの第1の1個以上のスロットを登録解除すること、及び前記第1のコンピュートインスタンスタイプのコンピュートインスタンスのために、前記電子デバイスの第2の1個以上のスロットを登録することであって、前記電子デバイスが、前記第2のコンピュートインスタンスタイプの対応する1つ以上のコンピュートインスタンスが実行する1個以上の他のスロットをさらに含む、前記登録解除すること及び前記登録することと、
前記第1のコンピュートインスタンスタイプのコンピュートインスタンスを起動する要求を受信することと、
前記電子デバイスが、前記第2のコンピュートインスタンスタイプの前記1つ以上のコンピュートインスタンスを実行し続ける一方、前記電子デバイスの前記第2の1個以上のスロットの1つで前記第1のコンピュートインスタンスタイプの前記コンピュートインスタンスを実行することと、
を含む、コンピュータ実装方法。
【請求項2】
前記第1の1個以上のスロットが複数のスロットを含み、前記複数のスロットが、前記第2の1個以上のスロットに統合され、前記第2の1個以上のスロットが単一のスロットを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記第1の1個以上のスロットが単一のスロットを含み、前記第2の1個以上のスロットが複数のスロットを含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記第1の1個以上のスロットを登録解除する前に、前記電子デバイスを隔離に配置することであって、隔離中、前記電子デバイスが、前記第2のコンピュートインスタンスタイプの前記1つ以上のコンピュートインスタンスを実行し続けるが、追加のコンピュートインスタンスを配置させるために利用できない、前記隔離に配置することと、
前記第2の1個以上のスロットを登録した後、前記電子デバイスを隔離から取り除くことと、
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記電子デバイスを隔離に配置した後、前記第1の1個以上のスロットがいずれのコンピュートインスタンスも実行していないことを検証すること
をさらに含む、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記電子デバイスを隔離に配置した後、かつ前記電子デバイスを隔離から取り除く前に、
前記電子デバイスで実行する前記第2のコンピュートインスタンスタイプの前記1つ以上のコンピュートインスタンスの少なくとも1つを関係させるアクションを実行する要求を受信することと、
前記アクションを実行することと、
をさらに含む、請求項4に記載のコンピュータ実装方法。
【請求項7】
前記第1の1個以上のスロットの前記登録解除及び前記第2の1個以上のスロットの前記登録が、再構成操作の第1のセットの一部として第1のワーカーエンティティにより実行され、
第2のワーカーエンティティが、前記再構成操作の第1のセットと同時に再構成操作の第2のセットを実行する、請求項1~6のいずれか1項に記載のコンピュータ実装方法。
【請求項8】
前記再構成操作の第2のセットが、
第3のコンピュートインスタンスタイプのコンピュートインスタンスのために、第2の電子デバイスの第3の1個以上のスロットを登録解除することと、
第4のコンピュートインスタンスタイプのコンピュートインスタンスのために、前記第2の電子デバイスの第4の1個以上のスロットを登録することと、
を含む、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記第1のコンピュートインスタンスタイプの前記コンピュートインスタンスのためのスロットを選択する要求を配置サービスに送信することと、
前記第2の1個以上のスロットのうちの1個の1つ以上の特徴を記述する、前記電子デバイスの前記第2の1個以上のスロットのうちの前記1個に対応するリソースベクトルを含む応答を前記配置サービスから受信することと、
前記リソースベクトルに基づいて、前記第1のコンピュートインスタンスタイプの前記コンピュートインスタンスのための配置場所として前記電子デバイスの前記第2の1個以上のスロットのうちの前記1個を識別することと、
をさらに含む、請求項1~8のいずれか1項に記載のコンピュータ実装方法。
【請求項10】
前記第1のコンピュートインスタンスタイプのコンピュートインスタンスのための前記電子デバイスの前記第2の1個以上のスロットを登録することが、
前記第2の1個以上のスロットの第1のスロットのためのスロット情報データ構造にレコードを挿入することであって、前記レコードが、前記電子デバイスの識別子、前記電子デバイスの
中で前記第1のスロットを一意に識別するスロット番号の識別子、及びリソースベクトルの識別子を含み、前記リソースベクトルが、前記第1のスロットの1つ以上の特徴を記述する、前記挿入すること、
を含む、請求項1~9のいずれか1項に記載のコンピュータ実装方法。
【請求項11】
システムであって、
カスタマの代わりにコンピュートインスタンスを実装するために複数の電子デバイスを含むプロバイダネットワークのハードウェア仮想化サービスと、
1つ以上の電子デバイスにより実装される前記プロバイダネットワークの制御プレーンであっ
て、
前記プロバイダネットワークの1つ以上のコンピュートインスタンスタイプごとのいくつかのスロットが作成されるべきであると判断することと、
前記複数の電子デバイスの2つ以上を利用可能な
複数のスロットを有するとして識別することと、
前記2つ以上の電子デバイスの前記利用可能な
複数のスロットのうちのスロットを登録解除し、前記2つ以上の電子デバイスのための追加のスロットを登録して、前記1つ以上のコンピュートインスタンスタイプごとに前記いくつかのスロットを作成することであって、前記2つ以上の電子デバイスがさらに、対応する1つ以上のコンピュートインスタンスが、スロット再構成操作のセットを通して実行し続ける、1個以上の他のスロットを含む、前記作成することのために、複数のワーカーエンティティのそれぞれにより同時に1回以上、前記スロット再構成操作のセットを実行することと、
を
行う、前記制御プレーンと、
を備える、システム。
【請求項12】
前記スロット再構成操作のセットのうちの1つが、複数のスロットを登録解除することと、前記2つ以上の電子デバイスの第1の電子デバイスで単一のスロットを登録することとを含む、請求項11に記載のシステム。
【請求項13】
前記スロット再構成操作のセットのうちの別のセットが、前記2つ以上の電子デバイスの第2の電子デバイスで単一のスロットを登録解除することと、複数のスロットを登録することとを含む、請求項12に記載のシステム。
【請求項14】
前記スロット再構成操作のセットのうちの前記1つが、
前記複数のスロットの前記登録解除の前に、前記第1の電子デバイスを隔離に配置することであって、隔離中、前記第1の電子デバイスが、1つ以上のコンピューティングデバイスを実行し続けるが、追加のコンピュートインスタンスを配置させるために利用できない、前記隔離に配置することと、
前記単一のスロットの前記登録後に、前記第1の電子デバイスを隔離から取り除くことと、
をさらに含む、請求項12に記載のシステム。
【請求項15】
前記スロット再構成操作のセットのうちの前記1つが、
前記第1の電子デバイスの隔離への前記配置後に、前記複数のスロットがいずれのコンピュートインスタンスも実行していないことを検証すること、
をさらに含む、請求項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、参照することにより本願に援用される、2017年11月10日に出願された米国非仮出願第15/809,884号の利益を主張する。
【背景技術】
【0002】
多くの企業及び他の組織は、(例えば、ローカルネットワークの一部として)同一場所に配置されている、または代わりに(例えば、1つ以上のプライベートもしくはパブリックの中間ネットワークを介して接続された)複数の異なる地理的場所に位置するコンピューティングシステムを用いて等、自らの事業をサポートするために多数のコンピューティングシステムを相互接続するコンピュータネットワークを運営している。例えば、単一の組織により及び単一の組織の代わりに運営されるプライベートデータセンタ、及びカスタマにコンピューティングリソースを提供するために企業としてのエンティティにより運営されるパブリックデータセンタ等の相当数の相互接続したコンピューティングシステムを収容するデータセンタが一般化している。一部のパブリックデータセンタ事業者は、多様なカスタマが所有するハードウェアのためにネットワークアクセス、電力、及び安全な設置施設を提供する。一方、他のパブリックデータセンタは、カスタマによる使用のために利用可能にされたハードウェアリソースも含む「フルサービスの」施設を提供する。しかしながら、典型的なデータセンタの規模及び範囲が拡大するにつれ、物理的なコンピューティングリソースをプロビジョニングするタスク、運営するタスク、及び管理するタスクはますます複雑化している。
【0003】
コモディティハードウェアのための仮想技術の到来は、種々のニーズを有する多くのカスタマ向けに大規模なコンピューティングリソースを管理し、複数のカスタマが多様なコンピューティングリソースを効率的かつ安全に共用できるようにすることに関して利益を提供してきた。例えば、仮想化技術は、単一の物理的なコンピューティングマシンがホストする1つ以上の仮想マシンを各ユーザーに与えることによって、単一の物理的なコンピューティングマシンを複数のユーザー間で共用することを可能にし得、係るそれぞれの仮想マシンは、多様な仮想マシンの間でアプリケーションの隔離及び安全性も提供しつつ、自分が所与のハードウェアコンピューティングリソースの単独の事業者及び管理者であるという錯覚をユーザーに与える別個の論理コンピューティングシステムとしての機能を果たすソフトウェアシミュレーションである。さらに、一部の仮想化技術は、複数の別個の物理コンピューティングシステムに広がる複数の仮想プロセッサを有する単一の仮想マシン等の2つ以上の物理リソースに広がる仮想リソースを提供することが可能である。
【0004】
別の例では、仮想化技術は、複数のデータストレージデバイス全体で分散し得る仮想化されたデータストアを各ユーザーに提供することによってデータストレージハードウェアを複数のユーザーの間で共用することを可能にし、係るそれぞれの仮想化されたデータストアは、自分がデータストレージリソースの単独の事業者及び管理者であるという錯覚をユーザーに与える別個の論理データストアとして機能する。
【0005】
本開示に係る多様な実施形態を図面を参照して説明する。
【図面の簡単な説明】
【0006】
【
図1】一部の実施形態に係る動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理のための環境を示す図である。
【
図2】一部の実施形態に係る動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理のために、フリート(fleet)再構成サービス及びクラウドマネージャを関係させる、例示的な操作及びメッセージングを示す図である。
【
図3】一部の実施形態に係る動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理の一部として使用できる例示的なデータを示す図である。
【
図4】一部の実施形態に係る動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理のための操作を示す流れ図である。
【
図5】一部の実施形態に係る動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理のために複数のワーカーを関係させる操作を示すフロー及びシーケンスの複合図である。
【
図6】一部の実施形態に係る動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理のための操作を示す流れ図である。
【
図7】一部の実施形態に係る例のプロバイダネットワーク環境を示す図である。
【
図8】一部の実施形態に従ってカスタマにストレージ仮想化サービス及びハードウェア仮想化サービスを提供する例のプロバイダネットワークのブロック図である。
【
図9】一部の実施形態で使用し得る例のコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0007】
動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理のための方法、装置、システム、及び非一過性コンピュータ可読媒体の多様な実施形態が開示される。一部の実施形態によれば、プロバイダネットワークのカスタマは、同じホスト電子デバイスで同時に実行できる異なるコンピュートインスタンスタイプのコンピュートインスタンスを起動できる。一部の実施形態では、フリート再構成サービスは、ホスト電子デバイスの実行時再構成を実行する。一方、電子デバイスは、コンピュートインスタンス実行に利用可能な電子デバイスのスロットのタイプ及び/または数を動的に変更するために他のコンピュートインスタンスを実行してよい。
【0008】
一部の実施形態では、異種のホスト電子デバイスを実装するプロバイダネットワークは、異なるタイプのコンピュートインスタンスに対する需要の変化に柔軟に適応することによって容量のより大きい可用性を提供できる。さらに、一部の実施形態は、ホスト電子デバイスのリソース利用を拡大する、要求されたコンピュートインスタンスを起動するための場所が利用できないことに起因する配置要求の失敗を削減する、及び/または共通の失敗の状況により影響を及ぼされるであろう類似した場所に類似したタイプのコンピュートインスタンスを配置するニーズを削減または排除することによってカスタマに強化したフォールトトレランスを提供することができる。
【0009】
大規模プロバイダネットワークでは、コンピュートインスタンスの実行(例えば、仮想マシン(VM)インスタンス及び/またはコンテナを実行すること)の形でコンピューティングリソースを提供する共通の方式は、カスタマが特定のタイプのコンピュートインスタンスを起動することを可能にすることを必要とする。例えば、異なる使用例に対応するために最適化される複数のインスタンスファミリが提供されてよい。一例として、各インスタンスファミリは、プロバイダネットワークのカスタマに自分のニーズのためにリソースの適切な混合物を選ぶ柔軟性を与えるために、処理、メモリ、ストレージ、ネットワーキング等、容量、または性能の変化する組み合わせを提供してよい。さらに、各インスタンスファミリは、コンピュートインスタンスの特定のリソースの異なる量または特徴を有するいくつかの異なるインスタンス「サイズ」を含み、カスタマが必要に応じてリソースを拡大縮小することを可能にしてよい。このようにして、インスタンスタイプは、コンピュートインスタンスのリソースの特定の構成であってよく、したがってインスタンスタイプは、インスタンスファミリ(例えば、処理が最適化されたコンピュートインスタンス)及び特定のサイズ(例えば、特定の量の処理、メモリ、ストレージ、ネットワーキング等)のファミリの組み合わせであってよい。
【0010】
これらのコンピュートインスタンスを実装するために、プロバイダネットワークは多数の電子デバイスをセットアップして、コンピュートインスタンスが実行できるホストとしての機能を果たしてよく、電子デバイスのそれぞれは、特定のタイプのコンピュートインスタンスに1個以上の「スロット」を提供するように構成されてよい。各電子デバイスが1つのタイプのコンピュートインスタンスしかホストしないようにネットワークを構成することによって、プロバイダネットワークを簡略に構築することができ、既知の数の1つのタイプのコンピュートインスタンスをサポートするために、電子デバイスの特徴を簡単に選択できる。
【0011】
しかしながら、係る方式は、異なるインスタンスタイプのために容量の「空きプール」を維持するニーズにつながる場合がある。さらに、特定のインスタンスタイプに対する需要が利用可能なプール容量を超えると、カスタマは、そのタイプのインスタンスをただちに起動できない場合がある。代わりに、追加のプール容量を加えるために「リビルド」プロセスが実行されてよく、異なるインスタンスタイプをサポートするように構成されていた空のホスト電子デバイス(つまり、現在、いかなるカスタマのコンピュートインスタンスも実行していない)が識別され、必要とされる異なるインスタンスタイプをサポートするように再構成されるであろう。係るリビルドプロセスは、多大な時間を必要とする場合があり、空のデバイス―任意の時点で存在していない可能性がある―だけをリビルドするニーズのためにただちに実行できない場合さえある。
【0012】
したがって、本明細書に開示する実施形態は、大規模プロバイダネットワークが、異なるインスタンスタイプを同時にホストできる異種ホスト電子デバイスを利用できるようにする。一部の実施形態では、異なるインスタンスサイズに対する需要を満たすために完全に空のホストを見つけるニーズはない場合がある。代わりに、既存のカスタマインスタンスが影響を受けずに実行し続け得る一方、1つのタイプのインスタンスを実行しているホスト電子デバイスを、異なるタイプの別のインスタンスをサポートするように再構成できる。さらに、一部の実施形態では、ニーズが生じる前に利用できるコンピュートインスタンススロットの量及びタイプを管理するために、フリートのホスト電子デバイスのうちのホスト電子デバイスを、例えば断定的なモデルまたは発見的問題解決法に基づいて「オフライン」式で再構成できる。結果的に、ホスト電子デバイスのフリートの容量は代替可能となる場合があり、要求されたタイプのコンピュートインスタンスに対する不十分な容量のために拒絶されるカスタマ起動要求の発生を減少させながら、容量使用の効率を高めることができる。一部の実施形態では、カスタマは、高需要時でさえより大きいシステム可用性(例えば、より少ない容量不足の例外)を有益に経験するであろうが、プロバイダネットワークのカスタマには、異種ホスト電子デバイスの利用を完全に見えなくできる。さらに、一部の実施形態では、コンピュートインスタンスをより密に「圧縮すること」により、プロバイダネットワークのホスト電子デバイスをより完全に利用することができ、これにより、カスタマに同じ量のサービスを提供するために必要とされる電子デバイスの数(したがって、ハードウェア、電気、管理等の量)を削減できる。さらに、ホスト電子デバイス上で複数のタイプのコンピュートインスタンスを実行することによって、共通コンピュートインスタンスの大きいフリートが、共通のホストデバイスに配置される可能性は低くなる。したがって、特定のホストデバイスに関わるいかなる問題も―1つの層としての機能を果たす複数の異種コンピュートインスタンスが共通のデバイスに配置されると起こるであろう―カスタマのアプリケーションの全体的な層におそらく影響を及ぼさず、フォールトトレランスの改善を通してカスタマに強化された安定性をさらに提供する。
【0013】
図1は、一部の実施形態に係る動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理のための環境を示す図である。本明細書に説明するように、実施形態は、プロバイダネットワーク100で実装できる。プロバイダネットワーク100は、そのユーザーに、計算リソース(例えば、コンピュートインスタンスを実行すること、バッチジョブを実行すること、サーバをセットアップすることなくコードを実行すること)、データ/ストレージリソース(例えば、オブジェクトストレージ、ブロックレベルストレージ、データアーカイブストレージ)、ネットワーク関係リソース(例えば、計算リソース、コンテンツ配信ネットワーク(CDN)、ドメインネームサービス(DNS)のグループを含む仮想ネットワークを構成すること)、アプリケーションリソース(例えば、データベース、アプリケーション構築/配備サービス)等のさまざまなタイプのコンピューティング関係リソースのうちの1つ以上を利用する能力を与える。これらの及び他のコンピューティングリソースは、コンピュートインスタンスを実行できるハードウェア仮想化サービス142、データオブジェクト等を記憶できるストレージ仮想化サービス等のサービスとして提供されてよい。プロバイダネットワーク100のユーザー(つまり「カスタマ」)は、カスタマアカウントと関連付けられる1つ以上のユーザーアカウントを利用してよい。ただし、これらの用語は、使用の文脈に応じてやや同義で使用され得る。ユーザー102は、ウェブサイトまたはアプリケーション等として実装されたコンソールの使用から生じるハイパーテキスト転送プロトコル(HTTP)メッセージを介するプロバイダネットワーク100のAPIエンドポイントに対するアプリケーションプログラミングインタフェース(API)呼び出しを使用することによって等、1つ以上のインタフェース(複数可)108を介して1つ以上の中間ネットワーク106(例えば、インターネット)全体で電子デバイス104を使用し、プロバイダネットワーク100と対話してよい。インタフェース(複数可)108は、より目に見えるようにまたは「直接的に」カスタマに提供され得るサービスをサポートし、有効にする「バックエンド」サービスを含むプロバイダネットワーク100の制御プレーン122の一部であってよい、または制御プレーン122に対するフロントエンドとしての機能を果たしてよい。
【0014】
これらの及び他のコンピューティングリソースサービスを提供するために、プロバイダネットワーク100は、多くの場合仮想化技術に頼る。例えば、仮想化技術は、ユーザーに、コンピュートインスタンス(例えば、基本的なホストO/Sの上部でさらに動作する場合もあれば、動作しない場合もあるハイパーバイザ、VMで動作する場合もあれば、動作しない場合もあるコンテナ、基本的なハイパーバイザなしで「ベアメタル」ハードウェアで実行できるインスタンスを使用し、動作するゲストオペレーティングシステム(O/S)を使用するVM)を制御または利用する能力を与えるために使用されてよく、1つまたは複数のコンピュートインスタンスは、単一の「ホスト」電子デバイスを使用し、実装できる。このようにして、ユーザー102は、さまざまなコンピューティングタスクを実行するためにサービスプロバイダシステムによりホストされるコンピュートインスタンスを直接的に利用する場合もあれば、(通常は、ユーザーが関与する基本的なコンピュートインスタンス(複数可)のいかなる制御または知識も有さずに)同様にコードを実行するためにコンピュートインスタンスを利用するサービスプロバイダシステムにより実行されるコードを提出することによってコンピュートインスタンスを間接的に利用する場合もある。したがって、プロバイダネットワーク100は、異なる機能を有する複数の異なるタイプであってよい、複数の電子デバイス134A~134Cを含む。
【0015】
大規模なプロバイダネットワーク100では、複数の地理的場所に位置する場合がある数百、数千、数万の、またはより多くの電子デバイス134A~134Cがある場合があるが、
図1では、3つのホスト電子デバイス134A~134Cが示される。さらに、プロバイダネットワーク100では、利用されるコンピュートインスタンスのタイプが著しく多いまたは少ない場合もあるが、この例では、3つの異なるコンピュートインスタンスタイプ―小、中、及び大と呼ぶ―が提示される。
【0016】
この例では、「時間1」で、第1の電子デバイス134Aは、初期に8個の「小」インスタンスタイプスロット137A~137Hを含むとして示され、これらのスロットのうちの2個は2つのタイプ「小」のコンピュートインスタンス136A~136Bにより使用される。同様に、第2の電子デバイス134Bは、初期に4個の「中」インスタンスタイプのスロット139A~139Dを含むとして示され、これらのスロットのうちの3個が、タイプ「中」のコンピュートインスタンス138A~138Cにより使用される。最後に、第3の電子デバイス134Cは、初期に2個の「大」のインスタンスタイプのスロット141A~141Bを含むとして示され、これらのスロットのうちの1個がタイプ「大」のコンピュートインスタンス140Aにより使用される。この場合、各電子デバイス134A~134Cは、始めに異種タイプのコンピュートインスタンスをホストするとして示されるが、これは、要件または共通の事例としても解釈されるべきではなく、代わりに理解を容易にするために相応して提示される。しかしながら、一部の実施形態では、この状況は、電子デバイス134A~134Cの異種フリート(つまり、それぞれが1つのインスタンスタイプしかサポートしない)が適所に移動されて、一度に複数のタイプのコンピューティングデバイスをサポートする能力を有する異種フリートになるときに当てはまる場合がある。
【0017】
一部の実施形態では、プロバイダネットワーク100は、電子デバイス134A~134Cの電子デバイスを再構成することによって、その利用可能なコンピュートインスタンス容量を管理できる。例えば、一部の実施形態では、プロバイダネットワーク100は、プロバイダネットワーク100のコンピュートインスタンスの以前の利用履歴の分析に基づいて、特定のときにどのタイプのコンピュートインスタンスがカスタマにより所望される場合があるのかを示すモデルを構築し得る予想サービス120を含む。例えば、予想サービス120は、経時的な以前のコンピュートインスタンスの利用を記述するデータ-例えば、いつコンピュートインスタンスを起動する要求が受信されたのか、どのタイプのコンピュートインスタンスがそれらの要求によって求められたのか、いつコンピュートインスタンスが起動されたのか、どのタイプのコンピュートインスタンスが起動されたのか、どのくらいの期間コンピュートインスタンスが使用されたのか-を入手し、将来の容量ニーズを予測するための統計モデル及び/または機械学習モデルを生成してよい。予想サービス120は、円『A』で、生成したモデルを使用して、特定のタイプのコンピュートインスタンスのうちのどのくらいの数のコンピュートインスタンスが(近い)将来のある時点で必要とされると予測されるのかを示す「プールターゲット」を含む予想データ128を生成し、この予想データ128をフリート再構成サービス116に提供することができる。一部の実施形態では、フリート再構成サービス116は、容量の空きプールの複数の異なるタイプの「スロット」を構築し、再割り当てし、管理する。
【0018】
一部の実施形態では、予想データ128を入手するために、フリート再構成サービス116は、対応するHTTP応答メッセージで予想サービス120により送り返される、予想データ128に対する要求(例えば、予想サービス120と関連付けられたエンドポイントに対するHTTP要求)を送信する。しかしながら、他の実施形態では、予想サービス120は、フリート再構成サービス116がアクセスできる(例えば、共用されるストレージまたはメモリの場所、メッセージ待ち行列等)共通してアクセス可能なストレージ場所に予想データ128を公開(または記憶)してよい。
【0019】
円『B』で、フリート再構成サービス116は、プロバイダネットワーク100の中のコンピュートインスタンススロットの現在の可用性(つまり「余剰分」)を示す現在の容量情報を入手できる。例えば、フリート再構成サービス116は、多様な利用可能なリソース(例えば、1つ以上のコンピュートインスタンスタイプのそれぞれに利用可能なスロットの数)を識別する容量情報を入手するために、クラウドマネージャ(CM)112、情報配信/公開サービス、CMデータストア124等のプロバイダネットワーク100の別のサービスに問い合わせする場合もあれば、共用されるストレージ/メモリ場所でルックアップを実行する場合もある。
【0020】
予想データ128及び現在の容量情報を用いて、フリート再構成サービス116は、2つを比較して、容量(例えば、スロット)の利用可能な量が、予想データ128によればそのコンピュートインスタンスタイプの容量の予測量に満たない(コンピュートインスタンスタイプに相当する)任意のプールを識別できる。識別した任意のコンピュートインスタンスタイプ可用性の不足を用いて、フリート再構成サービス116は、識別したいかなる不足も排除しようと試みて、プロバイダネットワーク100で利用可能なスロットの再構成を実行できる。
【0021】
例えば、
図1に示す例では、予想サービス120が、予想データ128において、将来、1個の追加の小スロットが必要とされ、2個の追加の中スロットが必要とされ、ゼロ個の追加の大スロットが必要とされることを示すと規定する。しかしながら、多様な実施形態では、予想データ128は、さまざまな方法で表現されてよく、したがって(既存の利用済みのスロットを含めて)必要とされると見積もられるスロットの総数、(既存の利用済みのスロットを除外して)必要とされると見積もられるスロットの追加の数等を示してよい。
【0022】
さらに、現在の可用性は、6個の小スロット(例えば、小スロット137C~137H)が利用可能であり、1個の中スロット(例えば、中スロット139D)が利用可能であり、1個の大スロット(例えば、大スロット141B)が利用可能であることを示すと規定する。
【0023】
この場合、フリート再構成サービス116は、不足が見積もられるスロットの1つのコンピュートインスタンスタイプのプールを識別できる-つまり、1個の係るスロットしか利用可能ではないにも関わらず、スロットの中コンピュートインスタンスプールが2個の追加のスロットを必要とすると見積もられている。
【0024】
一部の実施形態では、フリート再構成サービス116は、この見積もった不足を検出し、スロット再構成操作を介してそれを排除することができる。例えば、フリート再構成サービス116は、少なくとも1個の追加の「中」スロットを提供するように再構成できる1個以上の利用可能なスロットを識別するために、既存の利用可能なスロットの分析を実行できる。
【0025】
例えば、一部の実施形態では、フリート再構成サービス116は、特定の量の他のタイプのスロットを結合して、中スロットを生じさせることができる、及び/または別のタイプのスロットを1個の中スロット-及び潜在的に、中スロットである場合もあれば、ない場合もある他のスロット-に分割できると判断する場合がある。
【0026】
例として、「時間2」での「オプション1」に関して示すように、フリート再構成サービス116は-事前に構成された変換規則に従って、及び/またはコンピュートインスタンスの関係するタイプの必要とされるリソース/特徴の動的な分析に従って-2個の小スロット137G~137Hが排除された場合、1個の中スロット(例えば、新しい中スロット139E)が作成されるであろうと判断してよい。別の例として、「時間2」での「オプション2」に関して示すように、フリート再構成サービス116は、単一の大スロット141Bが排除された場合、任意選択で別の新しい中スロット139Gまたはおそらく2個の小スロット137I~137Jとともに、1個の中スロット(例えば、新しい中スロット139F)が作成されるであろうと判断してよい。このようにして、これらのオプションのうちの(少なくとも)1つに従うことによって、例えば以前から存在する中スロット139Dとともに新しい中スロット139Eを作成し、以前から存在する中スロット139Dとともに(少なくとも)1個の新しい中スロット139Fを作成する等によって見積もられた不足を排除することができ、少なくとも2個の中スロットが利用可能になる。
【0027】
一部の実施形態では、これらの2つのオプションのうちの1つしか実装され得ないが、他の実施形態では、おそらく-例えば、特定の量の利用可能なコンピュートインスタンスタイプのスロットのうちの閾値数をつねに保つ、特定のタイプのコンピュートインスタンススロットの最大数をつねに保つ等-他の利用可能なスロットプール目標を満たすために両方のオプションに従うであろうことに留意されたい。
【0028】
再構成を実行するために、フリート再構成サービス116は、プロバイダネットワーク100の特定の実施態様に基づいてさまざまな異なるタイプの操作を実行してよい。例えば、一部の実施形態では、フリート再構成サービス116は、リソース及びスロットデータ126のセットを更新させて、(例えば、更新メッセージ132を介して)変更された利用可能なスロット特徴を反映するために(CM112に関して等、円『B1』で)さまざまな制御メッセージ130を送信する。また、フリート再構成サービス116は、1つ以上の電子デバイス134A~134Cのスロットの利用または非利用を検証すること等、(円『B2』で)再構成される、選択された1つ以上の電子デバイス134A~134Cを用いて、直接的にまたは(CM112にコマンドを発行することを介して等)間接的にさまざまな操作を実行してもよい。一部の実施形態に係る例示的な操作を説明する追加の詳細は、
図2に関して本明細書で後に提示される。
【0029】
プロバイダネットワーク100での動的に管理された-及び再構成された-コンピュートインスタンススロットの恩恵により、追加のコンピュートインスタンスに対する追加のニーズは、より迅速にかつより容易に提供できる。例えば、2個の追加の「中」タイプのコンピュートインスタンススロットが必要とされると見積もられた例を続行すると、フリート再構成サービス116が、少なくとも2個の「利用可能な」つまり空いている既存の中コンピュートインスタンスタイプのスロットを生じさせるために、上述した「オプション1」または「オプション2」の少なくとも1つに従ったと仮定する。
【0030】
その後、起動する2個の中コンピュートインスタンスを求める(電子デバイス104からの)配置要求150は、プロバイダネットワーク100のインタフェース108の円『1』で受信されてよい。要求-または何が要求により求められるのかを識別する類似したメッセージ-は制御プレーン122に渡される場合がある。一例として、容量管理サービスは、要求を検査し、2つの中コンピュートインスタンスが求められていることを識別し、少なくとも2個の係る中スロットが利用可能であるかどうかを判断するために、利用可能な中コンピュートインスタンスのプール内でルックアップを実行してよい。少なくとも2個の係る中スロットが利用可能ではない場合、要求150は拒否されるであろう(例えば、不十分な容量を示す対応する応答が電子デバイス104に送り返されるであろう)。しかしながら、この場合、フリート再構成サービス116の側の先験的な再構成のため、利用可能な少なくとも2個の空いている中コンピュートインスタンスタイプのスロットがあり、このようにして要求150はサービスを提供され、CM112に渡される場合がある。
【0031】
円『2』で、CM112は、配置のための配置操作を始める場合があり、円『3』で、2つの中コンピュートインスタンスの配置場所を識別できる配置サービス114に配置要求を発行してよい。例えば、配置サービス114は、利用可能な中スロットを識別し、特定の配置規則及び/または事業論理を適用して、所望される中コンピュートインスタンスを配置する利用可能な中スロットのうちのスロットを選択するために、システムの現在の容量(例えば、リソース及びスロットデータ126に対する直接的または間接的なアクセス)を把握している。
【0032】
選択した配置場所(つまりスロット)ごとに、配置サービス114は、CM112に、それぞれが、コンピュートインスタンスが配置されるホスト電子デバイス内のリソースの特定のセットを識別する1つ以上のリソースベクトルを含む配置データを返してよい。一例として、2つの不均一メモリアクセス(NUMA)ノード(例えば、同じ接続性のレートを有するメモリを用いた処理能力の「スライス」)-「N1」及び「N2」-、ならびに2テラバイト(TB)のハードディスクを有する電子デバイスを考える。この構成から、以下は、リソースベクトル、<N1,0~1TB>、<N2,1~2TB>、及び<N1,N2,0~2TB>のいくつかの簡略化された例である。別の例として、リソースベクトルは、NUMAノード識別子、処理能力、及びメモリを含むことができるであろう。別の例として、リソースベクトルは、(例えば、処理及び/またはメモリに加えて)コンピュートインスタンス及び/または電子デバイスと関連付けられたいくつかのファイアウォール規則、利用可能な帯域幅の量、利用可能なネットワーキング「バースト」の量、利用可能なグラフィックスプロセッシングユニット(GPU)及び/またはアクセラレータデバイス(例えば、全体の一部、またはアドレス範囲)の識別子、持続ストレージの量、ディスクへの書き込み/読み取りのための帯域幅等を含むことがあるであろう。リソースベクトルは、例えば、JavaScript(登録商標)Object Notation(JSON)、拡張マークアップ言語(XML)等として等、さまざまな異なるタイプのフォーマットで表現される場合がある。
【0033】
(一部の実施形態では、スロット関係の情報を含む場合がある)このリソースベクトルは、円『4』でリソースベクトル(及びおそらく裏付ける情報)を、中コンピュートインスタンスの起動のためのプロパティの集合体の一部としてインスタンス管理サービス118に送信できるCM112に返される場合がある。
【0034】
インスタンス管理サービス118は、リソースベクトル情報(及び、一部の実施形態では、その中のスロット情報)を識別し、所望されるスロットの円『5』で、コンピュートインスタンスを起動させることができる。
【0035】
例えば、一部の実施形態ではインスタンス管理サービス118は、ホスト電子デバイスの一部(例えば、ホスト電子デバイスと結合する)である(1つ以上のプロセッサ、ローカルメモリ、物理ネットワークインタフェース等を含む場合がある)オフロードカードに特定の所望されるスロット場所で、必要とされるコンピュートインスタンスを起動させてよい。オフロードカードは、例えば、ハイパーバイザとは無関係に、または電子デバイスの従来のCPU(複数可)を使用し、実行するハイパーバイザと組み合わせて、ホスト電子デバイスで実行する仮想マシンコンピュートインスタンスを管理できる仮想化マネージャを実装してよい。例えば、一部の実施形態では、オフロードカードによって実装される仮想化マネージャは、仮想マシンをインスタンス化及び/または終了し、このようにしてハイパーバイザがこれらのタスクを実行するニーズを排除することができ、これにより、ハイパーバイザとリソースを争う必要がないため、仮想マシン自体の性能を改善できる。代わりに、一部の実施形態では、インスタンス管理サービス118は、コンピュートインスタンスを起動させるために(例えば、VM管理サーバを介して)ハイパーバイザと代わりに対話してよい。
【0036】
フリート再構成サービス116の側でのホスト電子デバイスの再構成に関する追加の詳細については、一部の実施形態に係る動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理のためにフリート再構成サービス及びCMを関係させる例示的な操作及びメッセージングを示す図である
図2を参照する。
【0037】
図1と同様に、予想データ128及び容量情報202(容量情報202の他のソースも利用し得るが、ここでは、CM112から入手されているとして示される)は、円『1』でフリート再構成サービス116により入手され、円『2』で、フリート再構成サービス116は、(
図1に関して説明した)「オプション1」に従うべきである、つまり2個の小スロット137G~137Hが排除され、1個の新しい中スロット139Eが作成されると判断する。
【0038】
この例の実施形態では、フリート再構成サービス116は、電子デバイス134Aを隔離するために円『3A』により反映された第1の制御メッセージ130を送信し、円『3B』でCM112に(更新メッセージ132を介して)更新を実行させて、デバイスを(例えば、CMデータストア124内に)隔離されているとして設定する。一部の実施形態では、「隔離された」電子デバイスは、コンピュートインスタンスの配置/起動のためのスロットを選択するとき、その電子デバイスを(例えば、配置サービス114による)検討から外させる。ただし、この状態は、そのデバイスで実行中の既存のコンピュートインスタンスを関係させる操作-例えば、インスタンスの終了のようなカスタマが開始したワークフロー、インスタンスのボリュームの付加または分離等-を妨げない。したがって、電子デバイスを隔離状態に配置することによって、既存の「空き」スロットは空いたままとなるはずであり、フリート再構成サービス116の判断は、これらのスロットの状態の変化により損なわれない。一方、デバイス上での既存の活動は影響を受けずに続行できる。
【0039】
任意選択で、円『4』で、フリート再構成サービス116は、再構成される2個の選択したスロット137G~137Hが真に「空」である-つまり、そこで実行している既存のコンピュートインスタンスを有していない-ことを検証できる(204)。このチェックは、一部のシステムでは厳密に必要ではない場合があるが、このチェックは、既存のユーザー作業付加がマイナス影響を受けない追加の予防手段として迅速に実行できる。一部の実施形態では、検証204を実行するために、フリート再構成サービス116は、2個の選択したスロット137G~137Hが空であるかどうかを判断するために、(例えば、1つ以上の制御メッセージ130を介して)1つ以上のコマンドをCM112に発行してよい。例えば、CM112は、選択したスロット137G~137Hが各起動に一致する終了を有していたかどうかを判断するために、各スロットの追跡状態を分析してよい、及び/または(例えば、CMデータストア124から)コンピュートインスタンスの起動及び/または終了の履歴を分析してよい。
【0040】
円『5A』で、フリート再構成サービス116は、2個のスロットを登録解除するための別の制御メッセージ(例えば、「DeregisterSlot」メッセージ)を送信する場合があり、これにより、CM112は2個のスロットを削除するために円『5B』で更新を実行する。例えば、2個のスロットを削除することは、「スロット」及び/または2個のスロットの(
図3に関して本明細書で以下に説明する)「スロット情報」データを削除することを含む場合がある。一部の実施形態では、2個のスロットの削除は、電子デバイスの総スロットの数を調整すること(ここでは、削除すること)、2個のスロットに対応する利用可能なスロットの数を調整すること(ここでは、2だけ「小」コンピュートインスタンス可用性プールを削減すること)等をさらに含んでよい。
【0041】
円『6A』で、フリート再構成サービス116は、新しいスロットを追加するための別の制御メッセージ130(例えば、「RegisterSlot」メッセージ)を送信する場合があり、これにより、CM112は円『6B』でスロットを追加するために更新を実行する。例えば、スロットを加えることは、「スロット」及び/または新しいスロットのための(
図3に関して、本明細書で以下に説明する)「スロット情報」データを加えるであろう。一部の実施形態では、スロットの付加は、電子デバイスの総スロットの数を調整すること(ここでは、加えること)、スロットに対応する利用可能なスロットの数を調整すること(ここでは、1だけ「中」コンピュートインスタンス可用性プールを増加させること)等をさらに含んでよい。
【0042】
一部の実施形態では、円『5A』及び『5B』の「登録解除」操作は、同じトランザクションの一部として円『6A』及び『6B』の「登録」操作とともに実行されてよい。例えば、2個のスロットを登録解除するべきであること、及び円『5A』で、1個の新しいスロットを登録すべきであることを示す単一の制御メッセージ130を送信することができ、結果的に、2個のスロットを削除し、新しいスロットを追加し、任意選択で単一のトランザクションの一部としてデバイススロット情報を更新するために、1つ以上の更新メッセージ132が送信される。
【0043】
円『7A』で、フリート再構成サービス116は、デバイスを隔離された状態から脱出させるために別の制御メッセージ130を送信する場合があり、これによりCM112はデバイスを「生産」に設定し直すことによってデバイスを隔離された状態から脱出させるために、円『7B』で更新を実行する。この点で、電子デバイスは、再び、配置サービス114による新しいコンピュートインスタンスの配置/起動のために潜在的に選択される場合があり、「新しい」スロットは、2個の現在は削除されているスロットが検討から排除される間、露呈される。
【0044】
一部の実施形態で利用できるリソース及びスロットデータ126の例について、一部の実施形態に係る動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理の一部として使用できる例示的なデータを示す図である
図3を参照する。
【0045】
一部の実施形態では、CMデータストア124は、1つ以上の制御プレーンエンティティを介して-直接的にまたは間接的に-アクセスできるデータベースを含む。CMデータストア124は、上述したリソース及びスロットデータ126を含む場合があり、リソース及びスロットデータ126は、リソースベクトル302の集合体(またはテーブル)、スロットサイズ304の集合体、「スロット情報」306の集合体、及び/またはスロット308の集合体の1つ以上を含む場合がある。
【0046】
リソースベクトル302の各エントリ(つまり、行、レコード等)は、本明細書に説明するように、リソースベクトル(RV)識別子(ID)、及び正規化され、符号化されたリソースベクトルを含んでよい。同様に、スロットサイズ304の各エントリは、スロットサイズ(SS)ID、及びスロットの特定の「サイズ」または「タイプ」を示す正規化されたスロットサイズ値を含んでよい。
【0047】
一部の実施形態では、リソース及びスロットデータ126は、各エントリが(プロバイダネットワークの中で特定のホスト電子デバイスを一意に識別する)電子デバイス識別子、及びその電子デバイスの文脈の中で一意であるスロット番号を含む、「スロット情報」306集合体を含む。一部の実施形態では、各エントリは、特定のスロットサイズを識別するために(例えば、外部キー関係を介して、サンプル参照を介して等)任意選択で使用されてよいSS IDを含んでもよい。一部の実施形態では、各エントリは、スロットの特徴を記述する(リソースベクトル302の)特定のリソースベクトルを介して識別するために使用されてよいRV IDを含んでもよい。
【0048】
一部の実施形態では、リソース及びスロットデータ126は、利用済みのスロットを追跡する「スロット」308構造を含み、各エントリは、ホスト電子デバイス識別子、スロット番号識別子等のフィールド、及びスロット内でコンピュートインスタンスにより利用されるネットワークアドレス、そのスロット内のコンピューティング新スタンスのインスタンス識別子等の1つ以上の利用値、及び/または任意の他の数の値を含んでよい。
【0049】
このようにして、多様な実施形態では、このリソース及びスロットデータ126は、本明細書で説明する操作のために有用な情報を決定するために使用できる。例えば、一部の実施形態では、プロバイダネットワーク内の利用可能なスロットは、スロット308構造内に対応するエントリを有していないスロット情報306エントリのエントリを選択することによって識別できる。別の例として、スロットの現在の利用は、スロット308構造に問い合わせることによって決定できる。言うまでもなく、リソース及びスロットデータ126の多くの他の用途及びタイプが多様な実施形態で使用できる。
【0050】
一部の実施形態に係る動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理のための例示的な操作400を
図4の流れ図に示す。操作400(または本明細書に説明する他のプロセス、または変形形態、及び/またはその組み合わせ)の一部またはすべては、実行可能な命令で構成された1つ以上のコンピュータシステムの制御下で実行され、ハードウェアまたはその組み合わせにより、1つ以上のプロセッサ上で集合的に実行するコード(例えば、実行可能な命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として実装される。コードは、例えば1つ以上のプロセッサにより実行可能な命令を含むコンピュータプログラムの形でコンピュータ可読記憶媒体に記憶される。コンピュータ可読記憶媒体は非一過性である。一部の実施形態では、操作400の1つ以上(またはすべて)は、他の図の制御プレーンまたはフリート再構成サービスにより実行される。
【0051】
操作400は、ブロック405で、コンピュートインスタンスプールターゲットを入手することを含む。ブロック405は、予想サービスから予想データの一部としてコンピュートインスタンスプールターゲットを入手するフリート再構成サービスにより実行されてよい。入手することは、予想データに対する要求メッセージを送信すること、予想データを含む応答メッセージを受信すること、(予想データが予想サービスにより配置された)メッセージ待ち行列から予想データを読み取ること等を含んでよい。一部の実施形態では、予想データは、履歴コンピュートインスタンス利用情報に基づいて予想サービスにより生成され、1つ以上のタイプのコンピュートインスタンスのそれぞれに、来るべき時点(または時間範囲)で利用されることが予想される、そのタイプのコンピュートインスタンスの総量(または追加量)を含むコンピュートインスタンスプールターゲットを含んでよい。
【0052】
操作400は、ブロック410で、現在の可用性情報(例えば、1つ以上のコンピュートインスタンスタイプのためのスロットの現在の可用性)を入手することを含む。ブロック405は、フリート再構成サービスにより実行されてよく、直接的にまたは間接的に(例えば、CMを介して)利用できる1つ以上のコンピュートインスタンスタイプのスロットの現在の数を入手することを含んでよい。このデータは、CMデータストアが記憶するリソース及びスロットデータから入手されてよい。
【0053】
ブロック415で、操作400は、コンピュートインスタンスプールが不安定な状態にあるかどうかを判断することを含む。ブロック415は、フリート再構成サービスにより実行されてよく、コンピュートインスタンスタイプごとに、(現在の可用性情報からの)スロットの利用可能な数が(コンピュートインスタンスプールターゲットによる)そのタイプのスロットの予測数以上であるかどうかを判断することを含んでよい。一部の実施形態では、ブロック415は、コンピュートインスタンスタイプごとに、スロットの利用可能な数が、そのタイプのスロットの予測数よりも多いスロットの少なくとも1つの閾値量(例えば、1個、2個、5個、10個等)を含むかどうかを判断することを含んでよい。
【0054】
コンピュートインスタンスタイプのすべてがバランスがとれた状態であるとして識別される場合、フローはYES分岐に従って続行し、終了する、またはある時点で操作400を再び開始してよい。コンピュートインスタンスタイプの1つ以上がバランスがとれた状態ではないとして識別されると、フローは、NO分岐に従ってブロック420に続行してよい。
【0055】
ブロック420で、操作400は、所望されるスロットを作成するために潜在的に利用し得る利用可能なスロットを有する「候補」電子デバイスのリストを決定することを含む。一部の実施形態では、ブロック420は、フリート再構成サービスがCM112に(またはCMデータストア124に直接的に)利用可能なスロットを有する電子デバイスのリストを返す要求を送信することによって実行される。
【0056】
ブロック425で、操作400は、どのタイプのスロットが(例えば、見積もられた需要に従ってコンピュートインスタンスプールのバランスをとるために)作成されることが所望されるのか、及びどのくらいの数の各タイプのスロットが加えられることが所望されるのかを判断することを含む。ブロック425はフリート再構成サービスにより実行されてよく、一例として、スロットタイプの現在の可用性を超えるプールターゲットから所望される数(のスロットタイプ)を有するスロットタイプを識別すること、これらの値の差をスロットタイプのためのスロットの所望される数として決定することによって、ブロック410とともにまたはブロック410の後に実行されてよい。
【0057】
再構成される利用可能な1個以上のスロットを有する候補電子デバイスの1つ以上のそれぞれについて、操作のセットが実行されてよい。一部の実施形態では、これらの操作は、複数のエンティティを使用し、同時に実行できるが、これらの操作は、単一のエンティティ(例えば、スレッド、プロセス、または計算ユニット)により図示されるように実行することができる。操作は、候補電子デバイスのセットのそれぞれが処理されるまで、または(例えば、ブロック425から)所望されるスロットの所望されるタイプ及び数のすべてが作成されるまで実行される。
【0058】
候補電子デバイスのうちの1つの選択した電子デバイスにより、ブロック435で、電子デバイスは隔離される。ブロック435は、電子デバイスを隔離する要求メッセージを受取人サービス(例えば、CM)に送信することを含んでよく、これにより、デバイスが隔離され、したがってその結果(デバイスが隔離されたステータスに留まる間)起動されるまたは起動されると指定されるコンピュートインスタンスを有する資格がないことを反映するためにデータストアが更新される。このようにして、一部の実施形態では、電子デバイスは、他の要求のためにコンピュートインスタンスを起動するための潜在的な配置場所としての検討から外される。この時点で、電子デバイスの他の既存のコンピュートインスタンスは影響なく動作し続け得、関連付けられたカスタマはこのプロセスを通してこれらのコンピュートインスタンスを使用し続けることができる。
【0059】
任意選択で、ブロック440で、操作400は、再構成されるスロット(複数可)の非利用を検証することを含む。ブロック440は、フリート再構成サービスにより実行されてよく、コンピュートインスタンスがスロットで実行中であるかどうかを示すであろうスロットについての情報について、VM管理サーバ、ハイパーバイザ等に問い合わせることを含んでよい。一部の実施形態では、ブロック440はCMによって部分的に実行され、このことは各スロットの状態を追跡するデータ構造内でルックアップを実行することを含む場合もあれば、スロットが利用されるかどうかをCMが判断できるようにする電子デバイスに、CMが要求を送信することを含む場合もある。
【0060】
ブロック445で、操作400は、任意選択で、利用されると仮定されるのではなく、実際に利用されているスロットのいずれかが存在するかどうかを判断することを含む。ブロック445は、フリート再構成サービスにより実行されてよく、ブロック440の検証に基づく場合がある。例えば、検証から返される結果データは、任意のコンピュートインスタンスがスロット(複数可)で実行するかどうかを示す場合があり、このようにしてブロック445は、これが当てはまるかどうかを判断するために結果データを分析することを含む場合がある。当てはまる場合、フローは、電子デバイスが隔離から取り除かれるブロック460に続行してよく、フローは、例えば別の電子デバイスを分析し、ブロック435を始める等のために戻って続行してよい。
【0061】
それ以外の場合、操作400は、所望されるスロットを作成するために、利用できる電子デバイスのスロットのいずれかを結合できるのか、それとも分割(つまり「再構成」)できるのかを判断することを有するブロック447で続行する。例えば、第1のコンピュートインスタンスタイプ(例えば、「大」)の場合、ブロック447は、集合的に(例えば、大スロットで)置換されるであろう特定の電子デバイス(例えば、16個の「極小」コンピュートインスタンススロット、または2個の「中」コンピュートインスタンススロット)で第2のコンピュートインスタンスタイプのグループを識別することを含むであろう。別の例として、第1のコンピュートインスタンスタイプ(例えば、「中」)の場合、ブロック447は、特定の電子デバイス(例えば、2個の「小」コンピュートインスタンススロット)での第2のコンピュートインスタンスタイプ、及び/または第1のコンピュートインスタンスタイプのためのスロットを生じさせるために置換されるであろう第3のインスタンスタイプ(例えば、単一の「大」または単一の「特大」)のグループを識別することを含むであろう。
【0062】
一部の実施形態では、ブロック447は、スロットを再構成できるかどうか、及びスロットをどのようにして再構成できるのかを決定するときにスロットの特徴を考慮に入れる場合がある。例えば、一部の実施形態では、NUMA境界が考慮に入れられる場合があり、例えば異なるNUMAノードでのスロットは、一部の状況では、「より大きい」スロットを形成するために結合されない可能性がある。したがって、一部の実施形態は、NUMAノードに広がる潜在的なスロットを「作成する」ことを試行しない場合があり、このことが、係るスロットに配置されるであろうコンピュートインスタンスの性能低下につながる場合があるであろう。一部の実施形態では、スロットをどのようにして再構成できるのかを決定するときに、他のコンピュータアーキテクチャの特徴を同様に考慮に入れる場合がある。例えば、特定のストレージまたはメモリ(例えば、L2キャッシュ及び/またはL3キャッシュ、またはそのセクション、メモリバンク等)は、特定のスロットと関連付けられてよく、したがって、一部の状況では、異なるメモリ場所(例えば、キャッシュ)と関連付けられる2個のスロットは、異なるタイプのスロットを生じさせるために潜在的に結合されない場合がある。したがって、一部の実施形態は、特定のタイプのコンピュートインスタンスをサポートするために最適なアーキテクチャを有するスロットを作成する再構成プロセスを利用できる。一部の実施形態では、ブロック447での決定は、最初に、NUMA境界が上述したように尊重されることを確実にし、次いでキャッシュラインを共有するプロセッサを有するスロットを発見しようと試行することを含む。
【0063】
1個以上の既存のスロットが1個以上の所望されるスロットで置換されるために識別されると、操作のフローはブロック450で続行し、既存のスロット(複数可)を登録解除する。ブロック450は、フリート再構成サービスにより実行することができ、これらの1個以上のスロットの識別子を含むスロット(複数可)を登録解除するための制御メッセージを送信することを含む場合があり、これにより、1個以上のスロット(及び/または「スロット情報」)エントリが、CMデータストアのリソース及びスロットデータで削除(または修正)される場合がある。ブロック455で、操作400は、新しい所望されるスロット(複数可)を登録することを含む。ブロック455は、フリート再構成サービスにより実行することができ、スロットごとのリソースベクトルを含む場合がある1個以上のスロット(複数可)を登録するために制御メッセージを送信することを含む場合があり、これにより1個以上のスロット(及び/または「スロット情報」及び/またはリソースベクトル)エントリが、CMデータストアのリソース及びスロットデータに挿入される場合がある。一部の実施形態では、ブロック450及び455は、単一の「トランザクション」操作として実行されてよく、したがってこれらのブロックの両方とも実行される、または(なんらかの故障の場合)どちらも実行されない。
【0064】
この時点で、フローは任意選択で、電子デバイスの他の利用可能なスロットを、残っている所望されるスロットタイプを満たすように再構成できるかどうかを判断するための追加の分析のためにブロック447に戻って続行してよい。この構成は、特定の所望されるスロットのために再構成できるスロットのセットの検出時に再構成が即座に発生する、欲張りアルゴリズム方式の下で使用されてよい。しかしながら、他の実施形態では、1個の-または複数の-所望されるスロットを満たすように再構成できるすべての考えられる既存のスロットを識別するためにブロック447の一部として、より完全な分析を実行することができ、したがってブロック450及び455は複数のスロットのために実行できる。
【0065】
特定の電子デバイスのためのプロセスの完了時、ブロック460で、操作400は、電子デバイスを非隔離状態にすることを含む。ブロック460は、フリート再構成サービスにより実行することができ、電子デバイスを非隔離状態にする要求メッセージを受取人サービス(例えば、CM)に送信することを含む場合があり、これにより、デバイスがもはや隔離されておらず(例えば、「生産」ステータスに戻され)、したがってその結果、再びコンピュートインスタンスを起動させるために選択される資格があることを反映するためにデータストアが更新される。この後、フローは戻って処理を続行し、追加のスロットが作成されることを所望され、追加の候補電子デバイスが存在する場合、別の候補電子デバイスを選択することができ、ブロック435~460を再び実行できる。
【0066】
図4のこれらの操作400は、言うまでもなく異なる環境で異なるように実行することができ、より多くの、より少ない、及び/または異なる操作を含んでよい。例えば、
図5は、一部の実施形態に係る動的ホストデバイスインスタンスタイプ再構成を介してプロバイダネットワークで効率的な容量管理を実行するために少なくとも部分的に同時に作業する複数のワーカー500A~500Bを示す、フロー及びシーケンスの複合図である。これらの操作の一部は、類似する参照番号の使用により示されるように、(技術的でないのであれば)少なくとも概念的に
図4の操作に類似している。ただし、係る操作は異なるときに、異なるエンティティによって等実行されてよい。
【0067】
この例では、フリート再構成サービス116は、複数のエンティティ-ここでは、マスタ502及び2つのワーカー500A~500B-を利用する。これらのエンティティのそれぞれは、別々のアプリケーション、スレッド、プロセス、関数、コンピュートインスタンス等である場合があり、一部のまたはすべてのエンティティは、同じまたは異なった場所、データセンタ等で共通のまたは異なる電子デバイスにより実行されてよい。この場合、2つのワーカー500A~500Bが利用されているとして示される。ただし、異なる実施形態では、より多くのまたはより少ないワーカーを使用できる。同様に、本実施形態では、ワーカー500A~500Bとは別個であるマスタ502エンティティが利用されているとして示される。ただし、一部の実施形態では、ワーカーの1つ(例えば、ワーカー500A)がマスタ502の機能を果たしてもよい。
【0068】
図5に示すように、フリート再構成サービス116のマスタ502(例えば、制御サーバ/アプリケーション)は、ブロック425で、どの1つのまたは複数のタイプのスロットが所望されるのか、及び所望されるタイプごとのスロットの数を決定することができる。例えば、マスタ502は、本明細書に説明するように、コンピュートインスタンスプールターゲット情報及び/または現在の可用性情報を入手し、2つを比較して相違を識別してよい。より多くのまたはより少ないワーカーを利用し得るが、マスタ502は、1つ以上のワーカー-ここでは、ワーカー500A及び500B-にメッセージ550(または命令/コマンド)のセットを送信し、一部の実施形態では、マスタ502自体がワーカー500Aの1つとしての機能を果たしてよい。
【0069】
メッセージ550の受信時、第1のワーカー500A及び第2のワーカー500Bは、それぞれ、考えられるどのスロットタイプ及びその数を、関連付けられた電子デバイス(つまり「ホスト」)のセットが再構成を介して潜在的に提供できるのかを識別するために、操作のセットを始めてよい。これらの操作は、全体的にまたは部分的に同時にワーカー全体で実行されてよい。例えば、各ワーカーは、1つ以上の定義されたラックの、1つ以上のデータセンタの、1つ以上のタイプ等のそれらのデバイス等の電子デバイスの定義されたセットと関連付けられて(または「管理して」)よい。したがって、各ワーカーは、ブロック435A~435Bで、電子デバイスの関連付けられたセットを隔離する場合があり、このことは、本明細書に説明するように、電子デバイス(複数可)を隔離する要求メッセージを送信することを含む場合があり、これにより、デバイス(複数可)が隔離されており、したがってその結果起動されるまたは起動されるように指定される新しいコンピュートインスタンスを有する資格がないことを反映するためにデータストアまたはデータ構造が更新される。
【0070】
1つ以上の電子デバイスを隔離すると、各ワーカーは、ブロック410A~410Bで、デバイスのこれらの関連付けられたセットのために現在の可用性情報(例えば、利用可能なスロットの数及びタイプ)を入手し、ブロック504A~504Bで、電子デバイスの関連付けられたセットの利用可能なスロットの考えられる再構成を決定できる。例えば、ワーカーは、「より大きい」スロットタイプのための「より大きいスロット」を形成するために、利用可能なスロットのうちのどれをスロットの他と統合できるのか、及び/または「より小さい」スロットタイプのための「より小さい」スロットを形成するために、利用可能なスロットのうちのどれを分割できるのかを決定することができる。例えば、4個の空いている「中」スロットを識別すると、ワーカーは、4個の空いている「中」スロットを1個の「特大」スロット、または2個の「大きい」スロット、または1個の「大きい」スロット及び8個の「小さいスロット」等に統合できるであろうと判断してよい。とりわけ、一部の実施形態では、この包括的な判断は、きわめて短い時間量内に利用可能なスロットで可能であるすべての考えられる再構成を識別できる。一部の実施形態では、判断は、例えば、新規に作成されたスロットがNUMA境界全体に広がらないこと、及び/または新規に作成されたスロットが同じまたは近傍のコンピュータアーキテクチャサポート(例えば、メモリ)等を利用することを確実にするために、上述したように、スロットタイプの特定の特徴及びスロットタイプの基礎にある計算アーキテクチャを考慮に入れる場合がある。
【0071】
ワーカーは、次いでメッセージ552を介し、マスタ502に潜在的な再構成データを送信する場合があり、マスタ502は、このようにして所望される量のスロットタイプ及びその数を満たすために、ワーカーのすべてによって管理される電子デバイスのすべてにわたってどの1個または複数のスロットを構成するべきかを判断できる。マスタは、受信した潜在的な再構成データに加えて、さまざまなタイプの情報のいずれかを使用し、この判断を下すことができる。例えば、マスタ502は、多様な場所(例えば、ラック、ネットワーク、データセンタ、地理的領域)全体で特定のタイプのスロットを分散する、(例えば、特定の場所での特定のスロットに対する前提としているニーズのために)多様な場所で特定のタイプのスロットを統合する等を求める場合がある。
【0072】
したがって、マスタ502は、再構成を実行する方法に関してワーカーに命令する再構成割り付けメッセージ554をワーカー500A~500Bに送信できる。例えば、第1のワーカー500Aに送信される再構成割り付けメッセージ554は、ワーカー500Aが、2つの異なる電子ホストデバイスでスロットを再構成することを示す場合があり、ワーカー500Aは、デバイスごとに、任意の必要とされるスロットを登録解除し、(再び1つの操作または2つの操作の一部であってよい、ブロック450A/455Aで)新しいスロットを登録することによって相応してそれらのスロットを置換し、次いでブロック510Aで電子デバイスの関連付けられた「第1の」セットを非隔離状態としてよい。同様に-ワーカー500B等の-他のワーカーは、関連付けられた電子デバイスの独自の「第2の」セットを用いて類似した操作を実行してよく、このことは他のワーカーの再構成と全体的にまたは部分的に同時に実行されてよい。
【0073】
さらに操作の別のセットを、一部の実施形態に係る動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理のための操作600を示す流れ図である
図6に示す。一部の実施形態では、操作600の1つ以上(またはすべて)は、他の図の制御プレーンにより実行される。
【0074】
具体的には、ブロック605/610/615は、他の図のフリート再構成サービスにより実行されてよく、操作の動的再割り付け段階650の一部として実行されてよい。操作の動的再割り付け段階650は、「オフライン」で、したがってコンピュートインスタンスを起動する任意の特定の要求に応えて直接的にではなく起こってよい。
【0075】
操作600は、ブロック605で、プロバイダネットワークでの第1のコンピュートインスタンスタイプのための利用可能なスロットの数が、第1のコンピュートインスタンスタイプのための必要とされるスロットの数に満たないと判断することを含む。各スロットは、ホスト電子デバイスによって提供できるコンピューティングリソースの組み合わせであってよい。
【0076】
操作600は、ブロック610で、第2のコンピュートインスタンスタイプのコンピュートインスタンスのために電子デバイスの第1の1個以上のスロットを登録解除することを含む。電子デバイスは、第2のコンピュートインスタンスタイプの対応する1つ以上のコンピュートインスタンスが実行する1個以上の他のスロットをさらに含む。一部の実施形態では、第1の1個以上のスロットを登録解除することは、電子デバイスの識別子及び第1の1個以上のスロットの1つの識別子を含むスロット登録解除要求メッセージを送信することを含む。
【0077】
操作600は、ブック615で、第1のコンピュートインスタンスタイプのコンピュートインスタンスのために、電子デバイスの第2の1個以上のスロットを登録することを含む。一部の実施形態では、第1の1個以上のスロットは複数のスロットを含み、第2の1個以上のスロットは単一のスロットを含む。しかしながら、他の実施形態では、第1の1個以上のスロットは単一のスロットを含み、第2の1個以上のスロットは複数のスロットを含む。一部の実施形態では、第2の1個以上のスロットを登録することは、電子デバイスの識別子及び1個以上のスロットの1個の1つ以上の特徴を記述するリソースベクトルを含むスロット登録要求を送信することを含む。一部の実施形態では、第1のコンピュートインスタンスタイプのコンピュートインスタンスのために電子デバイスの第2の1個以上のスロットを登録することは、第2の1個以上のスロットの第1のスロットのスロット情報データ構造にレコードを挿入することを含み、レコードは、電子デバイスの識別子、電子デバイスの文脈で一意であるスロット番号の識別子、及びリソースベクトルの識別子を含み、リソースベクトルは、第1のスロットの1つ以上の特徴を記述する。
【0078】
一部の実施形態では、ブロック610及び615は、アトミックに実行される単一のトランザクション操作に結合される。
【0079】
一部の実施形態では、操作600は、ブロック610で、第1の1個以上のスロットを登録解除する前に、電子デバイスを隔離に配置することをさらに含む。隔離の間、電子デバイスは、第2のコンピュートインスタンスタイプの1つ以上のコンピュートインスタンスを実行し続けるが、その結果追加のコンピュートインスタンスを配置させるために利用できない。さらに、ブロック615で第2の1個以上のスロットを登録した後、操作600は、電子デバイスを隔離から取り除くことをさらに含む。
【0080】
一部の実施形態では、電子デバイスを隔離に配置した後、操作600は、第1の1個以上のスロットがいずれのコンピュートインスタンスも実行していないことを検証することをさらに含む。一部の実施形態では、電子デバイスを隔離に配置した後、かつ電子デバイスを隔離から取り除く前に、操作600は、電子デバイスで実行する第2のコンピュートインスタンスタイプの1つ以上のコンピュートインスタンスの少なくとも1つを関係させるアクションを実行する要求を受信すること、及びアクションを実行することをさらに含む。アクションは、例えば、1つ以上のコンピュートインスタンスの少なくとも1つを終了すること、1つ以上のコンピュートインスタンスの少なくとも1つにボリュームを加えることまたは1つ以上のコンピュートインスタンスのうちの少なくとも1つからボリュームを分離すること等を含む場合がある。
【0081】
また、操作600は、ブロック615で登録された「新しい」第2の1個以上のスロットを利用してよい、ブロック620/625を含む第2の配置段階655を含んでもよい。この第2の配置段階655は「インライン」であってよく、したがってコンピュートインスタンスを起動する要求を含んでよい。
【0082】
操作600は、ブロック620で、第1のコンピュートインスタンスタイプのコンピュートインスタンスを起動する要求を受信することを含む。ブロック620は、例えば、プロバイダネットワークのインタフェースにより、プロバイダネットワークの制御プレーンにより、プロバイダネットワークのCMにより等、実行されてよい。
【0083】
一部の実施形態では、操作600は、配置サービスに、第1のコンピュートインスタンスタイプのコンピュートインスタンスのためのスロットを選択する要求を送信すること、配置サービスから、第2の1個以上のスロットのうちの1個の1つ以上の特徴を記述する、電子デバイスの第2の1個以上のスロットのうちの1個に対応するリソースベクトルを含む応答を受信すること、及びリソースベクトルに基づいて第1のコンピュートインスタンスタイプのコンピュートインスタンスのための配置場所として、電子デバイスの第2の1個以上のスロットのうちの1個を識別することをさらに含む。
【0084】
また、操作600は、電子デバイスが、第2のコンピュートインスタンスタイプの1つ以上のコンピュートインスタンスを実行し続ける一方、ブロック625で、電子デバイスの第2の1個以上のスロットのうちの1個で第1のコンピュートインスタンスタイプのコンピュートインスタンスを実行することも含む。ブロック620は、メッセージ/コマンドを送信してコンピュートインスタンスを実行させることによって、例えば、プロバイダネットワークの制御プレーンにより、プロバイダネットワークのインスタンス管理サービスにより等、実行されてよい。
【0085】
追加の詳細のために、
図7は、一部の実施形態に係る例のプロバイダネットワーク環境を示す。プロバイダネットワーク700は、カスタマが、1つ以上のデータセンタの1つまたは複数のプロバイダネットワークの中のデバイスで実装される、計算リソース及びストレージリソースを含むが、これに限定されるものではない仮想リソースのインスタンス712を購入する、借りる、またはそれ以外の場合入手することを可能にする1つ以上の仮想化サービス710を介してカスタマにリソースの仮想化を提供してよい。ローカルインターネットプロトコル(IP)アドレス716は、リソースインスタンス712と関連付けられてよい。ローカルIPアドレスは、プロバイダネットワーク700上のリソースインスタンス712の内部ネットワークアドレスである。一部の実施形態では、プロバイダネットワーク700は、カスタマがプロバイダ700から入手し得るパブリックIPアドレス714及び/またはパブリックIPアドレス範囲(例えば、インターネットプロトコルバージョン4(IPv4)またはインターネットプロトコルバージョン6(IPv6)のアドレス)を提供してもよい。
【0086】
従来、プロバイダネットワーク700は、仮想化サービス710を介して、サービスプロバイダのカスタマ(例えば、クライアントネットワーク750Aを運用するカスタマ)がカスタマに割り付けられたまたは割り当てられた少なくともいくつかのパブリックIPアドレス714を、カスタマに割り付けられた特定のリソースインスタンス712と動的に関連付けることを可能にしてよい。また、プロバイダネットワーク700は、カスタマに割り当てられた1つの仮想化されたコンピューティングリソースインスタンス712に以前にマッピングされたパブリックIPアドレス714を、やはりカスタマに割り当てられる別の仮想化されたコンピューティングリソースインスタンス712に再マッピングすることを可能にしてもよい。サービスプロバイダにより提供されるコンピューティングリソースインスタンス712及びパブリックIPアドレス714を使用し、カスタマネットワーク750Aの事業者等のサービスプロバイダのカスタマは、例えばカスタマ固有のアプリケーションを実装し、インターネット等の中間ネットワーク740でカスタマのアプリケーションを提示してよい。中間ネットワーク740上の他のネットワークエンティティ720は、次いでカスタマネットワーク750Aにより公開された宛先パブリックIPアドレス714に対するトラフィックを生成してよい。トラフィックは、サービスプロバイダデータセンタに送られ、データセンタで、ネットワーク基盤を介して、宛先パブリックIPアドレス714に現在マッピングされている仮想化されたコンピューティングリソースインスタンス712のローカルIPアドレス716に送られる。同様に、仮想化されたコンピューティングリソースインスタンス712からの応答トラフィックは、ネットワーク基盤を介して中間ネットワーク740に戻り、ソースエンティティ720に送られてよい。
【0087】
本明細書で使用されるローカルIPアドレスは、プロバイダネットワークでのリソースインスタンスの内部ネットワークアドレスを指す。ローカルIPアドレスは、プロバイダネットワークの中で変更可能であるにすぎない。プロバイダネットワークの外部で発生するネットワークトラフィックは、ローカルIPアドレスに直接的に送られない。代わりに、トラフィックはリソースインスタンスのローカルIPアドレスにマッピングされるパブリックIPアドレスを使用する。プロバイダネットワークは、ネットワークアドレス変換(NAT)またはパブリックIPアドレスからローカルIPアドレス及び逆の場合のマッピングを実行するための類似した機能性を提供するネットワーキングデバイスまたは器具を含んでよい。
【0088】
パブリックIPアドレスは、サービスプロバイダまたはカスタマのどちらかにより、リソースインスタンスに割り付けられるインターネット可変ネットワークアドレスである。パブリックIPアドレスに送られるトラフィックは、例えば1:1NATにより変換され、リソースインスタンスのそれぞれのローカルIPアドレスに転送される。
【0089】
一部のパブリックIPアドレスは、特定のリソースインスタンスにプロバイダネットワークインフラストラクチャにより割り付けられてよい。これらのパブリックIPアドレスは、標準パブリックIPアドレス、または単に標準IPアドレスと呼ばれてよい。一部の実施形態では、リソースインスタンスのローカルIPアドレスに対する標準IPアドレスのマッピングは、すべてのリソースインスタンスタイプのデフォルトの起動構成である。
【0090】
少なくともいくつかのパブリックIPアドレスは、プロバイダネットワーク700のカスタマに割り当てられてよい、またはプロバイダネットワーク700のカスタマにより入手されてよい。カスタマは、次いで割り当てられたIPアドレスを、カスタマに割り当てられた特定のリソースインスタンスに割り付けてよい。これらのパブリックIPアドレスは、カスタマパブリックIPアドレスまたは単にカスタマIPアドレスと呼ばれてよい。標準IPアドレスの場合でのようにプロバイダネットワーク700によりリソースインスタンスに割り付けられる代わりに、カスタマIPアドレスは、例えばサービスプロバイダにより提供されるAPIを介して、カスタマによりリソースインスタンスに割り付けられてよい。標準IPアドレスとは異なり、カスタマIPアドレスはカスタマアカウントに割り当てられ、必要に応じてまたは所望されるように、それぞれのカスタマにより他のリソースインスタンスに再マッピングできる。カスタマIPアドレスは、特定のリソースインスタンスではなくカスタマのアカウントと関連付けられ、カスタマは、カスタマがそのIPアドレスをリリースすることを選ぶまでそれを制御する。従来の静的なIPアドレスとは異なり、カスタマIPアドレスは、カスタマが、カスタマのパブリックIPアドレスをカスタマのアカウントと関連付けられた任意のリソースインスタンスに再マッピングすることによって、リソースインスタンスまたは可用性ゾーンの失敗を隠すことを可能にする。カスタマIPアドレスは、例えば、カスタマが、カスタマIPアドレスを置換リソースインスタンスに再マッピングすることによってカスタマのリソースインスタンスまたはソフトウェアに関わる問題を避けて設計できる(engineer around problems)ようにする。
【0091】
図8は、一部の実施形態に従ってストレージ仮想化サービス及びハードウェア仮想化サービスを提供する例のプロバイダネットワークのブロック図である。ハードウェア仮想化サービス820は、カスタマに複数の計算リソース824(例えば、VM)を提供する。計算リソース824は、例えばプロバイダネットワーク800のカスタマに(例えば、カスタマネットワーク850を実装するカスタマに)賃貸またはリースされてよい。各計算リソース824は、1つ以上のローカルIPアドレスを与えられてよい。プロバイダネットワーク800は、計算リソース824のローカルIPアドレスから公衆インターネット宛先に、及び公衆インターネットソースから計算リソース824のローカルIPアドレスにパケットを送るように構成されてよい。
【0092】
プロバイダネットワーク800は、例えばローカルネットワーク856を介して中間ネットワーク840に結合されたカスタマネットワーク850に、中間ネットワーク840に結合され、かつプロバイダネットワーク800に結合されたハードウェア仮想化サービス820を介して仮想コンピューティングシステム892を実装する能力を与えてよい。一部の実施形態では、ハードウェア仮想化サービス820は、1つ以上のAPI802に、例えばウェブサービスインタフェースを提供してよく、ウェブサービスインタフェースを介してカスタマネットワーク850は、例えばコンソール894(例えば、ウェブベースアプリケーション、スタンドアロンアプリケーション、モバイルアプリケーション等)を介してハードウェア仮想化サービス820により提供される機能にアクセスしてよい。一部の実施形態では、プロバイダネットワーク800で、カスタマネットワーク850での各仮想コンピューティングシステム892は、カスタマネットワーク850にリース、賃貸、またはそれ以外の場合提供される計算リソース824に対応してよい。
【0093】
(例えば、コンソール894を介して)仮想コンピューティングシステム892及び/または別のカスタマデバイス890のインスタンスから、カスタマは、プロバイダネットワーク800により提供された仮想データストア816からデータにアクセスし、仮想データストア816にデータを記憶するために、例えば1つ以上のAPI802を介してストレージ仮想化サービス810の機能にアクセスしてよい。一部の実施形態では、仮想化されたデータストアゲートウェイ(図示せず)が、例えば頻繁にアクセスされる少なくとも一部のデータまたは重大なデータをローカルでキャッシュに入れてよい、かつデータの一次ストア(仮想化されたデータストア816)が維持されるようにローカルキャッシュから新しいデータまたは修正されたデータをアップロードするために1つ以上の通信チャネルを介して仮想化されたデータストアサービス810と通信してよいカスタマネットワーク850で提供されてよい。一部の実施形態では、ユーザーは、仮想コンピューティングシステム892及び/または別のカスタマデバイス890を介して、ユーザーにはローカル仮想化ストレージ898のように見える仮想データストア816ボリュームを実装し、アクセスしてよい。
【0094】
図8には示していないが、仮想化サービス(複数可)は、API(複数可)802を介してプロバイダネットワーク800の中のリソースインスタンスからアクセスされてもよい。例えば、カスタマ、器具サービスプロバイダ、または他のエンティティは、仮想ネットワークの中または別の仮想ネットワークの中の1つ以上のリソースインスタンスの割り当てを要求するために、API802を介してプロバイダネットワーク800上でそれぞれの仮想ネットワークの中から仮想化サービスにアクセスしてよい。
【0095】
例示的なシステム
一部の実施形態では、本明細書で説明する動的ホストデバイスインスタンスタイプ再構成を使用するプロバイダネットワークでの容量管理のための技術の一部分またはすべてを実装するシステムは、
図9に示すコンピュータシステム900等の1つ以上のコンピュータアクセス可能媒体を含む、または1つ以上のコンピュータアクセス可能媒体にアクセスするように構成される汎用コンピュータシステムを含んでよい。示される実施形態では、コンピュータシステム900は、入出力(I/O)インタフェース930を介してシステムメモリ920に結合された1つ以上のプロセッサ910を含む。コンピュータシステム900は、I/Oインタフェース930に結合されたネットワークインタフェース940をさらに含む。
図9は単一のコンピューティングデバイスとしてコンピュータシステム900を示すが、多様な実施形態では、コンピュータシステム900は、1つのコンピューティングデバイス、または単一のコンピュータシステム900としてともに作業するように構成された任意の数のコンピューティングデバイスを含んでよい。
【0096】
多様な実施形態では、コンピュータシステム900は、1つのプロセッサ910を含むユニプロセッサシステム、またはいくつかのプロセッサ910(例えば、2つ、4つ、8つ、または別の適切な数)を含むマルチプロセッサシステムであってよい。プロセッサ910は、命令を実行可能な任意の適切なプロセッサであってよい。例えば、多様な実施形態では、プロセッサ910は、x86、ARM、PowerPC、SPARC、もしくはMIPS ISA等のさまざまなインストラクションセットアーキテクチャ(ISA)、または任意の他の適切なISAのいずれかを実装する汎用プロセッサまたは組み込みプロセッサであってよい。マルチプロセッサシステムでは、プロセッサ910のそれぞれは、必ずしもではないが、一般的に同じISAを実装してよい。
【0097】
システムメモリ920は、プロセッサ(複数可)910がアクセス可能な命令及びデータを記憶してよい。多様な実施形態では、システムメモリ920は、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、同期型RAM(SDRAM)、不揮発性/フラッシュタイプメモリ、または任意の他のタイプのメモリ等の任意の適切なメモリ技術を使用し、実装されてよい。示されている実施形態では、プロバイダネットワーク環境において仮想ネットワークのサイズを変更するための上述のそれらの方法、技術、及びデータ等の1つ以上の所望される機能を実装するプログラム命令及びデータは、コード925及びデータ926としてシステムメモリ920の中に記憶されて示される。
【0098】
一実施形態では、I/Oインタフェース930は、プロセッサ910と、システムメモリ920と、ネットワークインタフェース940または他の周辺インタフェースを含むデバイス内の任意の周辺装置との間でI/Oトラフィックを調整するように構成されてよい。一部の実施形態では、I/Oインタフェース930は、ある構成要素(例えば、システムメモリ920)から別の構成要素(例えば、プロセッサ910)が使用するために適したフォーマットにデータ信号を変換するために、任意の必要なプロトコル、タイミング、または他のデータ変換を実行してよい。一部の実施形態では、I/Oインタフェース930は、例えばペリフェラルコンポーネントインターコネクト(PCI)バス規格またはユニバーサルシリアルバス(USB)規格の変形等の多様なタイプの周辺バスを通してアタッチされたデバイスに対するサポートを含んでよい。一部の実施形態では、I/Oインタフェース930の機能は、例えばノースブリッジ及びサウスブリッジ等の2つ以上の別々の構成要素に分割されてよい。また、一部の実施形態では、システムメモリ920へのインタフェース等のI/Oインタフェース930の機能性の一部またはすべては、直接的にプロセッサ910に組み込まれてよい。
【0099】
一例として、一部の実施形態では、コンピュータシステム900は、コンピュートインスタンスをホストするホスト電子デバイスである場合があり、I/Oインタフェース930を使用し、接続される、本明細書に説明する(1つ以上のプロセッサ975を含み、おそらく1つ以上のネットワークインタフェース940を含む)1つ以上のオフロードカード970を含んでよい。一部の実施形態では、1つ以上のオフロードカード970は、例えば、ハイパーバイザとは無関係に、またはコンピュータシステム900の従来のプロセッサ910A~910Nを使用し、実行するハイパーバイザと組み合わせてホスト電子デバイス上で実行する仮想マシンコンピュートインスタンスを管理できる仮想化マネージャを実行できる。
【0100】
ネットワークインタフェース940は、コンピュータシステム900と、例えば
図1に示す他のコンピュータシステムまたはデバイス等の、1つまたは複数のネットワーク950にアタッチされた他のデバイス960との間でデータを交換できるように構成されてよい。多様な実施形態では、ネットワークインタフェース940は、例えばEthernet(登録商標)ネットワークのタイプ等の任意の適切な有線のまたは無線の汎用データネットワークを介する通信をサポートしてよい。さらに、ネットワークインタフェース940は、アナログ音声ネットワークもしくはデジタルファイバ通信ネットワーク等の電気通信/電話網を介する、ファイバチャネルSAN等のストレージエリアネットワーク(SAN)を介する、またはI/O任意の他の適切なタイプのネットワーク及び/またはプロトコルを介する通信をサポートしてよい。
【0101】
一部の実施形態では、システムメモリ920は、プロバイダネットワーク環境でカスタマホストエンドポイントを提供するために
図1について上述されたプログラム命令及びデータを記憶するように構成されたコンピュータアクセス可能媒体の一実施形態であってよい。しかしながら、他の実施形態では、プログラム命令及び/またはデータが、受信、送信、または異なるタイプのコンピュータアクセス可能媒体に記憶されてよい。一般的に言えば、コンピュータアクセス可能媒体は、例えばI/Oインタフェース930を介してコンピュータシステム900に結合されたディスクまたはDVD/CD等、磁気媒体または光媒体等の非一過性の記憶媒体またはメモリ媒体を含んでよい。また、非一過性のコンピュータアクセス可能記憶媒体は、システムメモリ920または別のタイプのメモリとしてコンピュータシステム900の一部の実施形態に含まれてよい、RAM(例えば、SDRAM、ダブルデータレート(DDR)SDRAM、SRAM等)、読み取り専用メモリ(ROM)等の任意の揮発性または不揮発性の媒体を含んでもよい。さらに、コンピュータアクセス可能媒体は、伝送媒体、またはネットワークインタフェース940を介して実装されてよい等、ネットワーク及び/または無線リンク等の通信媒体を介して伝達される電気信号、電磁信号、もしくはデジタル信号等の信号を含んでよい。
【0102】
多様な実施形態は、コンピュータアクセス可能媒体で上記説明に従って実装された命令及び/またはデータを受信すること、送信すること、または記憶することをさらに含んでよい。一般的に言えば、コンピュータアクセス可能媒体は、伝送媒体またはネットワーク及び/または無線リンク等の通信媒体を介して伝達される電気信号、電磁信号、またはデジタル信号等の信号だけではなく、例えばディスクまたはDVD/CD-ROM等、磁気媒体もしくは光媒体、RAM(例えば、SDRAM、DDR、RDRAM、SRAM等)、ROM等の揮発性または不揮発性の媒体等の記憶媒体またはメモリ媒体を含んでよい。
【0103】
上述の説明では、多様な実施形態が説明されている。説明の目的で、具体的な構成及び詳細が、実施形態の完全な理解を提供するために述べられる。しかしながら、具体的な詳細がなくても実施形態を実践し得ることは当業者に明らかである。さらに、周知の特徴は、説明されている実施形態を曖昧にしないために省略または簡略化されてよい。
【0104】
破線の境界線(例えば、大ダッシュ、小ダッシュ、点-ダッシュ、及び点)を有する角括弧で囲まれたテキスト及びブロックは、追加の特徴を一部の実施形態に加える任意選択の操作を示すために本明細書で使用される。しかしながら、係る表記は、これらが唯一のオプション又は任意選択の操作であること、及び/または実線の境界線を有するブロックが特定の実施形態では任意選択ではないことを意味すると解釈されるべきではない。
【0105】
接尾辞文字を有する参照数字(例えば、134A~134C、136A~136B)は、多様な実施形態で参照されるエンティティの1つまたは複数のインスタンスがある場合があり、複数のインスタンスがあるとき、それぞれが同一である必要はないが、代わりに共通の方法でいくつかの一般的な特質を共有する、または共通の方法で動作してよいことを示すために使用されてよい。さらに、使用される特定の接尾辞は、具体的に逆に示されない限り、特定の量のエンティティが存在することを暗示すことを意図していない。したがって、同じ接尾辞文字または異なる接尾辞文字を使用する2つのエンティティは、多様な実施形態で同じ数のインスタンスを有する場合もあれば、有さない場合もある。
【0106】
「一実施形態」、「実施形態」、「例の実施形態」等に対する参照は、説明する実施形態が、特定の特徴、構造、または特性を含んでよいが、あらゆる実施形態が特定の特徴、構造、または特性を必ずしも含まない場合があることを示す。さらに、係る言い回しは必ずしも同じ実施形態を参照していない。さらに、特定の特徴、構造、または特性が実施形態と関連して説明されるとき、明示的に説明されているかどうかに関わりなく、他の実施形態と関連して係る特徴、構造、または特性に影響を与えることは、当業者の知識の範囲内であることが提示される。
【0107】
開示される技術の少なくとも一部の実施形態は、以下の条項を考慮して説明できる。
1.コンピュータ実装方法であって、
プロバイダネットワークでの複数の仮想マシンタイプのそれぞれのための必要とされるいくつかのスロットを入手することと、
前記プロバイダネットワークでの前記複数の仮想マシンタイプのそれぞれのためのいつくかの利用可能なスロットを入手することと、
前記必要とされるいくつかのスロット及び前記いくつかの利用可能なスロットに少なくとも部分的に基づいて、前記プロバイダネットワークで作成されることが所望される1つ以上の仮想マシンタイプのそれぞれのためのいくつかのスロットを決定することと、
複数のワーカーエンティティのそれぞれによって、同時に1回以上、スロット再構成操作のセットを実行することであって、前記複数のワーカーエンティティのうちの1つのための前記スロット再構成操作のセットが、
第2の仮想マシンタイプの仮想マシンのために、電子デバイスの第1の1個以上のスロット登録解除すること、及び第1の仮想マシンタイプの仮想マシンのために、前記電子デバイスの第2の1個以上のスロットを登録することとであって、前記電子デバイスが、前記第2の仮想マシンタイプの対応する1つ以上の仮想マシンが実行する1個以上の他のスロットをさらに含む、前記登録解除すること及び前記登録することと、
前記第1の仮想マシンタイプの仮想マシンを起動する要求を受信することと、
前記電子デバイスが、前記第2の仮想マシンタイプの前記1つ以上の仮想マシンを実行し続ける一方、前記電子デバイスの前記第2の1個以上のスロットのうちの1つで前記第1の仮想マシンの前記仮想マシンを実行することと、
を含む、前記スロット再構成操作のセットを実行することと、
を含む、前記コンピュータ実装方法。
【0108】
2.前記ワーカーエンティティの前記1つのための前記スロット再構成操作のセットが、
前記第1の1個以上のスロットを登録解除する前に、前記電子デバイスを隔離に配置することであって、隔離中、前記電子デバイスは、前記第2の仮想マシンタイプの前記1つ以上の仮想マシンを実行し続けるが、追加の仮想マシンを配置させるために利用できない、前記隔離に配置することと、
前記第2の1個以上のスロットを登録解除した後に、前記電子デバイスを隔離から取り除くことと、
をさらに含む、条項1に記載のコンピュータ実装方法。
【0109】
3.前記ワーカーエンティティの前記1つ以上のための前記スロット再構成操作のセットが、
前記電子デバイスを隔離に配置した後、前記第1の1個以上のスロットが任意の仮想マシンを実行していないことを検証すること、
をさらに含む、条項2に記載のコンピュータ実装方法。
【0110】
4.コンピュータ実装方法であって、
プロバイダネットワーク内の第1のコンピュートインスタンスタイプのための利用可能なスロットの数が、前記第1のコンピュートインスタンスタイプのために必要とされるスロットの数に満たないと判断することと、
第2のコンピュートインスタンスタイプのコンピュートインスタンスのために、電子デバイスの第1の1個以上のスロットを登録解除すること、及び前記第1のコンピュートインスタンスタイプのコンピュートインスタンスのために、前記電子デバイスの第2の1個以上のスロットを登録することであって、前記電子デバイスが、前記第2のコンピュートインスタンスタイプの対応する1つ以上のコンピュートインスタンスが実行する1個以上の他のスロットをさらに含む、前記登録解除すること及び前記登録することと、
前記第1のコンピュートインスタンスタイプのコンピュートインスタンスを起動する要求を受信することと、
前記電子デバイスが、前記第2のコンピュートインスタンスタイプの前記1つ以上のコンピュートインスタンスを実行し続ける一方、前記電子デバイスの前記第2の1個以上のスロットの1つで前記第1のコンピュートインスタンスタイプの前記コンピュートインスタンスを実行することと、
を含む、前記コンピュータ実装方法。
【0111】
5.前記第1の1個以上のスロットが複数のスロットを含み、前記複数のスロットが、前記第2の1個以上のスロットに統合され、前記第2の1個以上のスロットが単一のスロットを含む、条項4に記載のコンピュータ実装方法。
【0112】
6.前記第1の1個以上のスロットが単一のスロットを含み、前記第2の1個以上のスロットが複数のスロットを含む、条項4~5に記載のコンピュータ実装方法。
【0113】
7.前記第1の1個以上のスロットを登録解除する前に、前記電子デバイスを隔離に配置することであって、隔離中、前記電子デバイスが、前記第2のコンピュートインスタンスタイプの前記1つ以上のコンピュートインスタンスを実行し続けるが、その結果追加のコンピュートインスタンスを配置させるために利用できない、前記隔離に配置することと、
前記第2の1個以上のスロットを登録した後、前記電子デバイスを隔離から取り除くことと、
をさらに含む、条項4~6のいずれか1つに記載のコンピュータ実装方法。
【0114】
8.前記電子デバイスを隔離に配置した後、前記第1の1個以上のスロットがいずれのコンピュートインスタンスも実行していないことを検証すること
をさらに含む、条項7に記載のコンピュータ実装方法。
【0115】
9.前記電子デバイスを隔離に配置した後、かつ前記電子デバイスを隔離から取り除く前に、
前記電子デバイスで実行する前記第2のコンピュートインスタンスタイプの前記1つ以上のコンピュートインスタンスの少なくとも1つを関係させるアクションを実行する要求を受信することと、
前記アクションを実行することと、
をさらに含む、条項7に記載のコンピュータ実装方法。
【0116】
10.前記第1の1個以上のスロットの前記登録解除及び前記第2の1個以上のスロットの前記登録が、再構成操作の第1のセットの一部として第1のワーカーエンティティにより実行され、
第2のワーカーエンティティが、前記再構成操作の第1のセットと同時に再構成操作の第2のセットを実行する、条項4~9のいずれか1つに記載のコンピュータ実装方法。
【0117】
11.前記再構成操作の第2のセットが、
第3のコンピュートインスタンスタイプのコンピュートインスタンスのために、第2の電子デバイスの第3の1個以上のスロットを登録解除することと、
第4のコンピュートインスタンスタイプのコンピュートインスタンスのために、前記第2の電子デバイスの第4の1個以上のスロットを登録することと、
を含む、条項10に記載のコンピュータ実装方法。
【0118】
12.前記第1のコンピュートインスタンスタイプの前記コンピュートインスタンスのためのスロットを選択する要求を配置サービスに送信することと、
前記第2の1個以上のスロットのうちの1個の1つ以上の特徴を記述する、前記電子デバイスの前記第2の1個以上のスロットのうちの前記1個に対応するリソースベクトルを含む応答を前記配置サービスから受信することと、
前記リソースベクトルに基づいて、前記第1のコンピュートインスタンスタイプの前記コンピュートインスタンスのための配置場所として前記電子デバイスの前記第2の1個以上のスロットのうちの前記1個を識別することと、
をさらに含む、条項4~11のいずれか1つに記載のコンピュータ実装方法。
【0119】
13.前記第1のコンピュートインスタンスタイプのコンピュートインスタンスのための前記電子デバイスの前記第2の1個以上のスロットを登録することが、
前記第2の1個以上のスロットの第1のスロットのためのスロット情報データ構造にレコードを挿入することであって、前記レコードが、前記電子デバイスの識別子、前記電子デバイスの文脈の中で一意であるスロット番号の識別子、及びリソースベクトルの識別子を含み、前記リソースベクトルが、前記第1のスロットの1つ以上の特徴を記述する、前記挿入すること、
を含む、条項4~12のいずれか1つに記載のコンピュータ実装方法。
【0120】
14.システムであって、
カスタマの代わりにコンピュートインスタンスを実装するために複数の電子デバイスを含むプロバイダネットワークのハードウェア仮想化サービスと、
1つ以上の電子デバイスにより実装される前記プロバイダネットワークの制御プレーンであって、実行時に、前記制御プレーンに、
前記プロバイダネットワークの1つ以上のコンピュートインスタンスタイプごとのいくつかのスロットが作成されるべきであると判断することと、
前記複数の電子デバイスの2つ以上を利用可能なスロットを有するとして識別することと、
前記2つ以上の電子デバイスの前記利用可能なスロットのスロットを登録解除し、前記2つ以上の電子デバイスのための追加のスロットを登録して、前記1つ以上のコンピュートインスタンスタイプごとに前記いくつかのスロットを作成することであって、前記2つ以上の電子デバイスがさらに、対応する1つ以上のコンピュートインスタンスが、前記スロット再構成操作のセットを通して実行し続ける、1個以上の他のスロットを含む、前記作成することのために、複数のワーカーエンティティのそれぞれにより同時に1回以上スロット再構成操作のセットを実行することと、
を行わせる命令を含む、前記制御プレーンと、
を備える、前記システム。
【0121】
15.前記スロット再構成操作のセットのうちの1つが、複数のスロットを登録解除することと、前記2つ以上の電子デバイスの第1の電子デバイスで単一のスロットを登録することとを含む、条項14に記載のシステム。
【0122】
16.前記スロット再構成操作のセットのうちの別のセットが、前記2つ以上の電子デバイスの第2の電子デバイスで単一のスロットを登録解除することと、複数のスロットを登録することとを含む、条項15に記載のシステム。
【0123】
17.前記スロット再構成操作のセットのうちの前記1つが、
前記複数のスロットの前記登録解除の前に、前記第1の電子デバイスを隔離に配置することであって、隔離中、前記第1の電子デバイスが、1つ以上のコンピューティングデバイスを実行し続けるが、追加のコンピュートインスタンスを配置させるために利用できない、前記隔離に配置することと、
前記単一のスロットの前記登録後に、前記第1の電子デバイスを隔離から取り除くことと、
をさらに含む、条項15に記載のシステム。
【0124】
18.前記スロット再構成操作のセットのうちの前記1つが、
前記第1の電子デバイスの隔離への前記配置後に、前記複数のスロットがいずれのコンピュートインスタンスも実行していないことを検証すること、
をさらに含む、条項17に記載のシステム。
【0125】
19.前記第1の電子デバイスの隔離への前記配置後、かつ前記第1の電子デバイスの隔離からの前記除去前に、前記命令が、実行時、前記制御プレーンにさらに、
前記第1の電子デバイスで実行する前記1つ以上のコンピュートインスタンスの少なくとも1つを関係させるアクションを実行する要求を受信することと、
前記アクションを実行することと、
を行わせる、条項17に記載のシステム。
【0126】
20.前記制御プレーンが、前記利用可能なスロットの前記スロットのうちの1個を登録解除するために、前記1個のスロットを有する電子デバイスの識別子及び前記1個のスロットの識別子を含むスロット登録解除要求メッセージを送信するためである、
条項14~19のいずれか1つに記載のシステム。
【0127】
明細書及び図面は、相応して、制限的な意味よりむしろ例示的な意味で考慮されるべきである。しかしながら、多様な修正及び変更が、特許請求の範囲に述べられる本開示の精神及び範囲から逸脱することなくそれに加えられ得ることは明白である。