JP7212158B2 - プロバイダネットワークサービス拡張 - Google Patents

プロバイダネットワークサービス拡張 Download PDF

Info

Publication number
JP7212158B2
JP7212158B2 JP2021526284A JP2021526284A JP7212158B2 JP 7212158 B2 JP7212158 B2 JP 7212158B2 JP 2021526284 A JP2021526284 A JP 2021526284A JP 2021526284 A JP2021526284 A JP 2021526284A JP 7212158 B2 JP7212158 B2 JP 7212158B2
Authority
JP
Japan
Prior art keywords
network
erg
vcs
host
address
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
JP2021526284A
Other languages
English (en)
Other versions
JP2022507398A (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
Priority claimed from US16/196,736 external-priority patent/US10833949B2/en
Priority claimed from US16/196,723 external-priority patent/US20200159555A1/en
Application filed by アマゾン・テクノロジーズ・インコーポレーテッド filed Critical アマゾン・テクノロジーズ・インコーポレーテッド
Publication of JP2022507398A publication Critical patent/JP2022507398A/ja
Priority to JP2023002875A priority Critical patent/JP2023040221A/ja
Application granted granted Critical
Publication of JP7212158B2 publication Critical patent/JP7212158B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5061Pools of addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5016Session
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/668Internet protocol [IP] address subnets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Description

多くの企業および他の組織は、コンピューティングシステムを、同じ場所に配置するか(例えば、ローカルネットワークの一部として)、またはその代わりに複数の異なる地理的場所に配置する(例えば、1つ以上のプライベートまたはパブリック中間ネットワークを介して接続する)など、多数のコンピューティングシステムを相互接続して、それらの事業をサポートするコンピュータネットワークを運営する。例えば、単一の組織によって、および単一の組織に代わって運営されるプライベートデータセンター、ならびに顧客にコンピューティングリソースを提供するビジネスとしてエンティティにより運営されるパブリックデータセンターなど、かなりの数の相互接続されたコンピューティングシステムを収容するデータセンターが普及している。パブリックデータセンターオペレータの中には、様々な顧客が所有するハードウェアにネットワークアクセス、電力、および安全な設置設備を提供するものもあれば、顧客による使用に利用可能にされたハードウェアリソースも含む「フルサービス」設備を提供するものもある。
コモディティハードウェアの仮想化テクノロジーの出現により、様々なニーズを有する多くの顧客に大規模なコンピューティングリソースを管理するという利点がもたらされ、様々なコンピューティングリソースを複数の顧客が効率的かつ安全に共有することが可能になった。例えば、仮想化技術では、単一の仮想化ホストによってホストされる1つ以上の「ゲスト」仮想マシンを各ユーザに提供することにより、単一の物理仮想化ホストを複数のユーザ間で共有することが可能であり得る。各そのような仮想マシンは、所与のハードウェアコンピューティングリソースの唯一のオペレータであるかのような錯覚をユーザに提供すると同時に、様々な仮想マシン間でアプリケーション分離およびセキュリティも提供する、別個の論理コンピューティングシステムとして機能するソフトウェアシミュレーションを表し得る。同じホスト上でいくつかの異なる仮想マシンをインスタンス化することはまた、データセンターの全体的なハードウェア利用レベルを増加させる助けとなり、より高い投資の収益をもたらし得る。
計算集約型アプリケーション、メモリ集約型アプリケーションなどの異なるタイプのアプリケーションのために最適化された多種多様な仮想マシンタイプは、クライアント要求に応答して、いくつかのクラウドコンピューティングプロバイダネットワークのデータセンターでセットアップされ得る。加えて、仮想コンピューティングサービスの仮想マシンを使用してデータベースインスタンスがインスタンス化されるいくつかのデータベースサービスなど、そのようなプロバイダネットワークの仮想コンピューティングサービスに依存する高レベルのサービスはまた、プロバイダネットワーククライアントに利用可能になり得る。しかしながら、プロバイダネットワークの外部の顧客プレミスに記憶する必要がある非常に大量のデータを処理するアプリケーションなど、いくつかのタイプのアプリケーションでは、プロバイダネットワークのデータセンターに配置されたハードウェアを使用して仮想化リソースを提供することに限定されたサービスは、例えば、遅延関連および/または他の理由で最適でない場合がある。
少なくともいくつかの実施形態による、プロバイダネットワークの仮想化コンピューティングサービスの拡張リソースグループが、プロバイダネットワークの外部のプレミスに配置されたリソースを使用してセットアップされ得る例示的なシステム環境を例解する。 少なくともいくつかの実施形態による、仮想化コンピューティングサービスの拡張リソースグループに含まれ得る、強化されたセキュリティ仮想化ホストの例示的な概要を例解する。 少なくともいくつかの実施形態による、仮想化ホストのオフロードされた仮想化管理コンポーネントカードの例示的な要素を例解する。 少なくともいくつかの実施形態による、少なくともいくつかの実施形態では、拡張リソースグループに関連付けられたアウトバウンドコマンドコミュニケータにプログラムで接続され得る仮想ネットワークインターフェースの例示的な属性を例解する。 少なくともいくつかの実施形態による、仮想化コンピューティングサービスのコントロールプレーンで生成されたコマンドを拡張リソースグループに送信するために使用され得る例示的なパスを例解する。 少なくともいくつかの実施形態による、拡張リソースグループネットワークマネージャの例示的な要素を例解する。 少なくともいくつかの実施形態による、仮想化コンピューティングサービスでサポートされ得る仮想マシンおよび拡張リソースグループの例示的なファミリを例解する。 少なくともいくつかの実施形態による、仮想化コンピューティングサービスの拡張リソースグループに関する例示的なプログラム相互作用を例解する。 少なくともいくつかの実施形態による、拡張リソースグループで仮想マシンを起動することに関連付けられた例示的なワークフローを例解する。 少なくともいくつかの実施形態による、仮想化コンピューティングサービスの拡張リソースグループでの追加のプロバイダネットワークサービスの使用の例を例解する。 少なくともいくつかの実施形態による、拡張リソースグループを確立し、仮想マシンを拡張リソースグループでセットアップすることを可能にするために、プロバイダネットワークで実行され得る操作の態様を例解するフロー図である。 少なくともいくつかの実施形態による、仮想化コンピューティングサービスの拡張リソースグループで実行され得る操作の態様を例解するフロー図である。 少なくともいくつかの実施形態で使用され得る例示的なコンピューティングデバイスを例解するブロック図である。
実施形態は、いくつかの実施形態および説明的な図面の例として本明細書に記載されるが、当業者は、実施形態が記載された実施形態または図面に限定されないことを認識するであろう。図面およびその詳細な説明は、実施形態を開示された特定の形態に限定することを意図するものではなく、むしろ、その意図は、添付の特許請求の範囲によって定義される趣旨および範囲内に該当するすべての修正形態、均等物、および代替物を包含することが理解されるべきである。本明細書で使用される見出しは、編成目的のみのためであり、本明細書または特許請求の範囲の範囲を限定するために使用されることを意味しない。本出願を通して使用されるように、「することができる(may)」という語は、必須の意味(すなわち、必然的な意味)ではなく、許容の意味(すなわち、可能性を有するという意味)で使用される。同様に、「含む(include)」、「含む(including)」、および「含む(includes)」という語は、含むがそれに限定されないことを意味する。特許請求の範囲で使用されるとき、用語「または」は、包括的なまたはとして使用され、排他的なまたはとしては使用されない。例えば、「x、y、またはzのうちの少なくとも1つ」という句は、x、y、およびzのうちの任意の1つ、ならびにそれらの任意の組合せを意味する。
プロバイダネットワークの仮想化コンピューティングサービスの操作をプロバイダネットワークのデータセンターの外部である場所に安全に拡張するための方法および装置の様々な実施形態が説明される。ネットワークは、インターネットおよび/または他のネットワークを介してクライアントの分配されたセットにアクセス可能な1つ以上のサービス(様々なタイプのマルチテナントおよび/またはシングルテナントクラウドベースのコンピューティングまたはストレージサービスなど)を提供するために、会社または公共機関などの企業によって設定される。説明された技術を使用して、少なくともいくつかの実施形態では、仮想化コンピューティングサービスのクライアントは、顧客データセンター、フィールドロケーション(例えば、電気通信会社を運営するクライアントの場合、携帯電話タワーの近く)、またはプロバイダネットワークデータセンターでセットアップすることができる仮想マシンのタイプの少なくともいくつかと同じ特徴および能力を備える仮想マシンをホストするためのコロケーション設備に配置されるハードウェアデバイスを利用することができる可能性がある。
少なくともいくつかの実施形態では、プロバイダネットワークの外部に配置されたハードウェアデバイスは、例えば、プロバイダネットワークオペレータによって、様々なカテゴリの仮想マシンをサポートするための、および同じ場所にある他のローカルデバイスとの低遅延通信をサポートし、顧客のデータおよびアプリケーションのセキュリティを損なうことなく、プロバイダネットワーク自体のセキュリティを損なうことなく、プロバイダネットワークの任意の他の顧客のセキュリティを損なうことのない様式でこれを行うためのハードウェア、ソフトウェア、および/またはファームウェア要素の適切な組み合わせで事前構成され得る。少なくともいくつかの実施形態では、「拡張リソースグループ」(ERG)という用語は、プロバイダネットワークの外部のプレミスに配置されたリソース(例えば、ハードウェア、ソフトウェア、ファームウェア、構成メタデータなど)の集合を指すために使用され得、仮想マシンがプレミスで確立され、利用されることを可能にする。拡張リソースグループが確立されるプレミス(例えば、顧客データセンター、フィールドロケーションなど)は、様々な実施形態では、クライアントプレミスと呼ばれ得る。事実上、仮想化コンピューティングサービス(VCS)の顧客の観点から、様々な実施形態では、ERGは、VCSの能力のローカル拡張を表すことができ、これは、インターネットにアクセスしているる任意の所望の物理的場所でセットアップすることができ、ハードウェアデバイスのセットを収容することができる(例えば、物理的スペース、電力などに関して)。VCS自体の観点からは、ERGは、顧客が選択したプレミスに物理的に配置される一方で、コアVCSインフラストラクチャと同じプロバイダネットワークデータセンターに仮想的に配置されると見なすことができる。いくつかの実施形態では、様々なカテゴリの標準化されたまたはカスタマイズ可能な仮想マシンに加えて、またはその代わりに、例えばベアメタルインスタンス、ソフトウェアコンテナなどの他のタイプのプログラム実行環境を、プロバイダネットワークの1つ以上のコンピューティングサービスの助けを借りてセットアップおよび管理し得る。一実施形態では、VCSによってサポートされるベアメタルインスタンスは、仮想化を利用することなく、使用されているホストのハードウェアの少なくとも一部分を直接制御するオペレーティングシステムの様々なプロセスを含み得る(ただし、ハードウェア機能の小さなサブセットは、場合によっては仮想化され得る)。そのような実施形態では、仮想化管理専用のハイパーバイザーは必要とされない場合がある。ベアメタルインスタンス自体は、いくつかの実施形態では、仮想マシンをホストするための機能を含み得る。「計算インスタンス」という用語は、様々な実施形態では、プロバイダネットワークデータセンターでリソースを使用して、および/またはERGを使用して、プロバイダネットワーククライアントに代わってセットアップおよび管理され得るすべての異なる種類の実行環境(仮想マシン、ベアメタルインスタンス、ソフトウェアコンテナなどを含む)を集合的に指すために使用され得る。以下の説明の多くでは、仮想マシンが計算インスタンスの主要な例として考察されるが、ERGで仮想マシンをセットアップおよび使用するために説明される技術は、様々な実施形態で、他のタイプの計算インスタンスと同等の成功を収めて適用することができることに注意されたい。
仮想化コンピューティングサービス(VCS)のリソースは、様々な実施形態では、2つのカテゴリ、すなわちコントロールプレーンリソースおよびデータプレーンリソースに大まかに細分され得る。コントロールプレーンリソースは、主に管理目的で、例えば、様々な顧客向けに分離仮想ネットワークを確立するため、リソース使用状況および状態を監視するため、要求された仮想マシンが起動される特定の仮想化ホストまたはサーバを特定するため、必要に応じて追加のハードウェアをプロビジョニングするためなどに、使用することができる。データプレーンリソースは、主に、例えば、クライアントアプリケーションを実行する、クライアントアプリケーションデータを記憶および転送するなどの非管理タスクに使用することができる。様々な実施形態では、ERGが、顧客が選択した場所でセットアップされる場合、ERGのリソースは、プロバイダネットワークのデータセンターに配置されるVCSのコントロールプレーンコンポーネントによって管理され得る。したがって、少なくともいくつかの実施形態では、所与のプレミスでERGをセットアップおよび使用することは、VCSのコントロールプレーン能力をローカルに複製することを必要としない場合があり、代わりに、プロバイダネットワークのデータセンターからERGに送信されるコントロールプレーンコマンドのために安全なネットワーク接続をセットアップすることができ、ERGのリソースは、主にデータプレーン操作に充てられ得る。
特定の顧客データセンターCDC1などの特定の場所でERGを使用し始めたいVCS顧客C1は、少なくともいくつかの実施形態では、以下と同様のワークフローに参加することによってそうすることができる。C1は、最初に、物理的なERG構成タイプのセット(例えば、標準サイズのサーバのハーフラックを含む「小」ERG構成、サーバのフルラックを含む「中」ERG構成、サーバの2つのフルラックを含む「大」ERG構成)の中から、所望の場所またはプレミスでセットアップされる特定の構成を任意選択で選択し得る。デフォルトにより、C1がERG構成タイプを明示的に選ぶことを望まない場合、いくつかの実施形態では、特定の構成タイプ(「小」構成など)がクライアントに対して選択され得、それにより、C1から必要とされる労力をさらに削減する。次に、ERGの要求は、プログラムインターフェース(例えば、ウェブベースのコンソール、アプリケーションプログラミングインターフェース(API)、コマンドラインツール、グラフィカルユーザインターフェースなど)を介して、VCSに提出され得る。要求が承認された後、ERGのハードウェア(適切なソフトウェア/ファームウェアがプリインストールされている)を所望の場所に輸送し、電源に接続し、インターネットに接続することができる。
少なくともいくつかの実施形態では、ネットワークマネージャは、1つ以上のトリガ条件(電力および/またはインターネット接続の検出など)の検出に応答して、ERGのサーバのうちの1つ以上でインスタンス化され得る。次いで、そのようなERGネットワークマネージャ(ENM)は、例えば、C1からの追加の構成ガイダンスを必要とせず、1つ以上のプロバイダネットワークデータセンターで、1つ以上のVCSコンポーネント(例えば、コントロールプレーン要素を含む)との安全なネットワーク接続の自動確立を開始する(または少なくともその自動確立に参加する)ことができる。ERG(CDC1での)とVCSコンポーネント(プロバイダネットワークデータセンター(複数可)での)との間に接続が確立された後、様々な実施形態では、C1は、コマンドを発行して、プロバイダネットワークリソースのみを使用する仮想マシンに関して、そのようなコマンドが発行される方法と同様の様式で、ERGリソースを使用する仮想マシンをインスタンス化する(および/または仮想マシンを使用して他の操作を実行する)することができる。C1の観点からは、VCSの機能は、CDC1内のローカルリソース(および必要に応じてプロバイダネットワークデータセンターに配置されたリソース)を使用してここでシームレスに利用することができる。ERGでセットアップされた仮想マシン(VM)は、様々な実施形態では、CDC1に配置された非VCSデバイス、および必要に応じてプロバイダネットワークデータセンターでセットアップされる他のVMと通信することができる(例えば、アドレス変換および/または他のカプセル化プロトコル関連処理を実行することができるENMの助けを借りて)。ERGでセットアップされる少なくともいくつかのVM、およびそのようなVMをビルディングブロックとして使用する関連付けられたより高いレベルのサービスは、いくつかの実施形態では、プロバイダネットワークデータセンターへの接続が一時的に中断される期間の間でさえ機能し続けることができる。特に、低遅延で、顧客データセンターに記憶される大量のアプリケーションデータにアクセスして処理することを希望するVCSの顧客の場合(例えば、法令遵守、セキュリティ、または他の理由で)、アプリケーションデータと同じ場所に配置されたVCS VMをセットアップする能力は、様々な実施形態では、非常に有益である可能性がある。
当業者が本開示に照らして理解するように、特定の実施形態は、以下、すなわち(a)場所に依存しない様式で、例えば、仮想化されたコンピューティングサービスのクライアントによって選択されたプレミスに配置されたリソースを使用しながら、さらにプロバイダネットワークを使用することで可能になるスケーラビリティ、セキュリティ、可用性、および他の運用上の利点を維持して、多種多様な仮想化コンピューティングアプリケーションが実装されることを可能にすること、(b)アプリケーションデータの量、および顧客データセンターとプロバイダネットワークデータセンターとの間のリンクなどの長距離を転送する必要のある結果を削減すること、(c)アプリケーションをデータソース/デスティネーションの近くに移動することによって、潜在的に大量のデータが入力として消費されるか、または出力として生成されるアプリケーションの全体的な遅延および応答性を向上させること、および/または(d)機密性の高いアプリケーションデータのセキュリティを向上させることのうちのいくつかまたはすべてを含む様々な利点を達成することができる可能性がある。様々な実施形態では、拡張リソースグループ(ERG)の設計および実装の根底にある指針および目標は、とりわけ、(a)計算およびデータリソースの局所性を利用することに基づいて、遅延の短縮された計算を可能にすること、(b)顧客データが記憶されている場所へのネットワークトラフィックを制限して完全にロギングすることにより、顧客データのセキュリティを確保すること、(c)ERGリソースを使用して、様々なプロバイダネットワークサービスにファーストクラスのサポート(プロバイダネットワークデータセンターに配置されたリソースを使用して可能であるサポートに相当する)を提供すること、(d)プロバイダネットワークの独自のデータセンターを潜在的な敵対アクターから保護すること(例えば、ERGで運営すること)、および/または(e)ERGからプロバイダネットワークへの不完全なネットワーク接続の条件下でも、ERGでのサービスの継続的な履行をサポートすること、を含み得る。
顧客データおよびアプリケーション、ならびにプロバイダネットワークに対して目標とする高レベルのセキュリティを達成するために、分離仮想ネットワークおよび仮想ネットワークインターフェース(VNI)の使用を含む、いくつかのネットワーク構成技術(および他のタイプの構成設定)を、異なる実施形態で利用することができる。分離仮想ネットワーク(IVN)は、その名前が示すように、様々な実施形態では、ネットワーク構成設定の少なくともいくつかのタイプに関して、仮想化コンピューティングサービスの残りのリソースから論理的に分離または切り離されるリソースのセットを含み得る。IVNは、様々な目的で、仮想化されたコンピューティングサービスで、または仮想化されたコンピューティングサービスによって確立され得る(および、場合によっては、プロバイダネットワークのデータセンターの外部に配置されたERGに拡張される)。例えば、IVNは、顧客専用のリソースのセットを確保することで特定の顧客向けにセットアップすることができ、リソースのそのセットのネットワーク構成に関してかなりの柔軟性が、顧客に提供される。IVN内で、顧客は、サブネットをセットアップし、所望のプライベートIPアドレスを様々なリソースに割り当て、着信および発信トラフィックを管理するセキュリティルールをセットアップするなど、行うことができる。少なくともいくつかの実施形態では、デフォルトで、1つのIVN内にセットアップされたプライベートネットワークアドレスのセットは、別のIVNから(またはより一般的にはIVNの外部から)アクセス可能でない場合がある。少なくともいくつかの実施形態では、VCSを非プロバイダネットワークプレミスに拡張するために使用されるセキュリティメカニズムのうちの1つは、(プロバイダネットワークデータセンターでリソースを使用して)アウトバウンドコマンドコミュニケータ(OCC)のインスタンスのプールを含む1つ以上のIVNをセットアップすることを含み得る。VCSコントロールプレーンのサーバおよびデバイスから論理的に(および/または物理的に)切り離されたままにされ得るそのようなコミュニケータは、様々な実施形態では、安全なネットワーキングチャネルを使用して、VCSコントロールプレーンからERGに管理コマンドを送信するために使用され得る。様々な実施形態では、管理メッセージが、ERGからセキュアネットワーキングチャネルを介してコントロールプレーンに戻されることができないことを確実にするようにOCCを構成することもでき、したがって、他の顧客に影響を与える可能性のある管理操作が、任意の所与の顧客のERGで開始されるのを防止する。少なくともいくつかの実施形態では、個々のOCCインスタンスは、以下でさらに詳細に考察されるように、仮想マシンに接続された1つ以上の仮想ネットワークインターフェースを備える仮想マシンを含み得る。仮想ネットワークインターフェース(VNI)は、様々な実施形態では、仮想マシンにプログラムで接続または関連付けることができるパブリックおよび/またはプライベートIP(インターネットプロトコル)アドレス、セキュリティ設定などを含むネットワークプロパティのセットを含み得る。OCCインスタンス、IVN、およびVNIを利用して、ERGを介して提供される仮想化コンピューティング能力を確保する様式の詳細を、以下に提供する。
いくつかの実施形態によれば、システムは、プロバイダネットワークの仮想化コンピューティングサービス(VCS)の1つ以上のコンピューティングデバイスを含み得る。プロバイダネットワークは、1つ以上のデータセンターを含み得る。コンピューティングデバイスは、命令を含み得、命令は、プロセッサ上で実行されると、コンピューティングデバイスに、第1の分離仮想ネットワーク(IVN)内で、拡張リソースグループ(ERG)に関連付けられたアウトバウンドコマンドコミュニケータ(OCC)をインスタンス化させる。ERGは、いくつかの実施形態では、プロバイダネットワークの1つ以上のデータセンターの外部の第1のプレミスに配置された少なくとも第1の仮想化ホストを含み得る。OCCは、様々な実施形態では、コマンドがERGから提出されることを可能にすることなく、管理コマンドをERGに安全に転送する仲介者として機能し得る。例えば、構成設定は、ERGからの少なくともいくつかのタイプのネットワークパケットがOCCを介してVCSのコントロールプレーンに送信されることを防止し得る。命令はまた、実行されると、コンピューティングデバイスに、(a)プロバイダネットワークの1つ以上のデータセンターのリソースを含む第2の分離仮想ネットワークの一部分と、(b)プロバイダネットワークの外部の第1のプレミスに配置された1つ以上のリソースとの間に確立された安全なネットワークチャネル(例えば、VPNもしくは仮想プライベートネットワークトンネルもしくは接続、またはトラフィックが専用の物理リンクを介して流れる接続)の表示を、OCCで取得させ得る。そのような安全なネットワーキングチャネルは、例えば、プロバイダネットワークのデータセンター内のERGネットワークマネージャと顧客IVNとの間に確立され得る。
OCCでは、仮想マシン起動コマンド(VCSクライアントからのプログラム要求に応答して生成される)は、様々な実施形態では、取得または判定され得る。クライアントからのプログラム要求は、少なくともいくつかの実施形態では、安全なネットワークチャネルを含まない経路を介して、クライアントからVCSの制御面で受信し得、例えば、コマンドは、ウェブベースのコンソールで提出され、プロバイダネットワークデータセンター内にセットアップされた仮想マシンに関して、クライアントによって提出された管理コマンドに使用されるのと同じ種類のパスを介して送信され得る。命令は、実行時、様々な実施形態では、コンピューティングデバイスに、仮想マシン起動コマンドの表現を、安全なネットワークチャネルを介して、第1のOCCから拡張リソースグループに送信させることができる。少なくともいくつかの実施形態では、第1の仮想化ホストでの表現の処理は、少なくとも部分的に、第1の仮想化ホストでの仮想マシンのインスタンス化をもたらし得る。構成設定がコマンドのフローをVCSコントロールプレーンからERGへのアウトバウンド方向のみに制限する方法のため、ERGからコマンドを提出することができないため、様々な実施形態では、VCSおよびその顧客のセキュリティを強化することができ、それは、VCSデータセンターまたは他のERGでの運用に影響を与え得る。仮想マシン起動コマンドに加えて、他の管理コマンド(例えば、ERGで仮想マシンをシャットダウンするためのコマンド、ERGで仮想マシンのプロパティを表示または変更するコマンドなど)も、OCC、およびERGで確立された安全なネットワークチャネルを使用する顧客に代わって、VCSコントロールプレーンから送信され得る。
少なくともいくつかの実施形態では、OCCは、クライアントによって選択されたプレミスでERGのハードウェア機器が引き渡される時間の前にセットアップされ得る。例えば、一実施形態では、VCS顧客がプログラム要求を介してERGを注文する時間と、ERGハードウェアがプレミスに引き渡されてセットアップされる時間と、ERGを確立するプログラム要求の受信との間に遅延があり得ることにより、その顧客のERGのために特別に指定されたOCCのプロアクティブな構成またはインスタンス化がトリガされ得る。一意の識別子は、各ERG要求に対して生成され得、いくつかの実施形態では、ERGのために指定されたOCCからアクセス可能なメタデータエントリに記憶され得、その識別子はまた、ERGの一部として出荷されるハードウェアデバイスのうちの1つに含まれ得、したがって、VCSとERGの間に接続が確立されたときに、ERGバンが正しいOCCと一致する。少なくともいくつかの実施形態では、ERGのネットワークマネージャは、VCSとの安全なネットワークチャネル(VPNトンネルなど)の確立を開始することができ、OCCは、安全なネットワークチャネルを確立するための要求の前にインスタンス化することができる。いくつかの実施形態では、OCCは、プロバイダネットワークのデータセンター内の仮想マシンを使用して実装され得る。
少なくともいくつかの実施形態では、サービスプロバイダ環境でのVCSのコントロールプレーンは、仮想化ホスト用に特定の範囲のサービスネットワークアドレスSAR1を使用することができる(仮想化ホストがサービスプロバイダのデータセンター内に配置されるか、またはクライアントプレミスにセットアップされたERGの一部であるかに関係なく)。プロバイダネットワークデータセンター内では、コントロールプレーンによって管理されるネットワークは、計算インスタンスをホストするように構成された複数のサーバを含み得る。以下に説明する仮想ネットワークインターフェース(VNI)および/または他の技術を使用して、少なくとも1つの実施形態では、コントロールプレーンによってERGのターゲット仮想化ホストH1に割り当てられたアドレスAddr1はまた、コントロールプレーンコマンドをERGに転送するために使用される特定のOCCに割り当てられ得る。そのような実施形態では、コントロールプレーンの観点から、OCC(サービスプロバイダデータセンターでの仮想化ホストと同じネットワーク内で構成され得るか、またはそれに結合され得る)は、事実上、ホストH1を表すことができる。デスティネーションアドレスとしてAddr1を使用して、ERGで計算インスタンスを起動するための要求を含む第1のメッセージは、少なくともいくつかの実施形態では、コントロールプレーンからOCCに送信され得る。
いくつかの実施形態では、対象となるERGのネットワークマネージャ(ENM)は、少なくとも第2のネットワークアドレスAddr2が割り当てられている可能性がある1つ以上のデバイス(例えば、上で考察されたハードウェアカード)で動作している可能性がある。Addr2は、例えば、顧客データセンターまたは他のクライアントプレミスで確立された第1のネットワーク内のアドレスであり、それは、デバイスにクライアントアドレス範囲CAR1を使用する。Addr1のコントロールプレーンから第1のメッセージを受信したことに応答して、OCCは、様々な実施形態では、計算インスタンスを起動するための要求の少なくとも一部分を含む第2のメッセージを準備し、これを、Addr2をデスティネーションアドレスとしてENMに送信する。第2のメッセージを受信すると、ENMが動作するデバイスは、第2のメッセージの少なくとも一部分(例えば、計算インスタンスが起動されることを示す)をターゲット仮想化ホストH1に転送することができる。いくつかの実施形態では、少なくとも2つ、すなわち、ネットワークアドレス範囲CAR1を使用する第1のネットワーク、およびH1などの様々なホスト/サーバが、少なくともSAR1のサブ範囲(コントロールプレーンによって仮想化ホストに使用されるアドレス範囲)からのアドレスが割り当てられる第2のネットワーク(それは、ENMによってセットアップされたプライベートネットワークであり得る)は、クイアントプレミス(例えば、顧客データセンター)で確立され得る。そのような実施形態では、ターゲット仮想化ホストH1は、OCCに割り当てられたのと同じアドレスAddr1が割り当てられ得、ENMは、Addr1をデスティネーションアドレスとして使用して、起動メッセージをターゲット仮想化ホストに送信し得る。事実上、コントロールプレーンによってデスティネーションアドレスAddr1に最初に指示されたが、ERGへのパスに沿ってデスティネーションとして1つ以上の他のアドレスを使用して送信された可能性がある、計算インスタンスを起動するコマンド/要求は、再びERG内のデスティネーションアドレスAddr1に送信され得、したがって、いくつかの実施形態では、少なくとも2つのアドレス変換操作がコマンドの送信に関与し得る。ENM自体は、いくつかの実施形態では、クライアントプレミスの両方のネットワークの一部であり得、例えば、ENMの少なくとも一部分が動作するデバイスは、CAR1が使用されるネットワーク内、およびH1(SAR1が使用される)を含むネットワーク内でもそれぞれのアドレスが割り当てられ得る。ホストH1がENMによって送信されたメッセージを受信すると、要求された操作は、実行され得、例えば、計算インスタンスは、H1で起動され得る。
少なくともいくつかの実施形態では、VCSは、仮想マシンカテゴリのセットの表示を提供することができ、その所望数のインスタンスが、VCSクライアントの要求に応じてプロバイダネットワークデータセンターおよび/またはERGで確立され得る。したがって、例えば、クライアントC1は、プロバイダネットワークデータセンターでカテゴリCat1のN個のVMを要求し、C1に代わってセットアップされたERGで同じカテゴリCat1のM個のVMを要求する場合もある。いくつかの実施形態では、VMの少なくともいくつかのカテゴリは、ERGでのみサポートされ得るか、またはプロバイダネットワークデータセンターでのみサポートされ得る。
OCCは、いくつかの実施形態では、コマンドの表現をERGに転送する前に、仮想マシン構成コマンド(例えば、起動コマンド)に対して1つ以上の変換を実行することができる。例えば、OCCでVCSコントロールプレーンから取得されたコマンドのバージョンは、いくつかの実施形態では、1つ以上のセキュリティトークン(例えば、コマンドの結果として実行された操作のリクエスタのアイデンティティを検証するために使用することができ、リクエスタが、操作を要求するために必要な許可を有するトークン)を含み得、OCCは、ERGに転送されるコマンドのバージョンからトークンを除去するか、または除外することができる。少なくともいくつかの実施形態では、最初のセキュリティトークンは、変換され得(例えば、VCSコントロールプレーンで最初に使用されたものとは異なるキーを使用して署名され)、コマンドがVCSコントロールプレーンによって指示されるターゲットホストで認証され得る、セキュリティトークンの変換されたバージョンは、コマンドの転送されたバージョンに含まれ得る。少なくとも1つの実施形態では、それぞれのメッセージ認証コード(例えば、ハッシュベースのメッセージ認証コードまたはHMACを含む)は、OCCからERGに送信されるアウトバウンドコマンドのために生成され得る。様々な実施形態では、OCCは、所与のERGに送信されたすべてのアウトバウンド通信メッセージをログに記録することができ、ログに記録されたメッセージは、クライアントによって検査され得、クライアントに代わって、必要に応じてERGがセットアップされる。いくつかの実施形態では、少なくとも2つの仮想ネットワークインターフェースは、所与のOCCに関連付けられ得、1つは、VCSコントロールプレーンからコマンドを取得するために使用され、もう1つは、安全なネットワークチャネルを使用してERGと通信するために使用される。
いくつかの実施形態によれば、システムは、プロバイダネットワークの仮想化コンピューティングサービス(VCS)の拡張リソースグループ(ERG)を含み得る。ERGは、様々な実施形態では、耐タンパー性ストレージデバイス(例えば、ホストに物理的に接続される場合にのみ復号化することができる暗号化デバイス)およびトラステッドプラットフォームモジュールを含む少なくとも第1の仮想化ホスト(VH)を含み得る。プロバイダネットワークは、1つ以上のデータセンターを含み得、第1のVHは、少なくともいくつかの実施形態では、プロバイダネットワークの外部のプレミスに配置され得る。コンピューティングデバイスは、命令を含み得、命令は、プロセッサ上で実行されると、コンピューティングデバイスに、1つ以上のトリガ信号に応答して、ERGのネットワークマネージャをインスタンス化させる。ERGネットワークマネージャ(ENM)は、様々な実施形態では、VCSの第1の分離仮想ネットワーク(IVN)の少なくとも一部分などの1つ以上のVCSリソースとの通信のための安全なネットワークチャネルの構成を開始することができる。そのようなIVNは、例えば、プロバイダネットワークのデータセンターでインスタンス化された第2のVHに少なくとも第1の仮想マシン(VM)を含み得る。
ENMは、少なくともいくつかの実施形態では、安全なネットワークチャネルを介して、拡張リソースグループに関連付けられたOCCから、仮想マシン起動コマンドを取得することができる。仮想マシン起動コマンドは、様々な実施形態では、安全なネットワークチャネルを含まない経路を介して送信された、クライアントからのプログラム要求に応答して、(例えば、VCSコントロールプレーンで)生成され得る。ENMから、仮想マシン起動コマンドの少なくともあるバージョンは、いくつかの実施形態では、拡張リソースグループの第1の仮想化ホストに送信され得る。第1の仮想化ホストでの仮想マシン起動コマンドの処理は、そのような実施形態では、第1の仮想化ホストでの新しい仮想マシンのインスタンス化をもたらし得る。
いくつかのタイプのトリガ信号のいずれも、様々な実施形態では、ENMのインスタンス化につながり得る。例えば、ERGに含まれる特定のサーバが電源がオンになっていること、またはERGからインターネットへの接続が有効になっていることを示す信号は、いくつかの実施形態では、ENMの少なくとも一部分のインスタンス化、初期化、および/またはスタートアップにつながり得る。
プロバイダネットワークでERGとVCSリソースとの間の仲介者として機能することに加えて、少なくとも1つの実施形態では、ENMはまた、ERG内にセットアップされた仮想マシンと、(a)ERGがセットアップされるプレミスに配置され、(b)ERGの一部ではないリソースとの間の仲介者として機能し得る。例えば、VCSクライアントは、ERGとは別に、ERG仮想マシンを使用して処理されるデータが記憶されるサーバのセットを有し、ENMは、そのサーバのセットとERG仮想マシンとの間の通信を有効にし得る。このようなサーバは、少なくともいくつかの実施形態では、非VCSサーバと呼ばれ得る。接続性を提供するために、ENMは、いくつかの実施形態では、ERGから非VCSサーバにアウトバウンドするトラフィックに対して様々なタイプのパケット変換を実行し、非VCSサーバからERGにインバウンドするトラフィックに対して逆変換を実行し得る。変換は、例えば、異なる実施形態では、IPアドレスマッピング、カプセル化プロトコル処理などを含み得る。いくつかの実施形態では、ERGがホストされているプレミスでERGから非VCSへのリソースを管理することを担当するエンティティとは異なるエンティティは、ERGからVCSへの通信を管理する責任がある場合があり、すなわち、単一のENMは、必ずしも両方のタイプの機能を担当するとは限らない場合がある。
一実施形態によると、ERGはまた、ERGの仮想化ホストを初期化/ブートすることを担当するブートストラップマネージャを含み得る。いくつかの実施形態では、ENMは、ブートストラップ/初期化タスクを実行することができる。少なくともいくつかの実施形態では、VMがERGホストで確立された後、プロバイダネットワークの他のより高いレベルのサービスの操作は、それらのVMを使用して実行され得る。例えば、プロバイダネットワークは、データベースインスタンスがビルディングブロックとしてVMを使用して構成されるデータベースサービスを含み得、そのようなデータベースインスタンスは、ERGでセットアップされたVMを使用して構成され得る。
少なくともいくつかの実施形態では、ERGの仮想化ホストは、トラステッドプラットフォームモジュール(TPM)などのセキュリティモジュールを含み得、そのようなセキュリティモジュールは、所与のERGホストで、VMをインスタンス化する(または他の仮想化関連操作を実行する)前に、ERGホストの状態(例えば、インストールされたソフトウェア状態など)が受け入れ基準を満たすることを検証するために使用され得る。少なくとも1つの実施形態では、ERG仮想化ホストで起動されたVMに関連する状態情報は、仮想化ホストのストレージデバイスに、暗号化された形態で記憶され得る。ERGの特定の仮想化ホストに物理的に存在するか、または接続される限り、、復号化することのみができるストレージデバイスなど、耐タンパー性ストレージデバイスは、いくつかの実施形態では、採用することができる。結果として、悪意のあるアクターがストレージデバイスを物理的に取り除いた場合、暗号化された状態情報は、そのような実施形態では、削除されたデバイスから復号化することができず、ERGによってサポートされる仮想化特徴のセキュリティがさらに強化される。
いくつかの実施形態では、所与のERGについて、それらのユーザ/エンティティのみがERGで仮想マシンをセットアップおよび使用することが許可されるように、許可またはアイデンティティ管理サービスで定義されたユーザまたはエンティティのセットが指定され得る。所与のVMがERGで起動される(または他のVM関連の操作が実行される)前に、要求しているユーザまたはエンティティのアイデンティティは、様々な実施形態では、例えばENM、OCC、またはVMが起動される仮想化ホストで検証され得る。少なくとも1つの実施形態では、ERGでのVMの起動をスピードアップするのを助けるために、VMイメージのセットは、ERGのローカルストレージデバイスに記憶またはキャッシュされ得、その結果、ERGで所望のカテゴリのVMを起動するために、ネットワークを介して大きなイメージを転送する必要がない場合がある。いくつかの実施形態では、イメージは、ERGのコンピューティングデバイスの、ERGがセットアップされる場所(例えば、顧客データセンター)への物理的な引き渡しの前にキャッシュされ得る。
例示的なシステム環境
図1は、少なくともいくつかの実施形態による、プロバイダネットワークの仮想化コンピューティングサービスの拡張リソースグループが、プロバイダネットワークの外部のプレミスに配置されたリソースを使用してセットアップされ得る例示的なシステム環境を例解する。図のように、システム100において、仮想化コンピューティングサービス(VCS)110のコアコンポーネントは、少なくとも、コントロールプレーンリソース141、データプレーンリソース145、およびアウトバウンドコマンドコミュニケータ(OCC)177のセットを含み得、これらはすべて、プロバイダネットワークのデータセンター101内に配置され得る。プロバイダネットワークは、様々な実施形態では、サービスプロバイダと呼ばれ得る。図示の実施形態では、VCSのデータプレーンは、拡張リソースグループ(ERG)を使用して、外部の場所(VCS顧客/クライアントによって選択され得るプレミス)に拡張され得る。例えば、ERG135Aは、コロケーション設備130(例えば、2つ以上の組織のコンピューティング関連リソースがホストされ得る建物または部屋などの場所)に確立され得、ERG135Bは、顧客データセンター132Aにセットアップされ得、ERG132Bは、顧客データセンター132Bに確立され得る。
いくつかの実施形態によると、VCS110のコントロールプレーンリソース141は、クライアントが提出した構成要求(新しい仮想マシンをセットアップする要求、ネットワーク設定を変更する要求など)、VCSのデータプレーンコンポーネントのプロビジョニングおよび状態管理操作などに応答することを担当するCPS102A~102Cなどのいくつかのコントロールプレーンサーバ(CPS)102を含み得る。データプレーンリソースは、クライアントC2に代わってセットアップされたIVN115Aなどの、いくつかの分離仮想ネットワーク(IVN)115を含み得る。先に示したように、IVN115は、様々な実施形態では、ネットワーク構成設定の少なくともいくつかのタイプに関して、仮想化コンピューティングサービスの残りのリソースから論理的に分離または切り離されるリソースのセットを含み得る。例えば、所与のIVNは、いくつかの実施形態では、それぞれのセキュリティ設定を有する1つ以上のサブネット、および/またはIPアドレスのセットを有し得、その個々のサブネットは、1つ以上の仮想化ホスト(VH)117でセットアップされた個々の仮想マシン125(例えば、VM125A)に割り当てられ得る。図1に示される例示的なシナリオでは、IVN115Aは、VH117AおよびVH117Bでインスタンス化された仮想マシンを含み得、一方、IVN115Bは、VH117Jまたは117Kでセットアップされた仮想マシンを含み得る。少なくとも一実施形態では、少なくともいくつかの仮想化ホスト117が、マルチテナントモードで使用され得るため、所与のVHが、いくつかの異なるクライアントに代わってセットアップされたVMに潜在的に使用され得、いくつかの異なるIVNのVMが、1つのVHで潜在的にインスタンス化されることに留意されたい。
少なくとも1つの実施形態では、IVNは、内部または管理上の使用のために、ならびにクライアントが要求した仮想マシンをホストするためにセットアップされ得る。いくつかの実施形態では、例えば、ERGにコマンドを送信するために使用されるOCC177のうちの1つ以上は、IVN内に確立され得る。所与のOCC177は、例えば、いくつかの実施形態では、仮想マシン内の1つ以上のプロセスまたは実行スレッドを使用して実装され得、少なくとも1つの拡張リソースグループ135にプログラムで関連付けられ得る。少なくともいくつかの実施形態では、OCCの構成設定は、VCSコントロールプレーン内で発信されるコマンドがOCCを介してERGに送信され得るが、ERG(または任意の他のソース)で発信されるメッセージがERGを介してVCSコントロールプレーンに送信されないようにセットアップされ得る。例えば、以下で考察されるように、一実施形態では、OCCとして使用される仮想マシンに接続された特定の仮想ネットワークインターフェース(VNI)のセキュリティ設定は、メッセージがVCSコントロールプレーンリソース141からOCCに送信されることのみを可能にし、逆方向に送信されることを可能にし得ない。
高レベルでは、様々な実施形態では、ERG135は、少なくとも少量のハードウェア機器をホストすることができ、インターネット接続を有するVCS顧客が選択した任意の場所における、VCSの安全なデータプレーン機能(例えば、プロバイダネットワークデータセンター内にセットアップすることができるものと同一または少なくとも非常に類似した仮想マシンをインスタンス化する能力)を提供するように設計され得る。以下で考察されるように、ERGの1つ以上のタイプまたはカテゴリは、様々な実施形態では、VCSで定義され得、顧客は、コロケーションプレミス130または顧客データセンター132など、ERGインスタンスがプロバイダネットワークの外部の所与の場所にセットアップされる特定のカテゴリを選択し得る。ERG内に含まれるハードウェアデバイス、関連付けられたソフトウェアおよびファームウェアの特定のセットは、様々な実施形態では、プロバイダネットワーク101のオペレータによって設定された(および少なくとも場合によっては事前構成または事前インストールされた)基準を満たすことができる。
ERGを使用して提供される仮想化コンピューティングおよび他の機能の品質(セキュリティ、パフォーマンス、可用性などの態様を含む)が、VCSおよびプロバイダネットワークの標準を満たすことを確実にするために、異なる実施形態では、いくつかの技術を使用することができる。例えば、少なくともいくつかの実施形態では、EVH118A、118B、118J、118K、118Pまたは118Qなどの強化されたセキュリティ仮想化ホスト(EVH)118のセットは、ERGに含まれ得る。このようなEVHは、遠隔で生成された仮想化関連の管理コマンドが、例えば、コマンドが最初に発行されたソース(コントロールプレーンリソース141など)にメッセージを送り返すことなく、安全かつ確実に実行することを可能にするように特別に設計されるいくつかのハードウェア、ソフトウェア、および/またはファームウェア要素を含み得る。いくつかの実施形態では、そのような要素は、以下でさらに詳細に考察されるように、トラステッドプラットフォームモジュール(TPM)または他のセキュリティモジュールを含むオフロードされた仮想化管理コンポーネント(OVMC)、耐タンパー性ストレージデバイスであって、ストレージデバイスが特定のEVHに物理的に接続されている場合にのみコンテンツを復号化することができる耐タンパー性ストレージデバイス、低オーバーヘッドの仮想化管理ソフトウェアスタックなどを含み得る。少なくともいくつかの実施形態では、以下に考察されるように、EVHは、アウトバウンドコールを行わず、TLS(トランスポート層セキュリティ)セッションを使用して保護されるインバウンドコマンド用のAPIを実装するVCSコントロールプレーンエージェントを含み得る。このようなAPIは、様々な実施形態では、強力な許可、認証、およびアカウンティング関連の制御を有し得る。少なくともいくつかの実施形態では、仮想化管理に関連付けられた共有秘密は、EVH自体の中に記憶され得ない。様々な実施形態では、VCSソフトウェアおよび構成を含むEVHに関する状態情報は、TPMまたは同様のセキュリティモジュールに対して封印される1つ以上の暗号化ドライブに記憶され得、安全で測定されたブートプロセスを使用してドライブのコンテンツのロックを解除し得る。少なくともいくつかの実施形態では、同様のEVHは、プロバイダネットワークデータセンター内でも使用され得、例えば、125Aなどの仮想マシンの少なくともいくつかのサブセットは、プロバイダネットワーク内のEVH上にセットアップされ得ることに留意されたい。仮想化ホスト(図1のEVH118およびVH117を含む)は、いくつかの実施形態では、仮想化サーバ、または単にサーバと呼ばれることもある。
少なくともいくつかの実施形態では、所与のERG135は、1つ以上のコンピューティングデバイスに実装されたネットワークマネージャを含み得、それは、プロバイダネットワークとのネットワーク接続の確立に参加またはそれを開始し得る。いくつかの実施形態では、仮想プライベートネットワーク(VPN)トンネルまたはVPN接続などの安全なネットワークチャネルは、ERG135(例えば、ERGのネットワークマネージャ)とプロバイダネットワークデータセンター内に配置されたリソースとの間に確立され得、そのようなチャネルは、VCSからERGにコマンドを送信するために採用することができる。図1に描写される実施形態では、例えば、それぞれの一方向の安全なネットワークチャネル166(例えば、166A、166B、または166C)を使用して、クライアント要求(ERGで125Bなどの仮想マシン125をインスタンス化する要求を含む)に応答して、コントロールプレーンリソース141で最初に生成されたコマンドを、EVH118での最終的な実行のために、OCCを介してERGに送信することができる。一実施形態では、そのようなコマンドに使用される安全なチャネルは、ERG135(ネットワークマネージャなど)における1つ以上のリソースと、ERGがその要求に応じて確立された、クライアントのIVN115内の1つ以上のリソース(仮想マシン125またはVPNゲートウェイなど)との間に設定され得、そのERG135のために指定されたOCC177は、セットアップされた後、チャネル(例えば、VPN接続識別子またはトンネル識別子)の表示(および使用許可)を取得することができる。
いくつかの実施形態によると、安全なチャネル166にアクセスしているOCC177は、VCSコントロールプレーンリソース141で生成された管理コマンドの少なくとも第1のバージョンを取得することができる。管理コマンドは、少なくとも1つの実施形態では、クライアントからのプログラム要求に応答してVCSコントロールプレーンで生成された可能性があり、OCCに関連付けられたERGに向けられ得る。プログラム要求自体は、少なくともいくつかの実施形態では、安全なネットワークチャネルを含まない経路を介して、クライアントからコントロールプレーンデバイスで受信された可能性がある。VCSコントロールプレーンで生成されたコマンドの表現は、様々な実施形態では、OCCから安全なネットワークチャネルを介して、関連付けられたERG135に送信され得、ERGで実行され得る。1つの例示的なシナリオでは、クライアントは、ERGで仮想マシン(VM125Bなど)を起動するための要求をプログラムで提出することができ、対応するVM起動コマンドの第1のバージョンは、VCSコントロールプレーンリソース141で生成され、適切なOCC177に送信され得、OCC177は、コマンドの変更されたバージョンをERGのネットワークマネージャに送信し得る。次に、ネットワークマネージャは、コマンドを、選択されたEVH118に送信することができ、EVH118上の1つ以上のプロセスは、要求仮想マシンを起動するためのコマンドを実行することができる。同様のワークフローは、様々な実施形態では、VMを終了させるためのコマンド、VMを修正するためのコマンドなどの他のタイプのコマンドに対して実行することができる。
いくつかの実施形態では、VCSコントロールプレーンからOCCで受信されたコマンドのバージョンは、例えば、1つ以上のセキュリティ関連トークンなどを削除/置換することによって、OCCで修正され得、その結果、コマンドの修正されたバージョンの、ERGへの送信をもたらす。コマンドの修正されたバージョンは、例えば、OCCで生成された1つ以上のセキュリティアーティファクトまたはオブジェクトを含み得、それらは、様々な実施形態では、コマンドが最終的に実行/実装されるERGのターゲットホストで認証され得る。少なくとも1つの実施形態では、HMAC(ハッシュベースのメッセージ認証コード)などのそれぞれの認証コードは、OCCで各コマンドに生成され、ERGに転送されるメッセージに含まれ得、コマンドを改ざんすることを困難にする。いくつかの実施形態では、仮想マシンカテゴリの1つ以上のファミリのインスタンスは、プロバイダネットワークデータセンター内の仮想化ホスト115で確立され得、同じVMカテゴリの少なくともいくつかのインスタンスは、ERGでセットアップされ得る。一実施形態では、1つ以上のVMカテゴリのインスタンスを起動するために使用することができる仮想マシンイメージは、例えば、プロバイダネットワークからERGへのネットワークを介して潜在的に大きなVMイメージファイルを送信する必要なしに、新しいVMが非常に迅速に起動され得るように、ERG内に含まれるストレージデバイスでキャッシュされ得る。いくつかの実施形態では、許可されたエンティティ(例えば、ユーザ、グループなど、アイデンティティサービスまたは許可サービス内で定義される)は、それらのエンティティのみが、ERGでの1つ以上のタイプの操作(VM起動など)を開始することを許可されるように、所与のERGに対して指定され得る。そのような操作を実行する前に、VCSは、様々な実施形態では、要求エンティティが適切な許可を与えられていることを(例えば、VCSコントロールプレーン、OCC、および/またはERG自体で)検証することができる。少なくともいくつかの実施形態では、ERGに発行されたすべてのコマンド(またはより一般的には、ERGに送信されたおよび/またはERGから送信されたメッセージ)の包括的なログは、例えば、VCSコントロールプレーン、OCC、および/またはERG内のネットワークマネージャで維持され得、そのようなログのコンテンツは、代わってERGがセットアップされるVCSクライアントに、様々なタイプのプログラムインターフェースを介して提供され得る。
少なくともいくつかの実施形態では、ERG135のEVHで動作する仮想マシン125に関して、少なくとも2種類のデータプレーン通信がサポートされ得る。クライアントC1の顧客データセンター132A、クライアントC2の顧客データセンター132B、またはコロケーション設備130などの所与の外部プレミスは、VCS機能を実装しない少なくともいくつかのサーバまたはコンピューティングデバイスを含み得る。例えば、コロケーション設備130は、非VCSサーバ123Aのセットを含み得、データセンター132Aは、非VCSサーバ123Bを含み得、データセンター132Bは、図示の実施形態では、非VCSサーバ123Cを含み得る。場合によっては、ERG135をセットアップする動機の1つは、非VCSサーバ123の所与のセットへの近接を含み得、そのようなサーバは、例えば、ERGの仮想マシンを使用して操作されるデータを記憶し得るか、またはERG内で動作している他のアプリケーションと密接に連動することを目的としたアプリケーションを動作し得るが、ERGの一部ではない(プロバイダネットワークの一部ではない)場合がある。したがって、様々な実施形態では、所与のERG135は、ローカルプレミスの低遅延データチャネル168(例えば、データセンター132Aのチャネル168A、データセンター132Bのチャネル168B、およびコロケーション設備130のチャネル168C)を介した非VCSリソースへの接続を可能にする1つ以上のリソースを含み得る。いくつかの実施形態では、例えば、EVH118での仮想化ホスト(例えば、VCSのIVNに関連付けられた範囲のプライベートIPアドレスが割り当てられ得る)と、ERGホスティングプレミスのサーバ123などの非VCSリソースとの間のトラフィックのために、ネットワークアドレス変換が必要とされ得る。少なくとも1つの実施形態では、ERG135のネットワークマネージャは、そのようなトラフィックに対してそのようなアドレス変換および/または他のプロトコル処理(例えば、カプセル化プロトコル処理)操作を実行するための仲介者として機能し得る。いくつかの実施形態では、VCSコントロールプレーンへの安全なチャネル166をセットアップすることに参加する同じネットワークマネージャを使用して、非VCSリソースへの接続を可能にすることもでき、他の実施形態では、異なるタイプのトラフィックに対して異なるネットワークマネージャを使用することができる。
少なくともいくつかの実施形態では、所与のERG135は、VCSデータセンター内の少なくともいくつかのリソースを使用して確立された既存のIVN115の論理的拡張として構成され得る。例えば、図示の実施形態では、ERG135Bは、クライアントC1のIVN115Aの拡張であり、ERG135Aは、クライアントC3のIVN115Bの拡張である。したがって、利用可能なIPアドレスの範囲、サブネット設定、出力/入力セキュリティルールなどのようなIVNの様々なネットワーク構成設定もまた、そのような実施形態では、IVNを拡張するERGに適用され得る。様々な実施形態では、167Aおよび167Bなどの双方向データチャネルを使用して、IVN内のリソースと、IVNの拡張として構成されているERGとの間で非管理パケットまたはデータプレーンパケットを送信することができる。いくつかの実施形態では、ERG135CなどのいくつかのERGは、IVNの拡張として構成されない場合があることに留意されたい。このようなERGは、事実上、プロバイダネットワークデータセンターの外部に実装されたIVNと論理的に同等であると見なすことができ、例えば、図示の実施形態では、C3に代わってセットアップされたIVN内で行うことができるのと同様のタイプのネットワーク構成選択を、ERG135C内のクライアントC3によって行うことができる。少なくともいくつかの実施形態では、同じセットの物理ネットワークリンクおよび/または同じVPNトンネルまたは他の安全な接続は、(a)双方向データトラフィック(例えば、論理双方向データチャネル167)、および(b)一方向管理コマンドトラフィック(例えば、論理一方向コマンドチャネル166)の両方に使用され得ることに留意されたい。
いくつかの実施形態によると、VCSクライアントは、プログラム要求をVCSに提出することによって、ERGをセットアップおよび構成するワークフローを開始することができる。そのようなERG確立要求に応答して、一実施形態では、アウトバウンドコマンドOCCは、例えば、ERGの物理的機器が適切なプレミスに引き渡される前でさえ、構成、選択(例えば、既存のOCCのプールから)、またはインスタンス化され得る。そのようなシナリオでは、ERG135を備える安全なチャネル166(例えば、VPNトンネル)は、OCCがERGのために確立または指定された後のある時点でセットアップされ得る。
いくつかの実施形態では、ERGのデバイスは、接続を確立し、ERGの使用を開始するためにVCS顧客からほとんど労力を必要としないような方法で、事前に構成および事前にインストールされ得る。例えば、一実施形態では、ERGインスタンスのコンピューティングデバイスのセットが、セットアップされ、電源がオンにされ、インターネットに接続されるとすぐに、ネットワークマネージャは、デバイスのうちの1つ以上で自動的にスタートアップし、VCSデータセンターでリソース(OCC177、VPNトンネルを有効にするためにセットアップされたゲートウェイなど)との接続を開始することができる。したがって、電力および/またはインターネット接続が利用可能であるという発見は、そのような実施形態では、ネットワークマネージャをスタートアップするためのトリガ信号として機能し得る。ネットワークマネージャは、いくつかの実施形態では、ERGのEVHのうちの1つ以上のブートストラップ操作を開始することも担当し得る。EVH上の仮想マシン125のインスタンス化および使用を可能にすることに加えて、ERGはまた、いくつかの実施形態では、仮想マシンを利用するプロバイダネットワークサービスの機能を提供するために使用され得る。例えば、いくつかの実施形態では、プロバイダネットワークのデータベースサービスは、データベースインスタンスをインスタンス化するために、仮想マシンのセットを利用することができ、そのようなデータベースインスタンスはまた、クライアントの要求に応じてERGでセットアップされることができる。
例示的なERG仮想化ホスト
図2は、少なくともいくつかの実施形態による、仮想化コンピューティングサービスの拡張リソースグループに含まれ得る、強化されたセキュリティ仮想化ホストの例示的な概要を例解する。図示の実施形態では、図1に示されるERG135と同様のERGのコンピューティングデバイスのコレクション205は、VCSクライアントによって選択される場所(例えば、顧客データセンター、コロケーション設備など)に引き渡され得る。コレクションの個々のデバイスは、VCSオペレータによって選択されたソフトウェアおよびファームウェアのセットをすでにインストールされていてもよく、少なくともいくつかの実施形態では、互いに事前にケーブル接続されてもよい。少なくとも1つの実施形態では、デバイスのコレクションは、データセンターに通常設置される種類の単一の標準ラック(またはいくつかの他の数のラック)に適合し得、ラック全体(または複数のラック)は、ユニットとしてパッケージ化され、VCSオペレータによって、プロバイダネットワークの外部の指定された場所に提供され得る。図示の実施形態では、ERGデバイスコレクション205は、ERGネットワークマネージャに使用される1つ以上のホスト206を含み得、これは、事実上、ERGのプライマリ管理者として機能し、VCSデータセンター、およびERGがインストールされる場所にある非VCSサーバへの接続を確立すること、ERGの他のデバイスを起動することなどを担当する。いくつかの実施形態では、コレクション205は、1つ以上のストレージサーバ207を含み得、これは、例えば、VCSからのネットワーク接続を介してイメージを転送する必要なしに、ERGで顧客が要求した仮想マシンをインスタンス化するために使用することができる仮想マシンイメージのキャッシュとして使用され得る。コレクションはまた、図示の実施形態では、EVH218Aなどのいくつかの数の強化されたセキュリティ仮想化ホスト(EVH)218を含み得る。少なくとも1つの実施形態では、ERGにおいて、EVH、ERGネットワークマネージャのために、および/またはストレージサーバのために同じタイプのコンピューティングデバイスを使用することができ、すなわち、ネットワークマネージャのために、および/またはVMイメージをキャッシュするために特別なタイプのハードウェアを必要としない場合があることに留意されたい。
少なくともいくつかの実施形態では、ERGの所与のEVH、例えばEVH218Aは、ストレージデバイス255のセット、オフロードされた仮想化マネージャコンポーネント(OVMC)269、およびオペレーティングシステム(OS)のストリップダウンバージョン265を含み得る。ストレージデバイス255は、例えば、EVHで起動された任意の仮想マシンの状態情報を含むEVHの状態情報が、例えば、暗号化された形式で記憶され得る少なくとも1つの耐タンパー性デバイス256を含み得る。少なくとも1つの実施形態では、耐タンパー性ストレージデバイス256は、デバイスに記憶された暗号化データが、デバイスが特定のEVH(例えば、EVH 218A)に物理的に接続される場合にのみ復号化することができるように構成され得、例えば、デバイスに記憶されるデータの暗号化されたバージョンを復号化するために、EVHのTPM(トラステッドプラットフォームモジュール)などのセキュリティモジュールに記憶される情報を読み取る、および/または分析する必要がある場合がある。オフロードされた仮想化マネージャコンポーネント269は、図3の文脈で以下で考察されるように、いくつかの実施形態では、セキュリティモジュールを含み得る。OVMCは、例えば、いくつかの実施形態では、PCI(ペリフェラルコンポーネントインターコネクト)などの周辺インターフェースを介してEVH218のメモリに接続されたハードウェアカードを含み得る。名前が示すように、OVMCは、仮想マシンを管理する作業のいくつかをEVHのプライマリプロセッサ(例えば、CPU)からオフロードし得、これにより、EVHのリソースの多くを、クライアントが要求した仮想マシンで利用可能にする。いくつかの実施形態では、複数のOVMC(例えば、複数のPCI接続カード)は、218AなどのEVHに含まれ得る。一実施形態では、OVMCは、ネットワーキング関連の仮想化管理タスクおよび/または他の入力出力(I/O)関連の仮想化管理タスクを実行することができる。少なくとも1つの実施形態では、OVMC269と同様の周辺カードを使用して、ERGのネットワークマネージャの機能の少なくとも一部分を実装することができる。
図2に描写される実施形態では、OS265は、コントロールプレーンエージェント(CPA)プロセス267を含み得る。CPA267は、上で考察された種類のアウトバウンドコマンドコミュニケータ(OCC)を介して、プロバイダネットワークデータセンターでのVCSコントロールプレーンから送信された管理コマンド266を受信することができる。コマンド266は、図示の実施形態では、CPAアプリケーションプログラミングインターフェース(CPA API)278に従ってフォーマットされ得る。事実上、CPA API278は、CPAまたはEVH218の他のコンポーネントの特定の実装詳細に関係なく、VCSコントロールプレーンの要求に応じてEVH218で実装される操作のタイプを管理する契約を表すことができる。例えば、代わりにERGがセットアップされるクライアントによって要求された仮想マシンを起動するためのコマンドは、CPA267に送信され得る。少なくともいくつかのCPA APIコールは、図示の実施形態では、応答を提出者に送信することを必要としない場合がある。アウトバウンドメッセージは、いくつかのそのような実施形態では、CPAによってEVHから送信されない場合がある。
VM起動コマンドに応答して、CPA267は、いくつかの実施形態では、VIP268-1などの交換可能な仮想化中間プロセス(VIP)268を起動することができる。最初に、図示の実施形態では、VIPプロセス268-1は、CPA267によって発行されたAPI要求またはコマンドを受信するように構成されるAPIハンドラスレッド270-1を含み得る。次に、CPA267は、実際にVMを起動するためのコマンドを発行することができ、VIP268-1の新しい子スレッド263-1を起動して、要求されたVMを実装することができる。VMスレッド263-1の起動をもたらすコマンドには、例えば、使用する起動可能なVMイメージ、VMのリソース要件、OVMCを使用して、特にVMに対してCPAによって以前に実行されたネットワーク構成操作の結果などを示すパラメータが含まれ得る。VMをインスタンス化するためのコマンドは、図示の実施形態では、VIP API279と呼ばれる第2の内部APIを介して提出することができる。CPA APIがVCSコントロールプレーンとCPAとの間の契約を表すのと同様に、様々な実施形態では、VIP APIは、エンティティ(例えば、VIP)の特定の実装詳細またはプロセス/スレッド構造に関係なく、VMを起動および終了させることを担当するエンティティによって処理される要求のタイプを示す別の契約を表すことができる。所与のVIP268の存続期間は、いくつかの実施形態では、対応するVMスレッド263の存続期間と一致し得、例えば、VMが終了するとき、VIPもまた終了し得る。VMの存続期間中、CPAは、APIハンドラスレッド270-1を介してVIPと通信することができ、例えば、様々なタイプのVM関連操作を要求するVIP API 279に従ってフォーマットされたメッセージを提出し、様々なタイプのVM関連クエリを提出すること、および対応する応答を受信することを行うことができる。いくつかの実施形態では、ERGで起動される少なくともいくつかのVMのリソース要件(例えば、CPU、メモリ、ストレージ、および/またはメモリ要件)は、非常に低く、および/またはVMの予想される存続期間は、非常に短い場合があり、そのようなVMは、「マイクロVM」と呼ばれることがある。一実施形態では、OS265のストリップダウンバージョンは、Linuxカーネルベースの仮想マシン(KVM)および他の仮想化特徴を活用して、そのような軽量マイクロVMをほぼネイティブの速度で実行することができる仮想マシンモニターを含み得る。仮想マシンモニターは、ユーザスペースプロセスとして動作し、ゲストオペレーティングシステムに最小限のデバイスエミュレーションを提供し(例えば、ブロックおよびネットワークデバイスを含む標準のPCデバイスモデル)、より速いスタートアップ、およびメモリフットプリントの削減を達成するための必須ではない機能(例えば、VGA(ビデオグラフィックスアレイ)および他のレガシーデバイスエミュレータ)を含まない場合がある。仮想マシン監視プロセスは、いくつかの実施形態では、CPA API278と同様のAPIを公開し、マイクロVMサンドボックス化を実施し、仮想化関連要求の速度制限を処理することができる。
異なる実施形態では、所与の要求されたVMに使用される特定のEVH218を選択する際に、いくつかのVM配置要因を考慮に入れることができ、例えば、ホスト上で現在動作しているVMの数を、考慮することができ、EVHのオーバーサブスクリプション設定、および/または代わってVMが起動されるクライアントのオーバーサブスクリプションプリファレンスを考慮することなどを行うことができる。いくつかの実施形態では、特定のVM起動の任意の要求がEVHでのCPA267に送信される前に、いくつかの予備構成操作がEVH218で(例えば、ERGネットワークマネージャによって)実行され得、例えば、以下で考察される種類の1つ以上の仮想ネットワークインターフェースは、EVHのVMによる最終的な使用のために、OVMC269を使用して構成することができる。
VMを起動するための新しいコマンドがCPA267で受信されると、VMスレッド263-1の起動に関して上記に示されたCPAワークフローは、図示の実施形態では、繰り返され得、例えば、VM別構成操作は、VIPを起動する前に、CPAによって実行され得、VIPのスレッドの1つを、要求されたVMに使用することができる。ラベルVIP268-10000によって示唆されるように、図示の実施形態では、所与のEVH218で多数(例えば、数万)のVMを作成することができる。EVHで同時に動作するためにインスタンス化することができるVMの実際の数は、EVHで利用可能な全体的なリソースの組み合わせ、インストールされるソフトウェア/ハードウェアスタックのバージョン、有効なリソースオーバーサブスクリプションポリシー/複数のリソースオーバーサブスクリプションポリシーなどに応じて、異なる実施形態では、様々であり得、例として図2に示す10000の数よりも大きい場合もあり、または小さい場合もある。VM263-1の親VIP268-1は、交換可能であるため、EVH218Aで描写される実施形態では、所望のレベルのリソースオーバーサブスクリプションを実装することが可能であり得、例えば、EVHで動作するVMのセットの総メモリ使用量は、利用可能なメモリの量を超える可能性がある。VMを終了させるための要求がVCSコントロールプレーンで受信されると、対応するコマンドは、API呼び出しを介してCPAに送信され得、スレッドが、対象となるVMに使用されるVIPは、図示の実施形態では、終了し得る。すなわち、少なくとも1つの実施形態では、動作しているVMの数と動作しているVIPの数との間に1対1の関係があり得る。他の実施形態では、図2に示されるプロセスアーキテクチャのバリエーションを採用することができ、例えば、所与のVIPは、それぞれのスレッドとして複数のVMを生成することができ、複数のCPAをVHでセットアップすることなど行うことができる。いくつかの実施形態では、VIPおよび/またはVMに使用される別個のプロセスは、交換可能ではない場合がある。少なくともいくつかの実施形態では、図2に示されるものとは異なるアプローチを使用して、仮想マシンを管理することができ、例えば、示される種類のコントロールプレーンエージェントの代わりに、より大きなフットプリントを有するハイパーバイザーを使用することができる。
例示的なオフロードされた仮想化管理コンポーネントカード
図3は、少なくともいくつかの実施形態による、仮想化ホストのオフロードされた仮想化管理コンポーネントカードの例示的な要素を例解する。前述のように、様々な実施形態では、そのようなカードを使用して、少なくともいくつかのタイプの仮想化管理タスクを実行し、仮想化ホスト(例えば、ERGのVMまたはプロバイダネットワーク内のVMに使用されるホスト)の処理および他のリソースを解放することができる。図のように、オフロードされた仮想化管理コンポーネント(OVMC)カード302(図2のOVMC269と特徴および能力が同様の)は、オフロードプロセッサ317Aおよび317B(OVMCカードが接続および使用される仮想化ホストの一次CPUとは区別される)のそれぞれのセットを有する一対のシステムオンチップを含み得る。図示の実施形態では、SOCのうちの一方(例えば、315)をブートコントローラに使用することができ、他方は、主にまたは具体的にネットワーク処理オフロードに使用することができる。仮想化関連担当の他の分散は、異なる実施形態で実装され得る。セキュアブートROM325は、いくつかの実施形態では、ブートコントローラによる仮想化ホスト自体のマルチフェーズブート操作の初期フェーズに使用することができる。OVMCカード302はまた、セキュリティモジュール(トラステッドプラットフォームモジュール(TPM)など)330を含み得、それはまた、前述のように、いくつかの実施形態では、ブート手順中および/またはブート後状態検証のために広範囲に使用され得る。少なくともいくつかの実施形態では、仮想化ホストのプレインストールされたソフトウェア/ファームウェアの表現がセキュリティモジュールに含まれ得る。少なくともいくつかの実施形態では、VCSオペレータによって選択された特定のソフトウェアスタックのみが、セキュリティモジュール330がインストールされるホストにインストール可能であり得、そのため、インストールを修正しようとする任意の試みは、失敗する可能性があり、仮想化ホストのセキュリティがさらに強化される。
加えて、OVMCカード302は、様々な実施形態では、いくつかのストレージ、電力、および接続性に関連するコンポーネントを含み得る。例えば、1つ以上のフラッシュデバイス/インターフェース(またはSSD)335をオフロードカード内に組み込むことができる。これらのデバイスは、例えば、様々な仮想化管理コンポーネント、仮想マシンコンポーネントなどに対応するファームウェアおよび/またはソフトウェアを記憶するために使用され得る。PCI-Eインターフェース340は、様々な実施形態では、CPAおよびVIPなどのプロセスと通信するために、および/またはSOC間の通信のために使用され得る。他の実施形態では、QuickPathインターコネクト(QPI)またはUltraPathインターコネクト(UPI)のバリアントなど、他のタイプのインターコネクトおよび対応するインターフェースを使用することができる。ネットワークインターフェース345は、いくつかの実施形態では、仮想化ホストと仮想化コンピューティングサービスのコントロールプレーンとの間の通信、および少なくとも1つの実施形態では、ホスト上で起動された仮想マシンと少なくとも1つ以上のネットワークエンドポイントとの間のデータプレーン通信のために使用され得る。OVMCカード302はまた、いくつかの実施形態では、例えば、長時間の停電の場合に、少なくともいくつかの目標となる時間または日数の間、OVMCを機能させ続けるのに十分な電源360を含み得る。いくつかの実装形態では、スーパーキャパシタベースの電源が使用され得る。
いくつかの実施形態では、オフロードされた仮想化マネージャコンポーネントに対して、同じカード上の別個のSOCが必要とされない場合がある。例えば、一実施形態では、ブートコントローラ機能およびネットワークオフロードタスクを実行することが可能である単一のSOCを利用することができる。他の実施形態では、ブートコントローラに使用されるものとは別のカードを使用して、ネットワーク処理タスクを実行することができる。図3に示されるオフロードカードコンポーネントのセットは、包括的であることを意図しておらず、いくつかの実施形態では、タイマーなどのいくつかの他のコンポーネントをカードに組み込むことができる。様々な実装形態において、図6に示されるコンポーネントの少なくともいくつかは必要とされない場合がある。
アウトバウンドコマンドコミュニケータでの仮想ネットワークインターフェースの例示的な使用
様々な実施形態では、仮想ネットワークインターフェース(VNI)(「弾性ネットワークインターフェース」とも呼ばれ得る)は、VCS(図1のVCS110と同様)および/またはVCS拡張リソースグループ(図1のERG135と同様)で構成され得、物理ネットワークカードを必ずしも再構成することなく、IP(インターネットプロトコル)アドレスなどのネットワーク関連属性を、仮想マシン間で比較的簡単に転送することが可能である。そのような属性転送は、例えば、仮想ネットワークインターフェースを、1つの仮想マシン(例えば、アウトバウンドコマンドコミュニケータ(OCC)として使用される仮想マシン)からプログラムで切断し、別の仮想マシンにプログラムで接続することによって実現することができる。図4は、少なくともいくつかの実施形態による、拡張リソースグループに関連付けられたアウトバウンドコマンドコミュニケータにプログラムで接続され得る仮想ネットワークインターフェースの例示的な属性を例解する。図のように、491Aまたは491Bなどの1つ以上のVNIは、図示の実施形態では、例えば、仮想マシンが動作するホストの特定のハードウェアネットワークインターフェースカード(NIC)とは独立して、プログラム操作493を介して所与の仮想マシン490に接続(またはそこから切断)され得る。
任意の所与のVNI491の例示的な属性495の一般化されたリストが図4に示され、少なくともいくつかの実施形態では、それらのすべてが必ずしもすべてのVNIに使用され得るわけではない。いくつかの実施形態では、図4に示される属性またはプロパティのサブセットのみを実装することができ、実装された属性フィールドのすべてに入力する必要はない(すなわち、属性のいくつかを空白またはヌルのままにすることができる)。様々なVNIの属性495を含むフィールド/エントリを含むそれぞれのレコードは、いくつかの実施形態では、永続的なメタデータストア、例えば、プロバイダネットワークまたはVCSの様々なコントロールプレーンまたは管理コンポーネントからアクセス可能であるストアに記憶され得る。
例えば、プログラム要求に応答して、新しいVNIが作成されると、図示の実施形態では、新しいインターフェース識別子401がそのために生成され得る。いくつかの実装形態では、説明フィールド402は、VNI、例えば、「ERG E-1142のOCC485のためのインターフェース654」の作成を要求したクライアントによって記入され得る。前で考察されたように、いくつかの実施形態では、VNIが使用されるVCSは、複数の分離仮想ネットワーク(IVN)を含み得る。属性495は、そのような実施形態では、IVN識別子403(VNIが構成されるIVNを示す)を含み得る。
異なる実施形態では、いくつかのタイプのネットワークアドレス指定関連フィールドのいずれかが、VNIの属性のセット内に含まれ得る。いくつかの実施形態では、1つ以上のプライベートIPアドレス405を、例えば、指定することができる。そのようなプライベートIPアドレスは、本明細書では非パブリックアドレスとも呼ばれ、様々な実施形態では、プロバイダネットワークおよびERGなどのその拡張内のルーティングに内部的に使用することができ、プロバイダネットワークおよびそのERGの外部から(または他のIVN内から)直接アクセス可能でない場合がある。いくつかの実施形態では、VNIに関連付けられた少なくともいくつかの非パブリックIPアドレスは、IPアドレスではない可能性があり、つまり、プロバイダネットワークの専用プロトコルに従ってフォーマットされたアドレスを使用することができるか、または別のパブリックドメインプロトコルに従ってフォーマットされたアドレスを使用することができる。一般に、いくつかの実施形態では、ゼロ個以上のパブリックIPアドレス415もVNIに関連付けられ得、これらのIPアドレスは、プロバイダネットワークおよびその拡張の外部、例えば、ERGがセットアップされているプレミスの非VCSサーバ、パブリックインターネットの様々なルータなどに表示される場合がある。いくつかの実施形態では、VNIが使用されるIVN内のクライアントによってセットアップされるサブネットの識別子など、1つ以上のサブネット識別子425(例えば、Classless Inter-Domain RoutingまたはCIDR形式で表現される)を、属性495内に含めることができる。一実施形態では、VNIに関連付けられたアドレス(複数可)を伝播することを担当するドメインネームサーバ(DNS)の識別、または他のDNS関連情報427もまた、属性495に含まれ得る。
いくつかの実施形態では、属性495は、セキュリティ関連プロパティ435を含み得る。いくつかのプロバイダネットワークは、VNIが接続される可能性のある計算インスタンスで許可される着信および/または発信トラフィックのタイプについて、ユーザが、例えばファイアウォール関連ルールを含むルールを指定することを可能にし得る。そのようなルールは、「セキュリティグループ」と呼ばれ、セキュリティグループ(複数可)フィールド445を介して特定され得る。いくつかの実施形態では、そのようなルールを使用して様々なポートおよびプロトコル制限を実施することができ、複数のルールを各VNIに関連付けることができる。例えば、クライアントは、セキュリティグループを使用して、HTTPおよびHTTP発信または着信トラフィックのみが許可されることを確実にすること、トラフィックが許可されるTCPまたはUDPポートのセットを制限すること、様々なポリシーに従って着信および発信トラフィックをフィルタリングするなどを行い得る。いくつかの実施形態では、上で考察された種類のOCCに接続されたVNIのセキュリティグループおよび/または他のセキュリティ設定を使用して、VCSコントロールプレーンで発行されるコマンドが、OCCに送信されることを可能にしながら、OCCからVCSコントロールプレーンへのトラフィックの流れを防ぐことができる。いくつかの実装形態では、どのユーザまたはエンティティがVCSの仮想マシンなどのコンピューティングプラットフォームへのVNIの接続を要求することを許可されるかを示すアタッチャリスト447が指定され得る。場合によっては、個別のデタッチャリストを使用して、どのエンティティがVNIを切断することができるかを指定し得、一方、アタッチャリスト447などの単一のリストを使用して、許可されたアタッチャおよびデタッチャを特定し得る。VNIのIPアドレス(例えば、パブリックIPアドレス415および/またはプライベートIPアドレス405)を設定または修正することを許可されるユーザまたはエンティティのコレクションは、IPアドレスセッターリスト449で提供され得、VNIを所有する(または様々な他のフィールドを変更することができる)ユーザまたはエンティティのセットは、いくつかの実施形態では、所有者/修正者フィールド453で指定され得る。例えば、フィールド453で特定される所有者/修正者は、いくつかの実装形態では、アタッチャリスト447またはIPアドレスセッターリストを変更することを許可され得、したがって、VNIを接続または切断するか、またはそのIPアドレス(複数可)を修正することを許可されるエンティティのセットを変更する。「リスト」という用語は、フィールド447、449、および453に使用されているが、様々な実施形態では、リスト以外の論理データ構造(例えば、配列、ハッシュテーブル、セットなど)を使用して、様々なセキュリティ特権、役割、および/または能力が付与されたエンティティのグループを表すことができる。
いくつかの実施形態では、プロバイダネットワークの仮想化コンピューティングサービスのユーザは、プログラムで仮想マシン(VM)を終了させることを許可され得る。例えば、クライアントは、VMをセットアップし、VNIをVMに接続し、VMで所望の計算のセットを実行し、所望の計算が完了したときにインスタンスを終了させるための要求を発行することができる。そのような実施形態では、「DeleteOnTerminate」設定451を使用して、VMが終了したときに接続されたVNIに何が起こるかを指定することができる。終了するVMに接続されたVNIに対してDeleteOnTerminateが「true」に設定されている場合、VNIは、削除される可能性がある(例えば、VNIの属性495を含む永続レコードは、それが記憶されていたリポジトリから削除される可能性がある)。DeleteOnTerminateが「false」に設定されている場合、VNIが保持される可能性があるため、例えば、いくつかのVMまたは他のコンピューティングプラットフォームに再度接続される可能性がある。一実施形態では、VNIがVMに接続される場合、VNI属性495とは別の接続レコードを作成して、その関係を表すことができ、DerteOnTerminateプロパティは、VNI自体に関連付けられる代わりに、または関連付けられることに加えて、接続レコードに関連付けられ得る。そのような実施形態では、VNIの属性495は、VNIが現在関与している接続の各々の接続レコードまたは複数の接続レコードへのリファレンスまたはポインタを含むことができ、「DeleteOnTerminate」の異なる値を各接続レコードに設定することができる。
一実施形態では、属性495は、VNIが接続されているコンピューティングプラットフォームに送信されるネットワークパケットに対してソースおよび/またはデスティネーションチェックを実行するかどうかの表示465などのルーティング関連情報を含むことができる。ソース/デスティネーションチェック設定が「false」または「オフ」に設定される場合、ルーティング判定は、パケットのソースおよびデスティネーションIPアドレスに基づいて行うことができ、例えば、パケットは、1つのサブネットから別のサブネットに転送され、設定が「真」または「オン」である場合、いくつかの実施形態では、コンピューティングプラットフォームは、ルーティングを実行しない可能性がある。したがって、ソース/デスティネーションフィールド465を使用して、いくつかの実施形態では、VNIが接続されるコンピューティングプラットフォームが、それが最終デスティネーションではないパケットに対してルーティングまたはゲートウェイ機能を実行するかどうか、またはそのようなパケットを無視するかどうかを制御し得る。ルートテーブルエントリなどの他のタイプのルーティング関連情報はまた、または代わりに、他の実施形態では、属性495に含まれ得る。請求書関連情報は、いくつかの実装形態では、属性495に含まれ得、例えば、VNIに関連付けられるネットワークトラフィックに対して請求されるエンティティまたはユーザを特定する。
インターフェースステータスフィールド468は、VNIの現在の状態、例えば、VNIが「利用可能」、「無効」、または「修復中」であるかどうかを示すために使用され得る。同様に、接続ステータスフィールド469は、いくつかの実施形態では、VNIが現在接続されているか、切断されているか、または接続または切断されているプロセスにあるかどうかを示すために使用され得る。一実装形態では、上記のように、接続のレコードは、対応する接続操作が実行されるときに作成され得、VNIの現在の接続の識別子または複数の識別子は、接続IDフィールド471に記憶され得る。VNIが現在接続されている仮想マシンの識別子は、接続先インスタンスフィールド473に記憶され得、いくつかの実施形態では、接続を要求したユーザまたはエンティティは、接続所有者フィールド475を介して特定され得る。一実施形態では、VNIのIPアドレスに向けられた/そこから向けられたトラフィックに現在使用可能な物理ネットワークインターフェースカード(NIC)または複数のNICの識別子のリストは、例えば、MACアドレス(複数可)フィールド477の形態で維持され得る。いくつかの実装形態では、VNIのIPアドレスに流れるまたはそこから流れるトラフィックの量に関する統計などの監視情報479もまた、属性495の間で保持され得る。VNI多重化または親子階層がサポートされる少なくとも1つの実施形態では、VNIの子または分岐VNIへのポインタ481が含まれ得る。図4に示されない他のフィールドは、様々な実施形態では、含まれ得る。
一実施形態では、図4に示されるフィールドのいくつかは、他のオブジェクトへのリファレンスまたはポインタによって置き換えることができる。例えば、VNIのセキュリティ情報は、別個のセキュリティオブジェクトに記憶され得、属性495は、セキュリティオブジェクトへのリファレンスを含み得る。同様に、VNIへのコンピューティングプラットフォームの各接続は、接続オブジェクトによって表すことができ、属性495は、いくつかの実装形態では、適切な接続オブジェクトへのポインタを含み得る。
図5は、少なくともいくつかの実施形態による、仮想化コンピューティングサービスのコントロールプレーンで生成されたコマンドを拡張リソースグループに送信するために使用され得る例示的なパスを例解する。上記で導入した種類のいくつかの分離仮想ネットワーク(IVN)は、少なくともいくつかの実施形態では、VCS顧客に代わってセットアップされたものや、プロバイダネットワークで管理目的でセットアップされたものを含むパスに沿ってトラバースすることができる。図示の実施形態では、クライアント要求に応答して、計算インスタンス(仮想マシン、ベアメタルインスタンス、および/または別のタイプのアプリケーション実行環境など)を起動するためのコマンドを、仮想化コンピューティングサービスの1つ以上のコントロールプレーンサーバ502(例えば、502Aまたは502B)で生成することができる。いくつかの実施形態では、コントロールプレーンサーバ502は、VCSコントロールプレーンIVN510内に確立され得る。サービスネットワークアドレス範囲(SNAR)591を使用して、VCSの個々のホストにIPアドレスを割り当てることができ、ここで、図示の実施形態では、様々なタイプの計算インスタンスをセットアップすることができる。少なくともいくつかの実施形態では、内部コマンドを生成することによるクライアント要求への応答、リソースプロビジョニング、可用性管理などのような管理タスクのためのアルゴリズムを実行し、ホスティングには使用されない、コントロールプレーンの少なくともいくつかのコンピューティングデバイスは、SNAR591の一部ではないアドレスが割り当てられ得、計算インスタンスがプロバイダネットワークデータセンター内でセットアップされるネットワークとは別のネットワークの一部として構成することができることに留意されたい。VCSコントロールプレーンの観点からは、拡張リソースグループ(ERG)内にたまたま配置されるホストは、少なくともネットワークアドレス割り当てなどのいくつかのタイプの構成判定に関して、あたかも、ホストが、図示の実施形態では、プロバイダネットワークのデータセンターに存在するかのように扱われ得る。例えば、VCSコントロールプレーン内で、1つ以上の計算インスタンスがセットアップされるホストは、ホストがどこにたまたま物理的に配置されるかに関係なく、様々な実施形態では、1つ以上のSNARアドレスに割り当てられるか、または関連付けられ得る。いくつかの実施形態では、計算インスタンスに使用されるホストの個々のアドレスに関連付けられた特定のSNARアドレスを示すメタデータは、VCSコントロールプレーンに記憶され得る。ERGホストが、そのネットワーク構成がVCSコントロールプレーンによって直接制御されない可能性がある外部プレミスに配置されるため、計算インスタンス起動コマンド(および/またはVCSコントロールプレーンで生成された他の構成コマンド)は、ERGホストに向かう途中で、異なる実施形態では、様々な方式で変換する必要があり得る。そのような変換はまた、様々な実施形態では、VCS、および代わってERGがセットアップされるクライアントのセキュリティ要件が満たされることを確実にし得る。前述のように、クライアント要求(例えば、ERGでインスタンスを起動するための要求など)がVCSコントロールプレーンで(例えば、VCSのパブリックアプリケーションプログラミングインターフェースを介して)受信されるパスは、少なくともいくつかの実施形態では、対応するコマンドをVCSコントロールプレーンからERGへ送信するために使用されるパスとは異なる場合がある。
いくつかの実施形態では、VCS拡張サービスと呼ばれる内部サービスを確立して、VCSコントロールプレーンからERGへの管理コマンドの安全な送信を含む、VCS ERGの管理のいくつかの態様を処理することができる。そのような内部サービスは、VCS拡張サービスと呼ばれ得、それ自体が、少なくともいくつかの実施形態では、1つ以上の分離仮想ネットワーク(IVN530など)を含み得る。アウトバウンドコマンドコミュニケータ(OCC)522(それ自体は、いくつかの実施形態では、VCS拡張サービスのホスト517にセットアップされた仮想マシンを使用して実装され得る)は、事実上、少なくとも2つのネットワーク、すなわち、図示の実施形態では、VCSコントロールプレーンIVN510(プロバイダネットワークのデータセンターで計算インスタンスを起動するために使用することができる、SNARからのアドレスを有するホスト/サーバを含み得る)およびVCS拡張サービスIVN530の一部として構成されるか、またはそれに結合され得る。いくつかの実施形態では、OCC522は、図5のVNI523Aおよび523Bなどの少なくとも2つの仮想ネットワークインターフェース(図4の文脈で説明されるVNIと特徴および機能が類似するVNI)にプログラムで接続され得る。523AなどのVNIのうちの1つは、VCSコントロールプレーンが、ERGに向けられるコマンドを送信することを可能にするように構成され得、一方、523Bなどの別のVNIは、コマンドの少なくともバージョンをデスティネーションERGに向かって転送するためにOCCによって使用され得る。少なくともいくつかの実施形態では、VNI523Aの構成設定は、コマンドがVNIを介してVCSコントロールプレーンから送信され得るが、コマンドがVNIを介してVCSコントロールプレーンに向けられ得ないことを確実にし得る。そのような構成設定は、図5に示されるパスの他のコンポーネントのいずれも、様々な実施形態では、VCSコントロールプレーンで望ましくない操作を開始することができないことを確実にするのに役立ち得る。少なくともいくつかの実施形態では、523AなどのVNIを使用して、OCC522は、(少なくとも)、OCC522がコントロールプレーンコマンドの仲介者として機能するターゲットERGホスト529に割り当てられるのと同じネットワークアドレス(SNARの一部)が割り当てられ得る。したがって、VCSコントロールプレーンの観点から、OCCにメッセージを送信することは、そのような実施形態では、ERGホストにメッセージを送信することと(デスティネーションネットワークアドレス指定に関して)同等であり得る。OCC522は、VCSコントロールプレーンからのコマンドを含むそのようなメッセージを受信すると、少なくとも1つの実施形態では、ENMのアドレスをデスティネーションとして、変換されたメッセージ(コントロールプレーンのコマンドを含む、または示す)を生成し、それをENMで送信することができる。ENMが、変換されたバージョンを最終的に受信すると、ENMは、次に、様々な実施形態では、最初のコマンドを抽出し、コマンドが最初にVCSコントロールプレーンで生成されたERGホストに転送することができる。様々な実施形態では、OCC522が実行されるホスト517に割り当てられたネットワークアドレスは、OCC自体に割り当てられたネットワークアドレスとは異なり、SNAR591(計算インスタンスが起動され得るホストのVCSコントロールプレーンで使用されるアドレス範囲)の一部でもあり得る。
少なくともいくつかの実施形態では、OCC522はまた、VCSコントロールプレーンから受信されたコマンドに関して、1つ以上の追加のセキュリティ関連操作を実行することができる。例えば、コマンドの1つ以上のセキュリティ関連アーティファクト/オブジェクト(VCSコントロールプレーンで最初に生成されたベアラトークンなど)は、デスティネーションERGに向かって送信されるメッセージで削除、置換、および/または修正される場合がある。一実施形態では、例えば、OCCで受信されたコントロールプレーンコマンドのバージョンは、1つ以上の暗号署名されたトークンを含み得、デスティネーションERGに向けて送信されたコマンドのアウトバウンドバージョンは、OCCによって再署名されたトークンを含み得る。いくつかの実施形態では、クライアント要求に応答してVCSコントロールプレーンで生成される所与の管理コマンドについて、(a)VCSコントロールプレーンとOCCとの間、および(b)OCCと、スティネーションホストへのパス上の1つ以上のリソースとの間で異なるTLSセッションを確立することができる。様々な実施形態では、そのようなタイプのセキュリティ関連操作は、OCCで実行され得、VCSコントロールプレーンで発信されたセキュリティ関連データまたはメタデータがデスティネーションERGに到達しないことを確実にすることを試み、したがってそのようなセキュリティ関連のデータ/メタデータの誤用の可能性を低減する。
いくつかの実施形態では、VCS拡張サービスIVN530、および/または個々の仮想化ホスト517は、マルチテナント様式で使用することができる。例えば、複数のVCSクライアントのERGにコントロールプレーンコマンドを送信するために使用されるいくつかの異なるOCC522は、一実施形態では、同じ拡張サービスIVN530の一部として構成され得る。いくつかの実施形態では、異なるクライアントの複数のOCCを所与のホスト517で確立することができ、または単一のOCCを使用して、複数のクライアントのERGにコマンドを送信することができる。いくつかの実施形態では、単一のOCCを使用して複数のERGホストにコマンドを送信することができ、他の実施形態では、ERGホストごとに1つのOCCを使用することができる(複数の計算インスタンスが所与のERGホストに潜在的にセットアップされ得ることに留意されたい)。少なくともいくつかの実施形態では、OCCは、VCSコントロールプレーンで発行されたコマンドに対して1つ以上の変換またはカプセル化操作を実行することができる。例えば、あるシナリオでは、VCSコントロールプレーンコマンドは、IPアドレスA.B.C.D(SNARアドレスの1つ)を有するホストを使用して、特定のERG541Aで特定の顧客C1に代わって計算インスタンスを起動することを示し得る。OCC(それ自体は、上記のいくつかの実施形態では、アドレスA.B.C.Dも割り当てられている可能性がある)は、コマンドが最終的に送信され、ホストで実装される前に、コマンドがERG541AのERGネットワークマネージャ528に送信されなければならないことを判定し得る。OCCはまた、そのような実施形態では、ENM528が異なるIPアドレスK.L.M.N(K.L.M.Nは、ターゲットホストが配置される外部プレミス535Aで使用される顧客のネットワークアドレス範囲(CNAR)593の一部である)を使用してアクセスされることを判定する場合がある。いくつかの実施形態では、OCCは、コマンドの変換バージョン/カプセル化バージョンを含むメッセージを生成することができ、メッセージのデスティネーションアドレスは、K.L.M.Nとして示される。メッセージは、図示の実施形態では、1つ以上の追加のVNI(VNI523Cおよび523Dなど)、および顧客C1のIVN515への中間のIVN間ゲートウェイ540を介して送信され得る。IVN間ゲートウェイ540は、いくつかの実施形態では、仮想マシンまたは計算インスタンスを使用して実装することができ、そこでパケット処理ソフトウェアを実行することができる。少なくともいくつかの実施形態では、メッセージまたはコマンドの1つ以上の他の操作/変換は、IVN間ゲートウェイ540で実行され得、例えば、ERG541Aでメッセージをその意図されたデスティネーションに向けて送信するために必要なアドレス変換操作を含む。
図5に示されるように、C1のIVNは、少なくともいくつかの実施形態では、プロバイダネットワーク内のホストで確立されたいくつかの数の仮想マシン525を含み得る。メッセージは、顧客IVN525に入った後、例えば、図示の実施形態では、1つ以上のVPNトンネル561を使用して、デスティネーションERG541AでENMに送信され得る。プロバイダネットワークとERGとの間の安全な接続のためにVPNトンネルを使用する代わりに、いくつかの実施形態では、専用の物理リンク(ERG 541BをIVN515に接続する専用リンク562など)が使用され得、および/または他のタイプのネットワークが使用され得ることに留意されたい。専用の物理リンク562は、いくつかの実施形態では、直接接続リンクと呼ばれ得る。ERG541がプロバイダネットワークの外部の外部プレミス(プレミス535Aまたは535Bなど)で最初にセットアップされるとき、ERGのENMは、少なくともいくつかの実施形態では、VPNトンネル561の確立、および/または専用リンク562を介した接続の確立を開始し得、ERGに使用される特定の安全なチャネルに関する情報は、OCC522に提供され得る。図5に示されていない1つ以上の中間デバイスは、VPNトンネルの確立、および/または専用の物理リンクを介した接続に関与し得、例えば、VPNゲートウェイは、顧客IVN51でセットアップされ得、および/またはエッジルータまたは他のエッジデバイスは、専用の物理リンクを介した接続の仲介者として機能し得ることに留意されたい。
少なくともいくつかの実施形態では、ERG541のデバイスは、外部プレミス535の1つ以上のラック内にセットアップすることができる。所与のラックは、例えば、スイッチ527、ENM528、およびVCSコントロールプレーンで生成されたコマンドに応答して計算インスタンスがセットアップされ得るホスト529のセット(例えば、529A、529B、…)を含み得る。少なくともいくつかの実施形態では、ENM528は、外部プレミスの少なくとも2つのネットワークの一部として構成され得るか、またはそれに属することができる。ネットワークのうちの1つは、いくつかの実施形態では、ERGのホスト529の少なくともサブセットを含むプライベートネットワーク531Bであり得る。このプライベートネットワーク531B内で、個々のホストは、VCSサービスネットワークアドレス範囲(SNAR)591内からネットワークアドレスが割り当てられ得る(例えば、ホスト初期化操作の一部としてENM528によって)。そのため、ENM528が、VCSコントロールプレーンで生成されたコマンドを受信すると、SNAR内のアドレスA.B.C.Dを有するホストでコマンドが実行されることを示し、ENMは、少なくともいくつかの実施形態では、プライベートネットワーク531Bを使用して、実行のコマンドを、意図されたホストに向ける。ENM528はまた、図示の実施形態では、顧客構成ネットワーク531Aのメンバーであり得、それは、クライアントの0個以上の非VCSホスト542を含み得る。クライアント構成ネットワーク531A内のデバイスは、少なくともいくつかの実施形態では、顧客のネットワークアドレス範囲CNAR593からのアドレスが割り当てられ得る。したがって、例えば、ネットワーク531Aのコンポーネントとして、ENM528はまた、CNAR593からアドレスK.L.M.Nが割り当てられ得、このアドレスは、ENMでVCSコントロールプレーンコマンドを受信するために使用され得る。
要約すると、図5に図示される実施形態では、VCSコントロールプレーンで最初に生成され、1つ以上の他の仲介者を含むパスを介して送信されるコマンドは、最終的に、ENMで、顧客構成ネットワーク531Aの一部であるネットワークアドレスを介して受信され得る。パスに沿って、例えば、様々な実施形態では、ネットワークアドレス変換、カプセル化、カプセル化解除などを含む1つ以上の変換操作が、最初のコマンドに対して実行され得る。複数のVNIが接続されたOCC、IVNからIVNへのゲートウェイなど、各々がネットワークトラフィックに関してそれぞれの独立したセキュリティ操作を実装することができるいくつかの仲介者を使用すると、様々な実施形態では、不正なエンティティが、VCSおよび/またはERGで望ましくない操作を実行することができる可能性を低減することに役立ち得る。最初のコマンドを含むまたは表すメッセージがENMで受信された後、ENMは、図示の実施形態では、最初のコマンドを抽出し、プライベートネットワーク531Bを使用して、ターゲットホストにコマンドを送信することができる。ターゲットホストで、コマンドは、実行され得る(例えば、起動コマンドの場合、ターゲットホストでの1つ以上の計算インスタンスのインスタンス化をもたらす)。VCSコントロールプレーンの観点から、先に示したように、ホスト529は、図示の実施形態では、プロバイダネットワーク内に配置されたホストが扱われるのと同じ方式で(少なくともネットワーキングのいくつかの態様に関して)扱われ得る。所与のERG内で、例えば、ネットワークトラフィックは、様々な実施形態では、プロバイダネットワークに配置されたホスト内を流れる方式と同様に、ホスト529間を流れることができ、例えば、高速の高帯域幅のホスト間ネットワークリンクがサポートされ得る。ERGは事実上、顧客のIVN515の拡張を表し得るため、ERG内の計算インスタンスに割り当てられたネットワークアドレスは、少なくともいくつかの実施形態では、(例えば、顧客によって)IVN515で使用されるアドレスの範囲(例えば、CNARまたはSNARとは異なる範囲)から選択することができることに留意されたい。
いくつかの実施形態では、ENM528は、図2に示されるオフロードされた仮想化管理コンポーネント(OVMC)269と同様に、周辺インターフェースを介してホストまたはサーバに接続されたハードウェアカードを少なくとも部分的に使用して実装され得る。他の実施形態では、ENM実装に関して他のアプローチをとることができ、例えば、オペレーティングシステムプロセスまたはスレッドとして実装することができる。少なくとも1つの実施形態では、ENM528は、必ずしもホスト529のいくつかと同じラック内に同じ場所に配置され得ず、例えば、ERGホストのいくつかのセットに使用されるものとは別個のラックまたは他の物理的コンテナが、1つ以上のENMに使用され得る。少なくとも1つの実施形態では、ENMは、ERGのホストに関して少なくともいくつかのDHCP(動的ホスト構成プロトコル)操作を実行することができる(例えば、ENMは、DHCPサーバとして機能することができる)。いくつかの実施形態では、図5の文脈で考察された1つ以上の操作は、VCSコントロールプレーンコマンドをERGホストに送信するワークフローの一部として必ずしも実行され得ず、例えば、仲介者の異なる組み合わせが使用され得るか、または変換の異なる組み合わせがメッセージまたはコマンドに適用され得る。
例示的なERGネットワークマネージャ
ERGで1つ以上のコンピューティングデバイスを使用して実装された拡張リソースグループネットワークマネージャ(ENM)(図1の文脈で導入されたERG135と機能および特徴が同様の)は、様々な実施形態では、いくつかの異なる種類の操作を担当し得る。図6は、少なくともいくつかの実施形態による、拡張リソースグループネットワークマネージャの例示的な要素を例解する。ENM605のプロバイダネットワーク接続マネージャ603は、図示の実施形態では、プロバイダネットワークデータセンターのリソースへの/リソースからの1つ以上の安全な通信チャネルの確立を開始するか、またはその確立に参加することができる。少なくともいくつかの実施形態では、例えば、VPNトンネルを安全なチャネルに使用することができる。
ENM605のローカルプレミス接続マネージャ607は、事実上、図示の実施形態では、ERGのVCS管理仮想マシンと、ERGがセットアップされる場所に存在する非VCSリソースとの間のエッジデバイスとして機能し得る。少なくともいくつかの実施形態では、1つ以上のパブリックIPアドレスをERGに指定することができ、ERGの外部のリソースがERG内のVMと通信することを可能にする。ローカルプレミス接続マネージャは、例えば、少なくともいくつかの実施形態では、パブリックからプライベートへのIPアドレスマッピング、ならびにプライベートからパブリックへのIPアドレスマッピングを実装することを担当し得る。例えば、デスティネーションVMが、ERG内のプライベートIPアドレスが割り当てられるデスティネーションアドレスとしてパブリックIPアドレスを使用してERG内のVMにアドレス指定されるパケットの場合、パブリックからプライベートへのアドレス変換が実行され、同様に、対応するプライベートからパブリックへのIPアドレス変換は、逆方向に流れるパケットに対して実行され得る。ERGのインバウンド/アウトバウンドデータプレーントラフィックのための他のカプセル化プロトコルパケット処理は、異なる実施形態では、実行され得る。いくつかの実施形態では、ENMは、例えば、以下でさらに詳細に考察されるように、ERGホストを含むプライベートネットワークをセットアップすることを支援するために、少なくともいくつかのDHCP機能を実行することができる。
ENM605のコントロールプレーンコマンドフォワーダ612は、図示の実施形態では、例えば、VCSコントロールプレーンから管理コマンド(ERGにセットアップされたOCCを介して送信された)を受信し、コマンドのコンテンツを分析し、ERGの選択されたセキュリティ強化仮想化ホスト(EVH)におけるVCSコントロールプレーンエージェントなど適切なデスティネーションにコマンドを転送する役割を果たすことを担当し得る。いくつかの実装形態では、コマンドフォワーダ612は、コマンドを転送する前に、受信したコマンドに対して1つ以上のバリデーション/ベリフィケーション操作を実行し、および/またはコマンドの受信したバージョンに1つ以上の変換を適用することができる。
ENM605のERGホストブートストラップマネージャ617は、図示の実施形態では、ERGのEVHおよび/または他のリソース(仮想マシンのブートイメージをキャッシュするために使用されるストレージサーバなど)をブートストラップ/初期化/スタートアップすることを担当し得る。少なくともいくつかの実施形態では、図6に示されるENMのすべての要素が同じコンピューティングデバイスで実行され得るわけではなく、代わりに、要素のうちの1つ以上は、分散ENMアーキテクチャが使用される一実施形態において、それぞれのコンピューティングデバイスで実行され得ることに留意されたい。少なくともいくつかの実施形態では、図6に示されるENM要素のうちの1つ以上は、EVHでインスタンス化された仮想マシンを使用して実装され得る。いくつかの実施形態では、ENM605は、図6に示される要素とは異なる要素の組み合わせを含み得る。
例示的な仮想マシンおよびERGのファミリ
VM(プロバイダネットワークデータセンターリソースを使用して、またはERGを使用してセットアップされるVM)の確立を要求するとき、VCSクライアントは、いくつかの実施形態では、様々なサポートされるVMタイプまたはカテゴリから選択することができる場合がある。同様に、少なくとも1つの実施形態では、機能の異なる組み合わせを有する様々なERGタイプもサポートされ得、そこから、クライアントは、彼らのニーズに最も適合するERGタイプを選択し得る。図7は、少なくともいくつかの実施形態による、仮想化コンピューティングサービスでサポートされ得る仮想マシンおよび拡張リソースグループの例示的なファミリを例解する。
図1の文脈で導入されたVCS110と同様のVCSのサポートされた仮想マシンタイプ705の標準化されたセットは、いくつかの実施形態では、汎用VMファミリ710、計算最適化VMファミリ720、メモリ最適化VMカテゴリ730、ストレージ最適化VMファミリ740などのファミリに細分され得る。所与のVMがクライアントによって使用されるアプリケーションの推定ニーズに応じて、適切なファミリからVMタイプを選択することができる。異なるVMタイプの相対的なリソース能力は、VCSによって選択または定義されたユニット、例えば、コンピューティングの場合、特定のクロック速度で動作する特定の既知のプロセッサとほぼ同等の性能である仮想CPUなどのユニットを使用して表現することができる。ファミリは、定性的な考慮事項に基づいて選択することができ(例えば、アプリケーションミックスは、より多くのメモリを消費するか、またはより多くの計算を消費するか?)、ファミリ内の特定のVMタイプ(例えば、汎用ファミリでは、小712対中714対大716)は、所望の性能レベル、コストなどの考慮事項に基づいて選択することができる。CO小VM 722、CO中VM724、またはCO大VM726などの計算最適化VM720は、図示の実施形態では、例えば、汎用VMよりも多くのおよび/または高速のプロセッサまたはコアを備えるホストを使用して実装され得る。MO小VM732、MO中VM734、またはMO大VM736などのメモリ最適化VM730では、コンピューティング能力に対するメモリの量(例えば、仮想CPUあたりのメモリのギガバイト数)は、コンピューティング最適化VM720または汎用VMよりも高い場合がある。同様に、SO小VM742、SO中VM744、およびSO大VM746を含むストレージ最適化ファミリ740では、ローカルストレージと計算能力の比率(例えば、仮想CPUあたりのローカルソリッドステートデバイス(SSD)ストレージのギガバイトの数)は、他のファミリよりも高い場合がある。図示の実施形態では、マイクロVM(mVM)の事前定義されたファミリ770は、その各々がその全体的なリソース要件に基づいてマイクロVMとして適格であり得、また、サポートされ得る。図のように、mVM小カテゴリ772、mVM中カテゴリ774、および/またはmVM大カテゴリ776をマイクロVMファミリに含めることができる。少なくともいくつかの実施形態では、クライアントはまた、例えば、事前定義されたタイプのうちの1つと一致しない、処理、ストレージ、およびメモリリソースのいくつかの組み合わせを特定することによって、自分たち自身のVMタイプを定義および使用することができる場合がある。いくつかの実施形態では、プロバイダネットワークデータセンターでセットアップすることができるVMタイプのいずれかのインスタンスは、ERGでもセットアップすることができ、他の実施形態では、VMタイプのそれぞれの異なるセットは、ERGおよびプロバイダネットワークデータセンターでサポートされ得る。少なくともいくつかの実施形態では、前述のように、ベアメタルインスタンスは、例えば、図7に示されるVMのタイプに加えて、VCSまたはそのERGのホストでセットアップされ得る。
いくつかの実施形態では、いくつかのERGカテゴリ755は、VCSオペレータによって定義され得、クライアントが、プロバイダネットワークの外部の場所で彼らに代わってセットアップされたERGの機能の特定の組み合わせを選択することを可能にする。ERGタイプ(小ERG758、中ERG759および大ERG760)は、図示の実施形態では、いくつかの側面のいずれかに従って互いに異なり得る。例えば、いくつかの実施形態では、物理的なフットプリント(ERGデバイスのコレクションを含むラックに必要なフロアスペースPF1、PF2、またはPF3)がERGタイプごとに異なる場合があり、電力需要(PD1、PD2、またはPD3)が異なる場合があり、計算能力(CC1、CC2、CC3)が異なる場合があり、および/またはキャッシュされたVMイメージのセットCIS1、CIS2、またはCIS3が異なるERGタイプ間で異なる場合がある。少なくとも1つの実施形態では、ERGを要求するとき、クライアントは、VCSによってサポートされる特定のERGタイプと必ずしも一致しない仕様(物理的フットプリント、電力需要、計算能力、キャッシュされたVMイメージなどに関して)を提供し得る。1つのそのようなシナリオでは、VCSオペレータは、ERG仕様を受け入れ、対応する機器を引き渡すか、サポートされたERG構成に最も近いものをクライアントに表示する(必要に応じてクライアントが注文することができる)。一実施形態では、単一のタイプのERGのみが、VCSオペレータによってサポートされ得る。
例示的なプログラム相互作用
様々な実施形態では、VCSクライアントは、図1の文脈で導入されたERG135と同様のERGをセットアップおよび使用することに関連付けられた要求を送信するために、いくつかのプログラムインターフェースを使用することができる。図8は、少なくともいくつかの実施形態による、仮想化コンピューティングサービスの拡張リソースグループに関する例示的なプログラム相互作用を例解する。VCS812は、例えば、アプリケーションプログラミングインターフェース(API)、ウェブベースのコンソール、グラフィカルユーザインターフェース、コマンドラインツールなど、図示の実施形態では、1つ以上のプログラムインターフェース877を実装することができ、それらの任意の組み合わせは、VCSと相互作用するためにVCSクライアント810によって使用され得る。
クライアント810は、例えば、プログラムインターフェース877を介してSetupERG要求814を提出して、VCS自体のデータセンターの外部の指定された場所で拡張リソースグループを構成することを要求することができる。ERGの複数のカテゴリがサポートされる実施形態(図7の文脈で考察されたERGタイプ755と同様)では、セットアップされる特定のタイプのERGは、要求814のパラメータ(示されるERGカテゴリパラメータなど)を介して示され得る。他のパラメータは、例えば、ERGが確立される場所、ERGデバイス/機器のコレクションが引き渡されるべき期間などの制約などを示し得る。SetupERG要求814に応答して、プロバイダネットワークで実行される様々な予備タスクを含むワークフローは、いくつかの実施形態では、開始され得、セットアップ開始815などの応答メッセージがクライアントに送信され得る。少なくとも1つの実施形態では、アウトバウンドコマンドコミュニケータ(OCC)インスタンス(上で考察された種類のVCS拡張サービス内の仮想マシンなど)は、予備タスクワークフローの一部として、要求されたERGに対してインスタンス化または指定され得る。そのようなOCCは、いくつかの実施形態では、事実上、ERGネットワークマネージャからの連絡がくることを積極的に待つことができる。もちろん、ERGネットワークマネージャは、少なくともいくつかの実施形態では、ERG機器が対象の外部ロケーションに引き渡され、電源がオンにされ、インターネットに接続されるまでなど、OCCとの通信することを試みることができない場合があり、それは、SetupERG要求がVCS812で処理された後、ある程度の時間生じ得る。いくつかの実施形態では、VCSのOCCマネージャ892は、OCCインスタンスをインスタンス化すること、および/またはどの特定のOCCインスタンスが所与のERGに使用されるかを判定することを担当し得る。少なくとも1つの実施形態では、所与のOCCインスタンスは、例えば、マルチテナント操作モードで、1つ以上のVCSクライアントのいくつかの異なるERGに使用することができる。
図示の実施形態では、VCS812は、ERGが引き渡され、所望の場所で初期化された後、ERGOnlineメッセージ816をクライアント810に送信することができ、クライアントがERGの使用を開始することができることを示す。いくつかの実施形態では、暗黙の通信を使用して、明示的なメッセージではなく、要求されたERGが使用する準備ができていることをクライアントに通知することができ、例えば、コンソール内の要求されたERGのエントリは、ERGが使用に利用可能になったことを視覚アイコンを介して示すことができる。少なくともいくつかの実施形態では、ERGOnlineメッセージと同等のものがクライアントに送信される前に、1つ以上の前提条件が満たされなければならない場合があり、例えば、OCCインスタンスが管理コマンドをERGに送信するために使用することができる安全な通信チャネルを確立する必要がある場合、少なくともいくつかの最小数の仮想化ホストを正常にブートする必要がある場合、などがある。
VCSクライアント810は、図示の実施形態では、プログラムインターフェース877を使用して、指定されたERG(例えば、パラメータERGIDによって示される)として1つ以上の仮想マシンを起動するための要求817を提出することができる。要求817は、少なくともいくつかの実施形態では、対応するコマンド(複数可)をERGに送信するために使用される一方向経路とは異なる経路によって、VCSコントロールプレーンに送信され得る。VM(複数可)を起動するためのコマンドがOCCからERGに送信された後、起動が開始されたことを示すメッセージ821は、いくつかの実施形態では、クライアントに送り返され得る。少なくともいくつかの実施形態では、LaunchInitiatedメッセージ821は、VM(複数可)を起動するためのコマンドがERGに送信されたことを単に示し得、ERGのEVHでVMを起動するための作業を実際に実行するVCSエージェントプロセスは、そのような実施形態では、起動が成功したかどうかを確認するアウトバウンド管理メッセージを必ずしも送信しない場合があることに留意されたい。
いくつかの実施形態では、DescribeERG要求823は、クライアント810によって提出され、ERGのコンテンツおよび/またはステータスに関する情報を取得することができ、要求された情報は、ERGInfoメッセージ825の形態で提供され得る。いくつかの実施形態では、情報は、例えば、ERGを使用する(例えば、ERGでVMを起動または終了させる)ことを許可されたエンティティのリスト、ERGのEVHおよび/またはVMのセット、ERG(もしあれば)でのVMイメージキャッシュのセット、ERGがセットアップされた日付、ERG請求書関連データなどを含み得る。
少なくともいくつかの実施形態では、クライアント810は、例えば、所望の変更を示すmodifyERG要求828を提出することによって、ERGの修正を要求することができる。そのような変更には、例えば、ERGのEVHの数を増やすか、または減らすための要求、ERGを使用することを許可されたユーザ/グループ/エンティティのセットを修正するための要求などが含まれ得る。要求された修正がVCSの適用可能なルールおよびポリシーに基づいて対応することができる場合、図示の実施形態では、変更を実装するための対応するワークフローを開始することができ、変更ワークフローが進行中であることを示すModifyInitiatedメッセージ833をクライアントに送信することができる。一実施形態では、クライアント810は、ERGがもはや必要とされないことを示すためのUnconfigureERG要求841を提出することができる。応答として、VCSは、ERGへのアクセスを終了させ、ERGのためにセットアップされた機器をシャットダウンし、取り外し、運び去るためのワークフローを開始することができ、いくつかの実施形態では、ERGUnconfiguredメッセージ843をクライアントに送信して、ワークフローが開始されたこと、およびプログラム要求でもはやERGにアクセス可能でないことを示すことができる。少なくともいくつかの実施形態では、図8に示されるものとは異なるプログラム相互作用のセットが、ERG関連操作のためにサポートされ得る。
例示的なVM起動ワークフロー
図9は、少なくともいくつかの実施形態による、拡張リソースグループで仮想マシンを起動することに関連付けられた例示的なワークフローを例解する。図9に示される例示的なシナリオでは、ERG934は、VCSクライアントの要求に応じて顧客データセンター930にセットアップされている。クライアントは、データセンター930にたまたま配置され得るデバイス932(例えば、ラップトップ、デスクトップなど)を使用して、仮想マシンを起動するための要求(LaunchVM(ERGID)要求971)を送信することができ、ワークフローのステップ1に示されるように、VMがERG934で起動されることを示す。LaunchVM要求が提出されるネットワークパスは、クライアントがVCSのパブリックAPIを介して提出する他のVCS要求に使用されるパスと同じであり得、そのため、このパスは、OCC911によってVCSコントロールプレーンコマンドをERGに送信するために特別にセットアップされた一方向の安全なチャネルを含まない場合がある。少なくとも1つの実施形態では、VCSは、地域データセンター910などのプロバイダネットワークの複数の地域データセンターを使用して実装され得る。地域データセンターの個々のデータセンターは、例えば、プロバイダネットワークがサービスを提供する様々な大都市圏、州、または国にセットアップすることができる。いくつかの実施形態では、特定のVCSクライアントがプログラム要求を提出するとき、それは、例えば、要求が提出されるソースIPアドレスに基づいて、またはクライアントのアカウントがデフォルトで関連付けられる「ホーム」領域に基づいて、特定の地域データセンターにルーティングされ得る。
図9に描写される実施形態では、地域データセンター910内のコントロールプレーンデバイス912は、LaunchVM要求971を取得し、要求内容を処理し、LanchVMコマンド972の内部バージョンを、VMがインスタンス化される(ワークフローのステップ2に示されるように)ERGに関連付けられたOCC911に送信することができる。少なくともいくつかの実施形態では、個々のERGで仮想マシンを起動することを許可されたユーザ/グループ/エンティティを示すデータベース931は、VCSで維持され得、コントロールプレーンデバイス912でのLaunchVM要求の処理の一部は、データベース731を使用して、リクエスタが、指定されたERGで指定されたタイプのVMを起動することを許可されることを検証することを含み得る。一実施形態では、OCC911は、クライアントによって提出された要求および/またはLaunchVMコマンドの内部バージョンを処理/検証することに参加することができる。
VM起動に関する処理および/または検証操作が正常に完了した後、図示の実施形態では、ワークフローのステップ3の一部として、コマンドの変換されたバージョンが、OCC911から安全な一方向チャネル973を介してERG934のERGネットワークマネージャ(ENM)935に送信される。OCCで実行される操作の一部として、いくつかの実施形態では、1つ以上のセキュリティトークンをコマンドで削除または置換することができ、HMACなどのメッセージ認証コードをコマンドに対して作成することができ、コマンドのエントリをOCC911によるログで記憶することなどを行うことができる。
ENM935は、図示の実施形態(ワークフローのステップ4)では、要求された仮想マシンのために選択された特定のEVH937で、受信したコマンドをVCSコントロールプレーンエージェント935に転送することができる。いくつかの実施形態では、ENMおよび/またはエージェント935は、VMのリクエスタが、ERGにローカルなデータベース938に示される許可されたランチャの中にあることを再検証することができる。少なくとも1つの実施形態では、ENMおよび/またはエージェントはまた、OCCから受信したコマンドを示すログエントリを記憶することができる。どの特定のEVH937を使用するかに関する判定は、異なる実施形態では、いくつかのアプローチのいずれかを使用して行うことができる。一実施形態では、クライアントは、例えば、最初のLanuchVM要求において、指定されたERGでのVMに使用される特定のEVHを示すことができる場合がある。他の実施形態では、VCSコントロールプレーンデバイス912で動作している1つ以上の配置マネージャは、要求されたVMを起動すべき特定のEVH937を選択することができる。いくつかの実施形態では、OCC911および/またはENM935は、要求されたVMのために特定のEVHを選択することを担当し得る。LaunchVMコマンドがEVH937でVCSコントロールプレーンエージェント935に送信された後、要求されたタイプの新しいVM922は、例えば、図2の文脈で以前に考察されたものと同様の技術を使用して、図示の実施形態では、インスタンス化され得る。様々な実施形態では、図9に示されるものと同様のメッセージパターンは、他のタイプの要求および対応するコマンドに使用され得、例えば、クライアントは、ERGに向けられた対応するVCSコントロールプレーン発行の終了コマンドに使用されるものとは異なる経路を使用して、ERGでVMを終了させるための要求を提出することができる。いくつかの実施形態では、図9に示されるものとは異なるワークフローを使用して、ERGで仮想マシンを起動することができ、および/または他のタイプのクライアント送信要求を履行することに関与するメッセージに異なる経路を使用することができる。
ERGでの追加のプロバイダネットワークサービスの例示的な使用
いくつかの実施形態では、仮想化コンピューティングサービスが実装されるプロバイダネットワークはまた、VCS仮想マシンをビルディングブロックとして利用する他のより高いレベルのネットワークアクセス可能なサービスへのアクセスを提供し得、例えば、データベースのインスタンスは、仮想マシンを使用して実装され得、ネットワークアクセス可能なデータベースサービスのクライアントが使用するために提供され得る。様々な実施形態では、そのようなより高いレベルのサービスはまた、例えば、サービスの特徴を実装するためにERG内にセットアップされたローカルVMを使用して、ERGで利用可能にされ得る。加えて、VCS仮想マシンに直接依存しないプロバイダネットワークの他のサービスはまた、いくつかの実施形態では、そのようなサービスが、プロバイダネットワークデータセンター内でセットアップされたVMからアクセス可能である方式と同様の様式で、ERGでセットアップされたVMからアクセスされ得る。図10は、少なくともいくつかの実施形態による、仮想化コンピューティングサービスの拡張リソースグループでの追加のプロバイダネットワークサービスの使用の例を例解する。
図示の実施形態では、プロバイダネットワーク1001は、少なくとも仮想化コンピューティングサービス(VCS)(図1のVCS110と機能および特徴が類似している)、ストレージサービス1030、およびデータベースサービス1042を含む。VCSの一部分1010は、プロバイダネットワークデータセンターに配置されたリソースを使用して実装され得、VCSの拡張は、1つ以上の非VCSサーバ1023も含む顧客データセンター1032内に配置されたERG1035などのプロバイダネットワークの外部の場所にセットアップされ得る。
図10に描写される例示的なシナリオでは、以前に考察された種類の分離仮想ネットワーク(IVN)1015が、VCSクライアントのために確立されている。IVN1015は、VCSのプロバイダネットワークデータセンター部分1010内の複数の仮想マシン(VM1017Aおよび1017Bなど)、および顧客データセンター1032に配置されたERG1035内の複数の仮想マシン(1018Jおよび1018Kなど)を含む。VMのいずれかで実行されているプログラムは、図示の実施形態では、他のプロバイダネットワークサービスのリソースを利用することができる。例えば、ストレージサービス1030のストレージインスタンス1022は、プロバイダネットワーク内のVM1017Bから、およびERG1035内のVM1018Kからアクセスされ得、同様に、データベースサービス1040のデータベースインスタンス1042は、プロバイダネットワーク内のVM1017Aから、およびERG内のVM1018Jからアクセスされ得る。図示の実施形態では、ERG1035内のVMは、他のプロバイダネットワークサービスへのアクセスを提供され得、それは、プロバイダネットワーク内でインスタンス化されたVMに提供されるアクセスと論理的に同等である。ERG1035自体の中で、VCS仮想マシン上に構築されるサービス(すなわち、VMをビルディングブロックとして使用するサービス)の構成および使用は、ERGの外部のリソースにアクセスする必要なく、図示の実施形態では、ローカルに実行され得る。例えば、DBサービス1040のデータベースインスタンスがVCSの仮想マシンを含む一実施形態では、新しいデータベースインスタンスは、ERG VM1018Jを使用して、別のERG VM1018KからのDBインスタンスの要求に応答して、ERG内にローカルに作成され得る。したがって、図示の実施形態では、代わってERG1035がセットアップされたVCS顧客にとって、1018Jおよび1018KなどのERGベースの仮想マシンは、プロバイダネットワーク内でインスタンス化される1017Aおよび1017BなどのVMと機能的に同等であるように見える場合があり、ただし、VCSのコントロールプレーンコンポーネントは、プロバイダネットワークデータセンター内に実装されており、ERGでは複製されない。少なくともいくつかの実施形態では、万一、ERGとプロバイダネットワークデータセンターとの間の接続が中断された場合、ERGで既にインスタンス化されたVM、およびERGでセットアップされた他のサービス(上述のデータベースサービスなど)のリソースインスタンスは、少なくとも一定期間は機能し続けることができ、そのため、クライアントがERGを使用するために、プロバイダネットワークデータセンターへの継続的な接続は必要ない場合がある。
プロバイダネットワークサービス拡張の方法
図11は、少なくともいくつかの実施形態による、拡張リソースグループを確立し、仮想マシンを拡張リソースグループでセットアップすることを可能にするために、プロバイダネットワークで実行され得る操作の態様を例解するフロー図である。図のように、要素1101において、プロバイダネットワークの外部のプレミスでセットアップすることができる、プロバイダネットワークの仮想化コンピューティングサービスの拡張リソースグループ(ERG)カテゴリ(例えば、「小」ERG、「大」ERGなど)のファミリの表示は、任意選択で、例えば、VCSのプログラムインターフェースを介して提供することができる。ERGは、例えば、VCSの顧客に代わって、VCS管理計算インスタンス(仮想マシンおよびベアメタルインスタンスなどを含む)を、インターネットにアクセス可能な任意の場所(顧客のデータセンター、コロケーション設備、電気通信会社、エネルギー会社などの組織のリモートフィールドロケーション)でセットアップして、安全に管理することを可能にし得る。所与のERGは、例えば、少なくともいくつかの実施形態では、1つ以上の強化されたセキュリティ仮想化ホスト(EH)などの事前構成された強化されたリソースのそれぞれのセットを含み得る。
少なくとも1つの実施形態では、VCSコントロールプレーンコマンドをプロバイダネットワークデータセンターからERGに安全に送信するためのアウトバウンドコマンドコミュニケータ(OCC)インスタンスをセットアップすることができる。例えば、一実施形態では、1つ以上のプロバイダネットワークデータセンターでERG管理のために特別にセットアップされた特定の分離仮想ネットワーク(IVN)内で、クライアントによって要求された特定のERGに割り当てられたアウトバウンドコマンドコミュニケータインスタンスOCC1を確立することができる(要素1104)。いくつかの実施形態では、VCS計算インスタンスを使用して、OCCの機能の少なくとも一部分を実装することができる。OCC1は、一実施形態では、ERGのプログラム要求がVCSで受信されるとき、例えば、クライアントによって示された外部場所でのERGリソースの配信/展開の前に確立され得る。
OCC1では、(a)プロバイダネットワークのデータセンター内のクライアントリソースのいくつかのセットと(b)ERGとの間の通信のために確立された安全なネットワークチャネルの表示が、図示の実施形態では、取得され得る(要素1107)。チャネルは、例えば、ERGのネットワークマネージャとプロバイダネットワークデータセンター内のクライアントIVNとの間にセットアップされたVPNトンネル、および/またはクライアントのトラフィックのために指定された専用の物理リンクを介して確立された接続を含み得る。安全なチャネルが確立された後、ERG操作に関するプログラム要求(例えば、ERGで計算インスタンスを起動するための要求)は、様々な実施形態では、ERGがその代わりにセットアップされるクライアントによって、VCSコントロールプレーンデバイス(例えば、プロバイダネットワークデータセンター内のサーバで動作しているAPIハンドラ)に送信することができる。
様々な実施形態によると、クライアント要求に応答してVCSコントロールプレーンで生成された仮想マシン起動コマンド(または他の管理コマンド)がERGに送信されるという判定が、OCC1でなされ得る(要素1110)。コマンドが実行されるEHのアドレスAddr1は、プロバイダネットワークのデータセンター内に配置された少なくともいくつかのホストのVCSコントロールプレーンによって使用されるアドレス範囲の一部である可能性がある。1つの例示的なシナリオでは、OCC1は、それに関連付けられた1つ以上の仮想ネットワークインターフェースを有し得、そのようなコマンドの表示は、VCSコントロールプレーンに関連付けられ、OCC1に接続された特定の仮想ネットワークインターフェースVNI1を介してOCC1で取得され得る。OCC1自体は、前に考察されたように(例えば、VNI1のアドレスを設定することによって)少なくともいくつかの実施形態では、ターゲットホストEHのアドレスが割り当てられ得る。少なくともいくつかの実施形態では、VCSコントロールプレーンコマンドの生成につながったクライアント要求は、OCC1とERGとの間にセットアップされた安全なネットワークチャネルを含まないパスを使用して、VCSコントロールプレーンで受信され得ることに留意されたい。少なくとも1つの実施形態では、VNI1のセキュリティ設定は、メッセージがOCC1からVCSコントロールプレーンに送信されることを許可しない場合がある。
OCC1は、図示の実施形態では、安全なチャネルを使用して、コマンドの変換されたバージョン(例えば、ERGでのセキュリティアーティファクトの誤用の可能性を低減するためにいくつかのセキュリティアーティファクトが除去/置換/再署名された)をERGに送信することができる(要素1113)。一実施形態では、コマンドの変換されたバージョンは、例えば、図5の文脈で考察されたものと同様の1つ以上の追加の仲介者を含むパスを介して、最初にERGのネットワークマネージャ(ENM)に送信され得る。コマンドを含むメッセージをENMに配信するために使用されるアドレスは、いくつかの実施形態では、外部プレミスにセットアップされた第1のネットワークのアドレス範囲、例えば、VCSコントロールプレーン内で使用されるアドレスとは関係なくクライアントによって選択されたアドレス範囲の一部であり得る。コマンドは、ENMによってEHに転送される場合がある。いくつかの実施形態では、1つ以上のアドレス変換は、コマンドをERGに伝達するために使用されるメッセージ(複数可)が横断するパスに沿って実行され得る。いくつかの実施形態では、VCSコントロールプレーンコマンドは、ERG内のENMまたは他のリソースに送信される前に、必ずしも変換される必要はない。
ERGでは、いくつかの実施形態では、コマンドの変換されたバージョンは、EH内でインスタンス化されたVCSコントロールプレーンエージェントで取得され得る。少なくとも1つの実施形態では、EHは、外部プレミスでセットアップされた第2のネットワーク内でアドレスAddr1が割り当てられ得る。いくつかの実施形態では、ENMは、外部プレミスでの両方のネットワーク、すなわち、クライアントによって構成されたもの、およびVCSコントロールプレーンで使用される範囲からのアドレスがホストに割り当てられる第2のネットワークの一部であり得る。EHでのエージェントは、例えば、新しい計算インスタンスを起動することができ、既存の計算インスタンスを終了することができるなど、要求されたアクションをEVHで実行させることができる(要素1116)。図示の実施形態では、クライアントによって提出された追加の要求に関して同様のワークフローを実行することができ、例えば、要素1110~1113に対応する操作は、ERGが操作可能である限り、様々なクライアント要求に対して繰り返され得る。クライアントはまた、様々な実施形態では、ERG自体の構成に関する様々な要求、例えば、図8の文脈で考察されたように、ERGを表示、変更、または終了させるための要求をVCSコントロールプレーンに提出することができ、VCSは、要求された操作を実行することができる。
図12は、少なくともいくつかの実施形態による、仮想化コンピューティングサービスの拡張リソースグループで実行され得る操作の態様を例解するフロー図である。要素1201に示されるように、プロバイダネットワークのVCSの拡張リソースグループ(ERG)(例えば、プリインストールされたソフトウェア/ファームウェアを有する強化されたセキュリティサーバまたはホストの1つ以上のラックまたは他のコンテナ)は、物理的に配信され得、ERGに提出されたプログラム要求に応答して、ある場所にセットアップされる。機器がセットアップされる場所は、少なくともいくつかの実施形態では、顧客データセンター、コロケーション設備、または電気通信会社またはエネルギー会社などの組織の遠隔作業場所など、プロバイダネットワーク自体のデータセンターの外部のプレミスを含み得る。
1つ以上のトリガ信号(ERGの1つ以上のデバイスでスイッチがオンになっていること、および/またはERGからインターネットへの接続が有効になっているという表示と同じくらい簡素であり得る)に応答して、少なくともERGネットワークマネージャ(ENM)の一部分は、いくつかの実施形態では、ERGの1つ以上のリソースを使用して、インスタンス化または開始され得る(要素1204)。一実施形態では、ENMの機能の少なくとも一部分は、ハードウェアカード(例えば、PCIカード)に実装され得る。ENMは、他の実施形態では、ERGの1つ以上のコンピューティングデバイスまたはホストでの実行の1つ以上のプロセスまたはスレッドを含み得る。ENMは、図示の実施形態では、ERGの他のホスト/サーバの少なくともいくつかをブートストラップするか、またはさもなければ初期化することができる。少なくともいくつかの実施形態では、ENMは、例えば、VCSコントロールプレーンのホストネットワークアドレス範囲からブートストラップされているホストにアドレスを割り当てることを含む、1つ以上のDHCP機能を実行することができる。ENM自体は、いくつかの実施形態では、2つのネットワーク、すなわち、代わりにERGが配信された顧客によってセットアップされた1つのネットワーク、および計算インスタンスを確立することができるERGホストを含む第2の(プライベート)ネットワークのメンバーとして構成することができる。
安全なネットワークチャネル(例えば、VPN接続/トンネルおよび/または専用の物理リンクを使用する接続)は、例えば、ENMからVCSコントロールプレーンにインターネット経由で提出された要求によって開始されたワークフローの結果として、様々な実施形態では、ENMとVCSの1つ以上のリソースとの間で確立/構成され得る(要素1207)。少なくともいくつかの実施形態では、VCSコントロールプレーンからERGに管理コマンドを送信/転送するために特別にセットアップされたアウトバウンドコマンドコミュニケータインスタンスOCC1は、安全なチャネルを使用するためのアクセスが認められ得る。少なくとも1つの実施形態では、前述のように、OCC1は、VCSコントロールプレーンからコマンドを受信するためにのみ使用される1つのVNI、および安全なチャネルを介してコマンド(修正される可能性のあるバージョン)をERGに送信するために使用することができる別のVNIを含む、複数の仮想ネットワークインターフェース(VNI)が接続された仮想マシンを含み得る。
安全なチャネルが確立された後、代わりにERGがセットアップされたVCSクライアント(および/またはERGへのアクセスが許可される他のユーザ/グループ)は、様々な実施形態では、プログラム要求(ERG仮想化ホストで計算インスタンスを起動するための要求など)を送信することを開始し得る。ERGのENMは、図示の実施形態では、OCC1からコントロールプレーンコマンド(例えば、代わりにERGがセットアップされるクライアントによって提出された要求に応答して、VCSコントロールプレーンで生成された起動VMコマンド)のバージョンを受信し得る(要素1210)。図5に示されるものと同様のパスが、いくつかの実施形態では、1つ以上のメッセージ変換、アドレス変換などを含むコマンドに使用され得る。少なくとも1つの実施形態では、コマンドがENMによって受信されるネットワークアドレスは、上記の顧客構成ネットワークの一部であり得る。ENMは、ERGのホストでコントロールプレーンエージェントにコマンドを転送し、そこでコマンドを実装することができる(例えば、VMをインスタンス化するためのクライアント要求に応答してコマンドが生成された場合、ホストでの、クライアントによって要求された新しいVMの起動をもたらす)(要素1213)。ホストは、様々な実施形態では、ERGでセットアップされたプライベートネットワークの一部であり得、第2のネットワーク内で、他のホストのためのVCSコントロールプレーン内で使用される範囲からネットワークアドレスが割り当てられ得る。VCSコントロールプレーンで生成された追加のコマンドが受信される場合、ENMは、それらを適切な仮想化ホストに転送することができ、図示の実施形態では、要素1210および1213に対応する操作を繰り返す。
ENMは、いくつかの実施形態では、VCSコントロールプレーンからERGホストにコマンドを転送することに加えて、いくつかの他の種類の機能を実行することができる。必要に応じて、例えば、ENMはまた、パブリックからプライベートまたはプライベートからパブリックへのアドレス変換、他のカプセル化関連操作などを実行して、ERGで起動された計算インスタンスと、ERGが展開される外部プレミスでのデバイスとの間でトラフィックが流れることを可能にする(要素1216)。
様々な実施形態では、図11および/または図12に示される操作のいくつかは、図に示されるものとは異なる順序で実行され得るか、または順次ではなく並行して実行され得ることに留意されたい。さらに、図11および/または図12に示される操作のいくつかは、1つ以上の実装形態では、必要とされない場合がある。
ユースケース
仮想化コンピューティングサービスなどのプロバイダネットワークのネットワークアクセス可能なサービスのデータプレーンを、プロバイダネットワークの外部のプレミスに論理的かつ安全に拡張する上記の技術は、様々なシナリオで非常に有用であり得る。スケーラビリティ、可用性、信頼性、セキュリティ、手頃な価格などの特徴のためにプロバイダネットワークリソース(様々な能力レベルの仮想マシンなど)を利用する多くの組織は、選択した場所、例えば、顧客データセンター、コロケーション設備、および/または一時的なフィールドワークサイト内で同様のリソースを利用したいと思う場合がある。場合によっては、そのような場所が、その場所に記憶され得る大量のアプリケーションデータへのアクセスのため、好まれることがあり、プロバイダネットワーククライアントは、インターネットを介してプロバイダネットワーク自体のデータセンターにそのような大量のデータを転送することに関連付けられたコストおよび/または遅延を回避することを好む場合があり、可能ならば、データが顧客自身のプレミスから出ないことを確実にすることを望む場合がある。クライアントは、インターネットへの接続が信頼性が低いか、または高価である可能性のある遠隔地(例えば、石油掘削装置、携帯電話の塔、科学データ収集センサーアレイなどの近く)で、仮想マシン、および/または仮想マシンをビルディングブロックとして使用するサービスを使用する必要がある場合があり得る。例えば、いくつかの組織は、オフィスまたは他の物理的な場所に多数のエンジニア/設計者を有し、エンジニア/設計者の超低遅延距離内で仮想マシンを使用して実行するために、レンダリングまたは他の計算集約型操作が必要になる場合がある。インターネット接続が可能な任意の所望の場所でローカル機器を使用して、プロバイダネットワークデータセンターで提供されるものと同じ能力をサポートする能力により、プロバイダネットワーククライアントが効率的かつ安全に実行することができるアプリケーションの範囲が大幅に拡大し得る。
例示的なコンピュータシステム
少なくともいくつかの実施形態では、本明細書に記載のサービス拡張技術のタイプをサポート(例えば、プロバイダネットワークのデータセンターの外部の選択された場所での仮想化されたコンピューティングサービスの拡張リソースグループのセットアップおよび使用)するために使用されるコントロールプレーンおよびデータプレーンコンポーネントのうちの1つ以上実装するサーバは、1つ以上のコンピュータアクセス可能なメディアを含むか、またはそれにアクセスするように構成される汎用コンピュータシステムを含み得る。図13は、そのようなコンピューティングデバイス9000を例解する。例解された実施形態では、コンピューティングデバイス9000は、入力/出力(I/O)インターフェース9030を介してシステムメモリ9020(不揮発性および揮発性メモリモジュールの両方を含み得る)に結合された1つ以上のプロセッサ9010を含む。コンピューティングデバイス9000は、I/Oインターフェース9030に結合されたネットワークインターフェース9040をさらに含む。
様々な実施形態では、コンピューティングデバイス9000は、1つのプロセッサ9010を含む単一プロセッサシステム、またはいくつかのプロセッサ9010(例えば、2、4、8、または別の好適な数)を含むマルチプロセッサシステムであり得る。プロセッサ9010は、命令を実行することが可能である任意の好適なプロセッサであり得る。例えば、様々な実施形態では、プロセッサ9010は、x86、PowerPC、SPARC、もしくはMIPS ISA、または任意の他の好適なISAなどの任意の様々な命令セットアーキテクチャ(ISA)を実装する汎用または組み込みプロセッサであり得る。マルチプロセッサシステムでは、プロセッサ9010の各々は、一般的に、必ずしもそうではないが同じISAを実装し得る。いくつかの実装形態では、グラフィックスプロセッシングユニット(GPU)が、従来のプロセッサの代わりに、またはそれに加えて使用され得る。
システムメモリ9020は、プロセッサ(複数可)9010によってアクセス可能な命令およびデータを記憶するように構成され得る。少なくともいくつかの実施形態では、システムメモリ9020は、揮発性部分および不揮発性部分の両方を含み得、他の実施形態では、揮発性メモリのみを使用し得る。様々な実施形態では、システムメモリ9020の揮発性部分は、スタティックランダムアクセスメモリ(SRAM)、シンクロナスダイナミックRAM、または任意の他のタイプのメモリなどの任意の好適なメモリ技術を使用して実装され得る。システムメモリの不揮発性部分(例えば、1つ以上のNVDIMMを含み得る)の場合、いくつかの実施形態では、NANDフラッシュデバイスを含むフラッシュベースのメモリデバイスを使用することができる。少なくともいくつかの実施形態では、システムメモリの不揮発性部分は、スーパーキャパシタまたは他の電力貯蔵デバイス(例えば、バッテリ)などの電源を含み得る。様々な実施形態では、メモリスタベースの抵抗変化型アクセスメモリ(ReRAM)、3次元NAND技術、強誘電体RAM、磁気抵抗RAM(MRAM)、または様々なタイプの相変化メモリ(PCM)のいずれかを、少なくともシステムメモリの非揮発性部分に使用し得る。例解された実施形態では、上記のこれらの方法、技術、およびデータなど、1つ以上の所望の機能を実装するプログラム命令およびデータが、コード9025およびデータ9026としてシステムメモリ9020内に記憶されて示される。
一実施形態では、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に直接組み込むことができる。
ネットワークインターフェース9040は、コンピューティングデバイス9000と、例えば図1~図12に例解されるような他のコンピュータシステムまたはデバイスなどの1つのネットワークまたは複数のネットワーク9050に接続された他のデバイス9060との間でデータを交換することを可能にするように構成され得る。様々な実施形態では、ネットワークインターフェース9040は、例えば、イーサネットネットワークのタイプなど、任意の好適な有線または無線の一般データネットワークを介した通信をサポートすることができる。さらに、ネットワークインターフェース9040は、アナログ音声ネットワークもしくはデジタルファイバ通信ネットワークなどの電気通信/電話ネットワークを介した、ファイバーチャネルSANなどのストレージエリアネットワークを介した、または任意の他の好適なタイプのネットワークおよび/もしくはプロトコルを介した通信をサポートすることができる。
いくつかの実施形態では、システムメモリ9020は、図1~図12の文脈で考察された方法および装置を実装するために使用されるプログラム命令およびデータの少なくともサブセットを記憶するように構成されたコンピュータアクセス可能媒体の一実施形態を表すことができる。しかしながら、他の実施形態では、プログラム命令および/またはデータは、異なるタイプのコンピュータアクセス可能媒体上で受信、送信、または記憶されてもよい。一般的に言えば、コンピュータアクセス可能媒体は、磁気または光学媒体などの非一時的記憶媒体またはメモリ媒体、例えばI/Oインターフェース9030を介してコンピューティングデバイス9000に結合されたディスクまたはDVD/CDを含み得る。非一時的コンピュータアクセス可能記憶媒体はまた、システムメモリ9020または別のタイプのメモリとしてコンピューティングデバイス9000のいくつかの実施形態に含まれ得る、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAMなど)、ROMなどの任意の揮発性媒体または不揮発性媒体も含み得る。いくつかの実施形態では、複数の非一時的なコンピュータ可読記憶媒体は、1つ以上のプロセッサ上でまたはそれらにわたって実行されると、上記の方法および技術の少なくともサブセットを実装するプログラム命令を集合的に記憶することができる。コンピュータアクセス可能媒体は、ネットワークインターフェース9040を介して実装され得るような、ネットワークおよび/または無線リンクなどの通信媒体を介して伝達される、電気信号、電磁気信号、またはデジタル信号などの伝送媒体または信号をさらに含み得る。図13に例解されるものなどの複数のコンピューティングデバイスの部分またはすべてを使用して、様々な実施形態では、記載の機能を実装することができ、例えば、様々な異なるデバイスおよびサーバで動作するソフトウェアコンポーネントが連携して機能を提供し得る。いくつかの実施形態では、記載の機能の部分は、汎用コンピュータシステムを使用して実装されることに加えて、またはその代わりに、ストレージデバイス、ネットワークデバイス、または専用コンピュータシステムを使用して実装され得る。本明細書で使用される際、「コンピューティングデバイス」という用語は、少なくともこれらのタイプのデバイスのすべてを指すが、これらのタイプのデバイスに限定されるものではない。
本開示の実施形態は、以下の条項に鑑みて説明され得る。
1.システムであって、
プロバイダネットワークの仮想化コンピューティングサービスの1つ以上のコンピューティングデバイスであって、プロバイダネットワークは、1つ以上のデータセンターを含み、1つ以上のデータセンターに配置された仮想化コンピューティングサービスの仮想化ホストのセットは、第1のネットワークアドレス範囲内のそれぞれのネットワークアドレスが割り当てられ、
1つ以上のコンピューティングデバイスは、命令を含み、命令は、1つ以上のプロセッサ上またはそれらにわたって実行されると、1つ以上のコンピューティングデバイスに、
拡張リソースグループに関連付けられたアウトバウンドコマンドコミュニケータで仮想マシン起動コマンドを取得することであって、アウトバウンドコミュニケータは、第1のネットワークアドレス範囲内の第1のネットワークアドレスを有し、拡張リソースグループは、1つ以上のデータセンターの外部のプレミスに配置された1つ以上の仮想化ホストを含み、仮想マシン起動コマンドは、第1のネットワークアドレスの表示を含む、取得することと、
安全なネットワークチャネルを介して、拡張リソースグループに、仮想マシン起動コマンドを示し、第1のネットワークアドレスを示すメッセージを送信することであって、メッセージのデスティネーションアドレスは、プレミスで使用される第2のネットワークアドレス範囲の一部であり、ターゲット仮想化ホストは、拡張リソースグループで確立されたプライベートネットワーク内の第1のネットワークアドレスが割り当てられ、ターゲット仮想化ホストでの仮想マシン起動コマンドの処理は、ターゲット仮想化ホストでの仮想マシンのインスタンス化をもたらす、送信することと、を行わせる、1つ以上のコンピューティングデバイスを含む、システム。
2.安全なネットワークチャネルは、1つ以上のデータセンターと拡張リソースグループとの間に確立され、安全なネットワークチャネルは、(a)VPNトンネル、または(b)プレミスとプロバイダネットワークとの間の専用の物理リンクのうちの1つ以上を含む、条項1に記載のシステム。
3.1つ以上のコンピューティングデバイスは、命令をさらに含み、命令は、1つ以上のプロセッサ上またはそれらにわたって実行されると、1つ以上のコンピューティングデバイスに、
拡張リソースグループを確立するための要求がプログラムインターフェースを介して提出されていることを判定することであって、アウトバウンドコマンドコミュニケータは、拡張リソースグループを確立するための要求に応答して確立される、判定することをさらに行わせる、条項1~2のいずれか1つに記載のシステム。
4.1つ以上のコンピューティングデバイスは、命令をさらに含み、命令は、1つ以上のプロセッサ上またはそれらにわたって実行されると、1つ以上のコンピューティングデバイスに、
安全なネットワークチャネルを確立するための要求が受信されることを判定する前に、アウトバウンドコマンドコミュニケータをインスタンス化することをさらに行わせる、条項1~3のいずれか1つに記載のシステム。
5.アウトバウンドコマンドコミュニケータは、別の仮想化ホスト上の仮想マシンで実行され、他の仮想化ホストは、第1のネットワークアドレス範囲内の第2のネットワークアドレスが割り当てられる、条項1~4のいずれか1つに記載のシステム。
6.方法であって、
プロバイダネットワークの1つ以上のコンピューティングデバイスによって、
プロバイダネットワークのコンピューティングサービスのコントロールプレーンで、計算インスタンスを確立するための要求を受信することと、
プロバイダネットワークの第1のアウトバウンドコマンドコミュニケータで、要求に応答して、計算インスタンスがターゲットホストで確立されるという表示を取得することであって、ターゲットホストは、クライアントプレミスに配置されたプロバイダネットワークの第1の拡張リソースグループの一部であり、第1のネットワークアドレスは、コントロールプレーンでターゲットホストに関連付けられ、第1のアウトバウンドコマンドコミュニケータは、少なくとも第1のネットワークアドレスが割り当てられる、取得することと、
第2のネットワークアドレスをデスティネーションとして示すメッセージを送信することであって、第2のネットワークアドレスは、クライアントプレミスで確立された第1のネットワークの一部であり、メッセージは、ターゲットホストで計算インスタンスを確立するためのコマンドを含み、第1のネットワークアドレスは、クライアントプレミスで確立された第2のネットワーク内のターゲットホストに割り当てられ、ターゲットホストでのコマンドの処理は、計算インスタンスの確立をもたらす、送信することと、を実行することを含む、方法。
7.計算インスタンスは、仮想マシンを含む、条項6に記載の方法。
8.プロバイダネットワークの1つ以上のコンピューティングデバイスによって、
プログラムインターフェースを介して、プロバイダネットワーク内のホストでサポートされる仮想マシンカテゴリのセットの表示を提供することであって、計算インスタンスは、セットの特定の仮想マシンカテゴリに属する、提供することを実行することをさらに含む、条項6~7のいずれか1つに記載の方法。
9.第1のアウトバウンドコマンドコミュニケータで取得された、計算インスタンスが確立されるという表示は、第1のセキュリティアーティファクトを含み、方法は、プロバイダネットワークの1つ以上のコンピューティングデバイスによって、
第2のネットワークアドレスに送信されるメッセージに、第2のセキュリティアーティファクトを含めることであって、第2のセキュリティアーティファクトは、第1のアウトバウンドコマンドコミュニケータで生成される、含めることを実行することをさらに含む、条項6~8に記載の方法。
10.プロバイダネットワークの1つ以上のコンピューティングデバイスによって、
第1のアウトバウンドコマンドコミュニケータを第1の仮想ネットワークインターフェースおよび第2の仮想ネットワークインターフェースにプログラムで接続することであって、第1の仮想ネットワークインターフェースは、コントロールプレーンから、計算インスタンスが確立されるという表示を取得するために使用され、第2の仮想ネットワークインターフェースは、メッセージが第1の拡張リソースグループに送信される安全なネットワークチャネルにアクセスするために使用される、プログラムで接続することを実行することをさらに含む、条項6~9に記載の方法。
11.安全なネットワークチャネルは、(a)仮想プライベートネットワーク(VPN)トンネル、または(b)クライアントプレミスとプロバイダネットワークとの間の専用の物理リンクのうちの1つ以上を含む、条項10に記載の方法。
12.第1のアウトバウンドコマンドコミュニケータは、少なくとも部分的に仮想マシンを使用して実装される、条項6~10のいずれか1つに記載の方法。
13.第1の拡張リソースグループは、プロバイダネットワークのコンピューティングサービスの第1のクライアントに代わって確立され、第1のアウトバウンドコマンドコミュニケータは、コンピューティングサービスの分離仮想ネットワーク内に構成され、分離仮想ネットワークは、コンピューティングサービスの第2のクライアントに代わって確立された第2の拡張リソースグループと通信するために確立された少なくとも第2のアウトバウンドコマンドコミュニケータを含む、条項6~10または12のいずれか1つに記載の方法。
14.第1の拡張リソースグループは、プロバイダネットワークのコンピューティングサービスのクライアントに代わって確立され、方法は、1つ以上のコンピューティングデバイスによって、
計算インスタンスに、クライアントに代わってプロバイダネットワーク内に確立された分離仮想ネットワークのネットワークアドレス範囲からネットワークアドレスを割り当てることを実行することをさらに含む、条項6~10または12~13のいずれか1つに記載の方法。
15.計算インスタンスを確立するための要求は、プロバイダネットワークのコンピューティングサービスのパブリックアプリケーションプログラミングインターフェースに関連付けられた第1のネットワークパスを介して受信され、メッセージは、第2のネットワークパスを介して第2のネットワークアドレスに送信される、条項6~10または12~14のいずれか1つに記載の方法。
16.システムであって、
サービスプロバイダ環境の1つ以上のコンピューティングデバイス上で実行されるコントロールプレーンと、
サービスプロバイダ環境の第1のネットワークに結合されたアウトバウンドコマンドコミュニケータであって、第1のネットワークは、ネットワークアドレスの範囲を使用し、アウトバウンドコマンドコミュニケータは、ネットワークアドレスの範囲内の第1のネットワークアドレスが割り当てられ、サービスプロバイダ環境の第1のネットワークは、計算インスタンスをホストするように構成された複数のサーバを含む、アウトバウンドコマンドコミュニケータと、を含み、
コントロールプレーンは、
計算インスタンスを起動するための要求を含む第1のメッセージを、第1のネットワークアドレスに送信するように構成されており、
アウトバウンドコマンドコミュニケータは、
第1のメッセージを受信することと、
第2のネットワークアドレスが割り当てられたデバイスに第2のメッセージを送信することであって、第2のメッセージは、計算インスタンスを起動するための要求の少なくとも一部分を含み、第2のネットワークアドレスは、顧客データセンターで確立された第2のネットワークの一部であり、デバイスは、顧客データセンター内に確立された第3のネットワークに結合されたターゲットサーバに、第2のメッセージを送信するように構成されており、第3のネットワークは、ネットワークアドレスの範囲の少なくとも一部分を使用し、ターゲットサーバは、第1のネットワークアドレスが割り当てられる、送信することと、を行うように構成されている、システム。
17.第2のメッセージは、(a)VPNトンネル、または(b)顧客データセンターとサービスプロバイダ環境との間の専用の物理リンクのうちの1つ以上を介して、第2のネットワークアドレスに送信される、条項16に記載のシステム。
18.計算インスタンスは、ベアメタル計算インスタンスを含む、条項16~17に記載のシステム。
19.アウトバウンドコマンドコミュニケータは、
第2のネットワークアドレスに送信される第2のメッセージに、ターゲットサーバによって認証され得るセキュリティオブジェクトを含めるように、さらに構成されている、条項16~18のいずれか1つに記載のシステム。
20.第2のネットワークアドレスが割り当てられたデバイスは、第2のネットワークおよび第3のネットワークの両方に結合されており、デバイスは、
第2のメッセージのデスティネーションを第1のネットワークアドレスにさせることと、
第2のメッセージをターゲットサーバに送信することと、を行うようにさらに構成されている、条項16~19のいずれか1つに記載のシステム。
21.システムであって、
ネットワークマネージャと、
プロバイダネットワークの仮想化コンピューティングサービスの拡張リソースグループの1つ以上のコンピューティングデバイスであって、拡張リソースグループは、耐タンパー性ストレージデバイスおよびトラステッドプラットフォームモジュールを含む仮想化ホストを少なくとも含み、仮想化ホストは、プロバイダネットワークの外部のプレミスに配置され、プレミスで構成された第1のネットワークは、ネットワークアドレスの第1の範囲を含み、プロバイダネットワークの1つ以上のデータセンターに配置された仮想化コンピューティングサービスの仮想化ホストは、ネットワークアドレスの第2の範囲からそれぞれのネットワークアドレスが割り当てられる、1つ以上のコンピューティングデバイスと、を含み、
ネットワークマネージャは、命令を含み、命令は、1つ以上のプロセッサ上またはそれらにわたって実行されると、ネットワークマネージャに、
安全なネットワークチャネルを介して、拡張リソースグループに関連付けられたアウトバウンドコマンドコミュニケータから送信された、仮想マシン起動コマンドを含むメッセージを取得することであって、仮想マシン起動コマンドは、仮想化されたコンピューティングサービスのパブリックアプリケーションプログラミングインターフェースを介して提出された要求に応答して生成され、ネットワークマネージャに割り当てられたメッセージのデスティネーションアドレスは、ネットワークアドレスの第1の範囲内にある、取得することと、
仮想マシン起動コマンドをネットワークマネージャから拡張リソースグループの仮想化ホストに送信することであって、仮想化ホストでの仮想マシン起動コマンドの処理は、仮想化ホストでの仮想マシンのインスタンス化をもたらし、拡張リソースグループで確立されたプライベートネットワーク内で、仮想化ホストは、第2の範囲のアドレスが割り当てられる、送信することと、を行わせる、システム。
22.ネットワークマネージャの少なくとも一部分は、(a)拡張リソースグループの特定のデバイスでの電源投入信号、または(b)拡張リソースグループの特定のデバイスがインターネットにアクセスしているという表示のうちの1つ以上に応答して開始される、条項21に記載のシステム。
23.ネットワークマネージャは、命令をさらに含み、命令は、1つ以上のプロセッサ上またはそれらにわたって実行されると、ネットワークマネージャに、
仮想マシンで生成されたネットワークパケットに対して1つ以上の変換操作を実行することと、
ネットワークパケットの変換されたバージョンをネットワークエンドポイントに送信することであって、ネットワークエンドポイントは、(a)プロバイダネットワークの一部ではなく、および(b)拡張リソースグループの一部ではない、送信することと、を行わせる、条項21~22のいずれか1つに記載のシステム。
24.ネットワークマネージャは、命令をさらに含み、命令は、1つ以上のプロセッサ上またはそれらにわたって実行されると、ネットワークマネージャに、
仮想化ホストでブートストラップ操作を開始させる、条項21~23のいずれか1つに記載のシステム。
25.ネットワークマネージャの少なくとも一部分は、拡張リソースグループの周辺カードに実装される、条項21~24のいずれか1つに記載のシステム。
26.方法であって、
プロバイダネットワークの拡張リソースグループのネットワークマネージャで、拡張リソースグループのホストで計算インスタンスを起動するためのコマンドを含むメッセージを取得することであって、ホストは、プロバイダネットワークの外部のプレミスに配置され、メッセージは、プレミスで構成された第1のネットワークの第1のアドレス範囲内のアドレスでネットワークマネージャによって取得される、取得することと、
ネットワークマネージャからホストにコマンドを送信して、ホストに計算インスタンスをインスタンス化させることであって、プレミスで構成された第2のネットワーク内で、ホストは、第2のアドレス範囲内のアドレスが割り当てられ、第2のアドレス範囲の1つ以上のアドレスは、プロバイダネットワークのコントロールプレーンによってプロバイダネットワーク内のそれぞれのホストに割り当てられる、送信することと、を含む方法。
27.
計算インスタンスをインスタンス化する前に、ホストのセキュリティモジュールを使用して、ホストが受け入れ基準を満たしていることを確認することをさらに含む、条項26に記載の方法。
28.ホストは、ストレージデバイスを含み、方法は、
計算インスタンスの状態情報の暗号化されたバージョンをストレージデバイスに記憶することであって、暗号化されたバージョンの復号化は、ストレージデバイスがホストに物理的に接続されることを必要とする、記憶することをさらに含む、条項26~27のいずれか1つに記載の方法。
29.拡張リソースグループは、計算インスタンスイメージキャッシュを含み、計算インスタンスをインスタンス化することは、
キャッシュから取得した特定の計算インスタンスイメージを利用することを含む、条項26~28のいずれか1つに記載の方法。
30.
拡張リソースグループ内の計算インスタンスの起動を要求することを許可された1つ以上のエンティティの表示を取得することと、
計算インスタンスをインスタンス化する前に、計算インスタンスが1つ以上のエンティティのうちのエンティティによって要求されたことを確認することと、をさらに含む、条項26~29のいずれか1つに記載の方法。
31.ネットワークマネージャの少なくとも一部分は、周辺インターフェースを介して拡張リソースグループのホストに接続されたカードに実装される、条項26~30のいずれか1つに記載の方法。
32.ホストは、拡張リソースグループのラック内に組み込まれ、ネットワークマネージャの少なくとも一部分は、ラック内に組み込まれていない1つ以上のデバイスに実装される、条項26~31のいずれか1つに記載の方法。
33.1つ以上のトリガ信号に応答して、ネットワークマネージャをインスタンス化することと、
ネットワークマネージャによって、プロバイダネットワークの少なくとも一部分と通信するための安全なネットワークチャネルの構成を開始することと、をさらに含む、条項26~32のいずれか1つに記載の方法。
34.1つ以上のトリガ信号は、(a)拡張リソースグループの特定のデバイスでの電源投入信号、または(b)拡張リソースグループの特定のデバイスがインターネットにアクセスしているという表示のうちの1つ以上を含む、条項33に記載の方法。
35.
ネットワークマネージャによって、ホストでブートストラップ操作を開始することをさらに含む、条項26~33のいずれか1つに記載の方法。
36.システムであって、
プロバイダネットワークの拡張リソースグループの1つ以上のコンピューティングデバイスであって、拡張リソースグループの少なくともホストは、プロバイダネットワークの外部のプレミスに配置され、
1つ以上のコンピューティングデバイスは、命令を含み、命令は、1つ以上のプロセッサ上またはそれらにわたって実行されると、1つ以上のコンピューティングデバイスに、
拡張リソースグループのネットワークマネージャで、計算インスタンスを起動するためのコマンドを含むメッセージを取得することであって、メッセージは、プレミスで構成された第1のネットワークの第1のアドレス範囲内のアドレスで、ネットワークマネージャによって取得される、取得することと、
ネットワークマネージャからホストにコマンドを送信することであって、コマンドの処理は、ホストでの計算インスタンスのインスタンス化をもたらし、プレミスで構成された第2のネットワーク内で、ホストは、第2のアドレス範囲内のアドレスが割り当てられ、第2のアドレス範囲の1つ以上のアドレスは、プロバイダネットワークのコントロールプレーンによって、プロバイダネットワーク内のそれぞれのホストに割り当てられる、送信することと、を行わせる、1つ以上のコンピューティングデバイスを含む、システム。
37.1つ以上のコンピューティングデバイスは、命令をさらに含み、命令は、1つ以上のプロセッサ上またはそれらにわたって実行されると、1つ以上のコンピューティングデバイスに、
計算インスタンスのインスタンス化の前に、ホストのセキュリティモジュールを使用して、ホストが受け入れ基準を満たしていることを確認させる、条項36に記載のシステム。
38.1つ以上のコンピューティングデバイスは、命令をさらに含み、命令は、1つ以上のプロセッサ上またはそれらにわたって実行されると、1つ以上のコンピューティングデバイスに、
計算インスタンスの状態情報の暗号化されたバージョンをストレージデバイスに記憶することであって、暗号化されたバージョンの復号化は、ストレージデバイスがホストに物理的に接続されることを必要とする、記憶することをさらに行わせる、条項36~37のいずれか1つに記載のシステム。
39.拡張リソースグループは、計算インスタンスイメージキャッシュを含み、計算インスタンスをインスタンス化することは、
キャッシュから取得した特定の計算インスタンスイメージを利用することを含む、条項36~38のいずれか1つに記載のシステム。
40.メッセージは、(a)プレミスをプロバイダネットワークに接続する専用の物理リンク、または(b)仮想プライベートネットワーク(VPN)トンネルのうちの1つ以上を介して、ネットワークマネージャで取得される、条項36~39のいずれか1つに記載のシステム。
結論
様々な実施形態は、コンピュータアクセス可能媒体上で前述の説明に従って実装された命令および/またはデータを受信、送信、または記憶することをさらに含むことができる。一般的に言えば、コンピュータアクセス可能媒体は、磁気または光媒体、例えば、ディスクまたはDVD/CD-ROM、RAM(例えば、SDRAM、DDR、RDRAM、SRAMなど)、ROMなどの揮発性または不揮発性媒体などのストレージ媒体またはメモリ媒体、ならびにネットワークおよび/または無線リンクなどの通信媒体を介して伝達される、電気信号、電磁気信号、またはデジタル信号などの伝送媒体または信号を含むことができる。
図面に例解され、本明細書に記載されるような様々な方法は、方法の例示的な実施形態を表す。方法は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実装することができる。方法の順序は、変更されてもよく、様々な要素は、追加、並べ替え、結合、省略、修正などされてもよい。
本開示の利益を有する当業者に明らかであるように、様々な修正および変更がなされ得る。そのような修正および変更をすべて包含し、したがって上記の説明を限定的な意味ではなく例示的な意味で見なすことを意図する。

