JP6314236B2 - トラフィックポリシーの実施をサポートするエンティティハンドルレジストリ - Google Patents

トラフィックポリシーの実施をサポートするエンティティハンドルレジストリ Download PDF

Info

Publication number
JP6314236B2
JP6314236B2 JP2016547094A JP2016547094A JP6314236B2 JP 6314236 B2 JP6314236 B2 JP 6314236B2 JP 2016547094 A JP2016547094 A JP 2016547094A JP 2016547094 A JP2016547094 A JP 2016547094A JP 6314236 B2 JP6314236 B2 JP 6314236B2
Authority
JP
Japan
Prior art keywords
network
network entity
network traffic
entry
entity entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016547094A
Other languages
English (en)
Other versions
JP2017507563A (ja
Inventor
アドグラ,イーデン・グレイル
Original Assignee
アマゾン・テクノロジーズ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アマゾン・テクノロジーズ・インコーポレーテッド filed Critical アマゾン・テクノロジーズ・インコーポレーテッド
Publication of JP2017507563A publication Critical patent/JP2017507563A/ja
Application granted granted Critical
Publication of JP6314236B2 publication Critical patent/JP6314236B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5022Ensuring fulfilment of SLA by giving priorities, e.g. assigning classes of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5029Service quality level-based billing, e.g. dependent on measured service level customer is charged more or less

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

商品ハードウェアのための仮想化技術の出現は、多様なニーズを有する多くの顧客のための大規模コンピューティングリソースを管理することに関して利点を提供し、さまざまなコンピューティングリソースを、複数の顧客が効果的に、安全に共有することを可能にしている。たとえば、仮想化技術は、1つの物理的なコンピューティングマシンを複数のユーザ間で共有することを、各ユーザに、1つの物理的なコンピューティングマシンによってホストされている1つまたは複数の仮想マシンを提供することによって可能にすることができ、各そのような仮想マシンは、明らかな論理コンピューティングシステムとして動作しているソフトウェアシミュレーションであり、それは、ユーザに、彼らが所与のハードウェアコンピューティングリソースの唯一の操作者及び管理者である、という錯覚を与え、一方で、また、さまざまな仮想マシン間のアプリケーション隔離とセキュリティとを提供する。別の例としては、仮想化技術は、データストレージハードウェアを複数のユーザ間で共有することを、各ユーザに、複数のデータストレージデバイスに渡って分散され得る仮想化データストアを提供することによって可能にすることができ、各そのような仮想化データストアは、ユーザに、彼らがデータストレージリソースの唯一の操作者及び管理者である、という錯覚を与える、明らかな論理的データストアとして動作している。
仮想化技術は、クライアントシステムまたはクライアントデバイスのための、多くの異なる種類のサービスを作成し、または異なる機能を実行するために、利用され得る。たとえば、仮想マシンを使用して、電子商取引プラットフォームなどの、外部顧客のためのネットワークベースのサービスを実装することができる。また、仮想マシンを使用して、企業の内部ネットワークの一部として実装された情報技術(IT)サービスなどの、内部顧客のためのサービスまたはツールを実装することができる。したがって、仮想マシンを活用して実行されるサービスまたは機能によって提供される、さまざまな機能またはタスクを実行するために、ネットワークトラフィックを、これらの仮想マシンに向かわせることができる。許可されたアクセスまたは制御されたアクセスが、仮想マシンで受信するネットワークトラフィックに対して実施されることを保証するために、仮想マシンへのネットワークトラフィックと、仮想マシンからのネットワークトラフィックとの両方を制御する、ネットワークトラフィックポリシーを用いることができる。仮想マシンが動作するネットワーク環境が変化し得るために、ネットワークトラフィックポリシーは、それに応じて変化することができる。しかしながら、その数が多くなり得、または少なくなり得る、多様なセットの仮想マシンのためのトラフィックポリシーを管理することは、複数の変更をネットワークトラフィックポリシーに実装する時、重荷であると判明し得る。
いくつかの実施形態による、ネットワーク内の、ネットワークエンティティレジストリと複数のネットワークエンティティとを示した図である。 いくつかの実施形態による、ネットワークエンティティレジストリ内のネットワークエンティティエントリの更新を示したデータフロー図である。 いくつかの実施形態による、ネットワークエンティティエントリと、ネットワークエンティティハンドルを含むネットワークトラフィックポリシーと、セキュリティグループと、の実施例を示したブロック図である。 いくつかの実施形態による、ネットワークトラフィックコントローラにおいて実施されるネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルのためのネットワークエンティティレジストリを実装する、仮想コンピューティングリソースプロバイダを示したブロック図である。 いくつかの実施形態による、仮想化ホストのためのネットワークトラフィックコントローラによるネットワークトラフィック処理を示したブロック図である。 いくつかの実施形態による、ネットワークエンティティエントリオーナーと、ネットワークエンティティエントリ変更者と、ネットワークエンティティレジストリと、の間の相互作用を示したブロック図である。 いくつかの実施形態による、トラフィックソースと、ネットワークトラフィックコントローラと、ネットワークエンティティレジストリとの間の相互作用を示したブロック図である。 いくつかの実施形態による、プロバイダネットワークに対して実施されるネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルのためのネットワークエンティティレジストリを実装するための、さまざまな方法と手法とを示したハイレベルフローチャートである。 いくつかの実施形態による、ネットワークエンティティエントリに対する変更の許可をネットワークエンティティエントリオーナーから取得するための、さまざまな方法と手法とを示したハイレベルフローチャートである。 いくつかの実施形態による、ネットワークエンティティハンドルのためのネットワークアドレス情報を受信するネットワークトラフィックコントローラを、ネットワークエンティティレジストリ内のネットワークエンティティエントリに登録するための、さまざまな方法と手法とを示したハイレベルフローチャートである。 いくつかの実施形態による、更新ネットワークエンティティエントリのための指定のネットワークアドレス情報を取得するための、さまざまな方法と手法とを示したハイレベルフローチャートである。 いくつかの実施形態による、例示的なコンピューティングシステムを示したブロック図である。
実施形態を、本明細書では、いくつかの実施形態と例示的な図面とのための一例として説明したが、実施形態が、説明する実施形態または図面に限定されない、ということを当業者は認識する。図面及びその説明が、実施形態を開示する特定の形態に限定することを意図せず、反対に、意図することは、添付の特許請求の範囲によって定める精神と範囲との中に含まれる、すべての変更物と同等物と代替物とを含むことである、ということを理解すべきである。本明細書で使用する見出しは、構成目的だけのためであり、本明細書または特許請求の範囲を限定するために使用されることを意図していない。本出願を通して使用する、「できる」という言葉は、強制的な意味(つまり、〜しなければならないことを意味する)ではなく、許可的な意味(つまり、〜を行う潜在力を有することを意味する)で使用されている。同様に、「含む(include)」、「含む(including)」、及び「含む(includes)」という言葉は、それに限定することではなく、含むことを意味する。
本明細書で説明するシステム及び方法は、いくつかの実施形態による、プロバイダネットワークに対して実施されるネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルのための、ネットワークエンティティレジストリを実装することができる。プロバイダネットワークは、クライアント、操作者、または他の顧客に、1つまたは複数のコンピューティングリソースへのアクセス及び/またはその制御を提供することができる。これらのリソースは、ネットワークを介した通信のために構成された、さまざまな種類のコンピューティングシステムまたはデバイスを含むことができる。たとえば、いくつかの実施形態では、プロバイダネットワークは、仮想コンピューティングリソースを、クライアント、ユーザ、または他の種類の顧客に、リザーブドコンピュートインスタンス(たとえば、ユーザに、彼らが所与のハードウェアコンピューティングリソースの唯一の操作者及び管理者である、という錯覚を与える、明らかな論理コンピューティングシステムとして動作している仮想マシン)という形態で、提供することができる。プロバイダネットワークのクライアントは、(コンピュートインスタンスなどの)1つまたは複数のコンピュートリソースを予約して(つまり、購入または買って)、さまざまな機能、サービス、手法、及び/またはアプリケーションを実行することができる。これらの機能、サービス、手法、及び/またはアプリケーションを実行することの一部として、ネットワークトラフィックを、異なるコンピュートリソースにおいて、許可し、禁止し、または管理することができる。たとえば、電子商取引ウェブサイトのための認証サービスを提供する複数のサーバなどのコンピュートリソースのセットは、特定のインターネットプロトコル(IP)アドレスのセットからのネットワークトラフィックのみを受け取ることができる。このような制約、許可、禁止、または他のネットワークトラフィック制御は、ネットワークトラフィックポリシー内に記述され得る(たとえば、「IPアドレスYからのポートX上のトラフィックを許可する」。プロバイダのクライアントは、ネットワークトラフィックポリシーが複数のコンピュートリソースに対しても同様に実施されるように、ネットワークトラフィックポリシーを構成して、複数のコンピュートリソースのためのセキュリティグループを構成することができる。セキュリティグループは、複数のネットワークトラフィック制御ポリシーを適用することができ、ネットワークトラフィック制御ポリシーは、1つまたは複数のネットワークフロー制御ポリシーを有することができる。
コンピューティングリソースを活用するプロバイダのクライアントは、新しいリソースを取得することができる柔軟性を利用することができる。たとえば、仮想コンピュートリソースは、急成長しているウェブサービスを実装するプロバイダのクライアントためなどの、需要を満たすように迅速に大きさを変更し得る。コンピュートインスタンスの数が増加するにつれて、異なるセキュリティポリシーとセキュリティグループとを管理することは、複雑で、時間のかかるものになり得る。たとえば、コンピュートインスタンスは、複数の異なるセキュリティグループに属することができ、それらの各々は、複数の異なるネットワークトラフィックポリシーを実施することができる。ネットワークトラフィックポリシーに対する各変更のための各セキュリティグループを手作業で更新することは、プロバイダのクライアントにとってコストがかかると判明し得、変わりゆくネットワークトラフィック条件に対して迅速に反応するためのネットワークトラフィックポリシー内の変更を、許可しないことがある。
図1は、いくつかの実施形態による、ネットワーク内の、ネットワークエンティティレジストリと複数のネットワークエンティティとを示した図である。ネットワークトラフィックポリシー、及びそれらに関連するセキュリティグループは、いくつかの実施形態では、すべての影響を受けるグループまたはポリシーを手作業で変更することなく、更新され得る。たとえば、ネットワークトラフィックポリシーは、ネットワークエンティティレジストリ内に保持されている、ネットワークエンティティエントリに対するネットワークエンティティハンドルを含むことができる。図1に示した通り、さまざまな実施形態では、プロバイダネットワーク100は、ネットワークエンティティレジストリ120を実装して、異なるネットワークエンティティのためのエントリを、プロバイダネットワーク100内部とプロバイダネットワーク100外部との両方で、保持することができる。ネットワークエンティティは、一般に、データを他のコンピューティングシステムまたはデバイスに送信することができる、またはデータを他のコンピューティングシステムまたはデバイスから受信することができる(つまり、ネットワークトラフィック)、1つまたは複数の異なるコンピューティングシステムまたはデバイスであってよい。ネットワークエンティティは、特定のホストを識別することができる1つのIPアドレスとして、(IPアドレスとマスクとを含むことができる)ネットワークのサブネットを識別することができるIPアドレスの範囲として、異なるIPアドレスに変換され得るドメインまたはホスト名として、仮想プライベートネットワーク(VPN)などのさまざまなネットワーク機構のためのエンドポイントとして、セキュリティグループによって定義される異なるエンティティから成るグループとして、または特定のエンティティを見つける際に使用される任意の他の情報として、識別され得るが、これらに限定されない。さまざまな実施形態では、ネットワークエンティティは、任意の、または関連していないアドレス可能な要素に見え得る。ネットワークエンティティのエントリは、いくつかの実施形態では、ネットワークエンティティレジストリ120内に保持され得、エンティティのためのネットワークアドレス情報またはネットワーク位置情報と、ハンドル名または識別子と、を含むことができる。いくつかの実施形態では、ネットワークエントリのさまざまな部分のバージョン番号及び/または1つまたは複数の以前のバージョン(たとえば、ネットワークアドレス情報)などの、ネットワークエンティティエントリのための他の情報を、また、保持することができる。ネットワークエンティティエントリの展開スケジュール(たとえば、いつ及び/またはどのようにネットワークアドレス情報を提供するか)を、保持することができる。いくつかの実施形態では、ネットワークエンティティレジストリ120は、また、特定のネットワークエンティティエントリへのハンドルを含むネットワークトラフィックポリシーを実施する、ネットワークトラフィックコントローラまたは他のシステム、構成要素、またはデバイスを記述した情報を、保持することができる。
たとえば、ネットワークエンティティ182は、1つのシステム(またはコンピューティングデバイスから成るシステムまたはネットワークのためのエンドポイント)であってよい。たとえば、ネットワークエンティティレジストリは、アドレス可能要素122aのIPアドレスなどの、ネットワークエンティティ182のためのネットワークアドレス情報を指定する、ネットワークエンティティ182のエントリを保持することができる。ネットワークトラフィックコントローラ122bは、ネットワークアドレス可能要素122aへのアクセスと、ネットワークアドレス可能要素122aからのアクセスとを、プロバイダネットワーク100を介して提供するように構成され得る。別の実施例では、ネットワークエンティティ184は、複数のアドレス可能要素124aとアドレス可能要素126aとを、(それらの各ネットワークトラフィックコントローラ124bとネットワークトラフィックコントローラ126bと共に)含むことができる。ネットワークエンティティ184のためのネットワークアドレス情報は、IPアドレスの範囲を含むことができ、または識別ネットワークエンティティ184を、サブネットとして特定することができる。エントリをまた、アドレス可能要素から成るグループであるネットワークエンティティのために保持することができ、アドレス可能要素は、(ネットワークエンティティ184のためサブネットと)同じサブネットのメンバであるかもしれず、そうでないかもしれない。たとえば、ネットワークエンティティ174は、複数のアドレス可能要素132a、134a、及び136a(と、それらの各ネットワークトラフィックコントローラ132b、134b、及び136bと)を含むセキュリティグループであってよく、複数のアドレス可能要素は、共通のネットワークトラフィックポリシーを実施するように共に関連付けられ得る。アドレス可能要素132aは、他のコンピューティングシステムまたはデバイスから成るネットワークへのエンドポイントであってよく、一方で、アドレス可能要素134a及びアドレス可能要素136aは、1つのコンピューティングシステムへのアドレス可能要素であってよい。ネットワークエンティティは、可変の数及び/または大きさを含むことができる。たとえば、ネットワークエンティティ172は、ネットワークエンティティ174よりもアドレス可能要素が1つ少ない(アドレス可能要素142a及びアドレス可能要素144a、及びそれらの各ネットワークトラフィックコントローラ142b及び144b)セキュリティグループである。プロバイダネットワーク100の外部のネットワークエンティティは、また、対応するエントリを、ネットワークエンティティレジストリ120内に有することができ、それは、外部エンティティからのネットワークトラフィック110が、プロバイダネットワーク100内のさまざまなリソースに向けられ得るからである。
さまざまな実施形態では、ネットワークエンティティレジストリ120は、プロバイダネットワークのためのネットワークトラフィックポリシーを管理するためのサービスの一部として実装され得る。たとえば、ネットワークエンティティレジストリは、セキュリティグループ管理サービスの一部として実装され得、セキュリティグループ管理サービスは、プロバイダネットワークのリソースのために確立されたセキュリティグループのためのネットワークトラフィックポリシーを、管理または調整することができる。セキュリティグループ管理サービスは、地図サービスまたは他の経路構成要素またはサービスなどの他のサービスと通信して、ネットワークエンティティエントリのための指定ネットワークアドレス情報を、ネットワークトラフィック制御ポリシーを実施する他のシステムに提供することができる。アドレス可能要素に隣接して例示されているが、ネットワークトラフィックコントローラは、いくつかの実施形態では、アドレス可能要素へのネットワークトラフィックがそれを通って流れる別のシステムまたはデバイス上に配置され得る。
図2は、いくつかの実施形態による、ネットワークエンティティレジストリ内でのネットワークエンティティエントリの作成及び/または更新を示したデータフロー図である。新しいネットワークエンティティは登録され、及び/またはネットワークエンティティエントリ272に対する更新は、(セキュリティグループ管理サービス210の一部として実装されているとして例示された)ネットワークエンティティレジストリ220で受信される。更新に対応する変更は、ネットワークエンティティレジストリ220の各エントリ内で作成され、新しいエンティティエントリが作成される。データベースまたは他のストレージスキームなどの、さまざまな異なる構造化データストアを使用して、ネットワークエンティティエントリを格納することができる。いくつかの実施形態では、認証と許可との資格及び/または手順は、新しいネットワークエンティティの登録またはネットワークエンティティエントリの更新を許可する前に、満たされ得る。
更新ネットワークエンティティエントリ(または新しいネットワークエンティティエントリ)については、ネットワークエンティティエントリ内に指定されたネットワークアドレス情報は、ネットワークエンティティエントリ282へのハンドル(たとえば、ハンドルIDまたは他のハンドル参照)を含むネットワークトラフィック制御ポリシーを実施するネットワークトラフィックコントローラに、提供され得る。ネットワークアドレス情報は、ネットワークトラフィックコントローラに、異なる方法で提供され得る。たとえば、いくつかの実施形態では、プッシュ手法を実装して、更新または新しいエントリが受信または保持された時に、ネットワークエンティティエントリのためのネットワークアドレス情報を、ネットワークトラフィックコントローラに送信することができる。たとえば、セキュリティグループ管理サービス210は、特定のセキュリティグループに関連するネットワークトラフィックポリシーに関連する情報と、特定のセキュリティグループのメンバーシップとを、保持することができる。したがって、セキュリティグループA242のためのネットワークトラフィックコントローラ252は、セキュリティグループ管理サービス210内で記述され、一覧にされ、またはインデックスを付けられ得、ネットワークエンティティエントリのためのネットワークアドレス情報は、このメンバーシップ情報に基づいて識別されたネットワークトラフィックコントローラ252に送信され得る。同様に、セキュリティグループB244及びセキュリティグループC、246については、セキュリティグループ管理サービス210に、セキュリティグループBを実施するネットワークトラフィックコントローラ254と、セキュリティグループCを実施するネットワークトラフィックコントローラ256と、を識別することを可能にするメンバーシップ情報が、保持され得る。代替的に、いくつかの実施形態では、ネットワークトラフィックコントローラ252、ネットワークトラフィックコントローラ254、及びネットワークトラフィックコントローラ256は、(たとえば、ポーリング動作を使用して)各ネットワークエンティティハンドルのための、新しいネットワークエンティティエントリまたは更新ネットワークエンティティエントリのネットワークアドレス情報を、要求することができる。さまざまな実施形態では、ネットワークトラフィックコントローラ252、ネットワークトラフィックコントローラ254、及びネットワークトラフィックコントローラ256は、プロバイダネットワーク内でネットワークトラフィックポリシーを実施する、多数のネットワークトラフィックコントローラのサブセットであってよい。たとえば、新しいネットワークエンティティエントリまたは更新ネットワークエンティティエントリのためのネットワークエンティティハンドルを含まないネットワークトラフィックポリシーを実施する、それらのネットワークトラフィックコントローラは、さまざまな実施形態では、ネットワークアドレス情報282を受信しないかもしれない。
上記で説明した通り、ネットワークトラフィックポリシーは、ネットワークエンティティレジストリ内に保持された、ネットワークエンティティエントリへのネットワークエンティティハンドルを含むことができる。図3は、いくつかの実施形態による、ネットワークエンティティエントリと、ネットワークエンティティハンドルを含むネットワークトラフィックポリシーと、セキュリティグループと、の実施例を示したブロック図である。ネットワークエンティティレジストリ310は、エントリ330、エントリ332、及びエントリ334などの、複数のネットワークエンティティエントリを保持する。各ネットワークエンティティエントリは、IPアドレス、IPアドレスの範囲、マスク、及び、ネットワークエンティティを特定する及び/またはそれと通信するための、さまざまな他の形態のネットワークアドレス情報などの、ネットワークエンティティのためのネットワークアドレス情報を含むことができる。ネットワークエンティティエントリは、また、ハンドル参照または識別子などの、ハンドルを含むことができ、ハンドルは、ネットワークトラフィックポリシーのためのネットワークアドレス情報を指定するネットワークエンティティエントリを示すために、ネットワークトラフィックポリシー内に含まれ得る。いくつかの実施形態では、特定のバージョンのネットワークエンティティエントリを識別するバージョン識別子(たとえば、バージョン番号またはタイムスタンプ)を、保持することができる。いくつかの実施形態では、複数の以前のバージョンのエンティティエントリを、現在のエンティティエントリに加えて保持することができ、以前のバージョンのエンティティエントリは、たとえば、変更を元に戻すために、ネットワークトラフィックコントローラに提供され得る。
ネットワークトラフィックポリシーは、多数の異なる種類のネットワークトラフィック制御を実装することができる。たとえば、いくつかのネットワークトラフィックポリシーは、トラフィックを許可または禁止するように構成され得る。ネットワークトラフィックポリシー344aは、ネットワークエンティティハンドル340から入ってくる、ポート9876上のTCPトラフィックを許可する。一方、ネットワークトラフィックポリシー344bは、ネットワークエンティティハンドル344に出ていく、ポート443上のTCPトラフィックを許可する。また、ネットワークトラフィックポリシーを使用して、スロットル制限トラフィックなどの、ネットワークトラフィックポリシー346aで例示したネットワークフロー制御を実施して、ネットワークトラフィックポリシー346bでのように、トラフィックを特定の順序で扱い、またはトラフィックを特定の方法で格納することができる。いくつかの実施形態では、ネットワーク帯域幅調整を、ネットワークエンティティハンドルを含むネットワークトラフィックポリシーを使用して行うことができる。特定のプロトコル、ポート、及び/またはトラフィックの種類などの、さまざまな異なる種類の属性または情報を、ネットワークトラフィックポリシー内に含むことができる。図1で上述した通り、ネットワークエンティティは、複数のシステムまたはデバイス、サブネット、VPNのためのエンドポイント、ゲートウェイ、または他のセキュリティ機構と、複数のネットワークエンティティのセキュリティグループなどのグループと、を含むことができる。したがって、ネットワークトラフィックポリシーは、これらのエンティティからのトラフィックを制御するように、多数の異なる方法で構成され得、したがって、ネットワークトラフィックポリシーの先の実施例は、限定することを意図していない。
ネットワークエンティティハンドルは、ネットワークエンティティハンドルが参照する特定のネットワークエンティティエントリ内の指定ネットワークアドレス情報を用いて、拡張され得る。たとえば、ネットワークエンティティハンドル340が「bob_network」というハンドル参照を有する場合、ハンドル「bob_network」を含むネットワークエンティティエントリ330は、ネットワークトラフィックポリシー344aとネットワークトラフィックポリシー346bとを実施するために、ネットワークアドレス情報を指定して、ハンドル340を拡張することができる。同様に、ネットワークエンティティハンドルは、エンティティ2ABY1などのIDを有することができ、IDも、また、ネットワークエンティティエントリ344内に含まれている。
いくつかの実施形態では、ネットワークトラフィックポリシーを、特定のセキュリティグループと関連付け、特定のセキュリティグループのメンバである、または特定セキュリティグループに関連する、すべてのコンピューティングリソースに実施することができる。たとえば、ネットワークトラフィックポリシー344a及びネットワークトラフィックポリシー344bは、両方とも、セキュリティグループ302aのメンバであるコンピューティングリソースに実施されている。同様に、ネットワークトラフィックポリシー346a及びネットワークトラフィックポリシー346bは、両方とも、セキュリティグループ302bのメンバであるコンピューティングリソースまたはセキュリティグループ302bに関連するコンピューティングリソースに実施されている。コンピューティングリソースは、いくつかの実施形態では、複数のセキュリティグループに関連付けられ得る。したがって、特定のコンピュートインスタンスなどの特定のコンピューティングリソースは、セキュリティグループ302aとセキュリティグループ302bとのメンバであってよい。
先の説明が、限定することを意図せず、単に、プロバイダネットワークとネットワークエンティティレジストリとネットワークトラフィックポリシーとの実施例として提供されている、ということに留意すること。さまざまな他の構成要素が、ネットワークエンティティエントリのためのハンドルを含むネットワークトラフィックポリシーを実施することにおいて、相互作用し、または補助することができる。
本明細書は、次に、仮想コンピューティングリソースプロバイダの概要を含み、仮想コンピューティングリソースプロバイダは、プロバイダネットワークに対して実施されるネットワークトラフィックポリシー内に含まれる、ネットワークエンティティハンドルのためのネットワークエンティティレジストリを実装することができる。次いで、仮想コンピューティングリソースプロバイダのさまざまな実施例を説明し、それらには、異なる構成要素/モジュール、または仮想コンピューティングリソースプロバイダを実装することの一部として用いられ得る構成要素/モジュールの構成、が含まれる。次いで、プロバイダネットワークに対して実施されるネットワークトラフィックポリシー内に含まれる、ネットワークエンティティハンドルのためのネットワークエンティティレジストリを実装するための、多数の異なる方法及び手法が説明され、それらの一部を、添付のフローチャートに例示する。最後に、さまざまな構成要素、モジュール、システム、デバイス、及び/またはノードを実装することができる、例示的なコンピューティングシステムの説明を提供する。さまざまな実施例を、本明細書を通して提供する。
図4は、いくつかの実施形態による、ネットワークトラフィックコントローラにおいて実施されるネットワークトラフィックポリシー内に含まれる、ネットワークエンティティハンドルのためのネットワークエンティティレジストリを実装する、仮想コンピューティングリソースプロバイダを示したブロック図である。プロバイダネットワーク400は、企業または公的組織などのエンティティによって、インターネット及び/または他のネットワークを介してアクセス可能な(さまざまな種類のクラウドベースの計算またはストレージなどの)1つまたは複数のサービスを、クライアント450に提供するために、設定され得る。プロバイダネットワーク400は、プロバイダネットワーク400によって提供されるインフラストラクチャとサービスとを実装し、分散させるために必要な、物理的コンピュータサーバ及び/または仮想コンピュータサーバから成る集合などのさまざまなリソースプールをホストしている多数のデータセンタ、ストレージデバイス、ネットワーキング装置など、を含むことができる。いくつかの実施形態では、プロバイダネットワーク300は、コンピューティングリソースを提供することができる。これらのコンピューティングリソースは、いくつかの実施形態では、クライアントに、仮想または物理的なコンピュートインスタンスまたはストレージインスタンスなどの、「インスタンス」424と呼ばれる単位で提供され得る。
仮想コンピュートインスタンス424は、たとえば、(CPUの種類及び数と、メインメモリの大きさ、などとを示すことによって指定され得る)指定の計算能力と、指定のソフトウェアスタック(たとえば、同様にハイパーバイザ上で動くことができる特定のバージョンのオペレーティングシステム)と、を有する、1つまたは複数のサーバを備えることができる。多数の異なる種類のコンピューティングデバイスを、単体で、または組み合わせて、使用して、プロバイダネットワーク400のコンピュートインスタンス424を、異なる実施形態で実装することができ、それらには、汎用または特殊用途のコンピュータサーバと、ストレージデバイスと、ネットワークデバイスなどが含まれる。いくつかの実施形態では、インスタンスのクライアント450または他の任意の他のユーザは、ネットワークトラフィックを、コンピュートインスタンス424に向けるように構成(及び/または許可)され得る。
コンピュートインスタンス424は、クライアント450のアプリケーションを、たとえば、クライアント450がインスタンス424にアクセスする必要なしに実行するのに適切な、アプリケーションサーバインスタンス、Java(商標)仮想マシン(JVM)、汎用または特殊用途オペレーティングシステム、Ruby,Perl,Python、C、C++などのさまざななインタープリタ型言語またはコンパイル型言語をサポートするプラットフォーム、または高性能コンピューティングプラットフォーム)などの、さまざまな異なるプラットフォームを運営し、または実装することができる。いくつかの実施形態では、コンピュートインスタンスは、予想される稼働率に基づいて、異なる種類または構成を有する。特定のコンピュートインスタンスの稼働率は、そのインスタンスが予約されている時間の合計量に対する、そのインスタンスが作動している時間の量の割合として定義され得る。稼働率を、また、いくつかの実施形態では、利用と呼ぶことができる。クライアントが、コンピュートインスタンスを、そのインスタンスが予約されている時間のうちの比較的小さな割合(たとえば、1年間の予約のうちの30%〜35%)で使用することを予期する場合、クライアントは、インスタンスを、低稼働率インスタンスとして予約するように決定し、関連価格ポリシーに従って、割引時間使用料を支払うことができる。クライアントが、インスタンスがほとんどの時間で作動していることを要求する定常状態作業負荷を有すると予期する場合、クライアントは、高稼働率インスタンスを予約し、より低い時間使用料を潜在的に払うことができるが、いくつかの実施形態では、時間料金は、価格ポリシーに従って、実際の使用時間の量に関わらず、予約期間全体に対して課金され得る。価格ポリシーに従った中稼働率インスタンスの選択肢も、いくつかの実施形態では支持され得、そこでは、前払いコスト及び時間毎のコストは、対応する高稼働率コストと低稼働率コストとの間になる。
コンピュートインスタンス構成は、また、数値計算アプリケーション(たとえば、高トラフィックウェブアプリケーション、広告サービス、バッチ処理、ビデオ符号化、分散分析、高エネルギー物理、ゲノム分析、及び計算流体力学)のための計算作業負荷、グラフィックを駆使する作業負荷(たとえば、ゲームストリーミング、3Dアプリケーションストリーミング、サーバ側グラフィック作業負荷、レンダリング、財務モデリング、及び工学的設計)、メモリを駆使する作業負荷(たとえば、高性能データベース、分散メモリキャッシュ、インメモリ分析、ゲノムアセンブリ及び分析)、及びストレージ最適化作業負荷(たとえば、データウェアハウスジング、及びクラスタファイルシステム)などの、汎用または特殊用途を有するコンピュートインスタンスを含む。仮想CPUコアの具体的な数などのコンピュートインスタンスの大きさ、メモリ、キャッシュ、ストレージ、及び任意の他の性能特性。コンピュートインスタンスの構成は、また、それらの場所、特定のデータセンタ内、利用可能ゾーン、地域、場所、など...、及び(予約コンピュートインスタンスの場合)予約期間の長さを含むことができる。
さまざまな実施形態では、コンピュートインスタンスを、1つまたは複数の異なるセキュリティグループに関連付けることができる。上述した通り、セキュリティグループは、ネットワークトラフィックのための1つまたは複数のネットワークトラフィックポリシーを、セキュリティグループのメンバにおいて実施することができる。セキュリティグループ内のメンバーシップは、コンピュートインスタンスの物理的な場所または実装形態に関連していないことがある。セキュリティグループレジェンド482は、セキュリティグループ内のメンバーシップを表示するために使用される、さまざまな異なるシェーディングを例示している。たとえば、同じ仮想化ホスト420a上に実装された、コンピュートインスタンス424a1、コンピュートインスタンス424a2、コンピュートインスタンス424a3、及びコンピュートインスタンス424a4は、異なるセキュリティグループAとBとCとに属することができる。セキュリティグループBのための、インスタンス424b1、インスタンス424b4、及びインスタンス424n3などの、他のグループメンバは、異なる物理的な位置で実装される。同様に、セキュリティグループAのための、インスタンス424a1、インスタンス424a3、インスタンス424b2、及びインスタンス424n2、及びセキュリティグループCのための、インスタンス424a2、インスタンス424b3、インスタンス424c1、及びインスタンス424n4は、また、異なって配置される。特定のセキュリティグループのメンバまたは関連の数は、変化し得、この先の説明及び例示は、特定のセキュリティグループ内のグループメンバの数に関して、限定することを意図していない。各セキュリティグループA、B、及びCは、各ネットワークトラフィックポリシーを、それぞれのメンバインスタンスに対して実施することができる。いくつかの実施形態では、各セキュリティグループ内の1つまたは複数のネットワークトラフィックポリシーは、(図2に関して上記で説明したものと)同じネットワークエンティティハンドルを含むことができる。先の説明は、限定することを意図せず、単に、プロバイダネットワーク400によって提供されるコンピュートインスタンス424について可能な、多くの異なる構成を例示している。
図4に示した通り、仮想化ホスト420a、420bから420nなどの仮想化ホスト420は、いくつかの実施形態では、複数のコンピュートインスタンス424を実装及び/または管理することができ、図12に関連して以下に説明するコンピューティングシステム2000などの、1つまたは複数のコンピューティングデバイスであってよい。仮想化ホスト320は、仮想化管理モジュール422a、422bから422nなどの仮想化管理モジュール422を含むことができ、仮想化管理モジュール422は、多数の異なる、クライアントがアクセス可能な仮想マシンまたはコンピュートインスタンス424を、インスタンス化または管理することができる。仮想化管理モジュール422は、たとえば、ハイパーバイザと、いくつかの実施形態では「ドメイン−ゼロ」オペレーティングシステムまたは「dom0」オペレーティングシステムと呼ばれ得る、オペレーティングシステムの管理インスタンスと、を含むことができる。dom0オペレーティングシステムは、コンピュートインスタンス424がそのために動いているクライアントによって、アクセス可能でないことがあるが、代わりに、ネットワークプロバイダのさまざなな管理動作または制御プレーン動作に対して責任を負うことができ、それらには、コンピュートインスタンス424に向けられたネットワークトラフィック、またはコンピュートインスタンス424からのネットワークトラフィックを扱うこと、が含まれる。
図4に示した通り、仮想化管理モジュール422は、ネットワークトラフィックコントローラ426a、426bから426nなどの、ネットワークトラフィックコントローラ426を含むことができる。ネットワークトラフィックコントローラ426は、コンピュートインスタンス424のセキュリティグループ関連に基づいて実施され得るものなど、コンピュートインスタンス424のためのさまざまなネットワークトラフィックポリシーを実施するように構成され得る。図5は、いくつかの実施形態による、仮想化ホストのためのネットワークトラフィックコントローラによって処理されるネットワークトラフィックを示したブロック図である。上述した通り、仮想化ホスト502は、複数のコンピュートインスタンス520a、520b、520cから520nを実装することができる。仮想化ホスト502は、また、仮想化管理モジュール522とネットワークトラフィックコントローラ516とを実装することができる。コンピュートインスタンス520のためのネットワークトラフィック500は、ネットワークトラフィックコントローラ516において、他のネットワークエンティティからのインバウンドネットワークトラフィックとして、またはコンピュートインスタンス520からのアウトバウンドネットワークトラフィックとしてのいずれかで、受信され得る。受信した特定のネットワークトラフィックについて、ネットワークトラフィック制御516は、ポリシー518a、518b、及び/または518nなどの、適用する特定のネットワークトラフィックポリシーを特定することができる。たとえば、経路指定テーブルまたは他のメタデータを使用して、特定のインスタンス520のネットワークトラフィックポリシーを特定することができる。ネットワークトラフィックポリシーをネットワークトラフィックに適用して、ポリシーに従って、ネットワークトラフィックを許可し、拒否し、制限し、限定するなどができる。ポリシー内に含まれるネットワークエンティティハンドルを拡張して、ポリシー内のネットワークエンティティハンドルによって、図6〜図11に関して以下で説明するさまざまな手法にしたがって参照される、ネットワークエンティティのためのネットワークアドレス情報を、適用することができる。いくつかの実施形態では、ネットワークトラフィックコントローラ516は、セキュリティグループ管理サービス440及び/またはネットワークエンティティレジストリ442からの、指定ネットワークアドレス情報を、要求することができる。いくつかの実施形態では、ネットワークトラフィックコントローラは、ネットワークエンティティハンドルのために受信した、複数のバージョンのネットワークアドレス情報を保持することができ、セキュリティグループ管理サービス440またはレジストリ442からの命令に従って、または自己決定に基づいて、バージョン間で戻ることができる。
仮想化ホスト420によって実装されていると例示しているが、いくつかの実施形態では、ネットワークトラフィックコントローラ426は、異なるシステム上またはコンピューティングデバイス上などに、仮想化ホスト420とは別に実装され得る。ネットワークトラフィックコントローラ426は、特定のアドレス可能要素(たとえば、インスタンス424)のためのネットワークトラフィックが、それを通ってその目的地(つまり、トラフィック経路中)に到達するために移動する必要があり得る場所ならどこにでも、実装され得る。したがって、図4と図5とのネットワークトラフィックコントローラの先の説明及び例示は、限定することを意図していない。
図4に戻り、プロバイダネットワーク400は、セキュリティグループ管理サービス440を、さまざまな実施形態で実装して、ネットワークエンティティレジストリ442内のネットワークエンティティエントリ内で指定されるネットワークアドレス情報を、ネットワークトラフィックコントローラ426及び/または地図サービス430に、図6〜図11で以下に説明するさまざまな手法にしたがって提供することなどによって、セキュリティグループの更新または変更を管理することができる。セキュリティグループ管理サービス440は、図12に関連して以下に説明するコンピューティングシステム2000などの、1つまたは複数のノード、サービス、システム、またはデバイスによって実装され得る。セキュリティグループ管理サービスは、いくつかの実施形態では、ネットワークトラフィックコントローラ426と、コンピュートインスタンス424と、セキュリティグループと、ネットワークトラフィックポリシーと、特定のネットワークエンティティハンドルと、の間の地図情報を保持することができる。いくつかの実施形態では、ネットワークトラフィックコントローラ426は、ネットワークエンティティエントリに関する更新または通知を受信するために、リスナーを登録し、またはセキュリティグループ管理サービス440を有する特定のネットワークエンティティエントリとの関係を示すことができる。
さまざまな実施形態では、セキュリティグループ管理サービス440は、ネットワークエンティティレジストリ442を実装することができる。図1〜図3に関して上記で説明した通り、ネットワークエンティティレジストリ442は、ネットワークエンティティのためのネットワークエンティティエントリを保持するように構成され得、それらには、ネットワークアドレス情報と、ネットワークエンティティハンドルと、バージョン識別子、他のバージョンのネットワークエンティティエントリ、及び/またはネットワークエンティティエントリの展開またはスケジュールなどの他の情報と、が含まれる。ネットワークエンティティレジストリ442は、データベース、インデックス、構造化データストア、ネットワークエンティティエントリを保持するための他のスキームとして実装され得る。いくつかの実施形態では、関連は、また、保持されたネットワークトラフィックポリシーであってよく、それには、各ネットワークエンティティハンドル、及び/またはネットワークセキュリティグループ関連が含まれる。
内部ネットワーク410は、仮想化ホスト420、地図サービス430、セキュリティグループ管理サービス440、及び外部ネットワーク460(たとえば、インターネット)などの、プロバイダネットワーク400の異なる構成要素間にネットワーキングリンクを確立するために必要な、ハードウェア(たとえば、モデム、ルータ、スイッチ、ロードバランサ、プロキシサーバ、など)と、ソフトウェア(たとえば、プロトコルスタック、会計ソフトウェア、ファイヤーウォール/セキュリティソフトウェア、など)と、を含むことができる。いくつかの実施形態では、プロバイダネットワーク400は、インターネットプロトコル(IP)トンネリング技術を用いて、オーバーレイネットワークを提供することができ、オーバーレイネットワークを経由して、カプセル化されたパケットが、トンネルを使用して、内部ネットワーク410を通過することができる。IPトンネリング技術は、オーバーレイネットワークをネットワーク410上に作成するための地図及びカプセル化システムを提供することができ、オーバーレイ層と内部ネットワーク110層とのための別のネームスペースを提供することができる。オーバーレイ層内のパケットを、(たとえば、地図サービス430によって提供される)地図ディレクトリに対して確認して、それらのトンネル目標を何にすべきかを判断することができる。IPトンネリング技術は、仮想ネットワークトポロジーを提供し、クライアント450に提示されるインターフェースを、オーバーレイネットワークに付けて、クライアント450がパケットを送信したいIPアドレスを提供した時に、IPオーバーレイアドレスがどこであるかを知っている地図サービス(たとえば、地図サービス130)と通信することによって、IPアドレスが、仮想空間内で実行されるようにすることができる。いくつかの実施形態では、地図サービス430は、ネットワークトラフィック制御ポリシーを、さまざまなネットワークトラフィックコントローラ426に、実施のために提供することができる。そのような実施形態では、地図サービス430は、ネットワークトラフィックポリシー内に含まれているネットワークエンティティハンドルのためのネットワークアドレス情報へのアクセスを取得することができ、またはそれを与えられ得、ネットワークアドレス情報を、ネットワークトラフィックコントローラ426に、実施のために提供することができる。さまざまな実施形態では、地図サービス430は、ネットワークエンティティハンドルを拡張するために、ネットワークトラフィックポリシーのためのネットワークアドレス情報を受信することができる。拡張ネットワークエンティティハンドルは、次いで、地図サービス430によって、各ネットワークトラフィックコントローラに提供され得、各ネットワークトラフィックコントローラは、ネットワークエンティティハンドルを含むネットワークトラフィックポリシーを実施することができる。
クライアント450は、要求をネットワークプロバイダ400に提出するように構成可能な任意の種類のクライアントを、包含することができる。たとえば、所与のクライアント450は、適切なバージョンのウェブブラウザを含むことができ、またはウェブブラウザによって提供される実行環境への拡張として、またはその内部で、実行するように構成された、プラグインモジュールまたは他の種類のコードモジュールを含むことができる。代替的に、クライアント450は、データベースアプリケーション(またはそれのユーザインターフェース)、メディアアプリケーション、オフィスアプリケーション、またはコンピュートインスタンス424を利用してさまざまな動作を実行することができる任意の他のアプリケーションを包含することができる。いくつかの実施形態では、そのようなアプリケーションは、ネットワークベースのサービス要求を、全種類のネットワークベースのデータに対する完全なブラウザサービスを実装する必要なしに、生成し、処理するための(たとえば、適切なバージョンのハイパーテキスト転送プロトコル(HTTP)のための)十分なプロトコルサポートを含むことができる。いくつかの実施形態では、クライアント450は、ネットワークベースのサービス要求を、Representational State Transfer(REST)型ネットワークベースのサービスアーキテクチャ、文書ベースまたはメッセージベースのネットワークベースのサービスアーキテクチャ、または他の適切なネットワークベースのサービスアーキテクチャに従って、生成するように構成され得る。いくつかの実施形態では、クライアント450(たとえば、計算クライアント)は、コンピュートインスタンス424へのアクセスを、コンピュートインスタンス424によって提供される計算リソースを活用する、クライアント424上に実装されたアプリケーションにとってはトランスペアレントな方法で、提供するように構成され得る。
クライアント450は、ネットワークベースのサービス要求を、プロバイダネットワーク400に、外部ネットワーク460を介して伝えることができる。さまざまな実施形態では、外部ネットワーク460は、クライアント450とプロバイダネットワーク400との間のネットワークベースの通信を確立するために必要な、ネットワーキングハードウェアとプロトコルとの任意の適切な組み合わせを包含することができる。たとえば、ネットワーク460は、一般に、インターネットを集合的に実装する、さまざまな電気通信ネットワークとサービスプロバイダとを包含することができる。ネットワーク460は、また、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)などのプライベートネットワークと、公共またはプライベートの無線ネットワークとを含むことができる。たとえば、所与のクライアント450及びプロバイダネットワーク400の両方は、自身の内部ネットワークを有する企業内に、それぞれ設定され得る。そのような実施形態では、ネットワーク460は、所与のクライアント450とインターネットとの間と、インターネットとプロバイダネットワーク400との間と、にネットワーキングリンクを確立するために必要な、ハードウェア(たとえば、モデム、ルータ、スイッチ、ロードバランサ、プロキシサーバ、など)と、ソフトウェア(たとえば、プロトコルスタック、会計ソフトウェア、ファイヤーウォール/セキュリティソフトウェア、など)とを含むことができる。いくつかの実施形態では、クライアント450は、プロバイダネットワーク400と、公共のインターネットではなくプライベートネットワークを使用して、通信することができる、ということに留意する。
図6は、いくつかの実施形態による、ネットワークエンティティエントリオーナーとネットワークエンティティエントリ変更者とネットワークエンティティレジストリとの間の相互作用を示したブロック図である。ネットワークエンティティレジストリ442(またはセキュリティグループ管理サービス440)は、プログラムの(たとえば、API)またはグラフィックのインターフェースなどのインターフェース600を実装することができ、それを介して、要求を、ネットワークエンティティレジストリ400に対して行うことができる。コンピュートインスタンスを活用するプロバイダネットワーク400のクライアントであり得るネットワークエンティティエントリオーナー602、またはさまざまなアプリケーション、サービス、または機能を実装するプロバイダネットワークの他のコンピュートリソース、または信頼されているネットワークエンティティエントリプロバイダは、ネットワークエンティティエントリを、ネットワークエンティティレジストリ442に登録する610ことができる。ネットワークエンティティレジストリ442は、登録要求を、(たとえば、有効な識別または認証資格が要求内に含まれている場合、受け入れることができる。いくつかの実施形態では、不適切なまたは許可されていない作成要求または更新要求は、要求者に返送されるエラーメッセージを生成することができる。たとえば、いくつかの実施形態では、いくつかのネットワークエンティティエントリは、静的である。静的ネットワークエンティティエントリを更新するための要求は、静的ネットワークエンティティエントリを更新するための要求のエラーまたは拒否を返すことができる。いくつかの実施形態では、ネットワークエンティティエントリ(及び/またはエントリのための指定ネットワークアドレス情報)の通知は、エントリへのハンドルを含むネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラ606に、提供620され得る。
いくつかの実施形態では、(ネットワークエンティティエントリのオーナーではないことがある)ネットワークエンティティエントリ変更者604は、更新要求630を、ネットワークエンティティレジストリ442に送信して、特定のネットワークエンティティエントリを更新することができる。いくつかの実施形態では、更新に対する許可は、640で示す通り、ネットワークエンティティエントリオーナー602からの要求更新許可によって、取得され得る。ネットワークエンティティエントリオーナー602から許可650が受信された場合など、許可された場合、更新ネットワークエンティティエントリ(及び/または更新エントリのための指定ネットワークアドレス情報)の通知は、エントリへのハンドルを含むネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラ606に、提供660され得る。いくつかの実施形態では、許可が取得されなかった場合、以前のバージョンのエントリが、レジストリ442で使えるようにされ得、またはネットワークアドレス情報を受信したかもしれないという指示が、ネットワークトラフィックコントローラに、ネットワークエンティティエントリのための異なるバージョンのネットワークアドレス情報に戻るまたはそれを取得するために、送信され得る。ネットワークエンティティエントリ630の更新または変更は、いくつかの実施形態では、(たとえば、指定有効性期間またはデフォルトの有効性期間を有して)一時的であり得る。更新許可650は、いくつかの実施形態では、この場合もやはり一時的な更新または永久的な変更のいずれかとしての変更の再許可であってよい。
図7は、いくつかの実施形態による、トラフィックソースとネットワークトラフィックコントローラとネットワークエンティティレジストリとの間の相互作用を示したブロック図である。ネットワークトラフィックコントローラ760は、ネットワークエンティティハンドルを含むネットワークトラフィックポリシーを含む、(図5に関連して上記で説明した)ネットワークトラフィックポリシーを、実施することができる。ネットワークトラフィックコントローラ760は、ネットワークトラフィックコントローラ760によって実施されるネットワークトラフィックポリシー内に含まれるハンドルに関連するネットワークアドレス情報を、(図6に関連して上記で説明した)ネットワークエンティティレジストリインターフェース600を介して、ネットワークエンティティレジストリ442から受信することができる。(コンピュートインスタンスから外部目的地に出て来るトラフィック、または特定のコンピュートインスタンスのためにインバウンドで受信したトラフィックであり得る)トラフィックソース750から受信したネットワークトラフィック700は、評価され得る。ネットワークエンティティハンドルを含むポリシーは、ネットワークエンティティレジストリ442内のネットワークエンティティの現在のエントリのための指定ネットワークアドレス情報を、適用704され得る。変更、更新、または修正がネットワークエンティティエントリに発生した場合、更新エントリのためのネットワークアドレス情報は、ネットワークエンティティレジストリ442から、ネットワークトラフィックコントローラ760に、提供740され得る。たとえば、新しいバージョンのエントリが利用可能であるという通知が、コントローラ760に送信され得る。コントローラ760は、その後、新しいバージョンのエントリのための指定ネットワークアドレス情報を、要求することができる。代替的に、いくつかの実施形態では、コントローラ760は、コントローラ760で実施されるネットワークポリシー内に含まれるハンドルのための新しいバージョンのエントリについて、レジストリ442を、定期的に(または非周期的に)ポーリングすることができる。いくつかの実施形態では、更新ネットワークエンティティエントリのためのネットワークアドレス情報は、更新が行われた時に、ネットワークトラフィックコントローラ760にプッシュされ得る。更新ネットワークエンティティエントリに関連するネットワークアドレス情報740が提供されると、コントローラ760で受信したネットワークトラフィック720は、その後、評価され、722で示す通り、ネットワークトラフィックポリシーは、更新エントリのための指定ネットワークアドレス情報を適用される。
図4〜図7に関連して上記で説明した、プロバイダネットワークのために実施されるネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルのためのネットワークエンティティレジストリを実装することの実施例が、プロバイダネットワークによって提供される仮想コンピューティングリソースに関して提供された。さまざまな他の種類または構成のプロバイダネットワークは、これらの手法を実装することができる。たとえば、そのためのセキュリティグループ及びネットワークトラフィックポリシーが実装される他の仮想コンピューティングリソースは、たとえば、ネットワークエンティティレジストリを実装することができる。たとえば、仮想ブロックストレージボリュームは、個々のストレージボリュームに向けられたネットワークトラフィックポリシーを実施することができる。図8は、いくつかの実施形態による、プロバイダネットワークのために実施されるネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルのためのネットワークエンティティレジストリを実装するための、さまざまな方法と手法とを示したハイレベルフローチャートである。これらの手法を、図4〜図7に関して上記で説明した仮想コンピューティングリソースプロバイダのさまざまな構成要素、または他のプロバイダネットワーク構成要素を使用して、実装することができる。
810で示す通り、複数のネットワークエンティティエントリは、ネットワークエンティティレジストリにおいて、保持され得、複数のネットワークエンティティエントリは、それぞれが、プロバイダネットワークトラフィックコントローラにおいて実施されるネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルのためのネットワークアドレス情報を、プロバイダネットワーク内のアドレス可能要素のために、指定する。上述した通り、アドレス可能要素は、いくつかの実施形態では、プロバイダネットワーク内のコンピューティングリソースまたは他のデバイスであってよく、それは、そのために1つまたは複数のネットワークトラフィックポリシーがネットワークトラフィックコントローラによって実施され得る、ネットワークトラフィックを送受信する。ネットワークエンティティレジストリは、(図3に関して上述した)エントリを保持することができ、エントリは、IPアドレス、IPアドレスの範囲、マスク、及びネットワークエンティティを特定する及び/またはそれと通信するためのさまざまな他の形態のネットワークアドレス情報などの、ネットワークエンティティのためのネットワークアドレス情報を含む。ネットワークエンティティエントリは、また、ハンドル参照またはハンドル識別子などのハンドルを含むことができ、ハンドルは、ネットワークトラフィックポリシーのためのネットワークアドレス情報を指定するネットワークエンティティエントリを示すために、ネットワークトラフィックポリシー内に含まれ得る。いくつかの実施形態では、特定のバージョンのネットワークエンティティエントリを特定するバージョン識別子(たとえば、バージョン番号またはタイムスタンプ)が、保持され得る。いくつかの実施形態では、複数の以前のバージョンのエンティティエントリが、現在のエンティティエントリに加えて保持され得る。
820に示す通り、いくつかの実施形態では、特定のネットワークエンティティエントリを更新するための要求が、受信され得る。たとえば、更新要求は、エントリ内のネットワークアドレス情報を変更(たとえば、新しいIPアドレスを追加、IPアドレスの範囲を変更、異なるサブネットを追加または新しいサブネットに交換)すること、ネットワークエンティティエントリのための展開情報を(たとえば、ネットワークトラフィックコントローラに)変更すること、またはネットワークエンティティエントリへの他の変更を望み得る。いくつかの実施形態では、さまざまな認証チェックまたはプロトコルを実行することができる。たとえば、要求者の識別を確認することができ、また、更新を実行するための許可を判断することができる。要求を受信したことに応答して、特定のネットワークエンティティエントリは、830に示す通り、要求にしたがって更新され得る。
840に示す通り、更新ネットワークエントリ内で指定されたネットワークアドレス情報は、プロバイダネットワーク内のネットワークトラフィックコントローラに提供され得、ネットワークトラフィックコントローラは、更新ネットワークエンティティエントリのためのネットワークエンティティハンドルを含むネットワークトラフィックポリシーを、実施する。たとえば、複数のネットワークトラフィック制御ポリシーは、複数のネットワークトラフィックコントローラによって実装され得る。これらのネットワークトラフィックコントローラのサブセットは、更新された特定のネットワークエンティティエントリへのハンドルを含むネットワークトラフィックポリシーを、実施することができる。したがって、指定ネットワークアドレス情報は、さまざまな実施形態では、ネットワークトラフィックコントローラのサブセットのうちのネットワークトラフィックコントローラに提供され得る。ネットワークトラフィック情報は、いくつかの実施形態では、ネットワークトラフィックコントローラに直接提供されないことがある。代わりに、ネットワークトラフィック情報は、中間システムまたはデバイスに提供され得、中間システムまたはデバイスは、最終的に、ネットワークトラフィックコントローラにネットワークトラフィック情報を提供することができる。たとえば、地図サービスまたは他のシステムは、ネットワークエンティティハンドルのためのネットワークアドレス情報を登録し、受信することができ、ネットワークエンティティハンドルを含むポリシーを実施するネットワークトラフィックコントローラを、更新されたエントリのためのネットワークアドレス情報を用いて、更新/提供/送信/再構成することができる。
新しいネットワークエンティティエントリまたはネットワークエンティティエントリに対する更新は、少なくともいくつかの実施形態では、ネットワークアドレス情報をネットワークトラフィックコントローラに提供するために、実行される必要がない。したがって、いくつかの実施形態では、要素820及び要素830は、実行されないかもしれず、代わりに、所与のネットワークエンティティエントリについて、ネットワークアドレス情報が、エントリを含むネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラのサブセットに、提供され得る。上記または以下に説明するプッシュ型またはプル型などの、ネットワーク情報を提供するためのさまざまな手法も、また、適用され得る。たとえば、異なるネットワークエンティティエントリのためのネットワークアドレス情報は、ネットワークアドレス情報が変更されていない場合でさえも、ネットワークトラフィックコントローラに、定期的に送信され得る。
いくつかの実施形態では、ネットワークエンティティエントリの更新は、一時的であってよい。たとえば、更新要求は、ネットワークエンティティエントリに対する更新の持続時間を指定することができる。エントリのための期間の失効により、いくつかの実施形態では、ネットワークエンティティエントリは、以前のバージョンのエントリに戻ることができる。いくつかのネットワークエンティティエントリは、静的または不変であってよく、したがって、いくつかの実施形態では、更新されないことがある(が、それらは、削除され得、及び/または静的ネットワークハンドルを含むネットワークトラフィックポリシーは、削除され得る)。
ネットワークアドレス情報は、ネットワークトラフィックコントローラに、さまざまな方法で提供され得る。いくつかの実施形態では、更新された特定のネットワークエンティティエントリへのハンドルを含むネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラが、特定され得る。たとえば、ネットワークトラフィックコントローラは、特定のネットワークエンティティハンドルを、ネットワークエンティティレジストリにおいて登録し、またはネットワークエンティティレジストリにおける特定のネットワークエンティティハンドルに対する更新を要求することができる。この登録情報に基づいて、特定のネットワークエンティティエントリのためのネットワークトラフィックコントローラが、特定され得る。いくつかの実施形態では、ネットワークトラフィックエンティティコントローラは、ネットワークエンティティエントリのための新しいバージョンのネットワークアドレス情報を、(たとえば、ポーリング動作の一部として)要求することができる。ネットワークアドレス情報は、また、ネットワークトラフィックコントローラに、展開スケジュールにしたがって提供され得る。たとえば、データセンタA内に配置されたコンピュートインスタンスのために実装されたネットワークトラフィックコントローラは、新しいバージョンのためのネットワークアドレス情報を、ネットワークアドレス情報がデータセンタB内に配置されたコンピュートインスタンスに提供される2時間前に、提供され得る。いくつかの実施形態では、ランダム化された展開スケジュールを実装して、ネットワークエンティティエントリを更新することによるネットワークの機能停止または他の問題を、ランダムにネットワークトラフィックを妨害し、妨害を取り除くことによって、シミュレーションすることができる。
ネットワークエンティティエントリを、いくつかの実施形態では、作成し、登録し、更新し、または多くの異なるエンティティによって変更することができる。コンピューティングリソースを所有し、制御し、構成し、または管理する、プロバイダネットワークのクライアントまたは他のユーザは、いくつかの実施形態では、セキュリティグループ及び/またはセキュリティグループのためのネットワークトラフィックポリシーと、ネットワークトラフィックポリシー内に含まれるハンドルのためのネットワークエンティティエントリとを、設定または関連させることができる。たとえば、ウェブサービス(たとえば、コンテンツ配信サービス)の開発者またはプロバイダは、複数のコンピュートインスタンスと、ウェブサービスのコンピュートインスタンスに向けられたさまざまな種類のネットワークトラフィックを扱うための付随ネットワークトラフィックポリシーを有する、1つまたは複数のセキュリティグループに関連する異なるインスタンスと、を活用することができる。開発者は、また、第三者(または他のエンティティ)に権限を与えて、ウェブサービスのためのネットワークエンティティエントリを更新または再構成することができる。たとえば、コンテンツ配信サービスが、他のサービスに、そのサイト(たとえば、ソーシャルメディアサービス)に接続すること、またはアップロードすることを許可する場合、コンテンツ配信サービスは、信頼できるソーシャルメディアサービスに権限を与えて、ハンドルへのトラフィックを許可するネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルによって参照されるネットワークエンティティエントリを、更新することができる。さまざまな認証手法を使用して、ネットワークエンティティエントリオーナーではない(たとえば、関連ネットワークフロー制御ポリシーがポリシーオブジェクトに関連付けられるコンピュートインスタンスのオーナーではない)他のエンティティを、委任及び/または許可することができる。図9は、いくつかの実施形態による、ネットワークエンティティエントリに対する更新の許可を、ネットワークエンティティエントリオーナーから取得するための、さまざまな方法と手法とを示したハイレベルフローチャートである。
910に示す通り、ネットワークエンティティエントリオーナーからではないネットワークエンティティエントリに対する更新要求が、受信され得る。さまざまな実施形態では、更新要求は、さまざまな認証資格(たとえば、識別トークン)及び/または許可資格を含むことができる。更新要求は、いくつかの実施形態では、ネットワークエンティティエントリオーナーからではない、これらの資格または他の資格に少なくとも部分的に基づいて、判断され得る。要求は、適用する予定のネットワークエンティティエントリに対する変更(たとえば、追加で許可されたIPアドレスまたは異なるIPアドレス)を含むことができる。更新要求は、図4に関連して上記で説明したレジストリ442などのレジストリにおいて、ネットワークエンティティエントリを登録し、作成し、及び/または変更するためのAPIインターフェースなどのインターフェースにしたがって、フォーマットされ、受信され得る。いくつかの実施形態では、ネットワークエンティティエントリに対する更新は、(図8に関連して上記で説明したさまざまな手法によって述べられるものなどの)ネットワークエンティティエントリのための、ネットワークエンティティハンドルを含むネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラに対して、実行され、提供され得る。更新ネットワークエンティティエントリは、加えて、いくつかの実施形態では、一時的または未承認として記され得る。ネットワークエンティティエントリに対する未承認の変更は、追加的な承認機構を引き起こすことができる。
たとえば、920に示す通り、ネットワークエンティティエントリに対する更新の許可は、いくつかの実施形態では、ネットワークエンティティエントリオーナーから要求され得る。上述した通り、ネットワークエンティティエントリを記述するメタデータは、ネットワークエンティティエントリオーナーの識別、望ましい連絡方法、事前に許可または承認されたポリシーオブジェクトに対する更新、またはネットワークエンティティエントリを実装または更新するための便利な他の情報、を含むことができる。許可は、メッセージをセキュリティグループ管理サービスインターフェースを介してポリシーオブジェクトオーナーに送信することによって、要求され得る。たとえば、仮想コンピューティングリソースプロバイダのクライアントとして、ネットワークエンティティエントリオーナーは、コントロールパネルなどのグラフィカルユーザインターフェースへのアクセスを有することができ、それに対して、指示、警告、またはネットワークエンティティエントリオーナーに許可要求について通知する他の方法が、通信され得る。いくつかの実施形態では、望ましい通知方法または連絡方法は、事前に、セキュリティグループ管理サービスに提供され得、それは、電子メール、テキストメッセージ、または電話が、特定のアカウントまたは電話番号に向けられるように示されている、ということを示すことができる。許可要求内に含まれているものは、変更を説明する情報と、ネットワークエンティティエントリを変更するエンティティの識別と、であってよい。許可は、それを介して許可要求が行われたものと同じ通信方法、または異なる通信方法を使用して、提供され得る。いくつかの実施形態では、許可要求は、変更自体への変更、またはネットワークエンティティエントリの実装形態、スケジュール、または実施に対する変更を含むことができる。
要素930からの肯定的な退去によって示す通り、許可が取得された場合、いくつかの実施形態では、940に示す通り、更新ネットワークエンティティエントリのためのネットワークアドレス情報が、保持され得る。たとえば、いくつかの実施形態では、ネットワークエンティティエントリの変更を永久的にするために、更新ネットワークエンティティエントリを、承認済として記すことができ、または未承認の変更のリストから削除することができる。要素930からの否定的な退去によって示す通り、許可が取得されなかった(たとえば、特定の期間内に、または否定的または承認されていない応答が受信された)場合、950に示す通り、ネットワークエンティティエントリ内に指定された以前のバージョンのネットワークアドレス情報を実施するという指示が、(たとえば、ネットワークトラフィックコントローラに)提供され得る。
図10は、いくつかの実施形態による、ネットワークエンティティエントリへのネットワークエンティティハンドルのためのネットワークアドレス情報を受信するネットワークトラフィックコントローラを、ネットワークエンティティレジストリに登録するための、さまざまな方法と手法とを示したハイレベルフローチャートである。1010に示す通り、登録要求は、ネットワークエンティティエントリのためのハンドルを含むネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラのためのネットワークエンティティレジストリに、送信され得る。たとえば、登録要求は、更新が実行された時に、更新ネットワークエンティティエントリのための指定ネットワークアドレス情報をネットワークトラフィックコントローラに送信するための要求を含むことによって、(または更新が実行されたことをネットワークトラフィックコントローラに単に通知すること)など、ネットワークエンティティエントリに対する更新を受信するための通知機構または更新機構を指定することができる。示す通り、1020では、いくつかの実施形態では、指定ネットワークアドレス情報は、ネットワークトラフィックコントローラにおいて、ネットワークエンティティレジストリから受信され得る。この指定された情報は、いくつかの実施形態では、(場合により、ネットワークエンティティエントリのためのネットワークエンティティハンドルのための以前のバージョンのネットワークアドレス情報と共に)ローカルに格納され得る。1030に示す通り、ネットワークトラフィックは、トラフィックコントローラにおいて受信され得、ネットワークエンティティエントリのためのネットワークエンティティハンドルを含むネットワークトラフィックポリシーが、特定され得る。特定されたネットワークトラフィックポリシーを実施して、1040に示す通り、ネットワークエンティティハンドルのために受信した指定ネットワークアドレス情報を使用して、ネットワークトラフィックポリシーを実施するようにすることができる(たとえば、ネットワークアドレス情報が、「121.133.130.01」として特定する「Bob_network」をブロックまたは許可する)。
上述した通り、いくつかの実施形態では、ネットワークトラフィックコントローラは、更新ネットワークエンティティエントリのためのネットワークアドレス情報を要求することができる。図11は、いくつかの実施形態による、更新ネットワークエンティティエントリのための指定ネットワークアドレス情報を取得するための、さまざまな方法と手法とを示したハイレベルフローチャートである。1110に示す通り、いくつかの実施形態では、ネットワークトラフィックコントローラにおいて実施されるネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルのための更新ネットワークアドレス情報に対する要求が、ネットワークエンティティレジストリに送信され得る。たとえば、要求は、ネットワークエンティティエントリのバージョン番号を含むことができる。より大きなバージョン番号がネットワークエンティティレジストリにおいて利用可能な場合、更新ネットワークアドレス情報が提供され得る。1120からの肯定的な退去によって示す通り、更新ネットワークアドレス情報が提供された場合、1130に示す通り、指定ネットワークアドレス情報を使用して、ネットワークエンティティエントリのための、ネットワークエンティティハンドルを含むネットワークトラフィックポリシーを実施することができる。しかしながら、更新が受信されなかった場合、またはネットワークエンティティレジストリからの応答が受信されなかった場合、1110に示す通り、更新ネットワークアドレス情報に対する他の要求を送信する前に、1122に示す通り、ポーリング期間を経過させることが許され得る。
本開始の実施形態を、以下の条項を考慮して説明することができる。
第1項
プロバイダネットワークを実装する複数のコンピュートノードであって、前記プロバイダネットワークが、複数のネットワークトラフィックコントローラを実装し、前記複数のネットワークトラフィックコントローラの各々が、前記プロバイダネットワーク内の1つまたは複数のアドレス可能要素のための各ネットワークトラフィックポリシーを実施する、複数のコンピュートノードと、
前記複数のネットワークトラフィックコントローラにおいて実施される前記複数のネットワークトラフィックポリシーのうちの各1つまたは複数のネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルのためのネットワークアドレス情報を、それぞれが指定する、複数のネットワークエンティティエントリを保持することと、
前記複数のネットワークエンティティエントリのうちの特定の1つを更新するための要求を受信することと、
前記要求を受信したことに応答して、
前記特定のネットワークエンティティエントリを、前記更新要求にしたがって更新することであって、前記複数のネットワークトラフィックコントローラのサブセットが、前記特定のネットワークエンティティエントリ内に指定された、前記ネットワークアドレス情報のためのネットワークエンティティハンドルを含むネットワークトラフィックポリシーを実施する、更新することと、
前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちのネットワークトラフィックコントローラに、前記各1つまたは複数のネットワークトラフィックポリシーを前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報に従って実施するために、提供することと、
を行うように構成された、ネットワークエンティティレジストリと、
を備える、システム。
第2項
前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちのネットワークトラフィックコントローラに、提供するために、前記ネットワークエンティティレジストリが、
要求を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラの各々から、受信することと、
ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラからの各要求に応答して、前記更新ネットワークエンティティエントリの前記ネットワークアドレス情報を、前記要求を行っているネットワークトラフィックコントローラに送信することと、
を行うように構成されている、第1項に記載のシステム。
第3項
前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちのネットワークトラフィックコントローラに、提供するために、前記ネットワークエンティティレジストリが、
前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラの各々を特定することと、
前記更新ネットワークエンティティエントリの前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記特定されたネットワークトラフィックコントローラに、送信することと、
を行うように構成されている、第1項に記載のシステム。
第4項
前記プロバイダネットワークが、仮想コンピューティングリソースプロバイダであり、前記プロバイダネットワーク内の前記アドレス可能要素が、コンピュートインスタンスであり、前記ネットワークトラフィックコントローラが、それぞれ、それらのために前記ネットワークトラフィックコントローラが各ネットワークトラフィックポリシーを実施する、前記1つまたは複数のコンピュートインスタンスもまた実装する異なる仮想化ホスト上に実装され、前記各ネットワークトラフィックポリシーの各々が、複数のセキュリティグループのうちの特定のセキュリティグループのメンバのために実施され、前記1つまたは複数のコンピュートインスタンスが、前記複数のセキュリティグループのうちの1つまたは複数のセキュリティグループのメンバである、第1項に記載のシステム。
第5項
1つまたは複数のコンピューティングデバイスによって、
ネットワークエンティティレジストリにおいて、複数のネットワークトラフィックコントローラにおいて実施される各1つまたは複数のネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルのためのネットワークアドレス情報をそれぞれが指定する、複数のネットワークエンティティエントリを保持することであって、前記複数のネットワークトラフィックコントローラの各々が、プロバイダネットワーク内の1つまたは複数のアドレス可能要素のための各ネットワークトラフィックポリシーを実施する、保持することと、
所与のネットワークエンティティエントリについて、前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、前記ネットワークエンティティハンドルを含むネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラのサブセットのうちのネットワークトラフィックコントローラに、前記ネットワークトラフィックポリシーを前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報にしたがって実施するために、提供することと、
を実行すること、
を備える、方法。
第6項
前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記提供することが、
要求を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラの各々から、受信することと、
ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラからの各要求に応答して、前記所与のネットワークエンティティエントリの前記ネットワークアドレス情報を、前記要求を行っているネットワークトラフィックコントローラに送信することと、
を備える、第5項に記載の方法。
第7項
前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記提供することが、
前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラの各々を、特定することと、
前記所与のネットワークエンティティエントリの前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記特定されたネットワークトラフィックコントローラに、送信することと、
を備える、第5項に記載の方法。
第8項
前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記提供することが、前記更新ネットワークエンティティエントリのための展開スケジュールにしたがって実行されて、前記ネットワークエンティティハンドルを含む前記ネットワークトラフィックポリシーが、前記プロバイダネットワーク内の前記1つまたは複数のアドレス可能要素のうちの少なくとも1つのアドレス可能要素のために、前記プロバイダネットワーク内の前記1つまたは複数のアドレス可能要素のうちの他のアドレス可能要素とは異なる時間において、実施されるようにする、第5項に記載の方法。
第9項
前記所与のネットワークエンティティエントリを更新するための要求を受信することと、
前記要求を受信したことに応答して、
前記所与のネットワークエンティティエントリを、前記更新要求にしたがって更新することと、
前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記提供することを実行することと、
をさらに備える、第5項に記載の方法。
第10項
前記所与のネットワークエンティティエントリを更新するための前記要求が、前記所与のネットワークエンティティエントリのネットワークエンティティエントリオーナーから受信されず、
前記要求を受信したことに応答して、
前記ネットワークエンティティエントリオーナーからの、前記所与のネットワークエンティティエントリに対する前記更新の許可を要求することと、
前記所与のネットワークエンティティエントリに対する前記更新のための許可を、前記ネットワークエンティティエントリオーナーから取得したことに応答して、前記所与のネットワークエンティティエントリを前記更新することと、前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を前記提供することと、を実行することと、
をさらに備える、第9項に記載の方法。
第11項
前記所与のネットワークエンティティエントリを更新するための前記要求が、前記所与のネットワークエンティティエントリのネットワークエンティティエントリオーナーから受信されず、
前記要求を受信したことに応答して、
前記ネットワークエンティティオブジェクトエントリからの、前記所与のネットワークエンティティエントリに対する前記更新の許可を、要求することと、
前記所与のネットワークエンティティエントリに対する前記更新のための許可を、前記ネットワークエンティティエントリオーナーから取得できなかったことに応答して、前記ネットワークエンティティハンドルを含む前記ネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記ネットワークエンティティハンドルのための以前のネットワークアドレス情報を実施することを指示することと、
をさらに備える、第9項に記載の方法。
第12項
前記複数のネットワークエンティティエントリのうちの他のネットワークエンティティエントリを更新するための要求を受信することであって、前記他のエンティティネットワークエンティティエントリが、静的ネットワークエンティティエントリとして保持される、受信することと、
前記静的ネットワークエンティティエントリに対する前記更新要求を受信したことに応答して、前記更新要求を拒否することと、
をさらに備える、第5項に記載の方法。
第13項
前記プロバイダネットワークが、仮想コンピューティングリソースプロバイダであり、前記プロバイダネットワーク内の前記アドレス可能要素が、コンピュートインスタンスであり、前記ネットワークトラフィックコントローラが、それぞれ、それらのために前記ネットワークトラフィックコントローラが各ネットワークトラフィックポリシーを実施する、前記1つまたは複数のコンピュートインスタンスもまた実装する異なる仮想化ホスト上に実装され、前記各ネットワークトラフィックポリシーの各々が、複数のセキュリティグループのうちの特定のセキュリティグループのメンバのために実施され、前記1つまたは複数のコンピュートインスタンスが、前記複数のセキュリティグループのうちの1つまたは複数のセキュリティグループのメンバである、第5項に記載の方法。
第14項
1つまたは複数のコンピューティングデバイスによって実行されると、前記1つまたは複数のコンピューティングデバイスに、
ネットワークエンティティレジストリにおいて、複数のネットワークトラフィックコントローラにおいて実施される各1つまたは複数のネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルのためのネットワークアドレス情報をそれぞれが指定する複数のネットワークエンティティエントリを保持することであって、前記複数のネットワークトラフィックコントローラの各々が、プロバイダネットワーク内の1つまたは複数のアドレス可能要素のための各ネットワークトラフィックポリシーを実施する、保持することと、
前記複数のネットワークエンティティエントリのうちの特定の1つを更新するための要求を受信することと、
前記要求を受信したことに応答して、
前記特定のネットワークエンティティエントリを、前記更新要求にしたがって更新することであって、前記複数のネットワークトラフィックコントローラのサブセットが、前記特定のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報のための、ネットワークエンティティハンドルを含むネットワークトラフィックポリシーを実施する、更新することと、
前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちのネットワークトラフィックコントローラに、前記各1つまたは複数のネットワークトラフィックポリシーを前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報にしたがって実施するために、提供することと、
を実装することを行わせるプログラム命令を格納する、非一時的な、コンピュータ可読ストレージ媒体。
第15項
前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記提供することにおいて、前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
要求を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラの各々から、受信することと、
ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラからの各要求に応答して、前記更新ネットワークエンティティエントリの前記ネットワークアドレス情報を、前記要求を行っているネットワークトラフィックコントローラに、送信することと、
を実装することをさらに行わせる、第14項に記載の非一時的な,コンピュータ可読ストレージ媒体。
第16項
前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記提供することにおいて、前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラの各々を、特定することと、
前記更新ネットワークエンティティエントリの前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記特定されたネットワークトラフィックコントローラに、送信することと、
を実装することをさらに行わせる、第14項に記載の非一時的な、コンピュータ可読ストレージ媒体。
第17項
前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
前記ネットワークトラフィックコントローラを前記特定することを実行する前に、登録要求を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラから、受信すること、
を実装することをさらに行わせ、
前記ネットワークトラフィックコントローラを前記特定することが、前記登録要求に、少なくとも部分的に基づいている、
第16項に記載の非一時的な,コンピュータ可読ストレージ媒体。
第18項
前記特定のネットワークエンティティオブジェクトの前記更新バージョンが、前記特定のネットワークエンティティオブジェクトの仮のバージョンであり、前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
前記特定のネットワークエンティティオブジェクトの前記仮のバージョンのための期間の失効により、前記ネットワークエンティティオブジェクトの前記更新バージョンによって記述された、前記各1つまたは複数のネットワークトラフィックポリシーに関連する前記1つまたは複数のネットワークトラフィック制御に、前記ネットワークエンティティオブジェクトの以前のバージョンを実施することを示すこと、
を実装することを行わせる、第14項に記載の非一時的な、コンピュータ可読ストレージ媒体。
第19項
前記特定のネットワークエンティティオブジェクトを更新するための前記要求が、前記特定のネットワークエンティティオブジェクトのネットワークエンティティオブジェクトオーナーから受信されず、前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
前記要求を受信したことに応答して、
前記ネットワークエンティティオブジェクトオーナーからの、前記特定のネットワークエンティティオブジェクトに対する前記更新の許可を、要求することと、
前記特定のネットワークエンティティオブジェクトに対する前記更新のための許可を、前記ネットワークエンティティオブジェクトオーナーから取得したことに応答して、前記特定のネットワークエンティティオブジェクトの前記更新バージョンを前記作成することと、前記ネットワークエンティティオブジェクトの前記更新バージョンを前記提供することと、を実行することと、
を実装することをさらに行わせる、第14項に記載の非一時的な、コンピュータ可読ストレージ媒体。
第20項
前記プロバイダネットワークが、仮想コンピューティングリソースプロバイダであり、前記プロバイダネットワーク内の前記アドレス可能要素が、コンピュートインスタンスであり、前記ネットワークトラフィックコントローラが、それぞれ、それらのために前記ネットワークトラフィックコントローラが各ネットワークトラフィックポリシーを実施する、前記1つまたは複数のコンピュートインスタンスもまた実装する異なる仮想化ホスト上に実装され、前記各ネットワークトラフィックポリシーの各々が、複数のセキュリティグループのうちの特定のセキュリティグループのメンバのために実施され、前記1つまたは複数のコンピュートインスタンスが、前記複数のセキュリティグループのうちの1つまたは複数のセキュリティグループのメンバである、第14項に記載の非一時的な、コンピュータ可読ストレージ媒体。
本明細書で説明した方法は、さまざまな実施形態では、ハードウェアとソフトウェアとの任意の組み合わせによって実装され得る。たとえば、一実施形態では、方法を、プロセッサに連結されたコンピュータ可読ストレージ媒体上に格納されたプログラム命令を実行する1つまたは複数のプロセッサを含むコンピュータシステム(たとえば、図12のコンピュータシステム)によって、実装することができる。プログラム命令は、本明細書で説明する機能(たとえば、本明細書で説明する仮想コンピューティングリソースプロバイダを実装する、さまざまなサーバと他の構成要素との機能)を実装するように構成され得る。図に例示し、本明細書で説明したさまざまな方法は、方法の例示的な実施形態を表すものである。任意の方法の順序を変更することができ、さまざまな要素を、追加し、順番を変更し、組み合わせ、省略し、変更すること、などができる。
本明細書で説明した、仮想コンピューティングリソースのためのセキュリティグループポリシーを動的に更新するためのセキュリティグループ管理の実施形態を、さまざまな他のデバイスと相互作用することができる、1つまたは複数のコンピュータシステム上で実行することができる。図12は、さまざまな実施形態による、例示的なコンピュータシステムを示したブロック図である。たとえば、コンピュータシステム2000は、異なる実施形態では、コンピュートクラスタのノード、分散キー値データストア、及び/またはクライアントを実装するように構成され得る。コンピュータシステム2000は、さまざまな種類のデバイスのうちの任意のものであってよく、それには、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップコンピュータまたはノートパソコン、メインフレームコンピュータシステム、携帯型コンピュータ、ワークステーション、ネットワークコンピュータ、消費者デバイス、アプリケーションサーバ、ストレージデバイス、電話、携帯電話、または一般的な任意の種類のコンピューティングデバイスが含まれるが、これらに限定されない。
コンピュータシステム2000は、システムメモリ2020に入力/出力(I/O)インターフェース2030を介して連結された、1つまたは複数のプロセッサ2010(それらのうちの任意のものは、シングルスレッドまたはマルチスレッドであり得る、複数のコアを含むことができる)を含む。コンピュータシステム2000は、さらに、I/Oインターフェース2030に連結されたネットワークインターフェース2040を含む。さまざまな実施形態では、コンピュータシステム2000は、1つのプロセッサ2010を含む単一プロセッサシステム、またはいくつかのプロセッサ2010(たとえば、2つ、4つ、8つ、または他の適切な数)を含むマルチプロセッサシステムであってよい。プロセッサ2010は、命令を実行することができる、任意の適切なプロセッサであってよい。たとえば、さまざまな実施形態では、プロセッサ2010は、x86、PowerPC、SPARC、またはMIPS ISA、または任意の他の適切なISAなどの、さまざまな命令セットアーキテクチャ(ISA)のうちの任意のものを実装する、汎用プロセッサまたは組込みプロセッサであってよい。マルチプロセッサシステムでは、プロセッサ2010の各々は、通常、しかし必ずしもでないが、同じISAを実装することができる。コンピュータシステム2000は、また、他のシステム及び/または構成要素との、通信ネットワーク(たとえば、インターネット、LAN、など)を介した通信のための、1つまたは複数のネットワーク通信デバイス(たとえば、ネットワークインターフェース2040)を含む。たとえば、システム2000上で動いているクライアントアプリケーションは、ネットワークインターフェース2040を使用して、本明細書で説明した、データウェアハウスシステムの構成要素のうちの1つまたは複数のものを実装する、単一サーバ上またはサーバのクラスタ上で動いているサーバアプリケーションと通信することができる。他の実施例では、コンピュータシステム2000上で動いているサーバアプリケーションのインスタンスは、ネットワークインターフェース2040を使用して、他のコンピュータシステム(たとえば、コンピュータシステム2090)上に実装され得るサーバアプリケーション(または他のサーバアプリケーション)の他のインスタンスと通信することができる。
例示の実施形態では、コンピュータシステム2000は、また、1つまたは複数の永久ストレージデバイス2060、及び/または1つまたは複数のI/Oデバイス2080を含む。さまざまな実施形態では、永久ストレージデバイス2060は、ディスクドライブ、テープドライブ、半導体メモリ、他のマスストレージデバイス、または任意の他の永久ストレージデバイスに対応することができる。コンピュータシステム2000(または分散アプリケーションまたはその上で動いているオペレーティングシステム)は、命令及び/またはデータを、要望に応じて、永久ストレージデバイス2060内に格納することができ、格納された命令及び/またはデータを、必要に応じて、取り出すことができる。たとえば、いくつかの実施形態では、コンピュータシステム2000は、ストレージシステムサーバノードをホストすることができ、永久ストレージ2060は、そのサーバノードに取り付けられたSSDを含むことができる。
コンピュータシステム2000は、プロセッサ(複数可)2010によってアクセス可能な命令とデータとを格納するように構成された、1つまたは複数のシステムメモリ2020を含む。さまざまな実施形態では、システムメモリ2020は、任意の適切なメモリ技術(たとえば、キャッシュ、静的ランダムアクセスメモリ(SRAM)、DRAM、RDRAM、EDO RAM、DDR 10 RAM、同時性ダイナミックRAM(SDRAM)、Rambus RAM、EEPROM、非揮発性/フラッシュ型メモリ、または任意の他の種類のメモリのうちの1つまたは複数)を使用して、実装され得る。システムメモリ2020は、本明細書で説明する方法と手法とを実装するために、プロセッサ(複数可)2010によって実行可能なプログラム命令2025を含むことができる。さまざまな実施形態では、プログラム命令2025は、プラットフォーム固有のバイナリ、Java(商標)のバイトコードなどの任意のインタープリタ型言語、またはC/C++、Java(商標)、などの任意の他の言語で、またはこれらの任意の組み合わせで、符号化され得る。たとえば、例示の実施形態では、プログラム命令2025は、異なる実施形態では、仮想コンピューティングリソースプロバイダネットワークの機能を実装するために実行可能なプログラム命令を含む。いくつかの実施形態では、プログラム命令2025は、複数の別々のクライアント、サーバノード、及び/または他の構成要素を実装することができる。
いくつかの実施形態では、プログラム命令2025は、(図示しない)オペレーティングシステムを実装するために実行可能な命令を含むことができ、オペレーティングシステムは、UNIX(登録商標)、LINUX、Solaris(商標)、MacOS(商標)、Windows(商標)、などの、さまざまなオペレーティングシステムのうちの任意のものであってよい。プログラム命令2025のうちの任意のもの、または全部は、その上に格納した命令を有する非一時的なコンピュータ可読ストレージ媒体を含むことができる、コンピュータプログラム製品またはソフトウェアとして提供され得、命令を使用して、プロセスをさまざまな実施形態にしたがって実行するための、コンピュータシステム(または他の電子デバイス)をプログラムすることができる。非一時的なコンピュータ可読ストレージ媒体は、マシン(たとえば、コンピュータ)によって可読な形態の情報(たとえば、ソフトウェア、処理アプリケーション)を格納するための任意の機構を含むことができる。一般的に言えば、非一時的なコンピュータアクセス可能媒体は、磁気媒体または光媒体、たとえば、コンピュータシステム2000にI/Oインターフェース2030を介して連結されたディスクまたはDVD/CD−ROMなどの、コンピュータ可読ストレージメディアまたはメモリメディアを含むことができる。非一時的なコンピュータ可読ストレージ媒体は、また、コンピュータシステム2000のいくつかの実施形態では、システムメモリ2020または他の種類のメモリとして含まれ得る、RAM(たとえば、SDRAM、DDR SDRAM、RDRAM、SRAM、など)、ROM、などの、任意の揮発性メディアまたは非揮発性メディアを含むことができる。他の実施形態では、プログラム命令は、ネットワークインターフェース2040を介して実装され得るものなど、ネットワーク及び/または無線リンクなどの通信媒体を介して伝達される、光、音、または他の形態の伝播信号(たとえば、搬送波、赤外線信号、デジタル信号、など)を使用して通信され得る。
いくつかの実施形態では、システムメモリ2020は、本明細書で説明した通りに構成され得るデータストア2045を含むことができる。一般に、システムメモリ2020(たとえば、システムメモリ2020内のデータストア2045)、永久ストレージ2060、及び/または遠隔ストレージ2070は、データブロック、データブロックの複製、データブロック及び/またはそれらの状態に関連するメタデータ、構成情報、及び/または本明細書で説明した方法と手法とを実装する際に使用可能な任意の他の情報を、格納することができる。
一実施形態では、I/Oインターフェース2030は、ネットワークインターフェース2040または他の周辺インターフェースを通るものを含む、システム内のプロセッサ2010とシステムメモリ2020と任意の周辺デバイスとの間のI/Oトラフィックを調整するように構成され得る。いくつかの実施形態では、I/Oインターフェース2030は、任意の必要なプロトコルデータ、タイミングデータ、または他のデータの変換を実行して、1つの構成要素(たとえば、システムメモリ2020)からのデータ信号を、他の構成要素(たとえば、プロセッサ2010)による使用に適切な形式に変換することができる。いくつかの実施形態では、I/Oインターフェース2030は、たとえば、Peripheral Component Interconnect(PCI)バス規格、またはUniversal Serial Bus (USB)規格の異形などの、さまざまな種類の周辺バスを通して取り付けられたデバイスのためのサポートを含むことができる。いくつかの実施形態では、I/Oインターフェース2030の機能を、たとえば、北ブリッジと南ブリッジなどの、2つ以上の別々の構成要素に分けることができる。また、いくつかの実施形態では、システムメモリ2020へのインターフェースなどのI/Oインターフェース2030の機能の一部または全部を、プロセッサ2010内に直接組み込むことができる。
ネットワークインターフェース2040は、データを、コンピュータシステム2000と、たとえば、(1つまたは複数のストレージシステムサーバノード、データベースエンジンヘッドノード、及び/または本明細書で説明したデータベースシステムのクライアントを実装することができる)他のコンピュータシステム2090などの、ネットワークに繋がっている他のデバイスと、の間で交換することを可能にするように構成され得る。加えて、ネットワークインターフェース2040は、コンピュータシステム2000と、さまざまなI/Oデバイス2050及び/または遠隔ストレージ2070と、の間の通信を可能にするように構成され得る。入力/出力デバイス2050は、いくつかの実施形態では、1つまたは複数の、ディスプレイ端末、キーボード、キーパッド、タッチパッド、スキャンデバイス、音声または光学的認識デバイス、または1つまたは複数のコンピュータシステム2000によるデータの入力または取り出しに適切な任意の他のデバイス、を含むことができる。複数の入力/出力デバイス2050は、コンピュータシステム2000内に存在することができ、またはコンピュータシステム2000を含む分散システムのさまざまなノード上に分散され得る。いくつかの実施形態では、同様の入力/出力デバイスは、コンピュータシステム2000とは別であってよく、コンピュータシステム2000を含む分散システムの1つまたは複数のノードと、ネットワークインターフェース2040を介してなど、有線通信または無線通信を通して相互作用することができる。ネットワークインターフェース2040は、一般に、1つまたは複数の無線ネットワーキングプロトコル(たとえば、Wi−Fi/IEEE 802.11、または他の無線ネットワーキング規格)をサポートすることができる。しかしながら、さまざまな実施形態では、ネットワークインターフェース2040は、通信を、たとえば、他の種類のイーサネット(登録商標)ネットワークなどの任意の適切な有線または無線の一般データネットワークを介して、サポートすることができる。加えて、ネットワークインターフェース2040は、通信を、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの電気通信ネットワーク/電話通信ネットワークを介して、またはファイバチャネルSANなどのストレージエリアネットワークを介して、または任意の他の適切な種類のネットワーク及び/またはプロトコルを介して、サポートすることができる。さまざまな実施形態では、コンピュータシステム2000は、図12に例示したものよりも多い、少ない、またはそれとは異なる構成要素(たとえば、ディスプレイ、ビデオカード、オーディオカード、周辺デバイス、ATMインターフェースなどの他のネットワークインターフェース、イーサネットインターフェース、フレームリレーインターフェース、など)を含むことができる。
本明細書で説明した分散システム実施形態のうちの任意のもの、またはそれらの構成要素のうちの任意のものは、1つまたは複数のネットワークベースのサービスとして実装され得る、ということに留意する。たとえば、コンピューティングサービス内のコンピュートクラスタは、コンピューティングサービス及び/または本明細書で説明した分散コンピューティングシステムを用いる他の種類のサービスを、クライアントに、ネットワークベースのサービスとして提示することができる。いくつかの実施形態では、ネットワークベースのサービスは、相互運用可能なマシン同士のネットワークを介した相互作用をサポートするように設計されたソフトウェアシステム及び/またはハードウェアシステムによって、実装され得る。ネットワークベースのサービスは、Web Services Description Language(WSDL)などのマシン処理可能な形式で記述されたインターフェースを有することができる。他のシステムは、ネットワークベースのサービスと、ネットワークベースのサービスのインターフェースの記述によって指示される方法で、相互作用し得る。たとえば、ネットワークベースのサービスは、他のシステムが引き起こすことができるさまざまな動作を定義することができ、他のシステムがさまざまな動作を要求する時に従うことを期待され得る、特定のアプリケーションプログラミングインターフェース(API)を定義することができる。
さまざまな実施形態では、ネットワークベースのサービスは、ネットワークベースのサービス要求に関連するパラメータ及び/またはデータを含むメッセージの使用を通して、要求または引き起こされ得る。そのようなメッセージは、拡張マークアップ言語(XML)などの特定のマークアップ言語にしたがってフォーマットされ得、及び/またはシンプルオブジェクトアクセスプロトコル(SOAP)などのプロトコルを使用してカプセル化され得る。ネットワークベースのサービス要求を実行するために、ネットワークベースのサービスのクライアントは、要求を含むメッセージを作り、メッセージを、ネットワークベースのサービスに対応するアドレス可能なエンドポイント(たとえば、統一資源位置指定子(URL))に、ハイパーテキスト転送プロトコル(HTTP)などのインターネットベースのアプリケーション層転送プロトコルを使用して、伝えることができる。
いくつかの実施形態では、ネットワークベースのサービスは、メッセージベースの手法よりも、Representational State Transfer(RESTful)手法を使用して、実装され得る。たとえば、RESTful手法にしたがって実装されたネットワークベースのサービスは、SOAPメッセージ内にカプセル化されたものではなく、PUT、GET、またはDELETEなどのHTTP方法内に含まれるパラメータを通して引き起こされ得る。
上記の実施形態を相当詳細に説明したが、いったん上記の開示を完全に理解すれば当業者に明らかになる通り、多数の変形と修正とを行うことができる。以下の特許請求の範囲は、すべてのそのような修正と変更とを包含するように解釈され、したがって、上記の説明は、制約的な意味ではなく、例示とみなされることが意図されている。

Claims (15)

  1. 1つまたは複数のコンピューティングデバイス
    ネットワークエンティティレジストリにおいて、複数のネットワークトラフィックコントローラにおいて実施される各1つまたは複数のネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルのためのネットワークアドレス情報を、それぞれが指定する、複数のネットワークエンティティエントリを保持すること
    所与のネットワークエンティティエントリについて、前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、前記ネットワークエンティティハンドルを含むネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラのサブセットのうちのネットワークトラフィックコントローラに、前記ネットワークトラフィックポリシーを前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報にしたがって実施するために、提供することと、
    を実行すること、
    を備え
    前記複数のネットワークトラフィックコントローラの各々は、プロバイダネットワーク内の1つまたは複数のアドレス可能要素のための各ネットワークトラフィックポリシーを実施する、方法。
  2. 前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記提供することが、
    要求を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラの各々から、受信することと、
    ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラからの各要求に応答して、前記所与のネットワークエンティティエントリの前記ネットワークアドレス情報を、前記要求を行っているネットワークトラフィックコントローラに、送信することと、
    を備える、請求項1に記載の方法。
  3. 前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記提供することが、
    前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラの各々を、特定することと、
    前記所与のネットワークエンティティエントリの前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記特定されたネットワークトラフィックコントローラに、送信することと、
    を備える、請求項1に記載の方法。
  4. 前記所与のネットワークエンティティエントリを更新するための要求を受信することと、
    前記要求を受信したことに応答して、
    前記所与のネットワークエンティティエントリを、前記更新要求にしたがって更新することと、
    前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記提供することを、実行することと、
    をさらに備える、請求項1〜3のいずれか一項に記載の方法
  5. 前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記提供することが、前記更新されたネットワークエンティティエントリのための展開スケジュールにしたがって実行されて、前記ネットワークエンティティハンドルを含む前記ネットワークトラフィックポリシーが、前記プロバイダネットワーク内の前記1つまたは複数のアドレス可能要素のうちの少なくとも1つのアドレス可能要素のために、前記プロバイダネットワーク内の前記1つまたは複数のアドレス可能要素のうちの他のアドレス可能要素とは異なる時間において、実施されるようにする、請求項4に記載の方法
  6. 前記所与のネットワークエンティティエントリを更新するための前記要求が、前記所与のネットワークエンティティエントリのネットワークエンティティエントリオーナーから受信されず、
    前記要求を受信したことに応答して、
    前記ネットワークエンティティエントリオーナーからの、前記所与のネットワークエンティティエントリに対する前記更新の許可を要求することと、
    前記所与のネットワークエンティティエントリに対する前記更新のための許可を、前記ネットワークエンティティエントリオーナーから取得したことに応答して、前記所与のネットワークエンティティエントリを前記更新することと、前記所与のネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を前記提供することと、を実行することと、
    をさらに備える、請求項に記載の方法。
  7. 前記所与のネットワークエンティティエントリを更新するための前記要求が、前記所与のネットワークエンティティエントリのネットワークエンティティエントリオーナーから受信されず、
    前記要求を受信したことに応答して、
    前記ネットワークエンティティントリオーナーからの、前記所与のネットワークエンティティエントリに対する前記更新の許可を、要求することと、
    前記所与のネットワークエンティティエントリに対する前記更新のための許可を、前記ネットワークエンティティエントリオーナーから取得できなかったことに応答して、前記ネットワークエンティティハンドルを含む前記ネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記ネットワークエンティティハンドルのための以前のネットワークアドレス情報を実施することを指示することと、
    をさらに備える、請求項に記載の方法。
  8. 前記複数のネットワークエンティティエントリのうちの他のネットワークエンティティエントリを更新するための要求を受信することであって、前記他のエンティティネットワークエンティティエントリが、静的ネットワークエンティティエントリとして保持される、受信することと、
    前記静的ネットワークエンティティエントリに対する前記更新要求を受信したことに応答して、前記更新要求を拒否することと、
    をさらに備える、請求項1〜7のいずれか一項に記載の方法。
  9. 前記プロバイダネットワークが、仮想コンピューティングリソースプロバイダであり、前記プロバイダネットワーク内の前記アドレス可能要素が、コンピュートインスタンスであり、前記ネットワークトラフィックコントローラが、それぞれ、それらのために前記ネットワークトラフィックコントローラが各ネットワークトラフィックポリシーを実施する、前記1つまたは複数のコンピュートインスタンスもまた実装する異なる仮想化ホスト上に実装され、前記各ネットワークトラフィックポリシーの各々が、複数のセキュリティグループのうちの特定のセキュリティグループのメンバのために実施され、前記1つまたは複数のコンピュートインスタンスが、前記複数のセキュリティグループのうちの1つまたは複数のセキュリティグループのメンバである、請求項1〜8のいずれか一項に記載の方法。
  10. 1つまたは複数のコンピューティングデバイスを備え、前記1つまたは複数のコンピューティングデバイスが、1つまたは複数のメモリに連結された1つまたは複数のプロセッサを含み、前記1つまたは複数のメモリがプログラム命令を格納し、前記プログラム命令は、前記1つまたは複数のコンピューティングデバイスによって実行されると、前記1つまたは複数のコンピューティングデバイスに、
    ネットワークエンティティレジストリにおいて、複数のネットワークトラフィックコントローラにおいて実施される各1つまたは複数のネットワークトラフィックポリシー内に含まれるネットワークエンティティハンドルのためのネットワークアドレス情報をそれぞれが指定する複数のネットワークエンティティエントリを持すること
    前記複数のネットワークエンティティエントリのうちの特定の1つを更新するための要求を受信することと、
    前記要求を受信したことに応答して、
    前記特定のネットワークエンティティエントリを、前記更新要求にしたがって更新すること
    を行わせ、
    前記複数のネットワークトラフィックコントローラの各々は、プロバイダネットワーク内の1つまたは複数のアドレス可能要素のための各ネットワークトラフィックポリシーを実施し、
    前記複数のネットワークトラフィックコントローラのサブセットは、前記特定のネットワークエンティティエントリ内に指定された、前記ネットワークアドレス情報のための、ネットワークエンティティハンドルを含むネットワークトラフィックポリシーを実施し
    前記プログラム命令は、前記1つまたは複数のコンピューティングデバイスによって実行されると、前記1つまたは複数のコンピューティングデバイスに、さらに、
    前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちのネットワークトラフィックコントローラに、前記各1つまたは複数のネットワークトラフィックポリシーを前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報に従って実施するために、提供すること
    を行わせ、システム。
  11. 前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記提供することにおいて、前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
    要求を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラの各々から、受信することと、
    ネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラからの各要求に応答して、前記更新ネットワークエンティティエントリの前記ネットワークアドレス情報を、前記要求を行っているネットワークトラフィックコントローラに、送信することと、
    をさらに行わせる、請求項10に記載のシステム。
  12. 前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラに、前記提供することにおいて、前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
    前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラの各々を、特定することと、
    前記更新ネットワークエンティティエントリの前記ネットワークアドレス情報を、ネットワークトラフィックコントローラの前記サブセットのうちの前記特定されたネットワークトラフィックコントローラに、送信することと、
    をさらに行わせる、請求項10に記載のシステム。
  13. 前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
    前記ネットワークトラフィックコントローラを前記特定することを実行する前に、登録要求を、前記ネットワークエンティティハンドルを含む前記各1つまたは複数のネットワークトラフィックポリシーを実施するネットワークトラフィックコントローラの前記サブセットのうちの前記ネットワークトラフィックコントローラから、受信すること、
    をさらに行わせ、
    前記ネットワークトラフィックコントローラを前記特定することが、前記登録要求に少なくとも部分的に基づいている、請求項12に記載のシステム。
  14. 前記更新ネットワークエンティティエントリが、前記特定のネットワークエンティティエントリの仮のバージョンであり、前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
    前記特定のネットワークエンティティエントリの前記仮のバージョンのための期間の失効により、前記更新ネットワークエンティティエントリによって記述された前記各1つまたは複数のネットワークトラフィックポリシーに関連する前記1つまたは複数のネットワークトラフィック制御に、前記ネットワークエンティティエントリの以前のバージョンを実施することを指示すること、
    をさらに行わせる、請求項10〜13のいずれか一項に記載のシステム。
  15. 前記特定のネットワークエンティティエントリを更新するための前記要求が、前記特定のネットワークエンティティエントリのネットワークエンティティエントリオーナーから受信されず、前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
    前記要求を受信したことに応答して、
    前記ネットワークエンティティエントリオーナーからの、前記特定のネットワークエンティティエントリに対する前記更新の許可を要求することと、
    前記特定のネットワークエンティティエントリに対する前記更新のための許可を、前記ネットワークエンティティエントリオーナーから取得したことに応答して、前記特定のネットワークエンティティエントリ前記更新を実行することと、前記更新ネットワークエンティティエントリ内に指定された前記ネットワークアドレス情報前記提供することと、を行うことと、
    をさらに行わせる、請求項10〜14のいずれか一項に記載のシステム。
JP2016547094A 2014-01-17 2015-01-15 トラフィックポリシーの実施をサポートするエンティティハンドルレジストリ Active JP6314236B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/158,504 2014-01-17
US14/158,504 US9548897B2 (en) 2014-01-17 2014-01-17 Network entity registry for network entity handles included in network traffic policies enforced for a provider network
PCT/US2015/011525 WO2015109051A1 (en) 2014-01-17 2015-01-15 An entity handle registry to support traffic policy enforcement

Publications (2)

Publication Number Publication Date
JP2017507563A JP2017507563A (ja) 2017-03-16
JP6314236B2 true JP6314236B2 (ja) 2018-04-18

Family

ID=53543421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016547094A Active JP6314236B2 (ja) 2014-01-17 2015-01-15 トラフィックポリシーの実施をサポートするエンティティハンドルレジストリ

Country Status (6)

Country Link
US (1) US9548897B2 (ja)
EP (1) EP3095214B1 (ja)
JP (1) JP6314236B2 (ja)
CN (1) CN105981331B (ja)
CA (1) CA2936956C (ja)
WO (1) WO2015109051A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2916227A1 (en) * 2014-03-04 2015-09-09 Agco Corporation Machine error and failure mitigation
US9948493B2 (en) * 2014-04-03 2018-04-17 Centurylink Intellectual Property Llc Network functions virtualization interconnection gateway
EP3178200A4 (en) * 2014-08-07 2018-04-11 Intel IP Corporation Control of traffic from applications when third party servers encounter problems
US10225327B2 (en) 2014-08-13 2019-03-05 Centurylink Intellectual Property Llc Remoting application servers
US10044570B2 (en) * 2014-08-22 2018-08-07 Vmware, Inc. Policy management system with proactive and reactive monitoring and enforcement
US10917788B2 (en) * 2014-11-19 2021-02-09 Imprivata, Inc. Inference-based detection of proximity changes
US11363424B2 (en) * 2014-11-19 2022-06-14 Imprivata, Inc. Location-based resource management
US9882833B2 (en) 2015-09-28 2018-01-30 Centurylink Intellectual Property Llc Intent-based services orchestration
JP6275180B2 (ja) * 2016-03-23 2018-02-07 ソフトバンク株式会社 設定情報生成装置、ネットワーク制御装置、方法、及び、プログラム
US10547588B2 (en) 2016-04-30 2020-01-28 Nicira, Inc. Method of translating a logical switch into a set of network addresses
US10511484B1 (en) * 2017-03-24 2019-12-17 Amazon Technologies, Inc. Membership self-discovery in distributed computing environments
US10454930B2 (en) * 2017-07-14 2019-10-22 EMC IP Holding Company LLC System and method for local data IP based network security for preventing data breach attempts in a multi-tenant protection storage deployment
US10853091B2 (en) * 2017-07-18 2020-12-01 Citrix Systems, Inc. Cloud to on-premises windows registry settings
US11201800B2 (en) * 2019-04-03 2021-12-14 Cisco Technology, Inc. On-path dynamic policy enforcement and endpoint-aware policy enforcement for endpoints
US11743325B1 (en) 2019-11-29 2023-08-29 Amazon Technologies, Inc. Centralized load balancing of resources in cloud edge locations embedded in telecommunications networks
US11095534B1 (en) * 2019-11-29 2021-08-17 Amazon Technologies, Inc. API-based endpoint discovery of resources in cloud edge locations embedded in telecommunications networks

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5968176A (en) 1997-05-29 1999-10-19 3Com Corporation Multilayer firewall system
US20020184525A1 (en) * 2001-03-29 2002-12-05 Lebin Cheng Style sheet transformation driven firewall access list generation
US7277953B2 (en) 2001-04-18 2007-10-02 Emc Corporation Integrated procedure for partitioning network data services among multiple subscribers
US20040022258A1 (en) * 2002-07-30 2004-02-05 Docomo Communications Laboratories Usa, Inc. System for providing access control platform service for private networks
US7567510B2 (en) 2003-02-13 2009-07-28 Cisco Technology, Inc. Security groups
US7418485B2 (en) * 2003-04-24 2008-08-26 Nokia Corporation System and method for addressing networked terminals via pseudonym translation
US7480798B2 (en) 2003-06-05 2009-01-20 International Business Machines Corporation System and method for representing multiple security groups as a single data object
US7827402B2 (en) 2004-12-01 2010-11-02 Cisco Technology, Inc. Method and apparatus for ingress filtering using security group information
US7483438B2 (en) * 2005-04-14 2009-01-27 Alcatel Lucent Systems and methods for managing network services between private networks
US8924524B2 (en) * 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
WO2009042919A2 (en) * 2007-09-26 2009-04-02 Nicira Networks Network operating system for managing and securing networks
US20100043066A1 (en) * 2008-05-21 2010-02-18 Miliefsky Gary S Multiple security layers for time-based network admission control
US8356346B2 (en) 2010-01-30 2013-01-15 Fatpipe, Inc. VPN secure sessions with dynamic IP addresses
JP5403445B2 (ja) * 2010-03-20 2014-01-29 株式会社Pfu 仮想マシン管理装置、仮想マシン管理方法、及びプログラム
US8401006B2 (en) 2010-08-19 2013-03-19 Unwired Planet, Inc. Method and system for enforcing traffic policies at a policy enforcement point in a wireless communications network
US8660129B1 (en) * 2012-02-02 2014-02-25 Cisco Technology, Inc. Fully distributed routing over a user-configured on-demand virtual network for infrastructure-as-a-service (IaaS) on hybrid cloud networks
US8893258B2 (en) * 2012-06-11 2014-11-18 Cisco Technology, Inc. System and method for identity based authentication in a distributed virtual switch network environment

Also Published As

Publication number Publication date
EP3095214A4 (en) 2017-08-23
US9548897B2 (en) 2017-01-17
CA2936956C (en) 2019-11-05
CA2936956A1 (en) 2015-07-23
WO2015109051A1 (en) 2015-07-23
EP3095214A1 (en) 2016-11-23
JP2017507563A (ja) 2017-03-16
US20150207683A1 (en) 2015-07-23
EP3095214B1 (en) 2021-11-03
CN105981331B (zh) 2020-05-15
CN105981331A (zh) 2016-09-28

Similar Documents

Publication Publication Date Title
JP6314236B2 (ja) トラフィックポリシーの実施をサポートするエンティティハンドルレジストリ
US11218420B2 (en) Virtual network interface objects
US20230396669A1 (en) Technologies for transparent function as a service arbitration for edge systems
US8826001B2 (en) Securing information within a cloud computing environment
US10659523B1 (en) Isolating compute clusters created for a customer
US9003498B2 (en) Method and apparatus for routing application programming interface (API) calls
US10534627B2 (en) Scalable policy management in an edge virtual bridging (EVB) environment
JP2018518744A (ja) コンピュートクラスタ内のリソースインスタンスグループの自動スケーリング
US9912682B2 (en) Aggregation of network traffic source behavior data across network-based endpoints
US10534631B2 (en) Scalable policy assignment in an edge virtual bridging (EVB) environment
US10356155B2 (en) Service onboarding
US10785056B1 (en) Sharing a subnet of a logically isolated network between client accounts of a provider network
US10171322B2 (en) Dynamic and secure cloud to on-premise interaction and connection management
US11297065B2 (en) Technology for computing resource liaison
JP7212158B2 (ja) プロバイダネットワークサービス拡張

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171004

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180326

R150 Certificate of patent or registration of utility model

Ref document number: 6314236

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250