(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-18
(45)【発行日】2022-04-26
(54)【発明の名称】仮想ネットワークインタフェースオブジェクト
(51)【国際特許分類】
H04L 41/0895 20220101AFI20220419BHJP
H04L 43/00 20220101ALI20220419BHJP
H04L 41/40 20220101ALI20220419BHJP
【FI】
H04L41/0895
H04L43/00
H04L41/40
(21)【出願番号】P 2020043992
(22)【出願日】2020-03-13
(62)【分割の表示】P 2018195769の分割
【原出願日】2012-11-16
【審査請求日】2020-03-13
(32)【優先日】2011-11-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2011-12-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】507303550
【氏名又は名称】アマゾン・テクノロジーズ・インコーポレーテッド
(74)【代理人】
【識別番号】100098394
【氏名又は名称】山川 茂樹
(74)【代理人】
【識別番号】100064621
【氏名又は名称】山川 政樹
(72)【発明者】
【氏名】シュルツ,エリック・ダブリュ
(72)【発明者】
【氏名】トンプソン,アーロン・シイ
(72)【発明者】
【氏名】ガンガリー,アリジット
(72)【発明者】
【氏名】イェール,パドミニ・シイ
(72)【発明者】
【氏名】ホルガース,トビアス・エル
(72)【発明者】
【氏名】レフェルホツ,クリストファー・ジェイ
(72)【発明者】
【氏名】サール,イアン・アール
【審査官】大石 博見
(56)【参考文献】
【文献】米国特許出願公開第2010/0287548(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 41/00
H04L 61/00
H04L 41/40
(57)【特許請求の範囲】
【請求項1】
複数のコンピュータによって実装される複数の資源インスタンスと、
1つ以上のコンピュータによって実装されるネットワークインタフェース仮想化コーディネータと、
を備えるシステムであって、
前記ネットワークインタフェース仮想化コーディネータは、
永続的リポジトリにおいて定義された第1のインタフェースレコードを前記複数のコンピュータの中の第1のコンピュータで実装される第1の資源インスタンスにアタッチすることであって、前記第1のインタフェースレコードは、第1のインターネットプロトコル(IP)アドレスを指定し、且つ、前記第1のインタフェースレコードを前記第1の資源インスタンスにアタッチすることは、前記第1の資源インスタンスが、前記第1のコンピュータにおいて、第1のネットワークインタフェースカードを通して、前記第1のIPアドレスを対象としたネットワークトラフィックを受信することを可能に
し、
前記第1のインタフェースレコードは、セキュリティ設定に関連付いている、永続的リポジトリにおいて定義された前記第1のインタフェースレコードを前記複数のコンピュータの中の前記第1のコンピュータで実装される前記第1の資源インスタンスにアタッチすることと、
移動要求に応答して、前記第1のインタフェースレコードを前記複数のコンピュータの中の第2のコンピュータで実装される前記資源インスタンスの1つにアタッチすることを変更することであって、前記アタッチすることを変更することは、前記第2のコンピュータで実装される前記資源インスタンスが、前記第2のコンピュータにおいて、第2のネットワークインタフェースカードを通して、前記第1のIPアドレスを対象としたトラフィックを受信することを可能にし、且つ、前記第1のコンピュータにおいて、前記第1のネットワークインタフェースカードを通して、前記第1のIPアドレスを対象としたトラフィックを受信することを妨げる、前記第1のインタフェースレコードを前記複数のコンピュータの中の前記第2のコンピュータで実装される前記資源インスタンスの1つにアタッチすることを変更することと、
前記第2のコンピュータで実装される前記資源インスタンスの1つにおいて、前記第1のインタフェースレコードに関連付けられた前記セキュリティ設定を再使用することを可能にすることと
を行うように構成される、システム。
【請求項2】
前記ネットワークインタフェース仮想化コーディネータは、
インタフェースレコード作成要求に応答して、第2のIPアドレスを指定する第2のインタフェースレコードを生成すると共に、前記第2のインタフェースレコードを前記永続的リポジトリに格納することと、
前記第1のコンピュータで実装される前記資源インスタンスの1つに前記第2のインタフェースレコードをアタッチするための新しいアタッチ要求に応答して、前記第1のコンピュータで実装される前記第1の資源インスタンスが、前記第2のIPアドレスを対象としたネットワークトラフィックを受信することを可能にすることと、
を行うように更に構成される、請求項1に記載のシステム。
【請求項3】
前記第1のインタフェースレコードは1つ以上の追加のIPアドレスを指定し、且つ、前記第1のインタフェースレコードを
前記第2のコンピュータで実装される前
記資源インスタンス
の1つにアタッチすることは、
前記第2のコンピュータで実装される前
記資源インスタンス
の1つが、前記1つ以上の追加のIPアドレスを対象としたトラフィックを受信することを可能にする、請求項1又は請求項2に記載のシステム。
【請求項4】
前記ネットワークインタフェース仮想化コーディネータは、
新しいIPアドレスを備えるIPアドレス修正要求に応答して、
前記新しいIPアドレスを含むように前記第1のインタフェースレコードを修正することと、
前記第1のインタフェースレコードがアタッチされる前記複数の資源インスタンスの中で現在アタッチされている資源インスタンスを識別することと、
前記現在アタッチされている資源インスタンスが、前記新しいIPアドレスを対象としたトラフィックを受信することを可能にすることと、
を行うように更に構成される、請求項1から請求項3のいずれか一項に記載のシステム。
【請求項5】
前記移動要求は、前記第1のコンピュータで実装される前記第1の資源インスタンスを前記第2のコンピュータへ移動させるための要求を含み、その結果として、前記第1の資源インスタンスの実装は、前記第1のコンピュータから前記第2のコンピュータへ変更され、且つ、前記第1の資源インスタンスが、前記第2のコンピュータにおいて、前記第1のIPアドレスを対象としたトラフィックを受信することを可能にするために、前記第1のインタフェースレコードは、前記第2のコンピュータにおいて、前記第1の資源インスタンスにアタッチされる、請求項1から請求項4のいずれか一項に記載のシステム。
【請求項6】
永続的リポジトリにおいて定義された第1のインタフェースレコードを第1のコンピュータで実装される第1の資源インスタンスにアタッチすることであって、前記第1のインタフェースレコードは第1のインターネットプロトコル(IP)アドレスを指定し、且つ、前記第1のインタフェースレコードを前記第1の資源インスタンスにアタッチすることは、前記第1の資源インスタンスが、前記第1のコンピュータにおいて、第1のネットワークインタフェースカードを通して、前記第1のIPアドレスを対象としたネットワークトラフィックを受信することを可能に
し、前記第1のインタフェースレコードは、セキュリティ設定に関連付いている、永続的リポジトリにおいて定義された前記第1のインタフェースレコードを第1のコンピュータで実装される前記第1の資源インスタンスにアタッチすることと、
移動要求に応答して、前記第1のインタフェースレコードを第2のコンピュータで実装される資源インスタンスにアタッチすることを変更することであって、前記アタッチすることを変更することは、前記第2のコンピュータで実装される前記資源インスタンスが、前記第2のコンピュータにおいて、第2のネットワークインタフェースカードを通して、前記第1のIPアドレスを対象としたトラフィックを受信することを可能にし、且つ、前記第1のコンピュータにおいて、前記第1のネットワークインタフェースカードを通して、前記第1のIPアドレスを対象としたトラフィックを受信することを妨げる、前記第1のインタフェースレコードを前記第2のコンピュータで実装される前記資源インスタンスにアタッチすることを変更することと、
前記第2のコンピュータで実装される前記資源インスタンスの1つにおいて、前記第1のインタフェースレコードに関連付けられた前記セキュリティ設定を再使用することを可能にすることと
を備える、方法。
【請求項7】
インタフェースレコード作成要求に応答して、第2のIPアドレスを指定する第2のインタフェースレコードを生成すると共に、前記永続的リポジトリに前記第2のインタフェースレコードを格納することと、
前記第2のインタフェースレコードを前記第1のコンピュータで実装される前記資源インスタンスの1つにアタッチするための新しいアタッチ要求に応答して、前記第1のコンピュータで実装される前記第1の資源インスタンスが、前記第2のIPアドレスを対象としたネットワークトラフィックを受信することを可能にすることと、
を更に備える、請求項6に記載の方法。
【請求項8】
前記第1のインタフェースレコードは1つ以上の追加のIPアドレスを指定し、且つ、前記第1のインタフェースレコードを前記第1の資源インスタンスにアタッチすることは、実装される前記第1の資源インスタンスが、前記1つ以上の追加のIPアドレスを対象としたトラフィックを受信することを可能にする、請求項6又は請求項7に記載の方法。
【請求項9】
新しいIPアドレスを備えるIPアドレス修正要求に応答して、
前記新しいIPアドレスを含むように前記第1のインタフェースレコードを修正することと、
前記第1のインタフェースレコードがアタッチされる複数の資源インスタンスの中で現在アタッチされている資源インスタンスを識別することと、
前記現在アタッチされている資源インスタンスが、前記新しいIPアドレスを対象としたトラフィックを受信することを可能にすることと、
を更に備える、請求項6から請求項8のいずれか一項に記載の方法。
【請求項10】
前記移動要求は、前記第1のコンピュータで実装される前記第1の資源インスタンスを前記第2のコンピュータに移動させるための要求を含み、その結果として、前記第1の資源インスタンスの実装は、前記第1のコンピュータから前記第2のコンピュータに変更され、且つ、前記第1の資源インスタンスが、前記第2のコンピュータにおいて、前記第1のIPアドレスを対象としたトラフィックを受信することを可能にするために、前記第1のインタフェースレコードは、前記第2のコンピュータにおいて、前記第1の資源インスタンスにアタッチされる、請求項6から請求項9のいずれか一項に記載の方法。
【請求項11】
永続的リポジトリにおいて定義された第1のインタフェースレコードを第1のコンピュータで実装される第1の資源インスタンスにアタッチすることであって、前記第1のインタフェースレコードは第1のインターネットプロトコル(IP)アドレスを指定し、且つ、前記第1のインタフェースレコードを前記第1の資源インスタンスにアタッチすることは、前記第1の資源インスタンスが、前記第1のコンピュータにおいて、第1のネットワークインタフェースカードを通して、前記第1のIPアドレスを対象としたネットワークトラフィックを受信することを可能に
し、前記第1のインタフェースレコードは、セキュリティ設定に関連付いている、永続的リポジトリにおいて定義された前記第1のインタフェースレコードを前記第1のコンピュータで実装される前記第1の資源インスタンスにアタッチすることと、
移動要求に応答して、前記第1のインタフェースレコードを第2のコンピュータで実装される資源インスタンスにアタッチすることを変更することであって、前記アタッチすることを変更することは、前記第2のコンピュータで実装される前記資源インスタンスが、前記第2のコンピュータにおいて、第2のネットワークインタフェースカードを通して、前記第1のIPアドレスを対象としたトラフィックを受信することを可能にし、且つ、前記第1のコンピュータにおいて、前記第1のネットワークインタフェースカードを通して、前記第1のIPアドレスを対象としたトラフィックを受信することを妨げる、前記第1のインタフェースレコードを前記第2のコンピュータで実装される前記資源インスタンスにアタッチすることを変更することと、
前記第2のコンピュータで実装される前記資源インスタンスの1つにおいて、前記第1のインタフェースレコードに関連付けられた前記セキュリティ設定を再使用することを可能にすることと
を実装するためにコンピュータ実行可能であるプログラム命令を格納する1つ以上の持続性コンピュータアクセス可能記憶媒体。
【請求項12】
前記プログラム命令は、
インタフェースレコード作成要求に応答して、第2のIPアドレスを指定する第2のインタフェースレコードを生成すると共に、前記永続的リポジトリに前記第2のインタフェースレコードを格納することと、
前記第2のインタフェースレコードを前記第1のコンピュータで実装される前記資源インスタンスの1つにアタッチするための新しいアタッチ要求に応答して、前記第1のコンピュータで実装される前記第1の資源インスタンスが、前記第2のIPアドレスを対象としたネットワークトラフィックを受信することを可能にすることと、
を実装するためにコンピュータ実行可能である、請求項11に記載の1つ以上の持続性コンピュータアクセス可能記憶媒体。
【請求項13】
前記第1のインタフェースレコードは1つ以上の追加のIPアドレスを指定し、且つ、前記第1のインタフェースレコードを前記第1の資源インスタンスにアタッチすることは、実装される前記第1の資源インスタンスが、前記1つ以上の追加のIPアドレスを対象としたトラフィックを受信することを可能にする、請求項11又は請求項12に記載の1つ以上の持続性コンピュータアクセス可能記憶媒体。
【請求項14】
前記プログラム命令は、
新しいIPアドレスを備えるIPアドレス修正要求に応答して、
前記新しいIPアドレスを含むように前記第1のインタフェースレコードを修正することと、
前記第1のインタフェースレコードがアタッチされる複数の資源インスタンスの中で現在アタッチされている資源インスタンスを識別することと、
前記現在アタッチされている資源インスタンスが、前記新しいIPアドレスを対象としたトラフィックを受信することを可能にすることと、
を実装するためにコンピュータ実行可能である、請求項11から請求項13のいずれか一項に記載の1つ以上の持続性コンピュータアクセス可能記憶媒体。
【請求項15】
前記移動要求は、前記第1のコンピュータで実装される前記第1の資源インスタンスを前記第2のコンピュータに移動させるための要求を含み、その結果として、前記第1の資源インスタンスの実装は、前記第1のコンピュータから前記第2のコンピュータに変更され、且つ、前記第1の資源インスタンスが、前記第2のコンピュータにおいて、前記第1のIPアドレスを対象としたトラフィックを受信することを可能にするために、前記第1のインタフェースレコードは、前記第2のコンピュータにおいて、前記第1の資源インスタンスにアタッチされる、請求項11から請求項14のいずれか一項に記載の1つ以上の持続性コンピュータアクセス可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
多数の企業および他の組織は、(ローカルネットワークの一部として)同一場所に配置されているか、または代わりに、複数の別々の地理的位置に(例えば、1つもしくは複数のプライベートまたは公衆中間ネットワークを経由して)配置されているコンピューティングシステムを用いてなど、彼らの業務をサポートするために多数のコンピューティングシステムを相互接続するコンピュータネットワークを運用する。例えば、単一の組織によって、また単一の組織の代わりに運用されている民間データセンター、およびコンピューティング資源を顧客に提供するためにビジネスとして実体によって運用されている公共データセンターなどの、かなりの数の相互接続されたコンピューティングシステムを収容するデータセンターが当たり前になってきた。いくつかの公共データセンターの運営者は、様々な顧客によって所有されているハードウェアに対して、ネットワークアクセス、電力、および安全な設置施設を提供し、他方、他の公共データセンターの運営者は、彼らの顧客による利用に対して可能にされたハードウェア資源も含む、「完全なサービス」施設を提供する。しかし、通常のデータセンターの規模および範囲が増大するにつれて、物理的コンピューティング資源をプロビジョニング、運営、および管理するタスクがしだいに複雑になってきた。
【背景技術】
【0002】
コモディティハードウェアに対する仮想化技術の出現は、多様なニーズをもつ多数の顧客に対する大規模なコンピューティング資源の管理に関して利益をもたらし、様々なコンピューティング資源が複数の顧客によって効率的かつ安全に共有されるのを可能にする。例えば、仮想化技術は、単一の物理コンピューティングマシンが、各ユーザーに、その単一の物理コンピューティングマシンによってホストされる1つまたは複数の仮想マシンを提供することにより、複数のユーザー間で共有されるのを可能にし得、各かかる仮想マシンは、ユーザーに彼らが所与のハードウェアコンピューティング資源の唯一の運営者および管理者であるという錯覚を与え、同時に、様々な仮想マシン間にアプリケーションの分離およびセキュリティも提供する、別個の論理コンピューティングシステムとして動作するソフトウェアシミュレーションである。その上、いくつかの仮想化技術は、複数の別個の物理コンピューティングシステムにわたる複数の仮想プロセッサをもつ単一の仮想マシンなどの、2つ以上の物理資源にわたる仮想資源を提供することが可能である。別の例として、仮想化技術は、データ記憶ハードウェアが、各ユーザーに、複数のデータ記憶装置にわたって分散され得る仮想化データストアを提供することにより、複数のユーザー間で共有されるのを可能にし得、各かかる仮想データストアは、ユーザーに彼らがデータ記憶資源の唯一の運営者および管理者であるという錯覚を与える、別個の論理データストアとして機能する。
【0003】
異なるタイプの仮想化コンピューティング、ストレージ、および/または他のサービスを提供するデータセンターの運営者は、通常、様々なタイプのネットワークインタフェースカード(NIC)などのコモディティネットワークハードウェアを使用して、顧客の要求を受信し、かかる要求に対する応答を送信するために、標準的なネットワーキングプロトコルに依存する。仮想化技術における最近の進歩にもかかわらず、仮想サーバーの多数のネットワーキング関連の特性は依然として、通常、個々の物理ネットワークインタフェースカードのレベルで管理される。仮想化サービスの顧客によって要求される異なるタイプの動的ネットワーキング構成変更の複雑性が増大するにつれて、物理NICレベルでのネットワーク管理がますます厄介になり得る。
【図面の簡単な説明】
【0004】
【
図1】少なくともいくつかの実施形態に従った、システム環境例を示す。
【
図2】少なくともいくつかの実施形態に従った、インタフェースレコードの構成要素例を示す。
【
図3】いくつかの実施形態に従って、インタフェースレコードが資源インスタンスにアタッチされる操作を示す。
【
図4】いくつかの実施形態に従って、インタフェースレコードが資源インスタンスからデタッチされる操作を示す。
【
図5】いくつかの実施形態に従って、インタフェースレコードが、そのレコードが以前にアタッチされていたのとは異なる資源インスタンスにアタッチされる操作を示す。
【
図6】いくつかの実施形態に従って、第2のインタフェースレコードが資源インスタンスにアタッチされる操作を示す。
【
図7】いくつかの実施形態に従って、アタッチされたインタフェースレコードをもつ資源インスタンスが、1つのサービスプラットフォームから別のサービスプラットフォームに移動される操作を示す。
【
図8a-8d】いくつかの実施形態に従って、インタフェースレコードを資源インスタンスにアタッチすることにより達成可能ないくつかのネットワーク構成例の図を提供する。
【
図9】少なくともいくつかの実施形態に従い、ネットワークインタフェース仮想化コーディネータによって提供され得る、例示的なウェブベースインタフェースの一部の図である。
【
図10】少なくともいくつかの実施形態に従って、インタフェースレコードサービスを提供するための方法の流れ図である。
【
図11】いくつかの実施形態で使用され得るコンピュータシステム例を示すブロック図である。
【発明を実施するための形態】
【0005】
実施形態は、本明細書では、いくつかの実施形態および例示的な図に対する例として説明されるが、当業者は、実施形態は説明される実施形態または図に限定されないことを理解するであろう。本明細書に対する図および詳細な説明は、実施形態を、開示される特定の形に制限することを意図しておらず、意図は、添付の請求項によって定義されるとおりに精神および範囲に含まれる、全ての修正、均等物および代替手段を包含することである、ことが理解されるべきである。本明細書で使用される見出しは、編成目的のみのためであり、記述または請求項の範囲を制限するために使用されることを意味しない。本願を通して、「し得る(may)」という用語は、義務的な意味(すなわち、~しなければならないことを意味する)ではなく、許可的な意味(すなわち、~する可能性を有することを意味する)で使用される。同様に、「含む(include)」,「含む(including)」、および「含む(includes)」は、制限ではなく、包含を意味する。
【0006】
仮想ネットワークインタフェースオブジェクトを管理するための方法および装置の様々な実施形態が説明される。企業または公共部門組織などの実体によって、インターネットを経由してアクセス可能な(様々なタイプのクラウドベースのコンピューティングまたはストレージなどの)1つまたは複数のサービスを、分散された組のクライアントに提供するために設定されたネットワークは、本文書では、プロバイダネットワークと呼ばれ得る。かかるプロバイダネットワークは、プロバイダによって提供されるサービスを実装および分散するために必要な、物理および仮想コンピュータサーバー、記憶装置、ネットワーキング装置および同類のものの集合などの、様々な資源プールを収容する多数のデータセンターを含み得る。
【0007】
例えば、異なる組の資源が、厄介なセキュリティ設定変更、再構成および/またはネットワークインタフェースカードの物理的な移動を用いる必要なく、アクセスされ得る柔軟
性を大幅に強化するためなど、いくつかの異なる理由で、いくつかの実施形態では、プロバイダネットワークの運営者は、ネットワークインタフェースのために1組の仮想サービスを設定し得る。かかるサービスは、プロバイダネットワークの様々な資源にアクセスする必要のあるネットワーキング動作を管理するための1組のインタフェースレコードの維持、およびそれに関する様々な操作の実装に対して責任があるネットワークインタフェース仮想化コーディネータ(本文書では、略語の「NIVC」を使用しても参照され得る)によって可能にされ得る。いくつかの実施形態では、NIVCの機能の異なる部分が、プロバイダネットワークの様々なハードウェアプラットフォーム上で実行するハイパーバイザーまたはオペレーティングシステムソフトウェアのモジュール、エッジ装置上のルーターソフトウェア、および同類のものなどの、いくつかの異なる協働するソフトウェア構成要素および/または装置内に組み込まれ得る。
【0008】
一実施態様では、プロバイダネットワークは、顧客に、仮想化計算資源および/またはストレージ資源の多数のインスタンスを提供し得、その各々は、顧客がそれとやりとりすることを可能にするために、ネットワークアドレス指定能力を必要とし得る。かかる実施態様におけるNIVCは、顧客が、修正可能で移転可能なインタフェースレコードが作成されることを要求することを可能にし得、それは、顧客が設定し、次いで、時間とともに様々な資源インスタンスと必要に応じて関連付けおよび関連付けの解除を行うことを欲する、ネットワーキング構成情報(例えば、セキュリティポリシー、アドレス指定およびルーティング情報など)の様々なタイプの要素を含む。インタフェースレコードは、いくつかの実施形態では、1つまたは複数のインターネットプロトコル(IP)アドレスおよび、IPアドレスまたは複数のアドレスが属するサブネットに対するサブネット識別子を含み得る。さらに、様々なセキュリティ関連の設定が、インタフェースレコード内に含まれ得、例えば、どの実体またはユーザーが、以下でさらに詳述する「アタッチ」および「デタッチ」操作を実行することが許可されるかを識別する。NIVCは、要求されたインタフェースレコードを作成し得、いくつかの実施形態では、それを、永続的リポジトリまたはインタフェースレコードのデータベース内に格納し得る。
【0009】
顧客は、いくつかの実施形態では、NIVCが、インタフェースレコードを、仮想化計算サーバーまたはストレージサーバーなどの資源インスタンスに「アタッチする」ことを要求し得、それにより、資源インスタンスがインタフェースレコードのIPアドレスを対象とした入トラフィックを受信することを可能にして、資源インスタンスからのアウトバウンドトラフィックが、それがそのIPアドレスで生じたことを示すのを可能にする。ネットワークトラフィックは、仮想化資源インスタンスが現在その上でインスタンス化され得る物理プラットフォームでたまたまインストールされている1つまたは複数の物理ネットワークインタフェースカード(NIC)にわたって流れ得るが、インタフェースレコードの特性は、任意の特定のNICまたは複数のNICとは無関係であり、任意の特定の資源インスタンスとも無関係であると見なされ得る。所与の時点において、例えば、インタフェースレコードは、資源インスタンスと関連付けられている(すなわち、それに「アタッチされている」)こともあれば、関連付けられていないこともある。それがどの資源インスタンスとも関連付けられていない間、インタフェースレコードは、インタフェースレコードのNIVCのリポジトリ内に、非アクティブまたは休止モードで存在し得、その特性を保持する。
【0010】
インタフェースレコードを、現在それがアタッチされている資源インスタンスから「デタッチする」ための要求に応答して、NIVCは、いくつかの実施形態では、インタフェースレコードのIPアドレスまたは複数のアドレスを対象としたトラフィックがその資源インスタンスにもう届かないことを確実にし得る。顧客は、NIVCが、インタフェースレコードを、それが以前にアタッチされていたインスタンスとは異なる資源インスタンス(異なる仮想化計算サーバー)に今アタッチすることも要求し得る。この新しいアタッチ
操作は、次いで、物理NICのどの組でも適切なものを使用して、インタフェースレコード内に含まれるIPアドレスを対象としたIPトラフィックが新しくアタッチされた資源インスタンスに届くという結果となり得、従って、顧客が、物理NICに直接対処することなく、資源インスタンスにわたって、ネットワーク構成設定および関連付けられたセキュリティ設定を容易に転送することを可能にする。所与のインタフェースレコードに関連付けられたIPアドレスの修正、セキュリティ設定の修正、課金関連操作および同類のものなどの様々な他の操作が、様々な実施形態において、仮想ネットワークインタフェースコーディネータによってサポートされ得る。
【0011】
システム環境例
図1は、少なくともいくつかの実施形態に従った、システム環境例を示す。システム100は、複数の資源インスタンス120、例えば、クラウドコンピューティングサービスまたはクラウドストレージサービスなどの、様々なタイプのサービスをクライアント148に提供するように設定された、プロバイダネットワークのインスタンス120A、120B、120Cおよび120Dを含み得る。クライアント148は、その結果として、バックエンドデータベースに関連付けられたウェブサイトなどの、インスタンス120上で様々なサービスを実装し、それらを彼ら自身の顧客に公開し得る。資源インスタンス120は、例えば、
図1のサービスプラットフォーム150A、150B、および150Cなどの1つまたは複数の物理プラットフォーム上に常駐している、仮想コンピューティングシステムまたは仮想記憶システムなどの、仮想化サービスを実装し得る。仮想コンピューティングシステムを提供する資源インスタンス120に対するサービスプラットフォーム150は、例えば、1つまたは複数のCPU(ならびに関連付けられたメモリ、ストレージおよびネットワーキングハードウェア)を有するハードウェアサーバーおよび、コンピューティングシステムの仮想化を実装する(ハイパーバイザーおよび/またはオペレーティングシステムの要素などの)ソフトウェアを含み得る。同様に、仮想記憶システムを提供するサービスプラットフォーム150は、例えば、1つまたは複数のハードウェア記憶装置(ディスク配列または記憶機器)の部分もしくは全部、ならびに関連付けられた処理要素およびソフトウェアを含み得る。
【0012】
いくつかの実施形態では、資源インスタンス120は、1つのプラットフォーム150から別へ転送可能であり得、例えば、仮想コンピューティングシステムが、当初はある物理サーバー上で起動され、後に、必要に応じて、別の物理サーバーに移動され得る。さらに、複数の資源インスタンスが1つのサービスプラットフォーム150上に常駐し得、例えば、資源インスタンス120Bおよび120Cが、サービスプラットフォーム150B上に常駐して示されている。複数の常駐資源インスタンス120を有するサービスプラットフォーム150Bの物理資源(例えば、CPUおよびネットワークカード)は、異なる実施形態では、様々な方式を使用して分散され得る。一実施形態では、資源のいくつかは、独占的に資源インスタンスに割り当てられ得、例えば、サービスプラットフォーム150Bが4つのCPUを有する場合、2つのCPUが資源インスタンス120Bに割り当てられ得、他方、他の2つは資源インスタンス120Cに割り当てられ得る。別の実施形態では、物理資源は、タイムスライスを使用して共有され得、例えば、4つ全てのCPUが、それらのコンピューティング需要に応じて、所与のタイムスライス内のCPUサイクルがどのようにインスタンス間で分散されるかを決定するために設定されたスケジューリング機構を用いて、いずれかの資源インスタンスによって利用可能にされ得る。
図1に示された実施形態では、各サービスプラットフォーム150が、1つまたは複数の物理ネットワークインタフェースカード(NIC)を有する―サービスプラットフォーム150AはNIC 110Aを有し、サービスプラットフォーム150BはNIC 110Bを有し、サービスプラットフォーム150CはNIC 110Cおよび110Dを有する。所与のサービスプラットフォーム150上にたまたま常駐している資源インスタンス120に出入りして流れるネットワークトラフィックは、サービスプラットフォームのNIC 1
10のうちの1つまたは複数を通って流れる。いくつかの実施態様では、単一の資源インスタンス120が複数のハードウェアサービスプラットフォーム150に拡がり得、その場合、複数のサービスプラットフォーム150のうちのいずれかで利用可能なNIC 110のいずれかが使用され得る。一実施形態では、資源インスタンス120は、非仮想化サーバーを含み得、すなわち、資源インスタンスは、ハイパーバイザーを使用する代わりに、裸のハードウェアサービスプラットフォーム150上で実行する従来型のオペレーティングシステムを使用して実装され得る。
【0013】
システム100は、図示した実施形態でネットワークインタフェースに対して1組の仮想化サービスを提供するために動作可能であるネットワークインタフェース仮想化コーディネータ(NIVC)180を含み得る。クライアント148は、インタフェースレコード170を作成する、それらを資源インスタンス120にアタッチする、それらをデタッチする、それらを修正する、それらの問合せを行う、などを行うための要求を含む様々なタイプの要求153を投入し得るが、これらのタイプの操作の各々は、以下でさらに詳述される。所与の要求153に応答して、NIVC 180は、157A、157B、157Cおよび157Dというラベルの付けられた矢印によって示されるように、インタフェースレコード170およびサービスプラットフォーム150上の資源インスタンス120に影響を及ぼし得る様々な操作を実行し得る。例えば、NIVC 180は、クライアント148からの作成要求に応答して、様々な資源インスタンス120と要求に応じて関連付けおよび関連付けの解除を行うことができる、1組のネットワーキング関連特性を各々が含み得る170Aおよび170Bなどのインタフェースレコードを生成し得る。インタフェースレコード170は、1組のインメモリデータ構造で生成され得、いくつかの実施形態では、永続記憶装置上のデータベースなどの、リポジトリ185内に格納され得る。TCP/IPプロトコルを使用したネットワークに対するインタフェースレコードは、例えば、1つまたは複数のIPアドレス、そのIPアドレスまたは複数のアドレスを含むサブネットの1つまたは複数のサブネット識別子、および以下でさらに詳述する1組のセキュリティ特性を含み得る。いくつかの実施形態では、インタフェースレコード170は、様々な状態フィールドなどの1つまたは複数の他のフィールド、送信元および宛先アドレスチェック設定、課金関連情報、現在関連付けられている資源インスタンス120の識別、インタフェースレコードと現在関連付けられている物理ネットワークインタフェースカード110の媒体アクセス制御(MAC)アドレス、および同類のものも含み得る。TCP/IP以外のネットワークプロトコルを採用するネットワークに対するインタフェースレコードは、使用されたプロトコルに適切なネットワークアドレス関連情報を含み得る。
【0014】
いくつかの実施形態では、NIVC 180は、インタフェースレコード170を資源インスタンス120と動的に関連付けるために「アタッチ」操作を実行し、それにより、インタフェースレコード170で指定されたネットワーキングおよびセキュリティ特性に従って、トラフィックが、資源インスタンス120に出入りして流れることを可能にするように構成され得る。クライアント148から受信したアタッチ要求153に応答して、例えば、一実施態様では、NIVC 180は、次の操作の一部または全部を実行し得る:(a)指定されたインタフェースレコード170および/または他の場所に格納されたセキュリティ情報に基づいて、クライアントが、インタフェースレコードの指定された資源インスタンス120とのアタッチを要求することを認可されていることを検証する;(b)インタフェースレコードのネットワーキング情報(IPアドレスまたは複数のアドレス、サブネット識別子など)が、指定された資源インスタンス120との間のネットワークトラフィックのアクティブ化に対して適切であることを検証する(例えば、NIVC 180は、IPアドレスが既に別のインスタンスに対して使用されているか、従って利用できないかどうかをチェックし得る);(c)物理NIC 110が動作可能であり、資源インスタンス120が現在常駐しているサービスプラットフォーム150での資源インスタンス120による使用に対して利用可能であることを確実にする;(d)必要な構成
変更を開始または実行して、例えば、サービスプラットフォーム150で、ならびにプロバイダネットワークの適切なルーター、ゲートウェイおよび他のネットワーク装置で、実行するハイパーバイザーまたはオペレーティングシステムソフトウェア内で、特定の資源インスタンス120が、インタフェースレコード内で指定されたIPアドレスまたは複数のアドレスからトラフィックの送信、およびそのアドレスでのトラフィックの受信を開始することを可能にする;ならびに(e)インタフェースレコード170および/またはリポジトリ185に対する変更を行って、実行されたアタッチ操作を反映する。構成変更の一部として、いくつかの実施形態では、ルーティングテーブルエントリなどの新規または修正されたルーティング情報が、1組のルーター、ゲートウェイ、および同類のものに伝搬され得る。一実施形態では、NIVC 180は、各資源インスタンス120が、その資源インスタンスがアクティブ化されているか、または起動されている場合にはいつでも、それにアタッチされた少なくとも1つのインタフェースレコード170を有することを確実にし得る。
【0015】
NIVC 180は、いくつかの実施形態では、それが現在アタッチされている資源インスタンス120からインタフェースレコード170を「デタッチ」または関連付けを解除するように動作可能でもあり得る。クライアント148からのデタッチ要求153に応答して、NIVC 180は、かかる実施形態では、インタフェースレコード170内で指定されたIPアドレスまたは複数のアドレスを対象としたか、またはそこからのトラフィックがさらに、資源インスタンスに出入りして流れるのを禁止し得る。それを行うために、NIVC 180は、次の操作の一部または全部を実行し得る:(a)指定されたインタフェースレコード170および/または他の場所に格納されたセキュリティ情報に基づいて、クライアントが、インタフェースレコードの指定された資源インスタンス120からのデタッチを要求することを認可されていることを検証する;(b)必要な構成変更を開始または実行して、例えば、サービスプラットフォーム150で、ならびに適切なルーター、ゲートウェイおよび他のネットワーク装置で、実行するハイパーバイザーまたはオペレーティングシステムソフトウェア内で、インタフェースレコード170のIPアドレス(複数可)に関連付けられたネットワークトラフィックが、指定された資源インスタンス120に出入りして流れるのを防ぐ;ならびに(c)インタフェースレコード170および/またはリポジトリ185に対する変更を行って、実行されたデタッチ操作を反映する。
【0016】
以前、特定の資源インスタンス120にアタッチされ、その後その資源インスタンス120からデタッチされたインタフェースレコード170は、いくつかの実施形態では、後に、クライアントの要求で、NIVC 180により、任意の所望の資源インスタンス(異なる資源インスタンス、またはそれが以前にアタッチされたのと同じ資源インスタンスのいずれか)にアタッチされ得る。各実施形態では、同じIPアドレスが、まず、1つの「アタッチ期間」中に、特定のNIC 110Aを通して、1つの資源インスタンス120Aでトラフィックの送信および受信を行うために、次いで、後続の「アタッチ期間」中に、潜在的に異なるNIC 110Bを通して、および/または異なるサービスプラットフォーム150で、異なる資源インスタンス120Bでトラフィックの送信および受信を行うために、使用され得る。クライアントが所与のIPアドレスを異なる時に異なる資源インスタンス120にマッピングするのを可能にすることに加えて、NIVC 180は、クライアントが、インタフェースレコード170に関連付けられたセキュリティ設定の一部または全部を再使用することも可能にし得、このようにして、ネットワーキング構成変更を行うために必要とされる労力および複雑性を実質的に削減する。多くの実施形態では、複数のインタフェースレコード170が、単一の資源インスタンス120にアタッチされ得、このようにして、複数のIPアドレスが同一の資源インスタンスに対して使用されるのを可能にする。いくつかの実施態様では、単一のインタフェースレコード170が、複数の資源インスタンス120に同時にアタッチされ得:例えば、NIVC 180は
、インタフェースレコード170内で指定された単一のIPアドレスを対象としたトラフィックを、2つ以上の資源インスタンス120にわたって、分散するか、または負荷分散することが可能であり得る。NIVC 180のこれらの機能を使用して、IPアドレス、サブネット、およびネットワークセキュリティ設定の資源インスタンス120への高度に柔軟なマッピングが、様々な実施形態で実装され得る。
【0017】
インタフェースレコードの構成要素例
図2は、少なくともいくつかの実施形態に従った、インタフェースレコード170の構成要素の例を示す。
図2に示す要素のサブセットまたはフィールドのみがいくつかの実施態様では実装され得、実装された全てのフィールドがデータを投入される必要はない(すなわち、フィールドのいくつかはブランクまたは空文字のままにされ得る)。インタフェースレコード170が作成される場合、新しいインタフェース識別子201がそれに対して作成され得る。いくつかの実施態様では、記述フィールド202が、インタフェースレコードの作成を要求したクライアント148によって、例えば、「ニュースウェブサイト用のインタフェース1」を記入され得る。インタフェースレコードがその中で使用されるプロバイダネットワークは、いくつかの実施形態では、複数の論理パーティションを含み得、インタフェースレコード170は、かかる場合には、論理パーティション識別子203を含み得る。例えば、プロバイダネットワークの運営者は、特定の顧客に対する論理パーティションを、1組のサービスプラットフォーム150、1組のネットワークアドレス範囲、他の機器または資源、およびネットワーク管理機能をその顧客による排他的使用のために確保することにより、確立し得、その顧客に、顧客によって使用されている機器が実際には他の顧客によって共有される施設に常駐し得る場合でも、それ自身の分離された、および専用のデータセンターまたは複数のセンターを効率的に提供する。論理パーティションは、いくつかの実施形態では、地理的に分散されている資源を含み得、それにより、顧客に、資源の仮想プライベート「クラウド」へのアクセスの利益を供与する。いくつかの場合、インタフェースレコード170は、区域識別子204を含み得、それは、例えば、そのサービスプラットフォーム150がインタフェースレコード170へのアタッチのために利用可能であり得る地理的地域またはデータセンターの組を示す。
【0018】
いくつかのタイプのネットワークアドレス関連フィールドのいずれでも、異なる実施形態では、インタフェースレコード170内に含まれ得る。1つまたは複数のプライベートIPアドレス205が、いくつかの実施形態では、インタフェースレコードに対して指定され得;これらのIPアドレスは、プロバイダネットワーク内でのルーティング用に内部で使用され得、プロバイダネットワークの外部から直接アクセス可能でない。1つまたは複数のパブリックIPアドレス215も、いくつかの実施形態では含まれ得;これらのIPアドレスは、プロバイダネットワークの外部で、例えば、パブリックインターネットの様々なルーターまたはプロバイダネットワークのピアネットワークに対して、可視であり得る。例えば、NIVC 180の構成要素を含め、様々な装置または構成要素が、必要に応じ、様々な実施形態で、パブリックIPアドレス215とプライベートIPアドレス205との間で変換するために、任意の所望のネットワークアドレス変換技術または複数の技術を実装し得る。1つまたは複数のサブネット識別子225は、インタフェースレコード内に含まれ得る。
【0019】
サブネットという用語は、本明細書で広く使用されるように、ネットワークの論理的に可視な下位区分である。IPネットワークの場合、サブネットに属する論理または物理装置の組は、それらのIPアドレス内の、共通で、同一の、最上位ビットグループでアドレス指定され得る。これは、IPアドレスの2つのフィールド(ネットワークまたはルーティングプレフィックスおよび「残り」のフィールド)への論理的分割という結果となる。残りのフィールドは、論理または物理装置に対する特定の識別子として機能し得る。ルーティングプレフィックスは、クラスレスドメイン間ルーティング(CIDR)表記法で表
され得、それは、スラッシュ(/)で分けられたプレフィックスのビット長が続く、ネットワークの第1のアドレスとして書かれ得る。例えば、10.1.1.0/24は、アドレス10.1.1.0から始まり、24ビットがネットワークプレフィックスに対して割り当てられ、残りの8ビットが装置識別子用に予約されている、インターネットプロトコルバージョン4ネットワークのプレフィックスである。IPv4では、ルーティングプレフィックスはサブネットマスクの形式でも指定され得、それは、アドレスに似た、ドットで区切られた4つの10進表現である。例えば、255.255.255.0は、10.1.1.0/24プレフィックスに対するネットワークマスクである。わずかに異なる表記法が、IPバージョン6ネットワークに対して、およびTCP/IPスイート以外のプロトコルを使用するネットワークに対して、使用され得る。サブネットは、一般に、様々な理由で(例えば、異なる組のネットワークアドレス指定可能装置間に論理的分離を提供するため、論理パーティションの資源(仮想プライベートクラウドなど)をより容易な管理のために階層構造に配置するため、など)、使用され得る。インタフェースレコード170内に含まれるサブネット識別子225は、いくつかの実施態様では、その結果として、サブネットに対するCIDR表現を含み得るか、またはそれにコード化し得る文字列―例えば、「サブネット-df543fda-10.1.1.0/24」を含み得る。一実施形態では、ドメインネームサーバー(DNS)も、インタフェースレコード170に含まれ得る。
【0020】
いくつかの実施形態では、インタフェースレコード170は、セキュリティ関連特性235を含み得る。いくつかのプロバイダネットワークは、ユーザーが、例えば、インタフェースレコード170がそれに対してアタッチされ得る資源インスタンス120で許可される入トラフィックおよび/または出トラフィックのタイプに対して、ファイアウォール関連規則を含む、規則を指定することを可能にし得;かかる規則は、「セキュリティグループ」と呼ばれ得、セキュリティグループ(複数可)フィールド245で識別され得る。様々なポートおよびプロトコル制約が、かかる規則を使用して実施され得、また、複数の規則が各インタフェースレコードと関連付けられ得る。例えば、ユーザーは、HTTPおよびHTTPs出トラフィックまたは入トラフィックのみが許可されることを確実にするため、トラフィックがそれに対して許可されるTCPまたはUDP(ユーザーデータグラムプロトコル)ポートの組を制限するため、様々なポリシーに従って入トラフィックおよび出トラフィックをフィルタ処理するためなどで、セキュリティグループを使用し得る。いくつかの実施態様では、アタッチャ(attacher)リスト247が指定され得、どのユーザーまたは実体がインタフェースレコード170の資源インスタンス120へのアタッチを要求することを許可されているかを示す。いくつかの場合には、別個のデタッチャリストが、どの実体がインタフェースレコード170をデタッチできるかを指定するために使用され得、他方、他の場合には、アタッチャリスト247などの単一のリストが認可されたアタッチャおよびデタッチャを識別するために使用され得る。インタフェースレコード170のIPアドレス(例えば、パブリックIPアドレス215および/またはプライベートIPアドレス205)を設定または修正することを許可されているユーザーまたは実体の組が、IPアドレス設定者(setter)リスト249で提供され得、いくつかの実施形態では、インタフェースレコード170を所有する(または、その様々な他のフィールドを修正できる)ユーザーまたは実体の組が、所有者/修正者フィールド253で指定され得る。例えば、フィールド253で識別された所有者/修正者は、いくつかの実施形態では、アタッチャリスト247またはIPアドレス設定者リストを変更することを許可され得、このようにして、インタフェースレコードをアタッチもしくはデタッチするか、またはそのIPアドレス(複数可)を修正することを許可された実体の組を変更する。「リスト」という用語が、フィールド247、249、および253に対して使用されているが、様々な実施形態では、リスト以外の論理データ構造(配列、ハッシュテーブル、組および同類のものなど)が、様々なセキュリティ特権、役割および/または機能を与えられた実体のグループを表すために使用され得る。
【0021】
いくつかの実施形態では、ユーザーは、資源インスタンス120を「終了する(terminate)」ことを許可され得る。例えば、クライアント148は、仮想計算サーバー資源インスタンス120を設定し、インタフェースレコード170をそのインスタンスにアタッチして、所望の組の計算をそのインスタンス上で実行し、次いで、所望の計算が完了するとそのインスタンスを終了する要求を発行し得る(従って、資源インスタンス120がもはや要求されないことを示す)。かかる実施形態では、「終了時に削除」設定251が、資源インスタンス120の終了時に、アタッチされたインタフェースレコード170に何が起こるかを指定するために使用される。終了時に削除が、終了されている資源インスタンス120にアタッチされたインタフェースレコード170に対して「真」に設定される場合、NIVC 180は、インタフェースレコード170を削除し得る(例えば、レコードがリポジトリ185から除去され得る)。終了時に削除が「偽」に設定される場合、NIVC 180は、インタフェースレコード170を、例えば、それが何等かの他の資源インスタンスに再度アタッチされ得るように、保持し得る。一実施形態では、インタフェースレコード170が資源インスタンス120にアタッチされる場合、インタフェースレコードとは別のアタッチレコードが、その関係を表すために作成され得、終了時に削除特性が、インタフェースレコードとの関連付けの代わりに、またはそれに加えて、アタッチレコードと関連付けられ得る。かかる実施形態では、インタフェースレコード170は、インタフェースレコードが現在関与している各アタッチに対するアタッチレコードまたは複数のレコードへの参照またはポインタを含み得、「終了時に削除」の異なる値が各アタッチレコードに対して設定され得る。かかる環境では、どの資源インスタンス120にもたまたまアタッチされていないインスタンスレコード170は、それがアタッチされていないままである限り、それと関連付けられた「終了時に削除」特性を持たない。このようにインタフェースレコードを資源インスタンスとは無関係に持続することにより、新しいインスタンスがアクティブ化されるたびに、様々なセキュリティ関連特性および他の特性を設定するオーバーヘッドが、クライアント248に対して削減され得る。
【0022】
一実施形態では、インタフェースレコード170は、インタフェースレコード170がアタッチされている資源インスタンス120に伝送されるネットワークパケットに対して、送信元および/または宛先チェックが実行されるかどうかの指標265などの、ルーティング関連情報を含み得る。送信元/宛先チェック設定が「偽」または「オフ」に設定されている場合、ルーティング判断は、パケットの送信元および宛先IPアドレスに基づいて行われ得、例えば、パケットが、1つのサブネットから別のサブネットへ転送され得;設定が「真」または「オン」に設定されている場合、いくつかの実施形態では、資源インスタンスはルーティングを実行しない。従って、送信元/宛先フィールド265は、いくつかの実施形態では、インタフェースレコードがアタッチされる資源インスタンスが、それが最終宛先ではないパケットについてルーティングもしくはゲートウェイ機能を実行するかどうか、または、それがかかるパケットを無視するかどうかを制御するために使用され得る。他の実施形態では、ルーティングテーブルエントリなどの、他のタイプのルーティング関連情報も、または代わりに、インタフェースレコード170に含まれ得る。課金関連情報267が、いくつかの実施態様では含まれ得、例えば、インタフェースレコード170と関連付けられたネットワークトラフィックに対して請求される実体またはユーザーを識別する。いくつかの実施態様では、顧客は、いくつのインスタンスレコードが資源インスタンスにアタッチされているかに関係なく、彼らが作成するインスタンスレコード170の数に少なくとも一部基づいて請求され得;他の実施態様では、課金は、定期的な料金(例えば、インスタンスレコード数および/またはアタッチされたインスタンスレコードの数に基づく)および非定期的な料金(例えば、トラフィックフロー測定値に基づく)の両方を含み得る。
【0023】
インタフェース状態フィールド268は、インタフェースレコード170の現在の状態
―例えば、インタフェースレコードが「利用可能」、「無効」、または「修理中(in-repair)」であるかを、示すために使用され得る。同様に、アタッチ状態フィールド269は、いくつかの実施形態では、インタフェースレコード170が、現在、アタッチされているか、デタッチされているか、またはアタッチもしくはデタッチされている途中であるかを示すために使用され得る。一実施態様では、前述のように、(インタフェースレコード170とは別の)アタッチのレコードが、対応するアタッチ操作が実行されるときに作成され得、インタフェースレコード170の現在のアタッチの識別子または複数の識別子がアタッチidフィールド271に格納され得る。インタフェースレコード170が現在アタッチされている、資源インスタンスまたは複数のインスタンス120の識別子が、アタッチされたインスタンスフィールド273に格納され得、いくつかの実施形態では、そのアタッチを要求したユーザーまたは実体が、アタッチ所有者フィールド275で識別され得る。一実施形態では、インタフェースレコード170のIPアドレスを対象とした/そこからのトラフィックに対して現在使用可能なNICまたは複数のNIC 110の識別子のリストが、例えば、MACアドレス(複数可)フィールド277の形式で、保持され得る。いくつかの実施態様では、インタフェースレコードのIPアドレスへの、またはそのIPアドレスから流れるトラフィックの量に関する統計値などの、監視情報279も、インタフェースレコードで保持され得る。様々な実施形態では、
図2に示していない他のフィールドが、インタフェースレコード170に含まれ得る。いくつかの実施形態では、クライアントは、ネットワークの分離を実装するために、VLAN規格(802.1Q規格など)に従ってフォーマットされた仮想ローカルエリアネットワーク(VLAN)タグなどの、タグをインタフェースレコード170と関連付け得る。かかる実施形態では、かかるタグもインタフェースレコード170に格納され得るか、またはそこから参照され得る。
【0024】
一実施形態では、
図2に示すフィールドのいくつかは、他のオブジェクトへの参照またはポインタで置換され得る。例えば、インタフェースレコード170に対するセキュリティ情報が、別個のセキュリティオブジェクト内に格納され得、インタフェースレコード170は、そのセキュリティオブジェクトへの参照を格納し得る。同様に、資源インスタンス120のインタフェースレコード170への各アタッチは、アタッチオブジェクトによって表され得、いくつかの実施態様では、インタフェースレコードは、適切なアタッチオブジェクトへのポインタまたは参照であり得る。
【0025】
アタッチ、デタッチ、およびインスタンス移動操作
図3~
図7は、様々な実施形態において、NIVC 180によってサポートされるいくつかのタイプの操作例を示す。
図3は、いくつかの実施形態に従って、インタフェースレコード170が資源インスタンス120にアタッチされる操作を示す。アタッチ要求301は、クライアント148によってNIVC 180に送信され得、インタフェースレコード170Aおよびそのインタフェースレコードがアタッチされる資源インスタンス120Aを識別する。
図3では、要求301に対する表記「++」(「170A++120A」におけるような)は、その要求が、アタッチ要求であることを示す。要求を受信すると、NIVC 180は、要求しているクライアントがアタッチを要求することを認可されていること、およびインタフェースレコード内のアドレス指定および他の情報が有効であることを検証し得、次いで、インタフェースレコード170Aに指定された詳細に従って、トラフィックが、資源インスタンス120Aに出入りして流れることを可能にするために、必要な構成変更を開始し得る。アタッチ要求301に応答してNIVC 180によって実行される操作は、
図3で、311とラベルを付けられた矢印およびアタッチインジケータ321によって示される。前述のように、例えば、資源インスタンス120Aが常駐しているプラットフォーム150Aのハイパーバイザーまたはオペレーティングシステムで、および使用されているプロバイダネットワークのルーターおよびゲートウェイなどの様々なネットワーキング装置で、いくつかの構成変更が、行われ、かつ/または伝搬
される必要があり得る。いくつかの実施形態では、インタフェースレコード170A自体が、例えば、インタフェース状態268、アタッチ状態269、アタッチID 271、アタッチされたインスタンス273、アタッチ所有者275、および/またはMACアドレスフィールド277などの様々な構成要素の値を変更することにより、修正され得る。図示した例では、インタフェースレコードのMACアドレスフィールド277が、NIC
110のMACアドレスに設定され得、NICは、NICを取り囲む破線によって示されるように、資源インスタンス120Aによって使用可能である。
【0026】
インタフェースレコード170は、一実施形態では、資源インスタンスの有効期間の多数の異なる段階で、資源インスタンス120にアタッチされ得る。例えば、資源インスタンス120は、特定のインタフェースレコードがそれにアタッチされるとき、ブートに続く、実行状態にあり得る(そして、それが既にアタッチされている別のインタフェースレコードのIPアドレスで受信された要求に既にサービスしている可能性がある)。いくつかの実施形態では、NIVC 180は、たとえ資源インスタンス120が現在オンまたは実行中でない場合でさえ―例えば、資源インスタンスが停止もしくは中断されているか、またはアクティブ化の途中である場合、インタフェースレコード170が、資源インスタンス120にアタッチされるのを許可し得る。かかる場合は、例えば、資源インスタンスがアクティブ化またはブートされる前、および、それがその上で起動されるサービスプラットフォーム150が選択される前でさえ、ネットワークインタフェースレコードは資源インスタンスにアタッチされ得る。アタッチ操作が要求されるときに不十分な情報しか利用できない場合―例えば、使用されるNICまたは複数のNICのMACアドレスがまだ分かっていない場合―NIVC 180は、値が実際に利用可能になるまで、インタフェースレコード170Aのいくつかのフィールドをブランクまたは空文字のままにし得る。いくつかの実施形態では、NIVC 180は、各アタッチに対して、レコードまたはデータ構造を生成および/または格納し得―例えば、関連付けられたアタッチ識別子を有するオブジェクトがリポジトリ185またはいくつかの他のデータベースに格納され得、アタッチ操作が開始または完了したときなどに、資源インスタンス120A、インタフェースレコード170A、およびアタッチに関する他の情報を識別する。いくつかの実施形態では、所与のクライアント148は、クライアントの資源インスタンス120に対して使用可能なインタフェースレコード170の組またはプールを有し得、クライアントは、指定された資源インスタンス120にアタッチするために、単に、NIVC 180が、インタフェースレコードのプールから利用可能なインタフェースレコード170を選択することを要求し得る。
【0027】
インタフェースレコード170にアタッチされる資源インスタンス120に対して使用されるIPアドレスは、いくつかの実施形態では、アタッチ操作が完了した後に、修正可能であり得る。例えば、パブリックIPアドレス215またはプライベートIPアドレス205などのIPアドレスを変更することを認可されているとして識別されるユーザーまたは実体がIPアドレス修正要求をNIVC 180に送信すると、NIVCは、要求された変更を有効にするために必要とされる必要な構成変更を行い得る。例えば、インタフェースレコード170に対するIPアドレス修正要求を受信すると、NIVCはまず、どの資源インスタンス120(ある場合)が現在インタフェースレコード170にアタッチされているかを判断し、次いで、変更されたIPアドレスを対象としたトラフィックがそれらの資源インスタンス(複数可)に到達できるようにして、インタフェースレコード170自体に必要な変更を行い得る。一実施形態では、パブリックIPアドレス215またはプライベートIPアドレス205のいずれかなどの、インタフェースレコード170に関連付けられたIPアドレスのうちの1つまたは複数が、クライアントの代わりにNIVC 180によって、そのクライアントに割り当てられた1組のIPアドレスから選択され得る。
【0028】
図4は、いくつかの実施形態に従って、インタフェースレコード170が資源インスタンス120からデタッチされる操作を示す。デタッチ要求401は、クライアント148によってNIVC 180に送信され得、インタフェースレコード170Aおよびそのインタフェースレコードがそこからデタッチされる資源インスタンス120Aを識別する。
図3では、要求401に対する表記「--」(「170A--120A」におけるような)は、その要求が、デタッチ要求であることを示す。要求を受信すると、NIVC 180は、いくつかの実施形態では、まず、指定されたインタフェースレコード170Aが実際に資源インスタンス120Aに現在アタッチされていることを検証し得る。インタフェースレコード170Aが資源インスタンス120Aにアタッチされていない場合、NIVC 180は、エラーメッセージを要求しているクライアント148に送り返すか、またはいくつかの実施形態では、単にその要求をログに書き込み、かつ/もしくは無視するかのいずれかであり得る。インタフェースレコード170Aが資源インスタンス120Aにアタッチされている場合、NIVC 180は、要求しているクライアントがデタッチを要求することを認可されていることをチェックし得、次いで、インタフェースレコード170Aに指定された詳細に従って、トラフィックが、資源インスタンス120Aに出入りして流れるのを停止させるために、必要な構成変更を開始し得る。デタッチ要求301に応答してNIVC 180によって実行される操作は、
図4で、411とラベルを付けられた矢印およびアタッチインジケータ321上の「X」によって示される。デタッチ構成変更は、実際には、単に前述のアタッチ構成変更を取り消し得る。インタフェースレコード170A自体は、いくつかの実施形態では、例えば、インタフェース状態268、アタッチ状態269、アタッチID 271、アタッチされたインスタンス273、アタッチ所有者275、および/またはMACアドレスフィールド277などの様々な構成要素の値を変更することにより、修正され得る。図示した例では、インタフェースレコードのMACアドレスフィールド277が、デタッチ時に空文字に設定され得る。
【0029】
いくつかの実施形態では、デタッチ要求401は、削除されるインタフェースレコード170Aを明示的に指定しない可能性があり―代わりに、要求しているクライアントは単に、任意のアタッチされたインタフェースレコード170Aが指定された資源インスタンス120からデタッチされるべきであることを示し得る。かかる場合、NIVC 180は、まず、例えば、リポジトリ185内で情報を検索することにより、どのインタフェースレコード170が指定された資源インスタンス120からデタッチされるべきかを発見し、次いで、デタッチ操作を開始するように動作可能であり得る。(アタッチされているインタフェースレコード170全てをデタッチするための)かかる要求は、例えば、資源インスタンスがシャットダウンされているか、無効にされているか、終了されているか、または廃棄されている場合に生成され得る。いくつかの実施態様では、「終了時に削除」フィールドがインタフェースレコード170に対して「真」に設定され、アタッチされた資源インスタンス120が終了されている場合、インタフェースレコード自体がリポジトリ185から削除され得;そうでなく、「終了時に削除」が「偽」に設定されている場合、インタフェースレコードは、あり得る後の再使用のために、その特性と共にリポジトリ内に保持され得る。前述のように、いくつかの実施形態では、「終了時に削除」特性は、インタフェースレコード自体と関連付けられる代わりに、インタフェースレコードが参照し得るアタッチレコードと関連付けられ得る。いくつかの実施態様では、デタッチ要求401は、必ずしも資源インスタンス120Aを示すことはなく、指定されたインタフェースレコード170Aが、たまたまアタッチされているどの資源インタフェース120(ある場合)からもデタッチされるべきことだけを示し得る。
【0030】
図5は、いくつかの実施形態に従って、1つの資源インスタンス120Aに以前アタッチされ、その後デタッチされた、インタフェースレコード170Aが、異なる資源インスタンス120Cにアタッチされる操作を示す。アタッチ要求501は、クライアント148によってNIVC 180に送信され得、インタフェースレコード170Aおよびその
インタフェースレコードがアタッチされている資源インスタンス120Cを識別する。
図5では、
図3におけるように、表記「++」(「170A++120C」におけるような)は、その要求が、アタッチ要求であることを示す。要求を受信すると、NIVC 180は、
図3の説明に関連して前述されたものに類似した機能を実行し得、今回は、インタフェースレコード170Cを、以前にアタッチされたインスタンス120Aとは異なるサービスプラットフォーム(150B)上に常駐している、資源インスタンス120Cにアタッチし、異なるNIC(
図5で破線によって示されるように、NIC 110B)を使用する。アタッチ要求501に応答してNIVC 180によって実行される操作は、
図5で、511とラベルを付けられた矢印およびアタッチインジケータ521によって示される。異なる資源インスタンス120に動的にアタッチでき(かつ、使用されたNIC 110を動的に変更できる)インタフェースレコード170の使用は、以下のユースケースに関する節で説明するように、NIVC 180が、クライアント148に、彼らのアプリケーションに対して使用されるネットワークアーキテクチャにおける著しい柔軟性、およびビジネス境界を越えて連携する機会を提供することを可能にする。例えば、一環境では、資源インスタンス120は、顧客からの特定のアプリケーションのウェブサービス要求を処理するように設定されている可能性がある。かかる環境では、
図4に示すように、インタフェースレコード170AのIPアドレス(複数可)を変更しない状態で保ちながら、単に、インタフェースレコード170Aを1つの資源インスタンス120Aからデタッチし、次いでそのインタフェースレコードを異なる資源インスタンス120Cとアタッチすることにより、以前、資源インスタンス120Aで処理されていた着信ウェブサービス要求の作業負荷が、現在は資源インスタンス120Cで処理できる。これは、クライアント148が、例えば、資源インスタンス120Aが停止もしくは故障を経験する場合に強化された可用性を、または、資源インスタンス120Cが強化されたバージョンを有する場合にウェブサービスアプリケーションの強化されたバージョンを配備するための使い易い機構を提供するのを可能にし得る。
【0031】
いくつかの実施態様では、NIVC 180は、複数のインタフェースレコード170が同一の資源インスタンス120にアタッチされることを可能にし得る。
図6は、1つのかかる実施形態を示し、ここでは、第2のインタフェースレコード170Bが、インタフェースレコード170Aが既にアタッチされている資源インスタンス120Cにアタッチされる。アタッチ要求601に応答して、NIVC 180は、
図3のアタッチ要求301に対して説明されたものに類似した機能を実行し得、これにより、インタフェースレコード170Aおよび170Bの両方の特性に従って、資源インスタンス120Cに出入りするネットワークトラフィックが最終的に流れるようになる。アタッチ要求601に応答してNIVC 180によって実行される操作は、
図6で、611とラベルを付けられた矢印および追加のアタッチインジケータ621によって示される。
図6に示す例では、単一のNIC 110Bが、アタッチされたインタフェースレコード170Aおよび170Bの両方に対するトラフィックを処理するために使用される。いくつかの実施態様では、インタフェースレコード170と物理NIC 110との間のマッピングが柔軟であり得る:すなわち、所与のNIC 110を通って流れるトラフィックは、任意の数のインタフェースレコード170に対応し得、所与のインタフェースレコード170に対するトラフィックは、複数の物理NIC 110を通って流れ得る。
【0032】
いくつかの実施態様では、資源インスタンス120は、それらのアタッチされたインタフェースレコード170および対応するネットワーキング関連特性のうちの少なくともいくつかを保持したまま、サービスプラットフォーム150を越えて転送可能であり得る。
図7は、少なくともいくつかの実施形態に従って、アタッチされたインタフェースレコード170Aをもつ資源インスタンス120A(以前に
図3に示すように)が、1つのサービスプラットフォーム150Aから資源インスタンス150Cに移動される操作を示す。
図7では、クライアント148は、「インスタンスの移動」要求701をシステム100
のインスタンスマネージャ780に送信して、今までサービスプラットフォーム150A上に常駐していた資源インスタンス120Aが、今はサービスプラットフォーム150C上に常駐させられるべきであることを示す。要求701に対する表記「→」(「120A→150C」におけるような)は、その要求が、移動要求であることを示す。要求を受信すると、インスタンスマネージャ780は、NIVC 180とともに、要求された移動を実装するために必要なタスクを実行し得る。例えば、移動要求701は、リクエスタが、正しい許可を有していることを確実にするために検証され得、資源インスタンス120Aは、次いで、中断されるか、または着信要求が一時的にキューに登録されている状態にされ得る。資源インスタンス120Aは、次いで、サービスプラットフォーム150C上で起動されるか、または有効にされ得、アタッチされたインタフェース170AのIPアドレス(複数可)を対象としたトラフィックが、サービスプラットフォーム150Cで適切なNICまたは複数のNIC 110を通って流れるようにするために必要とされる構成変更が、次いで開始され得る。
図7に示す例では、資源インスタンス120Aに出入りするトラフィックが、インスタンスが移動した後、NIC 110Cを通ってルーティングされる(いくつかの実施形態では、インタフェースレコード170AのMACアドレスフィールドがこれを反映するように修正され得る)。このように、資源インスタンスのネットワーキング特性(すなわち、そのアタッチされたインタフェースレコードのネットワーキング特性)が、使用された実際のネットワーキングハードウェアとは実質的に無関係にされ得る。別個のインスタンスマネージャ780が
図8に示されているが、資源インスタンスを移動させる機能は、いくつかの実施形態では、インタフェース仮想化機能とともに管理され得、すなわち、同じソフトウェアおよび/またはハードウェア実体が資源インスタンス管理操作およびインタフェースレコード管理操作を同様にサポートする。
【0033】
ユースケース例
指定されたIPアドレスおよびサブネットをもつ1つまたは複数のインタフェースレコード170を資源インスタンス120に対して動的にアタッチおよびデタッチする機能は、前述の機能によって有効にされて、顧客が、いくつかの異なる有用なタイプのネットワーク構成を容易にセットアップすることを可能にする。
図8a~
図8dは、いくつかの実施形態に従って、達成可能ないくつかのかかるネットワーク構成例の図を提供する。
【0034】
図8a~
図8dに示すネットワーキング構成は、資源インスタンス120を含み得るプロバイダネットワークに対する3つの異なる構成または階層レベル:論理パーティションレベル、サブネットレベル、およびインタフェースレコードレベルを示す。かかるプロバイダネットワークの運営者は、所与の顧客(プロバイダネットワークによってサポートされる仮想コンピューティングおよび/または仮想ストレージサービスを利用したいと欲する企業または組織など)が、その顧客による使用のために専用の1つまたは複数の論理パーティションをセットアップすることを許可し得る。論理パーティションは、例えば、顧客による必要に応じて、比較的大規模な組のサービスプラットフォーム150および、それらのサービスプラットフォーム上で起動され得る様々な資源インスタンス120に対して使用可能であり得る比較的多数のIPアドレスを含み得、顧客は、その組の資源に対するネットワーク管理機能を提供され得る。いくつかの実施形態では、例えば、論理パーティションのIPアドレスの組が、CIDR表記法で「10.1.0.0/16」などの「/16」ブロックとして指定され得、それは、最大で65,536のIPアドレスがその論理パーティションに対して使用可能であり得ることを示す。論理パーティションは、いくつかの実施形態では、「仮想プライベートクラウド」と呼ばれ得る。論理パーティションは、いくつかの実施形態では、インターネットゲートウェイまたは仮想プライベートネットワーク(VPN)ゲートウェイなどの、それに対してセットアップされた1つまたは複数のゲートウェイを有し得る。加えて、いくつかの実施形態では、デフォルトのDNSサーバーが、各論理パーティションに対してセットアップされ得、1つまたは複数のサブネットおよびルーティングテーブルエントリも、論理パーティションがセットアップされ
る際にセットアップされ得る。例えば、一実施態様では、顧客が、「/16」ブロックをもつ論理パーティションがセットアップされるのを要求すると、顧客は、論理パーティション内でセットアップされる少なくとも1つの「/24」サブネットに対するCIDR仕様も指定することを要求され得る。「/24」サブネット(例えば、「10.1.1.0/24」)は、256のIPアドレスを含む。代わりに論理パーティションがセットアップされる顧客は、いくつかの実施形態では、様々なサイズのサブネットのセットアップ、ならびに必要に応じたインタフェースレコード170の作成、アタッチおよびデタッチなどの、幅広い種類のネットワーク管理タスクを必要に応じて実行することを許可され得る。異なる論理パーティションおよびサブネットが、様々なレベルの論理的分離を達成するためにセットアップされ得:例えば、顧客は、ソフトウェア開発ビルド関連のネットワークトラフィックを企業の電子メールネットワークトラフィックから分離したいと欲し得、それを行うために、論理パーティションおよびサブネットの適切な階層構造をセットアップし得る。一実施形態では、CIDR仕様は、インタフェースレコード170に対するプライベートIPアドレス(例えば、
図2に示すフィールド205に格納される)を参照し得、他方、パブリックIPアドレス(フィールド215に格納される)は、他のポリシーに従って選択され得る。サブネット(
図2のフィールド225)および論理パーティション(フィールド203)に対する識別子が、いくつかの実施形態では、インタフェースレコード内に格納され得る。いくつかの実施形態では、インタフェースレコードのアドレス指定情報(論理パーティション識別子、サブネット識別子、プライベートおよび/またはパブリックIPアドレス)の一部または全部が、インタフェースレコード170の作成後、動的に修正可能であり得る。
【0035】
ユースケースシナリオ1:単一サブネット内の複数のIPアドレス
図8aは、一実施形態に従って、2つのインタフェースレコード170Aおよび170Bが、サブネット811A内で単一の資源インスタンス120Aと関連付けられる単純なネットワーキング構成を示す。インタフェースレコード170AはIPアドレス例x.x.x.9とともに示され、インタフェースレコード170BはIPアドレス例x.x.x.10とともに示されている(2つのアドレスに共通の表記「x.x.x」は、この場合、2つのIPV4アドレスの最初の3つのドットで区切られた要素が同一であることを意味し、例えば、2つのアドレスは、11.2.3.9および11.2.3.10であり得る)。図のように、複数のインタフェースレコード170をアタッチすることにより、必要なだけ多くの異なるIPアドレスが、いくつかの実施形態では、同一の資源インスタンスと関連付けられ得る。これは、例えば、異なるアプリケーションまたはアプリケーションインスタンスに対するトラフィックをIPアドレスによって分離するために有用であり得る。一環境では、例えば、いくつかの異なるウェブサイトが単一の資源インスタンス120上でセットアップされ得、各々がそれ自身のIPアドレスをもつ。別の実施形態では、顧客は、単一の資源インスタンス120上にセットアップされた同一の基礎となるコンテンツを供給する複数のウェブサーバーを有し得、各ウェブサーバーを異なるIPアドレスと関連付けることを欲し得る。
【0036】
ユースケースシナリオ2:単一の論理パーティション内の複数のサブネットとのアタッチ
図8bは、一実施形態に従って、異なるサブネットからの2つのインタフェースレコード170Aおよび170Cが、単一の資源インスタンス120Aと関連付けられる構成を示す。インタフェースレコード170Aは、サブネット811A内のIPアドレス例x.x.0.9とともに示され、インタフェースレコード170Cは、異なるサブネット811B内のIPアドレスx.x.1.10とともに示されている。この種の構成は、例えば、ネットワーク管理トラフィックが1つのサブネット811Aを通って流れ、他方、アプリケーションデータトラフィックが別のサブネット811Bを通って流れ、各サブネットが異なるセキュリティ特性を有する環境で有用であり得る。1つのかかる場合には、ネッ
トワーク管理トラフィック用のサブネット811Aは、アプリケーションデータに対して使用されるサブネット811Bよりも厳格なセキュリティ規則およびアクセス制御を有し得る。別の例では、複数のサブネット811にアタッチされた資源インスタンス120は、様々なネットワークセキュリティ機能を実行するようにも構成可能であり得る。例えば、第1のサブネット811Aからのトラフィックが、資源インスタンス120を通って、第2のサブネット811Bにルーティングされる必要がある場合、資源インスタンスは、ファイアウォールを実装して、ウイルス対策ゲートウェイとして機能し、侵入検出および/または他のタイプのネットワークトラフィック分析、フィルタ処理、もしくは監視などを実行し得る。
【0037】
図8bに示すものに類似した構成は、いくつかの実施形態では、資源インスタンス120を1つのサブネットから別のサブネットに動的かつ効率的に移動するためにも使用され得る。例えば、顧客は、ソフトウェア開発環境専用のサブネット811A内でインタフェースレコード170Aにアタッチされた資源インスタンス120A上で、アプリケーションサーバーインスタンスをセットアップし、アプリケーションの更新されたバージョンを、そのアプリケーションサーバーインスタンス上に配備させ得る。顧客が、更新されたバージョンについて品質保証(QA)検査を開始することを欲していて、QA検査環境が開発サブネット811Aから分離されたサブネット811B内にある場合、次のステップが取られ得る。まず、サブネット811Bからの第2のインタフェースレコード170Cが、資源インスタンス120Aにアタッチされ得る。次いで、インタフェースレコード170Aが、資源インスタンス120Aからデタッチされ得、このようにして、異なる資源インスタンス上の更新されたバージョンを配備する必要なく、検査が所望のQAサブネット内だけで実行されることを可能にする。同様に、アプリケーションは、QA環境から製造環境へ、など、他の開発ライフサイクル段階遷移を通じて容易に移動され得る。
【0038】
一環境では、顧客は、1組のフロントエンドウェブサーバーまたは外部ネットワーク(すなわち、資源インスタンス120を含むプロバイダネットワークの外部の装置)からアクセス可能な他の資源を、極秘データを格納し得るデータベースサーバーなどの1組のバックエンドサーバーから分離し、このようにして、外部ネットワークからのバックエンドサーバーへの直接のネットワークアクセスを防ぐようにすることを欲し得る。かかる場合、
図8bの資源インスタンス120Aは、いくつかの実施形態では、フロントエンドトラフィックに対してサブネット811Aを、バックエンドトラフィックに対してサブネット811Bを使用し得る。従って、ウェブサービスに対する要求が、資源インスタンス120A上で実行するウェブサーバーで、サブネット811Aを介して受信され得、それらの要求を実現するために必要とされる対応するバックエンド要求が、サブネット811B内のバックエンドサーバーに送信され得る。バックエンドサーバーからの応答が、サブネット811Bから受信され、サブネット811Aを介してリクエスタに送り返され得る。
【0039】
いくつかの実施態様では、異なるサブネット内の複数のインタフェースレコード170にアタッチされているインスタンス120は、ルーターとしても使用され得る。例えば、資源インスタンスで受信されたパケットが、資源インスタンスから1つのサブネットを通って到達可能な送信元IPアドレス、および別のサブネットを通って到達可能な宛先IPアドレスを有し、かつ、必要とされる適切な設定が設定されている場合(例えば、ルーティングテーブルエントリが適切にセットアップされている場合)、インスタンスはパケットを第2のサブネットを経由して宛先アドレスにルーティングし得る。
【0040】
ユースケースシナリオ3:同一顧客の複数の論理パーティションへのアタッチ
図8cは、一実施形態に従って、同一の顧客(顧客A)に対してセットアップされた異なる論理パーティション801Aおよび801Bからの2つのインタフェースレコード170Aおよび170Dが、単一の資源インスタンス120Aと関連付けられる構成を示す
。インタフェースレコード170Aは、論理パーティション801Aのサブネット811A内のIPアドレス例10.0.0.9とともに示され、インタフェースレコード170Dは、異なる論理パーティション801Bのサブネット811B内のIPアドレス172.16.1.10とともに示されている。この種の構成は、いくつかの目的で有用であり得る。2つの論理パーティション801Aおよび801Bは、顧客Aの代わりに、様々な理由のいずれかに対して―例えば、顧客Aのプライベートイントラネットのトラフィックを、顧客Aによって彼ら自身の顧客に公開されている非武装地帯(DMZ)ネットワークを対象としたトラフィックから分離するために、セットアップされている可能性がある。かかる環境では、
図8cの資源インスタンス120Aは、例えば、パーティション間ルーティングを実行するように構成され得る。いくつかの実施形態では、顧客は、サービスを、2つの論理パーティション内の装置からアクセス可能な資源インスタンス120Aによって提供されることを欲し得、それは、
図8cのものと類似した構成を使用しても可能にされ得る。
【0041】
言うまでもなく、前述のユースケース1および2で説明したNIVC 180によってサポートされる他の機能のいくつかも、
図8cに示すタイプの構成を使用して、論理パーティション境界にわたって拡げられ得る。例えば、様々な実施形態では、複数のIPアドレスが、2つの異なるCIDR/16アドレス範囲内の所与の資源インスタンス120に対して提供され得、資源インスタンスが論理パーティションを越えて移動され得る、など。資源インスタンス120Aは、いくつかの実施形態では、論理パーティション801にわたるプロキシサービスも提供されるか、またはデータネットワークとは別個の論理パーティション内にある管理ネットワークを実装するために使用され得る。
【0042】
ユースケースシナリオ4:異なる顧客の論理パーティションへのアタッチ
NIVC 180は、いくつかの実施形態では、異なる顧客に対してセットアップされた論理パーティションにわたるいくつかのブリッジサービス(bridging service)を提供することが可能であり得る。
図8dは、一実施形態に従って、それぞれの顧客に対してセットアップされた異なる論理パーティション801Aおよび801B(顧客Aに対するパーティション801Aおよび顧客Bに対するパーティション801B)からの2つのインタフェースレコード170Aおよび170Eが、単一の資源インスタンス120Aと関連付けられている構成を示す。
【0043】
図8dに示す機能は、いくつかの異なる連携的なシナリオを可能にし得る。一例では、顧客Aおよび顧客Bが、あるプロジェクトについて連携している可能性がある。顧客Aは、彼らの論理パーティション801A内の資源インスタンス120A上にコンテンツサーバーアプリケーションを配備している可能性がある。顧客Bは、そのコンテンツサーバーアプリケーションにアクセスすることを欲し得るが、どちらの会社もこのサーバーをパブリックインターネットに公開したくない可能性がある。代わりに、顧客Bは、彼ら自身の論理パーティション801B内のインタフェースレコード170Eを作成し、そのインタフェースレコード170Eに許可を設定して、顧客Aがそれにアタッチすることを可能にし得る。顧客Aは、インタフェースレコード170Eを、顧客Aの論理パーティション801A内でコンテンツサーバーを実行する資源インスタンス120Aにアタッチし得る。このようにして、両方の顧客が、大規模な変更を行う必要なく、コンテンツサーバーに安全にアクセスし得る。さらに、顧客Aは、いくつかの実施態様では、インタフェースレコード170Eのセキュリティ特性を使用して、HTTPおよびHTTPSポートだけが顧客Bに対して利用可能であることを確実にし得るか、または必要に応じて、他の方法で、顧客Bの論理パーティションからのアクセスを制限し得る。
【0044】
顧客間のピアリングが有効にされ得る第2のシナリオでは、顧客Aおよび顧客Bは、いくつかのプロジェクトについて連携している可能性があり、互いに他の論理パーティショ
ンに対するプライベートアクセスを有したい可能性がある。1つのかかる実施形態では、顧客Aは、資源インスタンス120A上でゲートウェイアプリケーション(ファイアウォールまたはルーターなど)を起動し得、顧客Bはインタフェースレコード170Eを作成し得る。ゲートウェイアプリケーション所有者の顧客Aは、両方の論理パーティションが、ゲートウェイアプリケーションを実行するデュアルホームド資源インスタンス120Aを介して接続されるように、インタフェースレコード170Eを資源インスタンス120Aにアタッチし得る。このシナリオは、2顧客の論理パーティションのIPアドレス範囲にいくつかの制約を課し得―例えば、いくつかの実施態様では、それらが重なり合うIPアドレスを有する場合、何等かの形式のネットワークアドレス変換が必要とされ得る。いくつかの環境では、資源インスタンス120Aは、専用ネットワーク機器(例えば、ルーター機器またはファイアウォール機器)上でホストされ得る。
【0045】
パーティション間アタッチ(cross-partition attachment)機能も、いくつかの実施形態では、技術的サポートを提供するために使用され得る。1つのかかるシナリオでは、顧客Aは、資源インスタンス120AでベンダーXからのアプリケーションを使用している可能性があり、ここで、ベンダーXもシステム100の運営者の顧客である。顧客Aは、アプリケーションに関連する問題に遭遇している可能性があり、ベンダーXからハンズオンサポートを受けたい可能性がある。顧客AはベンダーXに連絡し得、ベンダーXは彼ら自身の論理パーティション内にインタフェースレコード170Eを作成して、顧客Aにアタッチする許可を与え得る。顧客Aは、彼らの資源インスタンス120Aを、ベンダーXのインタフェースレコード170Eにアタッチし得、そのため、例えば、ベンダーXが、セキュアシェル(SSH)またはリモートデスクトッププロトコル(RDP)を使用して、その問題のあるアプリケーションにアクセスして、必要に応じトラブルシューティングを実行し得る。かかるサポートは、顧客Aの論理パーティションにアクセスするためにインターネットゲートウェイまたは仮想プライベートネットワークゲートウェイを使用することなく、サポートされ得る。さらに、顧客Aは、いくつかの実施形態では、資源インスタンス120AからベンダーXの論理パーティション801Bに伝送されているいかなるトラフィックも防ぐために、出力(egress)ポリシー(例えば、インタフェースレコード170Eのセキュリティ特性の使用)を修正し得る。これは、ベンダーXが、不注意に、または故意に、顧客Aの論理パーティション801A内の他の資源にアクセスするのを防ぎ得る。
【0046】
マネージドサービスプロバイダ(MSP)も、いくつかの実施形態では、パーティション間アタッチ機能を活用することが可能であり得る。MSP(顧客A)は、それ自身の論理パーティション(例えば、801A)内でアプリケーションをホストして、彼らの顧客の論理パーティション(例えば、MSP顧客Bのパーティション801B)内のインタフェースレコード170にアタッチし得、このようにしてMSP顧客に、MSPアプリケーションにアクセスするための彼ら自身のパーティション内のエンドポイントを提供する。MSPは、彼らのアプリケーションを実行する資源インスタンス(例えば、120A)の制御を保持し得、他方、MSP顧客は、MSP顧客のネットワーク空間内のIPアドレスを介してMSPアプリケーションにアクセスすることが可能であり得る。MSPアプリケーションは、顧客関係管理(CRM)、コンテンツ管理、連携、データベースおよび同類のものなどの、任意の様々な異なるタイプのサービスを含み得る。
【0047】
図8a~
図8dに示す例に加えて、NIVC 180の機能は、様々な実施形態で、他のタイプのサービスも有効にし得る。例えば、もし、インタフェースレコード170にアタッチされた第1の資源インスタンス120が障害を起こすか、または停止するとき、一種の高可用性(HA)が、インタフェースレコード170を、第1の資源インスタンスと類似のサービスを提供することが可能な第2の資源インスタンスにアタッチすることにより、実装され得る。システム100が、リレーショナルデータベースサービス、マップリ
デュースもしくは他の分散またはパラレルコンピューティングサービス、配備サービスまたは負荷分散サービスなどの、様々なサービスをサポートする実施形態では、複数の顧客の論理パーティションにアタッチされる資源インスタンス120は、様々なサービスに対して管理および制御サービスを実装するために使用され得る。かかる管理サービスは、「制御プレーン(control plane)」機能と呼ばれ得、非管理アプリケーションデータまたはユーザーデータを伝送するために使用される「データプレーン(data
plane)」から区別される。
【0048】
ウェブインタフェース例
いくつかの実施形態では、NIVC 180は、前述のインタフェースレコードに関連したサービスの一部または全部を定義およびサポートする1つまたは複数のインタフェースを実装するように動作可能であり得る。例えば、1つまたは複数のアプリケーションプログラミングインタフェース(API)が実装され得るか、または様々なタイプのグラフィカルユーザーインタフェース(GUI)もしくはコマンドラインインタフェースが、様々な実施形態で提供され得る。
図9は、少なくともいくつかの実施形態に従い、NIVC
180によって提供され得る、例示的なウェブベースインタフェースの一部の図である。
【0049】
図9のウェブページ900は、クライアント148が、インタフェースレコード作成要求の詳細を提供するために記入し得る、いくつかのフォームフィールドを含む。ウェブページ900の領域903では、友好的な挨拶および概要メッセージが提供され得る。フォームフィールド904は、クライアントが、インタフェースレコードに対する名前および記述を指定することを可能にし得る。論理パーティションが実装される実施形態では、クライアントが、要求されたインタフェースレコード170に対して論理パーティションを指定することを可能にするために、フォームフィールド905が提供され得る。いくつかの実施態様では、クライアント148がそこから1つを選択することを認可されている、1組の論理パーティションの識別子が、例えば、ドロップダウンメニューを介して、自動的に利用可能にされ得、かつ/またはフィールド905が、クライアントが修正し得る、デフォルトの論理パーティション識別子で事前に埋められ得る。フォームフィールド909は、インタフェースレコードに対するサブネット識別子を指定するために使用され得る。1つまたは複数のIPアドレス(プライベートおよび/またはパブリックIPアドレスを含む)が、フォームフィールド917を使用して指定され得る。フォームフィールド921は、セキュリティグループ、インタフェースレコードにアタッチすることを許可されている実体のリスト、および同類のものなどの、様々なセキュリティ特性を指定するために利用可能であり得る。フィールド925は、任意選択で、インタフェースレコードがアタッチされる資源インスタンス120を識別するために使用され得る。フィールド905の場合のように、ウェブページ900上のいくつかの他のフィールドも、いくつかの実施形態では、デフォルト値で事前に埋められ得、かつ/または許可された選択項目の選択が、ドロップダウンメニューまたは類似の機構を介して提供され得る。投入ボタン931は、インタフェースレコード作成要求を投入するために使用され得る。
【0050】
NIVC 180は、一実施態様では、要求しているクライアント148によって記入されないまま残され得る、一部または全部のフィールドに対して値を生成し得る。ウェブベースのインタフェースを採用するいくつかの実施態様では、いくつかの異なるウェブページが、インタフェースレコードの作成プロセス中に採用され得る。クライアントが1つのフォームエントリに記入すると、NIVC 180は、後続のフォームエントリに対して利用可能な選択肢の組をカスタマイズするか、または狭めることを可能にし得る。いくつかの実施態様では、ウェブページ900のようなインタフェースを経由した、フォームデータの投入は、NIVC 180によってサポートされ得る1つまたは複数のAPI呼び出しの起動という結果になり得る。
【0051】
インタフェースレコード170を作成するための、
図9に示すものに類似したインタフェースは、様々な実施形態で、アタッチ操作、デタッチ操作、削除操作、IPアドレス変更操作、および同類のものなどの、NIVC 180によってサポートされる他のタイプの操作に対しても提供され得る。いくつかの実施形態では、クライアント148は、例えば、インタフェースレコード170の状態の判断、所与の資源インスタンス120にアタッチされたインタフェースレコード170の識別、所与のサブネットまたは論理パーティション内でクライアント148によってセットアップされた全てのインタフェースレコードのリストなどを行うための問合せを投入することを許可され得る
【0052】
インタフェースレコード操作のための方法
図10は、少なくともいくつかの実施形態に従って、インタフェースレコード操作を提供するための方法の流れ図である。流れ図内の要素1800に示すように、インタフェース仮想化サービスは、例えば、NIVC 180の形式で、実装され得る。いくつかの実施態様では、サービスは、例えば、プロバイダネットワーク内の様々な装置上で実行する、ハイパーバイザーソフトウェア、オペレーティングシステムソフトウェア、またはルーティングソフトウェアの構成要素を介して、ソフトウェアおよび/またはハードウェア構成要素の組合せによって実装され得る。要素1805に示すように、サービスの1つの要素は、インタフェース仮想化要求を待つように構成され得、それは、例えば、
図10に示すものと類似したウェブベースのインタフェースを介して受信され得る。
【0053】
受信された要求の特定のタイプに応じて、適切な組の動作がそれに応答して取られ得る。例えば、新しいインタフェースレコードを作成するための要求が受信されると(
図10の要素1810)、かかるレコード170がインスタンス化され、任意選択でリポジトリに格納され得る(要素1815)。既存のインタフェースレコードをアタッチするための要求が受信されると(要素1820)、そのインタフェースレコードに対して指定されたIPアドレスまたは複数のアドレスに出入りするトラフィックの流れが、それに対するアタッチが要求されている資源インスタンス120で有効にされ得る(要素1825)。デタッチ要求が受信されると(要素1830)、インタフェースレコードのIPアドレス(複数可)に出入りするトラフィックが、インタフェースレコードがアタッチされた資源インスタンスで無効にされ得る(要素1835)。インタフェースレコードを削除するための要求が受信されると(要素1840)、そのレコードは、例えば、リポジトリ185から削除され得る(要素1845)。
【0054】
インタフェースレコードを修正する(例えば、IPアドレスを変更する)ための要求が受信されると(要素1850)、レコードは要求されたように修正され得、任意の必要な構成変更が開始され得る(要素1855)。インタフェースレコードの問合せ(例えば、インタフェースレコードのまたは複数のレコードの状態を判断するため)を受信すると(要素1860)、問合せに対する応答が生成されて、提供され得る(要素1865)。各々の場合、要求された動作または複数の動作を実行する前に、適切な認可およびセキュリティチェックが実行され得る。いくつかの実施態様では、いくつかのタイプのインタフェースレコード操作が、冪等(idempotent)操作として実装され得え、例えば、IPアドレスをA.B.C.Dに変更するための第1の要求が受信され、同じ変更を要求する第2の要求が続く場合、第2の要求は影響を及ぼさない。予期しない、未サポートの、認可されていないか、またはそうでなければ無効である要求が受信されると、いくつかの実施態様では、エラーメッセージが生成され得る。所与の要求に対して応答した後、サービスは、次いで、次のインタフェース仮想化要求を待つ。いくつかの実施態様では、
図10に示す機能の部分が、並行して実装され得、例えば、2つ以上の要求が同時に処理され得る。いくつかの実施態様では、いくつかの要求が組み合わされ得―例えば、インスタンスレコードの作成およびアタッチの両方のための単一の要求がサポートされ得る。
【0055】
実施形態例は、以下の付記項を考慮して記述できる:
付記項1.第1の資源インスタンスおよび第2の資源インスタンスを含む複数の資源インスタンスと、
ネットワークインタフェース仮想化コーディネータとを備えるシステムであって、
ネットワークインタフェース仮想化コーディネータが: インタフェースレコード作成要求に応答して、第1のインターネットプロトコル(IP)アドレス、第1のIPアドレスを含む第1のサブネットのサブネット識別子、および第1の組のセキュリティ特性を含むインタフェースレコードを生成し、インタフェースレコードをリポジトリに格納することと、
インタフェースレコードを第1の資源インスタンスにアタッチするための第1のアタッチ要求に応答して、第1の資源インスタンスが、第1の組のセキュリティ特性に従って、第1のIPアドレスを対象としたトラフィックを第1のネットワークインタフェースカードを通して受信することを可能にすることと、
インタフェースレコードを第1の資源インスタンスからデタッチするためのデタッチ要求に応答して、第1の資源インスタンスが、第1のIPアドレスを対象としたトラフィックを受信するのを防ぐことと、
インタフェースレコードを第2の資源インスタンスにアタッチするための第2のアタッチ要求に応答して、第2の資源インスタンスが、第1の組のセキュリティ特性に従って、第1のIPアドレスを対象としたトラフィックを第2のネットワークインタフェースカードを通して受信することを可能にすることとを行うように動作可能である、システム。付記項2.ネットワークインタフェース仮想化コーディネータが: 第2のインタフェースレコード作成要求に応答して、第2のIPアドレスを含む第2のインタフェースレコードを生成し、第2のインタフェースレコードを前記リポジトリに格納することと、
第2のインタフェースレコードを第1の資源インスタンスにアタッチするための新しいアタッチ要求に応答して、第1の資源インスタンスが、第2のIPアドレスを対象としたトラフィックを受信することを可能にすることとを行うようにさらに動作可能である、付記項1に記載のシステム。
付記項3.第2のIPアドレスが、第2のサブネットの部分であり、かつ、第2のインタフェースレコードが第2のサブネットのサブネット識別子を含む、付記項2に記載のシステム。
付記項4.ネットワークインタフェース仮想化コーディネータが: 第1の資源インスタンスで、ネットワークパケットを送信元IPアドレスから受信することであって、送信元IPアドレスが、第1の資源インスタンスから第1のサブネットを介して到達可能であり、かつ、ネットワークパケットが、第1の資源インスタンスから第2のサブネットを介して到達可能な宛先IPアドレスを有する、ネットワークパケットを送信元IPアドレスから受信することと、
ネットワークパケットを第2のサブネットを介して宛先IPアドレスにルーティングすることとを行うようにさらに動作可能である、付記項3に記載のシステム。
付記項5.インタフェースレコードが、1つまたは複数の追加のIPアドレスを含み、かつ、インタフェースレコードを第1の資源インスタンスにアタッチするための第1のアタッチ要求に応答して、ネットワークインタフェース仮想化コーディネータが、第1の資源インスタンスが1つまたは複数の追加のIPアドレスを対象としたトラフィックを受信することを可能にするようにさらに動作可能である、付記項1に記載のシステム。
付記項6.ネットワークインタフェース仮想化コーディネータが: 新しいIPアドレスを含むIPアドレス修正要求に応答して、
インタフェースレコードを新しいIPアドレスを含むように修正することと、
インタフェースレコードがアタッチされる複数の資源インスタンスのうちの現在アタッチされている資源インスタンスを識別することと、
現在アタッチされている資源インスタンスが、新しいIPアドレスを対象としたトラ
フィックを受信することを可能にすることとを行うようにさらに動作可能である、付記項1に記載のシステム。
付記項7.インタフェースレコード作成要求に応答して、IPアドレスおよび第1のIPアドレスを含む第1のサブネットのサブネット識別子を含むインタフェースレコードを生成すること、およびインタフェースレコードを永続的リポジトリに格納することと、
インタフェースレコードを、複数の資源インスタンスのうちの第1の資源インスタンスにアタッチするための第1のアタッチ要求に応答して、第1の資源インスタンスが、第1のIPアドレスを対象としたトラフィックを受信することを可能にすることと、
インタフェースレコードを第1の資源インスタンスからデタッチするためのデタッチ要求に応答して、第1の資源インスタンスが、第1のIPアドレスを対象としたトラフィックを受信するのを防ぐこと、およびインタフェースレコードを永続的リポジトリ内に保持することとを含む、方法。
付記項8.第2のインタフェースレコード作成要求に応答して、第2のIPアドレスを含む第2のインタフェースレコードを生成することと、
第2のインタフェースレコードを第1の資源インスタンスにアタッチするための第2のアタッチ要求に応答して、第1の資源インスタンスが、第2のIPアドレスを対象としたトラフィックを受信することを可能にすることとをさらに含む、付記項7に記載の方法。付記項9.第2のIPアドレスが、第2のサブネットの部分であり、かつ、第2のインタフェースレコードが第2のサブネットのサブネット識別子を含む、付記項8に記載の方法。
付記項10.第1の資源インスタンスで、ネットワークパケットを送信元IPアドレスから受信することであって、送信元IPアドレスが、第1の資源インスタンスから第1のサブネットを介して到達可能であり、かつ、ネットワークパケットが、第1の資源インスタンスから第2のサブネットを介して到達可能な宛先IPアドレスを有する、ネットワークパケットを送信元IPアドレスから受信することと、
ネットワークパケットを第2のサブネットを介して宛先IPアドレスにルーティングすることとをさらに含む、付記項9に記載の方法。
付記項11.新しいIPアドレスを含むIPアドレス修正要求に応答して、
インタフェースレコードを新しいIPアドレスを含むように修正することと、
インタフェースレコードがアタッチされる複数の資源インスタンスのうちの現在アタッチされている資源インスタンスを識別することと、
現在アタッチされている資源インスタンスが、新しいIPアドレスを対象としたトラフィックを受信することを可能にすることとをさらに含む、付記項9に記載の方法。
付記項12.第1のサブネットが、第1の共通インターネットドメインルーティング(CIDR)アドレスプレフィックスをもつネットワークの第1の論理パーティションの部分であり、かつ、第2のサブネットが、第2のCIDRアドレスプレフィックスをもつネットワークの第2の論理パーティションの部分である、付記項9に記載の方法。
付記項13.インタフェースレコードが、アタッチ要求を投入することを認可された1つまたは複数の実体を識別する第1の認可エントリを含む1組のセキュリティ特性を含む、付記項7に記載の方法。
付記項14.1組のセキュリティ特性が、第1の認可エントリを修正することを認可された1つまたは複数の実体を識別する第2の認可エントリを含む、付記項13に記載の方法。
付記項15.インタフェースレコード作成要求に応答して、IPアドレスおよび第1のIPアドレスを含む第1のサブネットのサブネット識別子を含むインタフェースレコードを生成すること、およびそのインタフェースレコードを永続的リポジトリに格納することと、
インタフェースレコードを、複数の資源インスタンスのうちの第1の資源インスタンスにアタッチするための第1のアタッチ要求に応答し、第1の資源インスタンスが、そのブートアップに続いて実行状態にあり、第1のIPアドレスを対象としたトラフィックが第
1の資源インスタンスで受信されることを可能にすることを実装するためにコンピュータ実行可能なプログラム命令を格納する持続性コンピュータアクセス可能記憶媒体。
付記項16.プログラム命令が、
第2のインタフェースレコード作成要求に応答して、第2のIPアドレスを含む第2のインタフェースレコードを生成することと、
第2のインタフェースレコードを第1の資源インスタンスにアタッチするための第2のアタッチ要求に応答して、第1の資源インスタンスが、第2のIPアドレスを対象としたトラフィックを受信することを可能にすることとを実装するためにコンピュータ実行可能である、付記項15に記載の持続性コンピュータアクセス可能記憶媒体。
付記項17.第2のIPアドレスが、第2のサブネットの部分であり、かつ、第2のインタフェースレコードが第2のサブネットのサブネット識別子を含む、付記項16に記載の持続性コンピュータアクセス可能記憶媒体。
付記項18.プログラム命令が、
第1の資源インスタンスで、ネットワークパケットを送信元IPアドレスから受信することであって、送信元IPアドレスが、第1の資源インスタンスから第1のサブネットを介してアクセス可能であり、かつ、ネットワークパケットが、第1の資源インスタンスから第2のサブネットを介してアクセス可能な宛先IPアドレスを有する、ネットワークパケットを送信元IPアドレスから受信することと、
ネットワークパケットを第2のサブネットを介して宛先IPアドレスにルーティングすることとを実装するためにコンピュータ実行可能である、付記項17に記載の持続性コンピュータアクセス可能記憶媒体。
付記項19.インタフェースレコードが、IPアドレスを修正することを認可された1つまたは複数の実体を識別する認可エントリを含む1組のセキュリティ特性を含む、付記項15に記載の持続性コンピュータアクセス可能記憶媒体。
付記項20.インタフェースレコードが:入トラフィックに対するポート制約、入トラフィックに対するプロトコル制約、出トラフィックに対するプロトコル制約、または出トラフィックに対するプロトコル制約のうちの少なくとも1つを識別する認可エントリを含む1組のセキュリティ特性を含む、付記項15に記載の持続性コンピュータアクセス可能記憶媒体。
付記項21.プログラム命令が、
新しいIPアドレスを含むIPアドレス修正要求に応答して、
インタフェースレコードを新しいIPアドレスを含むように修正することと、
インタフェースレコードがアタッチされる複数の資源インスタンスのうちの現在アタッチされている資源インスタンスを識別することと、
現在アタッチされている資源インスタンスが、新しいIPアドレスを対象としたトラフィックを受信することを可能にすることとを実装するためにコンピュータ実行可能である、付記項15に記載の持続性コンピュータアクセス可能記憶媒体。
付記項22.第1のサブネットがクライアントアプリケーションデータの伝送用に指定されたデータサブネットであり、かつ、第2のサブネットがネットワーク管理データの伝送用に指定された管理サブネットである、付記項17に記載の持続性コンピュータアクセス可能記憶媒体。
付記項23.第1のIPアドレスが、第1の顧客の代わりに保持された第1のネットワーク論理パーティションの部分であり、第2のIPアドレスが、第2の顧客の代わりに保持された第2のネットワーク論理パーティションの部分である、付記項16に記載の持続性コンピュータアクセス可能記憶媒体。
【0056】
例示的なコンピュータシステム
少なくともいくつかの実施形態では、インタフェースレコード170に関連した様々なサービスおよび操作を提供するための技術を含む、本明細書で記載する1つまたは複数の技術の一部または全部を実装するサーバーは、
図11に示すコンピュータシステム200
0などの、1つまたは複数のコンピュータアクセス可能媒体を含むか、またはそれにアクセスするように構成されている、汎用コンピュータシステムを含み得る。図示した実施形態では、コンピュータシステム2000は、入力/出力(I/O)インタフェース2030を介して、システムメモリ2020に結合された、1つまたは複数のプロセッサ2010を含む。コンピュータシステム2000は、入出力インタフェース2030に結合されたネットワークインタフェース2040をさらに含む。
【0057】
様々な実施形態では、コンピュータシステム2000は、1つのプロセッサ2010を含む単一プロセッサシステム、またはいくつかのプロセッサ2010(例えば、2、4、8、または別の適切な数)を含むマルチプロセッサシステムであり得る。プロセッサ2010は、命令を実行可能な任意の適切なプロセッサであり得る。例えば、様々な実施形態では、プロセッサ2010は、x86、PowerPC、SPARC、もしくはMIPS
ISA、または任意の他の適切なISAなどの、様々な命令セットアーキテクチャ(ISA)のいずれかを実装する汎用または組込みプロセッサであり得る。マルチプロセッサシステムでは、プロセッサ2010の各々は、一般に、必ずしもではないが、同じISAを実装し得る。
【0058】
システムメモリ2020は、プロセッサ(複数可)2010によってアクセス可能な命令およびデータを格納するように構成され得る。様々な実施形態では、システムメモリ2020は、スタティックランダムアクセスメモリ(SRAM)、シンクロナスダイナミックRAM(SDRAM)、不揮発性/フラッシュ型メモリ、または任意の他のタイプのメモリなどの、任意の適切なメモリ技術を使用して実装され得る。図示した実施形態では、前述したような方法、技術、およびデータなどの、1つまたは複数の所望の機能を実装する、プログラム命令およびデータは、コード2025およびデータ2026としてシステムメモリ2020内に格納されて示されている。
【0059】
一実施形態では、入出力インタフェース2030は、ネットワークインタフェース2040または他の周辺インタフェースを含む、プロセッサ2010、システムメモリ2020、および装置内の任意の周辺機器の間の入出力トラフィックを調整するように構成され得る。いくつかの実施形態では、入出力インタフェース2030は、1つの構成要素(例えば、システムメモリ2020)からのデータ信号を、別の構成要素(例えば、プロセッサ2010)による使用に適した形式に変換するために、任意の必要なプロトコル、タイミングまたはデータ変換を実行し得る。いくつかの実施形態では、入出力インタフェース2030は、例えば、Peripheral Component Interconnect(PCI)バス規格またはユニバーサルシリアルバス(USB)規格の変形などの、様々なタイプの周辺機器用バスを通してアタッチされた装置に対するサポートを含み得る。いくつかの実施形態では、入出力インタフェース2030の機能は、例えば、ノースブリッジおよびサウスブリッジなどの、2つ以上の別個の構成要素に分割され得る。また、いくつかの実施形態では、システムメモリ2020に対するインタフェースなどの、入出力インタフェース2030の機能の一部または全部が、プロセッサ2010に直接組み込まれ得る。
【0060】
ネットワークインタフェース2040は、データが、コンピュータシステム2000と、ネットワークまたは複数のネットワーク2050にアタッチされた他の装置2060(例えば、
図1~
図10に示すような他のコンピュータシステムまたは装置)との間で、交換されるのを可能にするように構成され得る。様々な実施形態では、ネットワークインタフェース2040は、例えば、イーサネット(登録商標)ネットワークのタイプなどの、任意の適切な有線または無線の一般的なデータネットワークを介した通信をサポートし得る。加えて、ネットワークインタフェース2040は、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの、電気通信/電話網を介した、ファイバーチャ
ンネルSANなどのストレージエリアネットワークを介した、または任意の他の適切なタイプのネットワークおよび/もしくはプロトコルを介した、通信をサポートし得る。
【0061】
いくつかの実施形態では、システムメモリ2020は、仮想ネットワークインタフェースレコードに対する方法および機器の実施形態を実装するための
図1~
図10について前述したように、プログラム命令およびデータを格納するように構成されたコンピュータアクセス可能媒体の一実施形態であり得る。しかし、他の実施形態では、プログラム命令および/またはデータが、異なるタイプのコンピュータアクセス可能媒体上で受信、送信または格納され得る。一般的に言えば、コンピュータアクセス可能媒体は、磁気または光媒体などの持続性記憶媒体またはメモリ媒体、例えば、入出力インタフェース2030を介してコンピュータシステム2000に結合されたディスクまたはDVD/CDを含み得る。持続性コンピュータアクセス可能記憶媒体は、コンピュータシステム2000のいくつかの実施形態で、システムメモリ2020または他のタイプのメモリとして含まれ得る、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAMなど)、ROMなどの任意の揮発性または不揮発性媒体も含み得る。さらに、コンピュータアクセス可能媒体は、ネットワークインタフェース2040を介して実装され得るような、ネットワークおよび/または無線リンクなどの通信媒体を経由して伝達される、電気的、電磁気的、または他のデジタル信号などの伝送媒体または信号を含み得る。
図11に示されるもののような複数のコンピュータシステムのうちの一部または全部が、様々な実施形態で説明した機能を実装するために使用され得;例えば、様々な異なる装置およびサーバー上で実行するソフトウェア構成要素が、機能を提供するために連携し得る。
【0062】
結論
様々な実施態様は、コンピュータアクセス可能媒体に関する前述の説明に従った、命令および/またはデータの受信、送信または格納をさらに含み得る。一般的に言えば、コンピュータアクセス可能媒体は、磁気または光などの記憶媒体またはメモリ媒体、例えば、ディスクまたはDVD/CD-ROM、揮発性または不揮発性媒体(RAM(例えば、SDRAM、DDR、RDRAM、SRAMなど)、ROMなど)、ならびに、ネットワークおよび/または無線リンクなどの通信媒体を経由して伝達される、電気的、電磁気的、もしくは他のデジタル信号などの伝送媒体または信号を含み得る。
【0063】
図に示し、本明細書で説明する様々な方法は、方法の例示的な実施形態を提示する。方法は、ソフトウェア、ハードウェア、またはそれらの組合せで実施され得る。方法の順序は、変更され得、また、様々な要素が、追加、並べ替え、組み合わせ、省略などが行われ得る。
【0064】
本開示の利益を有する当業者には明らかであるように、様々な修正および変更が行われ得る。かかる修正および変更の全てを包含し、それに応じて、前述の説明は制限的な意味ではなく例示的な意味で考えられることを意図する。