Claims (15)

  1. システムであって、
    プロバイダネットワークの仮想化コンピューティングサービスの1つ以上のコンピューティングデバイスであって、前記プロバイダネットワークは、1つ以上のデータセンターを含み、前記1つ以上のデータセンターに配置された前記仮想化コンピューティングサービスの仮想化ホストのセットは、第1のネットワークアドレス範囲内のそれぞれのネットワークアドレスが割り当てられ、
    前記1つ以上のコンピューティングデバイスは、命令を含み、前記命令は、1つ以上のプロセッサ上またはそれらにわたって実行されると、前記1つ以上のコンピューティングデバイスに、
    前記仮想化コンピューティングサービスの、および拡張リソースグループに関連付けられたアウトバウンドコマンドコミュニケータで仮想マシン起動コマンドを取得することであって、前記アウトバウンドコマンドコミュニケータは、前記第1のネットワークアドレス範囲内の第1のネットワークアドレスが割り当てられ、前記拡張リソースグループは、前記1つ以上のデータセンターの外部のプレミスに配置された1つ以上の拡張仮想化ホストを含み、前記仮想マシン起動コマンドは、前記第1のネットワークアドレスの表示を含む、取得することと、
    安全なネットワークチャネルを介して、前記拡張リソースグループに、前記仮想マシン起動コマンドを示し、前記第1のネットワークアドレスを示すメッセージを送信することであって、前記メッセージのデスティネーションアドレスは、前記1つ以上のデータセンターの外部の前記プレミスで使用されている第2のネットワークアドレス範囲の一部であり、ターゲット仮想化ホストにも、前記拡張リソースグループで確立されたプライベートネットワーク内の前記第1のネットワークアドレスが割り当てられ、前記ターゲット仮想化ホストでの前記仮想マシン起動コマンドの処理は、前記ターゲット仮想化ホストでの仮想マシンのインスタンス化をもたらす、送信することと、を行わせる、1つ以上のコンピューティングデバイスを含む、システム。
  2. 前記安全なネットワークチャネルは、前記1つ以上のデータセンターと前記拡張リソースグループとの間に確立され、前記安全なネットワークチャネルは、(a)VPNトンネル、または(b)前記プレミスと前記プロバイダネットワークとの間の専用の物理リンクのうちの1つ以上を含む、請求項1に記載のシステム。
  3. 前記1つ以上のコンピューティングデバイスは、命令をさらに含み、前記命令は、前記1つ以上のプロセッサ上またはそれらにわたって実行されると、前記1つ以上のコンピューティングデバイスに、
    前記拡張リソースグループを確立するための要求がプログラムインターフェースを介して提出されていることを判定することであって、前記アウトバウンドコマンドコミュニケータは、前記拡張リソースグループを確立するための前記要求に応答して確立される、判定することをさらに行わせる、請求項1に記載のシステム。
  4. 前記1つ以上のコンピューティングデバイスは、命令をさらに含み、前記命令は、前記1つ以上のプロセッサ上またはそれらにわたって実行されると、前記1つ以上のコンピューティングデバイスに、
    前記安全なネットワークチャネルを確立するための要求が受信されることを判定する前に、前記アウトバウンドコマンドコミュニケータをインスタンス化することをさらに行わせる、請求項1に記載のシステム。
  5. 前記アウトバウンドコマンドコミュニケータは、別の仮想化ホスト上の仮想マシンで実行され、前記別の仮想化ホスト以外の仮想化ホストには、前記第1のネットワークアドレス範囲内の第2のネットワークアドレスが割り当てられる、請求項1に記載のシステム。
  6. 方法であって、
    プロバイダネットワークの1つ以上のコンピューティングデバイスによって、
    前記プロバイダネットワークのコンピューティングサービスのコントロールプレーンで、計算インスタンスを確立するための要求を受信することと、
    前記プロバイダネットワークの第1のアウトバウンドコマンドコミュニケータで、前記要求に応答して前記計算インスタンスがターゲットホストで確立されるという表示を取得することであって、前記ターゲットホストは、クライアントプレミスに配置された前記プロバイダネットワークの第1の拡張リソースグループの一部であり、第1のネットワークアドレスは、前記コントロールプレーンでの前記ターゲットホストに関連付けられ、前記第1のアウトバウンドコマンドコミュニケータは、少なくとも前記第1のネットワークアドレスが割り当てられる、取得することと、
    第2のネットワークアドレスをデスティネーションとして示すメッセージを送信することであって、前記第2のネットワークアドレスは、前記クライアントプレミスで確立された第1のネットワークの一部であり、前記メッセージは、前記ターゲットホストで前記計算インスタンスを確立するためのコマンドを含み、前記第1のネットワークアドレスは、前記クライアントプレミスで確立された第2のネットワーク内の前記ターゲットホストに割り当てられ、前記ターゲットホストでの前記コマンドの処理は、前記計算インスタンスの確立をもたらす、送信することと、を実行することを含む、方法。
  7. 前記第1のアウトバウンドコマンドコミュニケータで取得された、前記計算インスタンスが確立されるという前記表示は、第1のセキュリティアーティファクトを含み、前記方法は、前記プロバイダネットワークの前記1つ以上のコンピューティングデバイスによって、
    前記第2のネットワークアドレスに送信される前記メッセージに、第2のセキュリティアーティファクトを含めることであって、前記第2のセキュリティアーティファクトは、前記第1のアウトバウンドコマンドコミュニケータで生成される、含めることを実行することをさらに含む、請求項6に記載の方法。
  8. 前記プロバイダネットワークの前記1つ以上のコンピューティングデバイスによって、
    前記第1のアウトバウンドコマンドコミュニケータを第1の仮想ネットワークインターフェースおよび第2の仮想ネットワークインターフェースにプログラムで接続することであって、前記第1の仮想ネットワークインターフェースは、前記コントロールプレーンから、前記計算インスタンスが確立されるという前記表示を取得するために使用され、前記第2の仮想ネットワークインターフェースは、前記メッセージが前記第1の拡張リソースグループに送信される安全なネットワークチャネルにアクセスするために使用される、プログラムで接続することを実行することをさらに含む、請求項6に記載の方法。
  9. 前記第1の拡張リソースグループは、前記プロバイダネットワークのコンピューティングサービスの第1のクライアントに代わって確立され、前記アウトバウンドコマンドコミュニケータは、前記コンピューティングサービスの第1の分離仮想ネットワーク内に構成され、前記第1の分離仮想ネットワークは、前記コンピューティングサービスの第2のクライアントに代わって確立された第2の拡張リソースグループと通信するために確立された少なくとも第2のアウトバウンドコマンドコミュニケータを含む、請求項6に記載の方法。
  10. 前記第1の拡張リソースグループは、前記プロバイダネットワークのコンピューティングサービスのクライアントに代わって確立され、前記方法は、前記1つ以上のコンピューティングデバイスによって、
    前記計算インスタンスに、前記クライアントに代わって前記プロバイダネットワーク内に確立された分離仮想ネットワークのネットワークアドレス範囲からネットワークアドレスを割り当てることを実行することをさらに含む、請求項6に記載の方法。
  11. 前記計算インスタンスを確立するための前記要求は、前記プロバイダネットワークのコンピューティングサービスのパブリックアプリケーションプログラミングインターフェースに関連付けられた第1のネットワークパスを介して受信され、前記メッセージは、第2のネットワークパスを介して、前記第2のネットワークアドレスに送信される、請求項6に記載の方法。
  12. システムであって、
    サービスプロバイダ環境の1つ以上のコンピューティングデバイス上で実行されるコントロールプレーンと、
    前記サービスプロバイダ環境の第1のネットワークに結合されたアウトバウンドコマンドコミュニケータであって、前記第1のネットワークは、ネットワークアドレスの範囲を使用し、前記アウトバウンドコマンドコミュニケータは、ネットワークアドレスの前記範囲内の第1のネットワークアドレスが割り当てられ、前記サービスプロバイダ環境の前記第1のネットワークは、計算インスタンスをホストするように構成された複数のサーバを含む、アウトバウンドコマンドコミュニケータと、を含み、
    前記コントロールプレーンは、
    計算インスタンスを起動するための要求を含む第1のメッセージを、前記第1のネットワークアドレスに送信するように構成されており、
    前記アウトバウンドコマンドコミュニケータは、
    前記第1のメッセージを受信することと、
    第2のネットワークアドレスが割り当てられたデバイスに第2のメッセージを送信することであって、前記第2のメッセージは、前記計算インスタンスを起動するための前記要求の少なくとも一部分を含み、前記第2のネットワークアドレスは、顧客データセンターで確立された第2のネットワークの一部であり、前記デバイスは、前記顧客データセンター内に確立された第3のネットワークに結合されたターゲットサーバに、前記第2のメッセージを送信するように構成されており、前記第3のネットワークは、ネットワークアドレスの前記範囲の少なくとも一部分を使用し、前記ターゲットサーバは、前記第1のネットワークアドレスが割り当てられる、送信することと、を行うように構成されている、システム。
  13. 前記計算インスタンスは、ベアメタル計算インスタンスを含む、請求項12に記載のシステム。
  14. 前記アウトバウンドコマンドコミュニケータは、
    前記第2のネットワークアドレスに送信される前記第2のメッセージに、前記ターゲットサーバによって認証され得るセキュリティオブジェクトを含めるように、さらに構成されている、請求項12に記載のシステム。
  15. 前記第2のネットワークアドレスが割り当てられた前記デバイスは、前記第2のネットワークおよび前記第3のネットワークの両方に結合されており、前記デバイスは、
    前記第2のメッセージのデスティネーションを前記第1のネットワークアドレスにさせることと、
    前記第2のメッセージを前記ターゲットサーバに送信することと、を行うようにさらに構成されている、請求項12に記載のシステム。
