IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン・テクノロジーズ・インコーポレーテッドの特許一覧

特許7073475分離仮想ネットワークのためのプライベートエイリアスエンドポイント
<>
  • 特許-分離仮想ネットワークのためのプライベートエイリアスエンドポイント 図1
  • 特許-分離仮想ネットワークのためのプライベートエイリアスエンドポイント 図2
  • 特許-分離仮想ネットワークのためのプライベートエイリアスエンドポイント 図3a
  • 特許-分離仮想ネットワークのためのプライベートエイリアスエンドポイント 図3b
  • 特許-分離仮想ネットワークのためのプライベートエイリアスエンドポイント 図4
  • 特許-分離仮想ネットワークのためのプライベートエイリアスエンドポイント 図5
  • 特許-分離仮想ネットワークのためのプライベートエイリアスエンドポイント 図6
  • 特許-分離仮想ネットワークのためのプライベートエイリアスエンドポイント 図7
  • 特許-分離仮想ネットワークのためのプライベートエイリアスエンドポイント 図8
  • 特許-分離仮想ネットワークのためのプライベートエイリアスエンドポイント 図9
  • 特許-分離仮想ネットワークのためのプライベートエイリアスエンドポイント 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-13
(45)【発行日】2022-05-23
(54)【発明の名称】分離仮想ネットワークのためのプライベートエイリアスエンドポイント
(51)【国際特許分類】
   H04L 47/125 20220101AFI20220516BHJP
