(57)【特許請求の範囲】
【請求項１】
少なくとも１つのコンピューティングデバイスと、
前記少なくとも１つのコンピューティングデバイスによって実行可能なアドレス割り付けサービスであって、
ネットワークのサブ分割部分であって、複数のコンピューティングデバイスを含む、サブ分割部分に対して第１のネットワークアドレス割り付けをまず割り当て、
前記サブ分割部分に対するルータを、前記第１のネットワークアドレス割り付けを実装するように構成し、
前記コンピューティングデバイスの再構成を示すデータを獲得し、
前記再構成は前記少なくとも１つのコンピューティングデバイスによってホストされるマシンインスタンスの量を変更し、
次いで、第２のネットワークアドレス割り付けを、前記コンピューティングデバイスの前記再構成に少なくとも部分的に基づいて、前記ネットワークの前記サブ分割部分に割り当て、かつ
前記サブ分割部分に対する前記ルータを、前記第２のネットワークアドレス割り付けを実装するように再構成するように構成された、アドレス割り付けサービスと、
を備える、
システム。
【請求項２】
前記第２のネットワークアドレス割り付けが、前記コンピューティングデバイスの前記再構成に準じて、前記コンピューティングデバイスによってホストされるマシンインスタンスの増加した量に少なくとも部分的に基づいて、次いで割り当てられる、請求項１に記載のシステム。
【請求項３】
前記第２のネットワークアドレス割り付けが、前記コンピューティングデバイスと関連付けられたネットワークアドレス割り当て速度に少なくとも部分的に基づいて、次いで割り当てられる、請求項１に記載のシステム。
【請求項４】
前記第１のネットワークアドレス割り付けが、前記コンピューティングデバイスの各々に対するそれぞれのコンピューティングデバイスタイプに少なくとも部分的に基づく、請求項１に記載のシステム。
【請求項５】
前記アドレス割り付けサービスが、
前記それぞれのコンピューティングデバイスタイプに少なくとも部分的に基づいて、前記コンピューティングデバイスのうちの少なくとも１つに対するマシンインスタンスの量を予測するようにさらに構成され、
前記第１のネットワークアドレス割り付けが、予測されたマシンインスタンスの前記量に少なくとも部分的に基づく、請求項１に記載のシステム。
【請求項６】
前記サブ分割部分が、ラックに対応し、前記ルータが、ラックと関連付けられたルータに対応する、請求項１に記載のシステム。
【請求項７】
前記第２のネットワークアドレス割り付けが、前記第１のネットワークアドレス割り付けとの前記第２のネットワークアドレス割り付けの隣接関係に少なくとも部分的に基づいて選択される、請求項１に記載のシステム。
【請求項８】
前記第１のネットワークアドレス割り付けおよび前記第２のネットワークアドレス割り付けが、前記第２のネットワークアドレス割り付けが実装されたことに応答して、前記サブ分割部分に割り当てられる、請求項１に記載のシステム。
【請求項９】
前記第１のネットワークアドレス割り付けが、前記第２のネットワークアドレス割り付けが実装されたことに応答して前記サブ分割部分に割り当てられることがもはやない、請求項１に記載のシステム。
【請求項１０】
前記第２のネットワークアドレス割り付けが、前記第１のネットワークアドレス割り付けを含む、請求項１に記載のシステム。
【請求項１１】
少なくとも１つのコンピューティングデバイスによって、ネットワークのサブ分割部分であって、ネットワークアドレス割り付けを割り当てられる、サブ分割部分に含まれる複数のコンピューティングデバイスのうちの少なくとも１つの再構成を示すデータを、獲得することであって、前記再構成は前記少なくとも１つのコンピューティングデバイスによってホストされるマシンインスタンスの量を変更する、獲得することと、
前記少なくとも１つのコンピューティングデバイスによって、前記ネットワークアドレス割り付けの第１のサブ集合の割り当てを解除するかどうかを、前記コンピューティングデバイスのうちの前記少なくとも１つの前記再構成に少なくとも部分的に基づいて判定することと、
前記少なくとも１つのコンピューティングデバイスによって、前記判定に応答して、前記ネットワークアドレス割り付けの前記第１のサブ集合の前記割り当てを解除することと、
前記少なくとも１つのコンピューティングデバイスによって、前記ネットワークアドレス割り付けの代わりに前記ネットワークアドレス割り付けの第２のサブ集合を公示するために、前記サブ分割部分に対するルータを再構成することと、を含む、
方法。
【請求項１２】
前記再構成が、前記コンピューティングデバイスのうちの前記少なくとも１つによってホストされるマシンインスタンスの量の減少に対応する、請求項１１に記載の方法。
【請求項１３】
前記少なくとも１つのコンピューティングデバイスによって、マシンインスタンスの前記量が前記ネットワークアドレス割り付けの前記第１のサブ集合を解除するしきい値を満たすかどうかを判定することをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記ルータを自動的に再構成する前に、前記少なくとも１つのコンピューティングデバイスによって、前記ネットワークアドレス割り付けの前記第２のサブ集合中の第２のネットワークアドレスの代わりに、前記ネットワークアドレス割り付けの前記第１のサブ集合中の第１のネットワークアドレスを用いるために、前記サブ分割部分中の前記コンピューティングデバイスのうちの１つを自動的に再構成することをさらに含む、請求項１１に記載の方法。
【請求項１５】
前記少なくとも１つのコンピューティングデバイスにおいて、前記サブ分割部分に含まれる前記コンピューティングデバイスのうちの少なくとも１つの後続の再構成を示すデータを獲得することと、
前記少なくとも１つのコンピューティングデバイスにおいて、前記コンピューティングデバイスのうちの前記少なくとも１つの前記後続の再構成に少なくとも部分的に基づいて、別のネットワークアドレス割り付けを前記サブ分割部分に割り当てることと、
前記少なくとも１つのコンピューティングデバイスにおいて、前記ネットワークアドレス割り付けの前記第２のサブ集合に加えて、他のネットワークアドレス割り付けを公示するために、前記サブ分割部分に対する前記ルータを自動的に再構成することと、をさらに含む、請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、ネットワークアドレス割り付けに関する。
【背景技術】
【０００２】
ネットワークデバイスは、ネットワークインターフェース１つ当たり１つ以上のネットワークアドレスと関連付けることができる。ネットワークアドレスは、データをネットワークデバイスにおよびこれからルーティングすることを容易化する。インターネットプロトコル（ＩＰ）ネットワークアドレスは、サブネットマスクと関連付けられるが、これらのマスクは、ルーティングプレフィックスに対応するネットワークアドレスの部分と、サブネットに対するホスト識別子に対応するネットワークアドレスの部分とを示す。サブネットは、ＩＰネットワークの論理的に可視のサブ分割部分である。サブネットは、階層的アーキテクチャ中に論理的に配列され、それにより、ネットワークアドレス空間をツリー状のルーティング構造に仕切る。ネットワークアドレスの在庫枯渇は、ネットワークアドレスが３２ビットの長さしかないことを考えれば、ＩＰバージョン４にとっては潜在的な問題である。ＩＰバージョン６が１２８ビットのアドレスを用い、したがって、アドレス在庫枯渇を容易には引き起こしやすくない。それでも、アドレス在庫枯渇問題にもかかわらず、ＩＰバージョン４は、一般的に用いられている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
アドレス在庫枯渇が生じる可能性がある。
【課題を解決するための手段】
【０００４】
開示の技術の一態様は、システムであって、少なくとも１つのコンピューティングデバイスと、前記少なくとも１つのコンピューティングデバイスによって実行可能なアドレス割り付けサービスであって、ネットワークのサブ分割部分であって、複数のコンピューティングデバイスを含む、サブ分割部分に対して第１のネットワークアドレス割り付けをまず割り当て、前記サブ分割部分に対するルータを、前記第１のネットワークアドレス割り付けを実装するように構成し、前記コンピューティングデバイスの再構成を示すデータを獲得し、次いで、第２のネットワークアドレス割り付けを、前記コンピューティングデバイスの前記再構成に少なくとも部分的に基づいて、前記ネットワークの前記サブ分割部分に割り当て、かつ、前記サブ分割部分に対する前記ルータを、前記第２のネットワークアドレス割り付けを実装するように再構成するように構成された、アドレス割り付けサービスと、を備える。
【発明の効果】
【０００５】
開示の技術は、アドレス在庫枯渇を抑制する。
【図面の簡単な説明】
【０００６】
【図１】本開示の様々な実施形態に関わるネットワーク化された環境の図面である。
【図２】本開示の様々な実施形態に関わる、図１のネットワーク化された環境中で用いられるホストされたコンピューティング環境の１例の図面である。
【図３】本開示の様々な実施形態に関わる、図１のネットワーク化された環境中のコンピューティング環境で実行されるアドレス割り当てサービスの部分として実装される機能性の例を示すフローチャートである。
【図４】本開示の様々な実施形態に関わる、図１のネットワーク化された環境中のコンピューティング環境で実行されるアドレス割り当てサービスの部分として実装される機能性の例を示すフローチャートである。
【図５】本開示の様々な実施形態に関わる、図１のネットワーク化された環境で用いられるコンピューティング環境の１つの例示を提供する略ブロック図である。
【発明を実施するための形態】
【０００７】
本開示の様々な態様は、次の図面を参照すればより良く理解することが可能である。図面中の構成要素は、必ずしも原寸に比例していないが、その代わり、本開示の原理を明瞭に示すことを強調している。そのうえ、図面中で、同様の数値は、いくつかの図面にわたって対応する部分を示している。
【０００８】
本開示は、ネットワークアドレスを、デマンドに基づいてネットワークデバイスに動的に割り当てることに関する。ネットワークアドレスの在庫枯渇は、インターネットプロトコル（ＩＰ）バージョン４と、潜在的には他の通信プロトコルにとって、深刻な問題である。公的アクセス可能なＩＰアドレスは入手するのが困難であり、それらの割り当ては注意深く管理される。私的ＩＰネットワークでさえも、アドレス在庫枯渇問題に直面している。大規模な私的ネットワークは、一般的には、例えば、「１０．０．０．０／８」アドレス空間（クラスレスドメイン間ルーティング（ＣＩＤＲ）表記法によって表される）を用いるが、これは、８ビットのネットワークプレフィックスと、２４ビットのホスト識別子とを用い、ほぼ１千７００万のアドレス（約２２４個のアドレス）を提供する。
【０００９】
このようなかなりの量は、組織にとっては無尽蔵に見え得る。しかしながら、ネットワークアドレス割り付けが良好に管理されないと、アドレス枯渇問題が起こり得る。例えば、組織は、組織のデータセンター中の各々のラックに対して「／２２」ネットワーク用のアドレス空間を割り当てることを深く考えずに選定し得る。「／２２」ネットワークは、約１０２４（すなわち、２１０）のアドレスを提供する。このような割り当て方式を用いる組織は、「１０．０．０．０／８」アドレス空間内で「／２２」の割り当て量を有する１６，３８４（すなわち２１４）のラックに制限されうる。このような制限は、大きな組織にとっては大問題を提示し得る。
【００１０】
この問題は、ネットワークをさらに階層的に構造化した場合に悪化し得る。例えば、ネットワーク中のある数の集約ルータが存在して、これらの集約ルータの各々の後方にある量のラックが存在するということがあり得る。各々の集約ルータに対して「／１５」のネットワークが割り当てられると仮定する。これで、各々に１０２４のアドレスが割り当てられる１２８（すなわち２７）のラックにさらに分割される各々のルータに約１３１，０７２（すなわち２１７）のアドレスが割り当てられることになる。また、「１０．０．０．０／８」アドレス空間内に、１２８（すなわち２７）個のこのような集約ルータが存在しうる。この総数の集約ルータおよび／または集約ルータ１つ当たりのこの数のラックに、拡張可能性の問題が起こり得る。
【００１１】
上述した例で検討されているような厳格なネットワークアドレス割り付け方式は、一部のラックが１０２４未満のアドレスを用いている場合には意味をなさないということがあり得る。特定のラックがたった２５６のアドレスしか用いない場合、１０２４のアドレスをこの特定のラックに対して割り当てることは無駄でありうる。しかしながら、ラックを初期構成するとき、特に可変数のマシンインスタンスがラック中で用いられ得るときには、どれほど多くのアドレスが究極的に用いられるかは、周知であり得ない。１０２４などの多量の値を上限として用いると、それにより、割り当てが非効率になり得る。さらに、一部の場合では、この上限が、密に構成されたラックにとっては低すぎるということがあり得る。
【００１２】
本開示の様々な実施形態は、これらの非効率性および拡張可能性の難問を克服するために、デマンドに基づいてネットワークアドレスの動的な割り当てを提供する。ネットワークアドレスの手動の固定した構成は、可変数のマシンインスタンスを有するネットワークサブ分割部分内でのアドレス使用法の動的な性質を認識する自動的で動的な構成に置き換えられ得る。初期数のネットワークアドレスが、ラックまたは他のネットワークサブ分割部分の初期の物理的構成に従って割り当てられ得る。さらなるネットワークアドレスの割り当てが、デマンドを満たすために必要なときに、ネットワークサブ分割部分に対してなされ得る。次の解説において、本システムおよびその構成要素の概説を提供し、その後でそれらの動作を解説する。
【００１３】
図１を参照して、様々な実施形態に関わるネットワーク化された環境１００が示されている。ネットワーク化された環境１００は、ネットワーク１０９を介してデータ通信状態にあるホストされたコンピューティング環境１０３とコンピューティング環境１０６とを含む。ネットワーク１０９は、例えば、インターネット、イントラネット、エクストラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、有線ネットワーク、無線ネットワーク、または他の適切なネットワークなどまたは２つ以上のこのようなネットワークの任意の組み合わせを含む。
【００１４】
ホストされたコンピューティング環境１０３は、１つ以上の集約ルータ１１５を介してネットワーク１０９に対して接続され得る複数のラック１１２ａ、．．．、１１２Ｎを備え得る。「ラック」と記述されるが、ラック１１２は、ホストされたコンピューティング環境１０３の他のサブ分割部分、例えば、データセンター、データセンター内の部屋、ラックの群、コンピュータ装置の群などに対応し得る。ラック１１２の各々が、複数のコンピューティングデバイス１１８ａ、．．．、１１８Ｎと、ルータ１２１とを含み得る。ルータ１２１は、トップオブラック（ＴＯＲ）ルータ、または、それぞれのラック１１２に対してネットワーク１０９への接続性を提供する他のデバイスに対応し得る。ルータ１２１は、ルーティング情報プロトコル（ＲＩＰ）、開放最短経路第一（ＯＳＰＦ）、または他のルーティングプロトコルなどのルーティングプロトコルを用い得る。ルータ１２１は、一部の場合では、公示することが可能な分離したネットワークアドレス割り付けの数によって制約され得る。
【００１５】
コンピューティングデバイス１１８ａは、ユーティリティコンピューティングモデルに従ってコンピューティングサービスを顧客に提供するために用いられるプロセッサおよびメモリ回路を有するコンピューティングデバイスに対応し得る。この目的のため、特定のコンピューティングデバイス１１８ａは、例えば複数のマシンインスタンス１２４ａ、・・・、１２４Ｎを含み得る。コンピューティングデバイス１１８内のマシンインスタンス１２４は、１人の顧客または複数の顧客に対してホストされ得る。説明されるように、異なるマシンインスタンス１２４は、異なる特徴を有し得る。所与のコンピューティングデバイス１１８は、任意の数のマシンインスタンス１２４を有するように動的に再構成され得る。
【００１６】
異なるラック１１２は、異なるタイプおよび量のコンピューティングデバイス１１８を有し得ることに留意されたい。一部のコンピューティングデバイス１１８は、比較的より多くのコンピューティング資源、例えば、より多くのメモリ、より強力なプロセッサ（複数可）、より速いデータ記憶など、またはコンピューティング資源の異なる組み合わせを有し得る。さらに、コンピューティングデバイス１１８は、異なるタイプおよび量のマシンインスタンス１２４を有し得る。
【００１７】
ラック１１２の各々は、ネットワーク１０９に対する接続性のための１つ以上のネットワークアドレス割り付けを割り当てられ得る。一部の例では、このようなネットワークアドレス割り付けは、それぞれの集約ルータ１１５に与えられる割り付けに集約され、それにより、ホストされるコンピューティング環境１０３中のネットワーク１０９の部分に対して階層的構造を提供し得る。ホストされるコンピューティング環境１０３は、異なるラック１１２またはネットワーク１０９のサブ分割部分にサービス提供する複数の集約ルータ１１５を有し得る。集約ルータ１１５は、ＯＳＰＦまたは他のルーティングプロトコルなどのルーティングプロトコルを用い得る。集約ルータ１１５は、一部の場合では、公示することが可能な分離したネットワークアドレス割り付けの数によって制約され得る。
【００１８】
コンピューティング環境１０６は、例えば、サーバコンピュータまたは、コンピューティング能力を提供する他のシステムを備え得る。代替的には、コンピューティング環境１０６は、例えば、１つ以上のサーババンクもしくはコンピュータバンクまたは他の配列に配列された用いられ得る複数のコンピューティングデバイスを用い得る。このようなコンピューティングデバイスは、単一の設置物中に置かれ得るまたは多くの異なる地理的位置に分配され得る。例えば、コンピューティング環境１０６は、クラウドコンピューティング資源、グリッドコンピューティング資源、および／または他の任意の分配されたコンピューティング装置を一緒に備え得る複数のコンピューティングデバイスを含み得る。一部の例では、コンピューティング環境１０６は、処理、ネットワーク、記憶、または他のコンピューティング関連の資源の配分された能力が時間と共に変化し得る柔軟性のあるコンピューティング資源に対応し得る。
【００１９】
様々なアプリケーションおよび／または他の機能性が、様々な実施形態に従って、コンピューティング環境１０６中で実行され得る。また、様々なデータが、コンピューティング環境１０６にとってアクセス可能なデータストア１２５に記憶される。データストア１２５は、理解することが可能なように、複数のデータストア１２５によって表され得る。データストア１２５に記憶されるデータは、例えば、以下に説明する様々なアプリケーションおよび／または機能エンティティの動作と関連付けられる。
【００２０】
コンピューティング環境１０６上で実行される構成要素は、例えば、アドレス割り付けサービス１２７、ネットワーク監視サービス１３０、および、本明細書には詳述されない他のアプリケーション、サービス、プロセス、システム、エンジン、もしくは機能性を含む。アドレス割り付けサービス１２７は、ホストされるコンピューティング環境１０３に対するネットワーク１０９上のアドレスのアドレス割り付け割り当て１３１を生成するために実行される。アドレス割り付け割り当て１３１は、初期割り当て（例えば、ラック１１２が初期構成されるとき）、またはデマンド（例えば、ラック１１２中のコンピューティングデバイス１１８の再構成によって作成されるデマンド）に基づく後続の割り当てに対応し得る。アドレス割り付けサービス１２７は、十分利用されないまたは十分利用されないと予測されるアドレス割り付けの解除を管理し得る。さらに、アドレス割り付けサービス１２７は、アドレス割り付け空間を解除するためまたは割り付けの集約を容易化するために、アドレス割り付けを統合するように構成され得る。様々な実施形態では、アドレス割り付けサービス１２７は、例えば１つのサービスが割り付けを割り当てるまたは解除するかどうかを判定するためのビジネス論理を含み、別のサービスがホストされたコンピューティング環境１０３中での実装を実施する２つ以上のサービスに分割され得る。
【００２１】
ネットワーク監視サービス１３０は、ホストされるコンピューティング環境１０３の様々な態様を監視するために実行され得る。このような態様は、資源消費、ネットワークアドレス利用、資源消費履歴、ネットワークアドレス利用履歴、資源消費もしくはアドレス利用の増加もしくは減少速度、などに関し得る。このような監視の結果としてネットワーク監視サービス１３０によって生成されたデータは、アドレス割り付けサービス１２７に対する入力に対応し得る。このような入力は、さらなるネットワークアドレス割り付けを割り当てるか、既存のネットワークアドレス割り付けを解除するか、ネットワークアドレス割り付けを統合もしくは集約するかどうかなどに関して、アドレス割り付けサービス１２７が判断することを許容する。
【００２２】
データストア１２５に記憶されるデータは、例えば、ネットワークトポロジーデータ１３３、アドレス割り付け１３６、アドレス割り付け履歴１３９、デバイスタイプデータ１４２、デバイス使用データ１４５、顧客データ１４８、および潜在的に他のデータを含む。ネットワークトポロジーデータ１３３は、ホストされるコンピューティング環境１０３の物理的および論理的ネットワークトポロジーに関する情報を含み得る。このような情報は、ラック１１２もしくは他のネットワークサブ分割部分、ラック１１２中のコンピューティングデバイス１１８、ルータ１２１、集約ルータ１１５などに関するデータを含み得る。アドレス割り付け１３６は、ホストされるコンピューティング環境１０３の集約ルータ１１５、ルータ１２１、コンピューティングデバイス１１８、マシンインスタンス１２４、および／または他の構成要素に対して指定されたネットワークアドレスのブロックを記述する。非制限的な例として、アドレス割り付け１３６は、ブロック「１０．１．２．０／２７」中のアドレスがラック１１２と関連する特定のルータ１２１に指定されたことを示し得る。
【００２３】
アドレス割り付け履歴１３９は、ホストされるコンピューティング環境１０３中の特定の構成要素に実行されたアドレス割り付け１３６の履歴を示し得る。非制限的な例として、アドレス割り付け履歴１３９は、特定のラック１１２に対するルータ１２１が、１つのブロックが全ての週を割り当てられる５つの「／２７」アドレスブロックを割り当てられたことを示し得る。したがって、アドレス割り付け履歴１３９から、アドレス割り付けに対する履歴デマンドおよび速度が判定され得る。
【００２４】
デバイスタイプデータ１４２は、様々なコンピューティングデバイス１１８およびマシンインスタンス１２４の特徴を示す。例えば、特定のデバイスタイプのコンピューティングデバイス１１８は、５つの大型タイプのマシンインスタンス１２４、１０個の中型タイプのマシンインスタンス１２４、または２０個の小型タイプのマシンインスタンス１２４を収容することが可能であり得る。デバイス使用データ１４５は、様々なコンピューティングデバイス１１８の現在の構成およびネットワークアドレス利用を示し得る。
【００２５】
例えば、デバイス使用データ１４５は、現在のコンピューティングデバイス１１８は、３つの大型タイプのマシンインスタンス１２４に仕切られていることを示し得るが、ここで、マシンインスタンス１２４のうちの２つが２つのネットワークアドレスを用いていて、マシンインスタンス１２４のうちの１つが５つのネットワークアドレスを用いている。デバイス使用データ１４５はまた、以前および既存のマシンインスタンス１２４に対するネットワークアドレス使用履歴および速度を含み得る。このようなデータは、ホストされるコンピューティング環境１０３中の特定の顧客に対するネットワークアドレスおよびインスタンスの利用を判定するために、顧客データ１４８と相互関連付けられ得る。
【００２６】
図２を参照すると、様々な実施形態に関わるホストされるコンピューティング環境１０３の１つの例が示されている。ホストされるコンピューティング環境１０３は、複数のコンピューティングデバイス２０３ａ、２０３ｂ、・・・、２０３ｎ、複数のコンピューティングデバイス２０６ａ、２０６ｂ、・・・、２０６ｎ、およびデータストア２０９を含む。ホストされるコンピューティング環境１０３のこのような構成要素は、ネットワーク１０９（図１）を介して、互いとおよび／または外部コンピューティングデバイスとデータ通信状態にあり得る。このようなコンピューティングデバイス２０３および２０６は、単一の設置物中に置かれ得るまたは多くの異なる地理的位置中に分散され得る。
【００２７】
コンピューティングデバイス２０３および２０６は、コンピューティングデバイス１１８（図１）に対応する。コンピューティングデバイス２０３および２０６は、様々な実施形態中の異なるハードウエアプラットフォームに対応し得る。したがって、コンピューティングデバイス２０３および２０６は、例えば、汎用の処理資源を提供する中央処理ユニット（ＣＰＵ）、グラフィック処理資源を提供するグラフィック処理ユニット（ＧＰＵ）、システムメモリ、容量、記憶帯域幅、１秒あたりの記憶入／出力動作（ＩＯＰＳ）などのデータ記憶特徴、ネットワーク帯域幅および／またはハードウエア特徴の資源の異なるハードウエア構成を有し得る。１つの実施形態では、全てのコンピューティングデバイス２０３ａ、２０３ｂ、・・・、２０３ｎは、第１のハードウエア構成を有し得るが、全てのコンピューティングデバイス２０６ａ、２０６ｂ、・・・、２０６ｎは、第２のハードウエア構成を有し得る。
【００２８】
例えば、コンピューティングデバイス２０３は、第２のタイプの資源に対する第１のタイプの資源の比を有し、コンピューティングデバイス２０６は、第２のタイプの資源に対する第１のタイプの資源の異なる比を有し得る。ある具体的な例では、コンピューティングデバイス２０３は、比較的多量のメモリを有し、コンピューティングデバイス２０６は、比較的多量のＣＰＵ資源を有し得る。別の具体的な例では、コンピューティングデバイス２０３は、比較的多量のＣＰＵ資源を有し、コンピューティングデバイス２０６は、比較的多量のＧＰＵ資源を有し得る。コンピューティングデバイス２０３および２０６の２つの集合のみを示したが、異なるハードウエア構成を有するコンピューティングデバイス２０３および２０６の任意の数の集合が存在し得ることが理解される。
【００２９】
非制限的な例として、少量のデータに対する多量の照会に対応するデータストアを作動させようとしている顧客は、記憶帯域幅を越える比較的高い記憶ＩＯＰＳ能力を持つコンピューティングデバイス２０３、２０６を有することを好み得る。それに対して、データバックアップアーカイブを作動させようとしている顧客は、記憶ＩＯＰＳを超える比較的高い記憶帯域幅能力を持つコンピューティングデバイス２０３、２０６を有することを好み得る。データバックアップアーカイブは、多くの要求には応答し得ないが、要求が受信されたとき、データバックアップアーカイブからで他を転送するために、多量の帯域幅が、好まれ得る。
【００３０】
コンピューティングデバイス２０３、２０６の各々は、１つ以上のマシンインスタンス（ＭＩ）を実行し得る。マシンインスタンスは、実際のマシンまたは仮想マシンに対応し得る。仮想マシンインスタンスは、仮想化されたコンピュータシステム、または、物理的なコンピューティングシステムのソフトウエア実装物である。仮想マシンは、プロセッサ回路およびメモリを有する単一のシステム上で同時に作動するために、複数のおよび／または異なるオペレーティングシステム環境を用意し得る。非制限的な例として、Ｌｉｎｕｘ（登録商標）のオペレーティングシステム環境の複数のインスタンスは、Ｍｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム環境の複数のインスタンスと共に、１つのシステム上で同時に実行され得る。各々のマシンインスタンスは、それら自身のインスタンス（複数可）にのみ管理アクセス可能であるが、他の顧客のインスタンスにはアクセス不可能であり得る異なる顧客によって制御され得る。複数のマシンインスタンスは、実際には、並列プロセッサを含むコンピュータシステム上で同時に実行され得るが、複数のインスタンスは、インスタンスよりも少なくプロセッサを持つマルチスレッドのコンピュータシステム上で同時に実行されるように見え得る。
【００３１】
異なるタイプのマシンインスタンスが利用可能であり得る。図２の例では、コンピューティングデバイス２０３は、３つのタイプのマシンインスタンス、すなわち、ＭＩ大型２１２、ＭＩ中型２１５、およびＭＩ小型２１８をサポートし得るが、それらの各々が異なる資源構成と関連付けられ得る。非制限的な例として、各々のＭＩ大型２１２インスタンスは、４つのＣＰＵ同等ユニット、１５ＧＢのシステムメモリ、および１，０００ＧＢのデータストレージを有し得る。各々のＭＩ中型２１５インスタンスは、２つのＣＰＵ同等ユニット、１０ＧＢのシステムメモリ、および６００ＧＢのデータストレージを有し得る。また、各々のＭＩ小型２１８インスタンスは、１つのＣＰＵ同等ユニット、５ＧＢのシステムメモリ、および２５０ＧＢのデータストレージを有し得る。図２の例では、コンピューティングデバイス２０６はまた、３つのタイプのマシンインスタンス、すなわち、ＭＩ大型２２１、ＭＩ中型２２４、およびＭＩ小型２２７をサポートし得る。ＭＩ大型２２１、ＭＩ中型２２４、およびＭＩ小型２２７は、ＭＩ大型２１２、ＭＩ中型２１５、およびＭＩ小型２１８と同じそれぞれの構成を有するまたは、所望次第で異なる構成を有し得る。非制限的な例として、ＭＩ大型２２１インスタンスは、４つのＣＰＵ同等ユニット、２０ＧＢのシステムメモリ、および１，０００ＧＢのデータストレージを有し得る。
【００３２】
各々のタイプのコンピューティングデバイス２０３、２０６に対する３つのタイプのマシンインスタンスの例は、制限的であることを意図しない。様々な実施形態では、各々のタイプのコンピューティングデバイス２０３、２０６に対してより多いまたはより少ないタイプのマシンインスタンスが存在し得る。１つの実施形態では、マシンインスタンスは、仮想化なしのコンピューティングデバイス２０３、２０６の全体の割り付けを備え得る。
【００３３】
図２の例では、１つのＭＩ大型２１２インスタンスは、コンピューティングデバイス２０３ａ上で実行されていて、２つのＭＩ中型２１５ａ、２１５ｂインスタンスは、コンピューティングデバイス２０３ｂ上で実行されていて、１つのＭＩ中型２１５ｃインスタンスおよび２つのＭＩ小型２１８ａ、２１８ｂインスタンスは、コンピューティングデバイス２０３ｎ上で実行されていて、１つのＭＩ大型２２１インスタンスは、コンピューティングデバイス２０６ａ上で実行されていて、３つのＭＩ中型２２４ａ、２２４ｂ、２２４ｃインスタンスは、コンピューティングデバイス２０６ｂ上で実行されていて、１つのＭＩ中型２２４ｄインスタンスおよび４つのＭＩ小型２２７ａ、２２７ｂ、２２７ｃ、２２７ｄインスタンスは、コンピューティングデバイス２０６ｎ上で実行されている。どの顧客もいずれかの数のマシンインスタンスと関連付けられ得るが、各々のマシンインスタンスは、顧客と関連付けられ得る。
【００３４】
様々な実施形態では、顧客は、新しいマシンインスタンスを動的に立ち上げるおよび／または終了させることが可能であり得る。したがって、ホストされるコンピューティング環境１０３は、顧客に時間と共に変化することが可能な弾性的なコンピューティング能力を提供し得る。非制限的な例として、マシンインスタンス上の頻繁には訪問しないネットワークサイトをホストしている顧客には、このネットワークサイトがテレビ上で言及されたりまたは人気のあるネットワークサイト上にリンクされたりしたときに、ネットワークページヒットが突然として殺到し得る。ネットワークサイトのトラヒックのこの増加は、マシンインスタンスのコンピューティング能力を圧倒して、ネットワークサイトの性能および利用可能性が悪化し得る。ネットワークサイトのトラヒックに対応するために、顧客は、新しいマシンインスタンスを立ち上げる、および／またはより多い資源およびより良好な性能を持つマシンインスタンスに移行する場合がある。顧客はまた、必要に応じて、特定のインスタンスに対してさらなるまたはより少ないネットワークアドレスを構成し得る。ホストされるコンピューティング環境１０３のオペレータは、このような新しいマシンインスタンスを収容するために、スペアのコンピューティング能力が、ホストされるコンピューティング環境１０３中で利用可能であることを保証する必要があり得る。同時に、あまりに多くのスペアコンピューティング能力は経費がかかり、資源的に非効率であり得る。
【００３５】
様々なアプリケーションおよび／または他の機能性は、これらのマシンインスタンス中でおよび様々な実施形態に関わるコンピューティングデバイス２０３、２０６中で実行され得る。また、様々なデータが、コンピューティングデバイス２０３、２０６にとってアクセス可能なデータストア２０９に記憶される。データストア２０９は、理解することが可能なように、複数のデータストア２０９によって表され得る。データストア２０９に記憶されるデータは、例えば、マシンイメージデータ２３０、顧客データ２３３、および潜在的に他のデータを含む。
【００３６】
マシンイメージデータ２３０は、マシンインスタンスを立ち上げるために用いられるデータを含み得る。マシンイメージデータ２３０は、オペレーティングシステム環境の１つ以上のディスクイメージを含み得る。これらのディスクイメージの一部は、任意の顧客または顧客のサブ集合によって用いられるように事前構成され得るが、他のそれらは特定の顧客または顧客のサブ集合用にカスタマイズされ得る。１つの実施形態では、１つのディスクイメージは、複数のマシンインスタンスによってロードされ得る。
【００３７】
顧客データ２３３は、顧客固有のデータを含み得る。１つの実施形態では、マシンインスタンスに対する全ての顧客構成データは、顧客データ２３３に記憶される。このように、このようなデータは、多くのマシンインスタンス中で容易に共有され得る。非制限的な例として、顧客データ２３３は、顧客と関連付けられたマシンインスタンス上で実行されている１つ以上のネットワークページサーバによって提供されるネットワークページを含み得る。しかしながら、一部の実施形態では、顧客固有データは、マシンインスタンスと関連付けられたローカルデータストレージ内に記憶され得ることが理解される。
【００３８】
ここで、図１を参照すると、ネットワーク環境１００の様々な構成要素の動作の一般的な説明が提供されている。最初に、集約ルータ１１５は、ネットワーク１０９のネットワークアドレスの初期割り付けを与えられ得る。ラック１１２または他のサブ分割部分は、集約ルータ１１５の後方の、ホストされるコンピューティング環境１０３用に構成され得る。複数の他のルータおよびネットワーキングハードウエアが、様々な実施形態では、ラック１１２と集約ルータ１１５との間に介在され得る。一部の実施形態では、ラック１１２中のルータ１２１は、集約ルータ１１５無しでネットワーク１０９に結合され得る。
【００３９】
ラック１１２は、コンピューティングデバイス１１８の集合で初期構成される。一部の場合では、コンピューティングデバイス１１８のうちの１つ以上が、１つ以上のマシンインスタンス１２４をホストするように初期構成され得る。一部の場合では、コンピューティングデバイス１１８のうちの１つ以上が、マシンインスタンス１２４中への初期構成を有しないことがあり得る。ラック１１２内の物理的空間の全てが初期に占有されていてもよく、または、ラック１１２内の物理的空間が利用可能であってもよい。アドレス割り付けサービス１２７は、ネットワークアドレス割り付けを、デフォルトの割り当て構成、ラック１１２中のコンピューティングデバイス１１８の各々のデバイスタイプ、コンピューティングデバイス１１８のタイプの履歴的割り当て速度もしくはアドレス使用速度、コンピューティングデバイス１１８と関連付けられた顧客（複数可）の履歴的割り当て速度もしくはアドレス使用速度、および／または他の要因に少なくとも部分的に基づいて、ラック１１２に割り当てる。
【００４０】
非制限的な例として、ラック１１２は、あるデバイスタイプの２０のコンピューティングデバイス１１８で初期構成され得る。コンピューティングデバイス１１８の数、コンピューティングデバイス１１８のタイプ、および／または他のデータに応答して、アドレス割り付けサービス１２７は、ラック１１２に３２のアドレスの「／２７」ブロックを割り当てることを決定し得る。この目的のため、アドレス割り付けサービス１２７は、この特定のアドレスブロックを公示し、それにより割り付けを実装するようにルータ１２１を自動的に構成し得る。アドレス割り付けサービス１２７は、対応する集約ルータ１１５に割り付けられたより大きいアドレスブロック（例えば、「／２２」または他のブロック）内から特定のアドレスブロックを選択し得る。
【００４１】
非制限的な例を継続して、２０のコンピューティングデバイス１１８の各々が「／２７」ブロックから１つの対応するアドレスを用いるように初期構成されるということがあり得る。ブロック中の様々なアドレスは、ネットワーク番号、ゲートウェイアドレス、ブロードキャストアドレスなどとして留保され得る。ラック１１２が再構成されるに連れて、アドレス利用が高まり得る。さらなるコンピューティングデバイス１１８は、ラック１１２に追加され得るし、さらなるマシンインスタンス１２４は、コンピューティングデバイス１１８に追加され得るし、顧客は、それらのマシンインスタンス１２４もしくはコンピューティングデバイス１１８に対するさらなるネットワークアドレスを要求し得るし、および／または他の再構成が発生し得る。ネットワーク監視サービス１３０は、ネットワークトポロジー、アドレス割り付け、アドレス利用を含むデバイス使用、および／またはホストされるコンピューティング環境１０３に関する他の情報を監視し得る。再構成と関連付けられたデータおよびこれを示すデータは、ネットワークトポロジーデータ１３３、アドレス割り付け履歴１３９、デバイスタイプデータ１４２、デバイス使用データ１４５などに記憶され得る。再構成を示すこのようなデータは、一部の実施形態では、アドレス割り付けサービス１２７に直接に提供され得る。アドレスの在庫枯渇以前にアドレス割り付けが実施されることを保証するようにしきい値が設定され得る。
【００４２】
例えば、アドレス割り付けサービス１２７は、ラック１１２の再構成の結果、マシンインスタンス１２４の量が増加したことを示すデータを獲得し得る。結果として、アドレス割り付けサービス１２７は、別の「／２７」ネットワークアドレスブロックを特定のラック１１２に割り当てることを決定し得る。ネットワークアドレスのブロックは、一部の場合では、集約ルータ１１５に割り付けられたアドレスのサブ集合として選択され得る。割り当てられると、アドレス割り付けサービス１２７は、さらなるアドレス割り付けを実装するようにルータ１２１を自動的に再構成し得る。
【００４３】
アドレス割り付けサービス１２７は、利用可能であれば隣接する割り付けを好むように構成され得る。一部の場合では、アドレス割り付け履歴１３９、顧客データ１４８、および／または他の要因に少なくとも部分的に基づいて、アドレス割り付けサービス１２７は、割り当てに隣接する未割当のアドレス割り付けをまず留保し得るが、この場合、留保物は将来の使用のためである。他のラック１１２におけるデマンドがさらなる割り当てにつながる場合、このような留保された割り付けは、必要であれば他のラックに割り当てられ得る。したがって、隣接しない割り当てが必要であり得る。
【００４４】
隣接する割り付け割り当てがなされた場合、アドレス割り付けサービス１２７は、割り当てを統合するように構成され得る。例えば、２つの「／２７」ネットワークが隣接して割り付けられた場合、アドレス割り付けサービス１２７は、２つの「／２７」割り付けを１つの「／２６」割り付けにロールアップするように構成され得る。同様に、４つの「／２７」ネットワークが隣接して割り付けられた場合、アドレス割り付けサービス１２７は、４つの「／２７」割り付けを１つの「／２５」割り付けにロールアップするように構成され得る。１つの実施形態では、隣接する割り付けを組み合わせることによって、より小さい割り付け用の以前に留保されたアドレス（例えば、ネットワーク番号、ブロードキャストアドレスなど）であったさらなるアドレスが、コンピューティングデバイス１１８に対して割り当て可能となり得る。このルート集約または要約を実施することによって、ルータ１２１および集約ルータ１１５に対するルーティングデマンドが軽減され得る。
【００４５】
１つの実施形態では、ルータ１２１（または集約ルータ１１５）は、集約目的ではコンピューティングデバイス１１８に割り当てられなかったルートを公示するように構成され得る。例えば、「／２７」ブロックに対する３つの隣接するアドレス割り付け１３６が、特定のラック１１２に割り当てられ得る。アドレス割り付け１３６は、ルーティング上の公示を簡略化するために、「／２５」ブロック内に１つの未割当の「／２７」ブロックを含むにもかかわらず、１つの「／２５」ブロックに集約され得る。未割当の「／２７」ブロックは、ラック１１２による将来の使用のために留保され得る、または、デマンド次第では、別のラック１１２による使用のために、後で分離され得る。
【００４６】
ラック１１２中での一部の再構成は、より大きいアドレス利用に導き得るが、他の再構成は、アドレス利用の減少に導き得る。例えば、以前に「／２２」ブロックのアドレス割り付け１３６を割り当てられたラック１１２は、今では、「／２３」ブロック内に適合しうる４００のアドレスを用いていることがあり得る。このような利用の減少は、比較的電力不足となったコンピューティングデバイス１１８を獲得することに、より少ないマシンインスタンス１２４がホストされているときに、発生し得る。結果として、アドレス割り付けサービス１２７は、オリジナルの「／２２」割り付けから別の「／２３」を解除し得る。ヒステリシスを提供するために、しきい値が用いられ得る。ヒステリシスは、短時間内で使用されうる割り付けを解除することを回避するためには望ましくあり得る。例えば、アドレス利用は、「／２２」ブロックの場合は５１２未満に一時的に低下し得るが、「／２３」は、アドレス利用が４５０未満になるまでは解除され得ない。
【００４７】
一部の場合、解除されるブロック内のアドレスは既に使用中であり得る。このような場合、アドレス利用サービス１２７は、コンピューティングデバイス１１８の、解除されるブロック中のアドレスから保持されるブロック中のアドレスへの移行を始動するように構成され得る。一部の場合、コンピューティングデバイス１１８を１つのアドレスから別のアドレスに移動させることは望ましくないということがあり得るし、また、アドレス割り付け１３６の部分を解除することを差し控える結果となり得る。例えば、「／２２」ブロック中の４００アドレスのみが用いられ得るとはいえ、既存のアドレス利用のため、アドレス割り付けサービス１２７は、「／２４」ブロックのみを解除し得る。アドレス割り付けサービス１２７は、問題となるルーティングテーブルのオーバーヘッドを回避するために、アドレス割り付け１３６を多くの小さいブロックに分割することを防止するしきい値で構成され得る。
【００４８】
上述した例は、集約ルータ１１５に割り当てられたアドレス割り付け１３６にも拡張され得る。集約ルータ１１５の後方にあるホストされるコンピューティング環境１０３の部分は、ネットワーク１０９のサブ分割部分と考えられ得る。この目的のため、ネットワークアドレスのブロックは、予測されるまたは実際のデマンド、例えば、集約ルータ１１５によってサービス提供されるラック１１２、コンピューティングデバイス１１８、マシンインスタンス１２４などに少なくとも部分的に基づいて、集約ルータ１１５に割り付けられ得る。実際のまたは予測されるネットワークアドレスは時間と共に増加または減少し、それにより、結果として、さらなるアドレス割り付け１３６が割り当てられたり、または、既存のアドレス割り付け１３６が再割り当てのために解除されたりし得る。
【００４９】
次に図３を参照すると、様々な実施形態に関わるアドレス割り付けサービス１２７の一部分の動作の１つの例を提供するフローチャートが示されている。図３のフローチャートは、本明細書に説明するように、単に、アドレス割り付けサービス１２７の部分の動作を実装するために用いられ得る多くの異なるタイプの機能配列の例を提供することが理解される。代替例として、図３のフローチャートは、１つ以上の実施形態に関わるコンピューティング環境１０６（図１）中に実装される方法のステップの例を示すものとして見られ得る。
【００５０】
ボックス３０３から始めると、アドレス割り付けサービス１２７は、ネットワーク１０９（図１）のサブ分割部分の初期構成を判定する。このサブ分割部分は、ラック１１２（図１）、所与の集約ルータ１１５（図１）の後方のホストされるコンピューティング環境１０３（図１）の一部分、または別のサブ分割部分に対応し得る。この目的のため、アドレス割り付けサービス１２７は、ネットワーク１０９のトポロジー、コンピューティングデバイス１１８（図１）およびそれらのデバイスタイプ、構成されているマシンインスタンス１２４（図１）、マシンインスタンス１２４と関連付けられた顧客などを判定するために、ネットワーク監視サービス１３０（図１）によって収集されたデータを参照し得る。
【００５１】
ボックス３０６で、アドレス割り付けサービス１２７は、第１のアドレス割り付け１３６（図１）を、初期構成に少なくとも部分的に基づいて、サブ分割部分に割り当てる。例えば、アドレス割り付け１３６は、コンピューティングデバイス１１８の各々のそれぞれのデバイスタイプ、ネットワークアドレスに対する投影されたデマンド、および／または他の要因に少なくとも部分的に基づいて判定され得る。ボックス３０９で、アドレス割り付けサービス１２７は、ルータ１２１（図１）（または、場合によっては集約ルータ１１５）を、第１のアドレス割り付け１３６を実装するように構成する。
【００５２】
ボックス３１２で、アドレス割り付けサービス１２７は、サブ分割部分中のコンピューティングデバイス１１８の再構成を示す、例えば、ネットワーク監視サービス１３０からデータを獲得する。例えば、さらなるコンピューティングデバイス１１８が追加され得るし、コンピューティングデバイス１１８は、より強力なコンピューティングデバイス１１８によって置き換えられ得るし、コンピューティングデバイス１１８は、より多くのマシンインスタンス１２４で再構成され得るし、コンピューティングデバイス１１８は、多くのネットワークアドレスを使用する傾向がある顧客用に再構成され得るし、などである。図３の場合では、再構成は、実際のまたは予測されるアドレス利用の増加を示す。ボックス３１５では、アドレス割り付けサービス１２７は、第２のアドレス割り付け１３６をサブ分割部分に対して、再構成に少なくとも部分的に基づいて割り当てる。第２のアドレス割り付け１３６は、例えば、第１のアドレス割り付け１３６との隣接関係に基づいて選択され得る。例えば、「１０．１．０．０／２４」は、「１０．１．１．０／２４」と隣接している。隣接関係は、特定のサブネットマスク内に適合するアドレス割り付け１３６の能力に依存し得る。第２のアドレス割り付け１３６のサイズは、例えば、アドレス割り当て、割り付け、または利用の速度に基づいて判定され得る。
【００５３】
ボックス３１８では、アドレス割り付けサービス１２７は、第１および第２のアドレス割り付け１３６を集約すべきであるかどうかを判定する。例えば、「１０．１．０．０／２４」は、「１０．１．１．０／２４」と集約されて、「１０．１．１．０／２３」を生成し得る。一部の実施形態では、非隣接のアドレス割り付け１３６が集約され得る。アドレス割り付けサービス１２７が、第１および第２のアドレス割り付け１３６を集約しないと決定すると、アドレス割り付けサービス１２７は、ボックス３２１に移動して、第２のアドレス割り付け１３６を個別の経路として公示するように、ルータ１２１（または、場合によっては集約ルータ１１５）を構成する。アドレス割り付けサービス１２７は次に、ボックス３２４へと続行する。
【００５４】
代わりに、アドレス割り付けサービス１２７が、第１および第２のアドレス割り付け１３６を集約すべきであると決定すると、アドレス割り付けサービス１２７は、ボックス３１８からボックス３２７へと続行し、第１のアドレス割り付け１３６を第２のアドレス割り付け１３６と組み合わせる。ボックス３３０で、アドレス割り付けサービス１２７は、組み合わされたアドレス割り付け１３６を公示するように、ルータ１２１（または、場合によっては、集約ルータ１１５）を構成する。アドレス割り付けサービス１２７は次に、ボックス３２４に続く。
【００５５】
ボックス３２４で、アドレス割り付けサービス１２７は、別の再構成が発生したかどうかを判定する。別の再構成が発生していれば、アドレス割り付けサービス１２７は、ボックス３１２に戻って、この再構成を示すデータを獲得する。別の再構成が発生していなければ、アドレス割り付けサービス１２７のその部分は終了する。
【００５６】
ここで図４に目を転じると、様々な実施形態に関わるアドレス割り付けサービス１２７の別の部分の動作の１つの例を提供するフローチャートが示されている。図４のフローチャートは、本明細書に説明するように、アドレス割り付けサービス１２７の部分の動作を実装するために用いられ得る多くの異なるタイプの機能配列の例を単に提供することが理解される。代替例として、図４のフローチャートは、１つ以上の実施形態に関わるコンピューティング環境１０６（図１）中に実装される方法のステップの例を示すものとして見られ得る。
【００５７】
ボックス４０３から始めると、アドレス割り付けサービス１２７（図１）は、ネットワーク１０９（図１）のサブ分割部分（例えば、ラック１１２（図１）、集約ルータ１１５（図１）の後方にあるホストされるコンピューティング環境１０３（図１）の一部分など）の中のコンピューティングデバイス１１８（図１）の再構成を示すデータを、例えばネットワーク監視サービス１３０（図１）から獲得する。例えば、コンピューティングデバイス１１８は、除去され得るし、コンピューティングデバイス１１８は、より少ないマシンインスタンス１２４で再構成され得るし、コンピューティングデバイス１１８は、より少ないネットワークアドレスを使用する傾向がある顧客用に再構成され得るし、などである。図４の場合では、再構成は、実際のまたは予測されるアドレス利用の減少を示す。
【００５８】
ボックス４０６では、アドレス割り付けサービス１２７は、サブ分割部分に対するアドレス利用がしきい値未満であるかどうかを判定する。未満でなければ、アドレス割り付けサービス１２７は、ボックス４０９に進み、アドレス割り付け１３６（図１）の解除は発生しない。未満であれば、アドレス割り付けサービス１２７は、ボックス４０６からボックス４１２へと続行し、サブ分割部分に対するアドレス割り付け１３６の少なくとも一部分が解除可能であるかどうかを判定する。例えば、アドレス割り付け１３６には、現在使用中のアドレスが存在し得て、移動させることが不可能であり、それにより、アドレス割り付け１３６は、潜在的に解除不可能とされる。アドレス割り付け１３６は解除不可能であれば、アドレス割り付けサービス１２７は、ボックス４０９へと続行する。
【００５９】
アドレス割り付け１３６が解除可能であれば、アドレス割り付けサービス１２７は、ボックス４１２からボックス４１５に移行して、アクティブ状態のアドレス割り付けを移動させるかどうか判定する。移動させないのであれば、アドレス割り付けサービス１２７はボックス４１８へと続行する。その代わりに、アクティブ状態のアドレス割り当てを移動させるのであれば、アドレス割り付けサービス１２７は、ボックス４１５からボックス４２１へと続行し、アクティブ状態のアドレス割り当てを、アドレス割り付け１３６の解除可能なサブ集合から退避させ。これには、関連するコンピューティングデバイス１１８の自動的な再構成、コンピューティングデバイス１１８と関連付けられた顧客の通知などが伴い得る。
【００６０】
ボックス４１８では、アドレス割り付けサービス１２７は、アドレス割り付け１３６のサブ集合を解除する。ボックス４２４では、アドレス割り付けサービス１２７は、解除されていないアドレス割り付け１３６のサブ集合を公示するようにルータ１２１（または、場合によっては、集約ルータ１１５）を再構成する。アドレス割り付け１３６が「１０．１．１．０／２３」である非制限的な例として、アドレス割り当ては、「１０．１．１．０／２４」から退避されてもよく、そして「１０．１．１．０／２４」が解除されてもよい。「１０．１．０．０／２４」への経路は、次いで公示され得る。解除されたアドレス割り付け１３６のサブ集合が、別のサブ集合と集約されないと、それは、次に、その結果として新たな経路が何も公示されない場合となり得る。アドレス割り付けサービス１２７は、ボックス４０９に進む。
【００６１】
ボックス４０９で、アドレス割り付けサービス１２７は、別の再構成が発生したかどうかを判定する。別の再構成が発生した場合、アドレス割り付けサービス１２７は、ボックス４０３に戻って、この再構成を示すデータを獲得する。別の再構成が発生していない場合、アドレス割り付けサービス１２７のその部分が終了する。
【００６２】
図５を参照すると、本開示の実施形態に関わるコンピューティング環境１０６の略ブロック図が示されている。コンピューティング環境１０６は、１つ以上のコンピューティングデバイス５００を含む。各々のコンピューティングデバイス５００は、双方ともがローカルインターフェース５０９に結合される、例えば、プロセッサ５０３およびメモリ５０６を有する少なくとも１つのプロセッサ回路を含む。この目的のため、各々のコンピューティングデバイス５００は、例えば、少なくとも１つのサーバコンピュータまたは同様のデバイスを備え得る。ローカルインターフェース５０９は、理解されるように、例えば、随伴するアドレス／制御バスまたは他のバス構造を持つデータバスを備え得る。
【００６３】
プロセッサ５０３によって実行可能なデータといくつかの構成要素との双方が、メモリ５０６に記憶されている。特に、メモリ５０６に記憶されて、プロセッサ５０３によって実行可能なのは、アドレス割り付けサービス１２７、ネットワーク監視サービス１３０、および潜在的に他のアプリケーションである。また、データストア１２５および他のデータもメモリ５０６に記憶され得る。加えて、オペレーティングシステムがメモリ５０６に記憶されて、プロセッサ５０３によって実行可能である。
【００６４】
理解されるように、メモリ５０６に記憶されて、プロセッサ５０３によって実行可能な他のアプリケーションが存在し得ることが理解される。本明細書に説明した任意の構成要素がソフトウエアという形態で実装される場合には、例えば、Ｃ、Ｃ＋＋、Ｃ＃、Ｏｂｊｅｃｔｉｖｅ  Ｃ、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｅｒｌ、ＰＨＰ、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、Ｐｙｔｈｏｎ（登録商標）、Ｒｕｂｙ、Ｆｌａｓｈ（登録商標）、または他のプログラミング言語などのいくつかのプログラミング言語のうちの任意の１つが用いられ得る。
【００６５】
いくつかのソフトウエア構成要素が、メモリ５０６に記憶されてプロセッサ５０３によって実行可能である。この点で、「実行可能」という用語は、究極的にはプロセッサ５０３によって作動されることが可能な形態にあるプログラムファイルを意味する。実行可能なプログラムの例は、例えば、メモリ５０６のランダムアクセス部分にロードしてプロセッサ５０３によって作動されることが可能な形式でマシンコードに変換することが可能なコンパイルされたプログラム、メモリ５０６のランダムアクセス部分にロードしてプロセッサ５０３によって作動されることが可能なオブジェクトコードなどの適当な形式で表現され得るソースコード、または、プロセッサ５０３によって実行される命令をメモリ５０６のランダムアクセス部分中に発生するために、別の実行可能なプログラムによって解釈され得るソースコードなど、であり得る。実行可能なプログラムは、例えば、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、ハードディスクドライブ、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、メモリカード、コンパクトディスク（ＣＤ）もしくはデジタルバーサタイルディスクなどの光ディスク、フロッピー（登録商標）ディスク、磁気テープ、または他のメモリ構成要素を含むメモリ５０６の任意の部分または構成要素中に記憶され得る。
【００６６】
メモリ５０６は、本明細書では、揮発性および不揮発性のメモリと、データ記憶構成要素との双方を含むものと定義される。揮発性構成要素は、電源喪失時のデータ値を保持しないものである。不揮発性構成要素は、電源喪失時のデータを保持するものである。したがって、メモリ５０６は、例えば、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、ハードディスクドライブ、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、メモリカード読み取り装置によってアクセスされるメモリカード、関連付けられたフロッピー（登録商標）ディスクドライブを介してアクセスされるフロッピー（登録商標）ディスク、光ディスクドライブによってアクセスされる光ディスク、適当なテープドライブによってアクセスされる磁気テープ、および／または他のメモリ構成要素、またはこれらのメモリ構成要素の任意の２つ以上の組み合わせを含み得る。加えて、ＲＡＭは、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、もしくは磁気ランダムアクセスメモリ（ＭＲＡＭ）、または他のこのようなデバイスを含み得る。ＲＯＭは、例えば、プログラム可能リードオンリーメモリ（ＰＲＯＭ）、消去可能なプログラム可能リードオンリーメモリ（ＥＰＲＯＭ）、電気的消去可能なプログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）、または他の同様のメモリデバイスを含み得る。
【００６７】
また、それぞれ、プロセッサ５０３は、複数のプロセッサ５０３および／または複数のプロセッサコアを表し得るし、メモリ５０６は、並列処理回路中で動作する複数のメモリ５０６を表し得る。このような場合、ローカルインターフェース５０９は、複数のプロセッサ５０３のうちの任意の２つ間、任意のプロセッサ５０３とメモリ５０６のうちのいずれかとの間、またはメモリ５０６のうちの任意の２つの間などでの通信を容易化する適切なネットワークであり得る。ローカルインターフェース５０９は、例えば、負荷均衡化を実施することを含む、この通信を調整するように設計されたさらなるシステムを含み得る。プロセッサ５０３は、電気的構造または何らかの他の利用可能な構造のものであり得る。
【００６８】
アドレス割り付けサービス１２７、ネットワーク監視サービス１３０、および、本明細書に説明する他の様々なシステムは、上述したように、ソフトウエアまたは汎用ハードウエアによって実行されるコードに具現化され得るとはいえ、代替例として、これらはまた、専用のハードウエアまたはソフトウエア／汎用のハードウエアおよび専用のハードウエアの組み合わせに具現化され得る。専用のハードウエアに具現化された場合、各々は、いくつかの技術のうちの任意の１つまたはこれらの組み合わせを用いる回路または状態機械として実装することが可能である。これらの技術は、これには限られないが、１つ以上のデータ信号が印加されると様々な論理機能を実装するための論理ゲートを有するディスクリート論理回路、適当な論理ゲートを有する特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラム可能なゲートアレイ（ＦＰＧＡ）、または他の構成要素などを含み得る。このような技術は、当業者にとっては一般的に周知であり、結果として、本明細書では詳述しない。
【００６９】
図３および４のフローチャートは、アドレス割り付けサービス１２７の部分の実装例の機能性および動作を示す。ソフトウエアに具現化された場合、各々のブロックは、指定された論理機能（複数可）を実装するためのプログラム命令を含むコードのモジュール、セグメント、または部分を表し得る。これらのプログラム命令は、プログラミング言語で記述された人間読み取り可能ステートメントを含むソースコード、または、コンピュータシステムもしくは他のシステム中のプロセッサ５０３などの適切な実行システムによって認識可能な数値命令を含むマシンコードという形態で具現化され得る。これらのマシンコードは、ソースコードなどから変換され得る。ハードウエアに具現化された場合、各々のブロックは、指定された論理機能（複数可）を実装するための回路またはいくつかの相互接続された回路を表し得る。
【００７０】
図３および４のフローチャートは、具体的な実行順序を示しているが、実行順序は示されているそれとは異なり得ることが理解される。例えば、２つ以上のブロックの実行順序は、図示する順序に対して入れ替えられ得る。また、図３および４に連続して示す２つ以上のブロックは、同時並行にまたは部分的同時並行性で実行され得る。さらに、一部の実施形態では、図３および４に示す１つ以上のブロックは、飛ばしたりまたは省略したりされ得る。加えて、任意の数のカウンタ、状態変数、警告セマフォ、またはメッセージを、向上されたユーティリティ、計算法、性能測定、またはトラブルシューティング支援を提供する目的で、本明細書に記載する論理フローに追加し得る。全てのこのような変更例は本開示の範囲内にあると理解される。
【００７１】
また、ソフトウエアまたはコードを含む、アドレス割り付けサービス１２７およびネットワーク監視サービス１３０を含む、本明細書に記載する任意のロジックまたはアプリケーションは、例えば、コンピュータシステムまたは他のシステム中のプロセッサ５０３などの命令実行システムで用いられるまたはこれと接続して用いられる任意の非一時的なコンピュータ読み取り可能媒体に具現化することが可能である。この意味では、ロジックは、例えば、コンピュータ読み取り可能媒体からフェッチして命令実行システムによって実行することが可能な命令および宣言を含むステートメントを含み得る。本開示の文脈では、「コンピュータ読み取り可能媒体」は、命令実行システムで用いられるまたはこれを接続して用いられる、本明細書に記載するロジックまたはアプリケーションを含む、記憶する、または保つことが可能な任意の媒体でありうる。
【００７２】
本開示の様々な実施形態を、次の付記に照らして説明することが可能である：
１．少なくとも１つのコンピューティングデバイス中で実行可能なプログラムを具現化する非一時的なコンピュータ読み取り可能媒体であって、
第１のネットワークアドレス割り付けを、複数のコンピューティングデバイスを含むネットワークのサブ分割部分に対して、コンピューティングデバイスの各々のそれぞれのコンピューティングデバイスタイプに少なくとも部分的に基づいてまず割り当てるコードと、
第１のネットワークアドレス割り付けを実装するように、サブ分割部分に対するルータを構成するコードと、
増加した量のマシンインスタンスをホストするため、コンピューティングデバイスの再構成を示すデータを獲得するコードと、
第２のネットワークアドレス割り付けを、ネットワークのサブ分割部分に対して、コンピューティングデバイスの再構成に少なくとも部分的に基づいて、次いで割り当てるコードと、
第２のネットワークアドレス割り付けを実装するように、サブ分割部分に対するルータを再構成するコードと、
減少した量のマシンインスタンスをホストするために、サブ分割部分に含まれるコンピューティングデバイスの後続の再構成を示すデータを獲得するコードと、
サブ分割部分に割り当てられた第３のネットワークアドレス割り付けを、コンピューティングデバイスの後続の再構成に少なくとも部分的に基づいて解除するコードと、
第３のネットワークアドレス割り付けの公示を排除するように、サブ分割部分に対するルータを再構成するコードと、を備える、非一時的コンピュータ読み取り可能媒体。
２．第３のネットワークアドレス割り付けが解除されたことに応答して、コンピューティングデバイスのうちの１つを、異なるネットワークアドレスを用いるように再構成するコードをさらに備える、付記１に記載の非一時的コンピュータ読み取り可能媒体。
３．第３のネットワークアドレス割り付けが、第１のネットワークアドレス割り付けまたは第２のネットワークアドレス割り付けのサブ集合である、付記１に記載の非一時的コンピュータ読み取り可能媒体。
４．
少なくとも１つのコンピューティングデバイスと、
少なくとも１つのコンピューティングデバイスによって実行可能なアドレス割り付けサービスであって、
ネットワークのサブ分割部分であって、複数のコンピューティングデバイスを含む、サブ分割部分に対して第１のネットワークアドレス割り付けをまず割り当て、
サブ分割部分に対するルータを、第１のネットワークアドレス割り付けを実装するように構成し、
コンピューティングデバイスの再構成を示すデータを獲得し、
次いで、第２のネットワークアドレス割り付けを、コンピューティングデバイスの再構成に少なくとも部分的に基づいて、ネットワークのサブ分割部分に割り当て、かつ
サブ分割部分に対するルータを、第２のネットワークアドレス割り付けを実装するように再構成するように構成された、アドレス割り付けサービスと、を備える、システム。
５．コンピューティングデバイスが、可変量のネットワークアドレスを用いる複数のマシンインスタンスを含む、付記４に記載のシステム。
６．第２のネットワークアドレス割り付けが、コンピューティングデバイスの再構成に準じて、コンピューティングデバイスによってホストされるマシンインスタンスの増加した量に少なくとも部分的に基づいて、次いで割り当てられる、付記４に記載のシステム。
７．第２のネットワークアドレス割り付けが、コンピューティングデバイスと関連付けられたネットワークアドレス割り当て速度に少なくとも部分的に基づいて次いで割り当てられる、付記４に記載のシステム。
８．第１のネットワークアドレス割り付けが、コンピューティングデバイスの各々のそれぞれのコンピューティングデバイスタイプに少なくとも部分的に基づいている、付記４に記載のシステム。
９．アドレス割り付けサービスが、
それぞれのコンピューティングデバイスタイプに少なくとも部分的に基づいて、コンピューティングデバイスのうちの少なくとも１つに対するマシンインスタンスの量を予測するようにさらに構成され、
第１のネットワークアドレス割り付けが、予測されたマシンインスタンスの量に少なくとも部分的に基づく、付記８に記載のシステム。
１０．サブ分割部分がラックに対応し、ルータがラックと関連付けられたルータに対応する、付記４に記載のシステム。
１１．第２のネットワークアドレス割り付けが、第１のネットワークアドレス割り付けとの第２のネットワークアドレス割り付けの隣接関係に少なくとも部分的に基づいて選択される、付記４に記載のシステム。
１２．第１のネットワークアドレス割り付けおよび第２のネットワークアドレス割り付けが、第２のネットワークアドレス割り付けが実装されたことに応答して、サブ分割部分に割り当てられる、付記４に記載のシステム。
１３．第１のネットワークアドレス割り付けと、第２のネットワークアドレス割り付けとが隣接している、付記１２に記載のシステム。
１４．第１のネットワークアドレス割り付けと、第２のネットワークアドレス割り付けとが隣接していない、付記１２に記載のシステム。
１５．第２のネットワークアドレス割り付けが実装されたことに応答して、第１のネットワークアドレス割り付け、第２のネットワークアドレス割り付け、ならびに第１のネットワークアドレス割り付けおよび第２のネットワークアドレス割り付けに隣接していて、かつサブ分割部分に対しては未割当の第３のネットワークアドレス割り付けを含む隣接するネットワークアドレス割り付けを公示するように、ルータが構成される、付記１４に記載のシステム。
１６．第１のネットワークアドレス割り付けが、第２のネットワークアドレス割り付けが実装されたことに応答してサブ分割部分に割り当てられることがもはやない、付記４に記載のシステム。
１７．第２のネットワークアドレス割り付けが、第１のネットワークアドレス割り付けを含む、付記４に記載のシステム。
１８．少なくとも１つのコンピューティングデバイスによって、ネットワークのサブ分割部分であって、ネットワークアドレス割り付けを割り当てられる、サブ分割部分に含まれる複数のコンピューティングデバイスのうちの少なくとも１つの再構成を示すデータを獲得することと、
前記少なくとも１つのコンピューティングデバイスによって、前記ネットワークアドレス割り付けの第１のサブ集合の割り当てを解除するかどうかを、前記コンピューティングデバイスのうちの前記少なくとも１つの再構成に少なくとも部分的に基づいて判定することと、
少なくとも１つのコンピューティングデバイスによって、判定に応答して、ネットワークアドレス割り付けの第１のサブ集合の割り当てを解除することと、
少なくとも１つのコンピューティングデバイスによって、ネットワークアドレス割り付けの代わりにネットワークアドレス割り付けの第２のサブ集合を公示するために、サブ分割部分に対するルータを再構成することと、を含む、方法。
１９．再構成が、コンピューティングデバイスのうちの少なくとも１つによってホストされるマシンインスタンスの量の減少に対応する、付記１８に記載の方法。
２０．少なくとも１つのコンピューティングデバイスによって、マシンインスタンスの量がネットワークアドレス割り付けの第１のサブ集合を解除するしきい値を満たすかどうかを判定することをさらに含む、付記１９に記載の方法。
２１．ルータを自動的に再構成する前に、少なくとも１つのコンピューティングデバイスによって、ネットワークアドレス割り付けの第２のサブ集合中の第２のネットワークアドレスの代わりにネットワークアドレス割り付けの第１のサブ集合中の第１のネットワークアドレスを用いるために、サブ分割部分中のコンピューティングデバイスのうちの１つを自動的に再構成することをさらに含む、付記１８に記載の方法。
２２．ネットワークアドレス割り付けの第１のサブ集合と、ネットワークアドレス割り付けの第２のサブ集合とが、隣接している、付記１８に記載の方法。
２３．ネットワークアドレス割り付けの第１のサブ集合と、ネットワークアドレス割り付けの第２のサブ集合とが、隣接していない、付記１８に記載の方法。
２４．少なくとも１つのコンピューティングデバイスにおいて、サブ分割部分に含まれるコンピューティングデバイスのうちの少なくとも１つの後続の再構成を示すデータを獲得するステップと、
少なくとも１つのコンピューティングデバイスにおいて、コンピューティングデバイスのうちの少なくとも１つの後続の再構成に少なくとも部分的に基づいて、別のネットワークアドレス割り付けをサブ分割部分に割り当てるステップと、
少なくとも１つのコンピューティングデバイスにおいて、ネットワークアドレス割り付けの第２のサブ集合に加えて、他のネットワークアドレス割り付けを公示するために、サブ分割部分に対するルータを自動的に再構成するステップと、をさらに含む、付記１８に記載の方法。
【００７３】
コンピュータ読み取り可能媒体は、例えば、磁気、光、または半導体の媒体の多くの物理的媒体のうちの任意の１つを備えることが可能である。適切なコンピュータ読み取り可能媒体のより具体的な例は、これに限られないが、磁気テープ、磁気フロッピディスケット、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、または光ディスクを含みうる。また、コンピュータ読み取り可能媒体は、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）およびダイナミックランダムアクセスメモリ（ＤＲＡＭ）または磁気ランダムアクセスメモリ（ＭＲＡＭ）を含むランダムアクセスメモリ（ＲＡＭ）であり得る。加えて、コンピュータ読み取り可能媒体は、リードオンリーメモリ（ＲＯＭ）、プログラム可能リードオンリーメモリ（ＰＲＯＭ）、消去可能なプログラム可能リードオンリーメモリ（ＥＰＲＯＭ）、電気的消去可能なプログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）、または他のタイプのメモリデバイスであり得る。
【００７４】
本開示の上述した実施形態は、本開示の原理の明瞭な理解のために記述された、単に可能な実装例であることが強調されるべきである。多くの変更および修正が、本開示の精神および原理から実質的に逸脱することなく、上述した実施形態（複数可）になされ得る。全てのこのような修正および変更は、本明細書において本開示の範囲内に含まれ、かつ次の特許請求の範囲によって保護されることを意図するものである。
【００７５】
関連出願の相互参照
以下の出願は、出願番号１３／６２１、８９１号を有する、２０１２年９月１８日に出願された、「ＤＹＮＡＭＩＣＡＬＬＹ  ＡＬＬＯＣＡＴＩＮＧ  ＮＥＴＷＯＲＫ  ＡＤＤＲＥＳＳＥＳ」という題名の米国特許出願に対する優先権およびその恩典を主張するものであり、当該出願は、その全体が参照により本明細書に組み込まれる。
【図１】
0005989907.tif 000002
【図２】
0005989907.tif 000003
【図３】
0005989907.tif 000004
【図４】
0005989907.tif 000005
【図５】
0005989907.tif 000006