JP2021526284A 2018-11-20 2019-11-19 プロバイダネットワークサービス拡張 Active JP7212158B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023002875A JP2023040221A (ja) 2018-11-20 2023-01-12 プロバイダネットワークサービス拡張

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/196,736 US10833949B2 (en) 2018-11-20 2018-11-20 Extension resource groups of provider network services
US16/196,723 US20200159555A1 (en) 2018-11-20 2018-11-20 Provider network service extensions
US16/196,723 2018-11-20
US16/196,736 2018-11-20
PCT/US2019/062243 WO2020106740A1 (en) 2018-11-20 2019-11-19 Provider network service extensions

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023002875A Division JP2023040221A (ja) 2018-11-20 2023-01-12 プロバイダネットワークサービス拡張

Publications (2)

Publication Number Publication Date
JP2022507398A JP2022507398A (ja) 2022-01-18
JP7212158B2 true JP7212158B2 (ja) 2023-01-24

Family

ID=68835383

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021526284A Active JP7212158B2 (ja) 2018-11-20 2019-11-19 プロバイダネットワークサービス拡張
JP2023002875A Pending JP2023040221A (ja) 2018-11-20 2023-01-12 プロバイダネットワークサービス拡張

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023002875A Pending JP2023040221A (ja) 2018-11-20 2023-01-12 プロバイダネットワークサービス拡張