【FI】
H04L47/125
【請求項の数】 15
【外国語出願】
(21)【出願番号】P 2020204851
(22)【出願日】2020-12-10
(62)【分割の表示】P 2019046942の分割
【原出願日】2015-09-18
(65)【公開番号】P2021040352
(43)【公開日】2021-03-11
【審査請求日】2021-01-12
(31)【優先権主張番号】14/491,758
(32)【優先日】2014-09-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】507303550
【氏名又は名称】アマゾン・テクノロジーズ・インコーポレーテッド
(74)【代理人】
【識別番号】100098394
【弁理士】
【氏名又は名称】山川 茂樹
(74)【代理人】
【識別番号】100064621
【弁理士】
【氏名又は名称】山川 政樹
(72)【発明者】
【氏名】ミラー,ケヴィン・クリストファー
(72)【発明者】
【氏名】シーン,リチャード・アレクサンダー
(72)【発明者】
【氏名】ローレンス,ダグラス・スチュワート
(72)【発明者】
【氏名】オウェイス,マルワン・サラー・エル-ディン
(72)【発明者】
【氏名】ディッキンソン,アンドリュー・ブルース
【審査官】野元 久道
(56)【参考文献】
【文献】特表2013-509090(JP,A)
【文献】特開2001-186191(JP,A)
【文献】特開2004-185440(JP,A)
【文献】米国特許出願公開第2015/0381495(US,A1)
【文献】米国特許出願公開第2014/0006638(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 47/00
(57)【特許請求の範囲】
【請求項1】
分離仮想ネットワークから公にアクセス可能なサービスへのトラフィックをルーティングするためのプライベートエンドポイントを確立するステップと、
前記分離仮想ネットワークから前記公にアクセス可能なサービスに向けられたパケットが、前記プライベートエンドポイントに向けられることを示す1つまたは複数のルーティングテーブルエントリを生成するステップと、
前記1つまたは複数のルーティングテーブルエントリに従って、公衆インターネットを利用せずに、前記分離仮想ネットワークで生じるパケットのコンテンツの少なくとも一部を前記公にアクセス可能なサービスに転送するステップと、
を備える、コンピュータに実装される方法。
【請求項2】
仮想化管理構成要素においてカプセル化パケットを準備するステップであって、前記カプセル化パケットのペイロードは、前記分離仮想ネットワークで生じる前記パケットのコンテンツの少なくとも前記一部を構成する、前記準備するステップと、
前記仮想化管理構成要素から、前記分離仮想ネットワークのトラフィックを処理するように構成された第1の仲介装置に、前記カプセル化パケットを送信するステップと、
をさらに含む、請求項1に記載のコンピュータに実装される方法。
【請求項3】
前記分離仮想ネットワークのトラフィックを処理するように構成された仲介装置において、第1のカプセル化パケットから第2のカプセル化パケットを生成するステップであって、前記第1のカプセル化パケットのペイロードは前記分離仮想ネットワークで生じるパケットのコンテンツの少なくとも前記一部を構成し、前記第1のカプセル化パケットが第1のカプセル化プロトコルに従ってフォーマットされ、前記第2のカプセル化パケットが第2のカプセル化プロトコルに従ってフォーマットされる、前記生成するステップと、
前記介装置から、前記第2のカプセル化パケットを、前記第2のカプセル化パケットから前記パケットの前記コンテンツの少なくとも前記一部を抽出するように構成された装置に送信するステップと
を備える、請求項1または2に記載のコンピュータに実装される方法。
【請求項4】
前記プライベートエンドポイントを確立するための1つまたは複数のプログラム要求を取得するステップであって、前記プライベートエンドポイントを確立することは、前記1つまたは複数のプログラム要求への応答である、前記取得するステップ、
をさらに備える、請求項1-3のいずれか1項に記載のコンピュータに実装される方法。
【請求項5】
1つまたは複数のプログラム要求に応答して、前記プライベートエンドポイントを前記公にアクセス可能なサービスに割り当てるステップ、
をさらに備える、請求項1-4のいずれか1項に記載のコンピュータに実装される方法。
【請求項6】
1つまたは複数のプログラム要求に応答して、制御方針を前記プライベートエンドポイントに適用するステップであって、前記制御方針は、前記プライベートエンドポイントを使用してルーティングされた要求に関して、(a)許可された操作タイプ、(b)禁止された操作タイプ、(c)特定の操作タイプが許可される時間間隔、または(d)特定の操作タイプが許可される特定のオブジェクト、のうちの1つまたは複数を示す、
をさらに備える、請求項1-5のいずれか1項に記載のコンピュータに実装される方法。
【請求項7】
他のプライベートエンドポイントを使用するアクセスのための別のサービスを登録するための、1つまたは複数のプログラム要求を取得するステップと、
前記別のサービスを登録する前に、前記別のサービスが前記他のプライベートエンドポイントを介してアクセスするための基準を満たしていることを検証する1つまたは複数の操作を実施するステップと、
をさらに備える、請求項1-6のいずれか1項に記載のコンピュータに実装される方法。
【請求項8】
1つまたは複数のコンピューティングデバイスを備えるシステムであって、
前記1つまたは複数のコンピューティングデバイスは、前記1つまたは複数のコンピューティングデバイス上で、または前記1つまたは複数のコンピューティングデバイス間で実行されると、前記1つまたは複数のコンピューティングデバイスに:
分離仮想ネットワークから公にアクセス可能なサービスへのトラフィックをルーティングするためのプライベートエンドポイントを確立することと、
前記分離仮想ネットワークから前記公にアクセス可能なサービスに向けられたパケットが、前記プライベートエンドポイントに向けられることを示す1つまたは複数のルーティングテーブルエントリを生成することと、
前記1つまたは複数のルーティングテーブルエントリに従って、公衆インターネットを利用せずに、前記分離仮想ネットワークで生じるパケットのコンテンツの少なくとも一部を前記公にアクセス可能なサービスに転送することと、
を行わせる命令を含む、前記システム。
【請求項9】
前記1つまたは複数のコンピューティングデバイスは、前記1つまたは複数のコンピューティングデバイス上で、または前記1つまたは複数のコンピューティングデバイス間で実行されると、前記1つまたは複数のコンピューティングデバイスに:
仮想化管理構成要素においてカプセル化パケットを準備することであって、前記カプセル化パケットのペイロードは、前記分離仮想ネットワークで生じる前記パケットのコンテンツの少なくとも前記一部を構成する、前記準備することと
前記仮想化管理構成要素から、前記分離仮想ネットワークのトラフィックを処理するように構成された第1の仲介装置に、前記カプセル化パケットを送信することと、
を行わせる命令を含む、請求項8に記載のシステム。
【請求項10】
前記1つまたは複数のコンピューティングデバイスは、前記1つまたは複数のコンピューティングデバイス上で、または前記1つまたは複数のコンピューティングデバイス間で実行されると、前記1つまたは複数のコンピューティングデバイスに:
前記分離仮想ネットワークのトラフィックを処理するように構成された仲介装置において、第1のカプセル化パケットから第2のカプセル化パケットを生成することであって、前記第1のカプセル化パケットのペイロードは前記分離仮想ネットワークで生じるパケットのコンテンツの少なくとも一部を構成し、前記第1のカプセル化パケットが1のカプセル化プロトコルに従ってフォーマットされ、前記第2のカプセル化パケットが第2のカプセル化プロトコルに従ってフォーマットされる、前記生成することと、
前記第2のカプセル化パケットを、前記介装置から、前記第2のカプセル化パケットから前記パケットの内容の少なくとも一部を抽出するように構成された装置に送信すること、
を行わせる命令をさらに含む、請求項8または請求項9に記載のシステム。
【請求項11】
前記1つまたは複数のコンピューティングデバイスは、前記1つまたは複数のコンピューティングデバイス上で、または前記1つまたは複数のコンピューティングデバイス間で実行されると、前記1つまたは複数のコンピューティングデバイスに:
プライベートエンドポイントを確立するための1つまたは複数のプログラム要求を取得することであって、前記プライベートエンドポイントは、前記1つまたは複数のプログラム要求に応じて確立される、前記取得すること
を行わせる命令をさらに含む、請求項8-10のいずれか1項に記載のシステム。
【請求項12】
前記1つまたは複数のコンピューティングデバイスは、前記1つまたは複数のコンピューティングデバイス上で、または前記1つまたは複数のコンピューティングデバイス間で実行されると、前記1つまたは複数のコンピューティングデバイスに:
1つまたは複数のプログラム要求に応じて、プライベートエンドポイントを公的にアクセス可能なサービスに割り当てること、
を行わせる命令をさらに含む、請求項8-11のいずれか1項に記載のシステム。
【請求項13】
前記1つまたは複数のコンピューティングデバイスは、前記1つまたは複数のコンピューティングデバイス上で、または前記1つまたは複数のコンピューティングデバイス間で実行されると、前記1つまたは複数のコンピューティングデバイスに:
1つまたは複数のプログラム要求に応答して、プライベートエンドポイントに制御方針を適用することであって、前記制御方針は、プライベートエンドポイントを使用してルーティングされた要求に関して、(a)許可された操作タイプ、(b)禁止された操作タイプ、(c)特定の操作タイプが許可される時間間隔、または(d)特定の操作タイプが許可される特定のオブジェクト、のうちの1つまたは複数を示す、前記適用すること、
を行わせる命令をさらに含む、請求項8-12のいずれか1項に記載のシステム。
【請求項14】
前記1つまたは複数のコンピューティングデバイスは、前記1つまたは複数のコンピューティングデバイス上で、または前記1つまたは複数のコンピューティングデバイス間で実行されると、前記1つまたは複数のコンピューティングデバイスに:
前記分離仮想ネットワークで生じるパケットのコンテンツの一部を、トンネリングプロトコルを使用して、前記公にアクセス可能なサービスに転送すること、
を行わせる命令をさらに含む、請求項8-13のいずれか1項に記載のシステム。
【請求項15】
プログラム命令を格納した1つまたは複数のコンピュータアクセス可能な記憶媒体であって、前記プログラム命令は、1つまたは複数のプロセッサ上で実行されると、前記1つまたは複数のプロセッサに:
分離仮想ネットワークから公にアクセス可能なサービスへのトラフィックをルーティングするためのプライベートエンドポイントを確立することと、
前記分離仮想ネットワークから前記公にアクセス可能なサービスに向けられたパケットが、前記プライベートエンドポイントに向けられることを示す1つまたは複数のルーティングテーブルエントリを生成することと、
前記1つまたは複数のルーティングテーブルエントリに従って、公衆インターネットを利用せずに、前記分離仮想ネットワークで生じるパケットのコンテンツの少なくとも一部を前記公にアクセス可能なサービスに転送することと、
を実行させる、コンピュータアクセス可能な記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
多くの企業及び他の組織は、多数のコンピューティングシステムをその動作をサポートするために相互接続するコンピュータネットワークを操作し、例えばコンピューティングシステムは(例えばローカルネットワークの一部として)同一場所に配置されているか、または代わりに(例えば、1つまたは複数のプライベート中間ネットワークもしくはパブリック中間ネットワークを介して接続される)複数の異なる地理的な位置に位置している。例えば、単一の組織によって及び単一の組織に代わって運営されるプライベートデータセンタ、及びカスタマにコンピューティングリソースを提供するための事業としてエンティティによって運営されるパブリックデータセンタ等、かなりの数の相互接続されたコンピューティングシステムを収容するデータセンタが一般的になっている。
【0002】
いくつかのプロバイダは、プロバイダのカスタマが係るデータセンタに位置するリソースを使用し、論理的に分離されたネットワークを作成することを許している。例えば、カスタマはプロバイダによって管理されるホストで実装される仮想化されたサーバ及び/または他のリソースのいくつかのセットを割り当てられてよく、カスタマはリソースのネットワーキング構成に関して相当な柔軟性を与えられてよい。カスタマは、例えばサーバに対するIP(インターネットプロトコル)アドレスを選択するか、好みのサブネットを定義する等を行ってよい。プロバイダのリソースを使用し、実装される係るカスタマ構成可能なネットワークは、「分離仮想ネットワーク」または「仮想プライベートクラウド」を含むさまざまな名前で呼ばれることがある。いくつかの状況では、カスタマは、例えば分離仮想ネットワークの外のリソースに関してアドレスの一意性について懸念する必要なく、分離仮想ネットワークの中のいくつかのリソースにプライベートIPアドレス(つまり、分離仮想ネットワークの外で可視ではないまたは宣伝されないアドレス)を割り当ててよい。プロバイダは係る環境での高レベルのセキュリティ、ネットワーク分離、及び可用性をサポートし、カスタマが分離仮想ネットワークでビジネスに不可欠なアプリケーションを実行し、カスタマによって所有される構内で達成可能なサービスの質に類似する(またはさらに高い)サービスの質を経験できるようにする。
【0003】
分離仮想ネットワークをサポートする少なくともいくつかのプロバイダは、ストレージサービス、データベースサービス等のさまざまな他のサービスを実装してもよい。これらの他のサービスのいくつかは、公衆インターネットからアクセス可能となるように設計されてよい‐例えば、公に宣伝されたIPアドレスまたは対応するURI(ユニフォームリソースアイデンティファイア)のセットが、クライアントが係るサービスのリソースにアクセスするためにセットアップされてよい。少なくともいくつかの環境では、潜在的にセキュリティを弱めずに、または相当なコストを生じさせずにどちらかでこのようにすることは、きわめて安全な分離仮想ネットワークの中から係る公に宣伝されたサービスにアクセスすることを希望するカスタマにとって容易ではないことがある。
【0004】
実施形態はいくつかの実施形態及び例示的な図面について例として本明細書に説明されているが、当業者は、実施形態が説明される実施形態または図面に制限されないことを認識する。図面及び図面に対する発明を実施するための形態が開示される特定な形式に実施形態を制限することを目的するのではなく、逆に、意図は添付される特許請求の範囲により定められる精神及び範囲に入るすべての変更形態、同等物、及び代替策をカバーすることであることが理解されるべきである。本明細書で使用される見出しは構成上の目的のためだけであり、本明細書または特許請求の範囲の範囲を制限するために使用されることを意図されていない。本願を通して使用されるように、単語「may(~してよい)」は、強制的な意味(つまり、しなければならないを意味する)よりもむしろ、許可の意味(つ
まり、する可能性を有することを意味する)で使用される。同様に、単語「include(含む)」、「including(含んだ)」、及び「includes(含む)」は、を含むがこれに限定されるものではないことを意味する。
【図面の簡単な説明】
【0005】
図1】少なくともいくつかの実施形態に従って、プライベートエイリアスエンドポイント(PAE)が、プロバイダネットワークの分離仮想ネットワーク(IVN)と1つまたは複数の公にアクセス可能なサービスとの間のネットワークトラフィックのルーティングを、IVNでパブリックIPアドレスを割り当てることなく、及びカスタマネットワークを横断することなく可能にするために確立されてよい、実施例のシステム環境を示す図である。
図2】少なくともいくつかの実施形態に従って、分離仮想ネットワークの計算インスタンスで生じるパケットを、公にアクセス可能なサービスの宛先に向けることに関与する実施例の構成要素を示す図である。
図3a】少なくともいくつかの実施形態に従って、分離仮想ネットワークの計算インスタンスで生じるパケットを処理してよい代替のサービス側構成要素のそれぞれの実施例を示す図である。
図3b】少なくともいくつかの実施形態に従って、分離仮想ネットワークの計算インスタンスで生じるパケットを処理してよい代替のサービス側構成要素のそれぞれの実施例を示す図である。
図4】少なくともいくつかの実施形態に従って、計算インスタンスで生じるベースラインパケットのためのカプセル化フォーマットの実施例を示す図である。
図5】少なくともいくつかの実施形態に従って、PAE構成要求及びPAE構成応答の実施例を示す図である。
図6】少なくともいくつかの実施形態に従って、PAE構成データベースコンテンツの実施例を示す図である。
図7】少なくともいくつかの実施形態に従って、同じプライベートIPアドレスを有する計算インスタンスからサービスで受信される要求を区別するためのIVN識別子及びPAE識別子の使用の実施例を示す図である。
図8】少なくともいくつかの実施形態に従って、PAEを構成するために実行されてよい操作の態様を示す流れ図である。
図9】少なくともいくつかの実施形態に従って、計算インスタンスから公にアクセス可能なサービスにパケットを送信するためのトンネリングプロトコルの使用を示す流れ図である。
図10】少なくともいくつかの実施形態で使用されてよい実施例のコンピューティング装置を示すブロック図である。
【発明を実施するための形態】
【0006】
プロバイダネットワークでプライベートエイリアスエンドポイント(PAE)をサポートするための方法及び装置の多様な実施形態が説明される。インターネット及び/または他のネットワークを介してクライアントの分散されたセットにアクセス可能な(多様なタイプのマルチテナント及び/またはシングルテナントのクラウドベースのコンピューティングサービスもしくはストレージサービス等の)1つまたは複数のサービスを提供するために企業または公共部門の組織等のエンティティによってセットアップされるネットワークは、本明細書ではプロバイダネットワークと称されることがある。また、少なくともいくつかのプロバイダネットワークは「パブリッククラウド」環境と呼ばれることもある。所与のプロバイダネットワークは、プロバイダによって提供されるインフラ及びサービスを実装する、構成する、及び分散するために必要とされる、物理コンピュータサーバ及び/または仮想化されたコンピュータサーバ、ストレージデバイス、ネットワーキング装置等の集合体等の多様なリソースプールをホストする多数のデータセンタを含んでよい。少
なくともいくつかの実施形態では、プロバイダネットワークで実装される仮想コンピューティングサービスは、クライアントがクライアントのアプリケーションのために(本明細書では「コンピュータインスタンス」または単に「インスタンス」と呼ばれることがある)1台または複数のゲスト仮想機械を活用できるようにしてよく、1つまたは複数の計算インスタンスは大きな一群のインスタンスホストの内のインスタンスホストで実行されている。大きいプロバイダネットワークの中で、いくつかのデータセンタは他とは異なる都市、州、または国に位置してよく、いくつかの実施形態では、所与のアプリケーションに配分されるリソースは、所望されるレベルの可用性、障害耐性、及び性能を達成するためにいくつかの係る場所の間で分散されてよい。
【0007】
少なくともいくつかの実施形態では、プロバイダネットワークは、カスタマがプロバイダのデータセンタでの「分離仮想ネットワーク」(IVN)の確立を要求できるようにしてよい。(いくつかの環境では「仮想プライベートクラウド」つまりVPCと呼ばれることもある)IVNは、カスタマがネットワーキング構成に関して相当な制御を与えられる、プロバイダネットワークの論理的に分離された部分でコンピューティングリソース及び/または他のリソースの集合体を含んでよい。いくつかの実施形態では、例えば、カスタマは、多様な計算インスタンス等のIVNリソースのために使用されるIP(インターネットプロトコル)アドレスの範囲を選択し、IVNの中でのサブネットの作成、及びIVNのためのルートテーブル等の構成を管理してよい。いくつかの実施形態でのIVNの中のデバイスの少なくともいくつかの場合、IPアドレスは少なくともデフォルトによってIVNの外では可視ではないことがある。BGB(ボーダゲートウェイプロトコル)または他の類似したプロトコルを介して公衆インターネット上で直接的にまたは間接的に宣伝された結果として公衆インターネットからアクセス可能である「パブリック」IPアドレスとは対照的に、係るIPアドレスは本明細書では「プライベート」IPアドレスと呼ばれることがある。プライベートアドレスの使用は、クライアントが例えばインターネットから発する潜在的な攻撃からクライアントのアプリケーションを保護できるようにしてよい。IVNサポートは、いくつかの実施形態ではプロバイダネットワークのより一般的な仮想コンピューティングサービス(VCS)の特徴の1つであってよい。例えば、VCSは、IVNの一部ではなく、(インスタンスが配分されるクライアントよりもむしろ)VCSが、必要とされるネットワーキング構成の多くまたはすべてを実行するコンピュータインスタンスの予約または配分をサポートしてもよい。
【0008】
1つまたは複数のストレージサービスまたはデータベースサービス等のプロバイダネットワークで実装されるサービスの少なくともいくつかは公にアクセス可能であってよい。すなわち、サービスにアクセスするために使用できるIPアドレス(または対応するホスト名/URI)のなんらかのセットは公に宣伝されることがあり、したがってクライアントは、インターネットに対する接続性を有するデバイスから係るサービスに対するサービス要求を提出できてよい。例えば、「SvcX」と名付けられるストレージサービスは、[https://SvcX.<providername>.com]等の公に宣伝されたURIを介してクライアント
によってアクセス可能であってよく、係るサーバのIPアドレスは1つまたは複数のドメインネームサービス(DNS)サーバから入手されてよい。
【0009】
クライアントの代わりにIVNの中で実行されるいくつかのアプリケーションは、係る公にアクセス可能なサービスへのアクセスを必要とすることがある。例えば、IVN内のクライアントの計算インスタンスで実行中のe-コマースアプリケーションは、データを読み取るまたはプロバイダネットワークの公にアクセス可能なストレージサービスに書き込む必要がある場合がある。公にアクセス可能なサービスに対する接続性を確立するある方法は、IVNの中のリソースに1つまたは複数のパブリックIPアドレスを割り当てること(及び/またはIVNにインターネットでアクセス可能なゲートウェイをセットアップすること)を伴ってよく、このことはIVNクライアントの分離要件及びセキュリティ
要件にいくぶん反する慣行である場合がある。IVNで実行中の計算インスタンスと公にアクセス可能なサービスのリソースとの間で接続性を確立する別の方法は、IVNとカスタマネットワークとの間でVPN(仮想プライベートネットワーク)を最初に確立し、次にカスタマネットワークを介してIVNから公にアクセス可能なサービスに間接的にトラフィックを送信することであってよい。ただし、少なくともいくつかの環境では、係るVPNをベースにした接続性はきわめて高価であり、トラフィックに使用される間接的な経路は必ずしも(エンドツーエンド待ち時間に関して)クライアントアプリケーションの要件を満たすほど十分早くない可能性がある。
【0010】
したがって、IVNリソースと少なくともいくつかの公にアクセス可能なサービスとの間での効率的な接続性を容易にするために、いくつかの実施形態では、プロバイダネットワーク事業者はIVNのためのプライベートエイリアスエンドポイントの確立をサポートしてよい。名前が暗示するように、PAEは公にアクセス可能なサービスを表す「仮想」エンドポイントとしての機能を果たしてよく、PAEは、その使用がIVNの中の任意のエンティティへのパブリックネットワークアドレスの割当てを必要としない「個人用」であってよい。また、PAEは、いくつかの環境では「仮想プライベートエンドポイント」と呼ばれることもある。少なくともいくつかの実施形態では、PAEは、クライアントの代わりにセットアップされたIVNの中で実行中のアプリケーションが、例えば、公衆インターネットにIVNをさらす必要なく、及びプロバイダネットワークの外のネットワークリンクを横断することなくプロバイダネットワークの中の他の場所に実装される公にアクセス可能なサービスにサービス要求を送信(及び公にアクセス可能なサービスから応答を受信)できるようにしてよい。トンネリングプロトコルは、公にアクセス可能なサービスが実装されるプロバイダネットワークの部分への伝送のためのIVNで生じるトラフィックのパケットをカプセル化するために、以下に説明されるように使用されてよい。IVNで実行中のクライアントアプリケーションも、クライアントサービス要求を実装する公にアクセス可能なサービスのリソースも、多様な実施形態で必ずしもトンネリングプロトコルの使用を認識させられる必要はない。すなわち、係る実施形態では、クライアントアプリケーションに対する、またはサービスリソースでクライアント要求にサービスを提供することに関与する論理に対する変更は必要とされないことがある。
【0011】
少なくとも1つの実施形態では、PAEの確立は、クライアントによって実行されるIVNネットワーキング構成の他の態様に通常必要とされるステップの種類に使用しやすさにおいて非常に類似するIVN構成のいくつかの追加のステップをクライアントが実行することを伴ってよい。クライアントは、例えば、プログラム管理/処理インタフェース(例えば、コンソールまたはアプリケーションプログラミングインタフェース(API))を介してIVNのためのPAEの作成を要求し、次いでユーザフレンドリなサービス名によって識別される選択されたサービスにPAEを関連付けてよい。クライアントは、次いで、宛先がいくつかの実施形態では公にアクセス可能なサービスの任意のノードまたはリソースであるトラフィックのターゲットとして、例えばIVNの1つまたは複数のサブネットのためにセットアップされたルートテーブルでPAEを指定してよい。いくつかの実施態様では、(サービス名「Svc1」のような)一般的なエイリアスはルートテーブルの宛先としてサービスを示すために使用されてよく、PAEに割り当てられた識別子はターゲットとして示されてよい。係る実施態様では、クライアントは、宛先を指定するときにサービスのいずれのIPアドレスを特定する必要はないことがある。少なくともいくつかの実施形態では、クライアントは、例えばIVNの外で実装されるいくつかの異なるサービスへのアクセスを可能にするために、所与のIVNでいくつかの異なるPAEをセットアップしてよい。
【0012】
PAEが特定のIVNからのサービス向けのトラフィックのターゲットとして構成され、示された後、IVNの計算インスタンス(計算インスタンスがプライベートIPアドレ
スを割り当てられ、パブリックIPアドレスは割り当てられない)で実行中のクライアントアプリケーションはサービスに要求を、係る要求がインターネットで接続されるデバイスから発行されるのと同様に発行してよい。経てば、DNS要求はサービスのパブリックIPアドレスを入手するために計算インスタンスから(例えばプロバイダネットワークのDNSサーバに)発行されてよい。アプリケーションは、サービスのパブリックIPアドレスを宛先として、インスタンスのプライベートIPアドレスをソースとする1つまたは複数のベースラインパケットに、オペレーティングシステムまたは計算インスタンスの他の構成要素によって変換されてよいウェブサービスAPI(またはサービスによってサポートされる任意の類似するプログラムインタフェース)を使用し、サービス要求を提出してよい。
【0013】
上述されたように、計算インスタンスはインスタンスホストで実行中のゲスト仮想機械として実装されてよい。少なくともいくつかの実施形態では、インスタンスホストは、ハイパーバイザ及び/または(多くの場合「dom-0」つまりドメインゼロインスタンスと称される)特権をもつオペレーティングシステムインスタンス等、仮想化管理ソフトウェアスタックの多様な構成要素を含んでよい。(本明細書ではVMCと呼ばれることがある)係る仮想化管理構成要素は、ゲスト仮想機械で発行されるリソース要求を、ハードウェアリソースで実行される物理的な操作に変換することを担ってよい。一実施形態では、インスタンスホストで実行中のVMCは計算インスタンスから発行されるベースラインパケットを妨害してよく、VMCは、ベースラインパケットが、インスタンス化されたホストがアタッチされる物理ネットワーク上での伝送のためにどのようにして変換される必要があるのか(または変換されるかどうか)を判断することを担ってよい。いくつかの実施態様では、VMCは、サービスに向けられたトラフィックのためのターゲットとしてのPAEの選択を示すIVNメタデータレコードにアクセスできてよく、サービスのパブリックIPアドレスのリストにアクセスできてもよい。したがって、VMCは、妨害されたベースラインパケットがPAEと関連付けられたサービスに送信されると判断できてよい。
【0014】
少なくともいくつかの実施形態では、(IVNが構成される仮想コンピューティングサービス、及びPAEに割り当てられた宛先サービスを含んだ)多様なサービスは、プロバイダネットワークのそれぞれの論理的に別個の部分に割り当てられてよい。所与のサービスの対の間のトラフィックは、ソースサービスから宛先サービスに到達するために(ボーダネットワークと呼ばれることもある)ブリッジネットワークを横断する必要がある場合がある。また、係るブリッジネットワークは、まさにソースサービスネットワーク及び宛先サービスネットワークがプロバイダネットワークのサブネットと見なされてよいのと同様に、プロバイダネットワークの特殊目的サブネットと見なされてもよい。名前が暗示するように、ブリッジネットワークは、プロバイダネットワークの多様な論理的に別個の部分の間の中間ネットワーク(及び、いくつかの場合には、プロバイダネットワークと外部ネットワークとの間の手段)として機能してよい。VMCは、宛先サービスに達するために横断されなければならないブリッジネットワークへ直接アクセスできないことがあり、したがって係るブリッジネットワークへパケットを送ることができる手段の使用を必要とすることがある。その結果、少なくともいくつかの実施形態では、VMCは、例えば、パケットの第1のカプセル化されたバージョンでトンネリング手段にベースラインパケットのコンテンツを送達してよい。この第1のカプセル化パケットは、次いでトンネリング手段によって選択されたトンネリングプロトコルに従って変換されてよく、パケットの第2のカプセル化バージョンはブリッジネットワーク経路またはトンネルを介して宛先サービスのノードに送信されてよい。さまざまな異なるカプセル化手法のいずれかが、多様な実施形態でのカプセル化のどちらの段階にも使用されてよい。カプセル化技法のいくつかの特定の例は以下にさらに詳細に説明される。
【0015】
一実施形態では、トンネリング手段によって追加される1つまたは複数のヘッダはソー
スIVNの符号化もしくは表示及び/または宛先サービスと関連付けられたPAEを含んでよい。一実施態様では、例えば、トンネリングプロトコルは、IPv6アドレスビットのいくつかがIVN識別子及び/またはPAE識別子を符号化するために使用されるIPv6互換パケットフォーマットの中でのIPv4ベースラインパケットのカプセル化を伴ってよい。宛先サービスでは、(例えば、サービス要求、及びソース計算インスタンスのプライベートIPアドレスを含んだ)ベースラインパケットのコンテンツが、IVN及び/またはPAEの識別子とともにカプセル化されたバージョンから抽出されてよい。いくつかの実施形態では、IVN識別子またはPAEの識別子は、以下にさらに詳細に説明されるように、同じプライベートIPアドレスが割り当てられた可能性のある(異なるIVNでの)ソース計算インスタンスを区別する際に役立つことがある。ベースラインパケット本体に示される要求された操作が実行されてよく、応答は、例えば逆方向での類似したタイプのトンネリング技法及びカプセル化技法を使用し、ソースインスタンスでの要求側アプリケーションに返されてよい。
【0016】
クライアントは、例えば上述された管理プログラムインタフェースの種類を使用し、少なくともいくつかの実施形態でPAEにアクセス制御方針を適用できてよい。アクセス制御方針は、例えば、許可される(または禁止される)操作またはサービス要求のタイプ、操作が許可される/禁止されるオブジェクト(例えば、ストレージ関連サービスでのファイルまたはディレクトリ)、方針が適用する期間(例えば、作業日の特定の時間)、方針が適用する本人(例えば、特定のユーザーまたはグループ)等を示してよい。係る方針がPAEに割り当てられるいくつかの実施形態では、サービスでのカプセル化パケットから抽出される要求は、要求が適用可能な方針に違反していないことを確実にするために確認されてよい。他の実施形態では、潜在的な方針違反は、宛先サービスで確認される代わりに、または宛先サービスで確認されることに加えてIVN側で確認されてよい‐例えば、VMCは、要求が使用されるPAEと関連付けられた方針に違反すると判断される場合、要求の送信をアボートしてよい。
【0017】
一実施形態では、PAEは、IVNと、プロバイダネットワークによって実装されるサービスとの間で単にパケットを送るためだけではなく、IVNと、プロバイダネットワークの他の場所で実装されるサードパーティサービスとの間でパケットを送るためにも使用されてよい。係る実施形態では、サードパーティ(例えば、プロバイダネットワークの仮想コンピューティングサービスの別のカスタマ)は、プロバイダネットワークリソースのなんらかのセットを使用し、サービスをセットアップし、サービスにアクセスできるパブリックIPアドレスを宣伝してよい。サードパーティプロバイダは、例えばプロバイダネットワークの構成マネージャに要求を提出することによってPAEアクセスのためにサードパーティプロバイダのサービスを登録してよい。構成マネージャは、候補サードパーティサービスが、PAEがターゲットとして示されるルートを介するアクセスをサポートできることを検証してよい。例えば、構成マネージャは、いくつかの実施形態では、サードパーティサービスに(インテリジェントロードバランサ等の)トンネリングプロトコルを実装できるフロントエンドノードの割当てを開始してよい。他の実施形態では、サードパーティサービス事業者がトンネリングプロトコルを実装することを目的とするノードをすでにセットアップしている場合、係るノードの能力が検証されてよい。サードパーティサービスが登録され、トンネリングプロトコルに従ってパケットを抽出し(カプセル開放を行い)、カプセル化できるフロントエンドノードがセットアップされた後に、クライアントはサードパーティサービスにアクセスするようにクライアントのIVNのPAEを構成してよい。例えば、サードパーティサービスでの名前またはエイリアス(例えば、「ThirdPartySvc1」)は、プログラムインタフェースを使用してクライアントによってPAEと関連付けることができるサービス宛先オプションのリスト(例えば、PAEサポートのためにすでに構成されている公にアクセス可能なサービスを表す「StorageSvc1」、「DBSvc1」等)に追加されてよい。
【0018】
例のシステム環境
図1は、少なくともいくつかの実施形態に従って、プライベートエイリアスエンドポイント(PAE)がプロバイダネットワークの分離仮想ネットワーク(IVN)と1つまたは複数の公にアクセス可能なサービスとの間のネットワークトラフィックのルーティングを、IVNでのパブリックIPアドレスを割り当てることなく、及びカスタマネットワークを横断することなく可能にするために確立されてよい、実施例のシステム環境を示す。示されるように、システム100は、仮想コンピューティングサービス(VCS)及び公にアクセス可能なサービスSvc1(つまり、そのクライアントが公に宣伝されたIPアドレスまたはURIを介して要求を提出できるようにするサービス)を含んだ複数のサービスが実装されるプロバイダネットワーク102を含む。公にアクセス可能なサービスSvc1は、例えば任意の大きさに作られたストレージオブジェクトへウェブサービスベースのアクセスを提供するストレージサービス、非リレーショナルデータベースサービス、リレーショナルデータベースサービス、通知サービス、メッセージ待ち行列サービス、またはさまざまな他のタイプのサービスのいずれかを含んでよい。これらのサービスのそれぞれは、例えば独自の管理層または制御プレーンと、プロバイダネットワークの論理的に別々の部分を集合的に形成する、複数のホスト、ストレージデバイス、及び他のコンピューティング設備を含んでよい。例えば図1では、VCSのリソースはVCSネットワーク104の中に位置する。一方、Svc1のリソースはSvc1ネットワーク170の中に位置する。
【0019】
VCSネットワーク104の中で、IVN110A及びIVN110B等のいくつかの異なる分離仮想ネットワーク(IVN)110が多様なクライアントの代わりに確立されてよい。その代わりに所与のIVN110が確立されるクライアントは、IVNのネットワーキング構成に関して相当な柔軟性を与えられてよい‐例えば、クライアントは、IPアドレスがIVNの外での使用で他と重複しないことを確実にする必要なく多様な計算インスタンス112に所望されるIPアドレスを割り当て、サブネットをセットアップし、ルートテーブルをポピュレートする等してよい。示されるように、各IVNは、IVN110AのIH 130A及び130B、並びにIVM110BのIH 130M及び130N等の複数のインスタンスホスト(IH)130を含んでよい。1つまたは複数の計算インスタンス(CI)112は、IH 130AでのCH 112A、IH 130BでのCI 112B、IH 130MでのCI 112K、及びIH 130NでのCI 112L等の各IH 130でインスタンス化されてよい。計算インスタンスのそれぞれは1つまたは複数のクライアントアプリケーションまたはアプリケーションサブコンポーネントに使用されてよい。
【0020】
図1に示される実施形態では、サービスSvc1は少なくとも2つの層のリソース、つまり入信サービス要求を受信し、アウトバウンドサービス応答を送信するように構成される(ロードバランサ及び/または要求ルータ等の)フロントエンド(FE)ノード171、並びにサービス要求を遂行するためのサービスの論理が実装されるバックエンド(BE)ノード173を含む。FEノード171A、171B、及び171C等のFEノードの少なくともいくつかはそれらに割り当てられたパブリックIPアドレスを有し、このようにして例えば公衆インターネット139のデバイスに、及びネットワーク185等のカスタマ所有のネットワークでインターネットに接続されたデバイスにSvc1を公にアクセス可能にしてよい。
【0021】
示される実施形態では、例えばSvc1関係のパケットが(公衆インターネットから直接的にアクセスできないプライベートIPアドレスを有する)CI110Aと、Svc1ネットワーク170との間で、CI110Aがそれに割り当てられるパブリックIPアドレスを有する必要なく、及びトラフィックがカスタマ所有ネットワーク185または公衆
インターネット139のリンクを通過することを必要とせずに流れることができるようにするために、プライベートエイリアスエンドポイント(PAE)150がIVN110Aで確立されている。以下にさらに詳細に説明されるように、IVN110Aのためのルートテーブルエントリは、(CI110Aが構成されるサブネットを含んだ)IVN110Aの1つまたは複数のサブネットで生じ、Svc1に向かうことになっているトラフィックがPAE150をターゲットとする必要があることを示すためにいくつかの実施形態でセットアップされてよい。Svc1のパブリックIPアドレスのリスト等の他のメタデータだけではなくこのルートテーブルエントリも、少なくともいくつかの実施形態でIVN110Aのインスタンスホスト130のそれぞれで実行中の仮想化管理構成要素(VMC)(例えば、ハイパーバイザ構成要素)が利用できてよい。IVN構成マネージャ106は、クライアントがPAEの作成、PAEとの特定のサービスの関連付け、IVNのためのルートテーブルエントリの作成または修正等を要求できるようにする(アプリケーションプログラミングインタフェース(API)、ウェブベースコンソール、コマンドラインツール、またはグラフィックユーザーインタフェース等の)1つまたは複数のプログラムインタフェースを実装してよい。
【0022】
インスタンスホスト130AでのVMCは、CI112Aで生成され、Svc1に向けられたサービス要求を含むアウトバウンドベースラインネットワークパケットを妨害してよい。(いくつかのサービス要求及びその関連付けられた要求パラメータが複数のパケットを必要とする可能性があることに留意されたい。提示を簡略にするために、サービス要求は以下の説明ではベースラインパケットに収まると仮定される。係るサービス要求の本明細書に説明されるトンネリング技法は、多様な実施形態でパケット境界を渡るサービス要求に使用されてもよい。サービス要求は、HTTP(ハイパーテキスト転送プロトコル)、HTTPs(セキュアHTTP)、XML(拡張マークアップ言語)等のSvc1によってサポートされている任意の適切なインタフェースに従ってフォーマットされてよい。ベースラインパケットはソースとしてCIのプライベートIPアドレスを、宛先としてSvc1のパブリックIPアドレスを示してよい。VMCは、示される実施形態では第1のカプセル化プロトコルに従ってベースラインパケットから第1のカプセル化パケットを生成してよい。第1のカプセル化パケットの中で、いくつかの実施態様では、ベースラインパケットは本体に含まれてよい。一方、第1のカプセル化プロトコルの1つまたは複数の追加のヘッダは、パケットがPAEトラフィックを含む旨の表示を(他の情報の中で)含んでよい。第1のカプセル化パケットは、PAEトラフィック162のための破線矢印によって示されるように、インスタンスホスト112Aから、示されている実施形態では一群のトンネリング手段140の内のTI 142A等のトンネリング手段(TI)に送信されてよい。(TI142A、142B等のTIとしてセットアップされる複数のコンピューティング装置を含んでよいTI群140は、VCSネットワーク104と、Svc1のネットワーク170を含んだ、プロバイダネットワークのさまざまな他の論理的に分けられたネットワークとの間でトラフィックが流れることができるように確立された可能性がある。トンネリング手段は、いくつかの実施形態ではネットワーク関係の処理のために最適化された特殊目的コンピューティング装置を含んでよい。他の実施形態では、トンネリング手段は汎用コンピューティング装置での実行のプロセスまたはスレッドを含んでよい。
【0023】
少なくともいくつかの実施形態では、第1のカプセル化パケットを受信すると、TI142AはVMCによって追加されたヘッダだけではなくベースラインパケットのコンテンツも抽出してよい。一実施形態では、TI142Aはそれぞれベースラインパケットの送信元アドレス及び宛先アドレスとは異なる送信元アドレス及び宛先アドレスを生成するために特定のトンネリングプロトコルと関連付けられたマッピングデータベースを活用してよい。例えば、一実施態様では、ベースラインパケットの送信元IPアドレス及び宛先IPアドレスは、IPv4(インターネットプロトコルのバージョン4)に従ってフォーマ
ットされてよく、TI142Aはそれらを、内部ブリッジネットワーク160を介してSvc1ネットワーク170に送信される第2のカプセル化パケットのためのより長いIPv6(インターネットプロトコルバージョン6)アドレスで置き換えてよい。内部ブリッジネットワーク160は、例えば仮想コンピューティングサービスから公にアクセス可能なサービスに向けられるトラフィック用等、プロバイダネットワークでの相互サービストラフィック用の経路として使用されてよい。いくつかの実施形態では、内部ブリッジネットワーク160はボーダネットワークと呼ばれてよく、公衆インターネットと仮想コンピューティングサービスとの間を流れるトラフィックに使用されてもよい。
【0024】
一実施態様では、TI142Aで、ベースラインパケットの送信元IPアドレスは、アウトバウンド第2カプセル化パケットで使用される対応する送信元アドレスを探すためにマッピングデータベースでキーとして使用されてよい。同様に、ベースラインパケットの宛先IPアドレスは、係る実施態様でアウトバウンド第2カプセル化パケットで使用される対応する宛先アドレスを探すためにマッピングデータベースでキーとして使用されてよい。少なくともいくつかの実施形態では、第2のカプセル化パケットの送信元アドレス及び宛先アドレスにより多くの数のビットを使用することによって、TI142AはソースIVN(例えば、CI112Aで生じるパケットの場合IVN110A)の識別子、及び第2のカプセル化パケットでのPAE(例えばPAE150)の識別子の符号化を含むことができてよい。いくつかの実施形態では、PAE及び/またはIVNの識別子は第1のカプセル化パケットでVMCによって追加されたヘッダに含まれてよく、TI142は係るヘッダから識別子を入手してよい。他の実施形態では、マッピングデータベースから、への、入手される送信元アドレス及び宛先アドレスはIVN及び/またはPAEの符号化された識別子を含んでよい。
【0025】
TI142Aで生成された第2のカプセル化パケットは、ブリッジネットワーク160を介して宛先サービスSvc1のフロントエンドノード171(例えば171A)に送信されてよい。フロントエンドノード171は、ルーティングのために使用されるソースIVN(例えばIVN 110A)の識別子及び/またはPAE(例えばPAE150)の識別子だけではなく、(ソースCIプライベートIPアドレスを含んだ)ベースラインパケットのコンテンツも抽出するためにトンネリングプロトコルに従って脱カプセル化を実行できてよい。少なくともいくつかの実施形態では、PAE及び/またはソースIVNの識別によって、Svc1ノードは、以下にさらに詳細に説明されるように、異なる計算インスタンスからのサービス要求と同じソースプライベートIPアドレスを区別できるようになる。ベースラインパケットに示されるサービス要求は、処理のためにバックエンドノード173(例えば173A)に渡されてよい。要求が処理された後、ベースライン応答パケットがバックエンドノードで生成され、トンネリングプロトコルに従ってカプセル化され、要求のソース(CI112A)に向かって逆方向で送信して戻されてよい。TI142A(例えばTI142Aまたは異なるTIのどちらか)は、内部ブリッジネットワーク160を介してカプセル化された応答を受信し、第1のカプセル化プロトコルを使用し、修正されたカプセル化バージョンを生成し、IH130AのVMCに修正されたカプセル化バージョンを送信してよい。VMCはベースライン応答パケットを抽出し、ソースCI112Aにベースライン応答パケットを提供してよい。
【0026】
2つの異なるカプセル化プロトコルが上述されているが、いくつかの実施形態では、単一のカプセル化プロトコルだけが、計算インスタンスと公にアクセス可能なサービスとの間のトラフィックを容易にするために必要とされることがあるか、または使用されることがあることに留意されたい。例えば、1つの係る実施形態では、VMCは内部ブリッジネットワーク上でトラフィックに使用されるトンネリングプロトコルを実装できてよく、したがってVMC自体がトンネリング手段の機能を果たしてよい。係る実施形態では、VMCは、宛先としてPAE150と関連付けられた公にアクセス可能なサービスでパケット
を妨害し、ソースIVN及び/またはPAEの符号化を含むカプセル化されたパケットを生成し、ブリッジネットワークデバイスにカプセル化されたパケットを送信してよい。
【0027】
Svc1に向けられるトラフィックのためのルートテーブルエントリでのターゲットとしてPAEを使用することによって、クライアントはIVNとSvc1との間のルーティングトラフィックに向かう、ともに図1に示される他の2つの接近を回避できてよい。1つの接近では、その代わりにIVN110Bがセットアップされるクライアントは、そのIVNのためにインターネットゲートウェイ182を確立する、及び/またはCI112K等のそのインスタンスの1つに(公衆インターネットからアクセスできる)パブリックIPアドレスを割り当てることを決定してよい。係る状況では、CI112Kで生成されたSvc1要求を含んだベースラインパケットは、例えばインターネットゲートウェイ(IGW)トラフィックのために示される経路163に類似する経路を介して、上述されたトンネリングプロトコルの種類を使用することなくSvc1ノード(例えばFEノード171B)に送信されてよい。いくつかの場合、パブリックIPアドレスで生じるトラフィックに使用される経路は公衆インターネットのリンク139を含んでよい。インターネットゲートウェイ手法を使用することに優るPAE手法を使用することの1つの潜在的な優位点は、IVN110Bが(パブリックIPアドレスが割り当てられる必要がない)IVN110Aよりも公衆インターネットからの攻撃に(パブリックIPアドレスを露呈することのおかげで)より脆弱性がある場合がある点である。
【0028】
PAEの使用に対する第2の代替策で、クライアントは、IVN110Bとカスタマ所有ネットワーク185との間に安全な接続性を提供するためにVPN(仮想プライベートネットワーク)ゲートウェイ183を確立してよい。CI112L等のインスタンスからSvc1に向けられるパケットは、最初にカスタマ所有ネットワーク185に送信され、次いで(例えば公衆インターネットリンク139を介して)(FEノード171C等の)Svc1ノードに送信されてよい。確立されたVPNゲートウェイ185を有する110B等のIVNがパブリックIPアドレスを活用する必要がなく、セットアップされたインターネットゲートウェイ182を有する必要がなく、VPNゲートウェイだけを使用するクライアントはそれによって上述されたセキュリティの脆弱性を回避し得ることに留意されたい。しかしながら、多くの場合、プロバイダネットワークの中で(例えば、IVNの中のインスタンスで)生じ、プロバイダネットワークの中の宛先(例えばSvc1ノード)をターゲットとするトラフィックのための外部ネットワークに対してVPN接続を使用することはいくつかの点で非効率的であることがある。例えば、少なくともいくつかの実施形態では、PAE方式と比較して、より高い待ち時間に遭遇することがあり、より低いスループットが持続可能であることがあり、及び/またはVPN手法が使用される場合、より高いコストが生じることがある。それぞれ上述された3つの代替ルーティング手法(つまりPAEを使用するルーティング、パブリックIPアドレスを送信元IPアドレスとして使用するルーティング、及びVPNを使用するルーティング)に対応する3つの別々のFEノード171A、171B、及び171Cが図1に示されるが、少なくともいくつかの実施形態では、任意の所与のFEノードは代替策のいずれかを使用し送信されるトラフィックを処理できてよい。したがって、3つのFEノードの図は、FEノードのそれぞれのセットが異なる接続性代替策に必要とされることを暗示することを意図していない。
【0029】
一実施形態では、仮想コンピューティングサービスは、IVNの計算インスタンスで実行中のアプリケーションからPAEを使用し、公にアクセス可能なサービスにアクセスするために呼び出すことができるAPIのセットを露呈するサービス接続性ライブラリ(SCL)を提供してよい。係る状況では、アプリケーションはターゲットサービスSvc1を示すAPI呼出しを発行してよく、サービス要求のコンテンツはAPI呼出しのパラメータによって示される。SCLは、アプリケーションがSvc1にサービス要求を提供する意図があると判断してよく、Svc1にサービス要求を送信するために必要な適切なカ
プセル化の実装を開始してよい。したがって、アプリケーションがベースラインパケットの生成を開始する従来の手法を使用する代わりに、サービス要求からパケットを作成する作業はSCLによって扱われてよい。いくつかの係る実施形態では、アプリケーションは、ターゲットサービスの特定のパブリックPアドレスを入手する必要さえない。例えば、サービス要求の宛先は、特定のネットワークアドレス別よりむしろサービス名別で示されてよい。一実施形態では、アプリケーションがAPI呼出しのサービスの特定のターゲットパブリックアドレスを示すとしても、SCLは(SCLによって選択される実際の宛先がサービス要求に適切に応答できる限り)ターゲットサービスの異なるパブリックIPアドレスまたはプライベートIPアドレスにサービス要求のカプセル化バージョンを送信してよい。
【0030】
パケットの流れの実施例
図2は、少なくともいくつかの実施形態に従って、分離仮想ネットワークの計算インスタンスで生じるパケットを、公にアクセス可能なサービスの宛先に向けることに関与する実施例の構成要素を示す。示されるように、IVN210のインスタンスホスト230は、インスタンス112A及び112B等の複数の計算インスタンス112を含んでよい。各インスタンス112は、ゲスト仮想機械で実行中のそれぞれのオペレーティングシステムインスタンスを含んでよい。クライアントアプリケーションの1つまたは複数の構成要素は、計算インスタンス112Aでのアプリケーションプロセス220A及び計算インスタンス112Bでのアプリケーションプロセス220B等の各計算インスタンスで実行されてよい。計算インスタンスと(ネットワークトラフィックに使用されるネットワークインタフェースカード、つまりNIC等の)インスタンスホストのハードウェア構成要素との間の対話は、VMC240等の1つまたは複数の仮想化管理構成要素(VMC)によって管理されてよい。VMCは、例えば、ハイパーバイザ及び/または(ドメインゼロつまりdom0オペレーティングシステムインスタンスと呼ばれることもある)特権オペレーティングシステムインスタンスを含んでよい。
【0031】
アプリケーションの少なくともいくつかは、示される実施形態ではIVNの外で実装される1つまたは複数のサービスへのアクセスを必要とすることがある(例えば、IVNの外で実装される1つまたは複数のサービスにサービス要求を提出してよく、IVNの外で実装される1つまたは複数のサービスからサービス応答を受信してよい)。例えば、アプリケーションプロセス220Bは公にアクセス可能なサービスSvc1へのアクセスを必要とすることがある。したがって、図2で「1」と名前を付けられた矢印によって示されるように、DNSクエリー204は計算インスタンスから、Svc1のIPアドレスを要求するDNSサーバ252(例えば、IVN210が実装される仮想コンピューティングサービスネットワークの中からアクセス可能なDNSサーバ)に提出されてよい。DNSサーバ252は、「2」と名前が付けられた矢印によって示されるように、Svc1によって露呈されるか、または宣伝されるパブリックIPアドレス205を提供してよい。少なくともいくつかの実施形態では、アプリケーションがしばらくSvc1と対話していない場合、DNSルックアップを実行しさえすればよい。すなわち、Svc1のアドレスがいったん入手されると、アドレスは、DNSサーバ252との追加の対話なしに、インスタンス112Bによって長期間(例えば、アドレスが有効である限り)使用されてよい。
【0032】
Svc1に向けられるサービス要求は、示される実施形態ではインスタンス112Bで生成されるベースラインパケット250の本体に含まれ、Svc1に向かう伝搬のために計算インスタンスのネットワーキングスタックに送信されてよい。ベースラインパケット250は、その送信元アドレスとしてインスタンス112BのプライベートIPアドレスを、宛先としてSvc1のパブリックIPアドレスを示してよい。他のネットワークパケットと同様に、ベースラインパケットは、「3」と名前を付けられた矢印によって示されるように、(物理ネットワーク伝送を担ってよい)VMC240によって妨害されてよい
【0033】
VMC240は、ルートテーブル235及びSvc1パブリックIPアドレスのリスト236等、示される実施形態ではPAE関係のメタデータ及び他のIVNメタデータにアクセスできてよい。ルートテーブル235は、多様な宛先向けであるパケットを送るために使用される必要のあるターゲットを示すエントリを含んでよい‐例えば、N1.N2.N3.*.の範囲の宛先アドレスの付いたパケットの場合、ターゲットK.L.M.Nが使用される必要がある。Svc1の任意のノード向けのパケットのルートテーブルは図2に示される実施例で作成され、プライベートエイリアスエンドポイントPAE-1はターゲットとして示される。ベースラインパケット250に示される宛先及びそれが利用できるPAE関係メタデータの分析に基づいて、VMC240は示される実施形態では第1のカプセル化パケット251を生成してよい。パケット251の本体は(そのソース及び宛先の情報を含んだ)ベースラインパケット250のコンテンツを組み込んでよい。一方、追加のヘッダ260は、VMCとトンネリング手段242との間の通信に使用される第1のカプセル化プロトコルPに従ってVMC240によって生成されてよい。カプセル化パケット251は、「4」と名前が付けられた矢印によって示されるように、VMC240から特定のトンネリング手段242に送信されてよい。少なくともいくつかの実施形態では、PIヘッダ260は、ベースラインパケットがPAE1と関連付けられる、及び/またはIVN210で生じる旨の表示を含んでよい。VMC240とトンネリング手段242の間の経路はそれ自体いくつかのホップを含んでよく、例えば多様なホップのためのターゲットは図2に示されないルートテーブルエントリに基づいて選択されていることに留意されたい。
【0034】
トンネリング手段242は、カプセル化パケット251に含まれるベースラインパケット250のPIヘッダ260及び/またはソースヘッダ/宛先ヘッダを調べてよい。第2のカプセル化プロトコルP2(本明細書ではトンネリングプロトコルとも呼ばれる)のマッピングデータベース262を使用し、トンネリング手段242は、1つまたは複数のP2ヘッダ261及びベースラインパケット250を含んだ第2のカプセル化パケット255を生成してよい。ベースラインパケットの送信元アドレス及び宛先アドレスは、パケット255に使用される新しいソースヘッダ及びパケットヘッダを識別するために、いくつかの実施形態ではマッピングデータベース262へのインデックスとして使用されてよい。いくつかの実施態様では、プロトコルP2に従って、IPv4ベースラインパケット250は、例えばSIIT(ステートレスIP/ICMP(インターネットプロトコル/インターネットコントロールメッセージプロトコル)変換)または類似するIPv4-IPv6ヘッダ変換機構を使用し、IPv6互換パケット255の中でカプセル化されてよい。他の実施形態では、プロバイダネットワークの特許カプセル化プロトコルがカプセル化パケット255を生成するために使用されてよい。いくつかの実施形態では、IPv6を使用する代わりに、TCPオプションヘッダ等の追加のIPv4ヘッダがトンネリング手段によって使用されてよいか、またはUDP(ユーザーデータグラムプロトコル)カプセル化が(例えば、UDPメッセージの中にベースラインパケットコンテンツを取り込むことによって)使用されてよい。いくつかの実施形態でP1ヘッダ260及びP2ヘッダ261の中に含まれてよい情報の種類の実施例は図4に示され、以下に説明される。カプセル化パケット255は、トンネリング手段242から、Svc2ノードに達するために横断される適切なブリッジネットワーク160のデバイスに送信されてよい。
【0035】
図3a及び図3bは、少なくともいくつかの実施形態に従って、分離仮想ネットワークの計算インスタンスで生じるパケットを処理してよいサービス側構成要素のそれぞれの実施例を示す図である。上述されたように、いくつかの実施形態では、少なくとも2つのタイプのサービスが、PAEが構成されているIVNからのクライアントアクセスをサポートしてよい。第1のタイプのサービスはプロバイダネットワーク事業者によって実装され
てよい。一方、第2のタイプはプロバイダネットワークのカスタマ等のサードパーティによって実装されるサービスを含んでよい。図3aに示されるプロバイダネットワーク実装サービス376等の第1のタイプのサービスの場合、フロントエンドノード374はトンネリング手段242によって使用されるカプセル化プロトコルP2に精通して(つまり、実装できて)よい。すなわち、プロトコルP2に従ってフォーマットされるパケット255を受信すると、サービス376のフロントエンドノード374はベースラインパケットコンテンツを抽出し、処理のためにバックエンドノード374に送信できる対応する内部要求350を生成できてよい。いくつかの場合、プロバイダネットワークによって実装されるサービスは、例えばHTTP(ハイパーテキスト転送プロトコル)に従ってフォーマットされたサービス要求をサポートしてよく、フロントエンドノードは、ベースラインパケットが生成されたソースIVNの識別子、及び/またはベースラインパケットを送るために使用されるPAEを示すベースライン要求に1つまたは複数のX-Forwarded-Forヘッダを追加してよい。要求された操作がバックエンドノードで実行された後、例えば応答経路で類似したカプセル化技法を使用し、要求側計算インスタンスに応答が送り返されてよい。例えば、サービス376のP2精通フロントエンドノード374は、ベースライン応答の少なくとも一部分を含んだP2準拠のカプセル化パケットを生成し、ブリッジネットワーク160を介してパケットを、同様にP1準拠カプセル化パケットを生成し、適切なVMC240にパケットを送信してよいトンネリング手段242に送信してよい。VMC240は、P1準拠パケットからベースライン応答を抽出し、112B等のソース計算インスタンスに応答を提供してよい。
【0036】
プロバイダネットワーク事業者によって実装されるサービスのノードとは対照的に、(図3bに示されるサードパーティサービス378等の)少なくともいくつかのサードパーティサービスは、プロトコルP2に従って生成されるカプセル化パケット255からベースラインパケットを抽出できるノードを含まないことがある。いくつかの場合、例えば、P2の詳細はサードパーティサービス事業者が利用できないことがあるか、または係る事業者はP2準拠のサービスノードを構築するためのリソースまたは専門知識を有さないことがある。したがって、少なくともいくつかの実装態様では、PAEベースのルーティングのために係るサードパーティサービスを登録する要求に応えて、または登録後要求に応えて、プロバイダネットワークの構成または制御プレーンは1つまたは複数のサービス側P2精通手段370を確立してよい。係るサービス側手段370はカプセル化パケット255からベースラインパケット250を抽出し、サードパーティサービス378のフロントエンドノード375にベースラインパケットを送信してよい。フロントエンドノード375は次いでベースラインパケット250を、特許サードパーティフォーマット、HTTPで、またはサービス378のバックエンドノード380によって予想される他のインタフェースに従って生成されてよい内部要求352に変換してよい。内部要求352に対応する操作は、次いでバックエンドノードで遂行されてよく、応答は、手段370でのカプセル化の後に、要求が生じた計算インスタンスに逆方向で送信されてよい。
【0037】
カプセル化フォーマット
図4は、少なくともいくつかの実施形態に従って、計算インスタンスで生じるベースラインパケットのためのカプセル化フォーマットの実施例を示す。示されるように、ベースラインパケット402は、示される実施形態で送信元IPバージョン4アドレス及び宛先IPバージョン4アドレスを示してよい。例えば、分離仮想ネットワークの中で、(IVNの外で宣伝されていない)プライベートIPアドレス「10.0.1.2」がクライアントによって計算インスタンス112に割り当てられてよく、このプライベートIPアドレスはベースラインパケット402で送信元アドレスとして示されてよい。パブリックIPバージョン4アドレス「176.32.101.25」は、計算インスタンスからアクセスされる特定の公にアクセス可能なサービスSvc1のアドレスに対するDNSクエリーに応えてDNSサーバによって提供された可能性がある。サービスのこのパブリックア
ドレスはベースラインパケット402の宛先として示されてよい。例えば、計算インスタンスでのソースポートとしてポート4321、及び宛先サービスポートとしてポート80等、TCPポート番号もベースラインパケットに示されてよい。ベースラインパケット402のペイロードまたは本体部分は、サービス要求のパラメータだけではなくストレージサービスに向けられた読取り要求または書込み要求等、送信中のサービス要求のタイプも示してよい。
【0038】
ベースラインパケット402は、示される実施形態でトンネリング手段との通信のために使用される第1のカプセル化プロトコルP1に従ってインスタンスのホストで仮想化管理構成要素(例えば、VMC-x)によってカプセル化されてよい。P1互換パケット404で、ベースラインパケットは本体に含まれてよく、1つまたは複数のP1ヘッダが追加されてよい。VMCの識別子はソースとして示されてよく、トンネル中間群はいくつかの実装態様で宛先として示されてよい。例えばベースラインパケットが生成されたソースIVNを識別する、及び/または宛先としてSvc1を指定するルートテーブルエントリに示されたPAEを示す他のP1特有のヘッダは、パケット404でいくつかの実施形態に含まれてよい。P1互換フォーマットは少なくともいくつかの実施形態での多様なヘッダフィールドにIPバージョン4フォーマットを使用してよい。
【0039】
トンネリング手段で、P1互換パケット404は示される実施形態でそのP1ヘッダを取り去られてよく、ヘッダの異なるセットは宛先サービスへのブリッジネットワークを横切る通信のために使用されるトンネリングプロトコルP2に従って追加されてよい。示される実施形態では、トンネリング手段によって生成されるP2互換パケット406は、IPv6ソースフィールド及び宛先フィールドを含んでよい。IPv6で送信元アドレスに使用可能な128ビットの内の32ビットのサブセットは、いくつかの実施形態でソース計算インスタンスのプライベートIPv4アドレスを示すために使用されてよい。同様に、IPv6で宛先アドレスに使用可能な128ビットの内の32ビットサブセットは宛先サービスのIPv4パブリックアドレスを示すために使用されてよい。例えば、パケット406の送信元アドレスの低位ビットは、送信元IPV4アドレス10.0.1.2の代替表現である0A00:0102であり、パケット406の宛先アドレスの低位ビットは、IPv4宛先アドレス176.32.101.25の代替表現であるB020:657Dである。
【0040】
一実施態様では、図4に示されるアドレス構造408に示されるように、IPv6で使用可能な128アドレスビットは、トンネリングプロトコルP2に従って以下の通り使用されてよい。最低位の32ビット(ビット0~31)は送信元IPv4アドレスまたは宛先IPv4アドレスに使用されてよく、ビット40~71はPAE識別子を示すために使用されてよく、ビット80~127は、ソースIVNまたは宛先サービスが実装されているプロバイダネットワーク場所またはデータセンタに配分される48ビットのIPv6接頭辞に使用されてよい。PAE識別子用にとっておかれた32ビットの内の24ビット(例えば、より高位の24ビット)は、示される実装態様ではソースIVN識別子を示してよい。このようにして、少なくともいくつかの実施形態では、IVN識別子はPAE識別子の中に埋め込まれ、したがってPAE識別子から抽出可能であってよい。ソースIVN識別子、PAE識別子、または両方を表すための他の符号化技法は異なる実装態様で使用されてよい。例えば、PAEを一意で識別するために必要とされるビットの数の将来の考えられる増加に対応するために、ビット31~39及びビット72~80等のいくつかの数のビットが将来の使用のために確保されてよい(RFU)。P2互換カプセル化パケットアドレスを示されるように構造化する(例えば、最下位の32ビットはIPv4送信元アドレス/宛先アドレスを符号化するために使用される)1つの優位点は、少なくともいくつかのロードバランサが、それらが、128ビットの内のIPv4部分だけが宛先として示されるならば選択されるだろう係るIPv6互換パケットを受信するときに同じ宛先
を選択してよい点である。他の手法は、例えばビットの異なるサブセットがIVN識別子及び/またはPAE識別子を示すために使用される異なる実施形態でIPv6互換アドレス構造を区分化するために使用されてよい。
【0041】
少なくともいくつかの実施形態に従って、トンネリングプロトコルは、例えば別個のトンネリング手段群を必要とすることなくソース計算インスタンスが実行するインスタンスホストで実装されてよい。係る実施形態では、図4に示される2ステップのカプセル化が、VMCで、及び/またはインスタンスホストで実行中の異なるサービス接続性構成要素で実装される単一論理ステップに結合されてよい。VMC及び/またはサービス接続性構成要素は、係る実施形態でのソース計算インスタンスと宛先サービスとの間のトンネリング手段と見なされてよい。
【0042】
PAE構成
図5は、少なくともいくつかの実施形態に従って、PAE構成要求及びPAE構成応答の実施例を示す。示されるように、プロバイダネットワークの構成マネージャ592は、API、ウェブベースのコンソール、カスタムGUIまたはコマンドラインツール等の1つまたは複数のプログラムインタフェース550を実装してよい。クライアント502は、係るインタフェースを使用し、例えば要求中のパラメータとしてIVN識別子を示す指定されたIVNのプライベートエイリアスエンドポイントを作成するために「Create-PAE-In-IVN」要求505を提出してよい。それに応じて、構成マネージャ592はその構成データベースで要求されたPAEのために1つまたは複数のエントリを生成し、記憶し、新規に作成されたPAEの識別子を応答507で提供してよい。いくつかの実施形態では、1つまたは複数のPAEは、IVNがクライアントのために確立された時点でIVNのために自動的にセットアップされてよく、係る状況では、明確なPAE作成要求は必要とされないことがある。
【0043】
クライアント502は、PAE作成後に、PAEを使用しトラフィックが送られる特定のサービスを示す「Assign-Service-to-PAE」要求509を構成マネージャ592に提出してよい。いくつかの実装態様では、PAE識別子及びサービス識別子は係る要求でパラメータとして供給されてよい。それに応じて、構成マネージャ592はPAEに関してその構成メタデータを更新してよく、サービス割当ての肯定応答511を提供した。いくつかの実施形態では、プログラムインタフェース550は、構成されているPAとの関連付けのために1つがその中から選択できる登録サービス名のリストを(例えば、ドロップダウンメニューに)提供してよい。
【0044】
多様なタイプのアクセス制御方針は、例えば方針及びPAEを指定する「Assign-Policy-to-PAE」要求513に応えて、いくつかの実施形態でPAEに割り当てられてよい。適用可能な方針の例は図6に示され、以下に説明される。構成マネージャ592は示される方針の表示及び方針のPAEとの関連付けを記憶し、関連付けの肯定応答515をクライアントに提供してよい。少なくともいくつかの実施形態では、方針の関連付けはPAEのために要求されてよいが、方針の実際の施行は(a)PAEに割り当てられるサービス、(n)方針を指向するためにPAEに割り当てられるサービスによって呼び出すことができる、プロバイダネットワークの許可及び認証サービス等の異なるサービス、または(c)サービス要求がPAEに従ってそこから送られるインスタンスホストのVMCでの内の1つまたは複数で実行されてよい。いくつかの実施形態では、方針の表示は、例えば肯定応答515がクライアントに提供される前に、PAEに割り当てられたサービスの制御プレーン構成要素に構成マネージャによって送信されてよい。
【0045】
プロバイダネットワークのクライアントは、いくつかの実施形態でPAE支援ルーティングのためのサービスを登録する要求517を提出してもよい。例えば、サードパーティ
サービス(つまり、プロバイダネットワーク事業者によって直接的に管理されないサービス)が、プロバイダネットワークのリソースのなんらかのセットを使用し確立されてよく、係るサードパーティサービスの事業者は、パブリックIPアドレスがIVNによって使用される必要なく、IVNの中からサービスへのアクセスを可能にすることを希望することがある。係る状況では、サービス構成の詳細(例えば、サービスのフロントエンドノードのアドレス)を提供する「Register-Service-For-PAE」要求がクライアント502によって提出されてよい。少なくともいくつかの実装態様では、PAEを確立することを担う構成マネージャとは異なる構成マネージャがサービスを登録することを担ってよく、プログラムインタフェースの異なるセットがサービス登録要求に使用されてよい。サービス登録要求に応えて、構成マネージャは、例えば、サービスを受け入れ、クライアントに応答519で登録された名前または登録されたサービスの識別子を提供する前に、登録されることが提案されたサービスがPAE互換性の特定の基準を満たすことを検証するために1つまたは複数のバリデーション操作を実行してよい。例えば、一実施態様では、サービスのフロントエンド構成要素は、それがプロバイダネットワークのカプセル化プロトコルを使用するトンネリング手段によって生成される要求を受信できることを確認するためにクエリーを行われてよい、または試験されてよい。
【0046】
いくつかの実施形態では、追加構成要求のタイプが図5に示されるものを超えてサポートされてよい。例えば、(図3bのP2精通手段370等の)サービス側トンネリング手段を構成する要求は、いくつかの実施形態でサードパーティサービスをセットアップしたクライアントによって提出されてよい。一実施形態では、クライアントは異なるサービスにPAEを割り当てし直す、または追加のタイプの構成要求を使用し、PAEに複数のサービスを割り当てることができてよい。いくつかの実施態様では、図5に示されるすべてのタイプの構成要求がサポートされてよいわけではない。上述されたように、クライアントは(例えば、同じIVNの中から異なるサービスにアクセスするための)所与のIVNと関連付けられた複数のPAEを確立してよく、複数のIVNを有するクライアントはそれぞれの係るIVNで1つまたは複数のPAEをセットアップしてよい。
【0047】
図6は、少なくともいくつかの実施形態に従って、PAE構成データベースコンテンツの実施例を示す。構成マネージャ592を活用して2つのPAEが確立された特定のIVN(IVN-j)の構成データベースが示される。PAE604Aは、サービス識別子フィールド606Aに示されるサービス「StorageSvc1」(プロバイダネットワークで実装されたストレージサービス)を割り当てられる。一方、PAE604Aはサービス識別子フィールド606Bに示されるサービス「DBSvc1」(プロバイダネットワークで実装されるデータベースサービス)を割り当てられる。PAE604Aはそれに割り当てられたアクセス方針608Aを有する。一方、PAE604Bは2つのアクセス方針608B及び608Cを有する。
【0048】
アクセス方針608Aは、示される実施例では範囲CI-IP-address-range610AのIPアドレスを有する計算インスタンスからまたは計算インスタンスに向けられるStorageSvc1トラフィックに適用する。いくつかの実施形態では、方針が適用するトラフィックを示すためにIPアドレスを使用する代わりに、計算インスタンスのインスタンス名または他の識別データが使用されてよい。アドレス範囲610Aから要求が許可される操作タイプのリスト(例えば、読取り対書込み)は、方針608Aのoperation-types-permittedフィールド612Aに示されてよく、それらの操作を向けることができるサービスStorageSvc1のオブジェクト(例えば、ディレクトリ「/xyz」に記憶されるオブジェクト)はオブジェクトリスト614Aに示される。示される例では、方針608Aが適用される時間範囲(例えば、各作業日の特定の時間、または週の特定の日)は、適用可能な時間範囲フィールド616Aに示されてよい。本人(例えば、ユーザーまたはグループの識別子)のリスト618A
も、そのサービス要求が方針608Aに示される規則によって管理されるエンティティを示す、方針608Aについて関連付けられてよい。
【0049】
PAE604Bのために施行されるアクセス方針608B及び608Cのそれぞれは、方針の規則が適用される計算インスタンスを示す、そのそれぞれのCI-IP‐adress範囲610を示してよい。608B等のいくつかの方針では、例えば、許可される操作のタイプの代わりに、または許可される操作のタイプに加えて、禁止される操作のタイプが(例えば、operation-types-prohibitedフィールド613に)示されてよい。オブジェクトリスト614Bに「*」で示されるように、フィールド613に示される操作は、principals-list618Bに示される本人について示される例でDBSvc1のすべてのオブジェクトについて禁止されてよい。示されるように、方針に含むことができるエントリのすべてのタイプが方針ごとに指定される必要があるわけではない‐例えば、方針608Bは適用可能な時間範囲を含まない。一方、方針608Cは本人リストを含まない。方針に含まれないエントリのタイプについてはデフォルト値が使用されてよい‐例えば、終日が適用可能な時間範囲となると仮定されてよく、方針規則は、特定の本人が示されない場合すべての本人に適用されてよい。示される例では、フィールド612Bは、適用可能な時間範囲616Cの間にフィールド614Cにリストされるオブジェクトに関して許可される操作タイプを示してよい。
【0050】
いくつかの実施形態では、特定のアクセス方針が所与のPAEのためにクライアントによって指定されない場合、プロバイダネットワークは対応するサービスに提出されるサービス要求に適用される規則を決定するためになんらかのデフォルトのセットを適用してよい。デフォルトはいくつかの実装態様ではサービスごとに異なることがある。上述されたように、いくつかの実施形態では、PAEが割り当てられているサービスは(サービス自体のノードで、またはアイデンティティ及び許可管理サービス等のプロバイダネットワークの別のサービスに要求を提出することによって)方針を施行することを担ってよい。いくつかのサービスに対するサービス要求は、要求がサービスに到達した後に要求されている操作のタイプを決定することだけが可能であるように暗号化されてよく、その結果、アクセス方針はサービス端部に適用されなければならないことがある。係る場合、方針は、方針がクライアント(例えば、IVN構成マネージャ)によって示される構成マネージャによってサービスに(例えば、制御プレーンまたはサービスの管理構成要素に)通信されてよい。他の実施形態では、方針の規則の少なくともいくつかは要求者端部(例えば、IVN端部)で施行されてよい‐例えば、対応するユーザが適用可能な方針の本人リストに示され、示される本人についてすべての書込みが禁止されている場合、VMCは計算インスタンスから発行される書込み要求を拒否することができてよい。
【0051】
再利用されるプライベートIPアドレスからの要求の区別
クライアントはIVNネットワーク構成で与えられる柔軟性を使用して、例えば、同じアドレスが他の場所で(例えば、他のIVNでまたは公衆インターネットで)使用中であるかどうかを考慮することなく、上述されたようにいくつかの実施形態でIVN計算インスタンスに対し、その好みのプライベートIPアドレスを割り当ててよい。いくつかの場合、クライアントは異なるIVNのインスタンスに同じIPアドレスを割り当ててよい。(例えば、そこからの要求がサービスで受け取られるソースの正確な記録のため等の)いくつかの理由から、たとえ同じ送信元IPアドレスが要求で示されることがあっても、サービスが異なるIVNからの要求を区別できることが役立つ場合がある。
【0052】
図7は、少なくともいくつかの実施形態に従って、同じプライベートIPアドレスを有する計算インスタンスからサービスで受信される要求を区別するためのIVN識別子及びPAE識別子の使用の例を示す。示されるように、それぞれのIVN702A及び702BはクライアントC1によってセットアップされてよく、IVN702Aはクライアント
の組織のエンジニアリング部による使用のためにセットアップされ、IVN702Bは組織のマーケティング部による使用のためにセットアップされる。両方の組織とも、示される例で同じ公にアクセス可能なストレージサービス「StorageSvc1」に記憶されるオブジェクトにアクセスする必要がある場合がある。PAE750Aは、IVN702AからStorageSvc1にアクセスするために確立されてよく、PAE750BはIVN702BからStorageSvc1にアクセスするために確立されてよい。
【0053】
クライアントC1は(例えば、故意にまたは偶然に)同じプライベートIPアドレス10.4.5.6をIVN702Aの計算インスタンス710Aに、及びIVN702Bの計算インスタンス710Kに割り当ててよい。StorageSvc1に向けられるサービス要求は、両方の計算インスタンス710Aと710Kで生成されてよい。上述されたプロバイダネットワークのトンネリング手段で実装されてよいカプセル化プロトコルに従って、StorageSvc1のオブジェクトXを読み取る、IVN702Aからの要求を示すカプセル化サービス要求パケット774Aは、フロントエンドノード771に送信されてよい。カプセル化パケット774Aは要求の元のソースとしてプライベートIPアドレス10.4.5.6を示してよく、要求を送るために使用されるIVN識別子702A及びPAE750Aの符号化を含んでもよい。同様に、サービスのオブジェクトYを読み取る要求を示すカプセル化パケット774Bは、フロントエンドノード771で受信されてよい。また、パケット774Bは、ソースインスタンスのプライベートIPアドレス(パケット774Aに示されるものと同一の10.4.5.6)、ソースIVN(702B)、及び示される実施形態でその要求を送るために使用されるPAE750Bも示してよい。
【0054】
フロントエンドノード771(及び/または要求された作業が実行されるバックエンドノード773)は、パケット774A及び774Bに示される送信元IPアドレスが同一であっても、受信されたパケットに含まれるIVN及び/またはPAE識別情報を使用して要求のソースを区別できてよい。したがって、Xを読み取る要求が受信されたか、または処理されたタイムスタンプT1、要求側計算インスタンスのプライベートIPアドレス10.4.5.6、IVN702A及びPAE750Aの識別子を示すログレコード733Aが(FEノードまたはBEノードのどちらかによって)生成されてよい。受信または処理のタイムスタンプT2、送信元IPアドレス10.4.5.6、並びにIVN702B及びPAE750Bの識別子を示す類似するログレコード733BはYを読み取る要求のために生成されてよい。いくつかの実施形態では、要求のソースの曖昧さをなくすためにはどちらか1つで十分である場合があるので、IVNの識別子または識別子PAEだけがログレコードに(またはカプセル化パケット)に含まれてよい。
【0055】
トンネリング手段が上述されたようにカプセル化パケット774のソースヘッダの中にIVN識別子またはPAE識別子を取り込む実施形態では、異なるIVNからのトラフィックが、(フロントエンドノード771及び/またはバックエンドノード773等の)サービス側ノードが必ずしもソースヘッダのコンテンツを解析できない可能性がある状況でも曖昧さをなくしてよいことに留意されたい。例えば、サードパーティサービスがPAEベースのルーティングを使用するために登録され、IPv6がカプセル化のために使用されている場合、サードパーティサービスのノードは、IPv6ヘッダのどの特定のビットがソースIVN情報またはソースPAE情報を符号化するために使用されるのかを認識していないことがある。ただし、IVN702AからのパケットP1のためのIPv6ソースヘッダはIVN702BからのパケットP2ためのIPv6ソースヘッダとは異なるため、サードパーティサービスノードは、IVN識別子及び/またはPAE識別子に関する詳細がサードパーティサービスノードで確かめられない場合にも、P1及びP2が異なるソースからであることを少なくとも判断できるだろう。言うまでもなく、サードパーティサービスノードが図6に示される方針に類似するアクセス制御方針を実装することを担い
、アクセス制御方針が特定のIVNまたは特定のPAEと関連付けられる場合、サードパーティサービスノードはIVN/PAE識別子を入手する必要がある場合がある。
【0056】
プライベートエイリアスエンドポイントのための方法
図8は、少なくともいくつかの実施形態に従って、PAEを構成するために実行されてよい操作の態様を示す流れ図である。要素801に示されるように、1つまたは複数の分離仮想ネットワークは、例えば仮想コンピューティングサービスのリソースを使用し、プロバイダネットワークでクライアントC1の代わりにセットアップされてよい。各IVNは、クライアントが(サブネットセットアップ、IPアドレス割当て等の)内部ネットワーキング構成選択を行うことができる計算インスタンス等のリソースのなんらかのセットを含んでよい。例えば、クライアントは、所与のプライベートIPアドレスがIVNの外のリソースに関して一意であることを確認する必要なく、プライベートIPアドレス(IVNの外で宣伝されないアドレス)を計算インスタンスの仮想ネットワークインタフェースに割り当ててよい。クライアントが2つの異なるIVN、IVN1及びIVN2で同じプライベートIPアドレス「a.b.c.d」を使用することを希望する場合、そのアドレスは、例えばIVN1の計算インスタンスCI1及びIVN2の異なる計算インスタンスCI1に割り当てられてよい。IPアドレスの一意性は少なくともいくつかの実施形態では所与のIVNの中でまだ必要とされることがある‐例えば、同じIPアドレスは、同じIVNの中で起動される2つのインスタンスに割当て可能ではないことがある‐ことに留意されたい。
【0057】
示される実施形態では、仮想コンピューティングサービスは、クライアントが、IVNと関連付けられたプライベートエンドポイントエイリアス(PAE)を使用し、公にアクセス可能なサービス(例えば、プロバイダネットワーク事業者によって実装されるストレージサービスまたはデータベースサービス、及び/またはプロバイダネットワークの他のカスタマによって実装されるサードパーティサービス)にプライベートIPアドレスを有するIVN計算インスタンスからサービス要求を提出できるようにしてよい。要素804に示されるように、CIの代わりにIVN1のために確立された特定のPAE(PAE1)を表すメタデータレコードは、例えば仮想コンピューティングサービスの構成マネージャ構成要素またはプロバイダネットワークによって作成され、記憶されてよい。少なくともいくつかの実施態様では、PAE1が作成されるときに(例えば、C1からのプログラム要求に応えて)、PAE1は任意の特定のサービスに関連付けられるか、または結び付けられる必要はない。IVN1と関連付けられるルートテーブルの中で、PAE1は、例えば、要素807に示されるように、選択されたサービスがPAE1に割り当てられる別個の構成ステップの後に最終的に、IVN1の中で生じ、プロバイダネットワークの他の場所で(つまり、IVN1の外で)実装される選択されたサービスに向けられるネットワークトラフィックのルートターゲットとして示されてよい。
【0058】
少なくともいくつかの実施形態では、いくつかのサービスが、例えば、プロバイダネットワーク事業者が、IVN端部でプライベートIPアドレスを有するインスタンスと、サービス端部でパブリックIPアドレスを有するサービスノードとの間でパケットを伝送するために使用されるカプセル化プロトコルを実装するために必要とされることがある(トンネリング手段等の)構成要素をセットアップし、試験した/検証した後に、PAEサポートに登録された可能性がある。また、サービスのパブリックIPアドレスは、いくつかの実施形態では、トンネリング手段及び/またはIVNのインスタンスホストでの仮想化管理構成要素にアクセス可能な構成データベースの中で検証され(必要に応じて更新)される必要がある場合がある。少なくとも一実施形態で、クライアントC1が使用可能なプログラムインタフェースは、クライアントが、PAE1にサービスSvc1を割り当てるとき(要素807)に係る登録されるセットの中からサービスを選択できるようにしてよい‐すなわち、クライアントは事前に承認されたサービスをそのIVNのためにセットア
ップされたPAEに関連付けることを許されるにすぎないことがある。一実装態様では、PAE1等のPAEとSvc1等のサービスとの間の関連付けは、PAEの「サービス」属性の値を設定することによってIVN構成データベースの中で表されてよい。
【0059】
1つまたは複数のアクセス方針は、いくつかの実施形態でPAE1等の所与のPAEと関連付けられてよい(要素810)。アクセス方針は、例えば、PAE1を使用し、許可されるもしくは禁止される操作またはサービス要求のタイプ、PAE1を介してアクセスが与えられるオブジェクトタイプ、方針規則が適用する本人(例えば、ユーザーまたはグループ)、方針規則が適用する期間等を示してよい。いくつかの実施形態では、クライアントC1は、例えばプログラムインタフェースを使用し、PAE1に対する好みのアクセス方針を示してよい。デフォルトアクセス方針は、クライアントが方針を示さない場合、PAEに対しいくつかの実装態様で適用されてよい。また、方針はいくつかの実装態様ではPAEの属性として表されてもよい。複数の方針を所与のPAEに割り当てることができるいくつかの実施形態では、構成マネージャは異なる方針間の矛盾を検出することを担ってよい。例えば、ある方針は特定のオブジェクトに対する特定のタイプの操作を許してよい。一方、別の方針はそのタイプの操作を禁止してよい。いくつかの実施態様では、構成マネージャは、クライアントが矛盾する方針の中で優先順位を付けるまたは矛盾を取り除くことを要求してよい。他の実施形態では、構成マネージャはいくつかのデフォルトの優先順位で(例えば、最も最近に適用された方針がデフォルトでより古い方針を無効にする)指定された方針を単に適用してよく、矛盾は相応して解決されてよい。
【0060】
宛先がSvc1であるトラフィックのターゲットとしてのPAE1を示すルートテーブルエントリは、(例えば、プログラムインタフェースを使用して提出された要求を介してC1によって)作成され、示される実施形態ではIVN1の1つまたは複数のサブネットにアタッチされてよい(要素813)。ルートテーブルエントリのためのソース及び宛先として特定のIPアドレス範囲を指定する代わりに、サービスの登録名が宛先として示されてよく、PAE1が作成されたときにPAE1に割り当てられた名前または識別子がターゲットとして示されてよく、このようにしてクライアントC1の観点からIVN1とSvc1との間のルート管理を大幅に簡略化する。ルートテーブルエントリがアタッチされた後、サブネットのインスタンスとSvc1との間のトラフィックの流れが始まってよい。
【0061】
少なくともいくつかの実施形態では、1つまたは複数のPAE(例えば、PAE1)に割り当てられたサービス(例えば、Svc1)と関連付けられたパブリックIPアドレスのセットは経時的に変化する可能性がある。Svc1等の登録されたサービスの制御プレーンまたは管理構成要素、及び/または仮想コンピューティングサービスの構成マネージャは、係るアドレスが示される実施形態で使用されてよい構成要素に、パブリックIPアドレスのリスト及び/または他のPAE関係の構成情報に対する更新を伝搬することを担ってよい(要素816)。係る更新は、例えば上述された種類のカプセル化プロトコルが実装されるトンネリング手段からアクセス可能な構成データベース、及び/またはIVNインスタンスホストの仮想化管理構成要素からアクセス可能なデータベースに対して行われてよい。
【0062】
図9は、少なくともいくつかの実施形態に従って、計算インスタンスから公にアクセス可能なサービスにパケットを送信するためのトンネリングプロトコルの使用を示す流れ図である。要素901に示されるように、アクセスされるサービスSvc1パブリックIPアドレス「Addr1」は、PAE(PAE1)がSvc1への/からのトラフィックのために確立されたIVN(IVN1)で実装される計算インスタンスCI1で(例えば、DNSクエリーを使用し)決定されてよい。計算インスタンスCI1で、本体がサービス要求SR1の少なくとも一部分を示すベースラインパケットBP1が生成されてよい(要
素904)。CI1のプライベートIPアドレスはBP1の送信元アドレスとして示されてよく、Addr1は宛先として示されてよい。BP1は、例えばCI1にアタッチされる仮想ネットワークインタフェースを使用し、CI1からAddr1に向かって送信されてよい。
【0063】
示される実施形態では、ベースラインパケットBP1は、CI1が実行するインスタンスホストで、ハイパーバイザまたは特権をもつドメインオペレーティングシステム等の仮想化管理構成要素(VMC)によって妨害されることがある(要素907)。VMCは、例えば(仮想ネットワークインタフェース等の)仮想化されたリソースとインスタンスホストの(物理ネットワークインタフェースカード等の)ハードウェア構成要素との間で手段としての機能を果たしてよい。VMCは、BP1の宛先アドレス及び/またはCI1からSvc1へのトラフィックがPAEにターゲットとされる必要があることを示すルートテーブルエントリ等のPAE構成情報の1つまたは複数の要素を分析してよい。少なくとも一実施形態では、VMCはSvc1のパブリックIPアドレスのリストでAddr1を探してもよいか、または代わりに探すことができてよい。構成情報の調査に基づいて、VMCは、BP1から引き出される第1のカプセル化パケットEP1が、例えばブリッジネットワークを介してAddr1に向かう追加の伝送のためにトンネリング手段に向かって送信されると判断できてよい(要素910)。トンネリング手段は、例えば、内部ブリッジネットワークを介して、(CI1等の)仮想コンピューティングサービスのノードと、(Svc1等の)公にアクセス可能なサービスのノードとの間でトラフィックを送るためにセットアップされたマルチノード群の内の1つのノードであってよい。第1のカプセル化パケットEP1は、いくつかの実施形態で仮想コンピューティングサービスの多様な構成要素の中でのルーティングのために使用される第1のカプセル化プロトコルP1に従ってフォーマットされてよい。EP1の中で、(BP1のソースヘッダ及び宛先ヘッダを含んだ)BP1は本体構成要素の中で組み込まれてよく、1つまたは複数のP1ヘッダはいくつかの実施態様ではVMCによって追加されてよい。EP1の追加されたヘッダは、例えばソースとしてVMC(またはVMCが実行するインスタンスホスト)を、及び宛先としてトンネル群(または特定のトンネリング手段)を示してよい。一実施態様では、IVN1及び/またはPAE1の識別子は、EP1ヘッダに含まれてもよい。いくつかの実施形態では、EP1ヘッダは必ずしもPAE1の識別子を示さないことがあるが、EP1がPAEと関連付けられたパケットであることを示すフィールドを含んでもよい。
【0064】
EP1は、最終的には、例えば仮想コンピューティングサービスのネットワークの1つまたは複数のホップを横切った後、示される実施形態でトンネリング手段に達してよい。トンネリング手段で、BP1は抽出されてよく、EP1ヘッダのコンテンツは調べられてよい。BP1の送信元アドレス及び宛先アドレス(つまり、CI1のプライベートIPアドレス及びSvc1アドレスAddr1)は、第2のカプセル化パケットEP2で指定される、トンネリングプロトコルP2のマッピングデータベースで対応する送信元アドレス及び宛先アドレスを探すために使用されてよい(要素913)。いくつかの実施形態では、ベースラインパケットBp1(及び/またはEP)はIPv4に従ってフォーマットされてよい。一方、トンネリングプロトコルで使用される送信元アドレス及び宛先アドレスは、例えばSIITまたは類似するIPv4-IPv6変換プロトコルを使用し、IPv6に従ってフォーマットされてよい。他の実施形態では、トンネリングプロトコルは専有であってよく、例えば、IPv6様式のアドレスは必ずしも使用される必要はない、IPv6アドレスがトンネリングプロトコルのために使用されないいくつかの実施形態で、ベースラインパケットのカプセル化は、TCPオプションヘッダ等の追加のIPv4ヘッダを使用し、実行されてよい。少なくとも1つの実施形態では、(例えば、UDPメッセージの中にベースラインパケットを取り込むことによって)UDP(ユーザーデータグラムプロトコル)カプセル化が使用されてよい。EP1ヘッダは示される実施形態ではトンネリング手段でEP2ヘッダによって削除され、置換されてよい。図4に示されるように、
いくつかの実施形態では、1つまたは複数のEP2ヘッダはそれぞれ(a)(例えば、32ビットのBP1送信元IPアドレスを符号化するために128ビットのEP2送信元アドレスヘッダの内の32ビットを使用し、32ビットのBp1宛先IPアドレスを符号化するために128ビットのEP2宛先アドレスフィールドの内の32ビットを使用する)BP1送信元アドレス及び宛先アドレス、及び/または(b)ソースIVN(IVN1)及びルーティングのために使用されるPAE(PAE1)の識別子を示すまたは符号化してよい。いくつかの実装態様では、IP2ヘッダに含まれてよいPAE識別子は、それ自体対応するIVNの識別子の符号化を含んでよく、したがってPAE識別子は、要求が受信されたIVN及びPAEの両方ともを決定するためにサービスで使用可能であってよい。少なくとも1つの実施態様では、BP1宛先アドレスは、BP1宛先アドレスが使用されるのか、それともEP2宛先アドレスが使用されるのかに関係なく、ロードバランサが同じサービスフロントエンドノードに所与のパケットを送るように(例えば最低32ビットで)、それぞれEP2ソースヘッダ及び宛先ヘッダの中に含まれてよい。
【0065】
EP2は、例えばプロバイダネットワークの中で確立されたブリッジネットワークの選択された経路を介して、トンネリング手段からSvc1のフロントエンドノードに送信されてよい(要素916)。いくつかの実施形態では、EP2は、プロバイダネットワーク事業者によって管理される及び/または所有されるプライベートネットワークリンクだけを使用し、Svc1に達してよい。他の実施形態では、EP2のために使用される経路はパブリックネットワークリンクを含んでよい(例えば、パケットはプロバイダネットワークの外のネットワークデバイスを通過してよい、またはプロバイダネットワーク事業者以外のエンティティによって管理されてよい/所有されてよい)。Svc1のフロントエンドノードで、サービス要求SR1を示すBP1コンテンツが抽出されてよい(要素919)。さらに、ソースインスタンスCI1の一意の識別は、例えば同じIPアドレスが、他のIVNの他のインスタンスに割り当てられるようにCI1に割り当てられるとしても、EP2ヘッダを使用し、サービスで可能であってよい。例えば、1つまたは複数のEP2ヘッダから抽出されてよいBP1のコンテンツを送るために使用されるソースIVN及び/またはPAEの識別子は、各IVNが特定のプライベートIPアドレスを有する単一のインスタンスだけを含んでよい実施形態では、係るインスタンスからのサービス要求の曖昧さをなくすために使用されてよい。少なくともいくつかの実施形態では、サービス要求SR1は、PAEと関連付けられた1つまたは複数のアクセス制御方針に従ってサービス側で確証されてよい。アクセス許可がチェックされた後、要求された操作が、例えばサービスSvc1のバックエンドノードで実行されてよい。少なくともいくつかの実施形態では、少なくともいくつかのタイプの要求に応答が生成されてよく、応答は逆の順序で同じプロトコルを使用し、CI1に向かって逆方向で送信されてよい。例えば、コンテンツがバックエンドサービスノードで生成されるベースライン応答は、サービスのフロントエンドノードでトンネリングプロトコルP2に従ってフォーマットされ、仮想コンピューティングサービスのトンネリング手段にブリッジネットワークを横切って送信されてよい。トンネリング手段で、応答は抽出され、第1のカプセル化プロトコルP1に従ってフォーマットされ、CI1が実行するインスタンスホストでVMCに渡されてよい。VMCはベースライン応答を抽出し、CI1に応答を提供してよい。
【0066】
多様な実施形態では、図8及び図9の流れ図に示される操作以外の操作は、プライベートエイリアスエンドポイントをサポートするための技法の少なくともいくつかを実装するために使用されてよいことに留意されたい。示される操作のいくつかはいくつかの実施形態では実装されないことがあり、図8もしくは図9に示されるのとは異なる順序でもしくは異なる構成要素で、または順次的よりむしろ並行して実装されてよい。少なくとも1つの実施形態で、トンネリング手段及びVMCについて説明される機能性は例えば結合されてよい‐例えば、パケットを、別個の手段による追加のカプセル化なしに選択された経路を介してサービスに送信できるようにするトンネリングプロトコルがVMCで実装されて
よい。別の実施形態では、ベースラインパケットは、VMCによってカプセル化されずに、計算インスタンスから、または非仮想化コンピューティング装置からトンネリング手段に送信されてよい。
【0067】
使用事例
分離仮想ネットワークの計算インスタンスから公にアクセス可能なサービスへ向けられたトラフィックのルーティングターゲットとしての機能を果たすためにプライベートエイリアスエンドポイントを確立する上述された技法はさまざまな状況で役に立ってよい。より多くの分散型アプリケーションがプロバイダネットワーク環境に移動され、ネットワークをベースにした攻撃者の複雑化が増すにつれ、公衆インターネットで生じるネットワーク侵入からクライアントアプリケーションを守り、分離する必要性も高まっている。分離仮想ネットワークは、クライアントが公衆インターネットに対して宣伝されないか、または公衆インターネットからアクセスできない計算インスタンスにプライベートIPアドレスを割り当てることを可能にするが、要求が係るインスタンスからのパブリックIPアドレスで生じることを期待するサービスにアクセスすることは問題を呈することもある。プライベートエイリアスエンドポイントは、潜在的なセキュリティの妥協を必要とせず、VPN接続を介した要求の非効率的な/高価なルーティングなしに係るサービス要求を送信できるようにしてよい。
【0068】
本開示の実施形態は、以下の条項を考慮して説明できる。
1.システムであって、
プロバイダネットワークの構成マネージャと、
インスタンスホストの仮想化構成要素(VMC)であって、クライアントの代わりに確立された第1の分離仮想ネットワーク(IVN)の第1の計算インスタンスが前記インスタンスホストでインスタンス化され、前記第1の計算インスタンスが前記クライアントによって選択されたプライベートネットワークアドレスを有する、前記仮想化管理構成要素(VMC)と、
トンネリング手段と、
を備え、
前記構成マネージャが、前記第1のIVNで生じ、特定のサービスに向けられるパケットのルーティングターゲットとして第1のプライベートエイリアスエンドポイント(PAE)の指定を表す第1のメタデータエントリを記憶するように構成され、前記パケットが公に宣伝されたネットワークアドレスを送信元アドレスとして示すことなく前記特定のサービスに送達され、
前記VMCが前記第1のメタデータエントリの調査に少なくとも部分的に基づいて、前記VMCで妨害されたベースラインパケットから引き出される第1のカプセル化パケットを前記トンネリング手段に送信するように構成され、前記ベースラインパケットが前記第1の計算インスタンスで生成され、前記特定のサービスの公に宣伝されたネットワークアドレスに向けられ、
前記トンネリング手段が、
トンネリングプロトコルに従って、前記第1のカプセル化パケットから第2のカプセル化パケットを生成するように構成され、前記第2のカプセル化パケットが前記第1のIVNをソースIVNとして示すヘッダ構成要素を含み、
前記特定のサービスの1つまたは複数のノードの内の第1のノードに前記第2のカプセル化パケットを送信するように構成され、前記第1のノードが(a)前記第2のカプセル化パケットから、前記第1のIVNの識別子及び前記プライベートネットワークアドレスを決定する、及び(b)前記ベースラインパケットに示されるサービス要求を遂行するために1つまたは複数の操作を開始するように構成される、
前記システム。
【0069】
2.前記第2のカプセル化パケットがIPv6(インターネットプロトコルのバージョン6)に従ってフォーマットされ、前記ベースラインパケットがIPv4(前記インターネットプロトコルのバージョン4)に従ってフォーマットされる、条項1に記載のシステム。
【0070】
3.前記特定のサービスが複数のオブジェクトに対する複数の操作タイプをサポートし、(a)前記特定のサービスの前記第1のノードまたは(b)前記VMCの内の1つまたは複数が、
前記1つまたは複数の操作の前に、前記サービス要求が前記第1のPAEに割り当てられた第1のアクセス制御方針に準拠しているかどうかの判断を開始するように構成され、前記第1のアクセス制御方針が、前記第1のPAEをルーティングターゲットとして使用し、提出された要求に関して、(a)前記複数の操作タイプの許可された操作タイプ、(b)前記複数の操作タイプの禁止された操作タイプ、(c)前記複数の操作タイプの内の特定の操作タイプが許可される時間間隔、または(d)前記複数の操作タイプの内の特定の操作タイプが許可される前記複数のオブジェクトの特定のオブジェクトの内の1つまたは複数を示す、
条項1に記載のシステム。
【0071】
4.前記構成マネージャが、
前記第1のIVNで生じる追加のパケットのルーティングターゲットとして第2のPAEを指定するようにさらに構成され、前記追加のパケットが異なるサービスに送達される、
条項1に記載のシステム。
【0072】
5.前記構成マネージャが、
前記クライアントの要求で、前記クライアントの第2のIVNで確立された第2の計算インスタンスに前記プライベートネットワークアドレスを割り当て、
前記第2のIVNで生じ、前記特定のサービスに向けられるトラフィックを送るために使用される第2のPAEを確立する
ようにさらに構成され、
前記サービスの前記第1のノードが、
前記トンネリング手段によって生成される特定のカプセル化ヘッダの調査に基づいて、前記第1のノードで抽出された特定のベースラインパケットが前記第1の計算インスタンスで生成されたのか、それとも前記第2の計算インスタンスで生成されたのかを判断するように構成される、
条項1に記載のシステム。
【0073】
6.方法であって、
プロバイダネットワークのトンネリング手段で、第1のプライベートエイリアスエンドポイント(PAE)が、クライアントの代わりに確立された第1の分離仮想ネットワーク(IVN)で生じるトラフィックのためのルーティングターゲットとして指定されたと判断することであって、前記トラフィックが特定の公にアクセス可能なサービスに送達される、判断することと、
前記トンネリング手段で、前記第1のIVNの第1の計算インスタンスから前記特定の公にアクセス可能なサービスの公に宣伝されたネットワークアドレスに向けられるベースラインパケットを受信することと、
前記トンネリング手段によって、(a)前記ベースラインパケットのコンテンツ、及び(b)ソースIVNとしての前記第1のIVNの表示を備えるカプセル化パケットを前記特定のサービスの第1のノードに送信することと、
を含む、前記方法。
【0074】
7.前記カプセル化パケットがIPv6(インターネットプロトコルのバージョン6)に従ってフォーマットされ、前記ベースラインパケットがIPv4(前記インターネットプロトコルのバージョン4)に従ってフォーマットされる、条項6に記載の方法。
【0075】
8.前記特定のサービスが複数のオブジェクトに対する複数の操作タイプをサポートし、
前記クライアントから前記第1のIVNの構成マネージャで、前記第1のPAEに第1のアクセス制御方針を適用する要求を受信することであって、前記第1のアクセス制御方針が、前記第1のPAEを使用し、ルーティングターゲットとして提出される要求に関して、(a)前記複数の操作タイプの許可された操作タイプ、(b)前記複数の操作タイプの禁止された操作タイプ、(c)前記複数の操作タイプの内の特定の操作タイプが許可される時間間隔、または(d)前記複数の操作タイプの内の特定の操作タイプが許可される前記複数のオブジェクトの内の特定のオブジェクトの内の1つまたは複数を示す、受信することと、
前記ベースラインパケットに示される特定の要求に従って第1の操作を実行する前に、前記第1の操作が前記第1のアクセス制御方針によって許可されることを検証することと、
をさらに含む、条項6に記載の方法。
【0076】
9.前記第1のIVNで生じる追加のトラフィックのルーティングターゲットとして第2のPAEを指定することをさらに含み、前記追加のトラフィックが異なるサービスに送達される、条項6に記載の方法。
【0077】
10.前記第1の計算インスタンスが前記クライアントの要求で該第1の計算インスタンスに割り当てられた特定のプライベートIPアドレスを有し、
前記クライアントの代わりに第2のIVNを確立することであって、前記第2のIVNが第2の計算インスタンスを含む、第2のIVNを確立することと、
前記クライアントの要求で、前記第2の計算インスタンスに前記特定のプライベートIPアドレスを割り当てることと、
前記第2のIVNで生じ、前記特定のサービスに向けられるトラフィックを送るために使用される第2のPAEを確立することと、
前記トンネリング手段によって生成されるカプセル化ヘッダの調査に基づいて前記特定のサービスの特定のノードで、前記特定のノードで受信される特定のベースラインパケットが、前記特定のプライベートIPアドレスが割り当てられた前記第1の計算インスタンスで生成されたのか、それとも前記特定のプライベートIPアドレスが割り当てられた前記第2の計算インスタンスで生成されたのかを判断することと、
をさらに含む、条項6に記載の方法。
【0078】
11.前記カプセル化パケットが、前記プロバイダネットワークで実装された特許トンネリングプロトコルに従ってフォーマットされる、条項6に記載の方法。
【0079】
12.前記カプセル化パケットが、前記第1のPAEの識別子の表現を含んだヘッダを含む、条項6に記載の方法。
【0080】
13.プログラムインタフェースを介して前記プロバイダネットワークの構成マネージャで、前記第1のPAEを生成する要求を前記クライアントから受信することと、
前記要求に応えて前記構成マネージャによって、前記第1のPAEを表すメタデータエントリを記憶することと、
をさらに含む、条項6に記載の方法。
【0081】
14.プログラムインタフェースを介して前記プロバイダネットワークの構成マネージャで、PAEを使用するアクセスのために異なるサービスを登録する要求を受信することと、
前記要求に応えて前記構成マネージャによって、特定のサービスが特定のPAEとの関連付けのために前記クライアントによって選択できるサービスの集合体に前記異なるサービスを追加することと、
をさらに含む、条項6に記載の方法。
【0082】
15.前記異なるサービスが、前記プロバイダネットワークのリソースのセットを使用し、前記プロバイダネットワークの異なるクライアントによって実装され、
前記異なるサービスに向けられるベースラインパケットから引き出されるカプセル化パケットのコンテンツを抽出するように構成された特定のフロントエンドノードを含んだ、前記異なるサービスのために1つまたは複数のフロントエンドノードを確立すること、
をさらに含む、条項14に記載の方法。
【0083】
16.1つまたは複数のプロセッサでの実行時、プロバイダネットワークのトンネリング手段を実装するプログラム命令を記憶する非一過性のコンピュータアクセス可能記憶媒体であって、前記トンネリング手段が、
クライアントの代わりに前記プロバイダネットワークで確立された第1の分離仮想ネットワーク(IVN)から特定のサービスに向けられるトラフィックのルーティングターゲットとしての第1のプライベートエイリアスエンドポイント(PAE)の指定に従って、前記第1のIVNの第1の計算インスタンスで生成されたベースラインパケットを受信するように構成され、前記ベースラインパケットが前記特定のサービスのパブリックIP(インターネットプロトコル)アドレスをその宛先アドレスとして示し、
選択されたトンネリングプロトコルに従って、(a)前記ベースラインパケットのコンテンツの少なくとも一部分、及び(b)ソースIVNとして前記第1のIVNを示すヘッダ構成要素を備えるカプセル化パケットを生成し、
前記特定のサービスの第1のノードに前記カプセル化パケットを送信する
ように構成される、前記非一過性のコンピュータアクセス可能記憶媒体。
【0084】
17.前記カプセル化パケットがIPv6(前記インターネットプロトコルのバージョン6)に従ってフォーマットされ、前記ベースラインパケットがIPv4(前記インターネットプロトコルのバージョン4)に従ってフォーマットされる、条項16に記載の非一過性のコンピュータアクセス可能記憶媒体。
【0085】
18.前記トンネリング手段が、
第1のIVNとは異なるサービスに向けられるトラフィックのルーティングターゲットとして第2のPAEの指定に従って、前記第1のIVNの第2の計算インスタンスで生成される第2のベースラインパケットの表現を受信するようにさらに構成され、前記第2のベースラインパケットが前記異なるサービスのパブリックIPアドレスをその宛先アドレスとして示し、
前記選択されたトンネリングプロトコルに従って、(a)前記第2のベースラインパケットのコンテンツの少なくとも一部分、及び(b)ソースIVNとして前記第1のIVNを示すヘッダ構成要素を備える第2のカプセル化パケットを生成し、
前記異なるサービスの異なるノードに前記第2のカプセル化パケットを送信する
ようにさらに構成される、条項16に記載の非一過性のコンピュータアクセス可能記憶媒体。
【0086】
19.前記第1のカプセル化パケットが、前記第1の計算インスタンスのプライベート
IPアドレスの表示を含み、前記トンネリング手段が、
前記クライアントに代わって確立された第2のIVNから前記特定のサービスに向けられるトラフィックのルーティングターゲットとしての第2のPAEの指定に従って、前記第2のIVNの第2の計算インスタンスで生成された第2のベースラインパケットの表現を受信するようにさらに構成され、前記第2のベースラインパケットが前記特定のサービスの前記パブリックIPアドレスをその宛先アドレスとして示し、
前記選択されたトンネリングプロトコルに従って、(a)前記第2のベースラインパケットのコンテンツの少なくとも一部分、(b)ソースIVNとして前記第2のIVNを示すヘッダ構成要素、及び(c)前記プライベートIPアドレスの表示を備える第2のカプセル化パケットを生成するようにさらに構成され、
前記特定のサービスの前記第1のノードに前記第2のカプセル化パケットを送信するようにさらに構成され、前記特定のサービスの前記第1のノードが、前記第2のカプセル化パケットの調査に基づき、前記第2のベースラインパケットが前記第1の計算インスタンスで生成されたのか、それとも前記第2の計算インスタンスで生成されたのかを判断するように構成される、
条項16に記載の非一過性のコンピュータアクセス可能記憶媒体。
【0087】
20.前記カプセル化パケットが、前記第1のPAEの識別子の表現を含んだヘッダを備える、条項16に記載の非一過性のコンピュータアクセス可能記憶媒体。
【0088】
例示的なコンピュータシステム
少なくともいくつかの実施形態では、構成マネージャ、VMC、トンネリング手段、公にアクセス可能なサービスのノード等のプライベートエイリアスエンドポイントをサポートするために使用される構成要素の内の1つまたは複数を実装するサーバは、1つもしくは複数のコンピュータアクセス可能媒体を含むまたは1つもしくは複数のコンピュータアクセス可能媒体にアクセスするように構成される汎用コンピュータシステムを含んでよい。図10は、係る汎用コンピューティング装置9000を示す。示される実施形態では、コンピューティング装置9000は、入力/出力(I/O)インタフェース9030を介して(不揮発性メモリモジュール及び揮発性メモリモジュールの両方を含んでよい)システムメモリ9020に結合される1つまたは複数のプロセッサ9010を含む。コンピューティング装置9000は、I/Oインタフェース9030に結合されるネットワークインタフェース9040をさらに含む。
【0089】
多様な実施形態では、コンピューティング装置9000は、1つのプロセッサ9010を含んだユニプロセッサシステム、またはいくつかのプロセッサ9010(例えば、2、4、8、または別の適切な数)を含んだマルチプロセッサシステムであってよい。プロセッサ9010は、命令を実行できる任意の適切なプロセッサであってよい。例えば、多様な実施形態では、プロセッサ9010は、x86、PowerPc、SPARC、もしくはMIPS ISA、または任意の他の適切なISA等のさまざまな命令セットアーキテクチャ(ISA)のいずれかを実装する汎用プロセッサまたは組み込みプロセッサであってよい。マルチプロセッサシステムでは、プロセッサ9010のそれぞれは、一般に同じISAを実装してよいが、必ずしも実装しなくてもよい。いくつかの実施態様では、グラフィックスプロセシングユニット(GPU)が、従来のプロセッサの代わりに、または従来のプロセッサに加えて使用されてよい。
【0090】
システムメモリ9020は、プロセッサ(複数可)9010によってアクセス可能な命令及びデータを記憶するように構成されてよい。少なくともいくつかの実施形態では、システムメモリ9020は揮発性部分と不揮発性部分の両方を含んでよい。他の実施形態では、揮発性メモリだけが使用されてよい。多様な実施形態では、システムメモリ9020の揮発性部分はスタティックランダムアクセスメモリ(SRAM)、同期ダイナミックR
AM、または任意の他のタイプのメモリ等、任意の適切なメモリ技術を使用し、実装されてよい。(例えば、1つまたは複数のNVDIMMを含んでよい)システムメモリの不揮発性部分の場合、いくつかの実施形態では、NANDフラッシュデバイスを含んだフラッシュベースのメモリデバイスが使用されてよい。少なくともいくつかの実施形態では、システムメモリの不揮発性部分は、スーパーキャパシタまたは他の電力貯蔵装置(例えば電池)等の電源を含んでよい。多様な実施形態では、メムリスタベース抵抗ランダムアクセスメモリ(ReRAM)、3次元NAND技術、強誘電体RAM、磁気抵抗RAM(MRAM)、または多様なタイプの相変化メモリ(PCM)のいずれかがシステムメモリの少なくとも不揮発性部分に使用されてよい。示される実施形態では、上述されたそれらの方法、技法、及びデータ等の1つまたは複数の所望される機能を実装するプログラム命令及びデータが、コード9025及びデータ9026としてシステムメモリ9020の中に記憶されて示される。
【0091】
一実施形態では、I/Oインタフェース9030は、プロセッサ9010、システムメモリ9020、及びネットワークインタフェース9040または多様なタイプの永続記憶装置及び/または揮発性記憶装置等の他の周辺インタフェースを含んだ、デバイスの中の任意の周辺装置との間でI/Oトラフィックを調整するように構成されてよい。いくつかの実施形態では、I/Oインタフェース9030は、1つの構成要素(例えば、システムメモリ9020)から別の構成要素(例えば、プロセッサ9010)による使用に適したフォーマットに変換するために任意の必要なプロトコル、タイミング、または他のデータ変換を実行してよい。いくつかの実施形態では、I/Oインタフェース9030は、例えばペリフェラルコンポーネントインターコネクタ(PCI)バス規格またはユニバーサルシリアルバス(USB)規格の変形等の多様な周辺バスを通してアタッチされたデバイスのためのサポートを含んでよい。いくつかの実施形態では、I/Oインタフェース9030の機能は、例えば、ノースブリッジ及びサウスブリッジ等の2つ以上の別々の構成要素に分割されてよい。また、いくつかの実施形態では、システムメモリ9020へのインタフェース等のI/Oインタフェース9030の機能性のいくつかまたはすべてはプロセッサ9010の中に直接的に組み込まれてよい。
【0092】
ネットワークインタフェース9040は、コンピューティング装置9000と、例えば図1から図9に示される他のコンピュータシステムまたはデバイス等、1つまたは複数のネットワーク9050にアタッチされた他のデバイス9060との間でデータを交換できるように構成されてよい。多様な実施形態では、ネットワークインタフェース9040は、例えばイーサネット(登録商標)ネットワークのタイプ等の任意の適切な有線汎用データネットワークまたは無線汎用データネットワークを介する通信をサポートしてよい。さらに、ネットワークインタフェース9040は、アナログ音声ネットワークまたはデジタルファイバ通信ネットワーク等の電気通信/電話ネットワークを介して、ファイバチャネルSAN等のストレージエリアネットワークを介して、または任意の他の適切なタイプのネットワーク及び/またはプロトコルを介して通信をサポートしてよい。
【0093】
いくつかの実施形態では、システムメモリ9020は、対応する方法及び装置の実施形態を実施するための図1から図9について上述されたようにプログラム命令及びデータを記憶するように構成されたコンピュータアクセス可能媒体の一実施形態であってよい。しかしながら、他の実施形態では、プログラム命令及び/またはデータは、異なるタイプのコンピュータアクセス可能媒体で受信、送信、または記憶されてよい。一般的に言えば、コンピュータアクセス可能媒体は、例えばI/Oインタフェース9030を介してコンピューティング装置9000に結合されるディスクまたはDVD/CD等、磁気媒体または光媒体等の非一過性の記憶媒体またはメモリ媒体を含んでよい。また、非一過性のコンピュータアクセス可能記憶媒体は、システムメモリ9020または別のタイプのメモリとしてコンピューティング装置9000のいくつかの実施形態に含まれてよいRAM(例えば
、SDRAM、DDR SDRAM、RDRAM、SRAM等)等の任意の揮発性媒体または不揮発性媒体を含んでもよい。さらに、コンピュータアクセス媒体は伝送媒体、またはネットワークインタフェース9040を介して実施され得るように、ネットワーク及び/もしくは無線リンク等の通信媒体を介して伝達される電気信号、電磁信号、もしくはデジタル信号等の伝送信号を含んでよい。図10に示されるもののような複数のコンピューティング装置の部分またはすべては、多様な実施形態で説明された機能性を実装するために使用されてよい。例えば、さまざまな異なるデバイス及びサーバで実行中のソフトウェア構成要素は機能性を提供するために協調してよい。いくつかの実施形態では、説明される機能性の部分は、汎用コンピュータシステムを使用して実装されることに加えて、または実装される代わりに、ストレージデバイス、ネットワークデバイス、または特殊目的コンピュータシステムを使用し、実装されてよい。本明細書で使用される用語「コンピューティング装置」は、少なくともすべてのこれらのタイプのデバイスを指し、これらのタイプのデバイスに制限されない。
【0094】
結論
多様な実施形態は、コンピュータアクセス可能媒体に対して上記説明に従って実施される命令及び/またはデータを受信すること、送信すること、または記憶することをさらに含んでよい。一般的に言えば、コンピュータアクセス可能媒体は、例えば、ディスクもしくはDVD/CD-ROM等、磁気媒体もしくは光媒体、RAM(例えば、SDRAM、DDR、RDRAM、SRAM等の)RAM、ROM等の揮発性媒体若しくは不揮発性媒体等の記憶媒体またはメモリ媒体、並びに伝送媒体またはネットワーク及び/もしくは無線リンク等の通信媒体を介して伝達される電気信号、電磁信号またはデジタル信号等の伝送信号を含んでよい。
【0095】
図に示され、本明細書に説明される多様な方法は方法の例示的な実施形態を表している。方法はソフトウェア、ハードウェア、またはその組合せで実装されてよい。方法の順序は変更されてよく、多様な要素が追加され、並べ替えられ、結合され、省略され、修正される等してよい。
【0096】
多様な変更形態及び変更は、本開示の利益を有する当業者に明らかになるように行われてよい。すべての係る変更形態及び変更を、したがって制限的な意味よりむしろ例示的な意味で考慮される上記説明を包含することが意図される。
図1
図2
図3a
図3b
図4
図5
図6
図7
図8
図9
図10