(58)【調査した分野】(Int.Cl.,DB名)
前記ネットワーク構成データは、前記顧客ネットワーク内の複数のサブネットを定義し、前記ユーザインターフェイスはさらに、前記サービスプロバイダネットワーク内の前記プライベート仮想ネットワークに含めるサブネットの部分集合を選ぶための機能性を提供するように構成される、請求項1に記載のコンピュータ実施方法。
前記第2のネットワークは、サービスプロバイダネットワークを含み、前記第1のネットワークは、前記サービスプロバイダネットワークを運用するサービスプロバイダの顧客により運用されるネットワークを含む、請求項5に記載のコンピュータ実施方法。
前記第1のネットワーク上で作動する複数の前記ネットワークリソースは、ネットワークスイッチ、ネットワークルータ、負荷分散デバイス、またはネットワークファイアウォールのうちの1つまたは複数を含む、請求項5に記載のコンピュータ実施方法。
前記第2のネットワークは、サービスプロバイダネットワークを含み、前記第1のネットワークは、前記サービスプロバイダネットワークを運用するサービスプロバイダの顧客により運用されるネットワークを含む、請求項8に記載のシステム。
前記第1のネットワーク上で作動する複数の前記ネットワークリソースは、ネットワークスイッチ、ネットワークルータ、負荷分散デバイス、またはネットワークファイアウォールのうちの1つまたは複数を含む、請求項9に記載のシステム。
【発明を実施するための形態】
【0006】
下記の詳細な説明は、サービスプロバイダネットワークにおけるプライベート仮想ネットワーク(PVN)の自動作成の技術に関する。PVNとは、ネットワークベースのコンピューティングサービスプロバイダにより提供されるネットワーク内の論理ネットワークであり、サービスプロバイダの特定の顧客によりプライベートアクセスが可能なネットワークである。サービスプロバイダは、様々なネットワーク仮想化技術を使ってPVNを実現しうる。
【0007】
ネットワークベースのコンピューティングサービスプロバイダの顧客は、本明細書で記述される技術を使用することで、顧客が運用する他のネットワーク(本明細書では「顧客ネットワーク」と称する)により提供される一部または全ての機能性を複製するPVNを、サービスプロバイダネットワークにおいて迅速にそして簡単に作成可能である。顧客ネットワークにより提供される機能性をサービスプロバイダネットワークにおいて手動で設定するという以前の困難な作業から、このように顧客は解放され得る。
【0008】
本明細書で示される実施形態に従って、サービスプロバイダネットワークにおけるPVNの自動作成のためのコンピュータ実装機構が開示される。本明細書で開示される機構は、サービスプロバイダが運用するネットワークベースの分散コンピューティング環境(本明細書では「サービスプロバイダネットワーク」と称する)と共に作動しうる。サービスプロバイダネットワークを通して顧客は、仮想マシンインスタンス、データストレージリソース、データベースリソース、PVN等のネットワーキングリソース、及びその他の種類のコンピューティングリソースを常時または必要に応じて購入及び使用可能である。
【0009】
サービスプロバイダは、リソースを作成し使用する顧客に対し、コンピューティングリソースの運用料金を請求しうる。サービスプロバイダはまた様々な購入モデルを使用して、サービスプロバイダが提供するコンピューティングリソースの使用に関して顧客にいくら請求するかを決定しうる。前述のように、このようなサービスプロバイダの顧客は、コンピューティングリソースを構成要素として使用して、アプリケーションホスティング、バックアップ及びストレージ、コンテンツ配信、ウェブホスティング、企業情報技術(IT)ソリューション、データベースサービス等の様々な種類の機能性を提供するカスタムソリューションを作成可能である。
【0010】
また前述のように、顧客ネットワークにより実現される機能性及び顧客ネットワーク上の任意のコンピューティングリソースを複製するように、サービスプロバイダネットワークにより提供されるコンポーネント及びサービスを設定することは、コンピューティングサービスプロバイダの顧客には難しいであろう。例えば顧客はオンプレミスの顧客ネットワーク(すなわち顧客が所有及び/または管理する物理的場所において顧客が運用するネットワーク)における物理的サーバコンピュータ、データベースサーバ、及びデータストレージデバイスを運用しているかもしれない。顧客は、これらのコンピューティングリソースの一部または全てにより提供される機能性をサービスプロバイダネットワークに移行することに関心があるかもしれない。しかしながら、顧客ネットワークにより提供される機能性をサービスプロバイダネットワークに複製することは、顧客には難しいであろう。本明細書で開示される様々な実施形態は、これらの検討事項及び他の可能性のある検討事項に対応する。
【0011】
上記に明示された検討事項の少なくとも一部に対応するために、本明細書で開示される実施形態は、サービスプロバイダネットワークにおけるPVNの自動作成に関するコンピュータ実装機構を提供する。特定の一実装形態において、機構にはネットワーク発見モジュールが含まれる。ネットワーク発見モジュールは、顧客ネットワークで作動するコンピューティングシステム上で実行するように構成されたソフトウェアコンポーネントとして実装され得る。例えばネットワーク発見モジュールは、顧客ネットワークで作動する物理サーバコンピュータまたは仮想マシンインスタンス上で実行しうる。ネットワーク発見モジュールが本明細書で開示される機能性を提供しているように、本明細書で開示される機能性を提供するために特定目的のハードウェアデバイスもまた使用可能である。
【0012】
ネットワーク発見モジュールは、顧客ネットワーク等のネットワークの構成を定義するデータを収集するように構成される。当機能性を提供するために、ネットワーク発見モジュールは好適なプロトコルを使用して、ネットワーク上のネットワークリソースにより提供される管理インターフェイスにアクセスしうる。例えばネットワーク発見モジュールは、シンプルネットワークマネージメントプロトコル(SNMP)を使用して、ネットワーク上のネットワークリソースにアクセスしネットワーク構成データを取得しうる。ネットワーク上のネットワークリソースからネットワーク構成データを取得するには、他の種類の機構も使用可能である。ネットワークリソースには、ネットワークスイッチ、ネットワークルータ、負荷分散デバイス、ネットワークファイアウォール、ネットワーク管理システム等が含まれるが、これらに限定されない。
【0013】
ネットワーク発見モジュールにより収集されたネットワーク構成データには、ネットワークの構成の態様を定義するあらゆる種類のデータが含まれ得る。ネットワーク構成データには例えば、顧客ネットワークが使用しているネットワークアドレス空間を定義するデータ、顧客ネットワーク内の一以上のサブネットを定義するデータ、顧客ネットワークに存在する一以上のネットワークアクセス制御リスト(ACL)を定義するデータ、顧客ネットワークに存在する一以上のルーティングルールを定義するデータ、顧客ネットワークに存在する一以上のネットワークアドレス変換(NAT)インスタンスを定義するデータ、顧客ネットワーク内のファイアウォールを定義するデータ、及び顧客ネットワークに存在する一以上のインターネットゲートウェイデバイスを定義するデータが含まれ得るが、これらに限定されない。ネットワーク発見モジュールはまた、他の種類のネットワークデバイスから他の種類のネットワーク構成データも収集しうる。
【0014】
ネットワークの構成を記述したネットワーク構成データが収集されると、ネットワーク発見モジュールはまた、収集されたネットワーク構成データをユーザが修正できるユーザインターフェイス(UI)等の好適なインターフェイスを提供しうる。例えばユーザは、サービスプロバイダネットワーク内のPVNに含める、ネットワークにおいて特定されたネットワークリソースの部分集合または上位集合を選べるが、これに限定されない。特にネットワークが任意のサブネットワーク(サブネット)を含む場合、ユーザはサービスプロバイダネットワークにおいて作成するPVNに含めるサブネットを当該の任意のサブネットから選択可能である。このようにユーザはサービスプロバイダネットワーク内のPVNに含めるサブネットの部分集合を選択可能である。また収集されたネットワーク構成データをユーザが修正できるAPIまたはコマンドラインインターフェイス等の他の種類のインターフェイスも提供される。
【0015】
ユーザはまたUIを使用して、サービスプロバイダネットワーク内のPVNが使用するネットワークアドレスを指定可能である。いくつかの実装形態においてUIはまた、サービスプロバイダネットワーク内のPVNが使用可能なネットワークアドレスを推薦するように構成され得る。一実施例としてUIは、顧客ネットワーク内で使用されているネットワークアドレスと重複もしくは競合しないPVNのネットワークアドレスを推薦しうる。
【0016】
UIはまた、他の方法でネットワーク構成データを修正する機能性を提供しうる。例えばユーザは、NATインスタンス、ネットワークACL、ルーティングルール、ファイアウォール、インターネットゲートウェイ、負荷分散デバイス、及び/または他のネットワーキングリソースを追加、削除、または修正可能である。またUIによりユーザは、本明細書で明記されていない他の方法でもネットワーク構成データを修正可能である。さらにネットワーク構成データを修正するためのUI以外のインターフェイスも提供され得る。
【0017】
ネットワーク構成データに修正がある場合はユーザによる当修正が完了後、ネットワーク構成データを使ってPVN展開テンプレートが作成され得る。PVN展開テンプレートには、サービスプロバイダネットワークにおいて作成されるPVNの構成を記述するデータが含まれる。PVN展開テンプレートは例えば、PVNが使用するネットワークアドレス、PVN内のサブネット、PVNで使用されるネットワークACL、PVNで使用されるルーティングルール、PVNに実装されるNATインスタンス、PVNに実装されるインターネットゲートウェイ及び/またはファイアウォール、及び/またはPVNをサービスプロバイダネットワークに実装する方法を定義する他の種類の情報を指定しうるが、これらに限定されない。
【0018】
一実施形態においては、ネットワーク発見モジュールがPVN展開テンプレートを作成する。他の実施形態においては、サービスプロバイダネットワーク内のコンポーネント等の他のコンポーネントが、収集されたネットワーク構成データを使用してPVN展開テンプレートを作成し得る。いくつかの実装形態においては、PVN展開テンプレートを作成せずにネットワーク構成データを直接使用して、サービスプロバイダネットワークにおいてPVNが作成され得る。
【0019】
仮想ネットワーク展開コンポーネント等のサービスプロバイダネットワーク内のコンポーネントは、PVN展開テンプレートを使用してサービスプロバイダネットワークにおけるPVNのインスタンスを生成しうる。代替として、仮想ネットワーク展開コンポーネントは、ネットワーク構成データを直接使用してサービスプロバイダネットワークにおけるPVNのインスタンスを生成しうる。ユーザがネットワーク構成データに行った修正内容に応じて、顧客ネットワークの構成と同一または類似の構成でPVNが作成され得る。このように、顧客ネットワークにより提供される機能性をサービスプロバイダネットワークにより提供されるPVNに手動で設定するという以前の困難な作業から、顧客は解放され得る。
【0020】
PVNが作成されると、顧客はPVNに仮想マシンインスタンス及びその他の種類のコンピューティングリソースを追加し始められる。サービスプロバイダネットワークにおけるプライベート仮想ネットワークの自動作成に関する前述の様々なコンポーネント及びプロセスに関する追加の詳細説明は、
図1〜7に関連して下記に示される。
【0021】
本明細書で示される内容は、コンピュータプロセス、コンピュータ制御機器、コンピューティングシステム、またはコンピュータ可読記憶媒体等の製品として実行され得ることは理解されよう。本明細書で記述される内容は、一以上のコンピューティングデバイスで実行されるプログラムモジュールに関する全般の文脈の中で示されるが、当業者は他の種類のプログラムモジュールとの組み合わせにおいてその他の実装形態が実行可能であることを認識するであろう。一般的にプログラムモジュールには、特定のタスクを実行するまたは特定の抽象データ型を実行する、ルーチン、プログラム、コンポーネント、データ構造、及びその他の種類の構造が含まれる。
【0022】
本明細書に記述される内容の態様は、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な大衆消費電子製品、小型コンピュータ、メインフレームコンピュータ、手持ち型コンピュータ、携帯情報端末、電子書籍リーダー、携帯電話デバイス、特別目的ハードウェアデバイス、ネットワーク機器等を含む本明細書で記述されるコンピュータシステム構成に限らず、その他のコンピュータシステム構成において、またはその他のコンピュータシステム構成と共に実行され得ることを、当業者はまた理解するであろう。先に略述されたように、本明細書に記述される実施形態は、通信ネットワークを介して接続されている遠隔コンピューティングデバイスによりタスクが実行され得る分散コンピューティング環境において実践され得る。分散コンピューティング環境において、プログラムモジュールはローカル及びリモート両方のメモリストレージデバイスに配置され得る。
【0023】
以下の詳細説明において、本明細書の一部を形成し、及び例示のため特定の実施形態または実施例を表す添付図面を参照する。本明細書の図面は縮尺通りには描かれていない。複数の図面において、同じ参照番号は同じ要素を示す。
【0024】
図1は、サービスプロバイダネットワークにおけるPVNの自動作成に関して本明細書に記述される一例示的機構の態様を表すネットワークアーキテクチャ図を示す。先に略述されたように、本明細書で開示される様々な機構は、サービスプロバイダネットワーク102と共に作動しうる。サービスプロバイダネットワーク102において顧客は、仮想マシンインスタンス、ネットワーキングリソース、ストレージリソース、またはその他の種類のコンピューティングリソースといったコンピューティングリソース104A〜104N(本明細書では「リソース104」と称する)をサービスプロバイダから常時または必要に応じて購入及び使用することが可能である。
【0025】
コンピューティングリソース104の各種類または構成は、異なるサイズのサービスプロバイダネットワーク102を運用するサービスプロバイダから入手可能である。例えばサービスプロバイダは、プロセッサ能力、メインメモリ、ディスクストレージ及びオペレーティングシステムの数多くの異なる構成を有する購入及び使用可能な仮想マシンインスタンスまたはその他の種類のデータ処理リソースを提供しうる。サービスプロバイダはまた、顧客が購入及び使用可能な他の種類のリソース104も提供し得る。例えばサービスプロバイダは、負荷分散リソース、ドメインネームサービス(DNS)リソース及び本明細書に記述されるPVN等の仮想ネットワーキングリソースといった、データベースリソース、ファイルまたはブロックデータストレージリソース及び/またはネットワーキングリソース、そして/またはその他の種類のリソースを、常時または必要に応じて提供しうる。
【0026】
サービスプロバイダネットワーク102を運用するサービスプロバイダはまた、リソース104を作成し使用する顧客に対しリソース104の運用料金を請求しうる。特定のリソース104に対する請求料金は、リソース104の種類及び/または構成に基づいて決定され得る。また特定のリソース104に対する請求料金は、リソース104が使用された時間に基づいて決定され得る。例えばデータ処理リソースの場合、仮想マシンインスタンスのように、リソースの使用料金はリソースが使用された時間に基づいて決定され得る。データストレージリソース104の場合、保存したデータ量、及び/またはリソースへ転送したデータ量またはリソースから転送したデータ量に基づいてその料金が計算され得る。また他の種類のリソース104の料金は、他の考慮事項に基づいて決定され得る。サービスプロバイダはまた様々な購入モデルを使用して、サービスプロバイダが提供するリソース104の使用に関して顧客に請求する金額を決定しうる。
【0027】
前述のリソース104は、サービスプロバイダにより運用される一以上のデータセンタによる特定の一実装形態において提供され得る。当業者には既知の通り、データセンタはコンピュータシステム及び関連コンポーネントを収容及び運用するのに使用される設備である。データセンタはまた一般的に、冗長性のある予備電源、通信、冷却、及びセキュリティに関するシステムを含む。データセンタは地理的に異なる場所に配置され、そしてコロケーション設備及び、インターネット等の様々な広域ネットワーク(WAN)116といった様々な他の設備にも接続され得る。
図1に示される環境においてサービスプロバイダは、サービスプロバイダネットワーク102内のリソース104をその顧客に提供するように構成された一以上のデータセンタを運用しうる。本明細書で開示される機能性を提供するサービスプロバイダネットワーク102の実装形態に関する詳細説明は、
図5及び6に関連して後述される。
【0028】
前述の様々なリソース104はまた、必要に応じて自動化された形でプロビジョン及びプロビジョン解除され得る。例えば顧客は、仮想マシンのインスタンス等のコンピューティングリソース104の新規インスタンスを作成するために、サービスプロバイダネットワーク102に要求を送信しうる。このような要求を受けたことに応じて、プロビジョニングコンポーネント(
図1に表示せず)またはサービスプロバイダネットワーク102内の一以上のその他のコンポーネントは、顧客の要求通りに仮想マシンの新規インスタンスを作成しうる。そして顧客は仮想マシンの新規インスタンスを所望通りに使用することが可能になる。他の種類のコンピューティングリソースも同様にインスタンス化され得る。例えば、更なる詳細説明が後述されるように、仮想ネットワーク展開コンポーネント120は、PVN等のネットワーキングリソースを展開するように構成されたサービスプロバイダネットワーク102内のコンポーネントである。
【0029】
顧客は仮想マシンインスタンス等のコンピューティングリソース104を使用し終えたら、リソース104にプロビジョン解除を要求してもよい。これに応じてプロビジョニングコンポーネントまたはサービスプロバイダネットワーク102内の他のコンポーネントは、コンピューティングリソース104のプロビジョン解除を行い得る。他の種類のコンピューティングリソース104もまた同様の方法でプロビジョン及びプロビジョン解除され得る。サービスプロバイダネットワーク102はまた、コンピューティングリソース104または他の要素に対する要求に基づいてリソース104を自動でスケーリング及び/またはデスケーリングする機能性を提供しうる。
【0030】
図1で示されるように、サービスプロバイダネットワーク102を運用するサービスプロバイダの顧客または潜在顧客は、一以上のコンピューティングリソースを含む顧客ネットワーク106を運用しうる。サービスプロバイダネットワーク102内のコンピューティングリソース104と同様に、顧客ネットワーク106内のコンピューティングリソースには、データ処理リソース、データストレージリソース、データベースリソース、ネットワーキングリソース108A〜108C、及びその他の種類のコンピューティングリソースが含まれ得る。ネットワーキングリソース108A〜108Cには、ネットワークスイッチ、ネットワークルータ、ネットワークファイアウォール、及びその他の種類のネットワークコンポーネントが含まれ得る。
【0031】
いくつかの実施形態において、顧客ネットワーク106はオンプレミスの顧客ネットワークである。先に略述されたように、オンプレミスの顧客ネットワークとは、顧客が所有及び/または管理する物理的場所において顧客が運用するネットワークである。例えば顧客は自分のオフィスまたは他の設備において、顧客ネットワーク106を運用しうる。また顧客ネットワーク106は、他の実施形態において前述された方法でサービスプロバイダが提供するサービスプロバイダネットワーク102に実装され得る。
【0032】
前述のように、コンピューティングサービスプロバイダの顧客にとって、顧客ネットワーク106により提供される機能性を、サービスプロバイダネットワーク102に移行することは難しいであろう。例えば
図1に示される実施例において、顧客は、顧客ネットワーク106で作動するコンピューティングリソースにより提供される機能性をサービスプロバイダネットワーク102に移行することに関心があるかもしれない。しかしながら、顧客ネットワーク106内のネットワークリソース108A〜108Cにより提供される機能性を提供するように、サービスプロバイダネットワーク102においてPVN122を設定し作成することは、顧客には難しいだろう。
【0033】
コンピューティングサービスプロバイダの潜在顧客がサービスプロバイダネットワーク102へ移行するのを手伝うために、本明細書に示される実施形態はネットワーク発見モジュール112を使用する。先に略述されたように、ネットワーク発見モジュール112は、物理コンピュータまたは仮想マシンインスタンス等の、顧客ネットワーク106内のコンピューティングシステム110で実行するように構成されたソフトウェアコンポーネントとして実装され得る。いくつかの実施形態において、ネットワーク発見モジュール112はサービスプロバイダネットワーク102内のコンピューティングシステム上で実行され得る。
【0034】
顧客ネットワーク106がサービスプロバイダネットワーク102を利用して実行される場合、ネットワーク発見モジュール112がサービスプロバイダネットワーク102内のコンピューティングリソース104上でも実行され得る。例えば顧客が、あるサービスプロバイダから別のサービスプロバイダへ切換えを検討している場合、サービスプロバイダネットワーク102内のコンピューティングリソース104上でネットワーク発見モジュール112を実行することは価値があるだろう。
【0035】
ネットワーク発見モジュール112が提供する機能性はまた、ハードウェアにおいて、ハードウェアとソフトウェアの組合せにおいて、または他の様式において実装され得る。ネットワーク発見モジュール112はバックグラウンドで実行され、そして最小限のコンピューティングリソースを使用するように構成され得る。このようにネットワーク発見モジュール112の実行は、同一のコンピューティングシステム110で実行される他のプロセスに影響しない。ネットワーク発見モジュール112はまた、多数のコンピューティングシステムに渡って分散して実行されるように構成され得る。
【0036】
先に略論されたように、ネットワーク発見モジュール112は、顧客ネットワーク106を実現するネットワークリソース108A〜108Cからネットワーク構成データ114を収集するように構成される。ネットワークリソース108A〜108Cには、ネットワークスイッチ、ネットワークルータ、ネットワークファイアウォール、ネットワーク管理システム、負荷分散デバイス、及びその他の種類のネットワークコンポーネントが含まれるが、これらに限定されない。ネットワーク構成データ114は、顧客ネットワーク106の構成の態様を定義する。
【0037】
ネットワーク構成データ114を取得するために、ネットワーク発見モジュール112は好適なプロトコルを使用して、顧客ネットワーク106上のネットワークリソース108A〜108Cにより提供される管理インターフェイスにアクセスしうる。例えばネットワーク発見モジュール112は、SNMPまたは他の好適なプロトコルを使用して、顧客ネットワーク106上のネットワークリソース108A〜108Cにアクセスしネットワーク構成データ114を取得しうる。ネットワーク発見モジュール112はまた、これらに限られるものではないが、API呼出し、コマンドライン呼出し、及びハードウェアデバイスの所有管理ポート等の他の種類の機構を使用して、顧客ネットワーク106上のネットワークリソース108A〜108Cからネットワーク構成データ114を取得しうる。いくつかの実装形態において、ネットワーク発見モジュール112は、インターフェイスで接続して様々なメーカーにより作成されたネットワークデバイスからネットワーク構成データ114を取得するように構成されたプラグインプログラムモジュールを使用するように構成される。
【0038】
ネットワーク発見モジュール112により収集されたネットワーク構成データ114には、顧客ネットワーク106等のネットワークの構成の態様を定義するあらゆる種類のデータが含まれ得る。ネットワーク構成データ114には例えば、顧客ネットワーク106が使用しているネットワークアドレス空間を定義するデータ、顧客ネットワーク106内の一以上のサブネットを定義するデータ、顧客ネットワーク106に存在する一以上のネットワークACLを定義するデータ、顧客ネットワーク106に存在する一以上のルーティングルールを定義するデータ、顧客ネットワーク106に存在する一以上のNATインスタンスを定義するデータ、顧客ネットワーク106内のファイアウォールを定義するデータ、顧客ネットワーク106内の一以上の負荷分散デバイスを定義するデータ、及び顧客ネットワーク106に存在する一以上のインターネットゲートウェイデバイスを定義するデータが含まれ得るが、これらに限定されない。ネットワーク発見モジュール112はまた、本明細書で明記されていない他の種類のネットワークデバイスから他の種類のネットワーク構成データ114を収集しうる。
【0039】
顧客ネットワーク106の構成を記述したネットワーク構成データ114が収集されると、ネットワーク発見モジュール112はまた、収集されたネットワーク構成データ114をユーザが閲覧及び修正できるUI等の好適なインターフェイスを提供しうる。例えばUIは収集されたネットワーク構成データ114を表示しうる。特にUIは、顧客ネットワーク106において特定されたサブネット、顧客ネットワーク106で使用されているネットワークACL、顧客ネットワーク106で使用されているクラスレスドメイン間ルーティング(CIDR)範囲、顧客ネットワーク106内の任意のNATインスタンスまたはインターネットゲートウェイデバイス、及び/または他の種類のネットワーク構成データ114のリストを表示しうる。
【0040】
UIはまた、サービスプロバイダネットワーク102内のPVN122に含める、顧客ネットワーク106において特定されたネットワークリソース108A〜108Cの部分集合または上位集合をユーザが選べる機能性を提供しうる。特に顧客ネットワーク106が任意のサブネットを含む場合、ユーザはサービスプロバイダネットワーク102において作成するPVN122に含めるサブネットを当該の任意のサブネットから選択可能である。このようにユーザはサービスプロバイダネットワーク102内のPVN122に含めるサブネットの部分集合を選択可能である。同様にUIは、顧客ネットワーク102において作成するPVN122に含める、またはPVN122から除外する他の種類のネットワークリソース108A〜108Cを選択するための機能性も提供しうる。
【0041】
ユーザはまた、UIまたはネットワーク発見モジュール112により提供される他の種類のインターフェイスを使用して、サービスプロバイダネットワーク102において作成されるPVN122が使用するネットワークアドレスを変更または指定可能である。いくつかの実装形態においてインターフェイスはまた、サービスプロバイダネットワーク102内のPVN122が使用可能なネットワークアドレスを推薦するように構成され得る。一実施例としてUIは、顧客ネットワーク106内で使用されているネットワークアドレスと重複または競合しない、PVN122またはPVN122内のサブネットのネットワークアドレスを推薦しうる。
【0042】
UIはまた、他の方法でネットワーク構成データを修正する機能性も提供しうる。例えばユーザは、ネットワーク構成データ114に関して、NATインスタンス、負荷分散デバイス、ネットワークACL、ルーティングルール、ファイアウォール、インターネットゲートウェイ、及び/または他のネットワーキングリソース108を追加、削除、または修正可能である。またUIによりユーザは、本明細書で明記されていない他の方法でもネットワーク構成データ114を修正可能である。さらにネットワーク構成データを修正するためのUI以外のインターフェイスも提供され得る。
【0043】
いくつかの実施形態において、前述のUIはサービスプロバイダネットワーク102内のコンポーネントにより提供される。例えばネットワーク発見モジュール112は、サービスプロバイダネットワーク102内のコンポーネントへ収集されたネットワーク構成データ114を送信しうる。そしてこのコンポーネントは、前述の方法及び/または他の方法でネットワーク構成データ114を修正するための好適なUIまたは他の種類のインターフェイスを提供しうる。収集されたネットワーク構成データ114を修正するために、他のネットワークの他のコンポーネントも使用可能である。
【0044】
一実施形態において、ネットワーク構成データ114に修正がある場合はユーザによる当修正が完了後、ネットワーク構成データ114を使ってPVN展開テンプレート118が作成され得る。PVN展開テンプレート118には、サービスプロバイダネットワーク102において作成されるPVN122の構成を記述するデータが含まれる。PVN展開テンプレート118は例えば、PVN122が使用するネットワークアドレス、PVN122内のサブネット、PVN122で使用されるネットワークACL、PVN122で使用されるルーティングルール、PVN122に実装されるNATインスタンス、PVN122に実装されるインターネットゲートウェイ及び/またはファイアウォール、及び/またはPVN122をサービスプロバイダネットワーク102に実装する方法を定義する他の種類の情報を指定しうるが、これらに限定されない。PVN展開テンプレート118は、ジェイソン(JavaScript Object Notation(JSON))または他の好適な言語を使って実現され得る。PVN展開テンプレート118は、サービスプロバイダネットワーク102に作成されたPVN122が顧客ネットワーク106の構成と同一または類似の構成を有するように定義され得る。
【0045】
一実施形態においては、ネットワーク発見モジュール112がPVN展開テンプレート118を作成する。他の実施形態においては、サービスプロバイダネットワーク102内のコンポーネント等の別のコンポーネントが、収集されたネットワーク構成データ114を使用してPVN展開テンプレート118を作成し得る。さらにいくつかの実装形態においては、PVN展開テンプレート118は作成され得ない。これらの実装形態においては、PVN展開テンプレート118を最初に作成せずに、収集されたネットワーク構成データ114を直接使用して、サービスプロバイダネットワーク102においてPVN122が作成され得る。
【0046】
一実施形態において、仮想ネットワーク展開コンポーネント120等のサービスプロバイダネットワーク102内のコンポーネントは、PVN展開テンプレート118を使用してサービスプロバイダネットワーク102におけるPVN122のインスタンスを生成しうる。代替として、仮想ネットワーク展開コンポーネント120は、ネットワーク構成データ114を直接使用してサービスプロバイダネットワーク102におけるPVN122のインスタンスを生成しうる。ユーザがネットワーク構成データ114に行った修正内容に応じて、顧客ネットワーク106の構成と同一または類似の構成でPVN122が作成され得る。このように、顧客ネットワーク106を運用する顧客は、顧客ネットワークにより提供される機能性をサービスプロバイダネットワーク102により提供されるPVN122に手動で設定するという以前の困難な作業から解放され得る。
【0047】
PVN122が作成されると、顧客はPVN122に仮想マシンインスタンス及びその他の種類のコンピューティングリソース104を追加し始められる。サービスプロバイダネットワーク102におけるPVN122の自動作成に関する前述の様々なコンポーネント及びプロセスに関する追加の詳細説明は、
図2〜7に関連して下記に示される。
【0048】
図2は、サービスプロバイダネットワーク102におけるPVN122の自動作成に関する一例示的ルーチン200を表すフロー図を、本明細書で開示される一実施形態に従って示す。
図2及びその他の図に関して本明細書に記述される論理演算処理は、(1)連続するコンピュータ実施動作またはコンピューティングシステム上で作動するプログラムモジュールとして、及び/または(2)相互接続されたマシンの論理回路またはコンピューティングシステム内の回路モジュールとして実行され得ることは理解されよう。本明細書に記述される様々なコンポーネントの実装は、コンピューティングシステムの性能及び他の要件に従って選択可能である。従って本明細書に記述される論理演算処理は、演算処理、構造的デバイス、動作、またはモジュールという様々な形で言及される。これらの演算処理、構造的デバイス、動作、及びモジュールは、ソフトウェア、ファームウェア、特定目的デジタル論理、及びこれらの任意の組合せにおいて実行され得る。図に示され本明細書に記述される演算処理に比べて、より多くの、またはより少ない演算処理が実行され得ることも理解されたい。これらの演算処理は並行して、または本明細書で記述される順序とは異なる順序でも実行され得る。
【0049】
ルーチン200は、ネットワーク発見モジュール112を顧客ネットワーク106内の少なくとも一つのコンピューティングシステム110にインストールする演算処理202から始まる。例えば前述のようにネットワーク発見モジュール112は、顧客ネットワーク106に接続された物理コンピュータまたは仮想マシンにインストールされ得る。ネットワーク発見モジュール112が顧客ネットワーク106に接続されたコンピューティングシステム110にインストールされると、ルーチン200は演算処理204へ進む。
【0050】
演算処理204において、ネットワーク発見モジュール112が実行され、顧客ネットワーク106上の様々なネットワークリソース108A〜108Cからネットワーク構成データ114が収集される。前述のようにネットワーク発見モジュール112は、ネットワークリソース108A〜108Cが公開する様々な管理インターフェイスにアクセスし、ネットワーク構成データ114を取得しうる。当プロセスに関する追加の詳細説明は、
図3に関連して下記に示される。
【0051】
ルーチン200は演算処理204から演算処理206へ進む。演算処理206において、収集されたネットワーク構成データ114を表示し、そして収集されたネットワーク構成データ114をユーザが修正できるUIまたは他の種類のインターフェイスが、ネットワーク発見モジュール112または他のコンポーネントにより提供される。このようなインターフェイスを通じてなされ得る様々な種類の修正に関する詳細は、
図4に関連して後述される。
【0052】
ルーチン200は演算処理206から、ネットワーク構成データ114を使用してPVN展開テンプレート118を作成する演算処理208へ進む。前述のようにPVN展開テンプレート118には、サービスプロバイダネットワーク102において作成されるPVN122の構成を記述するデータが含まれる。また前述のように、全ての実装形態においてPVN展開テンプレート118は作成され得ない。むしろいくつかの実装形態においては、収集され、その後修正された可能性のあるネットワーク構成データ114を直接使用して、サービスプロバイダネットワーク102におけるPVN122が構成され得る。
【0053】
演算処理210において、ネットワーク発見モジュール112がサービスプロバイダネットワーク102内の仮想ネットワーク展開コンポーネント120へPVN展開テンプレート118を送信する。いくつかの実施形態において、PVN展開テンプレート118は、サービスプロバイダネットワーク102内のサービスまたは他のコンポーネントにより作成され得る。これらの実施形態においては、ネットワーク発見モジュール112が仮想ネットワーク展開コンポーネント120へPVN展開テンプレート118を送信する必要はないであろう。さらに前述のように、全ての実装形態においてPVN展開テンプレート118は使用されるわけではない。
【0054】
ルーチン200は演算処理210から、仮想ネットワーク展開コンポーネント120がPVN展開テンプレート118を使用してサービスプロバイダネットワーク102におけるPVN122を生成する演算処理212へ進む。前述のようにPVN122は、顧客ネットワーク106と同一または類似の構成を有するように作成され得る。PVN122が作成されると、仮想プライベートネットワーク(VPN)、ネットワーク直接接続を使って、インターネットゲートウェイを介して、または他の方法で、顧客はサービスプロバイダネットワーク102内のPVN122にアクセスできる。
【0055】
ルーチン200は演算処理212から、顧客が新規に作成されたPVN122にコンピューティングリソース104を展開しうる演算処理214へ進む。例えば顧客はPVN122の運用のために様々な仮想マシンインスタンスを構成しうる。サービスプロバイダネットワーク102を運用するサービスプロバイダから入手可能である他の種類のコンピューティングリソース104も、類似の方法で、PVN122上に構成可能である。ルーチン200は演算処理214から演算処理216へ進み、終了する。
【0056】
図3は、サービスプロバイダネットワーク102におけるPVN122の自動作成において使用されるネットワークリソース108から、ネットワーク構成データ114を収集する一例示的ルーチン300を表すフロー図を、本明細書で開示される一実施形態に従って示す。前述のようにネットワーク発見モジュール112は、ネットワークリソース108A〜108Cが公開する様々な管理インターフェイスにアクセスし、ネットワーク構成データ114を取得しうる。
図3は、収集され得る様々な種類のネットワーク構成データ114の態様を例示する。
【0057】
ルーチン300は、ネットワーク発見モジュール112が顧客ネットワーク106内のネットワークリソース108A〜108Cから、顧客ネットワーク106が使用しているネットワークアドレス空間のサイズを定義するデータを収集する演算処理302から始まる。ルーチン300はそして、ネットワーク発見モジュール112が顧客ネットワーク106内のネットワークリソース108A〜108Cから、顧客ネットワーク106で定義されている実際のネットワークアドレス等のネットワークアドレス空間を定義するデータを収集する演算処理304へ進む。
【0058】
ルーチン300はそして演算処理304から、ネットワーク発見モジュール112が顧客ネットワーク106内のネットワークリソース108A〜108Cから、顧客ネットワーク106内の任意のサブネットを定義するデータを収集する演算処理306へ進む。ルーチン300はそして、ネットワーク発見モジュール112が顧客ネットワーク106内のネットワークリソース108A〜108Cから、顧客ネットワーク106で使用されている任意のネットワークACLを定義するデータを収集する演算処理308へ進む。
【0059】
ルーチン300はそして演算処理308から、ネットワーク発見モジュール112が顧客ネットワーク106内のネットワークリソース108A〜108Cから、顧客ネットワーク106で使用されている任意のルーティングルールを定義するデータを収集する演算処理310へ進む。ルーチン300はそして、ネットワーク発見モジュール112が顧客ネットワーク106内のネットワークリソース108A〜108Cから、顧客ネットワーク106で使用されている任意のNATインスタンスを定義するデータを収集する演算処理312へ進む。同様に演算処理314においてネットワーク発見モジュール112は、顧客ネットワーク106内のネットワークリソース108A〜108Cから、顧客ネットワーク106で使用されている任意のインターネットゲートウェイを定義するデータを収集する。
【0060】
ルーチン300はそして演算処理316から、ネットワーク発見モジュール112が顧客ネットワーク106内のネットワークリソース108A〜108Cから、具体的に前述されていない他の種類のネットワーク構成データ114を収集し得る演算処理318へ進む。この点において、前述された様々な種類のネットワーク構成データ114は単なる例示にすぎず、他の種類のネットワーク構成データ114が本明細書で記述される方法で収集及び使用され得ることは理解されよう。ルーチン300は演算処理316から演算処理318へ進み、終了する。
【0061】
図4は、顧客ネットワーク106内のネットワークリソース108A〜108Cから収集されたネットワーク構成データ114を修正するためのUIを提供する一例示的ルーチン400を表すフロー図を、本明細書で開示される一実施形態に従って示す。概してUIについて下記に説明されるが、先に略述されたように、収集されたネットワーク構成データ114をユーザが閲覧及び/または修正できるように、他の種類のインターフェイス及び/または機構が提供され得る。
【0062】
ルーチン400は、収集されたネットワーク構成データ114を表示し得る演算処理402から始まる。例えば先に略述されたように、顧客ネットワーク106において特定されたサブネット、顧客ネットワークで使用されているネットワークACL、顧客ネットワーク106で使用されているCIDR範囲、顧客ネットワーク106内の任意のNATインスタンスまたはインターネットゲートウェイデバイス、及び他の種類のネットワーク構成データ114のリストを含むUIが表示され得る。ルーチン400はそして演算処理402から演算処理404へ進む。
【0063】
演算処理404において、ユーザがサービスプロバイダネットワーク102内のPVN122に含める、顧客ネットワーク106において特定されたネットワークリソース108の部分集合または上位集合を選べるUIが表示される。特にUIは、ユーザがサービスプロバイダネットワーク102において作成するPVN122に含めるサブネットを選択できる機能性を提供しうる。このようにユーザは、PVN122に含めるサブネットの部分集合を選択可能である。UIはまた、PVN122に他のネットワークリソースを含める、またはPVN122から他のネットワークリソースを除外する機能性を提供しうる。
【0064】
ルーチン400は演算処理404から、サービスプロバイダネットワーク102内のPVN122が使用するネットワークアドレスを、ユーザが修正及び/または特定することができるUIを提供する演算処理406へ進む。前述のようにいくつかの実装形態においてUIはまた、サービスプロバイダネットワーク102内のPVN122が使用可能なネットワークアドレスを推薦するように構成され得る。一実施例としてUIは、顧客ネットワーク106内で使用されているCIDR範囲と重複または競合しない、PVN122が使用するネットワークアドレスを推薦しうる。いくつかの実施形態において顧客は、顧客ネットワーク106内で使用されているネットワークアドレスと重複する、PVN122が使用するネットワークアドレスを作成することが可能であることは理解されたい。これらの実装形態において、顧客はプロキシ層または他の機構を使用して、確実にその重複が公開されないようにしうる。これは、例えばテストや他の目的のために顧客ネットワーク106の全てまたは一部のネットワークトポロジと同一のPVN122内のネットワークトポロジを作成(アドレス指定も含む)するのに役に立ちうる。
【0065】
ルーチン400は演算処理406から、ネットワーク構成データ114内のネットワークリソース108を、ユーザが追加、削除、及び/または修正できるUIを提供する演算処理408へ進む。例えばユーザは、ネットワーク構成データ114においてNATインスタンス、ファイアウォール、インターネットゲートウェイ、負荷分散デバイス、及び/または他のネットワーキングリソース108を追加、削除、及び/または修正可能である。同様に演算処理408において、ネットワーク構成データ114により指定されるネットワークACL及び/またはルーティングルールを、ユーザが追加、削除、及び/または修正できるUIが提供され得る。
【0066】
ルーチン400は演算処理410から、ネットワーク構成データ114により指定されるPVN122の構成の他の態様を、ユーザが追加、修正、及び/または削除できるUIを提供し得る演算処理412へ進む。この点において、具体的に前述されていないPVN122の他の動作態様をユーザが指定できる機能性が提供され得ることは理解されよう。ルーチン400は演算処理412から演算処理414へ進み、終了する。
【0067】
いくつかの実施形態において、ネットワーク発見モジュール112はまた他の種類の機能を有するように構成され得る事が理解されよう。例えば一実施形態において、ネットワーク発見モジュール112は顧客ネットワーク106に存在するファイアウォールルールを発見するように構成されている。ファイアウォールルールは、ネットワークリソース108上の好適な管理インターフェイスへの問い合わせ、顧客ネットワーク106上のパケットの検出、または他の方法で発見され得る。
【0068】
一以上のファイアウォールルールが特定されると、ネットワーク発見モジュール112はそのファイアウォールルールを特定するデータを、サービスプロバイダネットワーク102内の仮想ネットワーク展開コンポーネント120または他のコンポーネントへ送信し得る。そしてファイアウォールルールは、仮想マシンインスタンス等のPVN122内のコンピューティングリソース104により使用されるセキュリティグループルールに変換され得る。このように顧客ネットワーク106において定義されるファイアウォールルールは、特定可能及び、サービスプロバイダネットワーク102内のVPN122で使用されるのに好適なセキュリティグループルールに変換可能である。この点において、ネットワーク発見モジュール112及び前述の他のコンポーネントはまた、本明細書に明記されていない追加の機能性を有するように構成され得ることは理解されよう。
【0069】
図5は、PVN122の自動作成に関する前述の機能性を提供するように構成され得るサービスプロバイダネットワーク102を含む、本明細書で開示される実施形態の一例示的動作環境を表すシステム及びネットワーク図を示す。先に略論されたように、サービスプロバイダネットワーク102は常時または必要に応じてコンピューティングリソース104を提供可能である。サービスプロバイダネットワーク102が提供するコンピューティングリソース104には、データ処理リソース、データストレージリソース、ネットワーキングリソース、データ通信リソース等、様々な種類のコンピューティングリソース104が含まれ得る。
【0070】
各種類のコンピューティングリソース104は汎用的であるか、または多数の特定構成において利用可能でありうる。例えば先に略述されたように、データ処理リソースは、多数の異なる構成において仮想マシンインスタンスとして利用可能である。仮想マシンインスタンスは、ウェブサーバ、アプリケーションサーバ、メディアサーバ、データベースサーバ、及びその他の種類のアプリケーションを実行するように構成され得る。データストレージリソースには、ファイルストレージデバイス、ブロックストレージデバイスなどが含まれ得る。
【0071】
また先に略述されたように、サービスプロバイダネットワーク102が提供するコンピューティングリソース104は、一実装形態において一以上のデータセンタ502A〜502N(本明細書では「データセンタ502」(単数または複数)と称する)により有効化される。データセンタ502は、コンピュータシステム及び関連コンポーネントを収容及び運用するのに使用される設備である。データセンタ502は一般的に、冗長性のある予備電源、通信、冷却、及びセキュリティに関するシステムを含む。データセンタ502はまた、地理的に異なる場所に配置され得る。サービスプロバイダネットワーク102におけるPVN122の自動作成に関して本明細書で開示される機能性の態様を実行するデータセンタ502の一例示的構成が、
図6に関連して後述される。
【0072】
顧客及びサービスプロバイダネットワーク102の他のユーザは、WAN116を介してサービスプロバイダネットワーク102が提供するコンピューティングリソースにアクセスしうる。WAN116は
図5で例示されているが、データセンタ502を遠隔の顧客及び他のユーザに接続するために、ローカルエリアネットワーク(LAN)、インターネット、または技術的に知られている任意の他のネットワーキングトポロジが使用され得ることは理解されよう。このようなネットワークを組み合わせて使用され得ることも理解されたい。顧客はVPN、ネットワーク直接接続を使って、インターネットゲートウェイを介して、または他の方法で、PVN122にアクセスできる。
【0073】
図6は、サービスプロバイダネットワーク102におけるPVN122の自動作成に関して本明細書で開示される発想及び技術の態様を実現するデータセンタ502の一構成を例示するコンピューティングシステム図を、本明細書で開示される一実施形態に従って示す。
図6に示される例示的データセンタ502には、コンピューティングリソース104を提供するいくつかのサーバコンピュータ602A〜602F(本明細書では「サーバコンピュータ602」(単数または複数)と称する)が含まれる。
【0074】
サーバコンピュータ602は、本明細書で記述されるコンピューティングリソースを提供するように好適に構成された標準タワー型またはラックマウント型のサーバコンピュータでありうる。例えば一実装形態において、サーバコンピュータ602はコンピューティングリソース104A〜104Nを提供するように構成される。前述のようにコンピューティングリソース104には、データ処理リソース、データストレージリソース、データベースリソース、PVN等のネットワーキングリソース等がありうる。いくつかのサーバ602はまた、リソース104をインスタンス化及び/または管理可能なリソースマネージャ604を実行するように構成され得る。例えば仮想マシンインスタンスの場合、リソースマネージャ604は、例えば単一サーバコンピュータ602上の複数の仮想マシンインスタンスの実行を可能にするように構成されたハイパーバイザまたは他の種類のプログラムでありうる。
【0075】
図6に示されるデータセンタ502には、データセンタ502の動作を管理する様々なソフトウェアコンポーネントを実行するように確保され得るサーバコンピュータ602F、サーバコンピュータ602、及びコンピューティングリソース104も含まれる。
図1に関連して前述された実施形態等のいくつかの実施形態において、サーバコンピュータ602Fはまた、仮想ネットワーク展開コンポーネント120を実行するように構成され得る。データセンタ502内の他のコンピューティングシステムもまた、該当のコンポーネントを実行するために使用可能である。他の構成もまた使用可能である。
【0076】
図6に示される例示的データセンタ502において、サーバコンピュータ602A〜602Fを相互接続するために、好適なLAN606が使用される。LAN606はまた、
図5に例示されるWAN116に接続される。
図1〜6に例示される構成及びネットワークトポロジは大いに簡略化されており、本明細書で開示される様々なコンピューティングシステムの相互接続及び前述の機能性の提供のために、さらなるコンピューティングシステム、ネットワーク、及びネットワーキングデバイスが使用され得ることは理解されよう。各データセンタ502A〜502N間、各データセンタ502内の各サーバコンピュータ602A〜602F間、及び潜在的に各データセンタ502内のコンピューティングリソース104間で、負荷を分散するために、好適な負荷分散デバイスまたはソフトウェアモジュールもまた使用可能である。
図6に関連して記述されるデータセンタ502は単なる例示にすぎず、他の実装形態が使用可能であることは理解されよう。
【0077】
図7は、サービスプロバイダネットワーク102におけるPVN122の自動展開に関する前述のプログラムコンポーネントを実行可能なコンピュータ700の例示的コンピュータアーキテクチャ図を示す。
図7に示されるコンピュータアーキテクチャは、従来のサーバコンピュータ、ワークステーション、デスクトップ、コンピュータ、ノートパソコン、タブレット、ネットワーク機器、携帯情報端末(PDA)、電子書籍リーダー、デジタル携帯電話、または他のコンピューティングデバイスを例示し、及び本明細書に提示されるソフトウェアコンポーネントの任意の態様を実行するのに使用され得る。たとえば
図7に示されるコンピュータアーキテクチャは、
図1に示され及び前述されるネットワーク発見モジュール112または仮想ネットワーク展開コンポーネント120を実行するのに使用され得る。
【0078】
コンピュータ700は、システムバスまたは他の電気通信経路を介して多数のコンポーネントまたはデバイスが接続され得るプリント回路基板であるベースボード702またはマザーボードを含む。一例示的実施形態において、一以上の中央処理装置(CPU)704がチップセット706と共に作動する。CPU704は、コンピュータ700の動作に必要な算術及び論理演算処理を行う標準のプログラム可能なプロセッサでありうる。
【0079】
CPU704は、個別の物理的一状態と次の状態の区別及び切替えを行うスイッチング素子の操作を通して、個別の物理的一状態から次の状態へ移行し、演算処理を行う。スイッチング素子は一般的に、フリップフロップ回路等の二つのバイナリ状態のうちの一つを維持する電子回路、及び論理ゲート等の一以上の他のスイッチング素子の状態との論理的組合せに基づいて出力状態を提供する電子回路を含み得る。これらの基本的なスイッチング素子を組合せて、レジスタ、加算器・減算器、演算論理装置、浮動小数点演算ユニット等を含むさらに複雑な論理回路を作成してもよい。
【0080】
チップセット706は、CPU704と、ベースボード702上の残りのコンポーネント及びデバイスとの間のインターフェイスを提供する。チップセット706は、コンピュータ700においてメインメモリとして使用されるランダムアクセスメモリ(RAM)708へのインターフェイスを提供しうる。チップセット706はさらに、コンピュータ700の起動及び様々なコンポーネント及びデバイス間の情報転送を手伝う基本ルーチンを保存するため、読取り専用メモリ(ROM)710または不揮発性RAM(NVRAM)等のコンピュータ可読記憶媒体へのインターフェイスを提供しうる。ROM710またはNVRAMは、本明細書に記述される実施形態に従って、コンピュータ700の動作に必要な他のソフトウェアコンポーネントも保存しうる。
【0081】
コンピュータ700は、ローカルエリアネットワーク720等のネットワークを介して遠隔のコンピューティングデバイス及びコンピュータシステムへ論理接続を使用するネットワーク化された環境において作動しうる。チップセット706は、ギガビットイーサネットアダプタ等のNIC712を通してネットワーク接続性を提供する機能性を含み得る。NIC712はネットワーク720を介してコンピュータ700を他のコンピューティングデバイスに接続できる。コンピュータ700には、当該コンピュータを他の種類のネットワーク及び遠隔のコンピュータシステムに接続する多数のNIC712が存在し得ることは理解されよう。
【0082】
コンピュータ700は、当該コンピュータに不揮発性ストレージを提供する大容量記憶装置718に接続され得る。大容量記憶装置718は、本明細書でより詳細に記述されるシステムプログラム、アプリケーションプログラム、他のプログラムモジュール、及びデータを記憶しうる。大容量記憶装置718は、チップセット706に接続されたストレージコントローラ714を介してコンピュータ700に接続され得る。大容量記憶装置718は、一以上の物理記憶装置から成りえる。ストレージコントローラ714は、コンピュータ及び物理記憶装置間を物理的に接続しデータを転送する、シリアルアタッチドSCSI(SAS)インターフェイス、シリアルアドバンスドテクノロジアタッチメント(SATA)インターフェイス、ファイバチャネル(FC)インターフェイス、または他の種類のインターフェイスを通して物理記憶装置と接続しうる。
【0083】
コンピュータ700は、物理記憶装置に保存されている情報を示すように物理記憶装置の物理状態を変更することで、大容量記憶装置718にデータを保存しうる。特定の物理状態の変更は、当該記述に関する異なる実装形態において、様々な要因に依存しうる。このような要因の例示としては、物理記憶装置を実装するのに使用された技術、大容量記憶装置718は一次ストレージとしての特性を持つか、二次ストレージとしての特性を持つか等があり得るが、これらに限定されない。
【0084】
例えばコンピュータ700は、ストレージコントローラ714を通して、磁気ディスク装置内の特定位置の磁気特性、光学記憶装置内の特定位置の反射特性または屈折特性、または固体記憶装置内の特定のコンデンサ、トランジスタ、または他の個別のコンポーネントの電気特性を変更する命令を発することで、大容量記憶装置718に情報を保存しうる。提示された説明の精神や範囲から逸脱することなく、当該説明を簡易化するためだけに提供された前述の実施例において、他の物理媒体の変更も可能である。コンピュータ700はさらに、物理記憶装置内の一以上の特定位置の物理状態または特性を検出することで、大容量記憶装置718から情報を読み出せる。
【0085】
前述の大容量記憶装置718に加えて、コンピュータ700は他のコンピュータ可読記憶媒体にアクセス可能であり、プログラムモジュール、データ構造、または他のデータ等の情報を保存及び取得できる。コンピュータ可読記憶媒体は、非一時的データを保存し、かつコンピュータ700によってアクセスされ得る、利用可能な任意の媒体でありえることは、当業者には理解されよう。
【0086】
一例としてコンピュータ可読記憶媒体には、任意の方法または技術で実装された揮発性及び不揮発性、着脱式及び非着脱式媒体が含まれ得る。コンピュータ可読記憶媒体には、RAM、ROM、消去可能プログラム可能ROM(EPROM)、電気的消去可能プログラム可能ROM(EEPROM)、フラッシュメモリまたは他の固定メモリ技術、コンパクトディスクROM(CD−ROM)、デジタル多用途ディスク(DVD)、高精細DVD(HD−DVD)、ブルーレイまたは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、または所望の情報を非一時的に記憶するのに利用可能な他の任意の媒体が含まれる。
【0087】
大容量記憶装置718は、コンピュータ700の動作を制御するのに使用されるオペレーティングシステム730を保管しうる。一実施形態によれば、オペレーティングシステムはリナックス(LINUX)オペレーティングシステムを備える。他の一実施形態によれば、オペレーティングシステムは、マイクロソフト社(MICROSOFT Corperation)のウィンドウズサーバ(WINDOWS(登録商標)SERVER)オペレーティングシステムを備える。さらなる実施形態によれば、オペレーティングシステムはユニックス(UNIX(登録商標))またはソラリス(SOLARIS)オペレーティングシステムを備えてもよい。他のオペレーティングシステムも使用可能であることは理解されよう。大容量記憶装置718は、ネットワーク発見モジュール112、仮想ネットワーク展開コンポーネント120、及び/または前述の他の任意のソフトウェアコンポーネント及びデータ等の、他のシステムまたはコンピュータ700に使用されるアプリケーションプログラム及びデータを保管しうる。大容量記憶装置718は、本明細書で明確に特定されていない他のプログラム及びデータも保管し得る。
【0088】
一実施形態において、大容量記憶装置718または他のコンピュータ可読記憶媒体は、コンピュータ700にロードされると、当該コンピュータを汎用コンピューティングシステムから、本明細書に記述される実施形態を実現可能な特定目的コンピュータに変換するコンピュータ実行可能命令で符号化される。これらのコンピュータ実行可能命令は、前述のようにCPU704がどのように状態を移行するかを指定して、コンピュータ700を変換する。一実施形態によれば、コンピュータ700は、コンピュータ700により実行されると
図2〜4に関連して前述された様々なルーチンを行うコンピュータ実行可能命令を保存するコンピュータ可読記憶媒体へアクセス可能である。コンピュータ700には、本明細書に記述される他の任意のコンピュータ実施演算処理を行うコンピュータ可読記憶媒体も含まれ得る。
【0089】
コンピュータ700にはまた、キーボード、マウス、タッチパッド、タッチスクリーン、電子スタイラス、または他の種類の入力デバイス等の数多くの入力デバイスからの入力を受信し処理する一以上の入出力コントローラ716も含まれ得る。同様に入出力コントローラ716は、コンピュータモニタ、平面パネルディスプレイ、デジタルプロジェクタ、プリンタ、プロッタ、または他の種類の出力デバイスに対し出力し得る。コンピュータ700は
図7に示される全てのコンポーネントを含まず、
図7に明示されていない他のコンポーネントを含む、または
図7に示されるものとは全く異なるアーキテクチャを使用することも可能であることは理解されよう。
【0090】
上記によれば、サービスプロバイダネットワーク102におけるPVN122の自動作成に関する技術が本明細書に提示されたことは理解されよう。さらに本明細書に提示された内容はコンピュータ構造特性、方法論的動作、及びコンピュータ可読媒体に特有の言語で記述されたが、添付の特許請求の範囲の中で定義される発明は、本明細書に記述される特定の特性、動作、または媒体に限られる必要はないことは理解されよう。むしろ特定の特性、動作、及び媒体は、請求項を実現する例示的形態として開示される。
【0091】
開示の実施形態は以下の項を以って説明され得る。
(第1項)コンピュータ実行可能命令を記憶するコンピュータ可読記憶媒体であって、コンピュータ実行可能命令がコンピュータによって実行されると、コンピュータに、
顧客ネットワーク内の複数のネットワークリソースから、顧客ネットワークの構成を記述するネットワーク構成データを収集し、
収集したネットワーク構成データを使用して仮想ネットワーク展開テンプレートを作成し、
仮想ネットワーク展開テンプレートを使って顧客ネットワークの構成と類似の構成を有するプライベート仮想ネットワークをサービスプロバイダネットワークにおいて作成するように構成された展開コンポーネントに対し、仮想ネットワーク展開テンプレートを提供すること
を実行させる、コンピュータ可読記憶媒体。
【0092】
(第2項)コンピュータ可読記憶媒体がさらなるコンピュータ実行可能命令を記憶し、コンピュータ実行可能命令がコンピュータにより実行されると、コンピュータに、仮想ネットワーク展開テンプレートを作成する前に、収集したネットワーク構成データを修正するためのユーザインターフェイスを提供することを実行させる、第1項に記載のコンピュータ可読記憶媒体。
【0093】
(第3項)ネットワーク構成データが顧客ネットワーク内の複数のサブネットを定義し、ユーザインターフェイスがさらにサービスプロバイダネットワーク内のプライベート仮想ネットワークに含めるサブネットの部分集合を選ぶための機能性を提供するように構成される、第2項に記載のコンピュータ可読記憶媒体。
【0094】
(第4項)ネットワーク構成データがさらに顧客ネットワーク内の複数のサブネットにより使用されているネットワークアドレスを定義し、ユーザインターフェイスがさらに顧客ネットワークで使用されているネットワークアドレスと重複しない、プライベート仮想ネットワーク内のサブネットにより使用可能なネットワークアドレスを推薦するように構成される、第3項に記載のコンピュータ可読記憶媒体。
【0095】
(第5項)コンピュータ実行可能命令を記憶するコンピュータ可読記憶媒体であって、コンピュータ実行可能命令がコンピュータによって実行されると、コンピュータに、
顧客ネットワークに接続された複数のネットワークリソースと通信することで、複数のネットワークリソースから顧客ネットワークの構成を定義するネットワーク構成データを収集し、
顧客ネットワークの構成を定義するデータを使って顧客ネットワークの構成と類似の構成を有するプライベート仮想ネットワークをサービスプロバイダネットワークにおいて作成するように構成された、サービスプロバイダネットワークで作動する展開コンポーネントに対し、顧客ネットワークの構成を定義するデータを送信すること
を実行させる、コンピュータ可読記憶媒体。
【0096】
(第6項)構成を定義するデータが仮想ネットワーク展開テンプレートを備える、第5項に記載のコンピュータ可読記憶媒体。
【0097】
(第7項)顧客ネットワークに接続されたネットワークリソースが一以上のネットワークスイッチ、ネットワークルータ、負荷分散デバイス、またはネットワークファイアウォールを備える、第5項に記載のコンピュータ可読記憶媒体。
【0098】
(第8項)顧客ネットワークの構成を定義するデータが一以上の
顧客ネットワークにより使用されているネットワークアドレス空間を定義するデータと、
顧客ネットワーク内の一以上のサブネットを定義するデータと、
顧客ネットワーク内に存在する一以上のネットワークアクセス制御リスト(ACL)を定義するデータと、
顧客ネットワーク内に存在する一以上のルーティングルールを定義するデータと、
顧客ネットワーク内に存在する一以上のネットワークアドレス変換(NAT)インスタンスを定義するデータと、
顧客ネットワーク内に存在する一以上のインターネットゲートウェイデバイスを定義するデータと
を含む、第5項に記載のコンピュータ可読記憶媒体。
【0099】
(第9項)コンピュータ可読記憶媒体がさらなるコンピュータ実行可能命令を記憶し、コンピュータ実行可能命令がコンピュータにより実行されると、コンピュータに、展開コンポーネントへ顧客ネットワークの構成を定義するデータを送信する前に、顧客ネットワークの構成を定義するデータを修正するためのインターフェイスを提供することを実行させる、第5項に記載のコンピュータ可読記憶媒体。
【0100】
(第10項)顧客ネットワークが複数のサブネットを備え、インターフェイスがさらにサービスプロバイダネットワーク内のプライベート仮想ネットワークに含める一以上のサブネットを選ぶための機能性を提供するように構成される、第9項に記載のコンピュータ可読記憶媒体。
【0101】
(第11項)インターフェイスがさらに、顧客ネットワークで使用されているネットワークアドレスと衝突しない、サービスプロバイダネットワーク内のプライベート仮想ネットワークにより使用可能なネットワークアドレスを推薦するように構成される、第10項に記載のコンピュータ可読記憶媒体。
【0102】
(第12項)プライベート仮想ネットワークの自動作成に関するコンピュータ実施方法であって、
コンピュータデバイスを第一ネットワーク上で作動させ、第一ネットワーク上で作動する複数のネットワークリソースから第一ネットワークの構成を定義するデータを収集し、
収集した第一ネットワークの構成を定義するデータを使って第一ネットワークの構成と類似の構成を有するプライベート仮想ネットワークを第二ネットワークにおいて作成するように構成された、第二ネットワーク上で作動するコンポーネントに対し、収集した第一ネットワークの構成を定義するデータを送信する
コンピュータ実行演算処理を行うことを含むコンピュータ実施方法。
【0103】
(第13項)第二ネットワークがサービスプロバイダネットワークを備える、第12項に記載のコンピュータ実施方法。
【0104】
(第14項)第一ネットワークが、サービスプロバイダネットワークを運用するサービスプロバイダの顧客により運用されるネットワークを備える、第13項に記載のコンピュータ実施方法。
【0105】
(第15項)第一ネットワーク上で作動する複数のネットワークリソースが一以上のネットワークスイッチ、ネットワークルータ、負荷分散デバイス、またはネットワークファイアウォールを備える、第12項に記載のコンピュータ実施方法。
【0106】
(第16項)収集したデータを第二ネットワークに送信する前に、収集した第一ネットワークの構成を定義するデータを使って仮想ネットワーク展開テンプレートを作成することをさらに含む、第12項に記載のコンピュータ実施方法。
【0107】
(第17項)収集した第一ネットワークの構成を定義するデータを第二ネットワーク上で作動するコンポーネントに対し送信することは、仮想ネットワーク展開テンプレートを第二ネットワーク上で作動するコンポーネントに対し送信することを含み、第二ネットワーク上で作動するコンポーネントが仮想ネットワーク展開テンプレートを使って第二ネットワークにおいてプライベート仮想ネットワークを作成するように構成される、第16項に記載のコンピュータ実施方法。
【0108】
(第18項)収集した第一ネットワークの構成を定義するデータを第二ネットワーク上で作動するコンポーネントに対し送信する前に、第一ネットワークの構成を定義するデータの修正を可能にするように構成されたインターフェイスを提供することをさらに含む、第12項に記載のコンピュータ実施方法。
【0109】
(第19項)第一ネットワークが複数のサブネットを備え、インターフェイスがさらに第二ネットワーク内のプライベート仮想ネットワークに含める一以上のサブネットを選ぶための機能性を提供するように構成される、第18項に記載のコンピュータ実施方法。
【0110】
(第20項)インターフェイスがさらにプライベート仮想ネットワーク内のサブネットにより使用可能なネットワークアドレスを推薦するように構成される、第19項に記載のコンピュータ実施方法。
【0111】
(第21項)プライベート仮想ネットワークを作成するためのシステムであって、
第一ネットワーク上で作動する複数のネットワークリソースから第一ネットワークの構成を定義するデータを収集し、
収集した第一ネットワークの構成を定義するデータを使って、第一ネットワークの構成と類似の構成を有するプライベート仮想ネットワークを第二ネットワークにおいて作成する
ように構成された一以上のコンピュータを備えるシステム。
【0112】
(第22項)第二ネットワークがサービスプロバイダネットワークを備える、第21項に記載のシステム。
【0113】
(第23項)第一ネットワークが、サービスプロバイダネットワークを運用するサービスプロバイダの顧客により運用されるネットワークを備える、第22項に記載のシステム。
【0114】
(第24項)第一ネットワーク上で作動する複数のネットワークリソースが一以上のネットワークスイッチ、ネットワークルータ、負荷分散デバイス、またはネットワークファイアウォールを備える、第23項に記載のシステム。
【0115】
(第25項)一以上のコンピュータがさらに、収集した第一ネットワークの構成を定義するデータを使って仮想ネットワーク展開テンプレートを作成し、仮想ネットワーク展開テンプレートを使って第二ネットワークにおいてプライベート仮想ネットワークを作成するように構成される、第24項に記載のシステム。
【0116】
前述の内容は例示のためだけに提供されるものであり、限定するものとして解釈されるべきではない。さらに請求される内容は、本開示の任意の部分に記載される一部または全ての欠点を解決する実装形態に限定されない。図示される及び記述される例示的実施形態及びアプリケーションに従うことなく、かつ以下の請求項において示される当発明の真の精神と範囲から外れることなく、本明細書に記述される内容に対し様々な修正と変更が行われうる。