Country Status (5)

Country Link
EP (1) EP3884628A1 (ja)
JP (2) JP7212158B2 (ja)
KR (1) KR102441860B1 (ja)
CN (2) CN113039757B (ja)
WO (1) WO2020106740A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130287026A1 (en) 2012-04-13 2013-10-31 Nicira Inc. Extension of logical networks across layer 3 virtual private networks
JP2016536721A (ja) 2013-09-23 2016-11-24 アマゾン・テクノロジーズ・インコーポレーテッド プロバイダ定義インターフェイスを介したクライアント構内リソース制御

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10164304B4 (de) * 2001-12-28 2004-05-13 Wacker Construction Equipment Ag Kabelrolle mit Frequenzumformereinrichtung
US8532108B2 (en) * 2009-09-30 2013-09-10 Alcatel Lucent Layer 2 seamless site extension of enterprises in cloud computing
EP4053699A1 (en) * 2013-01-22 2022-09-07 Amazon Technologies, Inc. Instance host configuration
US9553809B2 (en) * 2013-04-16 2017-01-24 Amazon Technologies, Inc. Asymmetric packet flow in a distributed load balancer
US9485323B1 (en) * 2013-09-23 2016-11-01 Amazon Technologies, Inc. Managing pooled client-premise resources via provider-defined interfaces
US9424067B2 (en) * 2014-12-11 2016-08-23 Amazon Technologies, Inc. Managing virtual machine instances utilizing an offload device
US10037221B2 (en) * 2015-12-28 2018-07-31 Amazon Technologies, Inc. Management of virtual desktop instance pools

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130287026A1 (en) 2012-04-13 2013-10-31 Nicira Inc. Extension of logical networks across layer 3 virtual private networks
JP2016536721A (ja) 2013-09-23 2016-11-24 アマゾン・テクノロジーズ・インコーポレーテッド プロバイダ定義インターフェイスを介したクライアント構内リソース制御

