(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-01
(54)【発明の名称】コンピューティングサービス拡張位置における管理されたレイヤ2接続性のための仮想ネットワークインターフェース
(51)【国際特許分類】
H04L 41/0895 20220101AFI20241025BHJP
H04L 61/2592 20220101ALI20241025BHJP
H04L 41/40 20220101ALI20241025BHJP
H04L 61/5007 20220101ALI20241025BHJP
H04L 61/5038 20220101ALI20241025BHJP
【FI】
H04L41/0895
H04L61/2592
H04L41/40
H04L61/5007
H04L61/5038
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024529745
(86)(22)【出願日】2022-11-15
(85)【翻訳文提出日】2024-05-20
(86)【国際出願番号】 US2022079858
(87)【国際公開番号】W WO2023097150
(87)【国際公開日】2023-06-01
(32)【優先日】2021-11-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507303550
【氏名又は名称】アマゾン・テクノロジーズ・インコーポレーテッド
(74)【代理人】
【識別番号】100098394
【氏名又は名称】山川 茂樹
(72)【発明者】
【氏名】ストーン,エリック・サミュエル
(72)【発明者】
【氏名】リグオーリ,アンソニー・ニコラス
(72)【発明者】
【氏名】マレン,ジョナサン
(72)【発明者】
【氏名】バー,マシュー・ブラウン
(72)【発明者】
【氏名】ケイディ,スティーブン・アンソニー
(72)【発明者】
【氏名】ロビンソン,スティーヴン・ダグラス
(72)【発明者】
【氏名】アヴラハム,タル
(72)【発明者】
【氏名】クック,タティアナ
(72)【発明者】
【氏名】スビサ,クリント・ジョセフ
(72)【発明者】
【氏名】オストロフスキー,ヴィタリー
(72)【発明者】
【氏名】チョクロン,ジョナサン
(72)【発明者】
【氏名】シーガル,アヴィグドール
(72)【発明者】
【氏名】カトゥルル,アビシェク
(57)【要約】
仮想化コンピューティングサービスの拡張サーバのネットワーキングマネージャは、データリンク層フレームが拡張サーバにおいて取得されたことを検出する。ネットワーキングマネージャは、フレームの宛先メディアアクセスコントロール(MAC)アドレスがコンピュートインスタンスにアタッチされたローカルプレミスアクセス仮想ネットワークインターフェースのMACアドレスと一致すると判定することに応答して、フレームのコンテンツの少なくとも一部を拡張サーバで実行しているコンピュートインスタンスに配信する。ローカルプレミスアクセス仮想ネットワークインターフェースに、仮想化コンピューティングサービスによって管理されるIPアドレスの範囲からインターネットプロトコル(IP)アドレスが割り当てられない。
【選択図】
図1
【特許請求の範囲】
【請求項1】
システムであって、前記システムが、
プロバイダネットワークの仮想化コンピューティングサービスのコントロールプレーンサーバであって、前記プロバイダネットワークのデータセンタに位置する、前記コントロールプレーンサーバと、
前記仮想化コンピューティングサービスの拡張サーバのネットワーキングマネージャであって、前記拡張サーバが、前記プロバイダネットワーク外部のプレミスに位置する、前記ネットワーキングマネージャと、を備え、
前記コントロールプレーンサーバが、
クラウドアクセス仮想ネットワークインターフェースを前記仮想化コンピューティングサービスのコンピュートインスタンスにアタッチさせ、前記コンピュートインスタンスが、前記拡張サーバで実行され、前記クラウドアクセス仮想ネットワークインターフェースに、前記仮想化コンピューティングサービスで構成された隔離仮想ネットワークのIPアドレスの範囲から、第1のインターネットプロトコル(IP)アドレスが割り当てられ、
ローカルプレミスアクセス仮想ネットワークインターフェースを前記コンピュートインスタンスにアタッチさせ、前記ローカルプレミスアクセス仮想ネットワークインターフェースに、前記コントロールプレーンサーバによって特定のメディアアクセス制御(MAC)アドレスが割り当てられ、前記ローカルプレミスアクセス仮想ネットワークインターフェースに、前記隔離仮想ネットワークの前記ネットワークアドレスの範囲からIPアドレスが割り当てられないように構成され、
前記ネットワーキングマネージャが、
前記拡張サーバで受信された第1のデータリンク層フレームが、前記仮想化コンピューティングサービスのサブストレートネットワークの仮想ホストネットワークアドレスのセット内の宛先アドレスを有する第1のIPパケットを含むと少なくとも判定することに応答して、
前記仮想化コンピューティングサービスのカプセル化プロトコルを利用して、前記第1のIPパケットから第2のIPパケットを抽出し、
前記第2のIPパケットの前記宛先アドレスが前記第1のIPアドレスと一致するとの判定に応答して、前記第2のIPパケットを前記コンピュートインスタンスに配信し、
前記拡張サーバで受信された第2のデータリンク層フレームの宛先MACアドレスが、前記特定のMACアドレスと一致するとの判定に応答して、前記第2のデータリンク層フレームが、前記第1のIPパケットの前記宛先アドレスを有するIPパケットを含まず、前記カプセル化プロトコルを利用せずに、前記第2のデータリンク層フレームのコンテンツの少なくとも一部を前記コンピュートインスタンスに配信する、ように構成される、前記システム。
【請求項2】
前記コントロールプレーンサーバが、
プログラムによるインターフェースを介して、前記コンピュートインスタンスを起動するための要求を取得するようにさらに構成され、前記ローカルプレミスアクセス仮想ネットワークインターフェースが、前記コンピュートインスタンスを起動するための前記要求に応答して、作成され、かつ前記コンピュートインスタンスにプログラムでアタッチされる、請求項1に記載のシステム。
【請求項3】
前記コントロールプレーンサーバが、
プログラムによるインターフェースを介して、前記コンピュートインスタンスを終了するための要求を受信したことに応答して、前記特定のMACアドレスが再利用可能であるという指示を記憶し、
前記特定のMACアドレスを別のローカルプレミスアクセス仮想ネットワークインターフェースに割り当て、
前記他のローカルプレミスアクセス仮想ネットワークインターフェースを別のコンピュートインスタンスにプログラムでアタッチするようにさらに構成される、請求項1に記載のシステム。
【請求項4】
前記コントロールプレーンサーバが、
前記コンピュートインスタンスが代わりに起動される前記仮想化コンピューティングサービスのクライアントからプログラムによるインターフェースを介して受信した入力に基づいて、前記特定のMACアドレスの少なくとも一部を判定するようにさらに構成される、請求項1に記載のシステム。
【請求項5】
前記コントロールプレーンサーバが、
プログラムによるインターフェースを介して、(a)前記クラウドアクセス仮想ネットワークインターフェースに関連付けられたネットワークトラフィックに関連するメトリクスの第1のセット、及び(b)前記ローカルプレミスアクセス仮想ネットワークインターフェースに関連付けられたネットワークトラフィックに関連するメトリクスの第2のセットを提供させるようにさらに構成される、請求項1に記載のシステム。
【請求項6】
コンピュータ実施方法であって、
仮想化コンピューティングサービスのコントロールプレーンサーバによって、第1のローカルプレミスアクセス仮想ネットワークインターフェースを前記仮想化コンピューティングサービスの第1のコンピュートインスタンスにアタッチさせることであって、前記コントロールプレーンサーバが、プロバイダネットワークのデータセンタに位置し、前記第1のコンピュートインスタンスが、前記データセンタ外部のプレミスに位置する特定のサーバで実行され、前記第1のローカルプレミスアクセス仮想ネットワークインターフェースに、前記コントロールプレーンサーバによって第1のメディアアクセス制御(MAC)アドレスが割り当てられる、前記アタッチさせることと、
前記特定のサーバのネットワーキングマネージャによって、前記特定のサーバで受信された第1のデータリンク層フレームが前記特定のサーバに割り当てられた特定の宛先アドレスを有する第1のIPパケットを含むと判定することに応答して、
前記仮想化コンピューティングサービスのカプセル化プロトコルを使用して、前記第1のIPパケットから第2のIPパケットを抽出することと、
前記第2のIPパケットを前記第1のコンピュートインスタンスに配信することと、
前記ネットワーキングマネージャによって、前記特定のサーバで受信された第2のデータリンク層フレームの宛先MACアドレスが前記第1のMACアドレスと一致すると判定することに応答して、前記第2のデータリンク層フレームのコンテンツの少なくとも一部を前記第1のコンピュートインスタンスに配信することと、を含む、前記コンピュータ実施方法。
【請求項7】
プログラムによる要求に応答して、前記特定のサーバにおいて前記第1のコンピュートインスタンスを起動する前に、前記コントロールプレーンサーバによって前記第1のローカルプレミスアクセス仮想ネットワークインターフェースを作成することをさらに含む、請求項6に記載のコンピュータ実施方法。
【請求項8】
前記コントロールプレーンサーバにおいてプログラムによるインターフェースを介して、前記第1のローカルプレミスアクセス仮想ネットワークインターフェースに関連付けられたネットワークトラフィックに関して適用されるセキュリティ設定の指示を取得することであって、前記セキュリティ設定が、データリンク層フレームが受け入れられる送信元についての制限を含む、前記取得することと、
前記ネットワーキングマネージャによって、前記セキュリティ設定を施行することであって、前記第2のデータリンク層フレームの前記コンテンツの一部を前記第1のコンピュートインスタンスに配信する前に、前記第2のデータリンク層フレームが受信される送信元が、前記制限に違反しないことを検証することを含む、前記施行することと、をさらに含む請求項6~7のいずれか1項に記載のコンピュータ実施方法。
【請求項9】
プログラムによるインターフェースを介して受信された1つまたは複数の要求に応答して、前記第1のローカルプレミスアクセス仮想ネットワークインターフェースを前記第1のコンピュートインスタンスからデタッチさせること、及び前記第1のローカルプレミスアクセス仮想ネットワークインターフェースを第2のコンピュートインスタンスにアタッチさせることと、
前記第1のローカルプレミスアクセス仮想ネットワークインターフェースが前記第2のコンピュートインスタンスにプログラムでアタッチされた後、前記第2のコンピュートインスタンスが実行されるサーバで受信された第3のデータリンク層フレームの宛先MACアドレスが前記第1のMACアドレスと一致すると判定することに応答して、前記第3のデータリンク層フレームのコンテンツの少なくとも一部を前記第2のコンピュートインスタンスに配信することと、をさらに含む、請求項6~7のいずれか1項に記載のコンピュータ実施方法。
【請求項10】
前記コントロールプレーンサーバによって、第2のローカルプレミスアクセス仮想ネットワークインターフェースを前記第1のコンピュートインスタンスにアタッチさせることであって、前記第2のローカルプレミスアクセス仮想ネットワークインターフェースに第2のMACアドレスが割り当てられ、前記第2のローカルプレミスアクセス仮想ネットワークインターフェースに、前記コントロールプレーンサーバによってインターネットプロトコル(IP)アドレスが割り当てられない、前記アタッチさせることと、
前記ネットワーキングマネージャによって、前記第2のMACアドレスを宛先として有する第3のデータリンク層フレームが前記特定のサーバで受信されたと判定することに応答して、前記第3のデータリンク層フレームのコンテンツの少なくとも一部を前記第1のコンピュートインスタンスに配信することと、をさらに含む、請求項6~8のいずれか1項に記載のコンピュータ実施方法。
【請求項11】
非一時的コンピュータアクセス可能記憶媒体であって、プロセッサ上で実行されると、
仮想化コンピューティングサービスの拡張サーバにおけるネットワーキングマネージャによって、第1のデータリンク層フレームが前記拡張サーバにおいて取得されたことを検出し、
前記ネットワーキングマネージャによって、前記第1のデータリンク層フレームの宛先メディアアクセス制御(MAC)アドレスが前記第1のコンピュートインスタンスにアタッチされた第1のローカルプレミスアクセス仮想ネットワークインターフェースの特定のMACアドレスと一致すると判定することに応答して、前記第1のデータリンク層フレームのコンテンツの少なくとも一部を前記拡張サーバ上で実行している第1のコンピュートインスタンスに配信し、前記第1のローカルプレミスアクセス仮想ネットワークインターフェースに、前記仮想化コンピューティングサービスによって管理されるIPアドレスの範囲からインターネットプロトコル(IP)アドレスが割り当てられない、プログラム命令を記憶する、前記非一時的コンピュータアクセス可能記憶媒体。
【請求項12】
前記プロセッサ上で実行されると、
プログラムによるインターフェースを介して示されるレート制限に少なくとも一部基づいて、前記第1のコンピュートインスタンスからデータリンク層フレームが送信されるレートを抑制する、さらなるプログラム命令を記憶する、請求項11に記載の非一時的コンピュータアクセス可能記憶媒体。
【請求項13】
前記プロセッサ上で実行されると、
ブロードキャストデータリンク層フレームが前記拡張サーバで受信されたことを検出することに応答して、前記ネットワーキングマネージャによって、前記ブロードキャストデータリンク層フレームのコンテンツの少なくとも一部を、前記第1のコンピュートインスタンス、及び第2のローカルプレミスアクセス仮想ネットワークインターフェースがプログラムでアタッチされる第2のコンピュートインスタンスを含む、前記拡張サーバの複数のコンピュートインスタンスに配信する、さらなるプログラム命令を記憶する、請求項11~12のいずれか1項に記載の非一時的コンピュータアクセス可能記憶媒体。
【請求項14】
前記プロセッサ上で実行されると、
前記第1のローカルプレミスアクセス仮想ネットワークインターフェースを前記第1のコンピュートインスタンスからデタッチすることに続いて、前記ネットワーキングマネージャによって、前記拡張サーバで受信された第2のデータリンク層フレームのコンテンツが前記第1のコンピュートインスタンスに配信されるべきでないと判定し、前記第2のデータリンク層フレームの宛先MACアドレスが前記特定のMACアドレスと一致する、さらなるプログラム命令を記憶する、請求項11~13のいずれか1項に記載の非一時的コンピュータアクセス可能記憶媒体。
【請求項15】
前記第1のデータリンク層フレームが、アドレス解決プロトコル(ARP)、ドメインホスト構成プロトコル(DHCP)、または前記外部サーバが位置するプレミスにおけるローカルネットワーク内で実施されるカスタムデータリンク層アプリケーションのうちの1つに従ってフォーマットされたメッセージを含む、請求項11~14のいずれか1項に記載の非一時的コンピュータアクセス可能記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
多くの企業及び他の組織は、(例えば、ローカルネットワークの一部として)同一場所に設置されている、または(例えば、1つもしくは複数のプライベートもしくはパブリック中間ネットワークを介して接続された)複数の別個の地理的位置に位置しているコンピューティングシステムを用いるなどして、自身の業務をサポートする多数のコンピューティングシステムを相互接続するコンピュータネットワークを運用している。例えば、単一の組織によって、及び単一の組織の代わりに運用されるプライベートデータセンタ、ならびに顧客にコンピューティングリソースを提供するための主体によって事業として運用されるパブリックデータセンタなど、著しい数の相互接続されたコンピューティングシステムを収容するデータセンタが、一般的なものとなっている。いくつかのパブリックデータセンタ運用者は、様々な顧客が所有するハードウェアのためのネットワークアクセス、電力、及びセキュアな設置設備を提供し、他のパブリックデータセンタ運用者は、顧客による使用のために利用可能にされたハードウェアリソースも含む「フルサービス」設備を提供する。
【0002】
コモディティハードウェアのための仮想化技術の出現は、多様なニーズを有する多くの顧客のために大規模なコンピューティングリソースを管理することに関して利益をもたらし、様々なコンピューティングリソースを複数の顧客により効率的かつセキュアに共有することが可能となった。例えば、仮想化技術は、単一の仮想化ホストによってホストされる1つまたは複数の「ゲスト」仮想マシンを各ユーザに提供することによって、単一の物理仮想化ホストを複数のユーザ間で共有することを可能にし得る。そのような各仮想マシンは、ユーザに自分が所与のハードウェアコンピューティングリソースの唯一の運用者であると錯覚させる個別の論理コンピューティングシステムとして機能するソフトウェアシミュレーションを表すことがあり、また様々な仮想マシン間にアプリケーション分離及びセキュリティをも提供する。同一ホスト上でいくつかの異なる仮想マシンをインスタンス化することは、データセンタにおける全体的なハードウェア利用レベルの上昇を助けることもあり、投資においてより高いリターンをもたらす。場合によっては、仮想化管理技術及びそれに関連するリソース管理性の利点が、クラウドプロバイダのデータセンタ以外のプレミスに拡張されることがある。
【図面の簡単な説明】
【0003】
【
図1】少なくともいくつかの実施形態による、管理されたオープンシステム相互接続モデルのレイヤ2通信に使用されるローカルプレミスアクセス仮想ネットワークインターフェースが、仮想化コンピューティングサービスの拡張サーバにおいて起動されたコンピュートインスタンスにプログラムでアタッチされ得る、システム環境の例を示す。
【
図2】少なくともいくつかの実施形態による、論理ネットワークがサブストレートネットワーク上に構成される仮想化コンピューティングサービスにおけるマッピングサービス及びカプセル化プロトコルの使用例を示す。
【
図3】少なくともいくつかの実施形態による、コントロールプレーントラフィックがプロバイダネットワークのデータセンタから、仮想化コンピューティングサービスによって管理されるコンピュートインスタンスが起動される外部プレミスまでセキュアに流れることを可能にする、拡張トラフィック仲介デバイスの使用例を示す。
【
図4】少なくともいくつかの実施形態による、拡張サーバにおけるコンピュートインスタンスのネットワーク構成例を示す。
【
図5】少なくともいくつかの実施形態による、拡張サーバにおける仮想化コンピューティングサービスの別個の隔離仮想ネットワーク内に構成されたコンピュートインスタンスが、VCS拡張プレミスにおけるデバイスと通信するためにネットワークケーブルを共有し得る、構成例を示す。
【
図6】少なくともいくつかの実施形態による、それぞれのセキュリティ及び性能関連プロパティを有するいくつかのローカルプレミスアクセス仮想ネットワークインターフェースが、仮想化コンピューティングサービスの拡張サーバにおいて構成され得る、構成例を示す。
【
図7】少なくともいくつかの実施形態による、ローカルプレミスアクセス仮想ネットワークインターフェースの構成及び使用に関連する、プログラムによるインタラクションの例を示す。
【
図8】少なくともいくつかの実施形態による、ローカルプレミスアクセス仮想ネットワークインターフェースを構成及び利用するために実行され得る、動作の態様を示す流れ図である。
【
図9】少なくともいくつかの実施形態による、拡張サーバのコンポーネントの例を示す。
【
図10】少なくともいくつかの実施形態で使用され得るコンピューティングデバイスの例を示すブロック図である。
【発明を実施するための形態】
【0004】
いくつかの実施形態及び例示の図面の例として実施形態が本明細書中に記載されているが、当業者は、実施形態が、記載された実施形態または図面に限定されないことを認識するであろう。それらについての図面及び詳細な説明は、実施形態を特定の開示される形式に限定することを意図しておらず、逆に、その意図は、添付の特許請求の範囲によって定義される趣旨及び範囲内にある全ての修正物、均等物、及び代替物をカバーすることである。本明細書で使用される見出しは、構成のみを目的としており、説明または請求項の範囲を限定するために使用されることを意味しない。本出願の全体を通じて使用されるように、用語「may」は、必須という意味(即ち、必要であることを意味する)ではなく、許容的な意味(即ち、~する見込みを有することを意味する)において使用される。同様に、用語「include」、「including」、及び「includes」は、限定しないが、~を含むことを意味する。特許請求の範囲で使用されるとき、用語「or(または)」は、包括のor(または)として使用され、排他のor(または)としては使用されない。例えば、句「x、y、またはzのうちの少なくとも1つ」は、x、y、及びzのいずれか1つ、ならびにそれらの任意の組み合わせを意味する。特に明記しない限り、「a」または「an」などの冠詞は、概して、本出願全体を通して1つまたは複数の記載された項目を含むと解釈すべきである。したがって、「~するように構成されたデバイス」などの句は、1つまたは複数の列挙されたデバイスを含むことを意図する。そのような1つまたは複数の列挙されたデバイスは、記載された列挙を実行するようにまとめて構成されることもある。例えば、「列挙A、B、及びCを実行するように構成されたプロセッサ」は、列挙B及びCを実行するように構成された第2のプロセッサと連動して動作する列挙Aを実行するように構成された第1のプロセッサを含み得る。
【0005】
本開示は、プロバイダネットワークのデータセンタ外部のプレミス及び外部プレミスのローカルデバイスをセットアップして、プロバイダネットワークまたはクラウドコンピューティング環境の仮想化コンピューティングサービス(VCS)のコンピュートインスタンス間の管理されたオープンシステム相互接続モデルレイヤ2(OSI L2)通信を可能にするための方法及び装置に関する。このような外部プレミスには、顧客のデータセンタ、製造設備、レストランなどが含まれることがあり、外部プレミスの所有者は、ローカルサーバにおけるVCSコンピュートインスタンス内でアプリケーションを実行することを希望し、また、プレミスに位置する非VCSデバイス(VCSによって管理または所有されていないデバイス)とコンピュートインスタンスとの間のOSI L2接続を必要とする、アプリケーション及びプロトコルを実施することも希望する。プロバイダネットワークのデータセンタにおけるVCSによってサポートされる様々なタイプの特徴及び機能が外部プレミスに拡張されるため、外部プレミスは、VCS拡張プレミスと呼ばれる。VCSコンピュートインスタンスが外部プレミスで実行されるローカルサーバは、VCS拡張サーバまたは「アウトポスト」サーバと呼ばれる。
【0006】
コンピュートインスタンスは、VCSのコントロールプレーンサーバ(プロバイダネットワークのデータセンタに位置する)と拡張サーバとの間に確立されたセキュアなネットワーク経路を介して送信されるコマンドを使用してセットアップされ得る。複数タイプの仮想ネットワークインターフェース、即ちVNI(VCSによって管理され、VCSによって物理ネットワークインターフェースにマッピングされる論理デバイス)は、クラウドアクセスVNI(CVNI)及びローカルプレミスアクセスVNI(LVNI)を含み、VCSコンピュートインスタンスのためのネットワーク接続を有効にするために使用され得る。VNI(「エラスティックネットワークインターフェース」、即ちENIとも呼ばれ得る)は、IP(インターネットプロトコル)アドレス及び/またはメッセージの出入りを管理するセキュリティ設定などの様々なネットワーク関連属性を、必ずしも物理ネットワークカードを再構成することなく、コンピュートインスタンス間で容易に転送することを可能にする。このような属性の転送は、コンピュートインスタンスが実行されるホストの特定のハードウェアネットワークインターフェースカード(NIC)とは関係なく、VNIをあるコンピュートインスタンスからプログラムでデタッチし、別のコンピュートインスタンスにプログラムでアタッチすることによって達成され得る。例えば、VCSクライアントまたは顧客の要求により、VNIが作成または修正されると、VNIのプロパティ(IPアドレス、メディアアクセス制御(MAC)アドレス、セキュリティルールなど)を示すメタデータが、VCSの管理コンポーネントによって記憶または更新される。
【0007】
クラウドアクセス仮想ネットワークインターフェイス(CVNI)を拡張サーバのコンピュートインスタンスにプログラムでアタッチすることによって、コンピュートインスタンスは、クライアントに代わってVCS内に確立された、隔離仮想ネットワーク(IVN)内のIP(インターネットプロトコル)アドレスで構成され得る。CVNIの使用の結果、拡張サーバにおいて実行されているコンピュートインスタンスは、他のプロバイダネットワークリソース(例えば、プロバイダネットワークデータセンタ内の仮想化サーバにおいて実施された他のコンピュートインスタンス、ストレージサービス、データベースサービスなどの他のプロバイダネットワークサービスの中のリソースなど)に対して、コンピュートインスタンスがプロバイダネットワークのデータセンタで起動されている場合に提供される接続と同等の接続を提供している。VCSコントロールプレーンを使用して管理されるOSI L2接続を提供するために、ローカルプレミスアクセス仮想ネットワークインターフェース(LVNI)と呼ばれる第2のタイプの仮想ネットワークインターフェースもまた、拡張サーバのコンピュートインスタンスにプログラムでアタッチされ得る。MACアドレスは、VCSコントロールプレーンによってLVNIに割り当てられ、このアドレスは、ルータまたはゲートウェイなどの仲介ネットワーキングデバイスを必要とすることなく、コンピュートインスタンスと顧客がセットアップしたオンプレミスネットワーク内のデバイスとの間の双方向OSI L2通信(必要に応じてブロードキャストを含む)に利用され得る。LVNI及びCVNIの組み合わせを使用することによって、VCS拡張サーバにおいてセットアップされたコンピュートインスタンスは、したがって、ローカルオンプレミスリソース(OSI L2経由)及びクラウドベースリソース(IP経由)に同じくらい容易にアクセスすることができ、オンプレミスリソースの管理者は、ローカルトラフィック用の仲介ネットワーキングデバイスを構成または管理する苦労をしなくてもよい。
【0008】
当業者が本開示に照らして理解するように、ある実施形態は、(a)拡張サーバ上のVCSコンピュートインスタンスで実行されているプログラムが、プロバイダネットワークのデータセンタリソースへの完全な接続を依然として維持しながら、拡張プレミスのゲートウェイまたはルータなどの仲介デバイスを構成する必要なく、拡張プレミスにおけるOSIレイヤ2で実行されているアプリケーション及びプロトコルに関与することを可能にすること、ならびに(b)例えば、共通のツールセットを使用して、クラウドアクセス仮想ネットワークインターフェース及びローカルプレミスアクセス仮想ネットワークインターフェースの両方の構成及び管理を可能にすることによって、拡張プレミスのローカルネットワーク管理者のユーザエクスペリエンスを向上させること、のいくつかまたは全てを含む様々な利点を実現することが可能であり得る。
【0009】
いくつかの実施形態によれば、システムは、プロバイダネットワークの仮想化コンピューティングサービス(VCS)の1つまたは複数のコントロールプレーンサーバ(CPS)と、VCSの拡張サーバ(ES)において実行しているネットワーキングマネージャと、を含み得る。CPSは、プロバイダネットワークの1つまたは複数のデータセンタ内に位置してもよく、ESは、VCS拡張プレミスと呼ばれる、プロバイダネットワークのデータセンタ外部のプレミスに位置してもよい。CPSは、様々な実施形態において、ESで実行しているVCSのコンピュートインスタンス(例えば、仮想マシン)に少なくとも1対の仮想ネットワークインターフェース(VNI)をプログラムでアタッチさせ得る。プログラムによるアタッチのプロセスは、少なくともいくつかの実施形態では、CPSからESのローカル管理コンポーネントにコマンドまたは要求を送信することを伴い得る。クラウドアクセスVNI即ちCVNIと呼ばれるVNIの1つに、その要求に応じて拡張サーバが構成されるVCSクライアントに代わって、VCSにおいて構成された隔離仮想ネットワーク(IVN)のIPアドレス範囲からIPアドレスが割り当てられてもよく、コンピュートインスタンス、ストレージサービスのストレージサーバ、データベースサービスのデータベースサーバなどの、プロバイダネットワークのデータセンタのリソースとの通信に主に利用されてもよい。IVN(仮想プライベートクラウドとも呼ばれる)は、所与のVCSクライアントに割り当てられたネットワーク化リソース(例えば、コンピュートインスタンスを含む)の集合体を含んでもよく、それらは、他の隔離仮想ネットワーク内の他のクライアントに割り当てられたリソースから論理的に隔離されている(かつデフォルトではアクセスできない)。IVNが代わりに確立されるクライアントは、IVNのリソースのためのネットワーク構成に関して大幅な柔軟性が付与される場合がある。例えば、コンピュートインスタンスについてのプライベートIPアドレスは、他のIVN内の他のリソースに同一のIPアドレスが割り当てられている可能性、クライアントの選択のサブネットがIVN内で確立され得る可能性、IVNに関する着信トラフィック及び発信トラフィックのためにクライアントによってセキュリティルールがセットアップされ得る可能性などを考慮する必要なしに、クライアントによって選択されてもよい。少なくともいくつかの実施形態では、CVNIには、クライアントによって選択されたプライベートIPアドレス範囲内からアドレスが割り当てられてもよい。CVNIとは対照的に、ローカルプレミスアクセスVNI(LVNI)または単にローカルVNIと呼ばれる、コンピュートインスタンスにプログラムでアタッチされる第2のVNIには、IVNのIPアドレスが割り当てられないことがある。CPSは、メディアアクセス制御(MAC)アドレスをLVNIに割り当ててもよく、これは、様々な実施形態において、拡張プレミスにおいて非VCSデバイスとのOSIデータリンク層(レイヤ2)通信のための送信元アドレスまたは宛先アドレスとして使用されてもよい。
【0010】
拡張サーバのネットワーキングマネージャ(例えば、仮想化管理ソフトウェアの一部として、及び/または拡張サーバの仮想化管理オフロードハードウェアカードにおいて実施され得る)は、様々な実施形態において、拡張サーバで受信されたデータリンク層フレームまたはメッセージにどのように応答するかを判定する役割をし得る。いくつかの実施形態では、プロバイダネットワークデータセンタ内のVCS仮想化サーバにサブストレートアドレスが割り当てられるのと同様に、拡張サーバには、VCSのサブストレートネットワークまたは基礎となる物理ネットワーク内からIPアドレスが割り当てられ得る。拡張サーバで受信されたデータリンク層フレームが、宛先アドレスとしてサブストレートアドレスを有する第1のIPパケットを含むとの判定に応答して、ネットワーキングマネージャは、VCSのカプセル化プロトコルを利用して、第1のIPパケットから第2のIPパケットを抽出し得る。抽出されたIPパケットの宛先アドレスが、拡張サーバで起動されたコンピュートインスタンスのCVNIに割り当てられたIPアドレスと一致する場合(そのようなコンピュートインスタンスが複数存在することがあり、それらの1つより多くにCVNIがアタッチされていることがあることに留意されたい)、抽出されたIPパケットは、様々な実施形態においてネットワーキングマネージャによってそのコンピュートインスタンスに配信され得る。
【0011】
対照的に、受信したデータリンク層フレームが、サブストレート宛先アドレスを有するIPパケットを含まない場合、ネットワーキングマネージャは、受信したフレームの宛先MACアドレスが、拡張サーバで実行しているコンピュートインスタンスのいずれかのLVNIに割り当てられたMACアドレスと一致するかどうかを判定しようとしてもよく、カプセル化プロトコルは、使用されなくてもよい。一致するMACアドレスを有するLVNIが見つかった場合、ネットワーキングマネージャは、様々な実施形態において、受信したフレームのコンテンツの少なくとも一部を、そのLVNIがアタッチされているコンピュートインスタンスに配信し得る。受信したフレームが(特別な宛先MACアドレスを有する)ブロードキャストフレームである場合もあってもよく、その場合、少なくともいくつかの実施形態では、ネットワーキングマネージャは、受信したフレームのコンテンツを、(a)拡張サーバにおいて実行されている、(b)LVNIがアタッチされている、かつ(c)L2ブロードキャストフレームを受け入れるように構成されている、0個以上のコンピュートインスタンスのそれぞれに配信し得る(いくつかの実施形態では、1つまたは複数のコンピュートインスタンスまたはそれらにアタッチされたLVNIへのブロードキャストフレームの配信を防ぐための構成設定が使用され得ることに留意されたい)。
【0012】
いくつかの実施形態では、LVNIは、コンピュートインスタンスの起動要求に応答して実行されるワークフローの一部として、拡張サーバのコンピュートインスタンスにアタッチされ得る。他の実施形態では、(例えば、最終的にプログラムでアタッチされるコンピュートインスタンスの起動に先立って)LVNIを作成するため、及び/またはLVNIを指定されたコンピュートインスタンスにプログラムでアタッチするために、別個のプログラムによる要求が、VCSクライアントによってサブミットされてもよい。同様に、いくつかの実施形態では、CVNIは、起動ワークフローの一部としてコンピュートインスタンスに自動的にアタッチされてもよいが、少なくともいくつかの実施形態では、CVNIを作成及び/またはそれらをアタッチするためにも、プログラムによる要求がサブミットされてもよい。
【0013】
少なくとも一実施形態では、VCSは、MACアドレスのプールを維持し、そこから個々のMACアドレスがLVNIに割り当てられ、そこに、廃止されるLVNIのMACアドレスが再利用のために返される。いくつかの実施形態では、デフォルトで、LVNIは、それがアタッチされていたコンピュートインスタンスが実行を終了するときに削除または廃止されてもよく、LVNIのMACアドレスが再利用可能であるという指示が、コンピュートインスタンスを終了するための要求が受信されると(またはコンピュートインスタンスがエラーもしくは障害などの他の理由で終了すると)、VCSコントロールプレーンに記憶されてもよい。このようなMACアドレスは、例えば、そのLVNIを別のコンピュートインスタンスにプログラムでアタッチする前に、VCSコントロールプレーンによって後で別のLVNIに再割り当てされてもよい。一実施形態では、VCSクライアントは、指定されたプロパティを満たす(例えば、クライアントによって示される、指定された部分文字列と一致する)MACアドレスが、クライアントのコンピュートインスタンスにアタッチされるべきLVNIに使用されることを要求してもよい。VCSが、VCSが使用を許可されているMACアドレスのセットの中からクライアントの要求を満たすMACアドレスを識別できる場合、そのMACアドレスが使用されてもよい。このようにして、VCSクライアントは、少なくともいくつかの場合に、クライアントのLVNIに利用されるMACアドレスに影響を与えることができる場合がある。
【0014】
少なくともいくつかの実施形態によれば、VCSは、所与のコンピュートインスタンスにアタッチされたVNIごとにそれぞれのメトリクスのセットを収集し、プログラムによるインターフェースを介してLVNIメトリクス及びCVNIメトリクスを(必要に応じて)別々に、VNIが代わりに使用されているクライアントに提供し得る。このようなメトリクスは、異なる実施形態では、例えば、それぞれのVNIを使用して受信/送信されたメッセージの合計数、受信/送信された合計バイト数、異なるIPアドレス及び/またはMACアドレス間でのインバウンド/アウトバウンドトラフィックの分布などを含み得る。少なくともいくつかの実施形態では、クライアントは、プログラムによる要求を使用して、クライアントのLVNIに割り当てられたMACアドレスを取得し得る。
【0015】
様々な実施形態において、LVNIに関連付けられたデータリンク層トラフィックは、拡張サーバをオンプレミスネットワークスイッチ(拡張プレミスにおいてセットアップされ、VCSではなくクライアントによって管理される、物理ネットワークの一部)にリンクする物理ケーブル(例えば、イーサネットケーブル)を介して送信され得る。オンプレミスネットワークにおいて構成された他のデバイスは、OSI L2フレームを使用してLVNIがアタッチされているコンピュートインスタンスと通信してもよく、例えば、異なる実施形態では、モノのインターネット(IoT)デバイス、産業オートメーションデバイス(例えば、製造設備において自動化されたタスクのパイプラインを実施するコンポーネント)、拡張サーバが代理として構成されるVCSクライアントによって所有/管理されるサーバなどを含んでもよい。VCSクライアントは、様々な実施形態において、LVNIに関連付けられたトラフィックのためにセキュリティ設定(例えば、VLAN(仮想ローカルエリアネットワーク)識別子またはタグを使用して表現されて、ローカルプレミスOSIレイヤ2トラフィックのVLANベースのセグメント化を可能にし得る、フレームが受信され得る送信元またはフレームが送信され得る宛先についての制限)を指定してもよく、ネットワーキングマネージャは、拡張サーバで受信される、または拡張サーバから送信されるデータリンク層フレームの配置を判定するときに、そのようなセキュリティ設定を適用してもよい。
【0016】
LVNI(及び/またはCVNI)は、様々な実施形態において、MACアドレス及び/またはIPアドレスなどのプロパティを保持しながら、コンピュートインスタンスからプログラムによりデタッチされ、異なるコンピュートインスタンスに再アタッチされ得る。以前にアタッチされていたコンピュートインスタンスCl1からのデタッチ後にLVNIがアタッチされるコンピュートインスタンスCl2は、同じ拡張サーバまたは異なる拡張サーバにおいて実行され得る。少なくともいくつかの実施形態では、Cl2は、Cl1とは異なるIVNの一部として(例えば、そのCVNIを介して)構成され得る。いくつかの実施形態では、複数のLVNI(及び/またはCVNI)が、所与のコンピュートインスタンスにアタッチされてもよい。例えば、そのコンピュートインスタンスが実行されている拡張サーバのネットワークマネージャによるローカルプレミスOSIレイヤ2トラフィックのセグメント化を容易にするために、複数のLVNIが所与のコンピュートインスタンスにアタッチされてもよく、例えば、異なるVLAN識別子/タグに関連付けられたメッセージが、それぞれのLVNIを使用してハンドリングされてもよい。所与のMACアドレスを有するLVNIがコンピュートインスタンスからデタッチされた後、ネットワーキングマネージャは、様々な実施形態において、宛先として指示されたそのMACアドレスを有するフレームをもはやそのコンピュートインスタンスに配信できないことがある。LVNIのMACアドレスを使用して送信/受信されるOSI L2メッセージは、いくつかの実施形態では、特に、アドレス解決プロトコル(ARP)、ドメインホスト構成プロトコル(DHCP)、または拡張プレミスのローカルネットワーク内で実施されたカスタムデータリンク層アプリケーションのメッセージを含み得る。
【0017】
少なくともいくつかの実施形態では、VCSは、プロバイダネットワークまたはクラウドコンピューティング環境の一連のサービスの1つとして実施されてもよい。クラウドプロバイダネットワーク(単に「クラウド」と呼ばれることもある)は、ネットワークアクセス可能なコンピューティングリソース(計算、ストレージ、及びネットワーキングリソース、アプリケーション、ならびにサービスなど)のプールを指し、これらは仮想化され、またはベアメタルであってもよい。クラウドは、顧客のコマンドに応答して、プログラムでプロビジョニング及びリリースされ得る構成可能なコンピューティングリソースの共有プールへの便利なオンデマンドネットワークアクセスを提供し得る。これらのリソースは、変動する負荷に合わせて調整されるように、動的にプロビジョニングされ、再構成され得る。したがって、クラウドコンピューティングは、公衆アクセス可能なネットワーク(例えば、インターネットまたはセルラ通信ネットワーク)を経てサービスとして配信されるアプリケーション、ならびにそれらのサービスを提供するクラウドプロバイダデータセンタ内のハードウェア及びソフトウェアの両方と見なされ得る。
【0018】
クラウドプロバイダネットワークは、いくつかのリージョンとして形成されてもよく、ここで、リージョンとは、クラウドプロバイダがデータセンタをクラスタ化する別個の地理的領域である。このようなリージョンは、その境界が国、州などの境界と必ずしも一致しないことがあるため、プロバイダネットワークで定義されたリージョンとも呼ばれることもある。各リージョンは、プライベート高速ネットワーク、例えば、ファイバ通信接続を介して相互に接続された2つ以上のアベイラビリティゾーンを含み得る。アベイラビリティゾーン(アベイラビリティドメイン、または単に「ゾーン」とも呼ばれる)は、別のアベイラビリティゾーンとは別個の電源、別個のネットワーク、及び別個の冷却を有する1つまたは複数のデータセンタ設備を含む、分離された障害ドメインを指す。データセンタとは、クラウドプロバイダネットワークのサーバを収容しそれに電力と冷却を提供する物理的な建物または筐体を指す。リージョン内のアベイラビリティゾーンは、同じ自然災害が同時に1つより多くのアベイラビリティゾーンをオフラインにしないように、互いに十分離れて配置されることが好ましい。顧客は、トランジットセンタ(TC)経由で、公衆アクセス可能なネットワーク(例えば、インターネット、セルラ通信ネットワーク)を介して、クラウドプロバイダネットワークのアベイラビリティゾーンに接続し得る。TCは、顧客をクラウドプロバイダネットワークにリンクする主要なバックボーンロケーションと見なされることができ、他のネットワークプロバイダ設備(例えば、インターネットサービスプロバイダ、電気通信プロバイダ)に配置され、(例えばVPNまたは直接接続を介して)アベイラビリティゾーンにセキュアに接続され得る。各リージョンは、冗長性のために2つ以上のTCを運用し得る。リージョンは、各リージョンを少なくとも1つの他のリージョンに接続するグローバルネットワークに接続されている。クラウドプロバイダネットワークは、エッジロケーション及びリージョンのエッジキャッシュサーバ(ポイントオブプレゼンス、即ちPoP)を経て、これらのリージョンの外部にあるが、これらのリージョンとネットワーク化されているポイントオブプレゼンスからコンテンツを配信し得る。コンピューティングハードウェアのこの区分化及び地理的分散により、クラウドプロバイダネットワークは、高度のフォールトトレランス及び安定性を有する地球規模の低レイテンシリソースアクセスを顧客に提供することが可能となる。
【0019】
クラウドプロバイダネットワークは、仮想化コンピュートサービス(VCS)、データ処理サービス(複数可)(例えば、マップリデュース、データフロー、及び/または他の大規模データ処理技術)、データストレージサービス(例えば、オブジェクトストレージサービス、ブロックベースストレージサービス、またはデータウェアハウスストレージサービス)、ネットワーク機能仮想化サービスまたはパケット処理サービス、及び/または任意の他のタイプのネットワークベースサービス(様々な他のタイプのストレージ、処理、分析、通信、イベントハンドリング、視覚化、及びセキュリティサービスを含み得る)に加えて含み得る、様々なコンピューティングリソースまたはサービスを実施し得る。このようなサービスの運用をサポートするために必要なリソース(例えば、計算リソース及びストレージリソース)は、クラウドプロバイダネットワークのユーザによって要求され、ユーザアカウントでプロビジョニングされ得るリソースとは対照的に、クラウドプロバイダに関連付けられたアカウントでプロビジョニングされ得る。
【0020】
様々なネットワークアクセス可能なサービスは、異なる実施形態においてプロバイダネットワークの1つまたは複数のデータセンタにおいて実施され得る。ネットワークアクセス可能なコンピューティングサービスは、エラスティックコンピュートクラウドサービス(様々な実施態様では、エラスティックコンピュートサービス、仮想マシンサービス、コンピューティングクラウドサービス、コンピュートエンジン、またはクラウドコンピュートサービスと呼ばれる)が含まれ得る。このサービスは、変化する計算リソース及び/またはメモリリソースを有するコンピュートインスタンス(ゲスト仮想マシン、または単に「インスタンス」とも呼ばれる)を供給してもよく、これらは、コンピュート仮想化サービス(様々な実施態様では、エラスティックコンピュートサービス、仮想マシンサービス、コンピューティングクラウドサービス、コンピュートエンジン、またはクラウドコンピュートサービスと呼ばれる)によって管理される。一実施形態では、仮想コンピュートインスタンスのそれぞれが、いくつかのインスタンスタイプまたはファミリーのうちの1つに対応し得る。インスタンスタイプは、そのハードウェアタイプ、計算リソース(例えば、仮想化中央処理装置(VCPUまたはVCPUコア)の数、タイプ、及び構成)、メモリリソース(例えば、ローカルメモリの容量、タイプ、及び構成)、ストレージリソース(例えば、ローカルにアクセス可能なストレージの容量、タイプ、及び構成)、ネットワークリソース(例えば、そのネットワークインターフェース及び/またはネットワークケイパビリティの特性)、ハードウェアアクセラレータリソース及び/または他の適当な記述的特性(ベースライン性能保証及びそのベースライン上で定期的にバーストする能力を有する「バースト可能」インスタンスタイプ、または固定量のリソースが割り当てられ、かつ保証されるバースト不可能もしくは専用インスタンスタイプなど)によって特徴付けられ得る。各インスタンスタイプは、特定の比率の処理、ローカルストレージ、メモリ、及びネットワークリソースを有してもよく、異なるインスタンスファミリは、異なるタイプのこれらのリソースも有することがある。所与のインスタンスタイプ内で、複数サイズのこれらのリソース構成が利用可能であり得る。インスタンスタイプ選択機能を使用して、例えば顧客からの入力に(少なくとも部分的に)基づいて、顧客のためにインスタンスタイプを選択し得る。例えば、顧客は、事前定義されたインスタンスタイプのセットからインスタンスタイプを選択することができる。別の例として、顧客は、インスタンスタイプの所望のリソース及び/またはインスタンスが実行されるワークロードの要件を指定してもよく、インスタンスタイプ選択機能が、そのような指定に基づいてインスタンスタイプを選択してもよい。要求されたインスタンスタイプに適したホストは、収集されたネットワーク性能メトリクス、異なる利用可能なホストにおけるリソース使用率レベルなどの要因に少なくとも部分的に基づいて選択され得る。いくつかの実施形態では、クライアントからのプログラムによる要求に応答して、いくつかの異なるインスタンスタイプのインスタンスが、拡張プレミスにおいて(例えば、LVNIがアタッチされて)起動され得る。
【0021】
プロバイダネットワークのコンピューティングサービスは、コンテナオーケストレーション及び管理サービス(様々な実施態様では、コンテナサービス、クラウドコンテナサービス、コンテナエンジン、またはコンテナクラウドサービスと呼ばれる)も含み得る。コンテナは、アプリケーションが実行されるコンピューティング環境からアプリケーションを抽象化する、ソフトウェアアプリケーションの論理パッケージ化を表す。例えば、ソフトウェアアプリケーションのコンテナ化バージョンは、ソフトウェアコード及びそのコードによって使用される依存関係を含み、それによってアプリケーションは、適当なコンテナエンジン(例えば、Docker(登録商標)またはKubernetes(登録商標)コンテナエンジン)をホストする任意のインフラストラクチャ上で一貫して実行され得る。コンピュータシステム全体をエミュレートする仮想マシン(VM)と比較して、コンテナは、オペレーティングシステムレベルで仮想化し、よって、典型的には、ホストコンピューティングシステム上でアプリケーションを実行するためのより軽量なパッケージを表す。既存のソフトウェアアプリケーションは、ソフトウェアアプリケーションを適切な方法でパッケージ化すること、及びアプリケーションをコンテナエンジンで実行可能にするために使用される他のアーティファクト(例えば、コンテナイメージ、コンテナファイル、またはその他の構成)を生成することによって、「コンテナ化」され得る。いくつかの実施態様では、コンテナエンジンは、仮想マシンインスタンス上で実行可能であり、仮想マシンインスタンスは、説明されたネットワーク性能メトリクスに少なくとも部分的に基づいて選択される。いくつかの実施形態では、パケット処理サービス、データベースサービス、ワイドエリアネットワーキング(WAN)サービスなどの他のタイプのネットワークアクセス可能なサービスも、クラウドプロバイダネットワークにおいて実施され得る。
【0022】
クラウドプロバイダネットワークのトラフィック及び動作は、様々な実施形態において、論理コントロールプレーン上で行われるコントロールプレーン動作、及び論理データプレーン上で行われるデータプレーン動作という2つのカテゴリに大まかに細分され得る。データプレーンは、分散コンピューティングシステムを通したユーザデータの移動を表し、コントロールプレーンは、分散コンピューティングシステムを通した制御信号の移動を表す。コントロールプレーンは、概して、1つまたは複数の制御サーバにわたって分散され、1つまたは複数の制御サーバによって実施される、1つまたは複数のコントロールプレーンコンポーネントを含む。コントロールプレーントラフィックは、概して、システム構成及び管理(例えば、リソース配置、ハードウェア容量管理、診断モニタリング、またはシステム状態情報)などの管理動作を含む。データプレーンは、クラウドプロバイダネットワーク上に実施される顧客リソース(例えば、コンピューティングインスタンス、コンテナ、ブロックストレージボリューム、データベース、またはファイルストレージ)を含む。データプレーントラフィックは、概して、顧客リソースへ、及び顧客リソースからの顧客データの転送などの、非管理動作を含む。あるコントロールプレーンコンポーネント(例えば、仮想化コンピューティングサービス用のコントロールプレーンなどのティア1コントロールプレーンコンポーネント)は、典型的には、データプレーンサーバとは別のサーバのセット上で実施されるが、他のコントロールプレーンコンポーネント(例えば、分析サービスなどのティア2コントロールプレーンコンポーネント)は、仮想化サーバをデータプレーンと共有してもよく、コントロールプレーントラフィック及びデータプレーントラフィックは、別の/別個のネットワークを経て送信されてもよい。
【0023】
図1は、少なくともいくつかの実施形態による、管理されたオープンシステム相互接続モデルのレイヤ2通信に使用されるローカルプレミスアクセス仮想ネットワークインターフェースが、仮想化コンピューティングサービスの拡張サーバにおいて起動されたコンピュートインスタンスにプログラムでアタッチされ得る、システム環境の例を示す。図示するように、システム100は、プロバイダネットワーク101の仮想化コンピューティングサービス(VCS)110のリソース及びアーティファクトを含む。VCS110は、例えば、コンピュートインスタンス130を起動、終了、または再構成するための要求を含む、クライアントデバイス185(ラップトップ、デスクトップ、モバイルコンピューティングデバイスなど)からのプログラムによる要求をサブミットするためにクライアントによって使用され得る、1つまたは複数のプログラムによるインターフェース188を実施し得る。プログラムによるインターフェース188は、例えば、1つまたは複数のウェブベースコンソール、コマンドラインツール、グラフィカルユーザインターフェース、APIなどを含み得る。VCSクライアントによってサブミットされた要求は、VCSのコントロールプレーンサーバ111のセットに向けられ、これにより、対応する内部要求またはコマンドがVCSの様々な他のコンポーネントで実施され得る。
【0024】
図1に示される実施形態では、様々なハードウェアサーバが、VCSクライアントに代わってコンピュートインスタンス130をセットアップするために使用され得る。VCS110の運用者は、例えば、仮想化サーバ(VS)125A、125B、及び125Cを含む、プロバイダネットワーク101の1つまたは複数のデータセンタに、様々なカテゴリの標準化されたサーバを含むラックをセットアップしてもよい。CI130A、130B、130C、130D、130E、または130Cなどの様々なカテゴリのコンピュートインスタンス(CI)が、コントロールプレーンにサブミットされたクライアント要求に応答してデータセンタのサーバで起動され得る。基盤となる仮想化サーバのケイパビリティが互いに異なる場合があるのと同様に、異なるセットのサーバで起動されるコンピュートインスタンスもケイパビリティが異なることがある。例えば、CI130Aは、計算集約型アプリケーション向けに最適化され得るが、CI130B及び130Cは、ストレージ集約型タスク向けに最適化されてもよい。
【0025】
クライアントがプロバイダネットワークデータセンタでコンピュートインスタンスを取得及び使用できるようにすることに加えて、VCS110は、様々な実施形態において、クライアントがプロバイダネットワーク外部のプレミスでコンピュートインスタンスを要求することも可能にし得る。例えば、図示した実施形態では、プレミス121を所有/管理するクライアント(C2)からの要求に応答して、VCSの論理拡張が、クライアントプレミス121にセットアップされてもよい。したがって、クライアントプレミスは、いくつかの実施形態では、VCS拡張プレミスと呼ばれ得る。VCS拡張リソースグループ(ERG)122と呼ばれるVCS管理リソースのグループが、クライアントプレミス121において構成され得る。ERG122は、図示した実施形態では、ES127などの1つまたは複数のVCS拡張サーバ(ES)を含み得る。所与のESは、図示した実施形態では、0個以上のコンピュートインスタンス(CI130Kなど)だけでなく、ネットワーキングマネージャ155ならびにVCSコントロールプレーンからのコマンドに対する応答を受信及び調整するES構成マネージャ154などの様々な管理コンポーネントを含み得る。
【0026】
VCSコントロールプレーンで受信されたクライアント要求に応答してコンピュートインスタンスがVS125で起動され得るのと同様に、コンピュートインスタンスは、図示した実施形態では、コントロールプレーンと拡張サーバとの間に確立されたセキュアな通信チャネルを介してVCS拡張サーバで起動され得る。さらに、VCSコントロールプレーンサーバは、0個以上の仮想ネットワークインターフェース(VNI)をCI130Kなどのコンピュートインスタンスにアタッチさせてもよい。VNIは、様々な実施形態において、コンピュートインスタンスが実行されているサーバの物理ネットワーキングデバイス(ネットワークインターフェースカード、即ちNICなど)の設定を修正しなくてもコンピュートインスタンスとの関連付け/関連付け解除が行われ得る、ネットワーク関連プロパティ(例えば、IPアドレス、MACアドレス、インバウンド/アウトバウンドトラフィックのためのセキュリティルールなど)のセットを示す、VCSコントロールプレーンに記憶されたメタデータエントリのセットとして表されてもよい。
【0027】
VCS110は、サブストレートネットワークとも呼ばれる物理ネットワーク115を含んでもよく、物理ネットワーク115には、図示した実施形態では仮想化サーバが接続され得る。リンク111A、111B、及び111Cは、VSとサブストレートネットワーク115との間の物理接続を示す。図示した実施形態では、ES127などの拡張サーバにサブストレートネットワークアドレスを関連付けるために、トンネリングベース技術が使用されてもよく、この関連付けは、直線117で表される。したがって、VCS拡張サーバは、事実上サブストレートネットワーク115に統合され得る。
【0028】
図1に示す実施形態では、物理インフラストラクチャとしてサブストレートネットワーク115を使用して、論理ネットワーク116Aまたは116Bなどの、論理ネットワークのセットが構成され得る。論理ネットワークの例は、少なくともいくつかの実施形態では、VCSクライアントに代わって確立される隔離仮想ネットワーク(IVN)を含み得る。例えば、
図1に示されるシナリオでは、論理ネットワーク116AはクライアントC1のIVNを含み得るが、論理ネットワーク116BはクライアントC2のIVNを含み得る。図示した実施形態では、ネットワークアドレスが割り当てられるクラウドアクセスVNI(CVNI)をプログラムでアタッチすることによって、コンピュートインスタンス130に、VCSコントロールプレーンサーバにより論理ネットワーク内のネットワークアドレスが提供され得る。したがって、例えば、VS125AのCI130Aは、要素112Aで示されるように、CVNI160Aを介して論理ネットワーク116A内に構成されてもよい。VS125BのCI130Bは、直線112Dで示されるように、CVNI160Bを使用して論理ネットワーク116B内に構成されてもよい。VS125BのCI130Cは、直線112Cで示されるように、CVNI160Cを使用して論理ネットワーク116A内に構成されてもよい。VS125CのCI130Dは、直線112Eで示されるように、CVNI160Dを使用して論理ネットワーク116B内に構成されてもよい。CI130Eは、直線112Bで示されるように、CVNI160Eを使用して論理ネットワーク116A内に構成されてもよい。加えて、VCSコントロールプレーンサーバはまた、
図1に示されるシナリオの直線112Fで示されるように、CVNI160F(論理ネットワーク116B内のIPアドレスが割り当てられる)を使用して、論理ネットワーク116Bの一部として拡張サーバ127で実行しているCI130Kを構成してもよい。仮想化サーバ及び拡張サーバが接続される基礎となるサブストレートネットワークを使用して論理ネットワークのエンティティ(コンピュートインスタンス130など)へ向けられる、またはエンティティから向けられるネットワークトラフィックを管理及びルーティングするために、
図2に関して以下でさらに詳細に説明するように、マッピングサービス及び/またはカプセル化プロトコルがVCS110において採用され得る。
【0029】
クライアントプレミス121は、図示した実施形態では、スイッチ144または類似のネットワーキング仲介デバイスを有するローカルネットワーク192を含み得る。センサまたはスマート家電を含むIoTデバイス、クライアント管理アプリケーションを実行するサーバ、産業オートメーションデバイスなどの、様々なタイプのクライアント所有デバイスまたはクライアント管理デバイスは、クライアントプレミスローカルネットワーク192の一部として構成され得る。いくつかのこのようなクライアントプレミスデバイス177は、118Bなどのケーブルを介してスイッチ144に物理的にリンクされ得る。
【0030】
少なくともいくつかの実施形態では、その要求に応じて拡張サーバ127がVCSによって構成されるクライアントC2は、ある数のクライアントプレミスデバイス177と拡張サーバのCI130Kとの間でOSIレイヤ2において通信を確立することを望み得る。このような通信の管理を容易にするために、ローカルプレミスアクセス仮想ネットワークインターフェース(LVNI)162は、図示した実施形態では、VCSコントロールプレーンによってCI130Kにプログラムでアタッチされるようにしてもよい。MACアドレスは、VCSコントロールプレーンサーバによってLVNI162に割り当てられ得るが、論理ネットワーク116B内のIPアドレスは、LVNIに割り当てられないことがある。MACアドレスは、図示した実施形態では物理ケーブル118Aを介してローカルネットワーク192から受信したインバウンドトラフィックをCI130Kに向けるためにネットワーキングマネージャ155によって使用され得る。CVNI160Fに割り当てられた論理ネットワークアドレスは、対照的に、少なくともいくつかの実施形態では、プロバイダネットワークデータセンタ内のリソースとの通信に使用され得る。ERG122は、ES127または別のESサーバで実行している1つまたは複数の他のコンピュートインスタンス(
図1には示されない)を含み得ることに留意されたい。このような拡張プレミスコンピュートインスタンス間のネットワーク通信は、場合によってはOSIレイヤ2を使用して(例えば、ESにアタッチされたネットワーキングカードのハードウェアループバックインターフェースを利用して)、またはIP及び他の上位レベルのプロトコルを使用して、通信がそのために生成されるアプリケーション、送信元及び宛先のコンピュートインスタンスが同一のES上で実行中であるかどうかなどの要因に依存して、送信されてもよい。場合によっては、VCSのカプセル化プロトコルは、ERGのコンピュートインスタンスの少なくともいくつかの対の間で送信されるIPパケットに採用されることがある。
【0031】
データリンク層フレームがES127で受信されると、ネットワーキングマネージャ155は、図示した実施形態ではその処分を担当し得る。ネットワーキングマネージャは、フレームのコンテンツを検査して、フレームが、その宛先アドレスとしてES127のサブストレートアドレスを有するIPパケットを含むかどうかを判定し得る。フレームがそのようなIPパケットを含む場合、ネットワーキングマネージャは、VCSのカプセル化プロトコルを使用して、第1のIPパケットから第2のIPパケットを抽出し得る。抽出されたIPパケットの宛先アドレスが、ESで実行中のいずれかのCI(CI130Kなど)の論理ネットワークアドレス(CVNIアドレス)と一致する場合、抽出されたIPパケットは、ネットワーキングマネージャによってそのCIに配信され得る(そうでない場合、抽出されたIPパケットは、少なくともいくつかの実施形態では破棄され得る)。フレームがサブストレート宛先IPアドレスを有するIPパケットを含まなかった場合、ネットワーキングマネージャは、フレームの宛先MACアドレスを検査し、図示した実施形態では、アタッチされたLVNIが同一のMACアドレスを有する130KなどのCIにそれを配信し得る。ブロードキャストデータフレーム(宛先MACアドレスがLVNIのMACアドレスと一致しない特別なアドレスである)は、図示した実施形態では、ネットワーキングマネージャによってESの1つまたは複数のCIに配信され得る。ブロードキャストフレームではなく、一致するMACアドレスがなく、サブストレート宛先IPアドレスを有するIPパケットを含まないフレームは、図示した実施形態ではドロップされ得る。
【0032】
図2は、少なくともいくつかの実施形態による、論理ネットワークがサブストレートネットワーク上に構成される仮想化コンピューティングサービスにおけるマッピングサービス及びカプセル化プロトコルの使用例を示す。図示したシナリオは、そのような論理ネットワーク(VCSのデータセンタまたは外部プレミスのいずれか)内にセットアップされたコンピュートインスタンス間のトラフィックフローを可能にするために実行する必要があり得る、ネットワーキング関連動作の種類を示すために提示されている。
図1では、例として、IP(インターネットプロトコル)バージョン4のアドレスが使用されているが、少なくともいくつかの実施形態では、IPv6などの他のプロトコルに従ってフォーマットされたアドレスが使用されてもよい。
図2に示される特定のIPアドレスは例として選択されたものであり、本明細書で説明される技術は、いかなる特定のアドレスまたはアドレス範囲にも限定されないことに留意されたい。
【0033】
図示した実施形態では、VCSデータセンタ210における2つの仮想化サーバ(VS)及び拡張サーバ(ES)が示されている。VS225A及び225Bはそれぞれ、例えば、サブストレートネットワーク内に構成されたトップオブラックスイッチにリンクされた1つまたは複数のイーサネットまたは類似のケーブルを介して、VCSのサブストレートネットワークに物理的に接続され得る。ES226は、プロバイダネットワークによって管理/所有されていない少なくともいくつかのネットワークリンク(例えば、公衆インターネットのリンク、及び/または他のネットワークサービスプロバイダによって所有されているプライベートリンク)を介してVCSデータセンタに接続され得るが、それでも、以下で詳細に説明される技術を使用して、サブストレートネットワークのネットワークアドレスが割り当てられ得る。サブストレートアドレス192.168.0.3は、VS225Aに割り当てられ、サブストレートアドレス192.168.1.3は、VS225Cに割り当てられ、サブストレートアドレス192.168.1.4は、ES226に割り当てられる。
【0034】
図示した実施形態では、仮想化サーバで起動されたコンピュートインスタンスには、隔離仮想ネットワーク内のネットワークアドレスが割り当てられ得る。例えば、(VS225Aの)CI230A、(VS225Bの)230D、及び(ES226の)230Gは、全て同一のIVN233A内に構成され、それぞれのIVNプライベートアドレス10.0.0.2、10.0.0.4、及び10.0.0.3がそれぞれ割り当てられ得る。同様に、CI230B及び230Cは、IVN233B内のIVNプライベートアドレス10.0.0.2及び10.0.0.3が割り当てられ得る。前に示したように、CIに割り当てられたプライベートアドレスに対してIVN内で使用されるアドレス範囲は、互いに重複し得ることに留意されたい。したがって、CI230A及び230Bは、別個のIVN(233A及び233B)内で同一のプライベートアドレス10.0.0.2を有する。いくつかの実施形態では、IVN内アドレスは、少なくともデフォルトでは、IVNの外部に公表されず、またはアクセス可能にされないという点で、プライベートであると見なされ得る。少なくともいくつかの実施形態では、上述したように、プライベートアドレスは、それぞれのクラウドアクセス仮想ネットワークインターフェース(CVNI)に割り当てられてもよく、CVNIは、コンピュートインスタンスにプログラムでアタッチされ、または関連付けられてもよい。少なくともいくつかの実施形態では、対照的に、サブストレートアドレスの少なくともいくつかは、例えば仮想化サーバにおいて、物理ネットワークインターフェースカード、即ちNIC(またはNICエミュレータ)に割り当てられてもよい。
【0035】
あるCIで発信されたネットワークパケットを別のCIに送信するために、図示した実施形態では、送信元及び宛先のIVNプライベートアドレス、送信元及び宛先が属するIVN、ならびに基礎となる仮想化サーバのサブストレートアドレスの、3つのタイプのネットワーク情報が考慮される必要があり得る。例えば、CI230Aで発信され、CI230Gを宛先とするパケットは、その送信元(プライベート)アドレスを10.0.0.2とし、宛先アドレスを10.0.0.3として示してもよい。しかしながら、パケットは実際には、その意図した宛先に到達するために、サブストレートネットワークアドレス192.168.0.3からサブストレートネットワークアドレス192.168.1.4に転送されなければならない場合がある。カプセル化プロトコル244(サブストレートネットワークの送信元/宛先に関連付けられたより大きな「拡張」パケット内の論理ネットワークの送信元/宛先に関連付けられたパケットをエンベロープまたはカプセル化するために使用される)及びVCSの関連マッピングサービス245が、図示した実施形態においてこのタイプの転送を達成するために使用され得る。VCSのネットワーキング仮想化管理コンポーネント(拡張サーバで実行中のネットワーキングマネージャ、及びVS225の仮想化管理ハードウェア/ソフトウェアスタックで実行中のネットワーキングマネージャを含む)は、プロトコルのカプセル化及びカプセル化解除動作を実施し、マッピングサービス245を利用して、そのような転送に含まれるパケットが送信されるべき特定のサブストレートアドレスを判定し得る。
【0036】
パケットがCI230AからCI230Gに送信される上記の例では、マッピングサービス245は、VS225Aに関連付けられたネットワーキングマネージャに、IVN233Aについて、宛先プライベートアドレス10.0.0.3がサブストレートアドレス192.168.1.4に対応することを示し得る。VS225Aに関連付けられたネットワーキングマネージャは、元のパケットを内部に含み、サブストレート送信元アドレス192.168.0.3、サブストレート宛先アドレス192.168.1.4を有し、IVN233Aをパケットがその中で転送されているIVNとして識別する、カプセル化パケットを生成し得る。外部プレミス220の受信側では、ES226で実行中のネットワーキングマネージャが、カプセル化パケットから元のパケットを抽出(カプセル化解除)し、それを宛先CI230Gに提供し得る。いくつかの実施形態では、パケットが信頼できる/有効な送信元からのものであることを保証するために、ネットワーキングマネージャは、元のパケットを抽出する前にマッピングサービスに問い合わせて、逆マッピングを実行(例えば、パケットの発信元を識別)してもよい。したがって、マッピングサービス245は、妥当性が確認されていないパケットを開くことを防止することによってセキュリティを提供し得る。逆方向に送信されるパケットの場合、少なくともいくつかの実施形態では、ネットワーキングマネージャは、マッピングサービスに問い合わせて宛先の正しいサブストレートアドレスを取得し、必要なカプセル化動作を実行し得る。
【0037】
図3は、少なくともいくつかの実施形態による、コントロールプレーントラフィックがプロバイダネットワークのデータセンタから、仮想化コンピューティングサービスによって管理されるコンピュートインスタンスが起動される外部プレミスまでセキュアに流れることを可能にする、拡張トラフィック仲介デバイスの使用例を示す。プロバイダネットワークのデータセンタ301に位置するVCS310のデータプレーンリソース345は、前述したものと類似の隔離仮想ネットワーク(IVN)のセットに編成され得る。例えば、クライアントC1に代わってIVN315Aがセットアップされ、クライアントC2に代わってIVN315Bが確立されるなどであってもよく、クライアントにはそれぞれのIVN内のネットワーク構成設定に関して柔軟性が与えられる。IVN315Aは、仮想化サーバ317A及び317Bで実行されるコンピュートインスタンスを含んでもよく、IVN315Bは、仮想化サーバ317J及び317Kで起動されるコンピュートインスタンス(CI)(CI325Aなど)を含んでもよい。VCSコントロールプレーンリソース341は、VCS拡張リソースグループ(ERG)をセットアップするための要求の受信及び応答、データセンタ仮想化サーバまたは拡張サーバ360におけるインスタンス構成要求、追加の仮想化サーバのプロビジョニング、データプレーンリソースの正常性のモニタリングなどの管理タスクを担当する、図示した実施形態における302A及び302Bなどのコントロールプレーンサーバ(CPS)のセット302を含み得る。
【0038】
図3に示される実施形態では、各拡張サーバ360は、データセンタ301以外のいくつかのプレミスでVCSデータプレーン機能を拡張する拡張リソースグループの一部としてセットアップされ得る。例えば、拡張サーバ(ES)360Aは、クライアントC2の顧客プレミス332CにおけるERG335Aの一部としてセットアップされ、ES360Bは、クライアントC1に代わって顧客プレミス332AにおけるERG335Bの一部としてセットアップされ、ES360Cは、クライアントC2の第2の顧客プレミス332BのERG335Cにおいてセットアップされる。ESはそれぞれ、コントロールプレーンリソース341から管理コマンドを受信し、それらをESで実行する役割をする、それぞれの構成マネージャ(ECM)(ES360AのECM361など)を含み得る。ES360に加えて、外部プレミス332A、332B、及び332Cの少なくともいくつかは、非VCSデバイス(例えば、VCSコンピュートインスタンスをホストするために利用されないサーバ)も含み得る。例えば、図示した実施形態では、プレミス332Aは、非VCSデバイス323Bを含んでもよく、プレミス332Bは、非VCSデバイス323Cを含んでもよく、プレミス332Cは、非VCSデバイス323Aを含んでもよい。非VCSデバイスは、ローカルプレミスアクセスVNI(LVNI)及びローカルプレミスネットワーク368A、368B、または368Cのリンクを経て送信されるOSIレイヤ2メッセージを使用して、ESで起動されるコンピュートインスタンス(CI325P、325Q、または325Rなど)と通信し得る。したがって、拡張サーバは、(例えば、VCSサブストレートネットワークに使用される範囲から拡張サーバに割り当てられたアドレスを使用して、)ローカルオンプレミスネットワーク及び1つまたは複数のVCSネットワークを含む複数のネットワーク内に構成され得る。ES360の様々なケイパビリティは、ES360がVCSコントロールプレーンによって代わりに構成されるクライアントのニーズに応じて互いに異なり得ることに留意されたい。例えば、ES360Aは、ES360Bとは異なる、またはより多くのCPUを有してもよく、ES360Cは、ES360Aよりも多くのメモリ、または異なるCPUアーキテクチャを有してもよい、などである。また、
図3では各外部プレミスに単一のESのみが示されているが、少なくともいくつかの実施形態では、単一の外部プレミス内でVCSコンピュートインスタンスをホストするために複数のそのようなESが配置され、使用され得ることに留意されたい。
【0039】
VCSのクライアントの観点から見ると、様々な実施形態において、ERGは、VCSのケイパビリティのローカル拡張を表してもよく、インターネットにアクセスできる任意の所望の物理的位置にセットアップされ、VCS及びクライアントに受け入れ可能な拡張サーバを収容し得る。VCS自体の観点から見ると、ERGは、顧客が選択したプレミス内に物理的に位置しながら、コアVCSインフラストラクチャと同一のプロバイダネットワークデータセンタに仮想的に位置すると考えられ得る。様々な実施形態において、ERGが、顧客が選択した位置にセットアップされると、ERGのリソースは、プロバイダネットワークのデータセンタに位置するVCSのコントロールプレーンコンポーネントによって管理され得る。したがって、少なくともいくつかの実施形態では、所与のプレミスでERGをセットアップ及び使用することによって、VCSのコントロールプレーンケイパビリティをローカルに複製する必要がない場合がある。その代わりに、コントロールプレーンコマンドをプロバイダネットワークのデータセンタからERGのPVMDに送信するためにセキュアなネットワーク接続がセットアップされてもよく、ERGのリソースが、主にデータプレーン動作に充てられてもよい。
【0040】
いくつかの実施形態では、ERGのESで起動されるコンピュートインスタンス(CI)の1つまたは複数が、IVN315内に構成されてもよい(例えば、CIが、IVNのアドレス範囲内のアドレスを有するクラウドアクセス仮想ネットワークインターフェース(CVNI)にプログラムによりアタッチされてもよい、CIが、IVNのコンピュートインスタンスのデータベースに含まれてもよい、IVN内のCIのメンバーシップに関する情報が、VCSのマッピングサービスに提供されてもよい、など)。場合によっては、ERGで実行されているCIが、プロバイダネットワークデータセンタ内のCIも含むIVNに含まれてもよく、そのようなERGは、IVNを拡張すると言える場合がある。例えば、ERG335Aは、
図3のクライアントC2のIVN315Bを拡張し、ERG335Bは、クライアントC1用に構成されたIVN315Aを拡張する。いくつかのERGは、VCSデータセンタ内のいかなるコンピュートインスタンスも含まないIVN内で構成されたCIを含んでもよく、またはIVN内で構成すらされなくてもよい。
【0041】
外部プレミス332は、VCSサブストレートネットワークに直接アクセスできないため、データセンタ301におけるコンピュートインスタンスに必要となるよりも、外部プレミスでコンピュートインスタンスを構成するために、追加の作業がVCSから必要となる場合がある。
図3に示す実施形態では、ES構成マネージャ(ECM)361が、いくつかの機能を実行し得る。例えば、ECMは、1つまたは複数のセキュアチャネル(仮想プライベートネットワーク(VPN)トンネルなど)366(例えば、チャネル366A、366B、または366C)を介して、VCSの1つまたは複数の拡張トラフィック仲介機器(ETI)377との接続を確立してもよい。ECMとVCSコントロールプレーン(及びデータプレーン)との間のトラフィックは、VCSによって制御または管理されていない物理ネットワークパスを経て流れる必要があり、したがってそのような物理ネットワークパスは、VCSの観点から信頼できない場合があるため、セキュアチャネル366が必要となり得る。ETI377は、プロバイダネットワークのデータセンタ301内のコンピューティングデバイスで(例えば、VCSコントロールプレーンに代わってセットアップされた1つまたは複数のコンピュートインスタンス及び/またはIVNを使用して)実施されてもよく、ETIは、外部プレミスとプロバイダネットワークのデータセンタとの間のトラフィックに関する1つまたは複数のセキュリティ動作を実行するように構成され得る。コントロールプレーンコマンドは、図示した実施形態では、ETIで確立されたセキュアチャネルを使用して、プロバイダネットワークのデータセンタから外部プレミスへの一方向へのみ流れることが許可され得る。対照的に、データプレーントラフィックは、様々な実施形態において、外部プレミスとプロバイダネットワークとの間でいずれの方向に流れてもよい。様々な実施形態における、プロバイダネットワークデータセンタと外部プレミスとの間でコントロールプレーン及びデータプレーンのトラフィックが流れる方法に関する追加の詳細が、以下で提供される。
【0042】
ES360のECMはまた、少なくともいくつかの実施形態では、VCSサブストレートネットワークのネットワークアドレス(即ち、VCSサブストレートネットワーク内の仮想化サーバに割り当てられたアドレスの範囲から選択されたネットワークアドレス)をESに割り当て得る。ESに割り当てられたサブストレートアドレスはまた、少なくともいくつかの実施形態ではETI377のうちの1つに割り当てられてもよく、これにより、ETIはプロバイダネットワークデータセンタ内でESのプロキシまたは代表として機能することが可能となる。
【0043】
加えて、ECMは、少なくともいくつかの実施形態では、ERG335内のES360で起動されるCIに関連する構成コマンドの仲介として機能し得る。例えば、VCSのクライアントは、ERGにおけるCIの構成動作についての要求をVCSコントロールプレーンに(ETIでセットアップされたセキュアチャネル以外の経路を使用して)サブミットしてもよく、要求の指示は、ETIからそのERGのECMに提供されてもよい。この指示に応答して、コンピュートインスタンスの1つまたは複数の構成動作が、CSSにおいて実行され得る。少なくともいくつかの実施形態では、ECMは、ESにおける1つまたは複数のトリガ条件の検出(電力及び/またはインターネット接続の検出など)に応答してインスタンス化され得る。ECMは、次いで、例えば、ESが代わりに構成されるVCSクライアントからの追加の構成ガイダンスを必要とすることなく、1つまたは複数のプロバイダネットワークデータセンタの1つまたは複数のVCSコンポーネント(例えば、ETI377)とのセキュアなネットワーク接続の自動確立を自動的に開始(または少なくとも自動確立に関与)し得る。接続が確立された後、様々な実施形態において、クライアントは、プロバイダネットワークリソースのみを使用するコンピュートインスタンスに関してこのようなコマンドが発行される方法と同様の方法で、ESにおいてコンピュートインスタンスをインスタンス化する(及び/またはLVNIをアタッチするなど、コンピュートインスタンスに関連する他の動作を実行する)ためのコマンドを発行し得る。VCSクライアントの観点から見ると、VCSの機能は、ここで、ローカルリソース(及び、必要に応じてプロバイダネットワークデータセンタに位置するリソース)を使用してシームレスに利用され得る。ERGでセットアップされたコンピュートインスタンスは、様々な実施形態では、非VCSデバイス323、及び必要に応じてプロバイダネットワークデータセンタまたは外部プレミスでセットアップされる他のCIと、通信し得る。ERGでセットアップされる少なくともいくつかのCI、及びそのようなCIをビルディングブロックとして使用する関連する上位サービスは、いくつかの実施形態では、プロバイダネットワークデータセンタへの接続が一時的に中断されている期間中であっても機能し続け得る。特に、(例えば、法令順守、セキュリティ、または他の理由で)顧客のデータセンタに記憶されている大量のアプリケーションデータに低レイテンシでアクセス及び処理したいVCS顧客にとって、アプリケーションデータと同じ場所に位置するVCS CIをセットアップする能力は、様々な実施形態において非常に有益であり得る。
【0044】
VCS310が実施されるプロバイダネットワークのデータセンタ301において、コントロールプレーンリソース341は、図示した実施形態では、(VCSの1つまたは複数のサーバにおいてハードウェア及びソフトウェアの何らかの組み合わせを使用して実施される)1つまたは複数の拡張接続マネージャ(EXCM)378を含み得る。EXCMは、例えば、コントロールプレーンで受信されたプログラムによる要求に応答して、セキュアチャネルを介した接続がECM361などのECMと確立されるべきであると判定し得る。いくつかの実施形態では、ECMは、ECMがオンラインになり、外部プレミスのローカルプレミスネットワークを介してインターネットに接続されると、セキュアな接続に対する要求をVCSコントロールプレーンに(例えば、公衆インターネットの経路を介して)送信し得る。セキュアな接続を可能にするために、拡張トラフィック仲介機器(ETI)377のセットが、EXCMによってセットアップされ得る。ETI377は、例えば、様々な実施形態では、拡張サーバプロキシ(ESP)及びトンネルエンドポイント(プロバイダネットワーク側トンネルエンドポイントと呼ばれる)を含み得る。いくつかの実施形態では、ESP及びトンネルエンドポイントは、VCSのそれぞれのコンピュートインスタンスを含み得る。少なくとも1つの実施形態では、ESPは、(VCSクライアントの代わりにセットアップされたIVNとは異なる)VCSコントロールプレーンの代わりに確立された1つのIVN内にセットアップされてもよいが、トンネルエンドポイントは、VCSコントロールプレーンのために確立された別のIVN内にセットアップされ得る。
【0045】
いくつかの実施形態では、仮想ネットワークインターフェース(VNI)は、EXCMによってESPにプログラムでアタッチされ得る。少なくともいくつかの実施形態では、ESPにアタッチされたVNIには、ESPがそのために構成されるES360に割り当てられた同一のサブストレートネットワークアドレスが割り当てられ得る。少なくともいくつかの実施形態では、ECMはEXCMからサブストレートネットワークアドレスの指示を受信し、そのアドレスをES360に割り当て得る。ECMは、プロバイダネットワーク側トンネルエンドポイントと確立されたセキュアな(例えば、暗号化された)ネットワークトンネルの外部エンドポイントとして機能し得る。様々なトンネリングプロトコル(例えば、標準VPNプロトコル、VCS内で利用されるカスタマイズされたプロトコルなど)のいずれかが、様々な実施形態において、潜在的に信頼できないネットワークを経てプロバイダネットワークと外部プレミスとの間のパケット送信に使用され得る。
【0046】
ESP及びESには同一のサブストレートネットワークアドレスが割り当てられているため、VCSコントロールプレーンは、図示した実施形態では、実際にESを対象としているコントロールプレーンコマンド(例えば、クライアントが発行した要求に応答して生成された構成コマンド)の宛先として、ESPを使用し得る。したがって、VCSコントロールプレーンの観点から見ると、ESは、VCSのサブストレートネットワークを介してアクセスされ得る単なる別の仮想化サーバのように見えることがある。コントロールプレーンコマンドが生成されると、それはESPで受信され、コマンドのバージョンが、チャネル366を介して送信され得る。いくつかの実施形態では、ESP及び/またはプロバイダネットワーク側トンネルエンドポイントは、コマンドをECMに送信する前に、コマンドに1つまたは複数のセキュリティ関連の変換動作を適用し得る。例えば、VCSコントロールプレーンからプロキシで取得されたコマンドのバージョンは、いくつかの実施形態では、1つまたは複数のセキュリティトークン(例えば、コマンドの結果として実行される動作の要求元のアイデンティティを検証するために使用でき、要求元がその動作を要求するのに必要な許可を有する、トークン)を含んでもよく、ESPは、ERGにおいてECMに転送されるコマンドのバージョンからトークンを取り除きまたは除外し得る。少なくともいくつかの実施形態では、元のセキュリティトークンが変換されてもよく、セキュリティトークンの変換されたバージョンが、コマンドの転送されたバージョンに含まれてもよい。少なくとも1つの実施形態では、それぞれのメッセージ認証コード(例えば、ハッシュベースのメッセージ認証コード、即ちHMACを含む)が、ESPからESに送信されるアウトバウンドコントロールプレーンコマンドに対して生成され得る。様々な実施形態において、ESPは、所与のECMに送信される全てのアウトバウンド通信メッセージのログを記録してもよく、ログに記録されたメッセージは、必要に応じてESが代わりにセットアップされるクライアントによって検査されてもよい。いくつかの実施形態では、少なくとも2つの仮想ネットワークインターフェースが、所与のESPに関連付けられてもよく、1つはVCSコントロールプレーンからコマンドを取得するために使用され、もう1つはトンネルエンドポイントと通信するために使用される。
【0047】
いくつかの実施形態では、データプレーントラフィックはまた、例えば、コントロールプレーントラフィックに使用されるチャネルとは別のセキュアチャネルまたはトンネルを介して、VCSと外部プレミスとの間を流れてもよい。データプレーントラフィックは、このようなトンネルを経ていずれの方向にも流れてもよく、プロキシの使用を伴わないこともある。一実施形態では、ESに割り当てられたアドレスと同一のサブストレートアドレスを有するVNIも、ESへの/からのデータプレーントラフィックのためにVCS内にセットアップされ得る。
【0048】
図4は、少なくともいくつかの実施形態による、拡張サーバにおけるコンピュートインスタンスのネットワーク構成例を示す。VCSクライアントが所与のコンピュートインスタンスで実行したい特定のアプリケーションに応じて、図示した実施形態では、少なくとも3つのネットワーク構成のいずれかが、VCSコントロールプレーンによって所与のCIのためにセットアップされ得る。
【0049】
CI410は、VCS拡張サーバ401における第1のネットワーク構成の例を表し、CIで実行しているアプリケーションのセットは、プロバイダネットワークデータセンタに位置するリソースと通信し、ローカルプレミスネットワークの他のデバイスのリソースとも通信する。CI410は、アタッチされたCVNI415A及びアタッチされたLVNI417Aを有する。ローカルプレミスネットワークのデバイスへの/からのOSIレイヤ2メッセージ423Aは、LVNI417Aに割り当てられたMACアドレスを送信元/宛先MACアドレスとして利用する。プロバイダネットワークデータセンタへの/からのデータプレーンメッセージ422Aは、アタッチされたCVNI415Aに割り当てられたIPアドレスを送信元/宛先IPアドレスとして利用する。VCSコントロールプレーンからの管理コマンド421A(例えば、CIを起動/終了するためのコマンド、またはCIの様々な構成設定を変更するためのコマンドを含む)も、例えば、セキュアチャネル及び上述した種類のECMなどの仲介を使用して、CI410に配信され得る。
【0050】
CI412で表される第2の種類のネットワーク構成では、ESで実行しているCIは、アタッチされたLVNIを有しないことがあるが、アタッチされたCVNI415Bを有し得る。VCSコントロールプレーンからの管理コマンド421Bは依然として、CI412で受信されてもよく、CVNIのIPアドレスを使用するデータプレーンメッセージ422Dは、プロバイダネットワークのデータセンタのリソースと交換されてもよいが、CVNIのMACアドレスを使用するOSIレイヤ2メッセージは交換できない。いくつかの実施形態では、CI412の構成を有するCIとCI410の構成を有するCIとの間のデータプレーンメッセージは、プロバイダネットワークデータセンタを介して、または拡張プレミスでセットアップされたローカルネットワーキング仲介デバイスを介して、転送され得る。少なくとも1つの実施形態では、最適化として、CI412とCI410との間のデータプレーンメッセージが、矢印477で示されるように、ESのネットワーキングマネージャによって実施されるハードウェアループバックメカニズムを使用して送信され得る。
【0051】
図4のCI414は、第3のタイプのネットワーク構成の実施例である。CI415Bには、CVNI415B及びLVNI417Bがアタッチされているが、CVNI415B(及び/またはCVNI415Bにアドレスが割り当てられたIVN)のセキュリティパラメータは、プロバイダネットワークデータセンタへの/からのデータプレーントラフィックが禁止されるように設定されている。OSIレイヤ2メッセージ423Bは、LVNI417Bに割り当てられたMACアドレスを使用してローカルプレミスネットワークのデバイスと交換されてもよく、VCSコントロールプレーンからの管理コマンド421Cは、CI414で受信されてもよい。CI414について示される構成のタイプは、例えば、(a)CVNIが、例えばコントロールプレーンコマンドを受信するために、VCS構成ルールに基づいてCIにアタッチされなければならない、(b)クライアントが、プレミスにおける非VCSデバイスへのOSI L2接続を必要とするアプリケーションにCIの使用を望んでいる、(c)クライアントが、CIをVCSデータプレーントラフィックから隔離することを望んでいる、実施形態において、利用されてもよい。一実施形態では、クライアントが、(両方のCIにLVNIがアタッチされている)CI414とCI410との間のOSIレイヤ2での通信を可能にしたい場合、矢印478で示されるように、ESのネットワーキングマネージャによって実施されるハードウェアループバックメカニズムが使用され得る。いくつかの実施形態では、
図4に示されるもの以外の他のタイプのネットワーク構成が、拡張サーバのCIに採用され得る。
【0052】
いくつかの実施形態では、別個のIVNに属するCIが、所与のVCS拡張サーバにおいて起動され得る。
図5は、少なくともいくつかの実施形態による、拡張サーバにおける仮想化コンピューティングサービスの別個の隔離仮想ネットワーク内に構成されたコンピュートインスタンスが、VCS拡張プレミスにおけるデバイスと通信するためにネットワークケーブルを共有し得る、構成例を示す。VCS拡張サーバ501は、CI510A及びCI510B、ならびにネットワーキングマネージャ555を含む。CI510Aは、VCSクライアントによってアプリケーションセット561Aを実行するために使用され、CI510Bは、異なるアプリケーションセット561Bを実行するために使用される。拡張サーバ501が代わりにセットアップされるVCSクライアントは、両方のアプリケーションセットと(潜在的に別個の)オンプレミスデバイスのセットとの間のOSI L2通信を依然として可能にしながら、2つのアプリケーションセットを隔離したい場合がある。
【0053】
したがって、図示した実施形態では、CI510Aは、IVN544AのIPアドレス525AをCI510AにアタッチされたCVNI515Aに割り当てることによって、IVN544A内に構成されてもよく、CI510Bは、IVN544BのIPアドレス525BをCI510BにアタッチされたCVNI515Bに割り当てることによって、異なるIVN544B内に構成されてもよい。OSI L2接続を可能にするために、共有ネットワークケーブル570(例えば、イーサネットケーブル)が、VCS拡張サーバ501の物理ネットワークインターフェースをオンプレミスのローカルネットワークスイッチ544にリンクするために使用されてもよく、それぞれのLVNI517(例えば、517Aまたは517B)は、2つのCIにアタッチされてもよい。OSI L2フレーム507Aは、ネットワークケーブル570を介してCI510Aとローカルネットワークデバイスとの間で交換されてもよく、OSI L2フレーム507Bもまた、同じネットワークケーブル570を使用してCI510Bとローカルネットワークデバイスとの間で交換されてもよく、ネットワーキングマネージャは、両方のフレームのセットのための仲介(論理的にはスイッチと同様)として機能する。
【0054】
図示した実施形態では、多様な非VCSデバイスが、573A、573B、及び573Cなどのそれぞれのネットワークケーブルを介して、ローカルネットワークスイッチ544にアタッチされてもよく、これらのデバイスのいくつかまたは全てが、ES501において実行された1つまたは複数のCIと、OSIレイヤ2で通信し得る。このようなデバイスは、特に、オンプレミスDHCPサーバ575、非VCS汎用サーバ571、及び/または1つもしくは複数のIoTデバイス572を含み得る。いくつかの実施形態では、複数のネットワークケーブルが、拡張サーバとローカルネットワークのデバイス(ネットワークスイッチなど)との間にアタッチされ得ることに留意されたい。例えば、そのようなケーブルの1つが、公衆インターネットを経たトンネリングを介してプロバイダネットワークデータセンタリソース及びVCSコントロールプレーンと通信するために使用されてもよく、別のケーブルが、ローカルネットワークとのOSIレイヤ2トラフィックに使用されてもよい。
【0055】
いくつかの実施形態では、VCSクライアントは、所与の拡張サーバにおける異なるコンピュートインスタンスにアタッチされたLVNIのローカルプレミストラフィックに対してカスタムトラフィック管理ポリシーを適用することを決定し得る。
図6は、少なくともいくつかの実施形態による、それぞれのセキュリティ及び性能関連プロパティを有するいくつかのローカルプレミスアクセス仮想ネットワークインターフェースが、仮想化コンピューティングサービスの拡張サーバにおいて構成され得る、構成例を示す。
図6に示すシナリオの例では、VCS拡張サーバ601は、コンピュートインスタンスCI610A及びCI610Bの対を含む。CI610Aは、アプリケーションセット661Aに使用され、CVNI615A及びLVNI617Aがアタッチされている。CI610Bは、アプリケーションセット661Bに使用され、CVNI615Bならびに2つのLVNI617B及び617Cがアタッチされている。VCSのIVN内のIPアドレス625Aは、CVNI615Aに割り当てられ、IVN内のIPアドレス625B(アドレスがCVNI615Aに割り当てられているものと同一のIVNまたは異なるIVNであってもよい)も、CVNI615Bに割り当てられる。
【0056】
CI610及びLVNI617が代わりに構成されるVCSクライアントは、図示した実施形態では、LVNIのMACアドレスを利用してそれぞれのOSIレイヤ2トラフィックに対してセキュリティ及び性能関連ルールの異なるセットを適用するように構成される。それぞれのセキュリティ設定644A、644B、及び644Cは、それぞれLVNI617A、617B、及び617CのためのVCSコントロールプレーンのプログラムによるインターフェースを介して、クライアントによって指定され得る。加えて、それぞれのトラフィックレート制限645A、645B、及び645Cは、それぞれLVNI617A、617B、及び617CのためのVCSコントロールプレーンのプログラムによるインターフェースを介して、クライアントによって指定され得る。セキュリティ設定では、例えば、ネットワーキングマネージャによって受信されたブロードキャストフレームを、LVNIがアタッチされているコンピュートインスタンスに送信すべきかどうか、指定されたVLANタグまたは識別子を有するフレームをコンピュートインスタンスに配信すべきか否か、などのプロパティを指定し得る。図示した実施形態では、トラフィックレート制限は、所与のCI(または所与のCIの所与のLVNI)からのアウトバウンドOSIレイヤ2トラフィックを抑制するために使用され得る。いくつかの実施形態では、(例えば、
図5に示されるスイッチへの)共有ネットワークケーブルが、拡張サーバをローカルプレミスネットワークの残りと接続するために使用され得るため、そのようなレート制限は、このようなケーブル上の利用可能な帯域幅がVCSクライアントの目的に従って分割されることを保証するのに有用であり得ることを想起されたい。VCSコントロールプレーンサーバにおいてクライアントからプログラムによるインターフェースを介して取得されたセキュリティ設定及びレート制限は、拡張サーバの拡張構成マネージャ(ECM)及び/または拡張サーバのネットワーキングマネージャに送信されてもよく、少なくともいくつかの実施形態では、その設定は、ネットワーキングマネージャによって適用または施行されてもよい。
図6に示すもの以外の他のLVNIパラメータもまた、またはその代わりに、いくつかの実施形態ではVCSクライアントによってカスタマイズされてもよい。
【0057】
図7は、少なくともいくつかの実施形態による、ローカルプレミスアクセス仮想ネットワークインターフェースの構成及び使用に関連する、プログラムによるインタラクションの例を示す。
図1のVCS110に特徴及び機能が類似しているVCS712は、
図7に示される実施形態では、1つまたは複数のウェブベースコンソール、コマンドラインツール、グラフィカルユーザインターフェース、アプリケーションプログラミングインターフェース(API)などのプログラムによるインターフェース777のセットを実施し得る。VCSのクライアント710は、プログラムによるインターフェースを介してVCSコントロールプレーンにConfigureExtensionServer要求714をサブミットして、プロバイダネットワークのデータセンタ外部の指定されたプレミスにおいて、前述した種類の少なくとも1つの拡張サーバの確立を要求し得る。要求されたサーバが、プロビジョニングされ、オンラインになった後、図示した実施形態では、ExtensionServerOnline応答メッセージ716がクライアントに送信され得る。場合によっては、必要なサーバコンポーネントをプロバイダネットワークから外部プレミスに発送または送信し、次いで(例えば、標準サーバラック内の)サーバを構成し、サーバをインターネットにアタッチし、サーバの電源をオンにするのに、ある程度の時間が(例えば、数日または数週間)かかる場合があり、ExtensionServerOnlineメッセージは、少なくともいくつかの実施形態では、これら全てのタスクが完了した後にのみ送信され得ることに留意されたい。上述したように、外部プレミスにおける拡張サーバ構成マネージャは、少なくともいくつかの実施形態では、拡張サーバの初期構成の一部として、プロバイダネットワークのデータセンタに位置する、VCSコントロールプレーンにおける拡張接続マネージャとセキュアチャネルを介して接続を確立してもよい。
【0058】
図示した実施形態では、クライアント710は、CreateLVNIs要求718を介して1つまたは複数のLVNIの作成を要求し、CreateCVNIs要求723を介して1つまたは複数のCVNIの作成を要求し得る。いくつかの実施形態では、このようなLVNI及び/またはCVNIは、プログラムでアタッチされるコンピュートインスタンスの起動前に作成されてもよい。これに応答して、要求されたLVNI/CVNIのプロパティを示すメタデータ(例えば、名前、説明、クライアントによって指定/要求された場合はIPアドレス、クライアントによって指定/要求された場合はMACアドレス、セキュリティルール、該当する場合はトラフィックレート制限など)が、VCSコントロールプレーンに記憶され得る。LVNI-IDsメッセージ720は、いくつかの実施形態では、要求されたLVNIの作成が成功したことを示し、必要に応じて後続のインタラクションで使用され得る、作成されたLVNIの識別子を提供して、クライアントに送信され得る。CVNI-IDsメッセージ725は、要求されたCVNIが作成された後にクライアントに送信されてもよく、必要に応じて後続のインタラクションで使用され得る、作成されたLVNIの識別子を提供することを示す。
【0059】
図示した実施形態では、コンピュートインスタンスは、LaunchCIAtExtensionServer要求727に応答して拡張サーバで起動され得る。起動要求のパラメータは、VNI(例えば、1つまたは複数のCVNI及び/またはLVNI)がCIにプログラムでアタッチされる方法を管理し得る。場合によっては、クライアントは、VCSコントロールプレーンがインスタンス起動時に指定されたIVN内に少なくとも1つのCVNIを作成してアタッチすること、及び/またはVCSが、インスタンス起動時にVCSが選択したMACアドレスを有する少なくとも1つのLVNIを作成してアタッチすることを要求し得る。その他の場合、クライアントは、インスタンスが起動され、CILaunchedメッセージ728がクライアントで受信されるまで、1つまたは複数のVNIのアタッチを延期し得る。
【0060】
図示した実施形態では、クライアントは、AttachVNIToExtensionServerCI要求730をVCSにサブミットすることによって、拡張サーバにおけるCIへの1つまたは複数のVNI(例えば、LVNIもしくはCVNIまたはその両方)のプログラムによるアタッチを要求し得る。必要に応じて、クライアントは、アタッチされるVNI(例えば、CVNIまたはLVNI)の識別子を指定してもよく、またはVCSコントロールプレーンが新たなVNIを作成してアタッチすることを要求してもよい。図示した実施形態では、VNIとCIとの関連付けを示すメタデータがVCSコントロールプレーンに記憶され、拡張サーバに伝播された後、VNIAttachedメッセージ732が、クライアントに送信され得る。
【0061】
図示した実施形態では、LVNIまたはCVNIは、DetachVNIFromExtensionServerCI要求734に応答して、VCSコントロールプレーンによってCIからプログラムでデタッチされ得る。このようなデタッチは、MACアドレス及び/またはIPアドレスなどのVNIの他のプロパティの少なくともいくつかを保持しながら、VNIとVNIがアタッチされているCIとの関連付けの指示を削除することを含み得る。VNIDetachedメッセージ736は、VNIがCIから関連付けを解除されたことを示すためにクライアントに送信され得る。
【0062】
図示した実施形態では、DescribeVNIs要求741は、指定されたVNIのセット(例えば、LVNI、CVN、または両方のタイプのVNI)及び/またはCIにアタッチされた全てのVNIのプロパティを見るために、クライアント710によってサブミットされ得る。VNI(複数可)のプロパティは、1つまたは複数のVNInfoメッセージ743を介してクライアントに提示され得る。例えば、クライアントはDescribeVNI要求を使用して、(LVNIをCIにアタッチする前、またはアタッチ後に)LVNIのMACアドレスを取得してもよく、その情報を使用してオンプレミスネットワーク内で構成変更を行ってもよく、オンプレミスネットワークからのOSI L2トラフィックは、そのLVNIがアタッチされたCIと交換される。
【0063】
上述したように、例えば
図6の文脈において、クライアントは、LVNI(及び/またはCVNI)のセキュリティ設定またはトラフィックレート制限などの様々なプロパティをカスタマイズしたい場合がある。いくつかの実施形態では、所望の設定を示すChangeVNISettings要求747は、プログラムによるインターフェース777を使用してクライアントによりサブミットされ得る。VNI用に記憶されたメタデータは、それに従って修正されてもよく、VNISettingsChanged応答メッセージ749が、クライアントに送信されてもよい。
【0064】
VCSは、異なる実施形態では、VNIに割り当てられたアドレスを使用してメッセージが受信/送信される速度、メッセージのサイズの分布、トラフィックレートの傾向など、特定のCVNI及びLVNIに関連する様々なタイプのメトリクスを収集し得る。クライアントは、図示した実施形態ではGetVNIMetrics要求751をサブミットすることによって、例えば、VNIタイプごとまたはVNIごとに、LVNI及び/またはCVNIのメトリクスを要求し得る。要求されたメトリクスは、1つまたは複数のMetricsSet応答メッセージ753において提供され得る。
【0065】
いくつかの実施形態では、LVNIは、VCSでサポートされるより汎用的なVNI構成物の特別なケースとして(VCSコントロールプレーンによって)扱われてもよい。このような実施形態では、クライアント710が、VNIがLVNIとして使用されることを指定せずにVNIの作成またはアタッチを要求した場合、VCSは、VNIがCVNIとして使用されること(例えば、VNIにIVNアドレスが割り当てられること、など)をデフォルトで仮定してもよい。このような汎用VNI構成物がサポートされている実施形態では、VCSクライアント710は、IVNサブネットの構成設定を利用して、IPアドレス(即ち、CVNI IPアドレス)がそのサブネットのIPアドレス範囲内にあるCIに対して構成されることを示し得る。VCSクライアントは、SetSubnetAttributesForLVNIs要求755をサブミットして、指定されたIVNの指定されたサブネット内に構成されたコンピュートインスタンスについて、そのCIにアタッチされたVNIのアレイまたはリスト内の指定された整数インターフェースインデックスにおける任意のVNIが、LVNIとして利用され、または扱われることを示し得る。これに応じて、VCSは、LVNIインデックスをサブネットの属性として記憶し、(例えば、インデックスを指定するアタッチ要求に応答して)そのインデックスにおいてその後アタッチされたVNIをLVNIとして扱ってもよい。SubnetAttributesSetメッセージ757は、VCSからクライアントに送信されてもよい。LVNIを構成するためのサブネット属性方法により、クライアントは、(LVNIに正しいインターフェースインデックスが使用される限り)LVNIに固有のパラメータを使用することなく単に他のVNIに使用されるのと同じタイプのプログラムによる要求をLVNIに対して使用し得るため、VCSクライアントのためのLVNIの管理が簡略化され得る。
図7に示されるもの以外の、LVNI、CVNI、及び拡張サーバの使用に関連するプログラムによるインタラクションは、少なくともいくつかの実施形態ではVCSによってサポートされ得ることに留意されたい。さらに、
図7は、プログラムによるインタラクションが発生しなければならない必要なシーケンスを示すことを意図したものではない。例えば、DescribeVNI要求は、
図7のLaunchCIAtExtensionServer要求よりも下の位置に示されているが、LaunchCIAtExtensionServer要求の前にDescribeVNI要求がサブミットされてもよい。
【0066】
図8は、少なくともいくつかの実施形態による、ローカルプレミスアクセス仮想ネットワークインターフェースを構成及び利用するために実行され得る、動作の態様を示す流れ図である。要素801に示すように、
図1のプロバイダネットワーク101のVCS110と特徴及び機能が類似のVCSの拡張サーバ(ES)は、図示した実施形態では、プロバイダネットワークのデータセンタ外部のプレミスに構成され得る。ESの構成は、VCSのコントロールプレーンサーバ(CPS)からESで実行しているES構成マネージャ(ECM)へのセキュアチャネルを介した接続の確立を含み得る。ECMは、様々な実施形態では、他のタスクの中でも特に、VCSコントロールプレーンからの要求/コマンドに応答してESでコンピュートインスタンス(CI)を起動する役割をし得る。ESはまた、様々な実施形態において、ESで起動されたCIとESの外部の通信エンドポイントとの間のネットワークトラフィックのフロー、及びESのCI間のネットワークトラフィックのフローを管理する役割のネットワーキングマネージャを含み得る。
【0067】
ESがセットアップされているVCSクライアントからの要求に応答して、VCSコントロールプレーンは、CI、CI1をESで起動させ得る。図示した実施形態では、ローカルプレミスアクセス仮想ネットワークインターフェース(LVNI)は、VCSコントロールプレーンによってプログラムでCI1にアタッチされてもよく、クラウドアクセス仮想ネットワークインターフェース(CVNI)も、CIにプログラムでアタッチされてもよい(要素804)。少なくともいくつかの実施形態では、VCSのコントロールプレーンサーバは、クライアントからプログラムインターフェースを介してLVNIまたはCVNIをCIにアタッチするための要求を受信してもよく、一方コントロールプレーンサーバは、内部要求/コマンドをESにおける構成管理コンポーネントまたはネットワーキングマネージャに送信してもよい。これによって、アタッチ動作が完了する。CVNIには、VCSで構成された隔離仮想ネットワーク(IVN)のアドレス範囲からIPアドレスIPAddr1が割り当てられ得る。LVNIには、VCSコントロールプレーンによってMACアドレスM1が割り当てられ得るが、そのIVN内から、またはVCSによって管理されるIPアドレスのいかなる範囲内からもIPアドレスは割り当てられない。少なくともいくつかの実施形態では、ネットワーキングマネージャに、アタッチされたCVNI及びアタッチされたLVNIに関連する構成情報(例えば、IPアドレス及びMACアドレスを含む)がVCSコントロールプレーンから提供され得る。
【0068】
ESでは、ネットワーキングマネージャは、VCSのカプセル化プロトコルを利用して、VCS内(またはプロバイダネットワークの他のサービス内)の宛先アドレスを有するCI1からのアウトバウンドIPパケットを変換し得る(要素807)。プレミスのローカルネットワーク内の宛先MACアドレスを有する(またはブロードキャストに使用される宛先アドレスを有する)アウトバウンドデータリンク層フレームが、ネットワーキングマネージャによって、ESを仲介デバイスに接続するケーブルを介してプレミスにおけるネットワークスイッチまたは他の類似のネットワーキング仲介デバイスに向けられ得る。
【0069】
インバウンドデータリンク層フレームDLLFは、ESの物理ネットワーキングインターフェース(例えば、ネットワークインターフェースカードまたその等価物)で取得され(要素810)、ネットワーキングマネージャによって処理され得る。いくつかの実施態様では、DLLFは、DLLFが受信された送信元がプロバイダネットワークリソースであったかどうか、またはESが位置するプレミスのローカルデバイスから受信したかどうかを示す、関連メタデータ(例えば、下位ドライバソフトウェアまたはハードウェアネットワーキングコンポーネントによってそれが配置される送信元キューの指示)を有し得る。このような実施態様では、そのようなメタデータは、最初にネットワーキングマネージャによってチェックされて、DLLFが送信された送信元の種類が判定されてもよく、次いで、送信元に関する情報が、DLLFがどのように処理されるべきかを判定するために、DLLFのコンテンツと共に使用されてもよい。例えば、VCSのカプセル化プロトコルは、DLLFがプロバイダネットワークリソースから受信された場合にのみ、以下で説明するように使用されてもよい。要素813に対応する動作で判定されるように、DLLFが、以前に(例えば、ESの初期構成中に)ESに割り当てられたVCSサブストレートネットワークアドレスである宛先アドレスSDAを有するIPパケットIPP1を含む場合、ネットワーキングマネージャは、VCSのカプセル化プロトコルを使用して、IPP1内にカプセル化された第2のIPパケットIPP2を抽出し得る(要素819)。IPP2の宛先IPアドレスが、CI1のCVNIに割り当てられたIPアドレスIPAddr1などの、ESで実行している任意のCIのCVNIに割り当てられたIPアドレスと一致する場合、ネットワーキングマネージャは、第2のIPパケットIPP2のコンテンツをそのCIに配信し得る。万が一、ESにおけるCIのCVNIと一致するIPアドレスが存在しない場合に、図示した実施形態では、IPP2がドロップされる場合がある。いくつかの実施態様では、上述の種類のメタデータが使用されないことがある。
【0070】
少なくともいくつかの実施形態では、DLLFが宛先アドレスとしてSDAを有するIPパケットを含まない場合、ネットワーキングマネージャは、DLLFの宛先MACアドレスを使用して、DLLFコンテンツが配信されるべき1つまたは複数のCIを識別しようとし得る。DLLF宛先MACアドレスが、ES上で実行中の任意のCIに割り当てられたMACアドレス(CI1のLVNIに割り当てられたMACアドレスM1など)と一致する場合(要素816に対応する動作で判定される)、ネットワーキングマネージャは、図示した実施形態では、DLLFコンテンツの少なくともサブセットをそのCIに配信し得る(要素859)。
【0071】
LVNIのMACアドレスとの正確な一致が見つからない場合、ネットワーキングマネージャは、DLLFがブロードキャストフレームであるかどうかを判定し得る(要素822)。DLLFがブロードキャストフレームである場合、そのコンテンツは、図示した実施形態では、(例えば、LVNIのセキュリティ設定または他のパラメータに基づいて)ブロードキャストフレームを受け入れるように構成されたLVNIを有するESで実行している全てのCIに配信され得る(要素825)。そうでない場合、ネットワーキングマネージャは、CVNI IVNのIPアドレス一致またはLVNIのMACアドレス一致を使用してDLLFのための適当な宛先CIを見つけることができず、DLLFがブロードキャストフレームではなかったため、様々な実施形態においてDLLFがドロップされてもよい(要素828)。要素810以降に対応する動作は、図示した実施形態ではネットワークマネージャによって少なくともいくつかのインバウンドデータリンク層フレームに対して繰り返され得る。
【0072】
様々な実施形態において、
図8の流れ図に示される動作のいくつかは、図に示される順序とは異なる順序で実施されてもよく、または順次ではなく並行して実行されてもよいことに留意されたい。例えば、いくつかの実施形態では、インバウンドメッセージのための宛先CIを識別するために、MACアドレスベースのチェック(要素816及び859)が、IPアドレスベースのチェック(要素813及び819)の前に実行されてもよい。さらに、
図8に示される動作のいくつかは、1つまたは複数の実施態様では必要とされないことがある。
【0073】
いくつかの実施形態では、着信メッセージを拡張サーバのコンピュートインスタンスに向ける役割をするネットワーキングマネージャは、拡張サーバのオフロードカードにおいて少なくとも部分的に実施され得る。
図9は、少なくともいくつかの実施形態による、拡張サーバのコンポーネントの例を示す。図示されるように、VCS拡張サーバ(ES)902は、プライマリ物理プロセッサセット904、メインメモリ(例えば、ランダムアクセスメモリ、即ちRAMの1つまたは複数のモジュール)908、部分的にオフロードされた仮想化マネージャ(PVM)970、ならびに上述した種類のLVNI及び/またはCVNIがプログラムでアタッチされ得るCI950A、950B、及び950CなどのCI950を含み得る。いくつかの実施形態では、CI950の個々のCIは、ゲスト仮想マシン(GVM)と呼ばれるそれぞれの仮想マシンを含み得る。ES902は、いくつかの他のコンポーネント、例えば様々な永続ストレージデバイスも含んでもよく、それらは、混乱を避けるために
図9には示されていない。プライマリ物理プロセッサセット904は、図示した実施形態におけるpCPU905A~905Cを含むいくつかの物理CPU(pCPU)を含み得る。vCPUまたは仮想CPUと呼ばれるpCPUの仮想化バージョンは、CIのライフタイム中に、PVM970によって個々のCIに割り当てられ得る。各CI950は、オペレーティングシステムのそれぞれのインスタンス(例えば、オペレーティングシステム952A~952B)、及び仮想化コンピューティングサービスのクライアントに代わって実行されているアプリケーションのセット(例えば954A~954C)を含み得る。アプリケーション954及び/または関連するオペレーティングシステム952のうちの1つまたは複数は、上述のようにLVNIを使用してローカルプレミスネットワーク内のデバイスとデータリンク層メッセージを交換し得る。
【0074】
PVM970は、図示した実施形態では、オポチュニスティックストリップドダウンハイパーバイザ920(pCPU上で実行する)と、pCPUを使用しない1つまたは複数のオフロードされた仮想化マネージャコンポーネント(OVMC)972と、を含み得る。OVMC972は、例えば、仮想化コントローラ915と、オフロードカード910におけるネットワーキングマネージャ916の少なくとも一部と、を含み得る。ネットワーキングマネージャは、オフロードカード910のネットワークケーブルポート991に接続されたケーブルを介してESで受信されたデータリンク層フレームを検査し、そのフレームのコンテンツが前述の方法論(例えば、CVNIのIVNアドレスが、宛先CIを選択するために使用されるかどうか、またはLVNIのMACドレスが使用されるかどうか)を使用して配信されるCIを判定し得る。ケーブルの他端は、
図4の文脈で説明したように、ローカルネットワークスイッチに接続され得る。いくつかの実施形態では、OVMCの個々のOVMCは、それぞれのシステムオンチップ設計を使用して実施され得る。図示した実施形態では、両方のOVMC972が単一のオフロードカード910(例えば、ペリフェラルコンポーネントインターコネクトエクスプレス、即ちPCIeカード)内に組み込まれるとして示されているが、異なる実施形態では、OVMCの配置及び編成に関する他の手法が採用され得る。例えば、一実施形態では、単一のシステムオンチップ実施態様は、仮想化コントローラ及びネットワーキングマネージャの機能を実行するために使用されてもよく、それによって、2つの異なるOVMCの必要性がなくなる。別の実施形態では、それぞれのオフロードカードが、仮想化コントローラ915及びネットワーキングマネージャ916のために使用され得る。仮想化コントローラは、その名前によって示唆されるように、図示した実施形態では、ES902で実行される仮想化管理作業の多くを編成または調整する役割をし得る。例えば、それは、ブートするPVMのコンポーネントの最初のものであり、PVMの他のコンポーネントの起動をトリガする、VCSコントロールプレーンと通信する、CIに関するメモリ割り当て決定をする、などを行ってもよい。ネットワーキングマネージャ916は、図示した実施形態では、1つまたは複数のネットワーキングプロトコル(例えば、VCS内で使用されるカプセル化プロトコルを含む)を実施する、及びCIとESの外部のネットワーキングエンドポイントとの間の仲介として機能する役割をし得る。
【0075】
ハイパーバイザ920は、図示した実施形態では、少なくともいくつかの従来のハイパーバイザによって行われる作業の多くが代わりにOVMC972によってハンドリングされてもよく、それによってハイパーバイザ920の複雑性及びサイズが低減するため、ストリップドダウンとして説明され得る。加えて、ハイパーバイザ920は、ほとんどの状況下で、ハイパーバイザがCPUサイクルを用いる前、CIがpCPU905の制御を自発的に放棄するまで待機し得るため、オポチュニスティックとして示され得る。よって、例えば、特定のCI950がI/O要求(I/Oは完了に約T1の時間がかかることが見込まれる)を発行し、I/O要求に対する応答が受信されるまでpCPUを明け渡すと、ハイパーバイザはこの機会を利用して、CIがpCPUの使用を見込まない間、pCPUを使用して1つまたは複数の仮想化管理タスク(通常時間T2がかかり得る、T2<<T1)を行い得る。このようにして、図示した実施形態では、ハイパーバイザ920のアプリケーション954の性能に与える影響は最小限であり得る。
【0076】
ハイパーバイザ920はそれ自体、図示した実施形態では、オペレーティングシステムカーネルレベルコンポーネントのセット922、ハイパーバイザコーディネータ925、1つまたは複数のGVMマネージャ928、分離/セキュリティコンポーネント929、及び/またはメッセージングマネージャ931を含む、いくつかのサブコンポーネントを含み得る。ハイパーバイザコーディネータ925、GVMマネージャ928のそれぞれ、分離/セキュリティコンポーネント929、及び/またはメッセージングマネージャ931は、少なくともいくつかの実施形態では、それぞれのユーザモードプロセスとして実施され得る。様々な実施形態では、これらのコンポーネントの少なくともいくつかは、簡易な特化されたプロトコルを用いてパイプを介して互いに通信するそれぞれの静的にリンクされたプログラムのインスタンスとして実施され得る。ハイパーバイザのサブコンポーネントは、図示した実施形態では、デフォルトで受動的な、または休止したままであってもよく、イベント(他のサブコンポーネントからのメッセージ、CIによって開始されたコンテキストの切替えなど)にのみ応答して反応しアクティブ化する。いくつかの実施態様では、例えば、ハイパーバイザサブコンポーネントのいくつかは、典型的には、大部分の時間、ポーリングシステムコール(epoll()またはその均等物など)でブロックされたままであってもよい。
【0077】
カーネルレベルコンポーネント922は、CIによって発行されたVM exit命令(例えば、CIがpCPUを明け渡すとき)への初期応答などの様々な下位レベルの演算に対するサポートを提供し得る。ハイパーバイザコーディネータ925は、その名前から示されるように、他のサブコンポーネントの動作を調整する役割をし得る。ハイパーバイザコーディネータ925は、例えば、OVMC972とハイパーバイザとの間の通信に使用され得るAPIを実施してもよく、CIの起動及び終了を開始する(例えば、CIを起動または終了するためにVCSコントロールプレーンから要求を受信したOVMCの要求により)、GVMマネージャによって収集されたメトリクスを公開する、デバッグケイパビリティを提供する、などを行う。
【0078】
各GVMマネージャ928は、コーディネータ925によって提供される仕様に基づいて各CIを起動またはインスタンス化する、GVMのメトリクス及びログをモニタリングするなどの役割をし得る。いくつかの実施形態では、GVMマネージャ928はまた、例えばCIのI/O要求をトラップし、それらをOVMCの助けを得て完了するメモリマップドI/O動作に変換することによって、あるデバイスに対するCIによって要求されたI/O動作を支援し得る。少なくともいくつかの実施形態では、最小権限のセキュリティ関連原則に従って、GVMマネージャ928は、CIのインスタンス化の間に可能な限り早く、それ自体の権限の多くをドロップし得る。例えば、1つまたは複数のvPCU(仮想CPU)スレッドがCIに対して生成され、CIのメモリがマッピングされた後、GVMマネージャは、その権限のいくつかを無効にして、セキュリティが破られる機会を減少させ得る。いくつかの実施形態では、GVMマネージャとCIとの間に1対1のマッピングがあってもよく、他の実施形態では、単一のGVMマネージャが複数のGVMを担当してもよい。
【0079】
メッセージングマネージャ931は、例えば、仮想化コントローラによってキューベースのプロトコルを用いて発行されたコマンドをハイパーバイザ内のパイプメッセージに変換することによって、仮想化コントローラ915とハイパーバイザとの間の仲介として機能し得る。セキュリティ及び分離コンポーネント929は、例えば、CI間のデータの意図しない共有を回避し得るように、CIが終了するときにCIのメモリをスクラブまたはクリーンアップする役割をし得る。いくつかの実施形態では、ネットワーキングマネージャ機能の少なくとも一部が、ハイパーバイザで実施され得る。PVMは、少なくともいくつかの実施形態では追加のコンポーネント(
図9に図示せず)を含んでもよく、少なくとも一実施形態では、
図9に示されるPVMコンポーネントの1つまたは複数は必要でない場合があることに留意されたい。
【0080】
少なくともいくつかの実施形態では、本明細書中に記載するタイプの技術を実施するサーバ(例えば、VCSコントロールプレーン機能及び/または外部サーバ機能を含む)は、1つもしくは複数のコンピュータアクセス可能な媒体を含む、または1つもしくは複数のコンピュータアクセス可能な媒体にアクセスするように構成された、汎用コンピュータシステムを含み得る。
図10は、そのような汎用コンピューティングデバイス9000を例示する。例示される実施形態では、コンピューティングデバイス9000は、入力/出力(I/O)インターフェース9030を介して、システムメモリ9020(不揮発性及び揮発性の両方のメモリモジュールを含み得る)に連結された、1つまたは複数のプロセッサ9010を含む。コンピューティングデバイス9000は、I/Oインターフェース9030に連結されたネットワークインターフェース9040をさらに含む。
【0081】
様々な実施形態において、コンピューティングデバイス9000は、1つのプロセッサ9010を含むユニプロセッサシステム、またはいくつかのプロセッサ9010(例えば、2つ、4つ、8つ、もしくは別の適当な数)を含むマルチプロセッサシステムであってもよい。プロセッサ9010は、命令を実行することが可能な任意の適当なプロセッサであってもよい。例えば、様々な実施形態では、プロセッサ9010は、x86、PowerPC、SPARC、ARM、もしくはMIPS ISA、または任意の他の適当なISAなどの様々な命令セットアーキテクチャ(ISA)のいずれかを実施する汎用プロセッサまたは組み込みプロセッサであってもよい。マルチプロセッサシステムでは、各プロセッサ9010が、一般的には同じISAを実施し得るが、必ずしもそうでなくてもよい。いくつかの実施態様では、グラフィックス処理ユニット(GPU)及び/またはフィールドプログラマブルゲートアレイ(FPGA)は、従来のプロセッサの代わりに、または従来のプロセッサに加えて使用されてもよい。
【0082】
システムメモリ9020は、プロセッサ(複数可)9010によってアクセス可能な命令及びデータを記憶するように構成され得る。少なくともいくつかの実施形態では、システムメモリ9020は、揮発性部分及び不揮発性部分の両方を含んでもよく、他の実施形態では、揮発性メモリのみが使用されてもよい。様々な実施形態では、システムメモリ9020の揮発性部分は、スタティックランダムアクセスメモリ(SRAM)、同期ダイナミックRAM、または任意の他のタイプのメモリなどの任意の適当なメモリ技術を使用して実施され得る。システムメモリ(例えば、1つまたは複数のNVDIMMを含み得る)の不揮発性部分について、いくつかの実施形態では、NANDフラッシュデバイスを含むフラッシュベースのメモリデバイスが使用され得る。少なくともいくつかの実施形態では、システムメモリの不揮発性部分は、スーパーキャパシタまたは他の蓄電デバイス(例えば、バッテリ)などの電源を含み得る。様々な実施形態では、メモリスタベースの抵抗ランダムアクセスメモリ(ReRAM)、3次元NAND技術、強誘電RAM、磁気抵抗RAM(MRAM)、または様々なタイプの相変化メモリ(PCM)のうちのいずれかが、少なくともシステムメモリの不揮発性部分に対して使用され得る。例示される実施形態では、上述のそれらの方法、技術、及びデータなどの1つまたは複数の所望の機能を実施するプログラム命令及びデータは、コード9025及びデータ9026として、システムメモリ9020内に記憶されて示されている。
【0083】
一実施形態では、I/Oインターフェース9030は、ネットワークインターフェース9040、または様々なタイプの永続的及び/または揮発性記憶デバイスなどの他の周辺インターフェースを含む、プロセッサ9010、システムメモリ9020、及びデバイス内の任意の周辺デバイス間のI/Oトラフィックを協調させるように構成され得る。いくつかの実施形態では、I/Oインターフェース9030は、あるコンポーネント(例えば、システムメモリ9020)からのデータ信号を、別のコンポーネント(例えば、プロセッサ9010)による使用に適したフォーマットに変換するために、任意の必要なプロトコル、タイミング、または他のデータ変換を実行し得る。いくつかの実施形態では、I/Oインターフェース9030は、例えば、ペリフェラルコンポーネントインターコネクト(PCI)バス規格またはユニバーサルシリアルバス(USB)規格の変形などの様々なタイプの周辺バス(様々な種類のハードウェアアクセラレータ及び/またはオフローダを含む)を通してアタッチされるデバイスに対するサポートを含み得る。いくつかの実施形態では、I/Oインターフェース9030の機能は、例えば、ノースブリッジ及びサウスブリッジなどの2つ以上の別々のコンポーネントに分割され得る。また、いくつかの実施形態では、システムメモリ9020へのインターフェースなどのI/Oインターフェース9030の機能のうちのいくつかまたは全てが、プロセッサ9010に直接組み込まれ得る。
【0084】
ネットワークインターフェース9040は、データが、コンピューティングデバイス9000と、例えば、
図1~
図9に例示されるような他のコンピュータシステムまたはデバイスなどの、1つまたは複数のネットワーク9050にアタッチされる他のデバイス9060との間で交換されることを可能にするように構成され得る。様々な実施形態では、ネットワークインターフェース9040は、例えば、イーサネットネットワークのタイプなどの任意の適当な有線または無線の一般データネットワークを介した通信をサポートし得る。さらに、ネットワークインターフェース9040は、アナログ音声ネットワークもしくはデジタルファイバ通信ネットワークなどの電気通信/テレフォニネットワークを介した、ファイバチャネルSANなどのストレージエリアネットワークを介した、または任意の他の適当なタイプのネットワーク及び/またはプロトコルを介した、通信をサポートし得る。
【0085】
いくつかの実施形態では、システムメモリ9020は、
図1から
図9の文脈で議論される方法及び装置を実施するために使用されるプログラム命令及びデータの少なくともサブセットを記憶するように構成されたコンピュータアクセス可能な媒体の一実施形態を表し得る。しかしながら、他の実施形態では、プログラム命令及び/またはデータは、異なるタイプのコンピュータアクセス可能な媒体で受信、送信、または記憶され得る。概して言えば、コンピュータアクセス可能な媒体は、I/Oインターフェース9030を介してコンピューティングデバイス9000に連結される、磁気媒体または光媒体、例えば、ディスクまたはDVD/CDなどの非一時的記憶媒体またはメモリ媒体を含み得る。非一時的コンピュータアクセス可能な記憶媒体はまた、システムメモリ9020または別のタイプのメモリとして、コンピューティングデバイス9000のいくつかの実施形態に含まれ得る、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAMなど)、ROMなどの任意の揮発性または不揮発性媒体を含み得る。いくつかの実施形態では、複数の非一時的コンピュータ可読記憶媒体は、1つもしくは複数のプロセッサ上でまたは1つもしくは複数のプロセッサにわたって実行されると、上述の方法及び技術の少なくともサブセットを実施するプログラム命令をまとめて記憶し得る。コンピュータアクセス可能媒体は、さらに、ネットワークインターフェース9040を介して実施され得るような、ネットワーク及び/または無線リンクなどの通信媒体を介して伝送される送信媒体、または電気信号、電磁信号、もしくはデジタル信号などの信号を含み得る。
図10に示されるような複数のコンピューティングデバイスのうちの一部または全てが、様々な実施形態では、説明された機能を実施するために使用されてもよく、例えば、様々な異なるデバイス及びサーバ上で実行するソフトウェアコンポーネントが、機能を提供するために協働し得る。いくつかの実施形態では、説明された機能の一部は、汎用コンピュータシステムを使用して実施されることに加えて、またはその代わりに、記憶デバイス、ネットワークデバイス、または専用コンピュータシステムを使用して実施され得る。本明細書で使用される「コンピューティングデバイス」という用語は、少なくとも全てのこれらのタイプのデバイスを指し、これらのタイプのデバイスに限定されない。
【0086】
本開示の実施形態は、以下の条項を鑑みて説明され得る。
【0087】
条項1.
システムであって、前記システムが、
プロバイダネットワークの仮想化コンピューティングサービスのコントロールプレーンサーバであって、前記プロバイダネットワークのデータセンタに位置する、前記コントロールプレーンサーバと、
前記仮想化コンピューティングサービスの拡張サーバのネットワーキングマネージャであって、前記拡張サーバが、前記プロバイダネットワーク外部のプレミスに位置する、前記ネットワーキングマネージャと、を備え、
前記コントロールプレーンサーバが、
クラウドアクセス仮想ネットワークインターフェースを前記仮想化コンピューティングサービスのコンピュートインスタンスにアタッチさせ、前記コンピュートインスタンスが、前記拡張サーバで実行され、前記クラウドアクセス仮想ネットワークインターフェースに、前記仮想化コンピューティングサービスで構成された隔離仮想ネットワークのIPアドレスの範囲から、第1のインターネットプロトコル(IP)アドレスが割り当てられ、
ローカルプレミスアクセス仮想ネットワークインターフェースを前記コンピュートインスタンスにアタッチさせ、前記ローカルプレミスアクセス仮想ネットワークインターフェースに、前記コントロールプレーンサーバによって特定のメディアアクセス制御(MAC)アドレスが割り当てられ、前記ローカルプレミスアクセス仮想ネットワークインターフェースに、前記隔離仮想ネットワークの前記ネットワークアドレスの範囲からIPアドレスが割り当てられないように構成され、
前記ネットワーキングマネージャが、
前記拡張サーバで受信された第1のデータリンク層フレームが、前記仮想化コンピューティングサービスのサブストレートネットワークの仮想ホストネットワークアドレスのセット内の宛先アドレスを有する第1のIPパケットを含むと少なくとも判定することに応答して、
前記仮想化コンピューティングサービスのカプセル化プロトコルを利用して、前記第1のIPパケットから第2のIPパケットを抽出し、
前記第2のIPパケットの前記宛先アドレスが前記第1のIPアドレスと一致するとの判定に応答して、前記第2のIPパケットを前記コンピュートインスタンスに配信し、
前記拡張サーバで受信された第2のデータリンク層フレームの宛先MACアドレスが、前記特定のMACアドレスと一致するとの判定に応答して、前記第2のデータリンク層フレームが、前記第1のIPパケットの前記宛先アドレスを有するIPパケットを含まず、前記カプセル化プロトコルを利用せずに、前記第2のデータリンク層フレームのコンテンツの少なくとも一部を前記コンピュートインスタンスに配信する、ように構成される、前記システム。
【0088】
条項2.
前記コントロールプレーンサーバが、
プログラムによるインターフェースを介して、前記コンピュートインスタンスを起動するための要求を取得するようにさらに構成され、前記ローカルプレミスアクセス仮想ネットワークインターフェースが、前記コンピュートインスタンスを起動するための前記要求に応答して、作成され、かつ前記コンピュートインスタンスにプログラムでアタッチされる、条項1に記載のシステム。
【0089】
条項3.
前記コントロールプレーンサーバが、
プログラムによるインターフェースを介して、前記コンピュートインスタンスを終了するための要求を受信したことに応答して、前記特定のMACアドレスが再利用可能であるという指示を記憶し、
前記特定のMACアドレスを別のローカルプレミスアクセス仮想ネットワークインターフェースに割り当て、
前記他のローカルプレミスアクセス仮想ネットワークインターフェースを別のコンピュートインスタンスにプログラムでアタッチするようにさらに構成される、条項1に記載のシステム。
【0090】
条項4.
前記コントロールプレーンサーバが、
前記コンピュートインスタンスが代わりに起動される前記仮想化コンピューティングサービスのクライアントからプログラムによるインターフェースを介して受信した入力に基づいて、前記特定のMACアドレスの少なくとも一部を判定するようにさらに構成される、条項1に記載のシステム。
【0091】
条項5.
前記コントロールプレーンサーバが、
プログラムによるインターフェースを介して、(a)前記クラウドアクセス仮想ネットワークインターフェースに関連付けられたネットワークトラフィックに関連するメトリクスの第1のセット、及び(b)前記ローカルプレミスアクセス仮想ネットワークインターフェースに関連付けられたネットワークトラフィックに関連するメトリクスの第2のセットを提供させるようにさらに構成される、条項1に記載のシステム。
【0092】
条項6.
コンピュータ実施方法であって、
仮想化コンピューティングサービスのコントロールプレーンサーバによって、第1のローカルプレミスアクセス仮想ネットワークインターフェースを前記仮想化コンピューティングサービスの第1のコンピュートインスタンスにアタッチさせることであって、前記コントロールプレーンサーバが、プロバイダネットワークのデータセンタに位置し、前記第1のコンピュートインスタンスが、前記データセンタ外部のプレミスに位置する特定のサーバで実行され、前記第1のローカルプレミスアクセス仮想ネットワークインターフェースに、前記コントロールプレーンサーバによって第1のメディアアクセス制御(MAC)アドレスが割り当てられる、前記アタッチさせることと、
前記特定のサーバのネットワーキングマネージャによって、前記特定のサーバで受信された第1のデータリンク層フレームが前記特定のサーバに割り当てられた特定の宛先アドレスを有する第1のIPパケットを含むと判定することに応答して、
前記仮想化コンピューティングサービスのカプセル化プロトコルを使用して、前記第1のIPパケットから第2のIPパケットを抽出することと、
前記第2のIPパケットを前記第1のコンピュートインスタンスに配信することと、
前記ネットワーキングマネージャによって、前記特定のサーバで受信された第2のデータリンク層フレームの宛先MACアドレスが前記第1のMACアドレスと一致すると判定することに応答して、前記第2のデータリンク層フレームのコンテンツの少なくとも一部を前記第1のコンピュートインスタンスに配信することと、を含む、前記コンピュータ実施方法。
【0093】
条項7.
プログラムによる要求に応答して、前記特定のサーバにおいて前記第1のコンピュートインスタンスを起動する前に、前記コントロールプレーンサーバによって前記第1のローカルプレミスアクセス仮想ネットワークインターフェースを作成することをさらに含む、条項6に記載のコンピュータ実施方法。
【0094】
条項8.
前記第2のデータリンク層フレームが、前記特定のサーバにおいて、(a)前記プレミスにおけるモノのインターネット(IoT)デバイス、または(b)前記プレミスにおける産業オートメーションデバイス、のうちの1つから受信される、条項6~7のいずれか1項に記載のコンピュータ実施方法。
【0095】
条項9.
前記第2のデータリンク層フレームが、前記プレミスのローカルネットワークのネットワークスイッチに接続されたケーブルを介して前記特定のサーバで受信される、条項6~8のいずれか1項に記載のコンピュータ実施方法。
【0096】
条項10.
プログラムによるインターフェースを介して受信された1つまたは複数の要求に応答して、前記第1のローカルプレミスアクセス仮想ネットワークインターフェースを前記第1のコンピュートインスタンスからデタッチさせること、及び前記第1のローカルプレミスアクセス仮想ネットワークインターフェースを第2のコンピュートインスタンスにアタッチさせることと、
前記第1のローカルプレミスアクセス仮想ネットワークインターフェースが前記第2のコンピュートインスタンスにプログラムでアタッチされた後、前記第2のコンピュートインスタンスが実行されるサーバで受信された第3のデータリンク層フレームの宛先MACアドレスが前記第1のMACアドレスと一致すると判定することに応答して、前記第3のデータリンク層フレームのコンテンツの少なくとも一部を前記第2のコンピュートインスタンスに配信することと、をさらに含む、請求項6~9のいずれか1項に記載のコンピュータ実施方法。
【0097】
条項11.
前記第1のコンピュートインスタンスが、前記仮想化コンピューティングサービスの第1の隔離仮想ネットワーク内に構成され、前記第2のコンピュートインスタンスが、前記仮想化コンピューティングサービスの第2の隔離ネットワーク内に構成される、条項10に記載のコンピュータ実施方法。
【0098】
条項12.
前記コントロールプレーンサーバによって、第2のローカルプレミスアクセス仮想ネットワークインターフェースを前記仮想化コンピューティングサービスの前記特定のサーバで起動された第2のコンピュートインスタンスにアタッチさせることであって、前記第2のローカルプレミスアクセス仮想ネットワークインターフェースに第2のMACアドレスが割り当てられ、前記第2のローカルプレミスアクセス仮想ネットワークインターフェースに、前記コントロールプレーンサーバによってインターネットプロトコル(IP)アドレスが割り当てられない、前記アタッチさせることと、
前記ネットワーキングマネージャによって、前記特定のサーバで受信された第3のデータリンク層フレームの宛先MACアドレスが前記第2のMACアドレスと一致すると判定することに応答して、前記第3のデータリンク層フレームのコンテンツの少なくとも一部を前記第2のコンピュートインスタンスに配信することと、をさらに含む、条項6~9のいずれか1項に記載のコンピュータ実施方法。
【0099】
条項13.
プログラムによるインターフェースを介して受信した要求に応答して、前記第1のMACアドレスを提供することをさらに含む、条項6~9のいずれか1項に記載のコンピュータ実施方法。
【0100】
条項14.
前記コントロールプレーンサーバによって、第2のローカルプレミスアクセス仮想ネットワークインターフェースを前記第1のコンピュートインスタンスにアタッチさせることであって、前記第2のローカルプレミスアクセス仮想ネットワークインターフェースに第2のMACアドレスが割り当てられ、前記第2のローカルプレミスアクセス仮想ネットワークインターフェースに、前記コントロールプレーンサーバによってインターネットプロトコル(IP)アドレスが割り当てられない、前記アタッチさせることと、
前記ネットワーキングマネージャによって、前記第2のMACアドレスを宛先として有する第3のデータリンク層フレームが前記特定のサーバで受信されたと判定することに応答して、前記第3のデータリンク層フレームのコンテンツの少なくとも一部を前記第1のコンピュートインスタンスに配信することと、をさらに含む、条項6~9のいずれか1項に記載のコンピュータ実施方法。
【0101】
条項15.
前記コントロールプレーンサーバにおいてプログラムによるインターフェースを介して、前記第1のローカルプレミスアクセス仮想ネットワークインターフェースに関連付けられたネットワークトラフィックに関して適用されるセキュリティ設定の指示を取得することであって、前記セキュリティ設定が、データリンク層フレームが受け入れられる送信元についての制限を含む、前記取得することと、
前記ネットワーキングマネージャによって、前記セキュリティ設定を施行することであって、前記第2のデータリンク層フレームの前記コンテンツの一部を前記第1のコンピュートインスタンスに配信する前に、前記第2のデータリンク層フレームが受信される送信元が、前記制限に違反しないことを検証することを含む、前記施行することと、をさらに含む条項6~9のいずれか1項に記載のコンピュータ実施方法。
【0102】
条項16.
非一時的コンピュータアクセス可能記憶媒体であって、プロセッサ上で実行されると、
仮想化コンピューティングサービスの拡張サーバにおけるネットワーキングマネージャによって、第1のデータリンク層フレームが前記拡張サーバにおいて取得されたことを検出し、
前記ネットワーキングマネージャによって、前記第1のデータリンク層フレームの宛先メディアアクセス制御(MAC)アドレスが前記第1のコンピュートインスタンスにアタッチされた第1のローカルプレミスアクセス仮想ネットワークインターフェースの特定のMACアドレスと一致すると判定することに応答して、前記第1のデータリンク層フレームのコンテンツの少なくとも一部を前記拡張サーバ上で実行している第1のコンピュートインスタンスに配信し、前記第1のローカルプレミスアクセス仮想ネットワークインターフェースに、前記仮想化コンピューティングサービスによって管理されるIPアドレスの範囲からインターネットプロトコル(IP)アドレスが割り当てられない、プログラム命令を記憶する、前記非一時的コンピュータアクセス可能記憶媒体。
【0103】
条項17.
前記プロセッサ上で実行されると、
プログラムによるインターフェースを介して示されるレート制限に少なくとも一部基づいて、前記第1のコンピュートインスタンスからデータリンク層フレームが送信されるレートを抑制する、さらなるプログラム命令を記憶する、条項16に記載の非一時的コンピュータアクセス可能記憶媒体。
【0104】
条項18.
前記プロセッサ上で実行されると、
ブロードキャストデータリンク層フレームが前記拡張サーバで受信されたことを検出することに応答して、前記ネットワーキングマネージャによって、前記ブロードキャストデータリンク層フレームのコンテンツの少なくとも一部を、前記第1のコンピュートインスタンス、及び第2のローカルプレミスアクセス仮想ネットワークインターフェースがプログラムでアタッチされる第2のコンピュートインスタンスを含む、前記拡張サーバの複数のコンピュートインスタンスに配信する、さらなるプログラム命令を記憶する、条項16~17のいずれか1項に記載の非一時的コンピュータアクセス可能記憶媒体。
【0105】
条項19.
前記プロセッサ上で実行されると、
前記第1のローカルプレミスアクセス仮想ネットワークインターフェースを前記第1のコンピュートインスタンスからデタッチすることに続いて、前記ネットワーキングマネージャによって、前記拡張サーバで受信された第2のデータリンク層フレームのコンテンツが前記第1のコンピュートインスタンスに配信されるべきでないと判定し、前記第2のデータリンク層フレームの宛先MACアドレスが前記特定のMACアドレスと一致する、さらなるプログラム命令を記憶する、条項16~18のいずれか1項に記載の非一時的コンピュータアクセス可能記憶媒体。
【0106】
条項20.
前記第1のデータリンク層フレームが、アドレス解決プロトコル(ARP)、ドメインホスト構成プロトコル(DHCP)、または前記プレミスにおけるローカルネットワーク内で実施されるカスタムデータリンク層アプリケーションのうちの1つに従ってフォーマットされたメッセージを含む、条項16~19のいずれか1項に記載の非一時的コンピュータアクセス可能記憶媒体。
【0107】
結論
様々な実施形態は、コンピュータアクセス可能媒体に関する前述の説明に従って実施された命令及び/またはデータの受信、送信、または記憶をさらに含み得る。概して言えば、コンピュータアクセス可能媒体は、磁気媒体または光学媒体、例えば、ディスクまたはDVD/CD-ROM、RAM(例えばSDRAM、DDR、RDRAM、SRAMなど)、ROMなどの揮発性媒体もしくは不揮発性媒体などの記憶媒体またはメモリ媒体と、ネットワーク及び/または無線リンクなどの通信媒体を介して伝送される電気信号、電磁信号、またはデジタル信号などの送信媒体または送信信号と、を含み得る。
【0108】
図に示され本明細書に説明される様々な方法は、方法の例示的実施形態を表す。方法は、ソフトウェア、ハードウェア、またはこれらの組み合わせで実施され得る。方法の順序は、変更されてもよく、様々な要素が、追加、再順序付け、組み合わせ、省略、修正などされてもよい。
【0109】
本開示の利点を有する当業者に明白であるように、様々な修正及び変更が行われてもよい。全てのそのような修正及び変更を含むことを意図しており、したがって、上記説明が限定的な意味ではなく、例示的であると考えるべきである。
【手続補正書】
【提出日】2024-05-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
システムであって、前記システムが、
プロバイダネットワークの仮想化コンピューティングサービスのコントロールプレーンサーバであって、前記プロバイダネットワークのデータセンタに位置する、前記コントロールプレーンサーバと、
前記仮想化コンピューティングサービスの拡張サーバのネットワーキングマネージャであって、前記拡張サーバが、前記プロバイダネットワーク外部のプレミスに位置する、前記ネットワーキングマネージャと、を備え、
前記コントロールプレーンサーバが、
クラウドアクセス仮想ネットワークインターフェースを前記仮想化コンピューティングサービスのコンピュートインスタンスにアタッチさせ、前記コンピュートインスタンスが、前記拡張サーバで実行され、前記クラウドアクセス仮想ネットワークインターフェースに、前記仮想化コンピューティングサービスで構成された隔離仮想ネットワークのIPアドレスの範囲から、第1のインターネットプロトコル(IP)アドレスが割り当てられ、
ローカルプレミスアクセス仮想ネットワークインターフェースを前記コンピュートインスタンスにアタッチさせ、前記ローカルプレミスアクセス仮想ネットワークインターフェースに、前記コントロールプレーンサーバによって特定のメディアアクセス制御(MAC)アドレスが割り当てられ、前記ローカルプレミスアクセス仮想ネットワークインターフェースに、前記隔離仮想ネットワークの前記ネットワークアドレスの範囲からIPアドレスが割り当てられないように構成され、
前記ネットワーキングマネージャが、
前記拡張サーバで受信された第1のデータリンク層フレームが、前記仮想化コンピューティングサービスのサブストレートネットワークの仮想ホストネットワークアドレスのセット内の宛先アドレスを有する第1のIPパケットを含むと少なくとも判定することに応答して、
前記仮想化コンピューティングサービスのカプセル化プロトコルを利用して、前記第1のIPパケットから第2のIPパケットを抽出し、
前記第2のIPパケットの前記宛先アドレスが前記第1のIPアドレスと一致するとの判定に応答して、前記第2のIPパケットを前記コンピュートインスタンスに配信し、
前記拡張サーバで受信された第2のデータリンク層フレームの宛先MACアドレスが、前記特定のMACアドレスと一致するとの判定に応答して、前記第2のデータリンク層フレームが、前記第1のIPパケットの前記宛先アドレスを有するIPパケットを含まず、前記カプセル化プロトコルを利用せずに、前記第2のデータリンク層フレームのコンテンツの少なくとも一部を前記コンピュートインスタンスに配信する、ように構成される、前記システム。
【請求項2】
前記コントロールプレーンサーバが、
プログラムによるインターフェースを介して、前記コンピュートインスタンスを起動するための要求を取得するようにさらに構成され、前記ローカルプレミスアクセス仮想ネットワークインターフェースが、前記コンピュートインスタンスを起動するための前記要求に応答して、作成され、かつ前記コンピュートインスタンスにプログラムでアタッチされる、請求項1に記載のシステム。
【請求項3】
前記コントロールプレーンサーバが、
プログラムによるインターフェースを介して、前記コンピュートインスタンスを終了するための要求を受信したことに応答して、前記特定のMACアドレスが再利用可能であるという指示を記憶し、
前記特定のMACアドレスを別のローカルプレミスアクセス仮想ネットワークインターフェースに割り当て、
前記他のローカルプレミスアクセス仮想ネットワークインターフェースを別のコンピュートインスタンスにプログラムでアタッチするようにさらに構成される、請求項1に記載のシステム。
【請求項4】
前記コントロールプレーンサーバが、
前記コンピュートインスタンスが代わりに起動される前記仮想化コンピューティングサービスのクライアントからプログラムによるインターフェースを介して受信した入力に基づいて、前記特定のMACアドレスの少なくとも一部を判定するようにさらに構成される、請求項1に記載のシステム。
【請求項5】
前記コントロールプレーンサーバが、
プログラムによるインターフェースを介して、(a)前記クラウドアクセス仮想ネットワークインターフェースに関連付けられたネットワークトラフィックに関連するメトリクスの第1のセット、及び(b)前記ローカルプレミスアクセス仮想ネットワークインターフェースに関連付けられたネットワークトラフィックに関連するメトリクスの第2のセットを提供させるようにさらに構成される、請求項1に記載のシステム。
【請求項6】
コンピュータ実施方法であって、
仮想化コンピューティングサービスのコントロールプレーンサーバによって、第1のローカルプレミスアクセス仮想ネットワークインターフェースを前記仮想化コンピューティングサービスの第1のコンピュートインスタンスにアタッチさせることであって、前記コントロールプレーンサーバが、プロバイダネットワークのデータセンタに位置し、前記第1のコンピュートインスタンスが、前記データセンタ外部のプレミスに位置する特定のサーバで実行され、前記第1のローカルプレミスアクセス仮想ネットワークインターフェースに、前記コントロールプレーンサーバによって第1のメディアアクセス制御(MAC)アドレスが割り当てられる、前記アタッチさせることと、
前記特定のサーバのネットワーキングマネージャによって、前記特定のサーバで受信された第1のデータリンク層フレームが前記特定のサーバに割り当てられた特定の宛先アドレスを有する第1のIPパケットを含むと判定することに応答して、
前記仮想化コンピューティングサービスのカプセル化プロトコルを使用して、前記第1のIPパケットから第2のIPパケットを抽出することと、
前記第2のIPパケットを前記第1のコンピュートインスタンスに配信することと、
前記ネットワーキングマネージャによって、前記特定のサーバで受信された第2のデータリンク層フレームの宛先MACアドレスが前記第1のMACアドレスと一致すると判定することに応答して、前記第2のデータリンク層フレームのコンテンツの少なくとも一部を前記第1のコンピュートインスタンスに配信することと、を含む、前記コンピュータ実施方法。
【請求項7】
プログラムによる要求に応答して、前記特定のサーバにおいて前記第1のコンピュートインスタンスを起動する前に、前記コントロールプレーンサーバによって前記第1のローカルプレミスアクセス仮想ネットワークインターフェースを作成することをさらに含む、請求項6に記載のコンピュータ実施方法。
【請求項8】
前記コントロールプレーンサーバにおいてプログラムによるインターフェースを介して、前記第1のローカルプレミスアクセス仮想ネットワークインターフェースに関連付けられたネットワークトラフィックに関して適用されるセキュリティ設定の指示を取得することであって、前記セキュリティ設定が、データリンク層フレームが受け入れられる送信元についての制限を含む、前記取得することと、
前記ネットワーキングマネージャによって、前記セキュリティ設定を施行することであって、前記第2のデータリンク層フレームの前記コンテンツの一部を前記第1のコンピュートインスタンスに配信する前に、前記第2のデータリンク層フレームが受信される送信元が、前記制限に違反しないことを検証することを含む、前記施行することと、をさらに含む請求項6~7のいずれか1項に記載のコンピュータ実施方法。
【請求項9】
プログラムによるインターフェースを介して受信された1つまたは複数の要求に応答して、前記第1のローカルプレミスアクセス仮想ネットワークインターフェースを前記第1のコンピュートインスタンスからデタッチさせること、及び前記第1のローカルプレミスアクセス仮想ネットワークインターフェースを第2のコンピュートインスタンスにアタッチさせることと、
前記第1のローカルプレミスアクセス仮想ネットワークインターフェースが前記第2のコンピュートインスタンスにプログラムでアタッチされた後、前記第2のコンピュートインスタンスが実行されるサーバで受信された第3のデータリンク層フレームの宛先MACアドレスが前記第1のMACアドレスと一致すると判定することに応答して、前記第3のデータリンク層フレームのコンテンツの少なくとも一部を前記第2のコンピュートインスタンスに配信することと、をさらに含む、請求項6~7のいずれか1項に記載のコンピュータ実施方法。
【請求項10】
前記コントロールプレーンサーバによって、第2のローカルプレミスアクセス仮想ネットワークインターフェースを前記第1のコンピュートインスタンスにアタッチさせることであって、前記第2のローカルプレミスアクセス仮想ネットワークインターフェースに第2のMACアドレスが割り当てられ、前記第2のローカルプレミスアクセス仮想ネットワークインターフェースに、前記コントロールプレーンサーバによってインターネットプロトコル(IP)アドレスが割り当てられない、前記アタッチさせることと、
前記ネットワーキングマネージャによって、前記第2のMACアドレスを宛先として有する第3のデータリンク層フレームが前記特定のサーバで受信されたと判定することに応答して、前記第3のデータリンク層フレームのコンテンツの少なくとも一部を前記第1のコンピュートインスタンスに配信することと、をさらに含む、請求項6~
7のいずれか1項に記載のコンピュータ実施方法。
【請求項11】
非一時的コンピュータアクセス可能記憶媒体であって、プロセッサ上で実行されると、
仮想化コンピューティングサービスの拡張サーバにおけるネットワーキングマネージャによって、第1のデータリンク層フレームが前記拡張サーバにおいて取得されたことを検出し、
前記ネットワーキングマネージャによって、前記第1のデータリンク層フレームの宛先メディアアクセス制御(MAC)アドレスが前記第1のコンピュートインスタンスにアタッチされた第1のローカルプレミスアクセス仮想ネットワークインターフェースの特定のMACアドレスと一致すると判定することに応答して、前記第1のデータリンク層フレームのコンテンツの少なくとも一部を前記拡張サーバ上で実行している第1のコンピュートインスタンスに配信し、前記第1のローカルプレミスアクセス仮想ネットワークインターフェースに、前記仮想化コンピューティングサービスによって管理されるIPアドレスの範囲からインターネットプロトコル(IP)アドレスが割り当てられない、プログラム命令を記憶する、前記非一時的コンピュータアクセス可能記憶媒体。
【請求項12】
前記プロセッサ上で実行されると、
プログラムによるインターフェースを介して示されるレート制限に少なくとも一部基づいて、前記第1のコンピュートインスタンスからデータリンク層フレームが送信されるレートを抑制する、さらなるプログラム命令を記憶する、請求項11に記載の非一時的コンピュータアクセス可能記憶媒体。
【請求項13】
前記プロセッサ上で実行されると、
ブロードキャストデータリンク層フレームが前記拡張サーバで受信されたことを検出することに応答して、前記ネットワーキングマネージャによって、前記ブロードキャストデータリンク層フレームのコンテンツの少なくとも一部を、前記第1のコンピュートインスタンス、及び第2のローカルプレミスアクセス仮想ネットワークインターフェースがプログラムでアタッチされる第2のコンピュートインスタンスを含む、前記拡張サーバの複数のコンピュートインスタンスに配信する、さらなるプログラム命令を記憶する、請求項11~12のいずれか1項に記載の非一時的コンピュータアクセス可能記憶媒体。
【請求項14】
前記プロセッサ上で実行されると、
前記第1のローカルプレミスアクセス仮想ネットワークインターフェースを前記第1のコンピュートインスタンスからデタッチすることに続いて、前記ネットワーキングマネージャによって、前記拡張サーバで受信された第2のデータリンク層フレームのコンテンツが前記第1のコンピュートインスタンスに配信されるべきでないと判定し、前記第2のデータリンク層フレームの宛先MACアドレスが前記特定のMACアドレスと一致する、さらなるプログラム命令を記憶する、請求項11~
12のいずれか1項に記載の非一時的コンピュータアクセス可能記憶媒体。
【請求項15】
前記第1のデータリンク層フレームが、アドレス解決プロトコル(ARP)、ドメインホスト構成プロトコル(DHCP)、または前記外部サーバが位置するプレミスにおけるローカルネットワーク内で実施されるカスタムデータリンク層アプリケーションのうちの1つに従ってフォーマットされたメッセージを含む、請求項11~
12のいずれか1項に記載の非一時的コンピュータアクセス可能記憶媒体。
【国際調査報告】