(57)【要約】【課題】コンピュータネットワークの動的な移行を提供すること。【解決手段】使用中の第１のコンピュータネットワークの１つまたは複数の対象計算ノードを、リモート仮想コンピュータネットワークへ移行するための技法が記載される。例えば、第１のコンピュータネットワークの対象計算ノードの代わりに、リモート仮想コンピュータネットワークにおける代替計算ノードを提供する。そして、対象計算ノードによって使用される第１のコンピュータネットワークのネットワークアドレスを、第１のコンピュータネットワークにおける装置に関連付ける。第１のコンピュータネットワークを経て前記ネットワークアドレスに送られる以降の通信を、装置からリモート仮想コンピュータネットワークにおける代替計算ノードへ転送可能とすることにより、対象計算ノードをリモート仮想コンピュータネットワークへ移行する。【選択図】図１Ａ
2014157617.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実装された方法であって、
構成されたコンピューティングデバイスによって、使用中の第１のコンピュータネットワークの１つまたは複数の対象計算ノードを、オンラインサービスによって提供されるリモート仮想コンピュータネットワークへの移行を決定することと、
前記第１のコンピュータネットワークの使用中に、前記１つまたは複数の対象計算ノードの各々について、前記１つまたは複数の対象計算ノードを、前記リモート仮想コンピュータネットワークへ移行することであって、
前記構成されたコンピューティングデバイスによって開始することであって、前記リモート仮想コンピュータネットワークにおける代替計算ノードを提供し、前記第１のコンピュータネットワークの前記対象計算ノードの代わりをする、開始することと、および、
前記構成されたコンピューティングデバイスによって開始することであって、前記対象計算ノードによって使用される前記第１のコンピュータネットワークのネットワークアドレスを、前記第１のコンピュータネットワークにおける装置に関連付け、前記第１のコンピュータネットワークを経て前記ネットワークアドレスに送られる以降の通信を、前記装置から前記リモート仮想コンピュータネットワークにおける前記代替計算ノードへ転送可能とする、開始することとにより、移行することと、
を含むことを特徴とする方法。
【請求項２】
前記第１のコンピュータネットワークにおける前記装置は、ゲートウェイ装置であり、前記対象計算ノードのうち１つの前記ネットワークアドレスをゲートウェイ装置に関連付けた後、前記１つの対象計算ノードに対する前記代替計算ノードに配送するために、前記１つまたは複数の通信を、前記ゲートウェイ装置から前記リモート仮想コンピュータネットワークに転送することにより、前記第１のコンピュータネットワークを経て前記ネットワークアドレスに送られる１つまたは複数の通信を自動的に管理することを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１のコンピュータネットワークは複数の計算ノードを含み、前記１つまたは複数の対象計算ノードは前記複数の計算ノードの一部であり、これにより、前記１つまたは複数の対象計算ノードの前記移行後の、前記第１のコンピュータネットワークの継続動作は、前記１つまたは複数の対象計算ノードの代わりに、前記リモート仮想コンピュータネットワークの前記代替計算ノードの使用を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記１つまたは複数の対象計算ノードの前記リモート仮想コンピュータネットワークへの前記移行後、前記対象計算ノードのうち少なくとも１つの各々について、前記対象計算ノードに対する前記代替計算ノードの、前記第１のコンピュータネットワークへの逆移行を開始することであって、前記逆移行は、前記第１のコンピュータネットワーク上の前記装置から、前記対象計算ノードに対する前記ネットワークアドレスの関連付けを解消することを含み、および前記ネットワークアドレスを、前記第１のコンピュータネットワークにおいて前記対象計算ノードとして機能する計算ノードに関連付けることを含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記第１のコンピュータネットワークは複数の計算ノードを含み、前記１つまたは複数の対象計算ノードは前記複数の計算ノードすべてを含み、これにより前記第１のコンピュータネットワークのすべては、第１のコンピュータネットワークの使用中に、前記リモート仮想コンピュータネットワークに段階的に移行されることを特徴とする請求項１に記載の方法。
【請求項６】
前記リモート仮想コンピュータネットワークへの、前記第１のコンピュータネットワークの段階的な移行の前に、前記第１のコンピュータネットワークの１つまたは複数の物理的なネットワーキング装置によって以前に提供された、前記第１のコンピュータネットワークに対するネットワーキング能力を仮想的に提供し、前記オンラインサービスを構成するために、前記オンラインサービスと１つまたは複数の対話を実行することを特徴とする請求項５に記載の方法。
【請求項７】
前記１つまたは複数の対象計算ノードの移行を決定することは、前記オンラインサービスのクライアントであるユーザから受信される命令に基づくことを特徴とする請求項１に記載の方法。
【請求項８】
前記オンラインサービスは、クライアント代わって構成可能なネットワークサービスによって提供された仮想コンピュータネットワークを、前記クライアントが構成できるようにする、構成可能なネットワークサービスであり、および、前記第１のコンピュータネットワークは、前記構成可能なネットワークサービスの前記クライアントのうちの１つである第１のエンティティの制御下にあることを特徴とする請求項１に記載の方法。
【請求項９】
前記構成されたコンピューティングデバイスは、前記構成可能なネットワークサービスの制御下で運用され、前記構成可能なネットワークサービスが、前記構成可能なネットワークサービスによって提供される、前記仮想コンピュータネットワークで使用するための複数の計算ノードを提供し、および、前記１つまたは複数の対象計算ノードの各々について、前記対象計算ノードに対する前記代替計算ノードは、前記構成可能なネットワークサービスによって選択され、および前記第１のエンティティの代わりに前記リモート仮想コンピュータネットワークに動的に追加された前記複数のコンピューティングノードのうちの１つであることを特徴とする請求項８に記載の方法。
【請求項１０】
前記対象計算ノードのうち１つに前記代替計算ノードの提供を開始することは、前記構成されたコンピューティングデバイスによって、前記代替計算ノードが前記リモート仮想コンピュータネットワークに追加されるように、前記構成可能なネットワークサービスとの、１つまたは複数の対話を実行することを含むことを特徴とする請求項８に記載の方法。
【請求項１１】
前記対象計算ノードのうち１つに前記代替計算ノードの提供を開始することは、前記構成されたコンピューティングデバイスによって、前記リモート仮想コンピュータネットワークにおける前記代替計算ノードが、プロビジョンされて前記１つの対象計算ノードの動作を実行するように、前記構成可能なネットワークサービスとの、１つまたは複数の対話を実行することを含むことを特徴とする請求項８に記載の方法。
【請求項１２】
前記リモート仮想コンピュータネットワークへの、前記１つまたは複数の対象計算ノードの前記移行の前に、前記構成されたコンピューティングデバイスによって、前記第１のエンティティのために前記リモート仮想コンピュータネットワークが作成されるように、前記構成可能なネットワークサービスとの、１つまたは複数の対話を実行することを含むことを特徴とする請求項８に記載の方法。
【請求項１３】
前記リモート仮想コンピュータネットワークへの、前記１つまたは複数の対象計算ノードの前記移行が、前記第１のコンピュータネットワークの他のコンピューティングノードに対して透過的な方法で実行され、これにより、他の計算ノードが、前記１つまたは複数の対象計算ノードの前記移行中に前記第１のコンピューティングネットワークを経て、前記第１のコンピュータネットワークの移行先計算ノードに通信を送り続けることを特徴とする請求項１に記載の方法。
【請求項１４】
コンピュータに、請求項１から請求項１３のいずれか１項に記載の方法を実行させるためのプログラム。
【請求項１５】
１つまたは複数のプロセッサを含むコンピューティング装置であって、
前記１つまたは複数のプロセッサによって実行されると、請求項１から請求項１３のいずれか１項に記載の方法を、前記コンピューティング装置に実行させる命令を記憶するメモリを含むコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワークの動的な移行に関する。
【背景技術】
【０００２】
数多くの企業および他の組織が、計算システムを（例えばローカルネットワークの一部として）同じ箇所に配置したり、（例えば、１つもしくは複数のプライベートまたはパブリックの仲介ネットワークを介して接続された）複数の別個の地理的位置に配置したりして、その動作をサポートするように、多数の計算システムを相互接続するコンピュータネットワークを運用している。例えば、単一組織によって、および単一組織に代わって運用されるプライベートデータセンターや、計算リソースを顧客に提供するビジネスとしてのエンティティによって運用されるパブリックデータセンターなど、相互接続された計算システムを数多く収容するデータセンターが一般的になってきた。一部のパブリックデータセンター事業者は、様々な顧客によって所有されるハードウェアにネットワークアクセス、電力、および安全な設置施設を提供し、一方で他のパブリックデータセンター事業者は、自らの顧客の使用のために利用可能とされたハードウェアリソースも含む「完全なサービス」施設を提供する。ただし、典型的なデータセンターの規模と範囲が増加したことに伴い、物理的な計算リソースをプロビジョニングし、管理し、かつ運営する作業が複雑になってきた。
【０００３】
市販のハードウェアを対象とした仮想化技術の出現により、多様なニーズを有する数多くの顧客に、大規模な計算リソースの管理にかかるいくつかの便益がもたらされ、複数の顧客によって様々な計算リソースを効率的かつ安全に共有できるようになった。例えば、ＶＭｗａｒｅ（登録商標）、ＸＥＮ（登録商標）、Ｌｉｎｕｘ（登録商標）のＫＶＭ（「カーネルベースの仮想マシン」）、あるいはユーザーモードＬｉｎｕｘなどの仮想化技術により、１台の物理的な計算機によってホストされる１つもしくは複数の仮想マシンを各ユーザーに提供することにより、１台の物理的な計算機を複数のユーザー間で共有できるようになった。かかる各々の仮想マシンは、ユーザーに、ユーザー自身が所与のハードウェア計算リソースの唯一のオペレータであり管理者であるという錯覚を与えつつ、様々な仮想マシン間でのアプリケーションの分離およびセキュリティも提供する別個の論理計算システムとしての役割を果たすソフトウェアシミュレーションである。
【発明の概要】
【０００４】
移行元である第１のコンピュータネットワーク全体を遠隔地にある移行先である第２のコンピュータネットワークに動的および段階的に移行するなどの目的で、２つ以上のコンピュータネットワークの使用中に、それらのコンピュータネットワーク間で計算ノードを動的に移行する能力を提供するための技法が記載される。例えば、第１のコンピュータネットワークは、１つもしくは複数の物理的に接続されたコンピュータネットワークを含んでもよく、一方で第２のコンピュータネットワークは、離れた地理的位置にある（例えば、リモートユーザーが利用できるネットワークアクセス可能なサービスの制御下にある）仮想コンピュータネットワークであってもよい。提供された能力は、第１のコンピュータネットワークと第２のコンピュータネットワークとの間の通信を、前記様々な計算ノードに対して透過的な方法で転送するなどのようにして、第１のコンピュータネットワークの計算ノードのサブセットがリモートの移行先である第２のコンピュータネットワークに移行される間に移行元である第１のコンピュータネットワークの動作継続を簡便化することをさらに含んでもよい。
【図面の簡単な説明】
【０００５】
【図１Ａ】コンピュータネットワーク計算ノードを動的に移行することを伴う対話の例示的実施形態を図示するネットワークダイアグラムである。
【図１Ｂ】コンピュータネットワーク計算ノードを動的に移行することを伴う対話の例示的実施形態を図示するネットワークダイアグラムである。
【図２】コンピュータネットワーク計算ノードを動的に移行するための能力を提供するにあたって使用する相互接続された計算システムの例示的実施形態を図示するネットワークダイアグラムである。
【図３】コンピュータネットワーク計算ノードを動的に移行するための能力を提供するのに適した計算システム例を図示するブロック図である。
【図４Ａ】構成可能なネットワークサービスマネージャルーチンの例示的実施形態の流れ図である。
【図４Ｂ】構成可能なネットワークサービスマネージャルーチンの例示的実施形態の流れ図である。
【図５】ネットワーク移行マネージャルーチンの例示的実施形態の流れ図である。
【図６】ゲートウェイ装置のルーチンの例示的実施形態の流れ図である。
【発明を実施するための形態】
【０００６】
コンピュータネットワークの使用中に、コンピュータネットワーク間で、コンピュータネットワークと関連付けられたユーザーまたはその他のエンティティに代わるなどのようにして、計算ノードを動的な移行を簡便化する能力を提供するための技法が開示される。少なくともいくつかの実施形態では、提供された能力が、第１のコンピュータネットワークの複数の計算ノードの各々を、例えば、遠隔地における移行先である第２のコンピュータネットワークの一部である別個の計算ノードへと段階的に移行して、第１のコンピュータネットワークの使用中に第１のコンピュータネットワーク全体を遠隔地に動的な移行を簡便化することを含む。加えて、少なくともいくつかのかかる実施形態では提供された能力が、（例えば、第１のコンピュータネットワークの特定の計算ノードの移行が、第１のコンピュータネットワークの他の計算ノードにとって透過的となるように、他の計算ノードが、自身の間で通信を送り続けられるように、そして場合によっては、移行中の計算ノードにも通信を送り続けられるように、）様々なコンピュータネットワークの計算ノードに対して透過的な方法で第１のコンピュータネットワークと第２のコンピュータネットワークとの間で通信を転送するなどして、第１のコンピュータネットワークの計算ノードの第１のサブセットをリモートの移行先である第２のコンピュータネットワークに移行させながら、移行元である第１のコンピュータネットワークの動作継続を簡便化することをさらに含む。さらに、少なくともいくつかの実施形態では、第１のコンピュータネットワークおよび第２のコンピュータネットワークのうちの１つが、第１の地理的位置で物理的に接続されたコンピュータネットワーク（例えばＬＡＮ、すなわちローカルエリアネットワーク）であってよく、その一方で、移行元である第１のコンピュータネットワークが第１のエンティティの制御下にある物理的に接続されたコンピュータネットワークであり、かつ、移行先である第２のコンピュータネットワークが、第１のエンティティが顧客である料金に基づくネットワークアクセス可能なサービスによって第１のエンティティに提供されるリモートの仮想コンピュータネットワークである場合などに、第１および第２のコンピュータネットワークの他方が、（例えば、リモートユーザーが利用できるネットワークアクセス可能なサービスの制御下にある）リモートの第２の地理的位置に提供された仮想コンピュータネットワークであってもよい。動的にコンピュータネットワーク計算ノードを移行するための様々な提供された能力に関連するさらなる詳細については後述する。加えて、少なくともいくつかの実施形態で、記載されている技法のうちの一部もしくは全部が、以降でさらに詳しく記載するとおり、ネットワーク移行マネージャ（「ＮＭＭ」）モジュールの一実施形態によって自動的に実行される。
【０００７】
上記のとおり、少なくともいくつかの実施形態では、ＮＭＭモジュールの一実施形態が、移行元である第１のコンピュータネットワークの一部またはすべての計算ノードを、移行元のコンピュータネットワークから離れたところにある移行先の仮想コンピュータネットワークなど、別個の移行先である第２のコンピュータネットワークへと動的に移行することを自動的に簡便化する。いくつかのかかる実施形態では、ＮＭＭモジュールが、クライアントが使用する仮想コンピュータネットワークも提供するネットワークアクセス可能なサービスの一部である場合などに、ＮＭＭモジュールが移行先である第２のコンピュータネットワークと統合されているか、あるいは別の方法で関連付けられていてもよく、移行先である第２のコンピュータネットワークは、提供された仮想コンピュータネットワークの１つである。他の実施形態では、代わりに、ＮＭＭモジュールが、移行元である第１のコンピュータネットワークと統合されているかまたは別の方法で関連付けられていてもよく（例えば、第１のコンピュータネットワークが、かかるネットワークアクセス可能なサービスによって提供される仮想コンピュータネットワークである場合）、移行元および移行先のコンピュータネットワークのどちらとも関連付けられていなくてもよい（例えば、ＮＭＭモジュールが、動的なコンピュータネットワークの移行を簡便化する能力を提供する別個のサービスの一部である場合）。
【０００８】
加えて、少なくともいくつかの実施形態では、第１のコンピュータネットワークの使用中に、移行元である第１のコンピュータネットワークの一部またはすべての計算ノードを別個の移行先第２のコンピュータネットワークへと動的に移行することを簡便化することが、動的に移行している間に第１のコンピュータネットワークと第２のコンピュータネットワークとの間の対話を管理することを含む。具体的には、第１のコンピュータネットワークおよび第２のコンピュータネットワークの一方または両方にあるゲートウェイ装置は、第１のコンピュータネットワークと第２のコンピュータネットワークとの間の接続（例えば、ＶＰＮ接続などプライベートおよび／または安全な接続）を維持し、かつ、第１のコンピュータネットワークと第２のコンピュータネットワークとの間の対話を管理するように構成されてもよい。例えば、第１のコンピュータネットワーク上の発信側の計算ノードが、以前は第１のコンピュータネットワークの一部であったが、第２のコンピュータネットワーク上の別個の代替計算ノードに移行した対象移行先計算ノードへのネットワーク通信を開始した場合、第１のコンピュータネットワークおよび第２のコンピュータネットワーク上のゲートウェイ装置は、発信側の計算ノードと移行先の代替計算ノードとに対して透過的な方法で第２のコンピュータネットワーク上の代替計算ノードに通信を転送するように対話してもよい。同様に、代替計算ノードによって送り返されるあらゆる応答通信は、転送された応答通信が第１のコンピュータネットワークの一部としての本来の対象移行先計算ノードから来たかのような方法で、ゲートウェイ装置を介して第１のコンピュータネットワーク上の発信側の計算ノードへと逆の方法で転送して戻される。この方法では、第２のコンピュータネットワーク上の移行した代替計算ノード上で実行されているソフトウェアプログラムは、代替計算ノードが第１のコンピュータネットワークにもはや物理的に取り付けられていないということを認識しない場合がある。１つの例示的な例として、かかるゲートウェイ装置は、各々がローカルエリアネットワーク（例えば、ネットワーキング層の２つのプロトコルを使用して単一のブロードキャストドメインの一部として一般に通信を管理する物理的または仮想ローカルエリアネットワーク）の一部であり、かつこれをサポートしていてもよく、第１のかかるローカルエリアネットワーク上のゲートウェイ装置は、リモート計算ノードのハードウェアアドレス（例えば、ＭＡＣアドレス、すなわちメディアアクセスコントロールアドレス）を第１のローカルエリアネットワークに対するものと偽装することによって別の第２のローカルエリアネットワーク上のリモート計算ノードを表し、リモート計算ノードへと向けられた第１のローカルエリアネットワークからの通信を受信および処理する。加えて、ゲートウェイ装置は、（例えば、ｐｉｎｇリクエストやＳＮＭＰ（「シンプルネットワーク管理プロトコル」）クエリなどに応答するために、）コンピュータネットワークの計算ノードへの動的な移行を簡便化することの一部として、他の状況で他の動作を実行するようにさらに構成されてもよい。
【０００９】
一実施形態におけるかかるゲートウェイ装置の動作についてのさらなる詳細を伴う例示的な例として、移行元である第１のローカルエリアコンピュータネットワークの第１の計算ノードが、第１のコンピュータネットワークに対する拡張として動作するように構成されているリモートの移行先である第２のコンピュータネットワークに移行される状況を検討し、これは具体的には、第２のコンピュータネットワークの別個の第２の計算ノードが、第１のローカルエリアコンピュータネットワークの一部として第１の計算ノードを代替し、かつ第１の計算ノードによって以前に使用された第１のコンピュータネットワークの第１のネットワークアドレス（例えば、ＩＰアドレス、すなわちインターネットプロトコルアドレス）を使用し始めるような移行を伴う。第１の計算ノードから第２の計算ノードへの動的な移行を簡便化することの一部として、第１のゲートウェイ装置が自らを第１のコンピュータネットワーク上の第１のネットワークアドレスと関連付けることによるなどのように、第１のコンピュータネットワークの一部である第１のゲートウェイ装置が、第１のコンピュータネットワーク上の他の計算ノードに対してリモートの第２の計算ノードを表すように構成されてもよい。例えば、第１のゲートウェイ装置は、第１のネットワークアドレスを含む無償ＡＲＰ（「アドレス解決プロトコル」）メッセージを発行したり、あるいは第１のコンピュータネットワーク上の他の装置を更新して、第１のゲートウェイ装置を対象とする通信を第１のネットワークアドレスに転送したりしてもよい。続いて、第１のコンピュータネットワーク上の別の計算ノードが第１の計算ノードを対象とした第１のネットワークアドレスに通信を送ると、その通信は、第１のコンピュータネットワークを経て第１のゲートウェイ装置に向けられる。その後第１のゲートウェイ装置は、移行された第１の計算ノードに代わって第２の計算ノードへの配送のために、例えばルーターと同様の方法でリモートの第２のコンピュータネットワークへと通信を転送してもよい。かかる通信転送は、第１のゲートウェイ装置から転送された通信を受信する第２のコンピュータネットワーク上の第２のゲートウェイ装置によって簡便化されてもよく、第２のコンピュータネットワークを経てその通信をさらに転送する。さらに、少なくともいくつかの実施形態で、転送された通信を、ルーター装置で行われることになるのと同じ方法で改変しない（例えば、その通信の生存時間ホップ値を修正しない）ことによって、あるいは発信側の計算ノードや第１のコンピュータネットワークなどに対応する発信者のネットワークアドレスおよび／または発信者のハードウェアアドレスの偽装情報を使用して、転送された通信を第２のコンピュータネットワークを経て送ることによって、第１および第２のゲートウェイ装置が、第１および第２のコンピュータネットワークの計算ノードに対して透過的な方法で通信を転送してもよい。このようにして、第２の計算ノードには、転送された通信が、発信側の計算ノードから、両計算ノードが属する単一のローカルエリアコンピュータネットワークを介して入来するかのように認識される。
【００１０】
加えて、移行元である第１のコンピュータネットワークからリモートの移行先である第２のコンピュータネットワークへの計算ノードの移行は、さまざまな実施形態においてさまざまな方法で実行されてもよい。例えば、いくつかの実施形態では、かかる移行が行われるまで第２のコンピュータネットワークの１つもしくは複数の計算ノードが別法により使用されない場合などのように、第２のコンピュータネットワークは、第１のコンピュータネットワークの１つもしくは複数の計算ノードを代替する目的で各々利用可能な１つもしくは複数の計算ノードを移行前に含めるように構成されている物理的コンピュータネットワークであってもよい。他の実施形態では、仮想コンピュータネットワークが、クライアントに提供される仮想コンピュータネットワークで使用する多数の利用可能な計算ノードを提供するネットワークアクセス可能なサービスによって提供されている場合などのように、第２のコンピュータネットワークが、第１のコンピュータネットワーク計算ノードの移行時に計算ノードが動的に追加され得る仮想コンピュータネットワークであってもよい。加えて、いくつかの実施形態および状況では、移行完了後に新しい物理計算システムが同じ論理計算ノードとしての役割を果たすように、計算ノードの移行が、計算ノードで実行されているソフトウェアプログラムおよび／または実行中のソフトウェアプログラムによって使用されたデータのうちの一部もしくは全部を、（例えば、新しい計算システム上のそれらのソフトウェアプログラムの別コピーを実行したり、データを新しい計算システムにコピーしたりするなどにより、）異なる地理的位置にある新しい物理計算システムに移動することを含んでもよく、一方で、他の実施形態では、移行する計算ノードが異なる地理的位置へと物理的に移行され、新しいコンピュータネットワークに取り付けられてもよい。加えて、計算ノードの移行が異なる位置での新しい計算システムの使用を伴う場合には、いくつかの実施形態で、ＮＭＭモジュールが移行を簡便化するための何らかの変更（例えば、通信の転送を伴うゲートウェイ装置に対する何らかの変更）を開始する前に、新しい計算システムが移行中の計算ノードの代替計算ノードとして動作するように構成されてもよく、それにより構成されたゲートウェイ装置が、即座のあるいは実質的に即座の様態で代替計算ノードへの通信の転送を開始するようにしてもよい。他の実施形態および状況では、代替計算ノードが移行開始後の一定期間（例えば、秒、分、時間など）にわたって利用不可となってもよく、その場合には、ゲートウェイ装置が、１つもしくは複数のタイプの処理を実行して移行を簡便化してもよい（例えば、代替計算ノードがそれらを受信する用意ができ、通信が配送されなかったことを示すエラーを発行して、後で通信の再送をトリガーするまで、計算ノードに送られたキューの通信が移行されるなど）。
【００１１】
さらに、移行する特定の計算ノードの判断が、様々な方法で行われてもよい。例えば、いくつかの実施形態では、計算ノードが移行する、移行元のコンピュータネットワークと関連付けられたユーザーが、移行する特定の計算ノードを選択し、その後その選択をＮＭＭモジュールに通知してもよく、さらに、いくつかのかかる実施形態で、計算ノードの移行に関わる処理を、（例えばＮＭＭモジュールにその選択を通知する前に）手動で実行してもよい。他の実施形態では、ＮＭＭモジュールは、（例えば、代替計算ノードをプロビジョニングする、ソフトウェアプログラムを実行する、データコピーするなどして、）移行する計算ノードの自動選択に、および／または選択された計算ノードの自動移行に関与してもよい。例えば、少なくともいくつかの実施形態で、ユーザーおよび／またはＮＭＭモジュールが、（例えば、移行する計算ノードのサブセットを選択する、計算ノードのうちの一部もしくは全部を移行する順序を選択するなどのために、）移行する特定の計算ノードを評価および選択するに当たって使用する基準を画定してもよい。かかる既定基準は、（例えば、１つもしくは複数の領域で過剰または過少に利用されている計算ノードを特定するために）ユーザーが指定した、および／または自動的に学習したしきい値または他のタイプの制約を使用することによるなどのように、例えば、移行目的で選択された計算ノード、および／または移行された計算ノードの代替計算ノードとして使用される別個の計算ノードの現在のステータスまたは他の特徴に基づいてもよい。加えて、かかる基準は、現在の計算ノードの稼働基準および／または他の要因を含め、さまざまな要因のうちの１つもしくは複数に関連してもよい。例えば、ＮＭＭモジュールが、その既定基準で使用してもよい要因の非排他的にリストは、各計算ノードの可用度、各計算ノードによって受信および／または処理されたリクエストの量、各計算ノードのネットワーク利用度、各計算ノードのネットワーク遅延度、各計算ノードのリクエストに応答する際の遅延度、各計算ノードのプロセッサ利用度、各計算ノードのメモリ利用度、各計算ノードのＩ／Ｏ（「入力／出力」）帯域幅利用度、各計算ノードと現在対話しているか、あるいは別の方法で各計算ノードを使用している他の計算ノード（またはそれらの計算ノードのソフトウェアアプリケーション）の数、現時点および／または将来時点における１つもしくは複数のアクティビティのために１つもしくは複数の計算ノードを使用することと関連付けられた金銭的負担、現時点および／または将来時点における１つもしくは複数のアクティビティのために１つもしくは複数の計算ノードを使用することと関連付けられた非金銭的負担（金銭的用語で表されてもよい環境負担など）、各計算ノードの要因に対する、１つもしくは複数の他の要因に対する現在および／または将来需要に関するユーザー指定の予測された度合い、各計算ノードの要因のうち、１つもしくは複数の他の要因に対する現在および／または将来需要に関する、自動的に学習されたか、もしくは別の方法により予測された度合いなど、のうちの１つもしくは複数を含む。加えて、ＮＭＭモジュールは、様々な実施形態において、例えば様々な計算ノードとネットワーク動作特性とをモニタリングするなど様々な方法で、かかる基準および他の要因に関する現在値および他の情報を収集するか、または他の方法で取得してもよい。
【００１２】
様々な実施形態において、特定の計算ノードを移行するための判断が様々な理由および様々な方法で行われてもよい。例えば、いくつかの実施形態では、計算ノードの移行が、代替計算ノードによって、および／またはその代替計算ノードが属する移行先のコンピュータネットワークによって提供される強化されたレベルのサービスまたは能力を取得する目的で、例えば有料で開始されてもよい。一例を挙げると、いくつかの実施形態で、移行先のコンピュータネットワークが、異なるレベルのサービス品質や異なる計算ノードでの異なるタイプの能力など差別化された能力を、（例えば有料で）提供してもよく、特定の代替計算ノードが、代替計算ノードのかかる能力に基づいて（例えば、ユーザーリクエストまたは選択に基づいて、移行元のコンピュータネットワークなどと関連付けられたユーザーまたはその他のエンティティに対するＮＭＭモジュールによる自動提案に基づいて、など）選択されてもよい。他の実施形態では、計算ノードが、移行元のコンピュータネットワーク全体の移行の一部として移行されてもよく、計算ノードの移行順序が他の方法（例えば、ランダムな方法や、業務上の検討事項に基づいて関連ユーザーによって）で選択されてもよい。
【００１３】
上記のとおり、ＮＭＭモジュールが、リモートネットワークにアクセス可能なサービスによって提供されるリモートコンピュータネットワークまたは他の計算ノードを使用して、移行元である第１のコンピュータネットワークの一部またはすべての計算ノードの動的な移行を簡便化するように構成されてもよい。かかるリモートコンピュータネットワークまたは他のリモート計算ノードへのアクセスを取得するために、少なくともいくつかの実施形態で、ユーザー（またはユーザーに代わるＮＭＭモジュール）が、自らに代わってサービスが提供するコンピュータネットワークをユーザーが構成できるようにするリモートネットワークにアクセス可能なサービスとパブリックネットワークを経て対話してもよく、ここで、構成されたコンピュータネットワークは、ネットワークアクセス可能なサービスによって、あるいはそのサービスの制御下で維持される複数の計算ノードを含む。かかるコンピュータネットワークを構成した後、ユーザーおよび／またはＮＭＭモジュールは、１つもしくは複数の遠隔地から、ネットワークアクセス可能なサービスによって提供されているコンピュータネットワークと対話してもよく、提供されたコンピュータネットワークの計算ノードでプログラムを実行し、提供されたコンピュータネットワークに追加的な計算ノードを動的に追加するなどしてもよい。少なくともいくつかの実施形態では、ネットワークアクセス可能なサービスによって提供されたコンピュータネットワークのうちの少なくとも一部は、提供されたコンピュータネットワークが代わりに作成および構成された、ネットワークアクセス可能なサービスのユーザーによって（あるいは、アクセスがそのために明示的に構成されている他者によって）のみ各々アクセス可能であるプライベートコンピュータネットワークであってもよい。例えば、ネットワークアクセス可能なサービスは、クライアントに提供されたコンピュータネットワークへのプライベートアクセスを、クライアントの１つもしくは複数のリモート計算システムと提供されたコンピュータネットワークとの間での安全なＶＰＮ（「仮想プライベートネットワーク」）接続または他のプライベート接続を可能にするなどして、ネットワークアクセス可能なサービスのクライアントであるユーザーに提供してもよく、あるいは、他のセキュリティおよび／または認証技法を使用して、クライアントが、提供されたコンピュータネットワークとプライベートかつ／または安全な方法でリモートで対話できるようにしてもよい。加えて、少なくともいくつかの実施形態で、ネットワークアクセス可能なサービスによって提供されたコンピュータネットワークのうちの少なくとも一部が、クライアントの既存のリモートプライベートコンピュータネットワークに対するプライベートコンピュータネットワーク拡張（例えば、企業エンティティであるクライアントのリモート企業ネットワークなど）などのような、クライアントの既存のコンピュータネットワークに対する拡張となるようにクライアントによって各々作成されかつ構成されている。さらに、少なくともいくつかの実施形態および状況で、ネットワークアクセス可能なサービスによって提供されたコンピュータネットワークが、仮想コンピュータネットワークであってもよく、他の実施形態では、提供されたコンピュータネットワークが、物理的に接続されたコンピュータネットワークであってもよい。ネットワークアクセス可能なサービスによって提供されたリモートコンピュータネットワークの確立と使用とに関連したさらなる詳細を以下に示す。
【００１４】
様々な提供された能力を実装するための記載された技法を使用することにより、さまざまな状況でさまざまな利点が生まれる。例えば、いくつかの状況では、ユーザーまたはその他のエンティティが、１つもしくは複数の地理的位置に複数の計算ノードを有する１つもしくは複数の物理的ネットワークを維持してもよいが、それらの計算ノードのうちの一部もしくは全部を、（保守またはアップグレードを実行するなどの目的で）一時的に遠隔地に移行し、その後、一時期間の終了後に１つもしくは複数の物理的ネットワークにその移行して逆に戻す必要がある。他の状況では、ユーザーまたはその他のエンティティが、１つもしくは複数の地理的位置にある１つもしくは複数の物理的ネットワークの一部またはすべての計算ノードを、（例えば、コストおよび／または能力上の利点を得るなどの目的で）遠隔地に恒久的に移行したい場合もある。さらに、１つもしくは複数の地理的位置にある１つもしくは複数の物理的ネットワークの一部またはすべての計算ノードを遠隔地へと一時的または恒久的に移行することは、迅速に（例えば、数分あるいは数時間の手段にわたる）、あるいはより徐々に（例えば、数日、数週間、あるいは数ヶ月の期間にわたる）様々な方法で実行されてもよく、かかる移行は、移行する物理的ネットワークの１つもしくは複数の計算ノードを繰り返し選択することと、別法によりそれらの選択された計算ノードに送信されていたであろう新しい通信を、代わりにリモート仮想ネットワークの対応する代替計算ノードに送信されるように方向付けることと、任意選択で、選択された計算ノードの使用を、直ちに、あるいは指定された能力（例えば進行中のセッションや、移行目的で選択される前に関与していた他のネットワーク対話など）の処理が終わった後に停止することを含んでもよい。記載された技法および提供された能力が他にもさまざまな方法でさらに使用される場合があることが理解されよう。
【００１５】
図１Ａは、記載された技法が、コンピュータネットワーク間でのコンピュータネットワークの計算ノードの動的な移行を簡便化するための能力を提供する目的で使用されてもよい状況の例を図示するネットワークダイアグラムである。本実施例では、動的な移行は、クライアントの既存のプライベートコンピュータネットワークに対するネットワーク拡張として作成および構成されるリモートの仮想コンピュータネットワークなど、クライアントが構成可能なネットワークを提供する例示的なネットワークアクセス可能なサービスから、リモートの仮想コンピュータネットワークである移行先のコンピュータネットワークを使用する。ただし他の実施形態では、動的な移行が（例えば、別個のコンピュータネットワークの一部であるなど、ユーザーの他の利用可能な計算ノードを使用して）他の方法で実行されてもよい。
【００１６】
図１Ａに示された例では、例示的な構成可能なネットワークサービス（「ＣＮＳ」）１０５が、ＣＮＳ  １０５によってクライアントに提供される仮想コンピュータネットワークにクライアントがアクセスしかつこれを使用できるようにする１つもしくは複数のパブリックネットワーク１００を経て（インターネットなどを経て、）クライアント（図示せず）に機能性を提供し、これにより、リモートクライアントは、ＣＮＳ  １０５を使用して、それらのリモートの既存プライベートコンピュータネットワーク１３０の能力を動的に改変し、パブリックネットワーク１００を経てクラウド計算技法を使用する新規に提供された仮想コンピュータネットワーク１２０へと拡張することができる。加えて図示例では、以下にさらに詳しく記載されているとおり、１つもしくは複数のＮＭＭモジュール１２５が、ＣＮＳ  １０５よって提供された機能性をさらに使用して、動的なコンピュータネットワーク計算ノード移行機能性を簡便化する。例えば、ＣＮＳ  １０５により、提供されたコンピュータネットワークを動的に改変する（例えば、提供されたコンピュータネットワークから計算ノードを追加したり削除したりする）ことができる場合や、特定の提供されたコンピュータネットワークに、ＮＭＭロードバランサモジュール１２５によって代替計算ノードとして一時的または恒久的に使用することが可能である計算ノードがすでに含まれている場合などには、ＮＭＭモジュール１２５よって提供されたかかる動的なコンピュータネットワーク計算ノード移行機能性が、ＣＮＳ  １０５によって簡便化されてもよい。
【００１７】
具体的には、図１Ａでは、いくつかのクライアントが、パブリックネットワーク１００を経てＣＮＳ  １０５のマネージャモジュール１１０と対話して、リモートの既存クライアントプライベートネットワーク１３０に対する様々なプライベートコンピュータネットワーク拡張１２０を作成および構成し、コンピュータネットワーク拡張１２０のうちの少なくとも一部は、パブリックネットワーク１００を経て（例えば、相互接続１００ａと１００ｂとを経て確立されたＶＰＮ接続を介して、あるいは他のタイプのプライベート相互接続を介して）１つもしくは複数の対応するクライアントプライベートネットワーク１３０からのプライベートアクセスを可能にするように構成されている。本実施例では、提供されたコンピュータネットワーク１２０の各々が、（例えば、ＣＮＳ  １０５よって提供されたいくつかの計算ノードからの）１つもしくは複数の計算ノード１２４と、対応するリモートのクライアントプライベートネットワーク１３０との対話を簡便化するためにゲートウェイ装置１２２としての役割を果たすように構成されている少なくとも１つの計算装置と、を含む。例示的なリモートのクライアントプライベートネットワーク１３０の各々も同様に、複数の計算ノード１３４と、対応する提供されれたコンピュータネットワーク１２０との対話を簡便化する１つもしくは複数のゲートウェイ装置１３２と、を含む。かかるゲートウェイ装置１３２は、例えば、対応する提供されたコンピュータネットワーク１２０をクライアントプライベートネットワーク１３０に対する拡張として確立するときに、（例えば、ＣＮＳ  １０５および／またはＮＭＭモジュール１２５の制御下で）クライアントプライベートネットワーク１３０に追加されてもよく、あるいは、（例えば、計算ノード１３４がパブリックネットワーク１００と行った他の対話を管理するために）以前にクライアントプライベートネットワーク１３０の一部であってもよく、対応する提供されたコンピュータネットワーク１２０との更なる対話を実行するように構成されていてもよい。加えて、本実施形態では、マネージャモジュール１１０は、ＣＮＳ  １０５の他の様々なモジュール（図示せず）および様々な計算ノードと、ＣＮＳ  １０５によってプライベートコンピュータネットワーク拡張１２０を提供する目的で使用されるネットワーキング装置（図示せず）と連動するなどして、ＣＮＳ  １０５の機能性をリモートクライアントに提供するのを支援する。少なくともいくつかの実施形態では、ＣＮＳマネージャモジュール１１０は、ＣＮＳ  １０５の１つもしくは複数の計算システム上で実行してよく、リモート計算システムがプログラム的にモジュール１１０と対話して、（例えば、プライベートネットワーク拡張１２０を作成し、構成し、かつ／または使用を開始するなどの目的で）クライアントに代わってＣＮＳ  １０５の一部またはすべての機能性にアクセスできるようにする１つもしくは複数のＡＰＩ（「アプリケーションプログラミングインタフェース」）を提供してもよい。加えて、少なくともいくつかの実施形態では、クライアントは、代わりに（例えば、モジュール１１０よって提供されたグラフィカルユーザーインタフェース��介して）モジュール１１０と手動で対話して、一部またはすべてのかかる動作を実行してもよい。
【００１８】
ＮＭＭモジュール１２５の各々は、それらの関連付けられたクライアントプライベートネットワークの１つもしくは複数の計算ノード１３４の、関連付けられた提供されたコンピュータネットワーク１２０の１つもしくは複数の対応する代替計算ノード１２４への動的かつ段階的に移行を簡便化するように、クライアントプライベートネットワーク１３０のうちの１つもしくは複数と関連付けてもよい。上記のとおり、クライアントプライベートネットワーク１３０のうちの１つの計算ノードが、関連付けられた提供されたコンピュータネットワーク１２０にある代替計算ノードに移行するときに、関連付けられたＮＭＭモジュール１２５は、移行を簡便化する様々な行動をとってもよい。例えば、ＮＭＭモジュール１２５は、コンピュータネットワーク１３０および１２０のゲートウェイ装置１３２および１２２を、それぞれ、移行された計算ノードのネットワークアドレスに送信される通信を管理するように構成してもよく、これにより、構成されたゲートウェイ装置１３２は、計算ノード１３４のうちの１つからそのネットワークアドレスへの通信を、構成されたゲートウェイ装置１２２へと転送し、代替計算ノード１２４へとさらに転送し、その一方で、計算ノード１２４のうちの別の１つからそのネットワークアドレスへの通信は、構成されたゲートウェイ装置１２２および１３２による一切の行動なしに代替計算ノード１２４に直接転送される。
【００１９】
さらに、いくつかの実施形態で、ＮＭＭモジュール１２５は、計算ノード１３４のうちの一部もしくは全部と対話して、移行する計算ノード１３４を選択するに当たって使用するそれらの動作に関する現在のステータス情報を取得したり、かつ／または、モジュール１１０を介して提供されたコンピュータネットワーク１２０と対話して、代替計算ノード１２４の動作を追加、プロビジョニング、および／または開始したりするなどして、移行する計算ノード１３４を選択すること、および／または対応する代替ノード１２４への移行を実行することに関する追加アクティビティを自動的に実行してもよい。さらに一般的には、クライアントプライベートネットワーク１３０の一部またはすべての計算ノード１３４から、対応する提供されたコンピュータネットワーク１２０への動的な移行を簡便化することの一部として、ＮＭＭモジュール１２５は、ＣＮＳ  １０５との対話をさらに実行して、クライアントプライベートネットワーク１３０から計算ノード１３４を移行するための移行先のコンピュータネットワークとして使用される提供されたコンピュータネットワーク１２０の作成を開始すること、
代替計算ノードとして使用するなどの目的で、クライアントプライベートネットワーク１３０のための既存の提供されたコンピュータネットワーク１２０に１つもしくは複数の計算ノードを追加することを開始すること、
既存の提供されたコンピュータネットワーク１２０のうちの１つもしくは複数の既存の計算ノードをクライアントプライベートネットワーク１３０の代替計算ノードとして使用することを開始することなど、のうちの１つもしくは複数の処理を実施してもよい。いくつかの実施形態では、移行された各々の計算ノード１３４は、別個の計算ノード１２４によって代替され、一方他の実施形態では、単一の計算ノード１２４は、複数の移行された計算ノード１３４の代替計算ノードとしての役割を果たしてもよく、かつ／または単一の移行された計算ノード１３４が、複数の対応する代替計算ノード１２４を有してもよい。
【００２０】
加えて、いくつかの実施形態で、ＮＭＭモジュール１２５は、クライアントプライベートネットワーク１３０から、提供されたコンピュータネットワーク１２０へと一時的に移行された計算ノード１２４の逆移行として、あるいは、仮想コンピュータネットワーク１２０から、物理的に提供されたクライアントネットワーク１３０への永続的な一方向の移行として、提供されたコンピュータネットワーク１２０の計算ノード１２４をクライアントプライベートネットワーク１３０の代替計算ノード１３４へと動的に移行するのをさらに簡便化してもよい。同様に、いくつかの実施形態で、ＮＭＭモジュール１２５は、提供されたコンピュータネットワーク１２０の計算ノード１２４の、別の提供されたコンピュータネットワーク１２０の代替計算ノード１２４へ動的な移行、および／またはクライアントプライベートコンピュータネットワーク１３０の計算ノード１３４の、別のクライアントプライベートコンピュータネットワーク１３０の代替計算ノード１３４への動的な移行をさらに簡便化してもよい。
【００２１】
本実施例では、ＮＭＭモジュール１２５が、接続１４５を介してパブリックネットワーク１００経由で任意選択でアクセス可能であるものとして図示されているが、ＮＭＭモジュール１２５のうちの一部もしくは全部が、代わりに特定の関連付けられたクライアントプライベートネットワーク１３０の一部として、および／またはＣＮＳ  １０５の一部として各々位置してもよい。例えば、特定のクライアントプライベートネットワーク１３０の一部であるＮＭＭモジュール１２５が、そのクライアントプライベートネットワークを提供するエンティティによって取得およびインストールされるのに対し、ＣＮＳ  １０５によって提供されるＮＭＭロードバランサモジュール１２５は、動的な移行に使用される提供されたコンピュータネットワーク１２０のうちの１つもしくは複数をサポートするように構成されていてもよく、いくつかの状況では、それら１つもしくは複数の提供されたコンピュータネットワーク１２０の各々の一部であるように構成されてもよい。
【００２２】
図１Ａの実施例では、パブリックネットワーク１００が、例えば、インターネットなど別個の当事者によって運用されている可能性がある、連結されたネットワークの公的にアクセス可能なネットワークであってもよい。リモートのクライアントプライベートネットワーク１３０は、権限を持たないユーザーには部分的あるいは全面的にアクセス不可であり、かつクライアントの計算システムおよび／または他のネットワーク接続された装置を含む企業ネットワークまたは他のプライベートネットワーク（家庭や大学など）など、１つもしくは複数の既存のプライベートネットワークを各々含んでもよい。図示例では、提供されたネットワーク拡張１２０は複数の計算ノード１２４を各々含み、そのうちの少なくとも一部はＣＮＳ  １０５の制御によって、あるいはＣＮＳ  １０５の制御下で提供され、提供されたネットワーク拡張１２０の各々は、提供先クライアントによって様々な方法で構成されてもよい。図示された実施形態におけるネットワーク拡張１２０の各々は、自らを作成したクライアントによってのみアクセス可能であるプライベートコンピュータネットワークであってもよいが、他の実施形態では、ＣＮＳ  １０５よってクライアントに提供された少なくともいくつかのコンピュータネットワークは、公的にアクセス可能であってもよく、かつ／または他の既存のコンピュータネットワークに対する拡張ではないスタンドアロンのコンピュータネットワークであってもよい。同様に、本実施例における提供されたコンピュータネットワーク１２０は、プライベートネットワークであるリモートクライアントコンピュータネットワーク１３０に対する拡張であるのに対し、他の実施形態では、提供されたコンピュータネットワーク１２０は、プライベートネットワークでないクライアントコンピュータネットワーク１３０に対する拡張であってもよい。
【００２３】
例えば、クライアントに提供されたリモートクライアントプライベートコンピュータネットワーク１３０と対応するプライベートコンピュータネットワーク拡張１２０との間でのプライベートアクセスは、それらの間でＶＰＮ接続または他のプライベート接続を確立するなどして、プライベートな方法でパブリックネットワーク１００を経た相互通信を許可する様々な方法で可能であってよい。例えば、ＣＮＳ  １０５は、そのゲートウェイ装置１２２および／または他の計算システム上での適切な構成を自動的に実行して、ＣＮＳ  １０５（ソフトウェアおよび／またはハードウェアＶＰＮメカニズムなど）によってホストされた１つもしくは複数のＶＰＮメカニズムを自動的に構成するなどして、クライアントの特定のプライベートネットワーク拡張１２０へのＶＰＮアクセスを可能にしてもよく、かつ／または、クライアントに適当な構成情報（証明書、アクセスポイント、電子配送によるソフトウェアＶＰＮプログラム、物理的な配達によるハードウェアＶＰＮ装置、および／または他のパラメータ）を自動的に提供して、リモートのクライアントプライベートネットワーク１３０でホストされたＶＰＮメカニズムがＶＰＮアクセスを確立できるようにしてもよい。かかるＶＰＮ接続は、対応するゲートウェイ装置１２２と１３２との間で直接確立されてもよく、あるいは、代わりに、かかるゲートウェイ装置が、他の計算システムによって維持されるＶＰＮ接続を使用してもよい。ＶＰＮアクセスが適切に有効化および／または構成された後、ＩＰｓｅｃ（「インターネットプロトコルセキュリティ」）または他の適当な通信技術を使用してクライアントによって開始されるなどのように、リモートのクライアントプライベートネットワークとプライベートネットワーク拡張との間でＶＰＮ接続が確立されてもよい。例えば、いくつかの実施形態では、ＩＰｓｅｃベースのＶＰＮ接続の代わりなどのように、データ送信のためにＭＰＬ（「マルチプロトコルラベルスイッチング」）を使用するネットワークとの、あるいはそのネットワーク間で、ＶＰＮ接続または他のプライベート接続が確立されてもよい。
【００２４】
加えて、図示された実施形態では、リモート計算システムに対して、リモートのクライアントプライベートネットワーク１３０上の計算ノード１３４などを含む、パブリックネットワーク１００を経て、様々なネットワークアクセスが可能なリモートのリソースサービス１４０が利用可能である。リソースサービス１４０は、リソースサービス１４０のうちの少なくとも一部が様々な種類のコンピュータ関連リソースへのアクセスを伴うリモート計算ノードを提供するなどの目的で、リモート計算ノードに様々な機能性を提供してもよい。さらに、ＣＮＳ  １０５によって提供されるプライベートネットワーク拡張１２０のうちの少なくとも一部が、リモートのリソースサービス１４０のうちの少なくとも一部へのアクセスを提供するように構成されてもよく、その提供されたアクセスは、任意選択で、プライベートネットワーク拡張１２０の一部である仮想接続１１５を介してローカルに提供されるものとしてプライベートネットワーク拡張１２０の計算ノード１２４に認識される。ただし、リモートのリソースサービス１４０との実際の通信は、パブリックネットワーク１００を経て（例えば、相互接続１００ｂおよび１００ｃを介して）行われてもよい。加えて、少なくともいくつかの実施形態では、ソフトウェアプログラムおよび／または他のデータを動的な移行の一部として一時的に記憶するなどの目的で、ＮＭＭモジュール１２５は、リソースサービス１４０の１つもしくは複数を計算ノードの動的な移行の一部として使用するように構成されてもよい。
【００２５】
提供されたネットワーク拡張１２０は、クライアントによって様々な方法で各々構成されてもよい。例えば、少なくともいくつかの実施形態で、ＣＮＳ  １０５は、クライアントに提供されるネットワーク拡張と併用する目的で利用可能な複数の計算ノードを提供し、これにより、各々の提供されたネットワーク拡張１２０は、提供されたネットワーク拡張の一部としての使用に特化した、クライアントが構成したある数量の複数のかかる計算ノードを含んでもよい。特に、クライアントは、（例えば、ＣＮＳ  １０５よって提供されたＡＰＩとの１つもしくは複数のプログラム的な対話を介して）モジュール１１０と対話して、ある数量の計算ノードがクライアントに提供されたコンピュータネットワークに最初に含まれるように構成してもよい。加えて、少なくともいくつかのかかる実施形態では、提供されたコンピュータネットワークが（例えば、特定の計算ノード上で特定のプログラムの実行を開始または終了するよう指示することによって）クライアントによってすでに使用された後などに、（例えば、ＣＮＳ  １０５よって提供されたＡＰＩを有する１つもしくは複数のプログラム的な対話を介して）計算ノードを後で動的に追加したり、クライアントの提供されたコンピュータネットワークから削除したりしてもよい。さらに、ＣＮＳ  １０５は、少なくともいくつかの実施形態で、例えば、様々な性能特性（例えば、プロセッサ速度、利用可能なメモリ、利用可能な記憶装置）および／または他の能力を有する計算ノードなどのような、複数の異なるタイプの計算ノードを提供してもよい。その場合には、少なくともいくつかのかかる実施形態で、クライアントが、クライアントの提供されたコンピュータネットワークに含まれる計算ノードのタイプを指定してもよい。加えて、少なくともいくつかの実施形態で、クライアントが、（例えば、ＣＮＳ  １０５よって提供されたＡＰＩとの１つもしくは複数のプログラム的な対話を介して）モジュール１１０と対話して、クライアントの提供されたコンピュータネットワークのネットワークアドレスを構成してもよく、提供されたコンピュータネットワークがクライアントによってすでに使用された後などに、少なくともいくつかのかかる実施形態でクライアントの提供されたコンピュータネットワークのネットワークアドレスが後で動的に追加され、削除され、あるいは改変されてもよい。加えて、少なくともいくつかの実施形態で、クライアントが、（例えば、ＣＮＳ  １０５よって提供されたＡＰＩとの１つもしくは複数のプログラム的な対話を介して）モジュール１１０と対話して、クライアントの提供されたコンピュータネットワークのネットワークトポロジ情報を構成してもよく、少なくともいくつかのかかる実施形態で、例えば、提供されたコンピュータネットワークがクライアントによってすでに使用された後などに、提供されたコンピュータネットワークに対して、かかるネットワークトポロジ情報が後で動的に改変されてもよい。さらに、少なくともいくつかの実施形態で、クライアントが、（例えば、他の計算システム１３５および／またはコンピュータ関連リソースサービス１４０へのアクセスを制限または可能にするなどの目的でＣＮＳ  １０���よって提供されたＡＰＩとの１つもしくは複数のプログラム的な対話を介して）モジュール１１０と対話して、クライアントの提供されたコンピュータネットワークの様々なネットワークアクセス制約情報を構成してもよく、少なくともいくつかのかかる実施形態で、例えば、提供されたコンピュータネットワークがクライアントによってすでに使用された後などに、提供されたコンピュータネットワークに対して、かかるネットワークアクセス制約情報が後で動的に修正されてもよい。少なくともいくつかの実施形態では、ＮＭＭモジュール１２５が、それらのクライアントのクライアントプライベートネットワーク１３０の一部またはすべての計算ノードの動的な移行を簡便化するなどの目的で、モジュール１１０と対話して、提供されたコンピュータネットワーク１２０のかかる構成のうちの一部もしくは全部を特定のクライアントに代わって実行するよう同様に構成されてもよい。
【００２６】
様々な実施形態で、提供されたコンピュータネットワーク１２０のネットワークアドレスが様々な方法で構成されてもよい。例えば、現在構成中である特定の提供されたコンピュータネットワークが既存のリモートクライアントコンピュータネットワークに対する拡張である場合には、指定されたネットワークアドレスが、提供されたコンピュータネットワークの計算ノードに対して使用されるように、クライアントが、１つもしくは複数のアドレス範囲（例えば、クラスレスインタードメインルーティング（「ＣＩＤＲ」）アドレスブロック）または既存のリモートクライアントコンピュータネットワークによって使用されるネットワークアドレスのサブセットである他のグループのネットワークアドレスを指定してもよい。かかる構成されたネットワークアドレスは、いくつかの状況で、パブリックネットワーク１００上の計算システムから直接アドレス指定可能でない、仮想あるいはプライベートのネットワークアドレスであってもよく（例えば、既存のリモートクライアントコンピュータネットワークおよび対応する提供されたネットワーク拡張が、クライアントコンピュータネットワークおよびその提供されたネットワーク拡張を対象とするネットワークアドレス変換技法および／または仮想ネットワーキング技法を使用する場合）、一方、他の状況では、構成されたネットワークアドレスのうちの少なくとも一部が、パブリックネットワーク１００上の計算システムから直接アドレス指定可能であるパブリックネットワークアドレス（例えば、静的インターネット経路指定可能なＩＰアドレスであるか、あるいは他の不変のネットワークアドレスであるパブリックネットワークアドレスなど）であってもよい。他の実施形態では、ＣＮＳ  １０５が、ＣＮＳ  １０５によって利用可能なネットワークアドレスに基づく、提供されたコンピュータネットワークに対応するリモートの既存のコンピュータネットワークによって使用される関連ネットワークアドレスであるネットワークアドレスを選択することなどに基づく、などのように、少なくともいくつかの提供されたコンピュータネットワーク拡張のうちの少なくともいくつかの計算ノードに対して使用されるネットワークアドレスを自動的に選択してもよい。さらに、ＣＮＳ  １０５によって提供されたコンピュータネットワークのうちの２つ以上が、提供されたコンピュータネットワーク間の相互通信を可能にするように構成されている場合（例えば、単一組織内の異なる部門またはグループなどのように、２つ以上のコンピュータネットワークが単一の顧客に提供された場合、２つ以上のコンピュータネットワークが２つ以上の別個の顧客に提供された場合、など）、ＣＮＳ  １０５は、いくつかの実施形態で、様々な提供されたコンピュータネットワークに対して異なるネットワークアドレスを使用することなどによって、それらの提供されたコンピュータネットワークのうちの少なくともいくつかの計算ノードで使用されるネットワークアドレスを自動的に選択して相互通信を簡便化してもよい。加えて、ＣＮＳ  １０５が基盤ネットワーク上のオーバーレイネットワークを使用するなどして（あるいは、移行された計算ノード１３４によって以前に使用された��ットワークアドレスを代替計算ノードのために複製するなどの目的で、提供されたコンピュータネットワーク１２０の特定の計算ノード１２４で）仮想ネットワークをクライアントに提供する少なくともいくつかの実施形態で、各クライアントは、複数のクライアントがそれぞれの提供されたコンピュータネットワークに対して同一または重複するネットワークアドレスを指定する場合であっても、それらの提供されたコンピュータネットワークで使用されるいかなるネットワークアドレスも指定できてもよく、かかる実施形態では、ＣＮＳ  １０５が、クライアントごとに別個にネットワークアドレスを管理し、これにより、第１のクライアントは、第１のクライアントの提供されたコンピュータネットワークの特定の指定されたネットワークアドレスと関連付けられた第１の計算ノードを有してもよく、一方、別個の第２のクライアントは、第２のクライアントの提供されたコンピュータネットワークの同じ特定の指定されたネットワークアドレスと関連付けられた別個の第２の計算ノードを有してもよい。提供されたコンピュータネットワークに対してネットワークアドレスが設定されるか、あるいは別の方法で確定されると、ＣＮＳ  １０５は、そのネットワークアドレスを、提供されたコンピュータネットワーク用に選択された様々な計算ノードに、ＤＨＣＰ（「動的ホスト構成プロトコル」）や、ネットワークアドレスを動的に割り当てるための他の技法などを使用してランダムな方法で割り当ててもよい。
【００２７】
様々な実施形態において、提供されたコンピュータネットワークに対して、様々な方法で構成されてもよい。例えば、クライアントは、特定のタイプのネットワーキング装置（例えばルーター、スイッチなど）および／または他のネットワーク装置またはノード（例えばロードバランサ、ファイアウォール、プロキシ、ネットワーク記憶装置、プリンタなど）を、提供されたコンピュータネットワークの一部となるように指定してもよく、かつ／または、提供されたコンピュータネットワークの計算ノードのサブセットをまとめるか、あるいは別法で共通の相互通信特性（例えば、相互通信がフィルタリングされないサブネットの一部であり、かつ／または特定のネットワーキング装置と関連付けられている計算ノードの特定のサブセット、ＮＭＭロードバランサモジュールによって管理されるグループの一部である計算ノードの特定のサブセットなど）を共有するように指定することであってもよい。かかる実施形態では、以下にさらに詳しく述べるとおり、かかるネットワーキング装置を物理的に提供することによって、あるいは別法によりかかるネットワーキング装置を物理的に提供することなく、かかる機能性を仮想的に提供することによって、指定されたネットワーキング装置の機能性が、特定の提供されたコンピュータネットワーク１２０のＣＮＳ  １０５によって提供されてもよい。かかる方法では、クライアントプライベートネットワーク１３０全体が、対応する提供されたコンピュータネットワーク１２０に動的かつ段階的に移行されたときに、ＣＮＳ  １０５は、クライアントプライベートネットワーク１３０のネットワーキング装置および計算ノードの移行を可能にして、これにより、ネットワークの移行全体が完了した後、クライアントプライベートネットワーク１３０のすべてがシャットダウンしてもよい。
【００２８】
加えて、提供されたコンピュータネットワーク向けの指定された構成情報は、少なくともいくつかの実施形態で、ネットワーキング装置および／または計算装置のグループ間のルーティング情報または他の相互接続情報を含んでもよい。さらに、少なくともいくつかの実施形態で、ＣＮＳ  １０５は、複数の地理的位置（例えば、複数の地理的に分散したデータセンターなど）で利用可能な計算ノードを提供してもよく、クライアントによって指定された提供されたコンピュータネットワークの構成情報が、（例えば、複数の地理的位置に配置させることによって、提供されたコンピュータネットワークの計算ノード間のフォールトトレランスを提供するために）提供されたコンピュータネットワークの計算ノードが配置される１つもしくは複数の地理的位置をさらに示してもよく、かつ／または、１つもしくは複数のかかる地理的位置を選択するためにＣＮＳ  １０５によって使用される、提供されたコンピュータネットワークの計算ノードを相互運用する方法についての選好または要件に関する情報（例えば、計算ノードの相互通信用のための最小あるいは最大ネットワーク遅延または帯域幅、計算ノード間の最小または最大ネットワーク近接性、計算ノード間の最小または最大地理的近接性、かかるすべての地理的位置で利用できるとは限らない特定のリソースまたは機能性へのローカルアクセスを有すること、クライアントのリモートコンピュータネットワークおよび／またはリモートのリソースサービスなど、他の外部計算システムとの相対的な指定位置を有すること、これらの計算ノードとのデータの受け渡しに関わるコストなどのような、特定の計算ノードの使用および／または特定の計算ノードとの特定のタイプの対話を取得するためのコストに基づいた制約または他の選好など）を別の方法で提供してもよい。
【００２９】
他でさらに詳しく述べるとおり、少なくともいくつかの実施形態で、提供されたコンピュータネットワークの計算ノード間の相互接続および相互通信は、ＣＮＳ  １０５の基底の基盤ネットワークを使用して管理され、その場合には、かかる少なくともいくつかの実施形態で、設定されたネットワークトポロジ情報のうちの一部もしくは全部が、ＣＮＳ  １０５  の基底の基盤ネットワークおよび対応するモジュールを使用してシミュレーションされてもよい。例えば、ＣＮＳ  １０５によって提供された計算ノードの各々が、その関連付けられた計算ノードへのおよびその関連付けられた計算ノードからの通信を管理するＣＮＳ  １０５のノード通信マネージャモジュール（図示せず）と関連付けられていてもよい。その場合には、例えばファイアウォール装置は、計算ノードの関連付けられた通信マネージャモジュールを使用して、１つもしくは複数のシミュレーションされたファイアウォール装置に準拠した方法でその計算ノードから、および／またはその計算ノードへの通信を禁止する、あるいは別の方法で取り扱いをして、シミュレーションされてもよい。かかるノード通信マネージャモジュールは、計算ノード間で相互通信を行う方法および相互通信を行うかどうかとを制御することによって、ならびに計算ノードからの情報リクエスト（ＡＲＰリクエストなど）に対して適当な応答情報で応答することによって、ルーターとサブネットとを同様にシミュレーションしてもよい。ＣＮＳ  １０５の１つもしくは複数の外部通信マネージャモジュール（図示せず）は、ファイアウォール装置を同様にシミュレーションし、指定されたネットワークアクセス制約を実施し、かつリモートのリソースサービスの構成されたアクセスメカニズムとリモートクライアントプライベートコンピュータネットワークとのプライベート接続とを管理するなどの目的で、ＣＮＳ  １０５よって提供された計算ノードと外部通信システムとの間で行われる通信を管理してもよい。他のタイプのネットワークトポロジ情報が同様にシミュレーションされてもよい。
【００３０】
様々な実施形態において、ネットワークアクセス制約情報は、提供されたコンピュータネットワークに対して、様々な方法で構成されてよい。例えば、クライアントが、提供されたコンピュータネットワークの計算ノードのうちの一部もしくは全部が、提供されたコンピュータネットワークの他の計算ノードおよび／または他の外部計算システムと通信できるかどうか、およびその通信方法に関する情報を、通信の方向（送信と受信）、通信のタイプ（例えば、テキストのＨＴＴＰリクエストは許可するが、画像のＨＴＴＰリクエストは許可せず、ＦＴＰリクエストも許可しないなどのように、含まれるコンテンツのタイプおよび／または使用される通信プロトコルのタイプに基づいて）、他の計算システムの位置（例えば、提供されたコンピュータネットワークの一部かどうか、提供されたコンピュータネットワークに対応するリモートクライアントコンピュータネットワークの一部かどうか、アクセスが確立されたリモートのリソースサービスの一部かどうか、提供されたコンピュータネットワークと、任意の対応するリモートクライアントコンピュータネットワークとに対して外部かどうか）、他の計算システムのタイプなど、のうちの１つもしくは複数に基づくなどして、指定してもよい。ネットワークトポロジ情報および他のルーティング情報の方法と同様の方法で、ＣＮＳ  １０５は、提供されたコンピュータネットワークのネットワークアクセス制約情報を様々な方法で実施してもよい。
【００３１】
例示目的で、特定タイプの計算ノード、ネットワーク、通信、および構成動作が実行されるいくつかの実施形態について以下に記す。これらの実施例は、例示目的で提供され、簡潔化のために単純化されたものであり、本発明の技法は幅広く様々な他の状況で使用してよく、その一部について以下説明する。例えば、いくつかの実施形態では、クライアントによってアクセスできるように作成および構成されているコンピュータネットワークは、それらのクライアントの既存のプライベートコンピュータネットワークに対するプライベートコンピュータネットワーク拡張である一方、他の実施形態では、作成および構成されたコンピュータネットワークは、他のコンピュータネットワークに対する拡張でないスタンドアロンのコンピュータネットワークであってもよく、かつ／または、コンピュータネットワークがその代行として作成および構成されたクライアントによってプライベートにアクセス可能でないパブリックコンピュータネットワークであってもよい。さらに、いくつかの実施形態で、構成可能なネットワークサービスよって提供された特定のコンピュータネットワークが、構成可能なネットワークサービスよって提供された他のコンピュータネットワークへのプライベートアクセスまたはその他の相互通信を可能にするように構成されてもよく、一方で、他の実施形態では、複数の提供されたコンピュータネットワーク間のかかる相互通信が提供されなくてもよい。加えて、いくつかの実施形態では、構成可能なネットワークサービスよって提供されたコンピュータネットワークが、構成可能なネットワークサービスによって提供され、制御される計算ノードを使用する一方で、他の実施形態では、提供されたコンピュータネットワークで使用される少なくともいくつかのかかる計算ノードが、他者によって（例えば、第三者によって、クライアントによってなど）制御または維持されてもよいが、構成可能なネットワークサービスと併用可能であってもよい。例えば、いくつかの実施形態では、グループの計算ノードを指定された度合いの地域的に分散で提供するなどの目的で、その計算ノードが、ＮＭＭモジュール（例えば、複数の別個の構成可能なネットワークサービスと直接対話しているＮＭＭモジュールに基づく、第２のエンティティからの別の構成可能なネットワークサービスと対話して、ＮＭＭモジュールに代わってその第２の構成可能なネットワークサービスから機能性へのアクセスを取得することにより、ＮＭＭモジュールに機能性を提供する第１のエンティティの特定の構成可能なネットワークサービスに基づく、など）の位置、および／またはＮＭＭモジュールによって移行が簡便化される１つもしくは複数の計算ノードの位置とは別の１つもしくは複数の地理的位置である複数の別個の構成可能なネットワークサービスによって提供され、制御される計算ノードにアクセスし、それらを使用してもよい。
【００３２】
図１Ｂは、ＣＮＳ  １０５（またはネットワークアクセス可能なサービスの他の実施形態）によってクライアントに提供されてもよい例示的コンピュータネットワーク１２０ａについてさらに詳しく示しており、本実施例において提供されたコンピュータネットワーク１２０ａは、図１Ａのリモートプライベートコンピュータネットワーク１３０のうちの１つなどのような、クライアントのリモートプライベートコンピュータネットワークに対するプライベートネットワーク拡張である。本実施例では、構成可能なネットワークアクセス制約とネットワークトポロジとのタイプを図示するために、提供されたコンピュータネットワーク１２０ａの様々な接続と通信経路が概略的な方法で示されており、図２は、例示的な提供されたコンピュータネットワーク１２０ａなどのような、提供されたコンピュータネットワークを作成するために使用されてもよい例示的な基底の基盤ネットワークおよび接続についてさらに詳しく示す。加えて、本実施例では、提供されたコンピュータネットワーク１２０ａと関連付けられたＮＭＭモジュール１６４が、ネットワーク１２０ａの一部であるものとして図示されている。ただし他の実施形態では、ＮＭＭモジュールは提供されたコンピュータネットワーク１２０ａの一部でなくてもよく、またはＣＮＳ  １０５の一部として提供されているのであってもよい。
【００３３】
特に図１Ｂでは、提供されたコンピュータネットワーク１２０ａは、第１の地理的位置１  １６０（例えば、地理的位置１にある第１のデータセンター）に位置するＣＮＳ  １０５よって提供された様々な計算ノードを含み、これは、本実施例では、様々な計算ノードが、（例えば、異なるサブネットおよび／または関連付けられている構成されたネットワーキング装置（図示せず）に対応するために）論理グループ１６５および１６６へと構成される。本実施例では、異なるタイプの実行されてもよい通信を図示するために、それらの計算ノードと他の計算システムとの間の通信を制御する１つの概念的な仮想ルーター１６２が地理的位置１に示されているが、提供されたコンピュータネットワーク１２０ａは、実際には、地理的位置１に複数の構成されたネットワーキング装置を有していても、あるいは構成されたネットワーキング装置が１つもなくてもよく、コンピュータネットワーク１２０ａは、基底の基盤ネットワークを経て通信を制御する基底の基盤ネットワークと、関連付けられたモジュールとを使用することによって、相互接続された複数の物理的相互接続ルーターまたは他のネットワーキング装置を介するなどのようにして、地理的位置１で構成可能なネットワークサービスによって様々な方法で実装されてもよい。本実施例では、仮想ルーター１６２が、提供されたコンピュータネットワーク１２０ａ内のネットワークアドレスに送信される通信を、提供されたコンピュータネットワーク１２０ａ上の対応する移行先計算ノードに路指定する、および提供されたコンピュータネットワーク１２０ａ外の他のネットワークアドレスに他の通信を適宜経路指定するなどの目的で、構成されたネットワークトポロジ情報、リモートのリソースサービスへの構成されたアクセス、および他の構成されたネットワークアクセス制約情報を含む、提供されたコンピュータネットワーク１２０ａ向けの構成された情報に従って動作する。さらに、構成されたファイアウォール装置、構成されたネットワークトポロジ情報、または他の構成されたネットワークアクセス制約によって許可されていない通信は、仮想ルーター１６２によってブロックされるか、他の方法で管理されてもよい。
【００３４】
本実施例では、コンピュータネットワーク１２０ａが例示的なクライアント１に提供されており、これはクライアント１のリモートコンピュータネットワークに対するネットワーク拡張である。クライアント１のリモートコンピュータネットワークは、第１の遠隔地サイトＡ  １９０に複数の計算ノード１９１を含み、さらにゲートウェイ装置１９２および１つもしくは複数の物理的ルーターネットワーキング装置１９５も含み、仮想ルーター１６２は、ゲートウェイ装置１９２と１６３との間の仮想通信リンク１７０を介してそれらの複数の計算ノードと通信するように構成されている。他でさらに詳しく述べられているとおり、例えば、提供されたコンピュータネットワーク１２０ａは、複数の計算システムとの１つもしくは複数の構成されたＶＰＮ接続をサイトＡ  １９０に含んでもよく、通信リンク１７０は、１つもしくは複数のかかるＶＰＮ接続に対応してもよい。加えて、計算ノード１６５および／または１６６のうちの１つもしくは複数が、以前は計算ノード１９１の一部であった移行された計算ノードに代わる代替計算ノードであれば、ＮＭＭモジュール１６４は、ゲートウェイ装置１９２と１６３を、仮想通信リンク１７０を介して、提供されたコンピュータネットワーク１２０ａにおける他の計算ノード１９１から、それらの代替計算ノード１６５および／または１６６のうちの１つもしくは複数へと通信を経路設定し、同様に、仮想通信リンク１７０を介して、提供されたコンピュータネットワーク１２０ａにおけるそれらの代替計算ノード１６５および／または１６６から計算ノード１９１へと通信を経路設定するように構成してもよい。
【００３５】
加えて、クライアント１のリモートコンピュータネットワークは、図示の任意のサイトＢ  １９３など１つもしくは複数の他の位置で計算ノードを任意選択で備えていてもよく、その場合には、サイトＡ  １９０およびサイトＢ  １９３における計算ノードが、インターネット１９６および／または１つもしくは複数のプライベート接続を介するなどのように、１つもしくは複数の通信リンク（図示せず）を介して相互接続していてもよく、かかる状況では、ＮＭＭモジュール１６４が同様に、ゲートウェイ装置１６３と、サイトＢ  １９３におけるゲートウェイ装置（図示せず）とを、サイトＡとサイトＢとの間のそれらの１つもしくは複数の通信リンクを介して、および／またはサイトＢ  １９３への任意選択の仮想通信リンク１７２を介してなどのようにして（例えば、１つもしくは複数の他の構成されたサイトＢへの直接的なＶＰＮ接続を介して）、サイトＢ  １９３における計算ノード（図示せず）と代替計算ノード１６５および／または１６６との間での通信を経路設定するように構成してもよい。リモートコンピュータネットワークのリモート計算システムに対して複数のＶＰＮ接続または他のプライベート接続が使用される場合には、各接続が、通信が適当な接続へと経路設定させるように（例えば、それらのリモート計算システムに対応するリモートコンピュータネットワークのネットワークアドレスのサブセットと関連付けられることにより）、リモート計算システムのサブセットに対応してもよい。他の実施形態では、複数のＶＰＮ接続または他のプライベート接続が１つもしくは複数の位置でリモート計算システムに対して使用されてもよいが、例えば、複数の接続が（例えば、ロードバランシングなどのために使用される）冗長な代替接続である場合などには、各々が任意のリモート計算システムとの通信もサポートしてよい。さらに、いくつかの実施形態では、クライアントのリモートコンピュータネットワークは、複数のサイトにおいて複数の計算システムを含んでもよいが、リモート計算システムに対してただ１つのＶＰＮ接続または他のプライベート接続のみを使用してよく、このときリモートコンピュータネットワークは、適当なサイトおよび計算システムへの通信の経路設定を担当する。
【００３６】
加えて、提供されたコンピュータネットワーク１２０ａは、提供されたコンピュータネットワーク１２０ａの計算ノードと、概してインターネット１９６または他のパブリックネットワーク上でアクセス可能な他の外部計算システムとの間で行われるすべての、もしくは一部の通信を許可するように、またはまったく通信を許可しないように構成されてもよい。少なくともいくつかのかかる外部通信が許可される場合には、仮想ルーター１６２が、提供されたコンピュータネットワーク１２０ａに対する任意選択の仮想ボーダールーター１５５と連動するなどのように、提供されたコンピュータネットワーク１２０ａの任意選択の仮想通信リンク１７８を介してそれらの外部の複数の計算システムと通信するようにさらに構成されてもよい。仮想ボーダールーター１５５は、外部通信システムと、地理的位置１でＣＮＳ  １０５によって提供された様々な計算ノードとの間で行われる通信を管理する１つもしくは複数の実際のファイアウォール装置またはボーダールーター装置（例えば、ＣＮＳ  １０５のそれらの計算ノードを使用する、ＣＮＳ  １０５よってクライアントに提供された多数のコンピュータネットワークをサポートする実際の装置）をＣＮＳ  １０５が使用することにより、基底の基盤ネットワークと、（例えば、許可されなかった通信が提供されたコンピュータネットワーク１２０ａの計算ノードによって基盤ネットワーク上に送られるのを防ぐために、）基底の基盤ネットワークを経て通信を制御する関連付けられたモジュールとを使用することによる、などして、様々な方法で物理的に実装されてもよい。さらに、仮想ボーダールーター１５５は、サイトＡおよびサイトＢにおけるリモートクライアントコンピュータネットワークへ、１つもしくは複数のリモートのリソースサービスへなどのような、提供されたコンピュータネットワーク１２０ａにとって外部の他の通信システムへの他の通信を管理するのをさらに概念的に支援してもよい。
【００３７】
加えて、提供されたコンピュータネットワーク１２０ａは、提供されたコンピュータネットワーク１２０ａの１つもしくは複数のネットワークアドレスを割り当てることによりそれらの１つもしくは複数のリモートのリソースサービスを表すこと、およびそれらの割り当てられたネットワークアドレスに送られた通信に対する特定のとるべき具体的な行動を任意選択で構成することなどによって、１つもしくは複数のリモートのリソースサービスに対するプライベートまたは他の専門アクセスを提供するように構成されてもよい。本実施例では、仮想ルーター１６２は、提供されたコンピュータネットワーク１２０ａの仮想通信リンク１７４を介してリモートのリソースサービス１９４へのローカルアクセスを提供するように構成されている。そのため、例えば、提供されたコンピュータネットワーク１２０ａの計算ノードのうちの１つが、通信リンク１７４にマッピングされている提供されたコンピュータネットワーク１２０ａの特定のネットワークアドレスに通信を送る場合には、仮想ルーターが、（例えば、インターネットまたは他のパブリックネットワークを介して、）提供されたコンピュータネットワーク１２０ａにとって外部のリモートのリソースサービス１９４にその通信を転送してもよい。他の実施形態では、リモートのリソースサービス１９４が、ＣＮＳ  １０５の一部であるか、または別法で地理的位置１におけるインタフェースを実装してもよく、その場合、通信リンク１７４にマッピングされている提供されたコンピュータネットワーク１２０ａの特定のネットワークアドレスに送られる通信は、その代わりに処理のためにリモートのリソースサービスのそのインタフェースに転送されてもよい。加えて、仮想通信リンク１７４は、通信がリモートのリソースサービス１９４に転送される前に１つもしくは複数の方法でそれらを修正する、または別法で専門の方法でリモートのリソースサービス１９４にアクセスするなどの目的で、少なくともいくつかの実施形態で、リンクを介して様々な方法で送られるそれらの通信を管理するように構成されてもよい。例えば、図示された実施形態では、仮想通信リンク１７４が、リモートのリソースサービス１９４内で特定の名前空間に対応するように構成され、そのときリモートのリソースサービス１９４によって提供されるコンピュータ関連リソースのサブセットが、その名前空間の一部であってもよく、またはその代わりに構成可能なネットワークサービスにより、あるいはリモートのリソースサービス１９４により、提供されたコンピュータネットワーク１２０ａと関連付けられている１つもしくは複数の特定の識別子または他のアクセスコントロールインジケータに対応するように構成されてもよい。加えて、仮想通信リンク１７４が特定の名前空間に対応するか、または別法によりリモートのリソースサービス１９４よって提供されたリソースのサブセットに対応するように構成されている場合には、提供されたコンピュータネットワーク１２０ａが、（例えば、別個の第２の名前空間に対応するために、いかなる特定の名前空間にも対応しないために、通信リンク１７４で使用される顧客識別子とは別個であるリモートのリソースサービス１９４の顧客���識別子を使用するために）仮想通信リンク１７４のそれとは別個の方法でリモートのリソースサービス１９４にアクセスするように構成されている別個の仮想通信リンク１７６を任意選択で含む場合などに、提供されたコンピュータネットワーク１２０ａが、同じリモートのリソースサービス１９４にも対応するが、他の方法でリモートのリソースサービス１９４にアクセスするように構成されている１つもしくは複数の他の仮想通信リンク 174 を含むようにさらに任意選択で構成されてもよい。
【００３８】
図示された実施形態では、地理的位置１にあるＣＮＳ  １０５の計算ノードに加え、提供されたコンピュータネットワーク１２０は、第２の地理的位置２  １８０（例えば、地理的位置２における別個の第２のデータセンター）に位置するＣＮＳ  １０５よって提供された計算ノード１８４を任意選択でさらに含んでもよい。したがって、仮想ルーター１６２は、地理的位置２における提供されたコンピュータネットワーク１２０ａの部分に対する任意選択の仮想通信リンク１６８を含むように構成されてもよい。本実施例では、地理的位置２における提供されたコンピュータネットワーク１２０ａの部分が、地理的位置１における提供されたコンピュータネットワーク１２０の部分と仮想通信リンク１８８を経て通信することも含め、計算ノード１８４へ、および計算ノード１８４からの通信を管理するための概念的な仮想ルーター１８２と共に同様に図示されている。異なる地理的位置におけるＣＮＳ  １０５の計算ノード間のかかる通信は、インターネットまたは他のパブリックネットワーク（例えば、ＣＮＳ  １０５によってサポートされた暗号化などを用いる安全なトンネルの一部として）を経て通信を送ることによる、プライベートな安全な方法で（例えば、地理的位置間の専用リース回線を介して）または他のプライベートな方法で通信を送ることによる、などのように、様々な実施形態において様々な方法で扱われてもよい。加えて、ここには図示されていないが、地理的位置２における提供されたコンピュータネットワーク１２０ａの部分は、リモートのクライアントプライベートネットワークへの（例えば、位置２におけるゲートウェイ装置および／または地理的位置１とのいかなるＶＰＮ接続とも別個の１つもしくは複数のＶＰＮ接続を介した）リンク、リモートのリソースサービスへのリンク、インターネットへのリンクなどのような、地理的位置１における部分の図示された同じタイプの他の仮想通信リンクのうちの一部もしくは全部を同様に含んでもよい。
【００３９】
提供されたコンピュータネットワーク１２０ａが複数の地理的位置で計算ノードを含むか、または別法で１つもしくは複数の属性が異なる計算ノードを含むかかる状況では、ＮＭＭモジュールが計算ノード１９１を代替計算ノード１６５、１６６または１８４へと動的に移行するのを簡便化するときに、他でさらに詳しく述べられているとおり、ＮＭＭモジュール１６４は、いくつかの実施形態で、提供されたコンピュータネットワーク１２０ａにおける、その移行のための代替計算ノードとして使用できる特定の計算ノード候補または計算ノードのタイプの間から（例えば、それらの計算ノードの属性に基づく、それらの計算ノードまでの距離、または他の指示された計算関連リソースとそれらの計算ノードの関係基づく、等）選択するように、あるいは、別法で、クライアント１によりかかる選択によって使用されるかかる代替計算ノード候補に関連した情報を提供するようにさらに構成されてもよい。
【００４０】
図１Ｂの例示的な提供されたコンピュータネットワーク１２０ａは例示目的で含まれており、ＣＮＳ  １０５によってクライアントに提供された他のコンピュータネットワークは、構成された通信リンクおよびネットワークトポロジ情報のタイプのすべてを含まなくてもよく、かつ／または、ここに図示されていない他のタイプの構成された通信リンクおよびネットワークトポロジ情報を含んでもよいということが理解されよう。例えば、いくつかの実施形態および状況では、提供されたコンピュータネットワークが、計算ノードに加えて、あるいは計算ノードの代わりに、構成された装置と他のリソースとを含んでもよく、その場合には、各々のかかる他のリソースは、提供されたコンピュータネットワークのネットワークアドレスが任意選択で割り当てられてもよい。さらに、図１Ｂに示された概念的な装置および通信リンクは、様々なタイプの基底の物理的装置、接続、およびモジュールを使用して実装されてもよい。加えて、ここに図示されていないが、クライアントは、リソースを使用するために加入／登録する、様々な証明書（例えば、ユーザーＩＤ、パスワードなど）を受信／作成する、（例えば、プライベート企業ネットワークに対するネットワーク拡張）提供されたコンピュータネットワークから後にアクセスされる（例えば、リモートプライベート企業ネットワークの一部である）他のリモート計算システムからリソースおよび／または名前空間を作成するなどの目的で、提供されたコンピュータネットワークからであろうと、または代わりに他のリモート計算システムからであろうと、リモートのリソースサービスと様々な他のタイプの対話を実行してもよい。
【００４１】
図２は、構成可能なネットワークサービスの一実施形態などによって、コンピュータネットワークを提供する際に使用される計算システムの例示的実施形態を図示するネットワークダイアグラムである。特に、本実施例では、いくつかの物理的計算システムがデータセンター２００で共存しており、これは様々な物理的ネットワーキング装置と１つもしくは複数の物理的ネットワークとを介して相互接続されている。本実施例では、提供されたコンピュータネットワークの各々を仮想ネットワークとして確立および維持することにより、および仮想ネットワークをその上に載せる基盤ネットワークとして物理的ネットワークを使用することにより、物理的計算システムおよび他の装置が、構成可能なネットワークサービスによってクライアントに複数のコンピュータネットワークを提供するために使用される。例えば、図１Ｂの実施例を参照すると、データセンター２００は、地理的位置１に位置してもよく、図示された物理計算システムは、提供されたコンピュータネットワーク１２０ａの計算ノード１６５および１６６を提供する目的で使用されてもよい。オーバーレイネットワークおよび基底の基盤ネットワークの使用は、少なくともいくつかの実施形態では、提供されたコンピュータネットワークの計算ノードに対して透過的であってもよい。
【００４２】
加えて、１つもしくは複数のＮＭＭモジュールが様々な位置に位置してもよく、コンピュータネットワークの計算ノードの動的な移行を簡便化するための機能性を提供することの一部として提供されたコンピュータネットワークを使用してもよい。例えば、１つもしくは複数のかかるＮＭＭモジュールは、各々がプライベートネットワーク２４０の一部であってもよく、データセンター２００において、対応する提供されたコンピュータネットワークとパブリックネットワーク２３５を介して通信してもよく、あるいは、別法でパブリックネットワーク２３５に直接接続されているデータセンター２６０において、１つもしくは複数の他の計算システム２４５ｂまたは他の計算システムと関連付けられてもよい。ここには図示されていないが、いくつかの実施形態で、データセンター２００における計算システムは、１つもしくは複数のかかるＮＭＭモジュールをさらに含んでもよく、それらは、コンピュータネットワークの計算ノードの動的な移行を簡便化するために内部ネットワーク２２０を経てマネージャモジュール２１０と対話してもよい。
【００４３】
本実施例では、構成可能なネットワークサービスによって提供されたコンピュータネットワークが、基底の物理的基盤ネットワークを介して通信を送る仮想オーバーレイネットワークとして実装される。提供された仮想オーバーレイネットワークは、（例えば、物理的基盤ネットワークのネットワーキングプロトコル用に構成された通信中の仮想ネットワークに対して仮想ネットワークアドレス情報を埋め込むことによって）いくつかの実施形態では通信をカプセル化しない、などのような、様々な実施形態において様々な方法で実装されてもよい。具体例を１つ挙げると、仮想ネットワークは、３２ビットＩＰｖ４（「インターネットプロトコルバージョン４」）ネットワークアドレスを使用して実装されてもよく、それらの３２ビット仮想ネットワークアドレスは、（例えばスーテトレスＩＰ／ＩＣＭＰ変換、すなわちＳＩＩＴを使用して）通信パケットまたは他のデータ送信のヘッダーを付け直すか、または別法によりかかるデータ送信を、データ送信がそのために構成されている第１のネットワーキングプロトコルから、別個の第２のネットワーキングプロトコルに変換するように改変することによって、物理的基盤ネットワークによって使用される１２８ビットＩＰｖ６（「インターネットプロトコルバージョン６」）ネットワークアドレスの一部として埋め込まれてもよい。別の具体例として、仮想ネットワークおよび基盤ネットワークの両方が、同じネットワークアドレス指定プロトコル（例えば、ＩＰｖ４またはＩＰｖ６）を使用して実装されてもよく、仮想ネットワークアドレスを使用し、提供された仮想オーバーレイネットワークを介して送られたデータ送信は、基盤ネットワークを経て送られる間、基盤ネットワークに対応する異なる物理的ネットワークアドレスを使用するように改変されてもよいが、元の仮想ネットワークアドレスは、改変されたデータ送信に記憶されるか、または別法でデータ送信が基盤ネットワークを出るときに元の形態に復元されてもよいように追跡される。他の実施形態では、オーバーレイネットワークのうちの少なくとも一部が、通信のカプセル化を用いて実装されてもよい。
【００４４】
図２の図示例は、構成可能なネットワークサービスの一実施形態によって運用される複数の物理計算システムを有するデータセンター２００を含む。データセンター２００は、データセンター２００にとって外部の１つもしくは複数のパブリックネットワーク２３５に接続されており、このパブリックネットワーク２３５は、プライベートネットワーク２４０を介した１つもしくは複数のリモート計算システム２４５ａへのアクセスと、他の地理的位置に各々複数の計算システムを有する１つもしくは複数の他のグローバルにアクセス可能なデータセンター２６０へのアクセスと、１つもしくは複数の他のリモート計算システム２４５ｂへのアクセスと、を提供する。パブリックネットワーク２３５は、例えば、さまざまな別個の当事者によって運用される可能性のあるインターネットなどのネットワークの公的にアクセス可能なネットワークであってよく、プライベートネットワーク２４０は、例えば、プライベートネットワーク２４０にとって外部の計算システムから完全に、あるいは部分的にアクセス不能な企業ネットワークであってもよい。計算システム２４５ｂは、例えば、各々インターネット（例えば、電話回線、ケーブルモデム、デジタル加入者回線（「ＤＳＬ」）などを介して）に直接接続する家庭用計算システムであってもよい。
【００４５】
本実施例では、仮想の提供されたコンピュータネットワークを構成することが、構成可能なネットワークサービスのマネージャモジュール２１０によって簡便化され、基盤ネットワークを出入りする通信を改変することにより、物理的基盤ネットワークの端などから、構成可能なネットワークサービスの複数の他のモジュールが、提供されたコンピュータネットワークの機能性を実装する目的で使用される。特に、本実施例では、構成可能なネットワークサービスの複数のノード通信マネージャモジュールが、以下にさらに詳しく説明するとおり、図示されたノード通信マネージャモジュール２０９ａ、２０９ｄ、および２５０など、関連付けられた計算ノードへ、および関連付けられた計算ノードからの通信を各々管理する。加えて、本実施例では、以下にさらに詳しく説明するとおり、構成可能なネットワークサービスの外部通信マネージャモジュール２７０が、データセンター２００内の物理計算システムと外部通信システムとの間での通信を管理する。本実施例では単一の外部通信マネージャモジュール２７０だけが図示されているが、モジュール２７０の機能性は複数の装置を使用して実装されてもよいことが理解されよう。
【００４６】
例示的なデータセンター２００は、いくつかの物理計算システム２０５ａ〜２０５ｄおよび２５５ａ〜２５５ｎに加え、関連付けられた計算システム２５５ａ〜２５５ｎの通信を管理する目的で１つもしくは複数の他の計算システム（図示せず）上で実行されるＣＮＳノード通信マネージャモジュール２５０と、１つもしくは複数の計算システム（図示せず）上で実行される構成可能なネットワークサービスのマネージャモジュール２１０と、も含む。本例示的実施形態では、各々の物理計算システム２０５ａ〜２０５ｄが複数の仮想マシン計算ノードをホストし、さらに、計算システム２０５ａ上のＣＮＳ  ＶＭノード通信マネージャモジュール２０９ａおよび仮想マシン２０７ａなどのような、ならびに計算システム２０５ｄ上のＣＮＳ  ＶＭノード通信マネージャモジュール２０９ｄおよび仮想マシン２０７ｄなどのような、（例えば、物理計算システムの仮想マシンハイパーバイザモニタの一部としての）仮想マシン（「ＶＭ」）ノード通信マネージャモジュールも含む。仮想マシン計算ノードの各々が、構成可能なネットワークサービスにより、クライアントに対して提供されたコンピュータネットワークの別個の計算ノードとして使用されてもよい。本実施例では、物理計算システム２５５ａ〜２５５ｎがいかなる仮想マシンも実行しないため、各々が、構成可能なネットワークサービスによってクライアントに対して提供されたコンピュータネットワークの一部である別個の計算ノードとしての働きをしてもよい。他の実施形態では、データセンターにおける物理計算システムのすべてが仮想マシンをホストしてもよく、仮想マシンをホストする物理計算システムが１台もなくてもよい。
【００４７】
この例示的なデータセンターは、スイッチ２１５ａおよび２１５ｂ、エッジルーター２２５ａ〜２２５ｃ、およびコアルーター２３０ａ〜２３０ｃなどのような、複数の物理的ネットワーキング装置をさらに含む。スイッチ２１５ａは、物理計算システム２０５ａ〜２０５ｃを含む物理的ネットワークの一部であり、エッジルーター２２５ａに接続されている。スイッチ２１５ｂは、物理計算システム２０５ｄ、２５５ａ〜２５５ｎ、ならびにＣＮＳノード通信マネージャモジュール２５０およびＣＮＳシステムマネージャモジュール２１０を提供する計算システムを含む別個の物理的ネットワークの一部であり、エッジルーター２２５ｂに接続されている。続いて、スイッチ２１５ａ〜２１５ｂによって確立される物理的ネットワークが、今度は、エッジルーター２２５ａ〜２２５ｃとコアルーター２３０ａ〜２３０ｃとを含む中間相互接続ネットワーク２２０を介してその物理的ネットワーク同士および他のネットワーク（例えばパブリックネットワーク２３５）に接続される。エッジルーター２２５ａ〜２２５ｃは、２つ以上のネットワークの間にゲートウェイを提供する。例えば、エッジルーター２２５ａは、スイッチ２１５ａによって確立された物理的ネットワークと相互接続ネットワーク２２０との間にゲートウェイを提供する。エッジルーター２２５ｃは、相互接続ネットワーク２２０とパブリックネットワーク２３５との間にゲートウェイを提供する。コアルーター２３０ａ〜２３０ｃは、かかるデータ送信の特徴（例えば、移行元および／または移行先の基盤ネットワークアドレス、プロトコル識別子などを含むヘッダー情報）、および／または相互接続ネットワーク２２０自体の特徴（例えば、物理的ネットワークトポロジなどに基づくルート）に基づいてパケットまたは他のデータ送信を適宜転送するなどして、相互接続ネットワーク２２０内での通信を管理する。
【００４８】
図示されたノード通信マネージャモジュールは、関連付けられた計算ノードとの間でやりとりされる通信を管理する。例えば、ノード通信マネージャモジュール２０９ａは、関連付けられた仮想マシン計算ノード２０７ａを管理し、ノード通信マネージャモジュール２０９ｄは、関連付けられた仮想マシン計算ノード２０７ｄを管理し、その他のノード通信マネージャモジュールの各々も、１つもしくは複数の他の関連付けられた計算ノードのグループの通信を同様に管理してもよい。図示されたノード通信マネージャモジュールは、中間の物理的基盤ネットワーク（例えば、相互接続ネットワーク２２０ならびにスイッチ２１５ａおよび２１５ｂと関連付けられた物理的ネットワーク）を経て複数の仮想ネットワークを重ねるように計算ノード間の通信を管理してもよく、ファイアウォールポリシーと他のネットワークアクセス制約とを実装して、かかる通信を制御してもよい。外部通信マネージャモジュール２７０は、かかる外部通信に関し、データセンター２００内の基盤ネットワークを経てオーバーレイネットワークをさらに実装するなどの目的でデータセンター２００に出入りする外部通信を管理する。外部通信マネージャモジュール２７０は、データセンター２００にとって外部のリモートのリソースサービスへのプライベートアクセス、あるいは他の特殊なアクセスを許可する提供されたコンピュータネットワークのための少なくともいくつかの構成されたアクセスメカニズムと、任意選択で外部のリモートクライアントコンピュータネットワークとのうちの少なくともいくつかのＶＰＮ接続とを含むファイアウォールポリシーおよび他のネットワークアクセス制約を実装するための行動をとってもよく、または、代わりにかかるＶＰＮ接続の構成可能なネットワークサービスの部分を実装する他のハードウェアおよび／またはソフトウェア（図示せず）と連動してもよい。
【００４９】
そのため、１つの具体例として、計算システム２０５ａ上の仮想マシン計算ノード２０７ａのうちの１つが、計算システム２０５ｄ上の仮想マシン計算ノード２０７ｄのうちの１つ、および計算システム２５５ａ（および任意選択で、構成可能なネットワークサービスによっても使用されるこのデータセンター、または１つもしくは複数の他のデータセンター２６０にある他の計算ノード）とともに、クライアントの特定の提供された仮想コンピュータネットワーク（例えば、図１Ｂの提供されたコンピュータネットワーク１２０ａ）の一部であってもよく、ＩＰｖ４が仮想ネットワークの仮想ネットワークアドレスを表す目的で使用される。仮想マシン計算ノード２０７ａ、仮想マシン計算ノード２０７ｄ、および計算システム２５５ｂ〜２５５ｎのうちの他のもの（ならびに図示された計算ノードのうちの他のもの）が、他のクライアントに提供されている他のコンピュータネットワークだけを現在専用であってもよく、提供されたコンピュータネットワークに現在割り当てられておらず、構成可能なネットワークサービスによって利用できるようになっていてもよく、かつ／または同じ特定の提供された仮想コンピュータネットワークの一部であってもよい。特定の提供された仮想コンピュータネットワークの一部である仮想マシン計算ノード２０７ａ上のクライアントを対象に実行されるプログラムがその後、その移行先の仮想マシン計算ノード２０７ｄに割り当てられているその提供された仮想コンピュータネットワーク用の仮想ネットワークアドレスを指定することによるなどのように、特定の提供された仮想コンピュータネットワークの仮想マシン計算ノード２０７ｄへと発信通信（図示せず）を向けてもよい。ノード通信マネージャモジュール２０９ａは、発信通信を受信し、少なくともいくつかの実施形態で、送信する仮想マシン計算ノード２０７ａに関する、および／もしくは移行先の仮想マシン計算ノード２０７ｄに関する以前に構成された情報に基づいて、ならびに／または（例えば、認可の判断を取得するために、一部またはすべてのかかる情報を取得するために）システムマネージャモジュール２１０と動的に対話することによるなどにより、発信通信を送ることを認可するかどうかを判断する。
【００５０】
ノード通信マネージャモジュール２０９ａは、発信通信が認可された（あるいはかかる認可の判断を実行しない）と判断した場合、モジュール２０９ａは、その通信の移行先仮想ネットワークアドレスに対応する実際の物理的基盤ネットワーク位置を判断する。本実施例では、相互接続ネットワークがＩＰｖ６を使用して、その相互接続ネットワークを経て接続された計算ノードの実際のネットワークアドレスを表し、モジュール２０９ａは、発信通信のヘッダーを付け直して、この通信が実際のＩＰｖ６基盤ネットワークアドレスを使用してノード通信マネージャモジュール２０９ｄへと向けられるようにする。ノード通信マネージャモジュール２０９ａは、例えば、システムマネージャモジュール２１０と動的に対話することによって移行先の仮想計算ノード２０７ｄの仮想ネットワークアドレスで使用する実際のＩＰｖ６移行先ネットワークアドレスを判断してもよく、あるいは、（例えば、ＡＲＰを使用したリクエストなど、その移行先仮想ネットワークアドレスについての情報を求める、送信している仮想マシン計算ノード２０７ａからの以前のリクエストに応答して）その情報を以前に判断および保存していてもよい。本実施例では、使用される実際のＩＰｖ６移行先ネットワークアドレスが、カプセル化されずにオーバーレイネットワークを経て通信を送るように、仮想移行先ネットワークアドレスと追加情報とを組み込む。
【００５１】
ノード通信マネージャモジュール２０９ｄは、相互接続ネットワーク２２０を介して通信を受信すると、実際のＩＰｖ６移行先ネットワークアドレスから仮想移行先ネットワークアドレスと追加情報とを抽出し、その通信が仮想マシン計算ノード２０７ｄのうちのどれに向けられているかを判断する。次にノード通信マネージャモジュール２０９ｄは、実際のＩＰｖ６ソースネットワークアドレスから仮想ソースネットワークアドレスおよび追加情報を抽出し、その仮想ソースネットワークアドレスを有する計算ノードが、その通信を転送したノード通信マネージャモジュール（本実施例ではノード通信マネージャモジュール２０９ａ）によって実際に管理されることを確認することによるなどのように、移行先の仮想マシン計算ノード２０７ｄに対してその通信が認可されるかどうかを任意選択で判断し、悪意のある発信者によるソースネットワークアドレスの偽装を防ぐ。その通信が認可される（またはノード通信マネージャモジュール２０９ｄがかかる認可の判断を実行しない）と判断された場合、モジュール２０９ｄは、その後その着信通信のヘッダーを付け直して、送信している仮想マシン計算ノードの仮想ネットワークアドレスをソースネットワークアドレスとして使用し、移行先の仮想マシン計算ノードの仮想ネットワークアドレスを移行先ネットワークアドレスとして使用することによるなどのようにして、仮想ネットワークに適当なＩＰｖ４ネットワークアドレスを使用して移行先の仮想マシン計算ノード２０７ｄに向けられるようにする。着信通信のヘッダーを付け直した後、次いでモジュール２０９ｄは、改変された通信を移行先の仮想マシン計算ノードに転送する。少なくともいくつかの実施形態では、移行先の仮想マシンに着信通信を転送する前に、モジュール２０９ｄはセキュリティ関連の追加ステップを実行してもよい。例えば、モジュール２０９ｄは、モジュール２０９ｄによって以前に取得された情報、またはシステムマネージャモジュール２１０との対話に基づくなどのようにして、送信している仮想マシン計算ノードが移行先の仮想マシンと通信することを認可されていること（例えば、同じ仮想ネットワークに属すること、および／またはその提供された仮想ネットワークに対して指定されたネットワークアクセス制約情報に基づいて、同じ顧客またはその他のエンティティと関連付けられて、計算ノードが相互通信することを認可されている異なるエンティティおよび／またはコンピュータネットワークと関連付けられて）、および／またはその着信通信が許容されたタイプのものであることを検証してもよい。
【００５２】
送信する仮想マシン計算ノード２０７ａが代わりに（または加えて）データセンター２００にとって外部の１つもしくは複数の意図された移行先計算システムに発信通信（図示せず）を方向付けた場合、ノード通信マネージャモジュール２０９ａは同様の方法でその発信通信を受信および処理する。意図された外部の移行先計算システムは、例えば、（例えば、特定の提供されたコンピュータネットワークを拡張とするリモートの仮想クライアントコンピュータネットワーク、あるいは特定の仮想コンピュータネットワークの一部分を提供するために構成可能なネットワークサービスによっても使用される別のデータセンター２６０などにおける）同じ特定の提供された仮想コンピュータネットワークの一部である別の計算ノード、リモートのリソースサービスの計算システム、インターネットに公的にアクセス可能な計算システムなどであってもよい。少なくともいくつかの実施形態および状況では、モジュール２０９ａはまず、発信通信の送信を認可するかどうかを判断し、認可する場合には、その通信の移行先ネットワークアドレスに対応する実際の物理的基盤ネットワーク位置を判断する。本実施例では、モジュール２７０が、そうでなければノード通信マネージャモジュールに割り当てられないすべての仮想および／または実際のネットワークアドレスと関連付けられている場合などに、判断された基盤ネットワークの物理的位置が外部通信マネージャモジュール２７０に対応する。モジュール２７０は、相互接続ネットワーク２２０を介して通信を受信すると、移行先ネットワークアドレスと追加情報とを、受信した通信から同様に抽出し、その通信が意図された移行先に対して認可されるかどうかを任意選択で判断することも含め、その通信を転送するかどうか、および転送方法を判断する。その通信が認可される（あるいはモジュール２７０がかかる認可の判断を実行しない）と判断されると、モジュール２７０は着信通信のヘッダーを付け直して、適当なＩＰｖ４パブリックネットワークアドレス（またはパブリックネットワーク２３５に適した他のネットワークアドレス）を使用して移行先に向けられるようにした後、改変された通信を、パブリックネットワーク２３５を経て転送する。このようにして、外部通信マネージャ２７０および／または様々なノード通信マネージャモジュールは、提供された仮想コンピュータネットワークのゲートウェイ装置の機能性のうちの一部もしくは全部を提供するように任意で構成されてもよい。
【００５３】
したがって、前述のとおり、提供された仮想コンピュータネットワークの一部である代替計算ノードを使用することを含め、さまざまな技法を使用して、コンピュータネットワークの計算ノードを動的に移行するための能力を提供してもよい。
【００５４】
上記のとおり、少なくともいくつかの実施形態で、ＮＭＭモジュールは、リモートクライアントに仮想コンピュータネットワークを提供する構成可能なネットワークサービスなど、ネットワークアクセス可能なリモートサービスと対話してもよい。構成可能なネットワークサービスまたは他のネットワークアクセス可能なサービスは、ネットワークアクセス可能なサービスのユーザーがネットワークアクセス可能なサービスによって提供される少なくともいくつかの機能性に対するネットワークアクセス可能なサービスに料金を払う顧客となるなどのように、少なくともいくつかの実施形態では、料金ベースのサービスであってよい。加えて、少なくともいくつかの実施形態では、構成可能なネットワークサービスによってコンピュータネットワークをクライアントに提供する目的で使用される計算ノードは、１つもしくは複数の物理計算システムで各々ホストされる物理計算システムおよび／または仮想マシンなど、様々な形態を有してもよい。例えば、いくつかの実施形態で、構成可能なネットワークサービスは、１つもしくは複数の地理的位置にある１つもしくは複数のデータセンターなどのような、クライアントに提供されるコンピュータネットワークで使用できる構成可能なネットワークサービスよって提供される多数の計算ノードを含んでもよい。加えて、少なくともいくつかの実施形態で、構成可能なネットワークサービスによって提供された計算ノードのうちの一部もしくは全部が、１つもしくは複数の中間物理的ネットワークによって相互接続されており、クライアントに提供されたコンピュータネットワークは、中間物理的ネットワークを基盤ネットワークとして使用することによって中間物理的ネットワークの上に重ねられる仮想（すなわち「論理」）ネットワークであってもよい。さらに、少なくともいくつかの実施形態では、計算ノードのうちの少なくとも一部が、プログラム実行サービスの複数の顧客または他のユーザーに代わって複数のプログラムを実行するプログラム実行サービス（すなわち「ＰＥＳ」）によって使用されてもよい。計算ノードおよび基底のコンピュータネットワークに関連するさらなる詳細が以下に記載されており、仮想ネットワークをクライアントに提供し、かつプログラム実行サービスを提供する例示的実施形態に関連するさらなる詳細は、２００８年１２月１０日に出願された「Ｐｒｏｖｉｄｉｎｇ  Ａｃｃｅｓｓ  ｔｏ  Ｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｒｉｖａｔｅ  Ｃｏｍｐｕｔｅｒ  Ｎｅｔｗｏｒｋｓ（構成可能なプライベートコンピュータネットワークへのアクセスの提供」と題する米国特許出願番号第１２／３３２，２１４号（代理人整理番号１２０１３７．５９９）と、２００６年３月３１日に出願された「Ｍａｎａｇｉｎｇ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｂｅｔｗｅｅｎ  Ｃｏｍｐｕｔｉｎｇ  Ｎｏｄｅｓ（計算ノード間の通信の管理」と題する米国特許出願番号第１１／３９４，５９５号（代理人整理番号１２０１３７．５２４）と、２００６年３月３１日に出願された「Ｍａｎａｇｉｎｇ  Ｅｘｅｃｕｔｉｏｎ  ｏｆ  Ｐｒｏｇｒａｍｓ  ｂｙ  Ｍｕｌｔｉｐｌｅ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍｓ（複数の計算システムによるプログラムの実行の管理」��題する米国特許出願番号第１１／３９５，４６３号（代理人整理番号１２０１３７．５２５）と、２００７年３月２７日に出願された「Ｃｏｎｆｉｇｕｒｉｎｇ  Ｉｎｔｅｒｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｂｅｔｗｅｅｎ  Ｃｏｍｐｕｔｉｎｇ  Ｎｏｄｅｓ（計算ノード間の相互通信の構成」と題する米国特許出願番号第１１／６９２，０３８号（代理人整理番号１２０１３７．５５４）と、２００８年３月３１日に出願された「Ｃｏｎｆｉｇｕｒｉｎｇ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｂｅｔｗｅｅｎ  Ｃｏｍｐｕｔｉｎｇ  Ｎｏｄｅｓ（計算ノード間の通信の構成」と題する米国特許出願番号第１２／０６００７４号（代理人整理番号１２０１３７．５７６）と、２００７年６月１８日に出願された「Ｐｒｏｖｉｄｉｎｇ  Ｅｎｈａｎｃｅｄ  Ａｃｃｅｓｓ  Ｔｏ  Ｒｅｍｏｔｅ  ｓｅｒｖｉｃｅｓ（リモートサービスへの強化されたアクセスの提供」と題する米国特許出願番号第１１／７６４，７３９号（代理人整理番号１２０１３７．５５５）と、に含まれており、これらの各々は、参照によりその全体が本明細書に組み込まれる。
【００５５】
したがって、図２を参照して上述したとおり、少なくともいくつかの実施形態で、ネットワークアクセス可能な構成可能なネットワークサービスは、構成可能なネットワークサービスの様々な通信マネージャモジュールを使用するなどのように、基底の基盤ネットワークを使用してオーバーレイネットワークとして仮想コンピュータネットワークを実装することにより、それらをクライアントに提供する。構成可能なネットワークサービスの１つもしくは複数のシステムマネージャモジュールが、どの計算ノードがどの提供された仮想ネットワークに属するかを追跡および／または管理することによる、および特定の仮想ネットワークで（例えば、特定の顧客またはその他のエンティティによって）使用される仮想ネットワークアドレスに対応する実際の物理的基盤ネットワークアドレスに関する情報を提供することによるなどにより、計算ノード間の通信を構成することをさらに簡便化してもよい。加えて、システムマネージャモジュールは、対象物理計算システム上の仮想マシン計算ノードの指示、および仮想マシンが関連付けられる提供された仮想ネットワークの指示を受信し、その後に対象物理計算システムの仮想マシンノード通信マネージャモジュールの構成を開始して、仮想マシンを仮想ネットワークと関連付けるようにしてもよく、あるいはノード通信マネージャモジュールが、（例えば、仮想マシンが最初に通信を開始あるいは受信したときに）代わりにその構成を開始してもよい。いくつかの実施形態では、システムマネージャモジュールおよび／または関連付けられたノード通信マネージャモジュールが、提供された仮想ネットワークと関連付けられたユーザーが１つもしくは複数のソフトウェアプログラムの実行を開始するときに、仮想マシン計算ノードがそれらを実行する準備ができているように、指示された行動を取るため、および／または仮想マシン計算ノード上で１つもしくは複数の指示されたソフトウェアプログラムの実行をユーザーに代わって開始するためなどの目的で、様々な方法で（例えば、提供された仮想ネットワークと関連付けられたユーザー、および／またはかかるユーザーに代わるＮＭＭモジュールからの命令に応答して）提供された仮想ネットワークの特定の仮想マシン計算ノードをプロビジョニングすることにさらに関与してもよい。
【００５６】
図３は、コンピュータネットワークの計算ノードの動的な移行を簡便化するための機能性を提供するのに適した例示的な計算システムを示すブロック図である。具体的には、図３は、コンピュータネットワークの計算ノード、および様々なクライアント計算システム３５０、計算ノード３６０、ゲートウェイ計算装置３７０、ならびに他の計算システム３８０の動的な移行を簡便化するＮＭＭモジュールの一実施形態を実行するのに適した計算システム３００を示す。ここでは図示されていないが、いくつかの実施形態で、図示された計算システム、装置、およびノードのうちの少なくともいくつかは、図１Ｂおよび図２にさらに詳しく記載されているとおり、１つのコンピュータネットワークおよび／または共通なデータセンターの一部であることなどにより、同じ場所に位置するか、あるいは別の方法で共に組み込まれていてもよい（例えば、計算システム３００と計算ノード３６０およびゲートウェイ装置３７０のうちの少なくともいくつか）。加えて、ここでは図示されていないが、構成可能なネットワークサービスが、他の計算システム３８０の１つもしくは複数からなどのように、少なくともいくつかの実施形態では、ＮＭＭモジュールにアクセス可能であり、かつ使用されてもよく、その場合には、計算ノード３６０およびゲートウェイ装置３７０のうちの少なくともいくつかは、構成可能なネットワークサービスによって提供されてもよく、計算ノード３６０およびゲートウェイ装置３７０のうちのそれ以外から離れて位置してもよい。
【００５７】
図示された実施形態では、計算システム３００が、ＣＰＵ  ３０５と、様々なＩ／Ｏ構成要素３１０と、記憶装置３２０と、メモリ３３０とを備えた構成要素を有する。図示のＩ／Ｏ構成要素は、ディスプレイ３１１と、ネットワーク接続３１２と、コンピュータ可読メディアドライブ３１３と、他のＩ／Ｏ装置３１５（例えば、キーボード、マウス、スピーカなど）とを含む。加えて、図示のクライアント計算システム３５０は、ＣＰＵ  ３５１と、Ｉ／Ｏ構成要素３５２と、記憶装置３５４と、メモリ３５７とを含むサーバー計算システム３００の構成要素と同様の構成要素を有する。他の計算システム３８０、ゲートウェイ装置３７０、および計算ノード３６０も、サーバー計算システム３００に関して図示される構成要素のうちの一部もしくは全部と同様の構成要素を各々備えてもよいが、かかる構成要素は簡潔化のために本実施例に図示されない。加えて、ネットワーク移行マネージャ（「ＮＭＭ」）モジュール３４０の一実施形態が、メモリ３３０で実行されている。本実施例では、ＮＭＭモジュールが、構成された多目的計算システムの一部であるものとして図示されているが、他の実施形態では、計算システム３００が、ＮＭＭモジュールの能力を提供するように設計および／または構成されている特殊用途の装置であってもよい。
【００５８】
実行されているＮＭＭモジュールは、１つもしくは複数のネットワーク３９０を経て（例えば、インターネットおよび／またはワールドワイドウェブを介して、プライベートのセルラー方式ネットワークを介して、構成可能なネットワークサービスによって使用中のプライベート基盤ネットワークを介して、など）、他の計算システム、装置、およびノードと対話する。本例示的実施形態では、モジュール３４０は、１つもしくは複数の移行元のコンピュータネットワークの計算ノード３６０のうちの少なくとも一部から他の移行先のコンピュータネットワークの一部である他の代替計算ノード３６０への動的な移行を簡便化する。移行元および移行先のコンピュータネットワーク（図示せず）の各々、および任意選択で他の計算システム３８０のうちの少なくとも一部は、１つもしくは複数の特定のユーザーまたは他のエンティティ（図示せず）と関連付けられてもよく、かかるユーザー（またはそのエンティティを代表するユーザー）は、クライアント計算システム３５０のうちの１つを使用して、かかるコンピュータネットワークの計算ノードおよび計算システムを構成し、それらにアクセスしてもよい。かかるユーザーは、ＮＭＭモジュール３４０とも同様に対話し、移行元のコンピュータネットワークとその計算ノードに関する情報を提供することによる、移行先のコンピュータネットワークに関する情報を任意選択で提供することによる、移行している特定の計算ノード、またはＮＭＭモジュール３４０がこれから移行する特定の計算ノードの指示を提供することによって、クライアントに関する情報（例えば、連絡先情報、支払情報など）を提供し、ＮＭＭモジュール３４０によって提供されたサービスの運用に対応する支払いを提供することなどのようなことにより、コンピュータネットワークの計算ノードの動的な移行を開始および構成する。
【００５９】
加えて、ＮＭＭモジュール３４０は、様々な行動を取って、さまざまな時期におけるコンピュータネットワークの計算ノードの段階的移行を動的に簡便化してもよい。図示された実施形態では、モジュール３４０は、ＮＭＭモジュールがコンピュータネットワークの計算ノードの移行を動的に簡便化しているクライアントに関する様々な情報３２６と、それらのクライアントの移行元および移行先のコンピュータネットワークに関する情報３２２と、移行された計算ノードおよび代替計算ノードの位置に関する情報３２４および他の関連情報とにアクセスを有してもよい。モジュール３４０が（例えば周期的に）リクエストおよび収集し、かつ／または（例えば周期的に、あるいは興味のあるイベントの発生時などに）モジュール３４０にプッシュされる計算ノードステータス情報などのような、様々な情報は、クライアントから、および移行元および移行先のコンピュータネットワークとの対話から収集されてもよい。加えて、ＮＭＭモジュールは、移行元のコンピュータネットワークの計算ノードと移行先のコンピュータネットワークの計算ノードとの間の通信を転送する際に使用する情報３７４を適宜ゲートウェイ装置３７０の各々に提供することなどにより、計算ノード情報３２４を使用して、コンピュータネットワークの計算ノードの動的な移行に携わっている移行元および移行先のコンピュータネットワークをサポートするゲートウェイ装置を構成することを支援してもよい。ＮＭＭモジュールは、少なくともいくつかの実施形態および状況において、構成可能なネットワークサービスによって提供されたゲートウェイ装置を構成する、構成可能なネットワークサービスによって提供されたコンピュータネットワークに代替計算ノードとして使用する計算ノード３６０を追加する、代替計算ノードのプロビジョニングを開始するなどのような目的で、１つもしくは複数の構成可能なネットワークサービスとの様々な対話をさらに実行してもよい。例えば、他の計算システム３８０は、１つもしくは複数の計算ノードを各々ホストし得るホスト計算システムなどのような、提供されたコンピュータネットワークで使用するための、使用可能なかかる構成可能なネットワークサービスの計算システムを含んでもよい。かかるいくつかの状況では、クライアント計算システム３５０のユーザーは、まず構成可能なネットワークサービスと対話して、（例えば、クライアントの物理的コンピュータネットワークに対する拡張として）構成可能なネットワークサービスから特定の仮想コンピュータネットワークを構成してもよく、かつ情報３２２を提供して、その仮想コンピュータネットワークをクライアントのコンピュータネットワークと関連付けてもよい。他の状況では、特定のクライアントに代わって構成可能なネットワークサービスから特定の提供された仮想コンピュータネットワークを使用するなどのような目的で、モジュール３４０が構成可能なネットワークサービスと対話して、モジュール３４０によって使用される１つもしくは複数のかかる仮想コンピュータネットワークを作成するように代わりに構成されていてもよい。
【００６０】
他の計算システム３５０と３８０、ゲートウェイ装置３７０、および計算ノード３６０は、モジュール３４０との対話の一部として様々なソフトウェアを実行していてもよい。例えば、クライアント計算システムのユーザーが本人と関連付けられた１つもしくは複数のコンピュータネットワークに関するモジュール３４０の動作を構成できるようにするなどのような目的で、クライアント計算システム３５０のうちの一部もしくは全部が、メモリ３５７内のソフトウェアを各々実行して、（例えば、ウェブブラウザまたは特殊なクライアント側アプリケーションプログラムの一部として）モジュール３４０と対話してもよい。さらに、クライアント計算システム３５０および／または他の計算システム３８０のうちの一部もしくは全部が、クライアントの代理としてタネットワークと対話するために、クライアントのリモートネットワークの一部である複数の他の計算システム３８０をクライアントのリモートネットワークの提供されたコンピュータネットワーク拡張の一部として複数の計算ノード３６０に接続するＶＰＮ接続などを介して、メモリ３５７内のソフトウェアを各々実行していてもよい。さらに、計算ノード３６０および／または他の計算システム３８０のうちの一部が、計算ノードへ、および計算ノードから送られる通信の管理を支援し、かつそれらの計算ノードに関するステータス情報をモジュール３４０に提供する通信マネージャモジュール、またはかかるステータス情報をモジュール３４０に提供するためのソフトウェアを同様に含む計算ノード３６０などのような、ソフトウェアモジュール（図示せず）を実行して、モジュール３４０の機能性を提供するのを支援してもよい。同様に、ゲートウェイ装置３７０のうちの一部もしくは全部も同様にソフトウェアモジュール（図示せず）を実行して、ゲートウェイ装置のＮＭＭモジュール３４０の構成を簡便化するソフトウェアモジュールなどのような、モジュール３４０の機能性の提供を支援してもよい。加えて、他の計算システム３８０も、さまざまなユーザーが利用できるリモートのリソースサービスを実行するなどの目的で他の機能性を実行してよい。
【００６１】
計算システム３００、３５０、３８０、ゲートウェイ計算装置３７０、および計算ノード３６０は単なる例示に過ぎず、本発明の範囲を制限することを意図するものでないことは理解されよう。計算システム、装置、および／またはノードは、各々複数の双方向計算システムまたは装置を代わりに含んでよく、計算システム／装置／ノードは、インターネットなど１つもしくは複数のネットワークを通じることを含む、ウェブ経由で、あるいはプライベートネットワーク（例えば、移行通信ネットワークなど）経由で、図示されていない他の装置に接続されてもよい。さらに一般的には、計算ノード、計算装置または他の計算システムは、デスクトップまたは他のコンピュータ、データベースサーバー、ネットワーク記憶装置、ネットワークルーターおよび他のネットワーキング装置、ＰＤＡ、携帯電話、無線電話、ポケットベル、電子システム手帳、インターネット機器、（例えば、セットトップボックスおよび／またはパーソナル／デジタルビデオレコーダを使用した）テレビベースのシステム、および適当な通信能力を含む様々な他の消費財を非限定的に含む、記載されたタイプの機能性を対話および実行する場合があるハードウェアまたはソフトウェアの任意の組み合わせを備えてもよい。加えて、いくつかの実施形態では、図示されたモジュール３４０よって提供される機能性が追加モジュールで配布されてもよく、あるいはいくつかの実施形態では、モジュール３４０が構成可能なネットワークサービスと統合されているか、他の方法で関連付けられていてもよく、その場合には、構成可能なネットワークサービスの１つもしくは複数のモジュール（例えば、１つもしくは複数のシステムマネージャモジュール、１つもしくは複数のノード通信マネージャモジュール、１つもしくは複数の外部通信マネージャモジュールなど）によって提供されるものとして他で記載されている機能性を組み込んでもよい。同様に、いくつかの実施形態では、モジュール３４０の機能性のうちの一部が提供されなくてもよく、かつ／または他の更なる機能性が利用可能であってもよい。
【００６２】
様々な品目が、使用中にメモリあるいは記憶装置に記憶されるものとして図示されているが、これらの品目またはそれらの一部分は、メモリの管理およびデータの整合性のためにメモリと他の記憶装置との間で転送されてもよいということも理解されよう。加えて、ＮＭＭモジュール３４０によって使用される記憶装置は、いくつかの実施形態で、計算システム３００上に部分的あるいは完全に位置してもよい一方で、他の実施形態では、部分的あるいは計算システム３００にとって完全に外部（例えば、１つもしくは複数の他の計算システム３８０および／または他のネットワークアクセス可能な記憶装置などに提供されたもののような、ネットワークアクセス可能な記憶装置として）に位置してもよい。代替的には、他の実施形態では、ソフトウェアモジュールおよび／またはシステムのうちの一部もしくは全部が、別の装置のメモリで実行され、コンピュータ間通信を介して図示された計算システムと通信してもよい。さらに、いくつかの実施形態では、システムおよび／またはモジュールのうちの一部もしくは全部が、少なくとも部分的には、１つもしくは複数の特定用途向け集積回路、標準集積回路、コントローラ（例えば、適当な命令を実行し、マイクロコントローラおよび／または組み込み型コントローラを含むことによる）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、複合プログラマブルロジック装置（ＣＰＬＤ）、ネットワークプロセッサなどを含むがそれらに限定されないファームウェアおよび／またはハードウェアなどのような他の方法で実装または提供されてもよい。モジュール、システム、およびデータ構造のうちの一部もしくは全部も、ハードディスク、メモリ、ネットワーク、または適当なドライブによって、あるいは適当な接続を介して読み込まれる可搬型メディア物品などのコンピュータ可読メディア上で、（例えば、ソフトウェア命令または構造化されたデータとして）記憶され、１つもしくは複数のプロセッサによって実行されてもよい。システム、モジュール、およびデータ構造は、無線ベースおよび有線／ケーブルベースのメディアを含むさまざまなコンピュータ可読送信メディア上で、生成されたデータ信号として（例えば、搬送波または他のアナログあるいはデジタル伝播信号の一部として）送信されてもよく、さまざまな形態（例えば、単一あるいは多重化アナログ信号の一部として、または複数の別個のデジタルパケットあるいはフレームとして）をとってもよい。かかるコンピュータプログラム製品は、他の実施形態では他の形態をとってもよい。したがって、本発明は、他のコンピュータシステム構成で実施されてもよい。
【００６３】
図５は、ネットワーク移行マネージャルーチン５００の例示的実施形態の流れ図である。コンピュータネットワークの計算ノードの動的な移行を簡便化する能力を提供するためなどのような目的で、例えば、図１Ａおよび図１ＢのＮＭＭモジュール１２５および１６４ならびに／または図３のＮＭＭモジュール３４０の実行によってルーチンが提供されてもよい。図示された実施形態では、各ＮＭＭモジュールが、単一の時期における単一のクライアントのために移行元のネットワークから移行先のコンピュータネットワークへの計算ノードの動的な移行を管理する。ただし、他の実施形態では、単一のＮＭＭモジュールが、複数のコンピュータネットワークに対する（例えば、ＮＭＭモジュールが、仮想コンピュータネットワークを複数のリモートクライアントに提供する構成可能なネットワークサービスによって提供されている場合など、複数の別個のユーザーまたは他のエンティティに対する）計算ノードの動的な移行を同時に管理してもよく、かつ／または異なるコンピュータネットワークが異なる時期に移行元および移行先のコンピュータネットワークとしての役割を果たすように、２つ以上のコンピュータネットワーク間で計算ノードの動的な移行を双方向で管理してもよい。加えて、図示された実施形態では、ルーチンが、ネットワークアクセス可能なサービス（例えば、構成可能なネットワークサービス）よって提供された仮想コンピュータネットワークを、計算ノードが移行される移行先のコンピュータネットワークとして使用するが、他の実施形態では、他のタイプのコンピュータネットワークと対話してもよい。さらに、図示された実施形態では、このルーチンが、移行する特定の計算ノードの自動選択を支援する目的で様々な基準情報を任意選択で受信し、使用してもよいが、他の実施形態では、代わりに、このルーチンは、かかる自動選択を実行しなくてもよい（例えば、特定の計算ノードが移行される時期に関する命令をクライアントが提供する場合）。同様に、図示された実施形態では、このルーチンが、代替計算ノードを移行の一部として準備するためにネットワークアクセス可能なサービスと対話することによるなどのようにして、特定の計算ノードの自動移行に任意選択で関与してもよいが、他の実施形態では、代わりに、このルーチンは、かかる自動移行アクティビティを実行しなくてもよい（例えば、クライアントがかかる移行アクティビティを実行し、指示された移行元のネットワーク計算ノードから指示された移行先のネットワーク代替計算ノードへの移行が完了した時期をルーチンに通知する場合）
【００６４】
ルーチンの図示された実施形態は、ブロック５０５より開始され、そこで、１つもしくは複数の計算ノードがそこから動的または段階的に移行先のリモートの仮想コンピュータネットワークに移行される、クライアントの移行元のコンピュータネットワークに関する構成情報が受信され、さらに任意選択で、移行元のコンピュータネットワーク計算ノードを対応する移行先のコンピュータネットワーク代替計算ノードに移行する方法および／または時期を選択する際に使用する既定基準に関する構成情報が受信される。このため、図示された実施形態では、ルーチン５００が、移行先のコンピュータネットワークとして使用する既存のリモート仮想ネットワークについての情報を受信するが、他の実施形態では、代わりに、このルーチンが、ネットワークアクセス可能なリモートサービスと動的に対話して、クライアントに代わってかかるリモート仮想ネットワークを作成してもよく、あるいは別法により移行された計算ノードの代替計算ノードとして使用する１つもしくは複数のリモート計算ノードへのアクセスを他の方法で取得してもよい。
【００６５】
図示された実施形態では、ルーチンが、リクエストまたは情報を受信するブロック５１０へと続く。ブロック５１５で、（例えば、クライアントから、ブロック５８５でルーチンによって作られるリクエストに応答して、ルーチンへとプッシュされる情報から、ネットワークアクセス可能なサービスから、および／またはゲートウェイ装置から、および／または特定の計算ノードから、など）計算ステータス情報が移行元の計算ノードおよび／または移行先のコンピュータネットワークに関連したブロック５１０で受信されると判断されると、ルーチンはブロック５２０へと続行してそのステータス情報を記憶する。図示例では、このルーチンがその後ブロック５３５へと続行し、既定基準（任意選択で提供されている場合）が現在満たされているかどうかを、受信されたステータス情報に少なくとも部分的に基づくなどして判断するが、他の実施形態では、ステータス情報が受信されるたびに既定基準がチェックされなくてもよい。
【００６６】
代わりに、ブロック５１５で、ステータス情報が受信されていないと判断されると、ルーチンは代わりにブロック５３０へと続行し、ブロック５１０で受信した情報またはリクエストが、クライアントからの命令、周期的にトリガーされるか、あるいは指定された状況下にある命令などのような、１つもしくは複数の移行先のコンピュータネットワーク代替計算ノードへと移行する１つもしくは複数の移行元のコンピュータネットワーク計算ノードをここで選択するどうかを判断するために任意選択で提供された既定基準を評価するための命令であるかどうかを判断する。そのような命令であると判断された場合、ルーチンはブロック５３５へと続行し、ブロック５２０に関して記憶された以前に受信したステータス情報に少なくとも部分的に基づくなどのようにして、既定基準を評価して、既定基準のうちの１つもしくは複数が現在満たされているかどうかを判断する。他でさらに詳しく述べられているとおり、かかる既定基準は、さまざまな要因（例えば、様々な移行元のコンピュータネットワーク計算ノードの現在の利用水準）に基づいてもよい。既定基準のうちの１つもしくは複数が満たされているとブロック５４０で判断されると、ルーチンはブロック５４５へと続いて、１つもしくは複数の特定の移行元のコンピュータネットワーク計算ノードが動的に移行すること（例えば、あるいはランダムな方法などのような、既定基準に基づかない方法を用いる、などの既定基準に基づいて）を判断し、任意選択で、移行で使用される特定の代替計算ノードを、（例えば、現在移行先のコンピュータネットワークの一部である、または移行先のコンピュータネットワークに動的に追加されてもよい、任意の利用可能な計算ノードなどのような、既定基準に基づかない方法など、既定基準に基づいて）判断する。ルーチンはその後ブロック５６５へと続行し、判断された計算ノードを示す。
【００６７】
代わりに、ブロック５３０で、受信したリクエストまたは情報が既定基準を評価しないと判断されると、ルーチンは代わりにブロック５６０へと続行して、１つもしくは複数の示された移行元のコンピュータネットワーク計算ノードの移行に関連するリクエストまたは命令が受信されたかどうかを判断する。受信された場合、ルーチンはブロック５６５へと続行して、代替計算ノードを移行先のコンピュータネットワークに追加する、代替計算ノードをプロビジョニングすることなどにより、移行先の仮想コンピュータネットワークを提供するネットワークアクセス可能なリモートサービスと任意選択でプログラム的に対話し、代替計算ノードの移行のための利用可能性を簡便化する。他の実施形態および状況では、クライアントが、代わりに示された移行元のコンピュータネットワーク計算ノードを示された代替計算ノードへと実際に移行するのを管理してもよく、それらの代替計算ノードについて、ブロック５１０で受信された情報の一部としてルーチン５００に通知してもよく、その場合には、ルーチンがブロック５６５でネットワークアクセス可能なサービスと対話しなくてもよい。ブロック５６５の後、ルーチンはブロック５７０へと続行して、示された移行元のコンピュータネットワーク計算ノードを移行先の仮想コンピュータネットワーク上の対応する代替計算ノードに移行することを、移行元および移行先のコンピュータネットワーク上のゲートウェイ装置に通知して、ゲートウェイ装置が動的な移行中に移行元のコンピュータネットワークの動作継続を簡便化できるようにする。
【００６８】
代わりに、ブロック５６０で、受信したリクエストまたは情報が、移行された計算ノードの表示でないと判断された場合、ルーチンは代わりにブロック５８５へと続行して、１つもしくは複数の他の示された動作を適宜実行する。例えば、他のタイプの動作は、移行元および／または移行先のネットワーク計算ノードの現在のステータス情報を（例えば、周期的に、特定の状況が発生した場合に、など）リクエストすること、移行元のコンピュータネットワーク計算ノードのうちの１つでない移行元のコンピュータネットワークのルーター装置または他の装置に対応する移行先のコンピュータネットワークに機能性を移行するクライアントリクエストを簡便化すること、を含んでもよい。他の動作としては、少なくともいくつかの実施形態および状況における様々な種類の管理またはハウスキーピング活動も含んでもよい。
【００６９】
ブロック５７０または５８５の後、あるいはルーチンがブロック５４０で代わりに既定基準が満たされなかったと判断した場合、ルーチンはブロック５９５へと続行して、例えば終了するような明確な指示が受信されるまでなどのように、続行するかどうかを判断する。続行すると判断されたら、ルーチンはブロック５１０に戻り、続行しないと判断されたら、ブロック５９９へと続けて終了する。
【００７０】
図４Ａおよび図４Ｂは、構成可能なネットワークサービスマネージャルーチン４００の例示的実施形態の流れ図を示す。ルーチンは、コンピュータネットワークをリモートクライアントに提供する構成可能なネットワークサービスの管理動作を支援するなどのような目的で、例えば、図１Ａのシステムマネージャモジュール１１０を実行すること、および／または図３の他の計算システム３８０のうちの１つもしくは複数を使用するネットワークアクセス可能なサービスを実行することによって提供されてもよい。図示された実施形態では、ルーチン４００によって作成および提供されるコンピュータネットワークのうちの少なくとも一部が、クライアントの既存のリモートネットワークに対する拡張であってもよいのに対し、他の実施形態では、ルーチン４００によって作成および提供されるネットワークが、代わりに他のネットワークの拡張ではないクライアントによって使用されるスタンドアロンのネットワークであってもよい。加えて、図５および他で述べられているとおり、提供されたコンピュータネットワークのうちの少なくとも一部は、移行元のコンピュータネットワーク計算ノードの動的な移行を簡便化するために、ＮＭＭモジュールの実施形態によって使用されてもよい。
【００７１】
このルーチンの図示された実施形態は、ブロック４０５から始まり、ここで、（例えば、ＮＭＭモジュールまたは他のクライアントからの）メッセージ、または受信された他の情報の指示が受信される。少なくともいくつかの実施形態で、ルーチン４００がサポートする構成可能なネットワークサービスが、１つもしくは複数のＡＰＩを提供してリモートクライアントが構成可能なネットワークサービスとプログラム的に対話できるようにし、その場合には、ブロック４０５で受信した指示のうちの一部もしくは全部が、リモートクライアントの呼び出しや、リモートクライアントとそれらのＡＰＩとの他のプログラム的な対話を介して行われてもよいのに対し、他の実施形態および状況では、ブロック４０５で受信した指示のうちの一部もしくは全部が、代わりにリモートクライアントもしくは他者によって他の方法で開始されてもよい。
【００７２】
ブロック４０５の後、ルーチンは、ブロック４１０へと続行して、ブロック４０５で受信した指示が、クライアントの既存のリモートネットワークに対する拡張など、リクエストを出しているクライアントに代わって提供される新しい仮想コンピュータネットワークの作成を開始するかどうかを判断する。開始する場合には、ルーチンがブロック４１５へと続行して、クライアントに代わって新しいコンピュータネットワーク拡張または他の新しいコンピュータネットワークを作成するための様々な処理を実行する。例えば、他でさらに詳しく記載されているとおり、新しいコンピュータネットワークを作成するための受信通信は、作成されたコンピュータネットワークの一部となるいくつかの計算ノード、新しいコンピュータネットワークが別のリモートネットワークに対する拡張であるかどうかの指示などのような、作成されるコンピュータネットワークに関連する様々な構成情報を含んでもよい。ブロック４１５で取られる行動は、例えば、作成中の新しいコンピュータネットワークで使用するための、構成可能なネットワークサービスから利用可能な特定の計算ノードを選択すること、一意の識別情報を生成し、これを作成中の新しいコンピュータネットワークと関連付けること、あらゆる受信した構成情報を後の使用に備えて記憶すること、などを含んでもよい。他でさらに詳しく記載されているとおり、かかる計算ノードは、選択された計算ノードの能力に基づく、選択された計算ノードのネットワーク位置（例えば、構成可能なネットワークサービスの基底の基盤ネットワーク上、コンピュータネットワークの他の計算ノードに対する相対的なネットワーク位置上、など）に基づく、選択された計算ノードの地理的位置（例えば、複数の地理的に分散したデータセンターのうちの１つにおける、コンピュータネットワークの他の計算ノードに対する相対的な地理的位置上、など）に基づく、ランダムな方法を用いる、などのような、様々な実施形態において様々な方法で利用可能な計算ノードの群から選択されてもよい。さらに、ここには図示されていないが、ルーチンは、新しいコンピュータネットワークに対する一意の識別子や、新しいコンピュータネットワークに対する他の参照情報をクライアントに提供して、新しいコンピュータネットワークのさらなる構成や、新しいコンピュータネットワークとのさらなる対話を実行するときに、クライアントが後でその新しいコンピュータネットワークを参照できるようにしてもよい。
【００７３】
ブロック４１５の後、あるいはブロック４０５で受信した指示が新しいコンピュータネットワークを作成しないと代わりにブロック４１０で判断された場合、ルーチンはブロック４２０へと続行して、ブロック４０５で受信した指示が、指示されたコンピュータネットワークのアクセス制約または他のアクセス情報に関連した情報を含むかどうかを判断する。例えば、いくつかの状況で、クライアントが、新しいコンピュータネットワーク拡張を作成するリクエストおよび、その新しいコンピュータネットワーク拡張に対する様々な指定された構成情報など、１つもしくは複数のリクエスト、またはブロック４０５に関して共に受信および処理される他のメッセージを供給してもよく、供給した場合には、アクセス情報が出力される指示されたコンピュータネットワークが、ブロック４１５に関して作成されたばかりの新しいコンピュータネットワーク拡張であってもよい。他の状況および実施形態では、リモートクライアントが、代わりに、新しいコンピュータネットワークを作成する最初のリクエスト、および以前に作成されたそのコンピュータネットワークに対する様々な種類の構成情報を指定するその後の１つもしくは複数の他の別個のリクエストなどのような、ブロック４０５に関して受信および処理された異なる通信を異なる時期に供給してもよい。ブロック４０５でアクセス情報が受信されているとブロック４２０で判断された場合、ルーチンはブロック４３０へと続行して、指示されたコンピュータネットワーク向けの指定されたアクセス制約情報を使用して、指示されたコンピュータネットワークに対して許可されるアクセスを設定する。他でさらに詳しく記載されているとおり、かかる構成情報は、コンピュータネットワークのいずれかの計算ノードがインターネットまたは別法でそのコンピュータネットワーク外にアクセスを持つことができるかどうか、さらに任意選択で、コンピュータネットワークの計算ノード（指示されたコンピュータネットワークがリモートコンピュータネットワークに対する拡張である場合にはコンピュータネットワークのリモート部分を含む）間での通信アクセスポリシーを任意で特定することに関する制約を含んでもよい。したがって、ブロック４３０では、ルーチンが、例えば、コンピュータネットワークをサポートする構成可能なネットワークサービスの通信マネージャモジュールによって使用される回送情報を（例えば、メッセージを、構成される情報を伴うそれらの通信マネージャモジュールに送ることによって）構成することを含んでもよい１つもしくは複数の行動を取る。さらに、アクセス情報がリモートクライアント位置から提供されたコンピュータネットワークへのＶＰＮ接続を確立するための命令を含む場合には、ブロック４３０で取られる行動が、提供されたコンピュータネットワークにより、あるいは別法により提供されたコンピュータネットワークに代わる構成可能なネットワークサービスにより、提供されたコンピュータネットワークが、かかるＶＰＮ接続を受容し、かつ適当な情報を使用してそのＶＰＮ接続のために暗号化された通信を復号するように構成することによるなどのようにして、かかるＶＰＮコネクションをサポートするための行動を取ることをさらに含んでもよい。
【００７４】
ブロック４３０の後、あるいは代わりにブロック４０５における指示がアクセス情報を含まないとブロック４２０で判断された場合、ルーチンはブロック４４０へと続行して、ブロック４０５における指示が、別の形で指定された１つもしくは複数のネットワークアドレス範囲および／または特定のネットワークアドレスなどのような、指示されたコンピュータネットワークに対するネットワークアドレス情報を含むかどうかを判断する。含むと判断された場合、ルーチンは、ブロック４４５へと続行して、指示されたコンピュータネットワークの計算ノードで使用される指定されたネットワークアドレス情報を記憶し、さらに進んで、ブロック４１５および／または４６２などに関して、それらの計算ノードがすでに選択されたか、あるいは他の方法で使用された場合には、それらの指定されたネットワークアドレスを指示されたコンピュータネットワークの計算ノードと関連付けてもよい。他でさらに詳しく記載されているとおり、指定されたネットワークアドレスをコンピュータネットワークの計算ノードと関連付けることは、コンピュータネットワークをサポートする通信マネージャモジュールによって使用される経路指定情報を構成することをさらに含んでもよい。ブロック４４５の後、あるいは、代わりにブロック４０５で受信した指示がネットワークアドレス情報を含まなかったとブロック４４０で判断された場合、ルーチンはブロック４５５へと続行して、ブロック４０５で受信した指示が、示されたコンピュータネットワークのネットワークトポロジ情報を含むかどうかを判断する。含むと判断された場合、ルーチンはブロック４５７へと続行して、指示されたコンピュータネットワークのネットワークトポロジ情報を記憶し、任意選択で進んで、ネットワークトポロジ情報に従ってその指示されたコンピュータネットワークを構成してもよい。ネットワークトポロジ情報を構成することは、指定されたトポロジ情報の一部である仮想ネットワーキング装置の処理をシミュレーションするためなどのような目的で、コンピュータネットワークをサポートする通信マネージャモジュールによって使用される経路設定情報を構成することを含んでもよい。
【００７５】
ブロック４５７の後、あるいは代わりにブロック４０５における指示がネットワークトポロジ情報を含まないとブロック４５５で判断された場合、ルーチンはブロック４６０へと続行して、指示されたコンピュータネットワークが指定された数量の計算ノードを含むように構成されているが、その指定された数量より少ない数量が選択あるいは使用される場合、または指定された数量の計算ノードが、指示されたコンピュータネットワークに対して指定されていない場合などのように、ブロック４０５における指示が、指示されたコンピュータネットワークに計算ノードを追加するための指示を含むかどうかを判断する。さらに、いくつかの実施形態では、構成可能なネットワークサービスによって提供されている既存のコンピュータネットワークの使用が開始された後でも、クライアントはそのコンピュータネットワークを様々な方法で、そのコンピュータネットワークの計算ノードの数量を変更すること、および／またはそのコンピュータネットワークのネットワークトポロジ情報を改変することを含む、改変してもよい。他でさらに詳しく述べられているとおり、１つもしくは複数の計算ノードを追加するリクエストは、１つもしくは複数の移行元のコンピュータネットワーク計算ノードの、代替計算ノードとして使用される追加計算ノードへの動的な移行の一部としてＮＭＭモジュールおよび／またはクライアントから受信されてもよく、追加された計算ノードで使用される特定のネットワークアドレス（例えば、移行中の移行元のコンピュータネットワーク計算ノードによって以前に使用されたネットワークアドレス）の指示をさらに含んでもよい。指示が１つもしくは複数の計算ノードを追加することであるとブロック４６０で判断された場合、ルーチンはブロック４６２へと続行して、構成可能なネットワークサービスの利用可能な計算ノード群から指示されたコンピュータネットワークに追加される１つもしくは複数の計算ノードを選択する。他でさらに詳しく記載されているとおり、かかる計算ノードは様々な方法で選択されてもよい。ブロック４６４で、選択された計算ノードは、先述の方法と同様の方法などで（例えば、適当なネットワークアドレス情報をそれらの選択された計算ノードと関連付けることにより、任意の指定されたネットワークトポロジ情報および／またはコンピュータネットワーク拡張の他のアクセス制約情報に従ってそれらの選択された計算ノードに対するアクセス権を設定することによる、など）、指示されたコンピュータネットワークの一部として使用されるように構成される。加えて、少なくともいくつかの実施形態では、クライアントおよび／またはＮＭＭモジュールは、計算ノードを追加するのと同時に、あるいは後に、移行中の移行元のコンピュータネットワーク計算ノードの代替として動作する特定の移行先のコンピュータネットワーク計算ノードをプロビジョニングするための命令をさらに提供してもよい一方で、他の実施形態では、クライアントおよび／またはＮＭＭモジュールは、代わりにかかるプロビジョニングなどを実行するために、追加された後に、移行先のコンピュータネットワーク計算ノードと直接対話してもよい。
【００７６】
ブロック４６４の後、あるいは代わりにブロック４０５における指示が計算ノードを追加しないとブロック４６０で判断された場合、ルーチンはブロック４７０へと続行して、ブロック４０５における指示が、ＮＭＭモジュールおよび／またはクライアントなど指示されたコンピュータネットワークから、指示された仮想コンピュータネットワークから別のコンピュータネットワークへの計算ノードの動的な移行の一部として１つもしくは複数の計算ノードを削除するかどうかを判断して、移行された計算ノードを移行完了後に削除するようにする。指示が１つもしくは複数の計算ノードを削除することであるとブロック４７０で判断されると、ルーチンはブロック４７５へと続行して、リクエストで選択された計算ノードの指示に基づいて、あるいは代わりに別の方法で（例えば、ランダムに、構成可能なネットワークサービスの便宜または利点に基づいて、など）、指示されたコンピュータネットワークから削除する１つもしくは複数の計算ノードを選択する。ブロック４８０で、選択された計算ノードが、その後コンピュータネットワークから削除される。
【００７７】
ブロック４８０の後、あるいはブロック４０５における指示が１つもしくは複数の計算ノードを削除しないとブロック４７０で判断されると、ルーチンは代わりにブロック４８２へと続行して、ブロック４０５における指示が、ブロック４６４に関して追加されたばかりの１つもしくは複数の計算ノード、または以前は指示されたコンピュータネットワークの一部であったが、他の目的で使用された（あるいは現在使用されていない）１つもしくは複数の計算ノードなど、指示されたコンピュータネットワークの１つもしくは複数の計算ノードをプロビジョニングするかどうかを判断する。プロビジョニングすると判断した場合、ルーチンはブロック４８５へと続行して、計算ノードの各々にある１つもしくは複数の指示されたソフトウェアプログラムを実行する、指示されたデータを計算ノードにコピーする、および／または特定の方法で使用される計算ノードを別法で準備する、などのような目的で、指示された計算ノードのプロビジョニングを指示された方法で開始する。他の実施形態では、計算ノードのかかるプロビジョニングが、代わりにクライアントとそれらの計算ノードとの直接対話に基づき、構成されたネットワークサービスのクライアントによって直接実行されてもよい。
【００７８】
ブロック４８５の後、あるいは代わりにブロック４０５における指示が１つもしくは複数の計算ノードをプロビジョニングしないとブロック４８２で判断された場合、ルーチンはブロック４８７へと続行して、物理的ルーター装置または他のネットワーキング装置によるなどのようにして、ブロック４０５における指示が、指示されたコンピュータネットワークを、指示されたコンピュータネットワークに移行中であるリモートの移行元コンピュータネットワークの一部として以前に提供されたネットワーキング機能性を提供するように構成するかどうかを判断する。構成すると判断した場合、ルーチンはブロック４８９に進み、指示されたネットワーキング情報に従って、ブロック４５７に関して、および他で先述した方法と同様の方法などでその指示されたコンピュータネットワークを構成する。ネットワーキング機能性を構成することは、移行元のコンピュータネットワークの一部であった物理的ネットワーキング装置に対応する仮想ネットワーキング装置の行動をシミュレーションするなどの目的で、指示されたコンピュータネットワークをサポートする通信マネージャモジュールによって使用される経路指定情報を構成することを含んでもよい。
【００７９】
ブロック４８９の後、あるいは代わりにブロック４０５における指示が、ネットワーキング装置の機能性を移行しないとブロック４８７で判断された場合、ルーチンはブロック４９０へと続行して、任意選択で１つもしくは複数の他の指示された動作を適宜実行する。例えば、クライアントの特定のコンピュータネットワークの構成を完了した後に、ルーチンは、作成された新しいコンピュータネットワーク拡張が属するリモートコンピュータネットワークなどのようなリモートソースからコンピュータネットワークへのアクセスを提供する１つもしくは複数の最終ステップをさらに実施してもよい。かかるアクセス提供は、例えば、情報をクライアントに提供して、クライアントがコンピュータネットワーク（例えば、コンピュータネットワークに対するＶＰＮのための公的にアクセス可能なネットワークアドレス）にアクセスできるようにすること、コンピュータネットワークを、リモートクライアントからの通信を受け入れるように構成すること、などを含んでもよい。加えて、少なくとも一部の提供されたコンピュータネットワーク（例えば、移行先のコンピュータネットワークおよび／または移行元のコンピュータネットワークとしてのＮＭＭモジュールによって使用されたコンピュータネットワーク）の場合、ルーチンは、ＶＰＮ接続と組み合わせるなどして、１つもしくは複数のゲートウェイ装置をさらに提供し、構成してもよい。ゲートウェイ装置が提供された後、ＮＭＭモジュールは、ゲートウェイ装置と直接対話してもよく、他の実施形態では、ルーチン４００と対話して、ゲートウェイ装置を構成し、かつ／またはゲートウェイ装置からステータス情報を取得してもよい。さらに、一部またはすべてのコンピュータネットワークの一部またはすべての計算ノードのステータスをピングする、または他の方法で点検するため、リモートクライアントによって一部またはすべてのコンピュータネットワークの使用を監視するため、一部またはすべての提供されたコンピュータネットワークによる内部構成可能なネットワークサービスリソースの使用を監視するため、構成可能なネットワークサービスによってクライアントのアカウントを確立および維持するため、自身のアカウントまたは提供されたコンピュータネットワークに関するクライアントからのステータス情報のリクエストに応答するため、ＮＭＭモジュールが使用している計算ノードに関するステータス情報をＮＭＭモジュールに事前に送るため、構成可能なネットワークサービスの使用に対する支払いをクライアントから得るため、指示されたコンピュータネットワークの一部である特定の計算ノードを（例えば、１つもしくは複数の実行プログラムを、第１の地理的位置にある計算ノードから第２の地理的位置にある新しい計算ノードに移すことによって）改変するためなどの目的で、ルーチンは、時には（例えば、周期的に、現在の状況が指定されたしきい値を超えたか、あるいは別法により指定された状況を誘発したときなど）他の動作を実行してもよい。
【００８０】
ブロック４９０の後、ルーチンはブロック４９５へと続行して、例えば明確な終了指示が受信されるまでなどのように、続行するどうかを判断する。続行すると判断した場合、ルーチンはブロック４０５に戻り、続行しないと判断した場合、ブロック４９９へと続行して終了する。
【００８１】
図６は、ゲートウェイ装置のルーチン６００の例示的実施形態の流れ図を示す。このルーチンは、使用中である移行元のコンピュータネットワークの継続動作を、その計算ノードのうちの一部もしくは全部が移行先のコンピュータネットワークに移行している間に簡便化するためなどのような目的で、例えば、図１Ａのゲートウェイ装置１２２または１３２、図１Ｂのゲートウェイ装置１６３または１９２および／または図３のゲートウェイ計算装置３７０の実行によって提供されてもよい。図示された実施形態では、ゲートウェイ装置が、移行元のコンピュータネットワークおよび移行先のコンピュータネットワークのどちらと関連付けられていてもよく、コンピュータネットワークの他方にある対応するゲートウェイ装置と対になっているが、他の実施形態では、１つのゲートウェイ装置は、移行元のコンピュータネットワークと移行先のコンピュータネットワークとの両方か、あるいは別の方法で２つ以上のコンピュータネットワークをサポートしてもよい。
【００８２】
図示されたルーチンの実施形態はブロック６０５から始まり、ここでゲートウェイ装置が属するコンピュータネットワークのローカル計算ノードと、リモートコンピュータネットワークの一部である対応するリモートゲートウェイ装置と関連付けられたリモート計算ノードに関する構成情報の指示が受信される。かかる接続がすでに利用できなくなっている場合、次いでルーチンはブロック６０７へと続行して、他のゲートウェイ装置とのＶＰＮ接続または他のプライベート接続を任意選択で確立する。
【００８３】
ブロック６０７の後、ルーチンはブロック６１０へと続行して、そこでリクエストまたは情報を受信する。ブロック６１５で、リモートゲートウェイ装置を介してアクセス可能なリモート計算ノードについての情報に対応するリクエストが受信されると判断されると、ルーチンはブロック６２０へと続行して、リモート計算ノードに代わって情報を提供する。例えば、リクエストが、リモート計算ノードの位置についての情報を求めるローカル計算ノードからのＡＲＰメッセージまたは他のリクエストである場合、ゲートウェイ装置は、ゲートウェイ装置が指示された計算ノードであるかのように応答して、リモート計算ノードに向けられた通信がゲートウェイ装置に向けられるようにする。同様に、リクエストが、リモート計算ノードのステータスについての情報を求めるピングメッセージまたは他のリクエストである場合、ゲートウェイ装置は、リモート計算ノードによって提供される応答をエミュレートし、かつ／またはそのリモート計算ノードと対話して、その応答で使用する実際の情報を取得してもよい。他のタイプのネットワークメッセージも、同様の方法で扱われてもよい。
【００８４】
代わりにリモート計算ノードについての情報のリクエストが受信されていないとブロック６１５で判断された場合、ルーチンは代わりにブロック６２５へと続行して、ブロック６１０で受信した情報またはリクエストが、特定のリモート計算ノードに対して（例えば、以前に移行されたローカル計算ノードに対応するリモートの移行先コンピュータネットワークにある代替計算ノードに対して）向けられたローカル計算ノードからの発信通信であるかどうかを判断する。特定のリモート計算ノードに対して向けられたローカル計算ノードからの送信通信であると判断された場合、ルーチンはブロック６３０へと続行して、送信しており、かつ移行先である計算ノードに対して透過的な方法によるなどのようにして、対象である移行先のリモート計算ノードへとさらに転送するリモートゲートウェイ装置にその通信を転送する。代わりに受信したリクエストまたは情報がリモート計算ノードに向けられた通信でないとブロック６２５で判断された場合、ルーチンは代わりにブロック６４０へと続行して、着信通信がローカル計算ノード（例えば、リモートの移行元コンピュータネットワークから以前に移行されたリモート計算ノードに対応するローカルの移行先のコンピュータネットワークにおける代替計算ノード）を対象とするリモートゲートウェイ装置を介してリモート計算ノードから受信されたかどうかを判断する。その着信通信がローカル計算ノードを対象とするリモートゲートウェイ装置を介してリモート計算ノードから受信されたと判断された場合、ルーチンはブロック６４５へと続行して、改変された通信に、ゲートウェイ装置のハードウェアアドレス以外のリモートの送信している計算ノードのネットワークアドレスを含めさせ、応答通信がゲートウェイ装置に返されるようにするためなどのような目的で、リモートの送信している計算ノードを反映するように通信を任意選択で改変する。ブロック６４５の後、ルーチンはブロック６５０へと続行して、改変された通信を、ローカルコンピュータネットワークを経てローカルの移行先計算ノードに転送する。
【００８５】
代わりに受信したリクエストまたは情報が着信通信でないとブロック６４０で判断された場合、ルーチンは代わりにブロック６６０へと続行して、ブロック６１０から受信したリクエストまたは情報がローカルコンピュータネットワークとリモートコンピュータネットワークとの間での計算ノードの移行の指示であるかどうかを判断する。ブロック６１０から受信したリクエストまたは情報がローカルコンピュータネットワークとリモートコンピュータネットワークとの間での計算ノードの移行の指示であると判断した場合、ルーチンはブロック６６５へと続行し、どの計算ノードがローカルであり、どれが後で転送通信時に使用するためのリモートであるかに関する記憶された情報を更新し、さらに任意選択で１つもしくは複数の行動を取って、（例えば、ローカルコンピュータネットワークで無償ＡＲＰを発行することにより、リモートゲートウェイ装置にメッセージを送信することなどにより）変更の対象である他のローカル計算ノードおよび／またはリモートゲートウェイ装置を更新してもよい。
【００８６】
代わりに受信したリクエストまたは情報が計算ノードの移行の指示でないとブロック６６０で判断された場合、ルーチンは代わりにブロック６８５へと続行し、１つもしくは複数の他の指示された動作を適宜実行する。例えば、他のタイプの動作は、ローカルおよび／またはリモートの（例えば、リクエストに応答して、あるいは代わりに周期的に、または特定の状況の発生時などに、例えばＮＭＭモジュールへの）計算ノードや、様々な種類の管理またはハウスキーピング処理などについての現在のステータス情報を、提供することを含んでもよい。
【００８７】
ブロック６２０、６３０、６５０、６６５または６８５の後、ルーチンはブロック６９５へと続行して、明確な終了指示が受信されるまでなどのように、続行するかどうかを判断する。続行すると判断された場合、ルーチンはブロック６１０に戻り、続行しないと判断された場合ブロック６９９へと続行して終了する。
【００８８】
いくつかの実施形態では、上記ルーチンによって提供された機能性が、より多数のルーチン間で分割する、より少数のルーチンに統合するなどのように、代替方法で提供されてもよいということも理解されよう。同様に、いくつかの実施形態では、代わりに他の図示されたルーチンにそれぞれかかる機能性が欠落していたり、含まれていたりする場合、あるいは提供される機能性の数量が変更された場合などのように、図示されるルーチンは、記載より多いまたは少ない機能性を提供してもよい。加えて、様々な動作は特定の方法（例えば、連続的にまたは並列的に）および／または特定の順序で実行されるものとして図示されてもよいが、当業者であれば、他の実施形態では、動作が他の順序および他の方法で実行されてもよいことを理解するであろう。当業者であれば、上記データ構造が、単一のデータ構造を複数のデータ構造に分割させることによる、複数のデータ構造を単一のデータ構造に統合させることによるなどのようなことによって、異なる方法で構造化されてもよいということも理解するであろう。同様に、いくつかの実施形態では、代わりに他の図示されたデータ構造にかかる情報が欠落している場合、または含まれる場合、あるいは記憶される情報の量またはタイプが変更された場合などのような場合、図示されたデータ構造は、記載されるよりもより多いまたはより少ない情報を記憶してもよい。
【００８９】
第１項。計算システムがネットワーク接続された計算ノードの動的な移行を簡便化するための方法であって、
第１のコンピュータネットワークの使用中に第１のコンピュータネットワークの複数の計算ノードに送られた複数の通信を管理することであって、その複数の計算ノードが第１の地理的位置にあり、かつ各々が第１のコンピュータネットワークの複数の別個のネットワークアドレスのうちの１つと関連付けられており、その複数の通信が、その複数のネットワークアドレスのうちの１つである少なくとも１つの移行先ネットワークアドレスを各々示すことにより、その複数の計算ノードのうちの少なくとも１つを、その通信の対象とする移行先として指定しており、その通信の各々を管理することが、その通信によって指示された少なくとも１つの移行先ネットワークアドレスに基づいて、その通信の少なくとも１つの対象となる移行先計算ノードに第１のコンピュータネットワークを経てその通信を転送することを含む、管理することと、
その複数の通信を管理した後、および第１のコンピュータネットワークの使用中に、第１のコンピュータネットワークを第２の地理的位置におけるリモートの仮想的な第２のコンピュータネットワークへと動的かつ段階的に移行するように構成された１つもしくは複数の計算装置の制御下で、第１のコンピュータネットワークの複数の計算ノードの各々について、
第１のコンピュータネットワークの計算ノードの、第２の地理的位置におけるリモートの仮想コンピュータネットワークの一部である別個の代替計算ノードへの移行の指示を受信することであって、これにより、移行後に、リモートの仮想コンピュータネットワークの代替の計算ノードが、移行された代替計算ノードを第１のコンピュータネットワークの一部として代替し、第１のコンピュータネットワークの継続動作のために、移行された計算ノードのネットワークアドレスを使用する、受信することと、
第１のコンピュータネットワーク上の移行された計算ノードのネットワークアドレスを、リモートの仮想コンピュータネットワークの計算ノードを表すように構成されている第１のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることと、
複数の計算ノードのサブセットの移行後に、サブセットの計算ノードのうちの１つに対する代替計算ノードによって使用された移行先ネットワークアドレスを各々示す第１のコンピュータネットワークを経て送られる１つもしくは複数の追加通信を自動的に管理することであって、追加通信の各々を管理することが、第１のコンピュータネットワークを経て追加通信を構成されたゲートウェイ装置に転送し、それによって、構成されたゲートウェイ装置が、追加通信を、その代替計算ノードに配送するためにリモートの仮想コンピュータネットワークに転送するようにすることを含む、自動的に管理することと、を含む方法。
【００９０】
第２項。第１のコンピュータネットワークは物理的なローカルエリアネットワークであり、リモートの仮想コンピュータネットワークが第１のコンピュータネットワークに対する拡張となるように構成されていて、そのリモートの仮想コンピュータネットワークの計算ノードが、第１のコンピュータネットワークの計算ノードによって現在使用中のネットワークアドレスとは別個である第１のコンピュータネットワークに対するネットワークアドレスを使用し、その方法が、
第１のコンピュータネットワークをリモートの仮想コンピュータネットワークへと動的に移行する前に、
第１のコンピュータネットワークの複数の計算ノードのネットワークアドレスを第１のコンピュータネットワークの複数の計算ノードを表すように構成されているリモートの仮想コンピュータネットワーク上の第２のゲートウェイ装置と自動的に関連付けることと、
第１のコンピュータネットワークの複数の計算ノードのうちの１つによって使用される移行先ネットワークアドレスを各々示すリモートの仮想コンピュータネットワークを介して送られた１つもしくは複数の他の通信を自動的に管理することであって、他の通信の各々を管理することが、リモートの仮想コンピュータネットワークを経て他の通信を第２のゲートウェイ装置に転送することを含み、それによって、第２のゲートウェイ装置が、他の通信によって指示された移行先ネットワークアドレスを使用する１つの計算ノードへの配送のために第１のコンピュータネットワークに他の通信を転送するようにする、自動的に管理することと、をさらに含み、
第１のコンピュータネットワークの複数の計算ノードの各々について、第１のコンピュータネットワーク上の計算ノードのネットワークアドレスを第１のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることが、その計算ノードのネットワークアドレスをリモートの仮想コンピュータネットワーク上の第２のゲートウェイ装置との関連付けを解消することをさらに含む方法である、第１項に記載の方法。
【００９１】
第３項。第１のコンピュータネットワークの複数の計算ノードが第１のエンティティの制御下にあり、リモートの仮想コンピュータネットワークの計算ノードが別個の第２のエンティティの制御下にあり、第２のエンティティが、クラウド計算技法を使用して、構成可能なネットワークサービスによって顧客に代わって提供される構成された仮想コンピュータネットワークへのアクセスをその顧客が購入できるようにする料金ベースの構成可能なネットワークサービスを提供し、第１のエンティティが構成可能なネットワークサービスの顧客のうちの１つであり、リモートの仮想コンピュータネットワークが構成可能なネットワークサービスによって提供された仮想コンピュータネットワークのうちの１つであり、リモートの仮想コンピュータネットワークが、第１のコンピュータネットワークのリモートの仮想コンピュータネットワークへの動的な移行の前に、第１のコンピュータネットワークのうちの１つもしくは複数の物理的ネットワーキング装置によって提供された移行済みの第１のコンピュータネットワークにネットワーキング能力を提供するように構成可能なネットワークサービスによってさらに構成される、第１項に記載の方法。
【００９２】
第４項。ネットワーク接続された計算ノードの動的な移行を簡便化するためのコンピュータ実装された方法であって、
第１のコンピュータネットワークの使用中に、第１の地理的位置で複数の計算ノードを有する第１のコンピュータネットワークを第２の地理的位置におけるリモートの仮想第２コンピュータネットワークへと動的に移行するように構成された１つもしくは複数の計算装置の制御下にあり、かつ第１のコンピュータネットワークの複数の計算ノードのうちの少なくとも一部の各々について、
第１のコンピュータネットワークの計算ノードが、第２の地理的位置にあり、リモートの仮想コンピュータネットワークの一部である別個の代替計算ノードへの移行の指示を受信することであって、これにより、移行後に、リモートの仮想コンピュータネットワークの代替計算ノードが移行した計算ノードを第１のコンピュータネットワークの一部として代替し、移行された計算ノードによって以前に使用された第１のコンピュータネットワークのネットワークアドレスを使用するようにする、受信することと、
代替計算ノードによって使用されたネットワークアドレスを、リモートの仮想コンピュータネットワークの代替計算ノードを表すように構成されている第１のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることと、
ネットワークアドレスを自動的に関連付けた後に、代替計算ノードによって使用されるネットワークアドレスに第１のコンピュータネットワークを経て送られる１つもしくは複数の追加通信を自動的に管理することであって、追加通信の各々を管理することが、追加通信が代替計算ノードを表すゲートウェイ装置に第１のコンピュータネットワークを経て転送された後に、追加通信をその代替計算ノードに配送するためにリモートの仮想コンピュータネットワークに転送することを含む、自動的に管理することことと、を含む方法。
【００９３】
第５項。第１のコンピュータネットワークのうちの少なくともいくつかの計算ノードが、第１のコンピュータネットワークの複数の計算ノードのすべてを含み、これにより、第１のコンピュータネットワークのすべてが第１のコンピュータネットワークの使用中に段階的にリモートの仮想コンピュータネットワークに段階的に移行し、リモートの仮想コンピュータネットワークへの全ての第１のコンピュータネットワークの段階的移行が完了するまで、リモートの仮想コンピュータネットワークが、第１のコンピュータネットワークに対する拡張として動作するように構成されている、第４項に記載の方法。
【００９４】
第６項。リモートの仮想コンピュータネットワークと関連付けられた１つもしくは複数の計算装置に、リモートの仮想コンピュータネットワークへの第１のコンピュータネットワークの段階的移行の前に、第１のコンピュータネットワークの１つもしくは複数の物理的ネットワーキング装置によって提供された移行済みの第１のコンピュータネットワークに対するネットワーキング能力を提供するように自動的に構成することをさらに含む、第５項に記載の方法。
【００９５】
第７項。リモートの仮想コンピュータネットワークへの第１のコンピュータネットワークの動的な移行の後、およびリモートの仮想コンピュータネットワークの代替計算ノードのうちの少なくとも１つの各々について、対象計算ノードが逆移行後に第１のコンピュータネットワークにある代替計算ノードを代替し、代替計算ノードによって以前に使用された第１のコンピュータネットワークのネットワークアドレスを使用するように、第１のコンピュータネットワークの一部である対象計算ノードへの代替計算ノードの逆移行を自動的に簡便化することであって、自動的に簡便化することが、そのネットワークアドレスに向けられた以降の通信が第１のコンピュータネットワークを介して対象計算ノードに転送されるように、代替計算ノードによって以前に使用されたネットワークアドレスと第１のコンピュータネットワーク上の構成されたゲートウェイ装置との関連付けを解消すること、をさらに含む、第４項に記載の方法。
【００９６】
第８項。リモートの仮想コンピュータネットワークと関連付けられている、少なくともいくつかの計算ノードを選択するための以前に規定された１つもしくは複数の基準を満たすユーザーから受信した１つもしくは複数の命令のうちの少なくとも１つに基づいて、第１のコンピュータネットワークの少なくともいくつかの計算ノードが移行目的で選択される第４項に記載の方法。
【００９７】
第９項。第１のコンピュータネットワークのうちの少なくともいくつかの計算ノードのうちの１つをリモートの仮想コンピュータネットワークに移行する前に、第１のコンピュータネットワークのうちの１つの計算ノードのネットワークアドレスが、そのネットワークアドレスに向けられた通信を第１のコンピュータネットワーク転送することによって、第１のコンピュータネットワークの１つの計算ノードを表すように構成されているリモートの仮想コンピュータネットワーク上の第２のゲートウェイ装置と関連付けられており、第１のコンピュータネットワークの１つの計算ノードに対する代替計算ノードによって使用されたネットワークアドレスの第１のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることが、代替計算ノードをサポートするためにリモートの仮想コンピュータネットワークをプロビジョニングすることの一部であり、リモートの仮想コンピュータネットワークをプロビジョニングすることが、代替計算ノードによって使用されるそのネットワークアドレスに向けられた以降の通信がリモートの仮想コンピュータネットワークを介して代替計算ノードに転送されるように、代替計算ノードによって使用されたネットワークアドレスと、リモートの仮想コンピュータネットワーク上の第２のゲートウェイ装置との関連付けを解消すること、をさらに含む、第４項に記載の方法。
【００９８】
第１０項。１つの計算ノードが代替計算ノードに移行される前に、その１つの計算ノードが１つもしくは複数のソフトウェアアプリケーションの各々のコピーを実行し、代替計算ノードをサポートするためにリモートの仮想コンピュータネットワークをプロビジョニングすることが、１つもしくは複数のソフトウェアアプリケーションの各々のコピーの代替計算ノード上での実行を開始することをさらに含む、第９項に記載の方法。
【００９９】
第１１項。第１のコンピュータネットワークは１つもしくは複数の物理的に相互接続されたローカルエリアコンピュータネットワークを第１の地理的位置に含み、かつ第１のコンピュータネットワークは第１のエンティティの制御下にあり、リモートの仮想コンピュータネットワークは第２の地理的位置にあり、リモートの仮想コンピュータネットワークは別個の第２のエンティティの制御下にあり、第２のエンティティが、クライアントに代わって構成可能なネットワークサービスによって提供された仮想コンピュータネットワークをクライアントが構成できるようにする構成可能なネットワークサービスを提供し、第１のエンティティが構成可能なネットワークサービスのクライアントのうちの１つであり、リモートの仮想コンピュータネットワークが構成可能なネットワークサービスによって提供された仮想コンピュータネットワークのうちの１つである、第４項に記載の方法。
【０１００】
第１２項。１つもしくは複数の構成された計算装置が、構成可能なネットワークサービスの制御下で運用され、その構成可能なネットワークサービスが、構成可能なネットワークサービスによって提供された仮想コンピュータネットワークで使用される複数の計算ノードを提供し、第１のコンピュータネットワークのうちの少なくともいくつかの計算ノードが、第１のコンピュータネットワークの複数の計算ノードのうちの２つ以上を含み、少なくともいくつかの計算ノードの各々について、第１のコンピュータネットワークの計算ノードに対する代替計算ノードが、構成可能なネットワークサービスによって選択され、第１のエンティティに代わってリモートの仮想コンピュータネットワークに動的に追加される複数の計算ノードのうちの別個の１つであり、そのために、第１のコンピュータネットワークをリモートの仮想コンピュータネットワークへと動的に移行した後に、リモートの仮想コンピュータネットワークが２つ以上の動的に追加された計算ノードを含む、第１１項に記載の方法。
【０１０１】
第１３項。少なくともいくつかの計算ノードに対する代替計算ノードが、各々、構成可能なネットワークサービスの複数の物理計算システムのうちの１つにホストされる仮想マシンであり、２つ以上の代替計算ノードをリモートの仮想コンピュータネットワークに動的に追加することが、ホストされた仮想マシンがリモートの仮想コンピュータネットワークの一部として含まれるように、１つもしくは複数の物理計算システム上で実行される１つもしくは複数の仮想マシンマネージャモジュールを、ホストされた仮想マシンの通信を管理するように構成すること含む、第１２項に記載の方法。
【０１０２】
第１４項。リモートの仮想コンピュータネットワークへと移行される第１のコンピュータネットワークのうちの少なくともいくつかの計算ノードのうちの１つもしくは複数の各々について、リモートの仮想コンピュータネットワークへの計算ノードの移行が第１のコンピュータネットワークの他の計算ノードに対して透過的な方法で実行され、これにより、他の計算ノードが、計算ノードの移行中に第１のコンピュータネットワークを経て第１のコンピュータネットワークの移行先計算ノードに他の通信を送り続け、かつこれにより、他の通信のうちの少なくとも１つの移行先計算ノードが移行中の計算ノードである、第４項に記載の方法。
【０１０３】
第１５項。１つもしくは複数の構成された計算装置が、構成されたゲートウェイ装置を含み、第１のコンピュータネットワークのうちの少なくともいくつかの計算ノードの各々のネットワークアドレスがインターネットプロトコル（「ＩＰ」）アドレスである、第４項に記載の方法。
【０１０４】
第１６項。方法を実行することにより、ネットワーク接続された計算ノードの動的な移行を簡便化するように、１つもしくは複数の計算装置を構成するコンテンツを有するコンピュータ可読メディアであって、その方法が、
第１のコンピュータネットワークの１つもしくは複数の計算ノードの各々について、１つもしくは複数の構成された計算装置の制御下で、かつ第１のコンピュータネットワークが第１のコンピュータネットワークに対する別個のネットワークアドレスを各々有する複数の計算ノードで使用中に、第１のコンピュータネットワークの複数の計算ノードのうちの１つもしくは複数を別個の仮想コンピュータネットワークへと動的に移行するのを簡便化することと、
移行後に、仮想コンピュータネットワークの別個の計算ノードが、第１のコンピュータネットワークの継続動作のために、移行された計算ノードのネットワークアドレスを使用するように、第１のコンピュータネットワークの計算ノードを仮想コンピュータネットワークの別個の計算ノードへと移行する指示を受信することと、
第１のコンピュータネットワーク上の移行された計算ノードのネットワークアドレスを、仮想コンピュータネットワークと対話するように構成されている第１のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることであって、自動的に関連付けた後に、移行された計算ノードのそのネットワークアドレスに第１のコンピュータネットワークを経て送られた１つもしくは複数の通信の各々について、通信が構成されたゲートウェイ装置に転送され、仮想コンピュータネットワークの別個の計算ノードにさらに転送されるようにする、自動的に関連付けることと、
を含むコンピュータ可読メディア。
【０１０５】
第１７項。第１のコンピュータネットワークの複数の計算ノードが１つもしくは複数の第１の地理的位置にあり、仮想コンピュータネットワークが第１のコンピュータネットワークから離れており、かつ１つもしくは複数の第１の地理的位置から離れた第２の地理的位置に他の複数の計算ノードを含み、リモートの仮想コンピュータネットワークが第１のコンピュータネットワークに対する拡張として動作するように構成されており、第１のコンピュータネットワークの１つもしくは複数の計算ノードの各々について、第１のコンピュータネットワークの計算ノードがそこへ移行されるリモートの仮想コンピュータネットワークの別個の計算ノードが、他の計算ノードのうちの１つであり、かつリモートの仮想コンピュータネットワーク上の第１のコンピュータネットワークの計算ノードの代替として動作する、第１６項に記載のコンピュータ可読メディア。
【０１０６】
第１８項。第１のコンピュータネットワークの複数の計算ノードが第１のエンティティの制御下にあり、リモートの仮想コンピュータネットワークの計算ノードが別個の第２のエンティティの制御下にあり、第２のエンティティが、クライアントに代わってネットワークアクセス可能なサービスによって提供された仮想コンピュータネットワークをクライアントが構成できるようにするネットワークアクセス可能なサービスを提供し、第１のエンティティがネットワークアクセス可能なサービスのクライアントのうちの１つであり、リモートの仮想コンピュータネットワークがネットワークアクセス可能なサービスによって提供された仮想コンピュータネットワークのうちの１つである、第１７項に記載のコンピュータ可読メディア。
【０１０７】
第１９項。動的な移行の簡便化が、第１のコンピュータネットワークの複数の計算ノードの各々について、第１のコンピュータネットワークの使用中に第１のコンピュータネットワークを別個の仮想コンピュータネットワークに段階的に移行するように実行される、第１６項に記載のコンピュータ可読メディア。
【０１０８】
第２０項。コンピュータ可読メディアが、コンテンツと、そのコンテンツを含んでいる生成された記憶データ信号を含むデータ送信メディアとを記憶する１つもしくは複数の構成された装置のうちの１つのメモリのうちの少なくとも１つであり、そのコンテンツが、実行されると１つもしくは複数の構成された装置がその方法を実行させる命令である、第１６項に記載のコンピュータ可読メディア。
【０１０９】
第２１項。ネットワーク接続された計算ノードの動的な移行を簡便化するように構成された計算装置であって、
１つもしくは複数のプロセッサと、
１つもしくは複数のプロセッサのうちの少なくとも１つによって実行されると、第１のコンピュータネットワークおよび第２のコンピュータネットワークの使用中に、別個の第１のローカルエリアコンピュータネットワークと第２のローカルエリアコンピュータネットワークとの間の１つもしくは複数の計算ノードの動的な移行を簡便化するように構成されている移行マネージャモジュールと、を備え、１つもしくは複数の計算ノードの各々について、動的な移行の簡便化が、
移行元のコンピュータネットワークから移行先のコンピュータネットワークへの計算ノードの移行の指示を受信することであって、移行元のコンピュータネットワークが第１のコンピュータネットワークおよび第２のコンピュータネットワークのうちの一方であり、移行先のコンピュータネットワークが第１のコンピュータネットワークおよび第２のコンピュータネットワークのうちの他方であり、移送された計算ノードが、移行前に移行元のコンピュータネットワークの動作の一部としてアドレスを使用し、移行後にそのアドレスを使用する移行先のコンピュータネットワークの別個の代替計算ノードによって代替され、これにより、移行後に、移行された計算ノードよって以前に実行された移行元のコンピュータネットワークの動作を代替計算ノードが代替するようにする、受信することと、
移行元のコンピュータネットワーク上の移行された計算ノードのアドレスを、移行先のコンピュータネットワークと対話するように構成されている移行元のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることであって、これにより、移行後に移行元のコンピュータネットワークを経てそのアドレスに送られる１つもしくは複数の通信の各々について、通信が、移行先のコンピュータネットワークの代替計算ノードに転送される構成されたゲートウェイ装置に転送される、自動的に関連付けることと、を含む、計算装置。
【０１１０】
第２２項。第１のコンピュータネットワークが、１つもしくは複数の第１の地理的位置に、複数の計算ノードを有する１つもしくは複数の物理的コンピュータネットワークを含み、第２のコンピュータネットワークが、１つもしくは複数の第１の地理的位置から離れた第２の地理的位置における他の複数の計算ノードを含む仮想コンピュータネットワークである、第２１項に記載の計算装置。
【０１１１】
第２３項。第１のコンピュータネットワークの複数の計算ノードが第１のエンティティの制御下にあり、第２のコンピュータネットワークのもう一方の計算ノードが別個の第２のエンティティの制御下にあり、第２のエンティティが、クライアントに代わってネットワークアクセス可能なサービスによって提供された仮想コンピュータネットワークをクライアントが構成できるようにするネットワークアクセス可能なサービスを提供し、第１のエンティティがネットワークアクセス可能なサービスのクライアントのうちの１つであり、第２のコンピュータネットワークが、ネットワークアクセス可能なサービスによって提供された仮想コンピュータネットワークのうちの１つであり、第２のコンピュータネットワークが、第１のコンピュータネットワークに対する拡張として動作するように構成されている、第２２項に記載の計算装置。
【０１１２】
第２４項。第１のコンピュータネットワークが、１つもしくは複数の第１の地理的位置に、複数の計算ノードを有する１つもしくは複数の物理的コンピュータネットワークを含み、第２のコンピュータネットワークが、１つもしくは複数の第１の地理的位置から離れている１つもしくは複数の他の第２の地理的位置に他の複数の計算ノードを有する１つもしくは複数の他の物理的コンピュータネットワークを含む、第２１項に記載の計算装置。
【０１１３】
第２５項。１つもしくは複数の計算ノードの各々に対する移行元のコンピュータネットワークが第１のコンピュータネットワークであり、１つもしくは複数の計算ノードの各々に対する移行先のコンピュータネットワークが第２のコンピュータネットワークであり、動的な移行の簡便化が、第１のコンピュータネットワークの複数の計算ノードの各々について、第１のコンピュータネットワークの使用中に第１のコンピュータネットワークを第２のコンピュータネットワークに段階的に移行するように実行される、第２１項に記載の計算装置。
【０１１４】
第２６項。移行される１つもしくは複数の計算ノードによって使用されたアドレスがハードウェアアドレスであり、移行元のコンピュータネットワーク上の１つもしくは複数の移行された計算ノードのハードウェアアドレスを、移行元のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることが、移行元のコンピュータネットワークを経て１つもしくは複数の移行された計算ノードのハードウェアアドレスに送られた通信を、移行元のコンピュータネットワーク上のゲートウェイ装置へと向けさせるようにする、１つもしくは複数の移行された計算ノードのハードウェアアドレスを偽装する役割を果たす移行元のコンピュータネットワーク上のゲートウェイ装置を含む、第２５項に記載の計算装置。
【０１１５】
第２７項。移行された１つもしくは複数の計算ノードによって使用されたアドレスがネットワークアドレスであり、移行元のコンピュータネットワーク上の１つもしくは複数の移行された計算ノードのネットワークアドレスを、移行元のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることが、移行元のコンピュータネットワーク上のゲートウェイ装置による１つもしくは複数の宣言を開始して、移行元のコンピュータネットワークを経て１つもしくは複数の移行された計算ノードのネットワークアドレスに送られた通信を、移行元のコンピュータネットワーク上のゲートウェイ装置へと向けさせるようにすることを含む、第２５項に記載の計算装置。
【０１１６】
第２８項。移行マネージャモジュールが計算装置によって実行されるソフトウェア命令を含む、第２１項に記載の計算装置。
【０１１７】
第２９項。移行マネージャモジュールが、別個の第１のコンピュータネットワークおよび第２のコンピュータネットワークの使用中に第１のローカルエリアコンピュータネットワークと第２のローカルエリアコンピュータネットワークとの間の１つもしくは複数の計算ノードの動的な移行を簡便化するための手段からなり、動的な移行を簡便化することが、１つもしくは複数の計算ノードの各々について、
移行元のコンピュータネットワークから移行先のコンピュータネットワークへの計算ノードの移行の指示を受信することであって、移行元のコンピュータネットワークが第１のコンピュータネットワークおよび第２のコンピュータネットワークのうちの一方であり、移行先のコンピュータネットワークが第１のコンピュータネットワークおよび第２のコンピュータネットワークのうちの他方であり、移行された計算ノードが、移行前に移行元のコンピュータネットワークの動作の一部としてアドレスを使用し、移行後にそのアドレスを使用する移行先のコンピュータネットワークの別個の代替計算ノードによって代替され、これにより、移行後に、移行された計算ノードよって以前に実行された移行元のコンピュータネットワークの動作を代替計算ノードが代替するようにする、受信することと、
移行元のコンピュータネットワーク上の移行された計算ノードのアドレスを、移行先のコンピュータネットワークと対話するように構成されている移行元のコンピュータネットワーク上のゲートウェイ装置と自動的に関連付けることであって、これにより、移行後に移行元のコンピュータネットワークを経てそのアドレスに送られる１つもしくは複数の通信の各々について、移行先のコンピュータネットワークの代替計算ノードに転送されるように通信が構成されたゲートウェイ装置に転送される、自動的に関連付けることと、を含む、第２１項に記載の計算装置。
【０１１８】
本明細書に具体的な実施形態を例示目的で記載してきたが、本発明の趣旨および範囲から逸脱しない限り、様々な改変が行われてもよいということが、上記より理解されよう。したがって本発明は、添付の請求項およびそこに明記された要素以外によって制限されない。加えて、本発明の特定の態様が特定の特許請求の範囲の形態で以下に提示されるが、発明者は、利用可能な任意の特許請求の範囲の形態で本発明の様々な態様を意図する。例えば、現在は本発明のいくつかの態様だけがコンピュータ可読媒体で具現化されると明記される場合があるが、他の態様も同様に具現化される場合がある。
【図１Ａ】
2014157617.tif 000003
【図１Ｂ】
2014157617.tif 000004
【図２】
2014157617.tif 000005
【図３】
2014157617.tif 000006
【図４Ａ】
2014157617.tif 000007
【図４Ｂ】
2014157617.tif 000008
【図５】
2014157617.tif 000009
【図６】
2014157617.tif 000010