Also Published As

Publication number Publication date
KR102441860B1 (ko) 2022-09-08
JP2022507398A (ja) 2022-01-18
EP3884628A1 (en) 2021-09-29
CN113039757A (zh) 2021-06-25
CN115185699A (zh) 2022-10-14
CN113039757B (zh) 2022-08-30
JP2023040221A (ja) 2023-03-22
KR20210072816A (ko) 2021-06-17
WO2020106740A1 (en) 2020-05-28

Similar Documents

Publication Publication Date Title
US11469964B2 (en) Extension resource groups of provider network services
US11500670B2 (en) Computing service with configurable virtualization control levels and accelerated launches
US11088944B2 (en) Serverless packet processing service with isolated virtual network integration
US11372802B2 (en) Virtual RDMA switching for containerized applications
JP6771650B2 (ja) クラウドコンピューティングシステムにおいて仮想マシンが物理サーバにアクセスするための方法、装置、およびシステム
US20200159555A1 (en) Provider network service extensions
US11563799B2 (en) Peripheral device enabling virtualized computing service extensions
JP2017520823A (ja) エンタープライズ・ベース・ネットワーク及びマルチテナント・ネットワーク間でのアプリケーションの移行
JP2016524760A (ja) クラウドコンピューティング環境における分散ロック管理
US11520530B2 (en) Peripheral device for configuring compute instances at client-selected servers
US9398121B1 (en) Selecting among virtual networking protocols
US20160057171A1 (en) Secure communication channel using a blade server
Khajehei Role of virtualization in cloud computing
US11296981B2 (en) Serverless packet processing service with configurable exception paths
CN114365087A (zh) 用于在客户端选择的服务器上配置计算实例的***设备
JP7212158B2 (ja) プロバイダネットワークサービス拡張
US11363113B1 (en) Dynamic micro-region formation for service provider network independent edge locations
US11297065B2 (en) Technology for computing resource liaison
US10824476B1 (en) Multi-homed computing instance processes
US10848418B1 (en) Packet processing service extensions at remote premises
US11824943B1 (en) Managed connectivity between cloud service edge locations used for latency-sensitive distributed applications
US20230171189A1 (en) Virtual network interfaces for managed layer-2 connectivity at computing service extension locations
CN118266195A (en) Virtual network interface for computing managed layer 2 connections at a service extension location

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220803

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: 20221213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230112

R150 Certificate of patent or registration of utility model

Ref document number: 7212158

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150