CN115185699A - 提供商网络服务扩展 - Google Patents

提供商网络服务扩展 Download PDF

Info

Publication number
CN115185699A
CN115185699A CN202210996225.1A CN202210996225A CN115185699A CN 115185699 A CN115185699 A CN 115185699A CN 202210996225 A CN202210996225 A CN 202210996225A CN 115185699 A CN115185699 A CN 115185699A
Authority
CN
China
Prior art keywords
network
erg
host
vcs
command
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.)
Pending
Application number
CN202210996225.1A
Other languages
English (en)
Inventor
A·N·利果里
M·S·威尔森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN115185699A publication Critical patent/CN115185699A/zh
Pending legal-status Critical Current

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
    • 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/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
    • 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
    • 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/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]

Abstract

本公开涉及提供商网络服务扩展。在提供商网络的控制平面处接收启动计算实例的请求。在出站命令通信器处获得在客户端场所的目标主机处将建立计算实例的指示。第一地址与所述控制平面处的所述目标主机相关联,并且还被分配给所述通信器。传输将所述客户端场所的第一网络内的第二地址作为目的地的消息。所述消息包括在所述目标主机处建立所述计算实例的命令。所述第一地址被分配给所述客户端场所的第二网络内的所述目标主机。在所述目标主机处对所述命令的处理导致建立计算实例。

Description

提供商网络服务扩展
本申请是申请号为201980075042.2、申请日为2019年11月19日、发明名称为“提供商网络服务扩展”的发明专利申请的分案申请。
技术领域
本公开涉及提供商网络服务扩展。
背景技术
许多公司和其他组织操作互连许多计算系统以支持它们的操作的计算机网络,诸如计算系统共处一地(例如,作为本地网络的一部分)或替代地位于多个不同的地理位置(例如,经由一个或多个私有或公共中间网络连接)。例如,容纳大量互连计算系统的数据中心已经变得司空见惯,如由单个组织和代表单个组织运营的专用数据中心,以及由作为企业的实体运营以向客户提供计算资源的公共数据中心。一些公共数据中心运营商为各种客户所拥有的硬件提供网络接入、电力和安全安装设施,而其他公共数据中心运营商提供也包括可供其客户使用的硬件资源的“全方位服务(full service)”设施。
用于商品硬件的虚拟化技术的出现已经在管理具有不同需求的许多客户的大规模计算资源方面提供了益处,从而允许多个客户有效且安全地共享各种计算资源。举例来说,虚拟化技术可以通过向每一用户提供由单个虚拟化主机托管的一个或多个“客人”虚拟机来允许单个物理虚拟化主机在多个用户之间共享。每个这样的虚拟机可以表示充当不同逻辑计算系统的软件模拟,所述软件模拟向用户提供他们是给定硬件计算资源的唯一运营商的假象,同时还在各种虚拟机之间提供应用隔离和安全性。具现化同一主机上的若干不同虚拟机也可以帮助增加数据中心处的总体硬件利用率水平,从而带来更高的投资回报率。
响应于客户端请求,可在一些云计算提供商网络的数据中心处设置针对不同类型的应用(诸如计算密集型应用、存储器密集型应用等)优化的各种虚拟机类型。此外,还可以为提供商网络客户端提供依赖于此类提供商网络的虚拟计算服务诸如使用虚拟计算服务的虚拟机实例化数据库实例的一些数据库服务的更高级别的服务。然而,对于一些类型的应用,诸如处理必须存储在提供商网络外部的客户场所处的大量数据的应用,例如由于延迟相关的原因和/或其他原因,限于使用位于提供商网络的数据中心处的硬件来提供虚拟化资源的服务可能不是最佳的。
附图说明
图1示出了根据至少一些实施方案的示例性系统环境,其中可以使用位于提供商网络外部的场所处的资源来设置提供商网络的虚拟化计算服务的扩展资源组。
图2示出了根据至少一些实施方案的可包括在虚拟化计算服务的扩展资源组中的增强安全性的虚拟化主机的示例性概述。
图3示出了根据至少一些实施方案的虚拟化主机的卸载的虚拟化管理组件卡的示例性元素。
图4示出了根据至少一些实施方案的虚拟网络接口的示例性属性,在至少一些实施方案中,所述虚拟网络接口可以编程方式附接到与扩展资源组相关联的出站命令通信器。
图5示出了根据至少一些实施方案的可用于将在虚拟化计算服务的控制平面处生成的命令传输到扩展资源组的示例性路径。
图6示出了根据至少一些实施方案的扩展资源组网络管理器的示例性元素。
图7示出了根据至少一些实施方案的可在虚拟化计算服务处支持的示例性系列的虚拟机和扩展资源组。
图8示出了根据至少一些实施方案的涉及虚拟化计算服务的扩展资源组的示例性编程交互。
图9示出了根据至少一些实施方案的与在扩展资源组处启动虚拟机相关联的示例性工作流。
图10示出了根据至少一些实施方案的在虚拟化计算服务的扩展资源组处使用附加的提供商网络服务的示例。
图11是根据至少一些实施方案的示出可在提供商网络处执行来建立扩展资源组并且使得能够在扩展资源组处设置虚拟机的操作的各方面的流程图。
图12是根据至少一些实施方案的示出可在虚拟化计算服务的扩展资源组处执行的操作的各方面的流程图。
图13是示出可在至少一些实施方案中使用的示例性计算装置的框图。
虽然本文通过若干实施方案和说明性附图的示例来描述了实施方案,但是本领域的技术人员将认识到,实施方案不限于所描述的实施方案或附图。应当理解,附图及其详细描述并不旨在将实施方案限于所公开的特定形式,而是相反,旨在覆盖落入由所附权利要求书限定的精神和范围内的所有修改、等同物和替代方案。本文所用的标题仅用于组织目的,并不意味着用于限制说明书或权利要求书的范围。如在整个本申请中所使用的,字词“可以”以允许的意义使用(即意指具有可能性),而不是强制意义(即意指必须)。类似地,字词“包括”(“include”、“including”和“includes”)意味着包括但不限于。当在权利要求中使用时,术语“或”用作包含性的而不是排他性的或。例如,短语“x、y或z中的至少一个”意指x、y和z中的任何一个,以及它们的任何组合。
具体实施方式
描述了用于将提供商网络的虚拟化计算服务的操作安全地扩展到提供商网络的数据中心外部的位置的方法和设备的各种实施方案。在各种实施方案中,由实体诸如公司或公共部门组织设置来提供经由互联网和/或其他网络可访问到一组分布式客户端的一个或多个服务(诸如各种类型的多租户和/或单租户基于云的计算或存储服务)的网络可被称为提供商网络或服务提供商环境。使用所描述的技术,在至少一些实施方案中,虚拟化计算服务的客户端可能能够利用位于客户数据中心、现场位置(例如,在操作电信公司的客户端的情况下,在蜂窝电话塔附近)的硬件装置或用于托管具有与可在提供商网络数据中心处设置的虚拟机中的至少一些类型的虚拟机相同的特征和能力的虚拟机的主机托管设施。
在至少一些实施方案中,位于提供商网络外部的硬件装置可以例如由提供商网络运营商预先配置,用硬件、软件和/或固件元素的适当组合来支持各种类别的虚拟机,并且以支持与相同位置处的其他本地装置的低延迟通信的方式进行操作,不会损害客户数据和应用程序的安全性,不会损害提供商网络本身的安全性,也不会损害提供商网络的任何其他客户的安全性。在至少一些实施方案中,术语“扩展资源组”(ERG)可用于指位于提供商网络外部的场所以使得能够在该场所处建立和利用虚拟机的资源的集合(例如,硬件、软件、固件、配置元数据等)。在各种实施方案中,建立扩展资源组的场所(例如,客户数据中心、现场位置等)可被称为客户端场所。实际上,从虚拟化计算服务(VCS)的客户的角度来看,在各种实施方案中,ERG可表示VCS的能力的本地扩展,可以在可以访问互联网并且可以(例如,相对于物理空间、电力等)容纳一组硬件装置的任何所需物理位置进行设置。从VCS本身的角度来看,可以认为ERG可以虚拟地与核心VCS基础结构位于相同的提供商网络数据中心中,而在物理上位于客户所选择的场所中。在一些实施方案中,除了各种类别的标准化或可定制的虚拟机之外或代替各种类别的标准化或可定制的虚拟机,可借助于提供商网络的一个或多个计算服务来设置和管理其他类型的程序执行环境,诸如裸机实例、软件容器等。在一个实施方案中,由VCS支持的裸机实例可包括操作系统的直接控制正在使用的主机的至少一部分硬件,而无需利用虚拟化的各种过程(但在某些情况下可以虚拟化硬件功能性的小子集)。在此类实施方案中,可能不需要专用于虚拟化管理的虚拟机管理程序。在一些实施方案中,裸机实例本身可包括托管虚拟机的功能性。在各种实施方案中,可以使用术语“计算实例”来统称可以使用提供商网络数据中心处的资源以及/或者使用ERG,代表提供商网络客户端进行设置和管理的所有不同种类的执行环境(包括虚拟机、裸机实例、软件容器等)。需注意,虽然在以下大部分描述中,虚拟机被讨论为计算实例的主要示例,但在各种实施方案中,所描述的用于在ERG处设置和使用虚拟机的技术可以同样成功地应用于其他类型的计算实例。
在各种实施方案中,虚拟化计算服务(VCS)的资源可以大致分为两类:控制平面资源和数据平面资源。控制平面资源可主要用于管理目的,诸如为各种客户建立隔离虚拟网络、监视资源使用情况和健康状况、标识将在上面启动所请求的虚拟机的特定虚拟化主机或服务器、根据需要提供附加硬件,等等。数据平面资源可主要用于非管理任务,诸如执行客户端应用程序,存储和传输客户端应用程序数据,等等。在各种实施方案中,当在客户所选择的位置设置ERG时,可以由位于提供商网络的数据中心中的VCS的控制平面组件来管理ERG的资源。因此,在至少一些实施方案中,在给定的场所设置和使用ERG可能不需要在本地复制VCS的控制平面能力;相反,安全的网络连接可被设置用于将控制平面命令从提供商网络的数据中心传输到ERG,并且ERG的资源可以主要用于数据平面操作。
在至少一些实施方案中,希望在特定位置开始使用ERG的VCS客户C1(诸如特定的客户数据中心CDC1)可以通过参与类似于以下所述工作流来进行。C1可以首先从一组物理ERG配置类型(例如,包括标准尺寸的半机架式服务器的“小型”ERG配置,包括完整机架式服务器的“中型”ERG配置,包括两个完整机架式服务器的“大型”ERG配置等)中任选地选择将在所需位置或场所处设置的特定配置。在默认情况下,如果C1不希望明确地选择ERG配置类型,则在一些实施方案中可以为客户端选择特定的配置类型(例如“小型”配置),从而进一步减少C1所需的工作量。接下来,可以经由编程接口(例如,基于web的控制台、应用程序编程接口(API)、命令行工具、图形用户界面等)向VCS提交对ERG的请求。在请求被批准之后,ERG的(预先安装有适当的软件/固件的)硬件可以被传送到所需位置,连接到电源并且连接到互联网。
在至少一些实施方案中,可以响应于对一个或多个触发条件的检测(诸如对电力和/或互联网连接的检测),在ERG的服务器的一个或多个服务器处实例化网络管理器。此类ERG网络管理器(ENM)然后可以在一个或多个提供商网络数据中心处发起(或至少参与)与一个或多个VCS组件(例如,包括控制平面元素)的安全网络连接的自动建立,而例如不需要来自C1的附加的配置指导。在ERG(在CDC1处)和VCS组件(在一个或多个提供商网络数据中心处)之间建立连接后,在各种实施方案中,C1可以发出实例化使用ERG资源的虚拟机的命令(并且/或者使用虚拟机来执行其他操作),方式类似于相对于仅使用提供商网络资源的虚拟机发出此类命令的方式。从C1的角度来看,现在可以使用CDC1内的本地资源(如果需要,还可以使用位于提供商网络数据中心的资源)无缝地利用VCS的功能性。在各种实施方案中,在ERG处设置的虚拟机(VM)可以(例如,在可执行地址转换和/或其他与封装协议相关的处理的ENM的帮助下)与位于CDC1中的非VCS装置通信,以及根据需要与在提供商网络数据中心中设置的其他VM通信。在一些实施方案中,即使在与提供商网络数据中心的连接暂时中断的时间段期间,在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地址,设置管理入站和出站流量的安全规则,等等。至少在一些实施方案中,在默认情况下,在一个IVN中设置的一组私有网络地址从另一个IVN(或更一般地,从IVN外部)可能无法访问。在至少一些实施方案中,用于将VCS扩展到非提供商网络场所的一种安全机制可涉及(使用提供商网络数据中心处的资源)设置包括出站命令通信器(OCC)实例池的一个或多个IVN。在各种实施方案中,可以保持在逻辑上(和/或物理上)与VCS控制平面的服务器和装置分开的此类通信器可用于使用安全联网通道将管理命令从VCS控制平面传输到ERG。在各种实施方案中,OCC也可以被配置为确保管理消息无法经由安全联网通道从ERG被引导回控制平面,从而防止在任何给定客户的ERG处发起可能影响其他客户的管理操作。在至少一些实施方案中,各个OCC实例可包括虚拟机,其中一个或多个虚拟网络接口附接到该虚拟机,如下文进一步详细讨论的。在各种实施方案中,虚拟网络接口(VNI)可包括可通过编程方式附加到虚拟机或与虚拟机相关联的一组联网属性,包括公共和/或私有IP(互联网协议)地址、安全设置等。下面提供了可以利用OCC实例、IVN和VNI来保护经由ERG提供的虚拟化计算能力的方式的详细信息。
根据一些实施方案,系统可包括提供商网络的虚拟化计算服务(VCS)的一个或多个计算装置。提供商网络可包括一个或多个数据中心。计算装置可包括指令,所述指令在处理器上执行时使计算装置在第一隔离虚拟网络(IVN)内实例化与扩展资源组(ERG)相关联的出站命令通信器(OCC)。在一些实施方案中,ERG可包括位于提供商网络的一个或多个数据中心外部的第一场所处的第一虚拟化主机。在各种实施方案中,OCC可用作将管理命令安全地转发到ERG的中介,而不允许从ERG提交命令。例如,配置设置可防止来自ERG的至少某些类型的网络数据分组经由OCC传输到VCS的控制平面。指令在被执行时还可以使计算装置在OCC处获得在(a)第二隔离虚拟网络的包括提供商网络的一个或多个数据中心处的资源的一部分,以及(b)位于提供商网络外部的第一场所的一个或多个资源之间建立的安全网络通道(例如,VPN或虚拟私有网络隧道或连接,或者流量通过专用物理链路流动的连接)的指示。例如,可在ERG网络管理器和提供商网络的数据中心内的客户IVN之间建立此类安全联网通道。
在各种实施方案中,在OCC处可获得或确定虚拟机启动命令(响应于来自VCS客户端的程序化请求而生成)。在至少一些实施方案中,可经由不包括安全网络通道的路径在VCS的控制平面处从客户端接收来自客户端的程序化请求,例如,可在基于web的控制台处提交命令,并且经由与客户端相对于提供商网络数据中心内设置的虚拟机提交的管理命令所使用的路径相同类型的路径进行传输。在各种实施方案中,指令在被执行时可以使计算装置经由安全网络通道将虚拟机启动命令的表示从第一OCC传输到扩展资源组。在至少一些实施方案中,在第一虚拟化主机处的表示的处理可以至少部分地导致在第一虚拟化主机处的虚拟机的实例化。由于配置设置将命令流限制为仅从VCS控制平面到ERG的出站方向,因此在各种实施方案中,可以增强VCS及其客户的安全性,因为不能从ERG提交任何可能影响VCS数据中心或其他ERG处的操作的命令。除了虚拟机启动命令之外,还可以使用OCC和与ERG建立的安全网络通道,代表客户从VCS控制平面传输其他管理命令(例如,用于在ERG处关闭虚拟机,在ERG处查看或更改虚拟机的属性的命令等)。
在至少一些实施方案中,可在客户端所选择的场所处递送ERG的硬件装备的时间之前设置OCC。例如,在一个实施方案中,在VCS客户经由程序化请求订购ERG的时间与在场所处递送和设置ERG硬件的时间之间可存在延迟,并且接收到建立ERG的程序化请求可触发针对该客户的ERG专门指定的OCC的主动配置或实例化。在一些实施方案中,可针对每个ERG请求生成唯一标识符并且将其存储在可从为ERG指定的OCC访问的元数据条目中;该标识符也可以包括在作为ERG的一部分出售的硬件装置中的一个硬件装置中,使得在VCS和ERG之间建立连接时,ERG可以与正确的OCC匹配。在至少一些实施方案中,ERG处的网络管理器可以发起与VCS的安全网络通道(诸如VPN隧道)的建立,并且可以在建立安全网络通道的请求之前实例化OCC。在一些实施方案中,可以使用提供商网络的数据中心内的虚拟机来实施OCC。
在至少一些实施方案中,在服务提供商环境下的VCS的控制平面可以将特定范围的服务网络地址SAR1用于虚拟化主机(而不管虚拟化主机是位于服务提供商的数据中心内,还是作为客户端场所处设置的ERG的一部分)。在提供商网络数据中心内,由控制平面管理的网络可包括被配置未托管计算实例的多个服务器。使用以下所述的虚拟网络接口(VNI)和/或其他技术,在至少一个实施方案中,由控制平面分配给ERG的目标虚拟化主机H1的地址Addr1也可以被分配给用于将控制平面命令转发给ERG的特定OCC。在此类实施方案中,从控制平面的角度来看,OCC(可以被配置为与服务提供商数据中心处的虚拟化主机位于同一网络内或耦合到该网络)可实际上表示主机H1。使用Addr1作为目的地址,在至少一些实施方案中,可以将包括在ERG处启动计算实例的请求的第一消息从控制平面发送到OCC。
在一些实施方案中,目标ERG的网络管理器(ENM)可以在已经被分配至少第二网络地址Addr2的一个或多个装置(例如,如上所述的硬件卡)处运行。Addr2可以为例如在客户数据中心或其他客户端场所处建立的第一网络内的地址,该地址将客户端地址范围CAR1用于其装置。响应于在Addr1处接收到来自控制平面的第一消息,在各种实施方案中,OCC可以准备第二消息,该第二消息包括启动计算实例的请求的至少一部分,并且将该第二消息发送到以Addr2作为目的地址的ENM。在接收到第二消息时,运行ENM的装置可将(例如,指示将启动计算实例的)第二消息的至少一部分转发到目标虚拟化主机H1。在一些实施方案中,可在客户端场所(例如,客户数据中心)建立至少两个网络:使用地址范围CAR1的第一网络,以及第二网络(该第二网络可以为由ENM设置的私有网络),其中各种主机/服务器诸如H1被分配来自至少SAR1的子范围(控制平面用于虚拟化主机的地址范围)的地址。在此类实施方案中,可以向目标虚拟化主机H1分配与分配给OCC的地址Addr1相同的地址,并且ENM可以使用Addr1作为目的地址向目标虚拟化主机发送启动消息。实际上,最初由控制平面引导到目标地址Addr1,但可能已经使用一个或多个其他地址作为目的地沿路径传输到ERG的启动计算实例的命令/请求可以被再次发送到ERG内的目的地址Addr1;因此,在一些实施方案中,至少两个地址转换操作可参与命令的传输。在一些实施方案中,ENM本身可以为客户端场所的两个网络的一部分,例如,可以在其中使用CAR1的网络内以及在包括H1的(其中使用SAR1的)网络内为运行ENM的至少一部分的装置分配相应的地址。当主机H1接收到由ENM发送的消息时,可以执行所请求的操作,例如,可以在H1处启动计算实例。
在至少一些实施方案中,VCS可以提供一组虚拟机类别的指示,该指示表明可以应VCS客户端的请求在提供商网络数据中心和/或ERG处建立所需数量的实例。因此,例如,客户端C1可以在提供商网络数据中心处请求类别Cat1的N个VM,以及代表C1设置的ERG处的相同类别Cat1的M个VM。在一些实施方案中,至少一些类别的VM可以仅在ERG处得到支持,或者可以仅在提供商网络数据中心处得到支持。
在一些实施方案中,在将命令的表示转发给ERG之前,OCC可以对虚拟机配置命令(例如,启动命令)执行一个或多个转换。例如,在一些实施方案中,在OCC处从VCS控制平面获得的命令的版本可包括一个或多个安全令牌,并且OCC可以从转发给ERG的命令的版本中去除或排除令牌(例如,可用于验证作为命令的结果执行的操作的请求者的身份的令牌,以及请求者具有请求操作所需权限的令牌)。在至少一些实施方案中,可以对原始安全令牌进行转换(例如,使用与最初在VCS控制平面处使用的密钥不同的密钥进行签名),并且在命令的转发版本中可以包括可以在由VCS控制平面将命令引导到的目标主机处进行认证的安全令牌的转换版本。在至少一个实施方案中,可以为从OCC发送到ERG的出站命令生成相应的消息认证码(包括例如基于散列的消息认证码或HMAC)。在各种实施方案中,OCC可以记录发送到给定ERG的所有出站通信消息,并且如果需要,可以由ERG作为代表设置的客户端检查所记录的消息。在一些实施方案中,至少两个虚拟网络接口可以与给定的OCC相关联—一个虚拟网络接口用于从VCS控制平面获得命令,并且另一个虚拟网络接口用于使用安全网络通道与ERG进行通信。
根据一些实施方案,系统可以包括提供商网络的虚拟化计算服务(VCS)的扩展资源组(ERG)。在各种实施方案中,ERG可以至少包括第一虚拟化主机(VH)和受信任的平台模块,该第一虚拟化主机包括防篡改存储装置(例如,仅在物理上附接到主机时才能被解密的加密装置)。在至少一些实施方案中,提供商网络可包括一个或多个数据中心,并且第一VH可位于提供商网络外部的场所。计算装置可包括指令,所述指令在处理器上执行时使计算装置响应于一个或多个触发信号来实例化ERG的网络管理器。在各种实施方案中,ERG网络管理器(ENM)可以发起用于与一个或多个VCS资源(诸如VCS的第一隔离虚拟网络(IVN)的至少一部分)进行通信的安全网络通道的配置。此类IVN可以例如包括在提供商网络的数据中心处实例化的第二VH处的至少第一虚拟机(VM)。
在至少一些实施方案中,ENM可经由安全网络通道从与扩展资源组相关联的OCC获得虚拟机启动命令。在各种实施方案中,可响应于来自客户端的经由不包括安全网络通道的路径传输的程序化请求来(例如,在VCS控制平面处)生成虚拟机启动命令。在一些实施方案中,可以从ENM将虚拟机启动命令的至少一个版本传输到扩展资源组的第一虚拟化主机。在此类实施方案中,在第一虚拟化主机处对虚拟机启动命令的处理可导致在第一虚拟化主机处实例化新的虚拟机。
在各种实施方案中,几种类型的触发信号中的任何一种触发信号都可以导致ENM的实例化。例如,在一些实施方案中,指示包括在ERG中的特定服务器已接通电源或者指示已启用从ERG到互联网的连接的信号可导致ENM的至少一部分的实例化、初始化和/或启动。
除了充当ERG和提供商网络处的VCS资源之间的中介外,在至少一个实施方案中,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可以执行引导/初始化任务。在至少一些实施方案中,在ERG主机处建立VM之后,可使用这些VM执行提供商网络的其他较高级别服务的操作。例如,提供商网络可包括数据库服务,该数据库服务的数据库实例使用VM配置为构造块,并且此类数据库实例可使用在ERG处设置的VM进行配置。
在至少一些实施方案中,ERG的虚拟化主机可包括安全模块,诸如受信任的台模块(TPM),并且在给定的ERG主机处实例化VM(或执行其他与虚拟化相关的操作)之前,可使用此类安全模块来验证ERG主机的状态(例如,安装的软件的状态)符合验收标准。在至少一个实施方案中,与在ERG虚拟化主机处启动的与VM有关的状态信息可以加密的形式存储在虚拟化主机的存储装置处。在一些实施方案中可采用防篡改存储装置,诸如仅在物理上存在于或附接到ERG的特定虚拟化主机中的情况下才可以被解密的存储装置。因此,在此类实施方案中,如果恶意行为者打算物理地移除存储装置,则可能不会从所移除的装置解密加密的状态信息,从而进一步增强由ERG支持的虚拟化特征的安全性。
在一些实施方案中,对于给定的ERG,可以指定在授权或身份管理服务处定义的一组用户或实体,使得仅准许那些用户/实体在ERG处设置和使用虚拟机。在ERG处启动给定的VM(或执行其他与VM相关的操作)之前,在各种实施方案中,例如在要启动VM的ENM、OCC或虚拟化主机处可以验证请求的用户或实体的身份。在至少一个实施方案中,为了帮助加快VM在ERG处的启动,可以将一组VM图像存储或高速缓存在ERG的本地存储装置中;因此,可能不需要通过网络来传输大图像以在ERG处启动所需类别的VM。在一些实施方案中,可以在将ERG的计算装置物理地递送到将要设置ERG的位置(例如,客户数据中心)之前高速缓存图像。
示例性系统环境
图1示出了根据至少一些实施方案的示例性系统环境,其中可以使用位于提供商网络外部的场所处的资源来设置提供商网络的虚拟化计算服务的扩展资源组。如图所示,在系统100中,虚拟化计算服务(VCS)110的核心组件可包括至少一组控制平面资源141、数据平面资源145和出站命令通信器(OCC)177,所有这些都可以位于其中提供商网络101的数据中心。在各种实施方案中,提供商网络可被称为服务提供商。在所描绘的实施方案中,可使用扩展资源组(ERG)将VCS的数据平面扩展到外部位置(可以由VCS客户/客户端选择的场所)。例如,可在主机托管设施130(例如,可以托管一个以上组织的计算相关的资源的位置,诸如建筑物或房间)中建立ERG 135A,可以在客户数据中心132A处设置ERG 135B,并且可以在客户数据中心132B处建立ERG 132B。
根据一些实施方案,VCS 110的控制平面资源141可包括许多控制平面服务器(CPS)102,诸如CPS 102A至CPS 102C,它们负责响应于客户端提交的配置请求(诸如设置新的虚拟机、更改网络设置等的请求),VCS的数据平面组件的提供和健康管理操作,等等。数据平面资源可包括多个隔离虚拟网络(IVN)115,诸如代表客户端C2设置的IVN 115A。如前所述,在各种实施方案中,IVN 115可包括相对于至少某些类型的联网配置设置在逻辑上与虚拟化计算服务的其余资源隔离或分开的一组资源。例如,在一些实施方案中,给定的IVN可具有一个或多个具有相应的安全设置和/或一组IP地址的子网,其中单独的IP地址可以被分配给设置在一个或多个虚拟化主机(VH)117处的单个虚拟机125(例如,VM 125A)。在图1所示的示例性场景中,IVN 115A可包括在VH 117A和VH 117B处实例化的虚拟机,而IVN115B可包括在VH 117J或VH 117K处设置的虚拟机。需注意,至少在一个实施方案中,至少一些虚拟化主机117可以在多租户模式下使用,因此给定的VH可能用于代表若干个不同客户端设置的VM,而若干个不同的IVN的VM可能在一个VH上实例化。
在至少一个实施方案中,IVN可被设置用于内部或管理用途以及用于托管客户端请求的虚拟机。例如,在一些实施方案中,可以在IVN内建立用于向ERG传输命令的OCC 177中的一个或多个。在一些实施方案中,给定的OCC 177可以例如使用虚拟机中的一个或多个进程或执行线程来实施,并且可以与至少一个扩展资源组135以编程方式相关联。在至少一些实施方案中,可设置OCC的配置设置,使得虽然可经由OCC将VCS控制平面内发起的命令传输到ERG,但是可以不经由ERG将源自ERG(或任何其他源)的消息传输到VCS控制平面。例如,如下所述,在一个实施方案中,附加到用作OCC的虚拟机的特定虚拟网络接口(VNI)的安全设置可以仅允许将消息从VCS控制平面资源141传输到OCC,而不能以相反的方向进行。
在高级别,在各种实施方案中,ERG 135可以被设计成在能够托管至少少量的硬件装备并且具有互联网连接的VCS客户选择的任何位置处提供VCS的安全数据平面功能性(例如,实例化与提供商网络数据中心内可设置的虚拟机相同或至少非常相似的虚拟机的能力)。如下所述,在各种实施方案中,可在VCS处定义一个或多个类型或类别的ERG,并且客户可以选择要在提供商网络外部的给定位置设置ERG实例的特定类别,诸如主机托管场所130或客户数据中心132。在各种实施方案中,包括在ERG内的特定的硬件装置、相关联的软件和固件的特定集合可以满足由提供商网络101的运营商设置的(并且至少在某些情况下,由其预先安装的)标准。
在不同的实施方案中,可使用多种技术来确保使用ERG提供的虚拟化计算和其他功能性的质量(包括诸如安全性、性能、可用性等方面)符合VCS和提供商网络的标准。例如,在至少一些实施方案中,一组增强安全虚拟化主机(EVH)118(诸如EVH 118A、118B、118J、118K、118P或118Q)可包括在ERG中。此类EVH可包括许多硬件、软件和/或固件元素,这些元素特别设计用于能够以安全可靠的方式执行远程生成的与虚拟化相关的管理命令,而无需例如将消息发送回最初发出命令的源(诸如控制平面资源141)。在一些实施方案中,此类元素可包括卸载的虚拟化管理组件(OVMC),其中包括受信任的平台模块(TPM)或其他安全模块、只有在存储装置物理连接至特定EVH时内容才能被解密的防篡改的存储装置、低开销虚拟化管理软件堆栈,等等,如下文中将进一步详细讨论的。EVH可包括VCS控制平面代理,该VCS控制平面代理不进行出站呼叫,并且为使用TLS(传输层安全性)会话保护的入站命令实施API。在各种实施方案中,此类API可具有强大的授权、认证和计费相关的控制。在至少一些实施方案中,与虚拟化管理相关联的共享秘密不可以被存储在EVH自身内。在各种实施方案中,关于EVH的状态信息(包括VCS软件和配置)可以存储在针对TPM或类似的安全模块密封的一个或多个加密驱动器中,并且可以使用安全且经过测量的引导过程来解锁驱动器的内容。需注意,至少在一些实施方案中,也可以在提供商网络数据中心内使用类似的EVH—例如,可以在提供商网络内的EVH上设置虚拟机的至少一些子集(诸如125A)。在一些实施方案中,虚拟化主机(包括图1的EVH 118和VH 117)也可以被称为虚拟化服务器,或简称为服务器。
在至少一些实施方案中,给定的ERG 135可包括在一个或多个计算装置处实施的网络管理器,该网络管理器可参与或发起与提供商网络的网络连接的建立。在一些实施方案中,可在ERG 135(例如,ERG的网络管理器)与位于提供商网络数据中心内的资源之间建立安全网络通道诸如虚拟私有网络(VPN)隧道或VPN连接,并且此类通道可用于将来自VCS的命令发送至ERG。在图1所示的实施方案中,例如,相应的单向安全网络通道166(例如,166A、166B或166C)可用于响应于客户端请求(包括在ERG处实例化虚拟机125诸如125B的请求),经由OCC将最初在控制平面资源141处生成的命令经由OCC发送到ERG,以最终在EVH118处执行。在一个实施方案中,可在ERG 135(诸如网络管理器)处的一个或多个资源与在其请求下建立ERG的客户端的IVN 115内的一个或多个资源(诸如虚拟机125或VPN网关)之间设置要用于此类命令的安全通道,并且指定用于该ERG 135的OCC 177可以在建立通道之后获得该通道(例如,VPN连接标识符或隧道标识符)的指示(和使用许可)。
根据一些实施方案,有权访问安全通道166的OCC 177可获得在VCS控制平面资源141处生成的管理命令的至少第一版本。在至少一个实施方案中,管理命令可能已经在VCS控制平面处响应于来自客户端的程序化请求而生成,并且可以被引导到与OCC相关联的ERG。在至少一些实施方案中,可能已经经由不包括安全网络通道的路径在控制平面装置上从客户端接收到程序化请求本身。在各种实施方案中,在VCS控制平面处生成的命令的表示可经由安全网络通道从OCC传输到相关联的ERG 135,并且在ERG处执行。在一个示例性场景中,客户端可以编程方式提交在ERG处启动虚拟机(诸如VM 125B)的请求,对应的VM启动命令的第一版本可以在VCS控制平面资源141处生成并且传输到适当的OCC 177,并且OCC 177可以将命令的修改版本传输到ERG的网络管理器。网络管理器继而可以将命令传输到所选择的EVH 118,并且EVH 118上的一个或多个进程可执行该命令以启动请求虚拟机。在各种实施方案中,可针对其他类型的命令执行类似的工作流,诸如终止VM、修改VM等的命令。
在一些实施方案中,可在OCC处例如通过移除/替换一个或多个安全相关令牌等来修改在OCC处从VCS控制平面接收的命令的版本,从而导致将命令的修改版本传输到ERG。在各种实施方案中,命令的修改版本可包括例如在OCC处生成的一个或多个安全人工痕迹(artifact)或对象,所述一个或多个安全人工痕迹或对象可在最终执行/实施命令的ERG的目标主机处进行认证。在至少一个实施方案中,可在OCC处为每个命令生成相应的认证码诸如HMAC(基于散列的消息认证码),并且将其包括在转发给ERG的消息中,使其难以用命令篡改。在一些实施方案中,可在提供商网络数据中心内的虚拟化主机115处建立一个或多个虚拟机类别系列的实例,并且可以在ERG处设置至少一些相同VM类别的实例。一个实施方案中,可用于启动一个或多个VM类别的实例的虚拟机图像可以在包括在ERG内的存储装置处高速缓存,使得可以非常快速地启动例如新的VM,而无需通过网络将潜在的大VM图像文件从提供商网络传输到ERG。在一些实施方案中,可以为给定的ERG指定一组授权实体(例如,用户、组等,在身份服务或授权服务内定义),使得仅准许那些实体在ERG处发起一种或多种类型的操作(例如,VM启动)。在执行此类操作之前,在各种实施方案中,VCS可验证(例如,在VCS控制平面、在OCC和/或在ERG自身处)已经向请求实体授予了适当的许可。在至少一些实施方案中,可以例如在VCS控制平面、OCC和/或ERG内的网络管理器处维护发布到ERG(或更一般而言,发送到ERG和/或从ERG发送的消息)的所有命令的全面日志,并且可经由各种类型的编程接口将此类日志的内容提供给代表其设置ERG的VCS客户端。
在至少一些实施方案中,关于在ERG 135的EVH处运行的虚拟机125,可支持至少两种类型的数据平面通信。给定的外部场所,诸如客户端C1的客户数据中心132A、客户端C2的客户数据中心132B或主机托管设施130可包括不实施VCS功能性的至少一些服务器或计算装置。例如,在所描绘的实施方案中,主机托管设施130可包括一组非VCS服务器123A,数据中心132A可包括非VCS服务器123B,并且数据中心132B可包括非VCS服务器123C。在一些情况下,设置ERG 135的动机之一可包括对给定的一组非VCS服务器123的接近,此类服务器可例如存储将使用ERG的虚拟机进行操作的数据,或者可以运行旨在与ERG内运行的其他应用程序紧密合作的应用程序,但可能不是ERG的一部分(并且不是提供商网络的一部分)。因此,在各种实施方案中,给定的ERG 135可包括一个或多个资源,该一个或多个资源使得能够经由本地场所的低延迟数据通道168(例如,数据中心132A处的通道168A、数据中心132B处的通道168B和主机托管设施130处的通道168C)连接到非VCS资源。在一些实施方案中,例如,EVH 118(例如,可以被分配与VCS的IVN相关联的范围的私有IP地址)处的虚拟化主机与ERG主机场所处的非VCS资源诸如服务器123之间的流量可能需要网络地址转换。在至少一个实施方案中,ERG 135的网络管理器可用作执行此类流量的此类地址转换和/或其他协议处理(例如,封装协议处理)操作的中介。在一些实施方案中,参与设置到VCS控制平面的安全通道166的相同的网络管理器也可以用于启用与非VCS资源的连接;在其他实施方案中,不同的网络管理器可用于不同类型的流量。
在至少一些实施方案中,给定的ERG 135可以被配置为使用VCS数据中心内的至少一些资源建立的现有IVN 115的逻辑扩展。例如,在所描绘的实施方案中,ERG 135B是客户端C1的IVN 115A的扩展,并且ERG 135A是客户端C3的IVN 115B的扩展。因此,IVN的各种联网配置设置,诸如可用的IP地址范围、子网设置、出口/入口安全规则等,也可以应用于在此类实施方案中扩展IVN的ERG。在各种实施方案中,双向数据通道诸如167A和167B可用于在IVN内的资源和被配置为IVN的扩展的ERG之间传输非管理或数据平面分组。需注意,在一些实施方案中,一些ERG(诸如ERG 135C)可以不被配置为IVN的扩展。此类ERG实际上可被视为在提供商网络数据中心外部实施的IVN的逻辑等同物;例如,在描绘的实施方案中,客户端C3可以在ERG 135C内作出与代表C3设置的IVN内作出的选择类似类型的联网配置选择。需注意,至少在一些实施方案中,(a)双向数据流量(例如,逻辑双向数据通道167)和(b)单向管理命令流量(例如,逻辑单向命令通道166)可使用相同的一组物理网络链接和/或相同的VPN隧道或其他安全连接。
根据一些实施方案,VCS客户端可通过向VCS提交程序化请求来发起设置和配置ERG的工作流程。在一个实施方案中,响应于此类ERG建立请求,例如即使在将ERG的物理装备递送到适当场所之前,也可以配置、(例如,从预先存在的OCC的池中)选择或实例化出站命令OCC。在这种情况下,可以在已经为ERG建立OCC或将OCC指定给ERG之后的某个时间内设置与ERG 135的安全通道166(例如,VPN隧道)。
在一些实施方案中,ERG的装置的预配置和预安装方式可以使得VCS客户可以花费很少的努力来建立连接并且开始使用ERG。例如,在一个实施方案中,一旦ERG实例的一组计算装置被设置、接通电源并且连接到互联网,网络管理器便可以在装置中的一个或多个装置处自动启动并且发起与VCS数据中心处的资源(诸如OCC 177、设置为启用VPN隧道的网关等)的连接。在此类实施方案中,电力和/或互联网连接可用的发现因此可用作启动网络管理器的触发信号。在一些实施方案中,网络管理器还可以负责发起ERG的一个或多个EVH的引导操作。除了在EVH上启用虚拟机125的实例化和使用之外,在一些实施方案中,还可以使用ERG来提供利用虚拟机的提供商网络服务的功能性。例如,在一些实施方案中,提供商网络的数据库服务可利用一组虚拟机来实例化数据库实例,并且此类数据库实例也可以应客户端的请求在ERG处设置。
示例性ERG虚拟化主机
图2示出了根据至少一些实施方案的可包括在虚拟化计算服务的扩展资源组中的增强安全性的虚拟化主机的示例性概述。在所描绘的实施方案中,类似于图1所示的ERG135的ERG的计算装置的集合205可以被递送到由VCS客户端选择的位置(例如,客户数据中心、主机托管设施等)。在至少一些实施方案中,集合的各个装置可具有由已经安装的VCS运营商选择的一组软件和固件,并且也可以彼此预先连接。在至少一个实施方案中,装置的集合可以适配在通常安装在数据中心的那种单个标准机架上(或其他数量的机架上),并且一整个机架(或多个机架)可作为一个单元封装,并且由VCS运营商提供到提供商网络外部的指定位置。在所描绘的实施方案中,ERG装置集合205可包括用于ERG网络管理器的一个或多个主机206,所述一个或多个主机实际上充当ERG的主要管理员,负责在安装ERG的位置建立与VCS数据中心和非VCS服务器的连接,启动ERG的其他装置,等等。在一些实施方案中,集合205可包括一个或多个存储服务器207,所述一个或多个存储服务器例如可以用作虚拟机图像的高速缓存,所述高速缓存可用于在ERG处实例化客户请求的虚拟机,而无需通过网络连接从VCS传输图像。该集合还可以包括一些数量的增强安全性的虚拟化主机(EVH)218,诸如所描绘的实施方案中的EVH 218A。需注意,在至少一个实施方案中,在ERG处,EVH、ERG网络管理器和/或存储服务器可以使用相同类型的计算装置,即,网络管理器和/或高速缓存的VM图像可能不需要特殊类型的硬件。
在至少一些实施方案中,ERG的给定EVH诸如EVH 218A可包括一组存储装置255、卸载的虚拟化管理器组件(OVMC)269和操作系统(OS)的精简版265。存储装置255可以例如包括至少一个防篡改装置256,例如可以加密的形式在该至少一个防篡改装置上存储EVH的状态信息,包括在EVH处启动的任何虚拟机的状态信息。在至少一个实施方案中,防篡改存储装置256可以被配置为使得只有在装置物理上附接到特定的EVH(例如,EVH 218A)的情况下,才可以解密存储在装置中的加密数据,例如,可能必须读取和/或分析存储在安全模块诸如EVH的TPM(受信任的平台模块)中的信息,以便解密存储在装置处的数据的加密版本。在一些实施方案中,卸载的虚拟化管理器组件269可包括安全模块,如下面在图3的上下文所讨论的。在一些实施方案中,OVMC可例如包括经由外围接口诸如PCI(外围组件互连)附接到EVH 218的存储器的硬件卡。如名称所示,OVMC可以将管理虚拟机的一些工作从EVH的主处理器(例如,CPU)分流,从而使EVH的更多资源可用于客户端请求的虚拟机。在一些实施方案中,多个OVMC(例如,多个附有PCI的卡)可以被包括在EVH诸如218A中。在一个实施方案中,OVMC可以执行联网相关的虚拟化管理任务和/或其他与输入/输出(I/O)相关的虚拟化管理任务。在至少一个实施方案中,类似于OVMC 269的外围卡可用于实施ERG的网络管理器的功能性的至少一部分。
在图2所示的实施方案中,OS 265可包括控制平面代理(CPA)过程267。CPA 267可经由上述类型的出站命令通信器(OCC)在提供商网络数据中心处接收从VCS控制平面发送的管理命令266。在所描绘的实施方案中,可根据一组CPA应用程序编程接口(CPA API)278来格式化命令266。实际上,CPA API 278可以表示一个合同,该合同管理应VCS控制平面请求在EVH 218处实施的操作类型,而不管CPA或EVH 218的其他组件的具体实施细节如何。例如,启动ERG作为代表设置的客户端所请求的启动虚拟机的命令可被传输到CPA 267。在所描绘的实施方案中,至少一些CPA API调用可能不需要将响应传输给提交者。在一些此类实施方案中,CPA可以不从EVH传输出站消息。
响应于VM启动命令,在一些实施方案中,CPA 267可以启动可交换虚拟化中介过程(VIP)268,诸如VIP 268-1。最初,在所描绘的实施方案中,VIP过程268-1可包括API处理程序线程270-1,该API处理程序线程被配置为接收由CPA 267发出的API请求或命令。然后,CPA 267可以发出命令以实际启动VM,并且可以启动VIP 268-1的新的子线程263-1以实施所请求的VM。导致启动VM线程263-1的命令可以包括指示例如待使用的可引导VM图像的参数、VM的资源需求、CPA较早地专门针对使用OVMC的VM进行的网络配置操作的结果,等等。在所描绘的实施方案中,用于实例化VM的命令可经由被称为VIP API 279的第二内部API提交。正如CPA API表示VCS控制平面和CPA之间的合同一样,在各种实施方案中,VIP API可以表示另一个合同,该合同指示待由负责启动和终止VM的实体处理的请求的类型,而不管实体(例如,VIP)的具体实施细节或过程/线程结构如何。在一些实施方案中,给定的VIP 268的生存期可以与对应的VM线程263的生存期一致,例如,当VM终止时,VIP也可以终止。在VM的生存期内,CPA可经由其API处理程序线程270-1与VIP通信,例如,提交根据VIP API 279格式化的消息,请求各种类型的与VM相关的操作并且提交各种类型的VM相关的查询,并且接收对应的响应。在一些实施方案中,在ERG上启动的至少一些VM的资源需求(例如,CPU、存储器、存储装置和/或存储器需求)可能非常低,并且/或者VM的预期生存期可能非常短,因此此类VM可被称为“微型VM”。在一个实施方案中,OS的精简版265可包括虚拟机监视器,该虚拟机监视器可利用基于Linux内核的虚拟机(KVM)和其他虚拟化特征,或者以接近本机的速度运行此类轻量级微型VM。虚拟机监视器可以作为用户空间进程运行,并且向客户操作系统提供最少的装置仿真(例如,包括块和网络装置的标准PC装置模型),并且可能不包括非必需的功能性(例如,VGA(视频图形阵列)和其他旧版装置仿真器)以实现更快的启动速度并且减少存储器占用空间。在一些实施方案中,虚拟机监视过程可将类似于CPA API 278的API扩展,从而执行微型VM沙箱操作,并且处理与虚拟化相关的请求的速率限制。
在不同的实施方案中,当选择要用于给定请求的VM的特定EVH 218时,可以考虑许多VM放置因素,例如,可以考虑当前正在主机上运行的VM的数量,可以考虑在主机上运行的VM的资源使用特性的组合,可以考虑EVH的过度订阅设置和/或VM将作为代表被启动的客户端的过度订阅偏好,等等。在一些实施方案中,在对特定VM启动的任何请求被发送到EVH处的CPA 267之前,可以在EVH 218上(例如,由ERG网络管理器)执行一些初步配置操作,例如,可以使用OVMC 269来配置下面讨论的类型的一个或多个虚拟网络接口,以供EVH的VM最终使用。
在所描绘的实施方案中,当在CPA 267处接收到用于启动VM的新命令时,可以重复以上相对于VM线程263-1的启动所指示的CPA工作流,例如,可以由CPA在启动VIP之前执行特定于VM的配置操作,并且VIP的线程中的一个线程可以用于所请求的VM。在所描绘的实施方案中,如标签VIP 268-10000所示,可以在给定的EVH 218处创建大量的(例如,数万个)VM。需注意,在不同的实施方案中,可以实例化为在EVH处同时运行的VM的实际数量可能有所不同,取决于例如EVH处可用的总体资源组合、安装的软件/硬件堆栈的版本、一个或多个有效的资源过度订阅策略,等等,并且例如可以大于或小于图2中所示的数量10000。在所描绘的实施方案中,因为VM 263-1的父VIP 268-1是可交换的,所以有可能在EVH 218A处实施所需级别的资源过度订阅,例如,在EVH处运行的一组VM的总存储器使用量可超过可用存储器的量。在所描绘的实施方案中,当在VCS控制平面处接收到终止VM的请求时,可经由API调用将对应的命令传输到CPA,并且可以终止线程用于目标VM的VIP。也就是说,在至少一个实施方案中,正在运行的VM的数量和正在运行的VIP的数量之间可存在一对一的关系。在其他实施方案中,可以采用图2中所示的过程架构的变型,例如,给定的VIP可以产生多个VM作为各自的线程,可以在VH处设置多个CPA,等等。在一些实施方案中,用于VM的VIP和/或单独的过程可能是不可交换的。在至少一些实施方案中,可以使用与图2中所示方法不同的方法来管理虚拟机,例如,可以使用具有较大占用空间的虚拟机管理程序来代替所示类型的控制平面代理。
示例性卸载的虚拟化管理组件卡
图3示出了根据至少一些实施方案的虚拟化主机的卸载的虚拟化管理组件卡的示例性元素。如前所述,在各种实施方案中,此类卡可以用于执行至少一些类型的虚拟化管理任务,从而释放虚拟化主机(例如,用于ERG处的VM或用于提供商网络内的VM的主机)的处理和其他资源。如图所示,卸载的虚拟化管理组件(OVMC)卡302(特征和能力与图2的OVMC 269的特征和能力类似)可以包括带有相应集合的卸载处理器317A和317B的一对片上系统(SOC)315和316(区别于附接和使用OVMC卡的虚拟化主机的主CPU)。在所描绘的实施方案中,SOC中的一个SOC(例如,315)可用于引导控制器,而另一个可以主要或专门用于网络处理卸载。可在不同的实施方案中实施虚拟化相关职责的其他分布。在一些实施方案中,安全引导ROM 325可用于通过引导控制器对虚拟化主机本身的多阶段引导操作的初始阶段。在一些实施方案中,OVMC卡302还可以包括安全模块(诸如受信任的平台模块(TPM))330,该安全模块还可以广泛用于引导过程中以及/或者用于引导后的状态验证,如前所述。在至少一些实施方案中,虚拟化主机的预安装软件/固件的表示可被包括在安全模块中。在至少一些实施方案中,仅由VCS运营商选择的特定软件堆栈可以安装在安装安全模块330的主机处;因此,任何修改安装的尝试都可能失败,从而进一步增强虚拟化主机的安全性。
另外,在各种实施方案中,OVMC卡302可包括许多与存储、电力和连接相关的组件。例如,可以将一个或多个闪存装置/接口(或SSD)335结合到卸载的卡内。这些装置可用于例如存储对应于各种虚拟化管理组件、虚拟机组件等的固件和/或软件。在各种实施方案中,PCI-E接口340可用于与过程诸如CPA和VIP进行通信并且/或者用于SOC之间的通信。在其他实施方案中,可使用其他类型的互连和对应的接口,诸如QuickPath互连(QPI)或UltraPath互连(UPI)的变型形式。在一些实施方案中,网络接口345可用于虚拟化主机与虚拟化计算服务的控制平面之间的通信,以及用于在主机上启动的虚拟机与一个或多个网络端点之间的数据平面通信。在一些实施方案中,OVMC卡302还可以包括电源360,例如,在发生长时间的电源故障的情况下,足以使OVMC保持工作至少一些目标小时数或天数。在一些实施方式中,可以使用基于超级电容器的电源。
在一些实施方案中,卸载的虚拟化管理器组件可能不需要在相同卡上的单独的SOC。例如,在一个实施方案中,可以利用能够执行引导控制器功能以及网络卸载任务的单个SOC。在其他实施方案中,与用于启动控制器的卡不同,可以使用单独的卡来执行网络处理任务。图3中所示的一组卸载的卡组件不旨在是全面的;在一些实施方案中,可以在卡处结合若干个其他组件,诸如定时器等。在各种实施方式中,可能不需要图6中所示的至少一些组件。
虚拟网络接口在出站命令通信器处的示例性使用
在各种实施方案中,可以在VCS(类似于图1的VCS 110)和/或在VCS扩展资源组(类似于图1的ERG 135)处配置虚拟网络接口(VNI)(也可以称为“弹性网络接口”),使一些联网相关属性诸如IP(互联网协议)可以在虚拟机之间相对轻松地传输,而不必重新配置物理网卡。例如,可以通过从一个虚拟机(例如,用作出站命令通信器(OCC)的虚拟机)拆除虚拟网络接口并且将其以编程方式附接到另一个虚拟机来实现这种属性传递。图4示出了根据至少一些实施方案的可以编程方式附接到与扩展资源组相关联的出站命令通信器的虚拟网络接口的示例性属性。如图所示,在所描绘的实施方案中,一个或多个VNI诸如491A或491B可以经由编程操作493附接到给定的虚拟机490(或从其拆除),而与例如运行虚拟机的主机的特定硬件网络接口卡(NIC)无关。
在图4中示出了任何给定的VNI 491的示例性属性495的广义表,在至少一些实施方案中,并非所有的VNI都必须使用所有这些属性。在一些实施方案中,可以仅实施图4中所示的属性或特性的子集,并且并非必须填充所有已实施的属性字段(即,一些属性可以留为空白或为空)。在一些实施方案中,包括包含各种VNI的属性495的字段/条目的相应记录可以存储在持久性元数据存储库中,例如,可以从提供商网络或VCS的各种控制平面或管理组件访问的存储库。
在所描绘的实施方案中,当例如响应于程序化请求而创建新的VNI时,可以为其生成新的接口标识符401。在一些实施方式中,可以由请求创建VNI的客户端填充描述字段402,例如“ERG E-1142的OCC 485的接口654”。如前所述,在一些实施方案中,将使用VNI的VCS可包括多个隔离虚拟网络(IVNS)。在此类实施方案中,属性495可包含IVN标识符403(指示其中配置VNI的IVN)。
在不同实施例中,若干类型的网络寻址相关字段中的任一个可以包含于VNI的属性集合内。例如,在一些实施方案中,可以指定一个或多个私有IP地址405。在各种实施方案中,此类私有IP地址(在本文中也称为非公共地址)可以在内部用于提供商网络及其扩展(诸如ERG)内的路由,并且可能无法从提供商网络及其ERG外部(或从其他IVN内部)直接访问。在一些实施方案中,与VNI相关联的至少一些非公共IP地址可能不是IP地址;即,可以使用根据提供商网络的专有协议格式化的地址,或者可以使用根据不同的公共域协议格式化的地址。一般来讲,在一些实施方案中,零或更多的公共IP地址415也可以与VNI相关联;这些IP地址可在提供商网络及其扩展之外可见,例如,对于设置ERG的场所处的非VCS服务器、公共互联网的各种路由器等可见。在一些实施方案中,一个或多个子网标识符425(例如,以无类域间路由或CIDR格式表示)可以被包括在属性495内,诸如由客户端在其中将使用VNI的IVN内设置的子网的标识符。在一个实施方案中,负责传播与VNI相关联的地址的域名服务器(DNS)的标识或其他DNS相关信息427也可以包括在属性495中。
在一些实施方案中,属性495可包括安全相关的特性435。一些提供商网络可以允许用户针对在可以附接VNI的计算实例处允许的传入和/或传出流量的类型指定规则,包括例如防火墙相关规则。此类规则可以被称为“安全组”,并且可以经由安全组字段445来标识。在一些实施方案中,可使用此类规则来实施各种端口和协议限制,并且多个规则可以与每个VNI相关联。举例来说,客户端可以使用安全群组来确保仅允许HTTP和HTTPs传出或传入业务,限制准许业务的TCP或UDP端口的集合,根据各种策略过滤传入和传出业务,等等。在一些实施方案中,附接到上面所讨论的类型的OCC的VNI的安全组和/或其他安全设置可用于防止流量从OCC流动到VCS控制平面,同时允许在VCS控制平面发出的命令被传输到OCC。在一些实施方式中,可以指定安装对象列表447,指示允许哪些用户或实体请求将VNI附接到计算平台,诸如VCS的虚拟机。在一些情况下,单独的拆除对象列表可用于指定哪些实体可以拆除VNI,而在其他情况下,可以使用单个列表(诸如,安装对象列表447)来标识授权的安装对象和拆除对象。在一些实施方案中,可以在IP地址设置程序列表449中提供允许设置或修改VNI的IP地址(例如,公共IP地址415和/或私有IP地址405)的用户或实体的集合,并且可以在所有者/修改者字段453中指定拥有VNI的(或者可以修改VNI的各种其他字段的)用户或实体的集合。例如,在一些实施方式中,可以准许在字段453中标识的所有者/修改者改变安装对象列表447或IP地址设置程序列表,从而改变准许附接或拆除VNI或修改其一个或多个IP地址的实体的集合。虽然术语“列表”已用于字段447、449和453,但除列表以外的逻辑数据结构(诸如数组、哈希表、集合等)可用于表示给定各种安全特权、角色和/或能力的实体组。
在一些实施方案中,可允许提供商网络的虚拟化计算服务的用户以编程方式终止虚拟机(VM)。例如,客户端可以设置VM,将VNI附接到VM,在VM上运行所需的一组计算,然后在所需的计算完成时发出终止实例的请求。在此类实施方案中,“DeleteOnTerminate”设置451可用于指定当VM终止时附接的VNI发生的情况。如果针对附接到正在终止的VM的VNI,DeleteOnTerminate被设置为“真”,则可以删除该VNI(例如,可以从存储VNI的存储库中移除包括VNI属性495的永久记录)。如果DeleteOnTerminate被设置为“假”,则可以保留VNI,使得例如可以将其再次附接到某些其他VM或其他计算平台。在一个实施方案中,在将VNI附接到VM时,可以创建与VNI属性495分开的附接记录来表示该关系,并且DeleteOnTerminate属性除了与VNI本身相关联,可以与附接记录相关联,或者不与VNI本身相关联。在此类实施方案中,VNI的属性495可以包括对当前涉及VNI的每个附接的一个或多个附接记录的引用或指向所述一个或多个附接记录的指针,并且可以为每个附接记录设置不同的“DeleteOnTerminate”值。
在一个实施方案中,属性495可包含路由相关信息,诸如关于是否要对传输到VNI附接到的计算平台的网络分组执行源和/或目的地检查的指示465。在一些实施方案中,如果源/目的地检查设置被设置为“假”或“断开”,则可以基于分组的源IP地址和目的地IP地址来进行路由决策,例如,可以将分组从一个子网转发到另一子网;如果设置为“真”或“打开”,则计算平台可以不执行路由。因此,在一些实施方案中,源/目的地字段465可用于控制VNI所附接到的计算平台是否对其不作为最终目的地的分组执行路由或网关功能,或者是否忽略此类分组。在其他实施方案中,其他类型的路由相关信息诸如路由表条目也可以或替代地包括在属性495中。在一些实施方式中,计费相关信息可以被包括在属性495中,例如标识将针对与VNI相关联的网络流量被计费的实体或用户。
接口状态字段468可用于指示VNI的当前状态,例如,VNI是“可用的”、“禁用的”还是“维修中”。类似地,在一些实施方案中,附接状态字段469可用于指示VNI当前是被附接、被拆除还是处于被附接或被拆除的过程中。在一个实施方式中,如上所述,可以在执行对应的附接操作时创建附接的记录,并且可以将VNI的当前附接的一个或多个标识符存储在附接ID字段471中。在一些实施方案中,VNI当前附接到的虚拟机的标识符可以被存储在附接到实例字段473中,并且可经由附件拥有者字段475来标识请求附接的用户或实体。在一个实施方案中,可以例如以一个或多个MAC地址字段477的形式维护当前可用于定向到VNI的IP地址/从VNI的IP地址定向的流量的一个或多个物理网络接口卡(NIC)的标识符的列表。在一些实施方式中,监视信息479,诸如关于流入或流出VNI的IP地址的流量的统计信息,也可以保留在属性495中。在支持VNI多路复用或父子层次结构的至少一个实施方案中,可以包括指向VNI的子VNI或分支VNI的指针481。在各种实施方案中可包括未在图4中示出的其他字段。
在一个实施方案中,图4中所示的一些字段可以由对其他对象的引用或指针代替。例如,用于VNI的安全信息可以被存储在单独的安全对象中,并且属性495可以包括对安全对象的引用。类似地,在一些实施方式中,计算平台到VNI的每个附接都可以由附接对象表示,并且属性495可以包括指向适当附接对象的指针。
图5示出了根据至少一些实施方案的可用于将在虚拟化计算服务的控制平面处生成的命令传输到扩展资源组的示例性路径。在至少一些实施方案中,可以沿路径遍历上面介绍的类型的多个隔离虚拟网络(IVN),包括一些代表VCS客户建立的隔离虚拟网络以及一些在提供商网络处出于管理目的设置的隔离虚拟网络。在所描绘的实施方案中,响应于客户端请求,可以在虚拟化计算服务的一个或多个控制平面服务器502(例如502A或502B)处生成启动计算实例(诸如虚拟机、裸机实例和/或另一种类型的应用程序执行环境)的命令。在一些实施方案中,可以在VCS控制平面IVN 510内建立控制平面服务器502。在所描绘的实施方案中,服务网络地址范围(SNAR)591可用于将IP地址分配给VCS的各个主机,在这些主机上可以设置各种类型的计算实例。需注意,至少在一些实施方案中,控制平面的至少一些计算装置可以被分配不是SNAR 591的一部分的地址,并且可以被配置为与在提供商网络数据中心内建立计算实例的网络不同的独立网络的一部分,所述至少一些计算装置运行算法以用于管理任务,如通过生成内部命令来响应客户端请求、用于资源供应、可用性管理等,并且不用于托管计算实例。在所描绘的实施方案中,从VCS控制平面的角度来看,至少在某些类型的配置决策诸如网络地址分配方面,可以处理恰好位于扩展资源组(ERG)内的主机,好似这些主机存在于提供商网络的数据中心中。例如,在各种实施方案中,在VCS控制平面内,可以为将设置一个或多个计算机实例的主机分配SNAR地址中的一个或多个SNAR地址或与SNAR地址中的一个或多个SNAR地址相关联,而与主机的物理位置无关。在一些实施方案中,指示与将用于计算实例的主机中的各个主机相关联的特定SNAR地址的元数据可以存储在VCS控制平面处。在各种实施方案中,由于ERG主机位于网络配置可不受VCS控制平面直接控制的外部场所,因此计算实例启动命令(和/或在VCS控制平面处生成的其他配置命令)在前往ERG主机的过程中可能必须以各种方式转换。在各种实施方案中,此类转换还可以确保满足VCS和ERG作为代表设置的客户端的安全需求。如前所述,在至少一些实施方案中,在VCS控制平面处(例如,经由VCS的公共应用程序编程接口)接收到客户端请求(例如,在ERG处启动实例的请求)的路径可能不同于用于将对应的命令从VCS控制平面传输到ERG的路径。
在一些实施方案中,可以建立称为VCS扩展服务的内部服务以处理VCS ERG的管理的一些方面,包括将管理命令从所述VCS控制平面安全地传输到ERG。在至少一些实施方案中,这种内部服务可被称为VCS扩展服务,并且其自身可包括一个或多个隔离虚拟网络(诸如IVN 530)。在所描绘的实施方案中,出站命令通信器(OCC)522(在一些实施方案中,其自身可以使用在VCS扩展服务的主机517处设置的虚拟机来实施)实际上可被配置为至少两个网络的一部分或耦合到至少两个网络:VCS控制平面IVN 510(其可包括具有来自SNAR的地址的主机/服务器,所述主机/服务器可用于在提供商网络的数据中心处启动计算实例)和VCS扩展服务IVN 530。在一些实施方案中,OCC 522可以编程方式附接到至少两个虚拟网络接口(VNI,其特征和功能类似于在图4的上下文中描述的VNI),诸如图5中的VNI 523A和VNI523B。VNI中的一者诸如523A可被配置为使VCS控制平面能够传输指向ERG的命令,而OCC可以使用另一个VNI诸如523B将命令的至少一个版本转发到目的地ERG。在至少一些实施方案中,VNI 523A的配置设置可以确保尽管可以经由VNI从VCS控制平面发送命令,但不能经由VNI将命令定向到VCS控制平面。在各种实施方案中,此类配置设置可以帮助确保图5所示的路径的其他任何组件都不能在VCS控制平面处启动不需要的操作。在至少一些实施方案中,使用VNI诸如523A,可以向OCC 522(至少)分配与被分配给目标ERG主机529的网络地址相同的网络地址(SNAR的一部分),为此OCC 522充当控制平面命令的中介。因此,在此类实施方案中,从VCS控制平面的角度来看,将消息发送到OCC可以(就目的地网络寻址而言)等同于将消息发送到ERG主机。在至少一些实施方案中,当OCC 522从VCS控制平面接收到包含命令的此类消息时,它可以生成以ENM的地址为目的地的(包括或指示控制平面的命令的)经过转换的消息,并且在ENM上发送该经过转换的消息。在各种实施方案中,当ENM最终接收到经过转换的版本时,ENM继而可以提取原始命令并且将其转发到ERG主机,最初在VCS控制平面处为ERG主机生成命令。在各种实施方案中,与分配给OCC自身的网络地址不同,分配给OCC522在上面执行的主机517的网络地址也可以是SNAR 591的一部分(在VCS控制平面上用于可以启动计算实例的主机的地址范围)。
在至少一些实施方案中,OCC 522还可以相对于从VCS控制平面接收的命令执行一个或多个附加的安全相关操作。例如,可以在向目的地ERG传输的消息中移除、替换和/或修改命令的一个或多个安全性相关的人工痕迹/对象(诸如最初在VCS控制平面处生成的承载令牌)。在一个实施方案中,例如,在OCC处接收的控制平面命令的版本可包含一个或多个加密符号令牌,并且向目的地ERG发送的命令的出站版本可包括由OCC重新签名的令牌。在一些实施方案中,对于响应于客户请求在VCS控制平面处生成的给定的管理命令,可以在(a)VCS控制平面和OCC以及(b)OCC和通往目的地主机的路径上的一个或多个资源之间建立不同的TLS会话。在各种实施方案中,可以在OCC处执行这种类型的安全相关操作,以试图确保源自VCS控制平面的任何与安全相关的数据或元数据都不到达目的地ERG,因此降低误用此类安全性相关的数据/元数据的概率。
在一些实施方案中,可以多租户的方式使用VCS扩展服务IVN 530和/或各个虚拟化主机517。例如,在一个实施方案中,用于将控制平面命令传输到多个VCS客户端的ERG的若干个不同的OCC 522可以被配置为相同扩展服务IVN 530的一部分。在一些实施方案中,可以在给定主机517处建立用于不同客户端的多个OCC,或者可以使用单个OCC将命令传输到多个客户端的ERG。在一些实施方案中,可以使用单个OCC将命令传输到多个ERG主机,而在其他实施方案中,每个ERG主机可以使用一个OCC(需注意,在给定的ERG主机处可能设置多个计算实例)。在至少一些实施方案中,OCC可以对在VCS控制平面处发出的命令执行一个或多个转换或封装操作。例如,在一种情况下,VCS控制平面命令可指示具有IP地址A.B.C.D(SNAR地址之一)的主机将用于代表特定ERG 541A处的给定客户C1启动计算实例。OCC(在上面提到的一些实施方案中,其自身可能也已经被分配地址A.B.C.D)可以确定在命令最终被传输到主机并且在主机处实施之前,必须将命令传输到ERG 541A的ERG网络管理器528。在此类实施方案中,OCC还可以确定将使用不同的IP地址K.L.M.N(其中,K.L.M.N为目标主机所处的外部场所535A处使用的客户网络地址范围(CNAR)593的一部分)来访问ENM 528。在一些实施方案中,OCC可以生成包括命令的转换/封装版本的消息,其中消息的目的地址现在被指示为K.L.M.N。在所描绘的实施方案中,可以经由一个或多个附加的VNI(诸如,VNI523C和VNI 523D)和中间IVN到IVN网关540将消息传输到客户C1的IVN 515中。在一些实施方案中,可以使用虚拟机或计算实例来实施IVN到IVN网关540,分组处理软件可以在该虚拟机或计算实例处运行。在至少一些实施方案中,可以在IVN到IVN网关540处执行消息或命令的一个或多个其他操纵/转换,例如,包括向ERG 541A处的消息的预期目的地传输消息所需的地址转换操作。
如图5所示,在至少一些实施方案中,C1的IVN可包括在提供商网络内的主机处建立的一些数量的虚拟机525。在所描绘的实施方案中,在消息进入客户IVN 525之后,可以例如使用一个或多个VPN隧道561将其传输到目的地ERG 541A处的ENM。需注意,代替使用VPN隧道在提供商网络和ERG之间进行安全连接,在一些实施方案中,可以使用专用物理链路(诸如,将ERG 541B连接到IVN 515的专用链路562),并且/或者可以使用其他类型的网络链路。在一些实施方案中,专用物理链路562可被称为直接连接链路。当最初在供应商网络外部的外部场所(诸如场所535A或535B)设置ERG 541时,在至少一些实施方案中,ERG的ENM可以发起VPN隧道561的建立和/或经由专用链路562的连接的建立,并且可以将有关将用于ERG的特定安全通道的信息提供给OCC 522。需注意,图5中未示出的一个或多个中间装置可参与经由专用物理链路建立VPN隧道和/或连接,例如,可以在客户IVN 515处设置VPN网关,并且/或者边缘路由器或其他边缘装置可充当经由专用物理链路进行连接的中介。
在至少一些实施方案中,可以将ERG 541的装置设置在外部场所535处的一个或多个机架内。给定的机架可例如包括可响应于在VCS控制平面处生成的命令来设置计算实例的交换机527、ENM 528和一组主机529(例如,529A、529B等)。在至少一些实施方案中,ENM528可被配置为外部场所处的至少两个网络的一部分或属于所述至少两个网络。在一些实施方案中,网络中的一个网络可以为包括ERG的主机529的至少一个子集的私有网络531B。在该私有网络531B中,可以为各个主机分配来自VCS服务网络地址范围(SNAR)591内的网络地址(例如,由ENM 528作为其主机初始化操作的一部分)。因此,在至少一些实施方案中,当ENM 528接收到在VCS控制平面处生成的命令时,该命令指示该命令将在具有SNAR内的地址A.B.C.D的主机上执行,ENM可以使用私有网络531B将用于执行的命令引导到预期的主机。在所描绘的实施方案中,ENM 528还可以是客户配置的网络531A的成员,可以包括零或多个客户端的非VCS主机542。在至少一些实施方案中,可以为客户配置的网络531A内的装置分配来自客户的网络地址范围CNAR 593的地址。因此,例如,作为网络531A的组成部分,ENM528也可以被分配来自CNAR 593的地址K.L.M.N,并且该地址可以用于在ENM处接收VCS控制平面命令。
总之,在图5所示的实施方案中,最初在VCS控制平面处生成并且经由包括一个或多个其他中介的路径传输的命令最终可以经由作为客户配置网络531A一部分的网络地址在ENM处被接收。在各种实施方案中,沿着路径,可以对原始命令执行一个或多个转换操作,例如包括网络地址转换、封装、解封装等。在各种实施方案中,若干中介诸如带有多个附接的VNI的OCC、IVN到IVN网关等的使用,可有助于降低恶意实体能够在VCS和/或ERG处执行不希望的操作的概率,其中每个中介都可以相对于网络流量实施各自独立的安全操作。在所描绘的实施方案中,在ENM处接收到包括或表示原始命令的消息之后,ENM可以提取原始命令,并且使用私有网络531B将命令传输到目标主机。在目标主机处,可以执行命令(例如,在启动命令的情况下,导致在目标主机处实例化一个或多个计算实例)。从VCS控制平面的角度来看,如前所述,在所描绘的实施方案中,可以与处理位于提供商网络内的主机的方式(至少就联网的一些方面而言)相同的方式来处理主机529。在各种实施方案中,在给定的ERG内,例如,网络流量可以在主机529之间流动,其流动方式类似于提供商网络处的主机内的流动方式,例如,可以支持快速的高带宽主机到主机网络链路。需注意,在至少一些实施方案中,由于ERG实际上可以表示客户的IVN 515的扩展,因此可以(例如,由客户)从IVN515处使用的地址范围(例如,与CNAR或SNAR不同的范围)选择分配给ERG内的计算实例的网络地址。
在一些实施方案中,可以至少部分地使用经由外围接口附接到主机或服务器的硬件卡来实施ENM 528,类似于图2所示的卸载的虚拟化管理组件(OVMC)269。在其他实施方案中,相对于ENM实施方式可以采用其他方法,例如,可以将其实施为操作系统进程或线程。在至少一个实施方案中,ENM 528可不一定与主机529中的一些主机共同定位在相同的机架内,例如,与针对一些组的ERG主机使用的不同,针对一个或多个ENM,可以使用单独的机架或其他物理容器。在至少一个实施方案中,ENM可相对于ERG的主机执行至少一些DHCP(动态主机配置协议)操作(例如,ENM可以充当DHCP服务器)。在一些实施方案中,不一定必须执行在图5的上下文中讨论的一个或多个操作作为将VCS控制平面命令传输到ERG主机的工作流的一部分,例如,可以使用中介的不同组合,或者可以将不同的转换组合应用于消息或命令。
示例性ERG网络管理器
在各种实施方案中,在ERG处使用一个或多个计算装置来实施的扩展资源组网络管理器(ENM)(其功能性和特征与在图1的上下文中引入的ERG 135的功能性和特征类似)可以负责几种不同类型的操作。图6示出了根据至少一些实施方案的扩展资源组网络管理器的示例性元素。在所描绘的实施方案中,ENM 605的提供商网络连接管理器603可以发起建立或参与建立去往/来自提供商网络数据中心处的资源的一个或多个安全通信通道。在至少一些实施方案中,例如,VPN隧道可以用于安全通道。
在所描绘的实施方案中,ENM 605的本地场所连接管理器607实际上可以充当ERG的VCS管理的虚拟机与在设置ERG的位置处存在的非VCS资源之间的边缘装置。在至少一些实施方案中,可针对ERG指定一个或多个公共IP地址,使得ERG外部的资源能够与ERG内的VM通信。在至少一些实施方案中,本地场所连接管理器可以例如负责实施公共到私有IP地址映射以及私有到公共IP地址映射。例如,对于使用公共IP地址作为目的地址寻址到ERG内的VM的分组,如果目标虚拟机被分配ERG内的私有IP地址,则可以执行公共到私有地址转换;类似地,可针对在相反方向上流动的分组执行对应的私有到公共IP地址转换。在不同的实施方案中,可以执行针对ERG的入站/出站数据平面流量的其他封装协议分组处理。在一些实施方案中,ENM可以执行至少一些DHCP功能,例如,以帮助设置包括ERG主机的私有网络,如下文更详细地讨论的。
在所描绘的实施方案中,ENM 605的控制平面命令转发器612可以例如负责从VCS控制平面(经由针对ERG设置的OCC传输的)接收管理命令,分析命令的内容,并且将命令转发到适当的目的地,诸如ERG的所选择的增强安全性虚拟化主机(EVH)处的VCS控制平面代理。在一些实施方式中,在转发命令之前,命令转发器612可以对所接收的命令执行一个或多个校验/验证操作并且/或者对所接收的命令版本进行一种或多种转换。
在所描绘的实施方案中,ENM 605的ERG主机引导管理器617可以负责引导/初始化/启动EVH和/或ERG的其他资源(诸如用于高速缓存虚拟机引导图像的存储服务器)。需注意,至少在一些实施方案中,并非图6所示的ENM的所有元素都可以在相同的计算装置处执行:相反,在使用分布式ENM架构的实施方案中,元素中的一个或多个元素可以在相应的计算装置处执行。在至少一些实施方案中,可以使用在EVH处实例化的虚拟机来实施图6所示的一个或多个ENM元素。在一些实施方案中,ENM 605可以包括与图6所示元素不同的元素组合。
示例性系列的虚拟机和ERG
当请求建立VM(将使用提供商网络数据中心资源或使用ERG来设置VM)时,VCS客户端在一些实施方案中可能能够从各种支持的VM类型或类别中进行选择。类似地,在至少一个实施方案中,还可以支持具有不同特征组合的各种ERG类型,客户可以从中选择最能满足其需求的ERG类型。图7示出了根据至少一些实施方案的可在虚拟化计算服务处支持的示例性系列的虚拟机和扩展资源组。
在一些实施方案中,与图1的上下文中引入的VCS 110类似的VCS的一组标准化的支持的虚拟机类型705可以被细分成多个系列,诸如通用VM系列710、计算优化的VM系列720、存储器优化的VM类别730、存储器优化的VM系列740,等等。根据待由客户端使用的给定VM的应用程序的估计的需求,可以选择来自适当系列的VM类型。可以使用由VCS选择或定义的单位来表示不同VM类型的相对资源能力,例如,对于计算而言,可以定义单元诸如虚拟CPU,其性能大致等同于以特定时钟速度运行的特定的公知的处理器。可以基于定性考虑来选择系列(例如,应用程序组合更多的是存储器密集型还是计算密集型?),而系列中的特定VM类型(例如,通用系列中的小型712与中型714与大型716)可以基于诸如期望的性能水平、成本等考虑来选择。在所描绘的实施方案中,可以例如使用具有相比于通用VM更多和/或更快的处理器或核心的主机来实施计算优化的VM 720,诸如CO小型VM 722、CO中型VM 724或CO大型VM 726。在存储器优化的VM 730,诸如MO小型VM 732、MO中型VM 734或MO大型VM 736中,相对于计算能力的存储器的量(例如,每个虚拟CPU的存储器的千兆字节数)可以比在计算优化的VM 720或通用VM中的要高。类似地,在包括SO小型VM 742、SO中型VM 744和SO大型VM 746的存储优化的系列740中,本地存储与计算能力的比率(例如,每个虚拟CPU的本地固态装置(SSD)存储的千兆字节数)可能比其他系列中的要高。在所描绘的实施方案中,还可以支持预定义系列770的微型VM(mVM),其中每一者基于其总体资源需求都可以视为微型VM。如图所示,mVM小型类别772、mVM中型类别774和/或mVM大型类别776可包括在微型VM系列中。在至少一些实施方案中,客户端还能够例如通过标识与预定义类型中的一种类型不匹配的处理、存储和存储器资源的某种组合来定义和使用它们自己的VM类型。在一些实施方案中,可以在提供商网络数据中心处设置的任何VM类型的实例也可以在ERG设置;在其他实施方案中,在ERG和提供商网络数据中心处可以支持相应的不同组的VM类型。在至少一些实施方案中,如前所述,例如,除了图7中指示的VM的类型之外,还可以在VCS或其ERG的主机处设置裸机实例。
在一些实施方案中,VCS运营商可以定义许多ERG类别755,从而使客户端能够选择在提供商网络外部的位置选择代表其设置的ERG的特征的特定组合。在所描绘的实施方案中,ERG类型(小型ERG 758,中型ERG 759和大型ERG 760)彼此可以沿若干维度中的任何维度不同。例如,在一些实施方案中,物理占用空间(包含ERG装置集合的机架所需的地板空间PF1、PF2或PF3)可以因ERG类型而不同,在不同的ERG类型之间,电力需求(PD1、PD2或PD3)可以不同,总计算能力(CC1、CC2、CC3)可以不同,并且/或者所述组高速缓存的VM图像CIS1、CIS2或CIS3可以不同。在至少一个实施方案中,当请求ERG时,客户端可以提供不一定匹配VCS支持的特定ERG类型的规范(就物理占用空间、电力需求、计算能力、高速缓存的VM图像等而言)。在这种情况下,VCS运营商可以接受ERG规范并且递送对应的装备,或者为客户端提供最匹配的支持的ERG配置的指示(如果需要,然后可由客户端订购)。在一个实施方案中,VCS运营商可能仅支持单一类型的ERG。
示例性编程交互
在各种实施方案中,VCS客户端可以使用许多编程接口来提交与设置和使用与图1的上下文中引入的ERG 135类似的ERG相关联的请求。图8示出了根据至少一些实施方案的涉及虚拟化计算服务的扩展资源组的示例性编程交互。在所描绘的实施方案中,VCS 812可以实施一个或多个程序接口877,例如,一组应用程序编程接口(API)、基于web的控制台、图形用户界面、命令行工具等,它们的任何组合都可以由VCS客户端810用来与VCS进行交互。
客户端810可以例如经由编程接口877提交SetupERG请求814,请求在VCS自身的数据中心外部的指定位置处配置扩展资源组。在支持多个类别的ERG(类似于在图7的上下文中讨论的ERG类型755)的实施方案中,可以经由请求814的参数(诸如所示出的ERG类别参数)来指示待设置的特定类型的ERG。其他参数可以指示例如将建立ERG的位置、约束诸如应该递送ERG装置/装备的集合的时间段,等等。在一些实施方案中,响应于SetupERG请求814,可以发起包括将在提供商网络处执行的各种初步任务的工作流,并且可以将响应消息诸如SetupInitiated 815传输到客户端。在至少一个实施方案中,可以为所请求的ERG实例化或指定出站命令通信器(OCC)实例(诸如上述类型的VCS扩展服务内的虚拟机),作为初步任务工作流的一部分。在一些实施方案中,此类OCC实际上可以主动等待ERG网络管理器与其进行联系。在至少一个实施方案中,在将ERG装备递送到目标外部位置、接通电源、连接到互联网等之前,ERG网络管理器当然可能无法尝试与OCC通信,这种情况可能只在VCS 812处处理SetupERG请求之后的一段时间发生。在一些实施方案中,VCS的OCC管理器892可以负责实例化OCC实例并且/或者确定针对给定的ERG将使用哪个特定的OCC实例。在至少一个实施方案中,给定的OCC实例可以例如在多租户操作模式下用于一个或多个VCS客户端的若干个不同的ERG。
在所描绘的实施方案中,在ERG已经在期望的位置递送和初始化之后,VCS 812可以将ERGOnline消息816传输到客户端810,指示客户端可以开始使用ERG。在一些实施方案中,可以使用隐式通信来通知客户端所请求的ERG已准备好使用,而不是显式消息,例如,控制台内所请求的ERG的条目可经由可视图标显示ERG已变得可用。在至少一些实施方案中,在将ERGOnline消息的等同物传输到客户端之前,可能必须满足一个或多个前提条件:例如,可能必须建立可以由OCC实例用来向ERG传输管理命令的安全通信通道,可能必须成功启动至少一些最小数量的虚拟化主机,等等。
在所描绘的实施方案中,VCS客户端810可以使用编程接口877来提交将一个或多个虚拟机作为(例如,由参数ERGID指示的)指定的ERG启动的请求817。在至少一些实施方案中,请求817可以通过与用于将一个或多个对应的命令传输到ERG的单向路径不同的路径传输到VCS控制平面。在一些实施方案中,在用于启动一个或多个VM的命令已经从OCC传输到ERG之后,指示已经发起启动的消息821可以被传输回客户端。需注意,至少在一些实施方案中,LaunchInitiated消息821可以简单地指示用于启动一个或多个VM的命令已经被发送到ERG;在此类实施方案中,实际上执行在ERG的EVH处启动VM的工作的VCS代理进程可能不一定传输确认启动是否成功的出站管理消息。
在一些实施方案中,客户端810可以提交DescribeERG请求823,以获得关于ERG的内容和/或状态的信息,并且可以以ERGInfo消息825的形式提供所请求的信息。在一些实施方案中,该信息可以包括例如被授权使用ERG(例如,在ERG处启动或终止VM)的实体的列表、ERG和/或EVH的VM的集合、ERG处的VM图像高速缓存的集合(如果有)、ERG的设置日期、与ERG计费相关的数据等。
在至少一些实施方案中,客户端810可以例如通过提交指示期望的改变的modifyERG请求828来请求对ERG的改变。此类改变可以例如包括增加或减少ERG的EVH的数量、修改被准许使用ERG的用户/群组/实体的集合的请求,等等。在所描绘的实施方案中,如果可以基于VCS的适用规则和策略来容纳所请求的修改,则可以发起用于实施改变的对应的工作流,并且可以将指示正在进行改变工作流的ModifyInitiated消息833传输到客户端。在一个实施方案中,客户端810可以提交UnconfigureERG请求841以指示不再需要ERG。作为响应,VCS可以发起工作流以终止对ERG的可访问性,关闭、拆卸和运输为ERG设置的装备,并且在一些实施方案中,ERGUnconfigured消息843可以被发送到客户端,以指示已经发起工作流并且程序化请求不可再访问ERG。在至少一些实施方案中,与图8所示相比,针对ERG相关操作可支持一组不同的编程交互。
示例性VM启动工作流
图9示出了根据至少一些实施方案的与在扩展资源组处启动虚拟机相关联的示例性工作流。在图9所示的示例性场景中,应VCS客户端的请求,在客户数据中心930处设置了ERG 934。客户端可以使用可能恰好位于数据中心930中的装置932(例如,膝上型计算机、台式机等)提交启动虚拟机的请求(LaunchVM(ERGID)请求971),指示将在ERG 934处启动VM,如工作流的步骤1所示。提交LaunchVM请求的网络路径可以与客户端经由VCS的公共API提交的任何其他VCS请求所使用的网络路径相同;因此,该路径可能不包括专门用于由OCC911将VCS控制平面命令传输到ERG的单向安全通道。在至少一个实施方案中,可以使用提供商网络的多个区域数据中心诸如区域数据中心910来实施VCS。区域数据中心中的各个区域数据中心可以例如设置在提供商网络提供服务的各种大都市地区、州或国家。在一些实施方案中,当特定的VCS客户提交程序化请求时,可以例如基于提交请求的源IP地址或基于默认情况下与客户账户相关联的“本地”区域将该程序化请求路由到特定的区域数据中心。
在图9所示的实施方案中,区域数据中心910内的控制平面装置912可获得LaunchVM请求971,处理请求内容,并且将LaunchVM命令972的内部版本传输到与将实例化VM的ERG相关联的OCC 911(如工作流程的第2步所示)。在至少一些实施方案中,可以在VCS处维护指示在各个ERG处准许启动虚拟机的用户/群组/实体的数据库931,并且在控制平面装置912处对LaunchVM请求的处理的一部分可包括使用数据库731来验证是否允许请求者在指定的ERG处启动指定类型的VM。在一个实施方案中,OCC 911可以参与对客户端提交的请求和/或LaunchVM命令的内部版本的处理/验证。
在所描绘实施方案中,在成功完成有关VM启动的处理和/或验证操作之后,作为工作流的步骤3的一部分,可以通过安全的单向通道973从OCC 911将命令的转换版本发送到ERG 934的ERG网络管理器(ENM)935。在一些实施方案中,作为在OCC处执行的操作的一部分,可以在命令中移除或替换一个或多个安全令牌,可以为命令创建消息认证码诸如HMAC,命令的条目可以由OCC 911存储在日志中,等等。
在所描绘的实施方案中,ENM 935可以在为所请求的虚拟机选择的特定EVH 937处将所接收的命令转发到VCS控制平面代理935(工作流的步骤4)。在一些实施方案中,ENM和/或代理935可以重新验证VM的请求者是否在ERG本地的数据库938中指示的准许的启动器中。在至少一个实施方案中,ENM和/或代理还可以存储指示从OCC接收的命令的日志条目。在不同的实施方案中,可以使用若干方法中的任何一种方法来决定使用哪种特定的EVH937。在一个实施方案中,客户端可能能够例如在原始的LaunchVM请求中指示将用于指定的ERG处的VM的特定EVH。在其他实施方案中,在VCS控制平面装置912处运行的一个或多个放置管理器可以选择应该启动所请求的VM的特定EVH 937。在一些实施方案中,OCC 911和/或ENM 935可以负责为所请求的VM选择特定的EVH。在LaunchVM命令在EVH 937处被传输到VCS控制平面代理935之后,在所描绘的实施方案中,例如,可以使用类似于先前在图2的上下文中讨论的技术来实例化所请求类型的新的VM 922。在各种实施方案中,与图9所示类似的消息模式可以用于其他类型的请求和对应的命令,例如,客户端可以使用与用于对应的VCS控制平面发出的指向ERG的终止命令所使用的路径不同的路径提交在ERG处终止VM的请求。在一些实施方案中,可以使用与图9所示不同的工作流来启动ERG处的虚拟机,并且/或者可以将不同的路径用于实现其他类型的客户端提交的请求所涉及的消息。
在ERG处其他提供商网络服务的示例性使用
在一些实施方案中,实施虚拟化计算服务的提供商网络还可以提供对利用VCS虚拟机作为构建块的其他更高级别的网络可访问服务的访问,例如,数据库的实例可以使用虚拟机实施,并且被提供给网络可访问数据库服务的客户端使用。在各种实施方案中,此类更高级别的服务还可以在ERG处可用,例如,使用在ERG内设置的本地VM来实施服务的特征。此外,在一些实施方案中,不直接依赖VCS虚拟机的提供商网络的其他服务,也可以从ERG处设置的VM进行访问,方式类似于可以从提供商网络数据中心内设置的VM访问此类服务的方式。图10示出了根据至少一些实施方案的在虚拟化计算服务的扩展资源组处使用附加的提供商网络服务的示例。
在所描绘的实施方案中,提供商网络1001至少包括虚拟化计算服务(VCS)(在功能和特征上与图1的VCS 110的功能和特征类似)、存储服务1030和数据库服务1042。可以使用位于提供商网络数据中心处的资源来实施VCS的一部分1010,并且可以在提供商网络外部的位置设置VCS的扩展,诸如位于客户数据中心1032内的还包括一个或多个非VCS服务器1023的ERG 1035。
在图10中描绘的示例性场景中,已经为VCS客户端建立了先前所讨论的类型的隔离虚拟网络(IVN)1015。IVN 1015包括VCS的提供商网络数据中心部分1010内的多个虚拟机(诸如VM 1017A和VM 1017B),以及位于客户数据中心1032的ERG 1035中的多个虚拟机(诸如1018J和1018K)。在所描绘的实施方案中,在任何VM处运行的程序可以利用其他提供商网络服务的资源。例如,可以从提供商网络中的VM 1017B以及ERG 1035中的VM 1018K访问存储服务1030的存储实例1022;类似地,可以从提供商网络内的VM 1017A以及ERG中的VM1018J访问数据库服务1040的数据库实例1042。在所描绘的实施方案中,可以向ERG 1035中的VM提供对其他提供商网络服务的访问,这在逻辑上等同于提供给在提供商网络内实例化的VM的访问。在ERG 1035自身内,在所描绘的实施方案中,可以在本地执行在VCS虚拟机的顶部构建的服务(即,使用VM作为构建块的服务)的配置和使用,而不必访问ERG外部的资源。例如,在DB服务1040的数据库实例包括VCS的虚拟机的一个实施方案中,响应于来自另一个ERG VM 1018K的对数据库实例的请求,可以使用ERG VM 1018J在ERG内本地创建一个新的DB实例。在所描述的实施方案中,因此,对于ERG 1035作为代表设置的VCS客户,即使VCS的控制平面组件在提供商网络数据中心内实例化并且不在ERG处复制,基于ERG的虚拟机诸如1018J和1018K可能在功能上等同于在提供商网络内实例化的VM,诸如1017A和1017B。在至少一些实施方案中,在不太可能发生的ERG与提供商网络数据中心之间的连接中断的情况下,已经在ERG处实例化的VM以及在ERG处设置的其他服务(诸如上述数据库服务)的资源实例可能会继续工作至少一段时间;因此,客户端使用ERG时可能不需要与提供商网络数据中心的持续性连接。
用于提供商网络服务扩展的方法
图11是根据至少一些实施方案的示出可在提供商网络处执行来建立扩展资源组并且使得能够在扩展资源组处设置虚拟机的操作的各方面的流程图。如图所示,在元素1101中,可以可选地例如经由VCS的编程接口提供对可以在提供商网络外部的场所设置的提供商网络的虚拟化计算服务(例如,“小型”ERG,“大型”ERG等)的一系列扩展资源组(ERG)类别的指示。ERG可以例如使VCS管理的计算实例(包括虚拟机和裸机实例等)能够在代表VCS客户访问互联网的任何位置(诸如客户数据中心、主机托管设施、组织诸如电信公司、能源公司等的远程位置)设置并且安全地管理。在至少一些实施方案中,给定的ERG可包括例如相应的一组预先配置的强化资源,诸如一个或多个增强安全性的虚拟化主机(EH)。
在至少一个实施方案中,可以设置用于将VCS控制平面命令从提供商网络数据中心安全地传输到ERG的出站命令通信器(OCC)实例。例如,在一个实施方案中,在一个或多个提供商网络数据中心处专门为ERG管理建立的特定隔离虚拟网络(IVN)中,可以建立分配给客户端所请求的特定ERG的出站命令通信器实例OCC1(元素1104)。在一些实施方案中,VCS计算实例可用于实施OCC的功能性的至少一部分。在一个实施方案中,例如,在由客户端指示的外部位置处的ERG资源的递送/部署之前,可以在VCS处接收到针对ERG的程序化请求时建立OCC1。
在所描绘的实施方案中,在OCC1处,可获得为(a)提供商网络的数据中心内的一些客户端资源集与(b)ERG之间的通信建立的安全网络通道的指示(元素1107)。通道可以例如包括在ERG的网络管理器和提供商网络数据中心内的客户端IVN之间建立的VPN隧道,以及/或者在为客户端流量指定的专用物理链路上建立的连接。在各种实施方案中,在建立安全通道之后,由ERG作为代表设置的客户端可以将与ERG操作有关的程序性请求(例如,在ERG处启动计算实例的请求)提交给VCS控制平面装置(例如,提交给在提供商网络数据中心内的服务器处运行的API处理程序)。
根据各种实施方案,可以在OCC1处确定响应于客户端请求而在VCS控制平面处生成的虚拟机启动命令(或其他管理命令)将被传输到ERG(元素1110)。将执行命令的EH的地址Addr1可以是VCS控制平面为位于提供商网络的数据中心内的至少一些主机使用的地址范围的一部分。在一个示例性场景中,OCC1可以具有与之相关联的一个或多个虚拟网络接口,并且可以经由与VCS控制平面相关联并且附接到OCC1的特定虚拟网络接口VNI1在OCC1处获得此类命令的指示。在至少一些如先前所讨论的实施方案中,可以(例如,通过设置VNI1的地址)向OCC1自身分配目标主机EH的地址。需注意,在至少一些实施方案中,可以使用不包括在OCC1和ERG之间设置的安全网络通道的路径在VCS控制平面处接收导致生成VCS控制平面命令的客户请求。在至少一个实施方案中,VNI1的安全设置可以不准许消息从OCC1发送到VCS控制平面。
在所描绘的实施方案中,OCC1可以使用安全通道将命令的经过转换的版本(例如,一些安全人工痕迹被消除/替换/重新签名以降低在ERG处误用安全人工痕迹的概率)传输到ERG(元素1113)。在一个实施方案中,可以例如经由包括与图5的上下文中所讨论的中介类似的一个或多个附加中介的路径,将命令的经过转换的版本最初传输到ERG的网络管理器(ENM)。在一些实施方案中,用于将包含命令的消息递送到ENM的地址可以是在外部场所设置的第一网络的地址范围的一部分,例如,由客户端选择的与VCS控制平面内使用的地址无关的地址范围。命令可以由ENM转发到EH。在一些实施方案中,可以沿用于将命令传送到ERG的一个或多个消息所遍历的路径来执行一个或多个地址转换。在一些实施方案中,在将VCS控制平面命令传输到ENM或ERG内的一些其他资源之前,不一定需要对其进行转换。
在ERG处,在一些实施方案中,可以在EH内实例化的VCS控制平面代理处获得命令的经过转换的版本。在至少一个实施方案中,EH可以被分配在外部场所设置的第二网络内的地址Addr1。在一些实施方案中,ENM可以为外部场所处的两个网络的一部分,其中一个网络由客户端进行配置,并且在第二网络中为主机分配来自在VCS控制平面处使用的范围内的地址。EH处的代理可以使所请求的操作在EVH(元素1116)处执行,例如,可以启动新的计算实例、可以终止现有的计算实例,等等。在所描绘的实施方案中,可以相对于由客户端提交的附加请求执行类似的工作流,例如,只要ERG保持为可操作,就可以针对各种客户端请求重复对应于元素1110至1113的操作。在各种实施方案中,客户端还可以向VCS控制平面提交与ERG自身的配置有关的各种请求,例如以查看、修改或终止ERG,如在图8的上下文中所讨论的那样,并且VCS可以执行所请求的操作。
图12是根据至少一些实施方案的示出可在虚拟化计算服务的扩展资源组处执行的操作的各方面的流程图。如元素1201中所示,供应商网络的VCS的扩展资源组(ERG)(例如,带有预先安装的软件/固件的增强安全性的服务器或主机的一个或多个机架或其他容器)可以响应于为ERG提交的程序化请求而被物理地递送到并且设置在一个位置。在至少一些实施方案中,设置装备的位置可包括提供商网络自身的数据中心外部的场所,诸如客户数据中心、主机托管设施或组织诸如电信公司或能源公司的远程工作位置。
在一些实施方案中,响应于一个或多个触发信号(简单到可能只是已经在ERG的一个或多个装置处接通电源以及/或者已经启用从ERG到互联网的连接的指示),可以使用ERG的一个或多个资源来实例化或开始ERG网络管理器(ENM)的至少一部分(元素1204)。在一个实施方案中,可以在硬件卡(例如,PCI卡)处实施ENM的功能性的至少一部分。在其他实施方案中,ENM可包括在ERG的一个或多个计算装置或主机处的一个或多个过程或执行线程。在所描绘的实施方案中,ENM可以引导或以其他方式初始化ERG的至少一些其他主机/服务器。在至少一些实施方案中,ENM可以执行一个或多个DHCP功能,例如,包括将来自VCS控制平面的主机网络地址范围的地址分配给正在被引导的主机。在一些实施方案中,ENM自身可被配置为两个网络的成员,其中一个网络由ERG作为代表递送的客户设置,并且第二(私有)网络包括可以建立计算实例的ERG主机。
在各种实施方案中,例如,作为由通过互联网从ENM向VCS控制平面提交的请求所发起的工作流的结果,可以在ENM与VCS的一个或多个资源之间建立/配置安全网络通道(例如,VPN连接/隧道和/或使用专用物理链路的连接)(元素1207)。在至少一些实施方案中,专门为从VCS控制平面向ERG传输/转发管理命令而设置的出站命令通信器实例OCC1可以被授予使用安全通道的权限。在至少一个实施方案中,如前所述,OCC1可以包括附接有多个虚拟网络接口(VNI)的虚拟机,包括仅用于从VCS控制平面接收命令的一个VNI,以及可用于经由安全通道向ERG传输命令(可能是命令的修改版本)的另一个VNI。
在各种实施方案中,在建立安全通道之后,ERG作为代表设置的VCS客户端(和/或被授予对ERG的访问权限的其他用户/群组)可以开始传输程序化请求(诸如在ERG虚拟化主机处启动计算实例的请求)。在所描绘的实施方案中,ERG的ENM可以从OCC1接收控制平面命令的一个版本(例如,响应于由ERG作为代表设置的客户端提交的请求在VCS控制平面处生成的启动VM命令)(元素1210)。在一些实施方案中,类似于图5所示的路径可用于命令,涉及一个或多个消息转换、地址转换等。在至少一个实施方案中,ENM接收命令的网络地址可以为上述客户配置的网络的一部分。ENM可以将命令转发到ERG的主机处的控制平面代理,在此可以实施该命令(例如,从而在响应于实例化VM的客户端请求而生成命令的情况下,导致在主机处启动客户端所请求的新的VM)(元素1213)。在各种实施方案中,主机可以是在ERG处设置的私有网络的一部分,并且可以在第二网络内被分配来自在VCS控制平面内用于其他主机的范围的网络地址。在所描绘的实施方案中,当接收到在VCS控制平面处生成的附加命令时,ENM可以将它们转发到适当的虚拟化主机,从而迭代对应于元素1210和元素1213的操作。
在一些实施方案中,除了将命令从VCS控制平面转发到ERG主机之外,ENM还可以执行若干种其他类型的功能。例如,根据需要,ENM还可以执行公共到私有地址或私有到公共地址的转换、其他与封装有关的操作等,以使流量能够在ERG处启动的计算实例和部署ERG的外部场所的装置之间流动(元素1216)。
需注意,在各种实施方案中,图11和/或图12中所示的一些操作可以与附图中所示的顺序不同的顺序来实施,或者可以并行地而不是顺序地执行。另外,在一个或多个实施中,可不需要在图11和/或图12中展示的操作中的一些。
用例
在各种场景中,有关将提供商网络的网络可访问服务诸如虚拟化计算服务的数据平面逻辑地且安全地扩展到提供商网络之外的场所中的上述技术可能非常有用。将提供商网络资源(诸如各种能力水平的虚拟机)用于可扩展性、可用性、可靠性、安全性和可负担性等特征的许多组织可能希望在它们所选择的位置,例如在客户数据中心、主机托管设施和/或临时现场工作场所内使用类似的资源。在一些情况下,因为对可存储在此类位置的大量应用程序数据的访问,这些位置可能是优选的;如果可能,提供商网络客户端可能更希望避免与通过互联网将如此大量的数据传输到提供商网络自身的数据中心相关联的成本和/或延迟,并且可能希望确保数据尽可能不离开客户所处的场所。客户端有时可能需要在与互联网的连接可能不可靠或昂贵的远程位置(例如,在石油钻机、蜂窝电话塔、科学数据收集传感器阵列等附近)使用虚拟机和/或将虚拟机用作构建块的服务。一些组织可能例如在办公室或其他物理位置中拥有大量的工程师/设计人员,并且可能需要使用工程师/设计人员的极低延迟距离内的虚拟机来执行渲染或其他计算密集型操作。在具有互联网连接的任何期望的位置使用本地装备来支持与在提供商网络数据中心处提供的能力相同的能力可极大地扩展可以由提供商网络客户端高效、安全地运行的应用范围。
说明性计算机系统
在至少一些实施方案中,实施用于支持本文所述的服务扩展技术类型的控制平面和数据平面组件中的一个或多个组件的服务器(例如,在提供商网络数据中心外部的所选择的位置设置和使用虚拟化计算服务的扩展资源组)可以包括通用计算机系统,该通用计算机系统包括或被配置为访问一个或多个计算机可访问介质。图13示出了此类通用计算装置9000。在所示实施方案中,计算装置9000包括经由输入/输出(I/O)接口9030耦合到(可包括非易失性存储器模块和易失性存储器模块两者的)系统存储器9020的一个或多个处理器9010。计算装置9000进一步包含联接到I/O接口9030的网络接口9040。
在各种实施例中,计算装置9000可以是包含一个处理器9010的单处理器系统,或者包含若干处理器9010(例如,两个、四个、八个或另一合适数目)的多处理器系统。处理器9010可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器9010可以是实施多种指令集架构(ISA)中的任何一种的通用或嵌入式处理器,诸如,x86、PowerPC、SPARC或MIPS ISA或任何其他合适的ISA。在多处理器系统中,处理器9010中的每一个处理器可以共同但不是必须地实施相同的ISA。在一些实施中,可以使用图形处理单元(GPU)来代替常规的处理器或作为常规处理器的补充。
系统存储器9020可以被配置为存储可由一个或多个处理器9010访问的指令和数据。在至少一些实施例中,系统存储器9020可以包括易失性和非易失性部分;在其他实施例中,可以仅使用易失性存储器。在各种实施方案中,系统存储器9020的易失性部分可以使用任何合适的存储器技术来实施,例如,静态随机存取存储器(SRAM)、同步动态RAM或任何其他类型的存储器。对于系统存储器的非易失性部分(例如,其可以包括一个或多个NVDIMM),在一些实施方案中,可以使用基于闪存的存储器装置,包含NAND闪存装置。在至少一些实施方案中,系统存储器的非挥发性部分可包含电源,例如,超级电容器或其他电力存储装置(例如,电池)。在各种实施方案中,基于忆阻器的电阻随机存取存储器(ReRAM)、三维NAND技术、铁电RAM、磁阻RAM(MRAM)或任何各种类型的相变存储器(PCM)可以至少用于系统存储器的非易失性部分。在所示实施方案中,实施一个或多个期望的功能诸如上述的那些方法、技术和数据的程序指令和数据被示出为作为代码9025和数据9026存储在系统存储器9020中。
在一个实施方案中,I/O接口9030可以被配置成协调处理器9010、系统存储器9020与装置中的任何外围装置之间的I/O业务量,包含网络接口9040或如各种类型的持久和/或易失性存储装置的其他外围接口。在一些实施方案中,I/O接口9030可执行任何必要的协议、定时或其他数据转换,以将来自一个组件(例如,系统存储器9020)的数据信号转换成适合于由另一个组件(例如,处理器9010)使用的格式。在一些实施方案中,I/O接口9030可包括对通过各种类型的外围总线连接的装置的支持,诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体。在一些实施方案中,I/O接口9030的功能可以分成两个或更多个单独的组件,诸如北桥和南桥。而且,在一些实施方案中,I/O接口9030的一些或全部功能性(诸如到系统存储器9020的接口)可以直接结合到处理器9010内。
网络接口9040可以被配置为允许数据在计算装置9000和附接到一个或多个网络9050的其他装置9060之间交换,诸如图1至图12中所示的其他计算机系统或装置。在各种实施方案中,网络接口9040可以支持经由任何合适的有线或无线通用数据网络诸如多种类型的以太网网络的通信。另外,网络接口9040可以支持经由诸如模拟语音网络或数字光纤通信网络的电信/电话网络,经由诸如光纤通道SAN的存储区域网络或经由任何其他合适类型的网络和/或协议的通信。
在一些实施方案中,系统存储器9020可表示计算机可存取介质的一个实施方案,该计算机可存取介质被配置为存储用于实施在图1至图12的上下文中讨论的方法和设备的程序指令和数据的至少一个子集。然而,在其他实施方案中,可以在不同类型的计算机可存取介质上接收、发送或存储程序指令和/或数据。一般而言,计算机可存取介质可以包含非暂时性存储介质或如磁性或光学介质等存储介质,例如经由I/O接口9030耦合到计算装置9000的磁盘或DVD/CD。非暂时性计算机可存取存储介质还可以包括任何易失性或非易失性介质,诸如RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等,这些任何易失性或非易失性介质可被包括在计算装置9000的一些实施方案中作为系统存储器9020或另一种类型的存储器。在一些实施方案中,多个非暂时性计算机可读存储介质可以共同存储程序指令,当所述程序指令在一个或多个处理器上或者跨一个或多个处理器执行时实施上述方法和技术的至少一个子集。计算机可存取介质还可以包括传输介质或经由通信介质诸如网络和/或无线链路传送的信号,诸如电信号、电磁信号或数字信号,诸如可经由网络接口9040实施。在各种实施方案中,如图13中所示的计算装置的多个计算装置中的部分或全部可用于实施所描述的功能性;例如,在多种不同装置和服务器上运行的软件组件可以合作来提供功能性。在一些实施方案中,除了使用通用计算机系统实施之外或代替使用通用计算机系统实施,还可以使用存储装置、网络装置或专用计算机系统来实施所描述的功能性的部分。如本文所使用的术语“计算装置”指至少所有这些类型的装置,并且不限于这些类型的装置。
可以根据以下条款来描述本公开的实施方案:
1.一种系统,包括:
提供商网络的虚拟化计算服务的一个或多个计算装置,其中所述提供商网络包括一个或多个数据中心,并且其中位于所述一个或多个数据中心处的所述虚拟化计算服务的一组虚拟化主机被分配第一网络地址范围内的相应的网络地址;
其中所述一个或多个计算装置包含指令,所述指令在一个或多个处理器上或跨所述一个或多个处理器执行时致使所述一个或多个计算装置进行以下操作:
在与扩展资源组相关联的出站命令通信器处获得虚拟机启动命令,其中所述出站通信器具有在所述第一网络地址范围内的第一网络地址,其中所述扩展资源组包括位于所述一个或多个数据中心外部的场所处的一个或多个虚拟化主机,并且其中所述虚拟机启动命令包括所述第一网络地址的指示;以及
经由安全网络通道向所述扩展资源组传输指示所述虚拟机启动命令并且指示所述第一网络地址的消息,其中所述消息的目的地址是所述场所处使用的第二网络地址范围的一部分,其中目标虚拟化主机被分配在所述扩展资源组处建立的私有网络内的所述第一网络地址,并且其中在所述目标虚拟化主机处对所述虚拟机启动命令的处理导致所述目标虚拟化主机处的虚拟机的实例化。
2.根据条款1所述的系统,其中所述安全网络通道在所述一个或多个数据中心与所述扩展资源组之间建立,并且其中所述安全网络通道包括以下一项或多项:(a)VPN隧道或(b)所述场所与所述提供商网络之间的专用物理链路。
3.根据条款1至2中任一项所述的系统,其中所述一个或多个计算装置包括另外的指令,所述另外的指令在所述一个或多个处理器上或者跨越所述一个或多个处理器执行时还致使所述一个或多个计算装置进行以下操作:
确定已经由编程接口提交了建立所述扩展资源组的请求,其中响应于建立所述扩展资源组的请求建立所述出站命令通信器。
4.根据条款1至3中任一项所述的系统,其中所述一个或多个计算装置包括另外的指令,所述另外的指令在所述一个或多个处理器上或者跨越所述一个或多个处理器执行时还致使所述一个或多个计算装置进行以下操作:
在确定接收到建立所述安全网络通道的请求之前,实例化所述出站命令通信器。
5.根据条款1至4中任一项所述的系统,其中所述出站命令通信器在另一个虚拟化主机上的虚拟机中执行,其中所述另一个虚拟化主机被分配在所述第一网络地址范围内的第二网络地址。
6.一种方法,包括:
由提供商网络的一个或多个计算设备执行以下操作:
在所述提供商网络的计算服务的控制平面处接收建立计算实例的请求;
响应于所述请求在所述提供商网络的第一出站命令通信器处获得将在目标主机处建立所述计算实例的指示,其中所述目标主机是位于客户端场所处的所述提供商网络的第一扩展资源组的一部分,其中第一网络地址在所述控制平面处与所述目标主机相关联,并且其中所述第一出站命令通信器至少被分配所述第一网络地址;以及
传输指示将第二网络地址作为目的地的消息,其中所述第二网络地址是在所述客户端场所处建立的第一网络的一部分,其中所述消息包括在所述目标主机处建立所述计算实例的命令,其中所述第一网络地址被分配给在所述客户端场所处建立的第二网络内的所述目标主机,并且其中在所述目标主机处对所述命令的处理导致所述计算实例的建立。
7.根据条款6所述的方法,其中所述计算实例包括虚拟机。
8.根据条款6至7中任一项所述的方法,还包括由所述提供商网络的一个或多个计算装置执行以下操作:
经由编程接口提供在所述提供商网络内的主机处支持的一组虚拟机类别的指示,其中所述计算实例属于所述集合中的特定的虚拟机类别。
9.根据条款6至8中任一项所述的方法,其中在所述第一出站命令通信器处获得的将建立所述计算实例的所述指示包括第一安全人工痕迹,所述方法还包括由所述提供商网络的所述一个或多个计算装置执行以下操作:
在传输到所述第二地址的所述消息中包括第二安全人工痕迹,其中所述第二安全人工痕迹在所述第一出站命令通信器处生成。
10.根据条款6至9中任一项所述的方法,还包括由所述提供商网络的所述一个或多个计算装置执行以下操作:
以编程方式将所述第一出站命令通信器附接到第一虚拟网络接口和第二虚拟网络接口,其中所述第一虚拟网络接口用于从所述控制平面获得将建立所述计算实例的所述指示,并且其中所述第二虚拟网络接口用于访问安全网络通道,在所述安全网络通道上将所述消息传输到所述第一扩展资源组。
11.根据条款10所述的方法,其中所述安全网络通道包括以下一项或多项:(a)虚拟专用网络(VPN)隧道或(b)所述客户端场所与所述提供商网络之间的专用物理链路。
12.根据条款6至10中任一项所述的方法,其中所述第一出站命令通信器至少部分地使用虚拟机来实施。
13.根据条款6至10或条款12中任一项所述的方法,其中所述第一扩展资源组代表所述提供商网络的计算服务的第一客户端建立,其中所述第一出站命令通信器配置在所述计算服务的隔离虚拟网络内,其中所述隔离虚拟网络包括至少第二出站命令通信器,所述第二出站命令通信器被建立为与代表所述计算服务的第二客户端建立的第二扩展资源组进行通信。
14.根据条款6至10或条款12至13中任一项所述的方法,其中所述第一扩展资源组代表所述提供商网络的计算服务的客户端建立,所述方法还包括由所述一个或多个计算装置执行以下操作:
为所述计算实例分配来自代表所述客户端的在所述提供商网络内建立的隔离虚拟网络的网络地址范围的网络地址。
15.根据条款6至10或条款12至14中任一项所述的方法,其中经由与所述提供商网络的计算服务的公共应用程序编程接口相关联的第一网络路径来接收建立所述计算实例的所述请求,并且其中所述消息经由第二网络路径传输到所述第二网络地址。
16.一种系统,包括:
在服务提供商环境的一个或多个计算装置上执行的控制平面;以及
耦合到所述服务提供商环境的第一网络的出站命令通信器,其中所述第一网络使用网络地址范围,其中所述出站命令通信器被分配所述网络地址范围中的第一网络地址,并且其中所述服务提供商环境的所述第一网络包括被配置为托管计算实例的多个服务器;
其中所述控制平面被配置为:
向所述第一网络地址发送包括启动计算实例的请求的第一消息;以及
其中所述出站命令通信器被配置为:
接收所述第一消息;以及
向被分配第二网络地址的装置发送第二消息,其中所述第二消息包括启动所述计算实例的所述请求的至少一部分,其中所述第二网络地址是在客户数据中心处建立的第二网络的一部分,其中所述装置被配置为将所述第二消息发送到与建立在所述客户数据中心内的第三网络耦合的目标服务器,其中所述第三网络使用所述网络地址范围的至少一部分,并且其中所述目标服务器被分配所述第一网络地址。
17.根据条款16所述的系统,其中所述第二消息经由以下一项或多项传输到所述第二网络地址:(a)VPN隧道或(b)所述客户数据中心和所述服务提供商环境之间的专用物理链路。
18.根据条款16至17中任一项所述系统,其中所述计算实例包括裸机计算实例。
19.根据条款16至18中任一项所述的系统,其中所述出站命令通信器被进一步配置为:
在发送到所述第二网络地址的所述第二消息中,包括能够由所述目标服务器进行认证的安全对象。
20.根据条款16至19中任一项所述的系统,其中被分配所述第二网络地址的所述装置耦合到所述第二网络和所述第三网络两者,并且其中所述装置被进一步配置为:
使所述第二消息的目的地作为所述第一网络地址;以及
将所述第二消息发送到所述目标服务器。
21.一种系统,包括:
网络管理器;以及
提供商网络的虚拟化计算服务的扩展资源组的一个或多个计算装置,其中所述扩展资源组至少包括虚拟化主机,所述虚拟化主机包括防篡改存储装置和受信任的平台模块,其中所述虚拟化主机位于所述提供商网络外部的场所,其中在所述场所处配置的第一网络包括第一范围的网络地址,并且其中位于所述提供商网络的一个或多个数据中心处的所述虚拟化计算服务的虚拟化主机被分配来自第二范围的网络地址的相应网络地址;
其中所述网络管理器包括指令,所述指令在一个或多个处理器上或者跨所述一个或多个处理器执行时致使所述网络管理器进行以下操作:
经由安全网络通道获得从与所述扩展资源组相关联的出站命令通信器传输的包括虚拟机启动命令的消息,其中所述虚拟机启动命令响应于经由所述虚拟化计算服务的公共应用程序编程接口提交的请求而生成,并且其中分配给所述网络管理器的所述消息的目的地址在所述第一范围的网络地址内;以及
将所述虚拟机启动命令从所述网络管理器传输到所述扩展资源组的所述虚拟化主机,其中在所述虚拟化主机处对所述虚拟机启动命令的处理导致在所述虚拟化主机处对虚拟机的实例化,并且其中在所述扩展资源组处建立的私有网络内,所述虚拟化主机被分配来自所述第二范围的地址。
22.根据第21条所述的系统,其中响应于以下一项或多项而启动所述网络管理器的至少一部分:(a)所述扩展资源组的特定装置处的通电信号;或(b)所述扩展资源组的特定装置能够访问所述互联网的指示。
23.根据条款21至22中任一项所述的系统,其中所述网络管理器包括另外的指令,所述另外的指令在所述一个或多个处理器上或者跨所述一个或多个处理器执行时进一步使所述网络管理器进行以下操作:
在所述虚拟机处生成的网络分组处执行一个或多个转换操作;以及
将所述网络分组的所述经过转换的版本传输到网络端点,其中所述网络端点:(a)不是所述提供商网络的一部分,并且(b)不是所述扩展资源组的一部分。
24.根据条款21至23中任一项所述的系统,其中所述网络管理器包括另外的指令,所述另外的指令在所述一个或多个处理器上或者跨所述一个或多个处理器执行时进一步使所述网络管理器进行以下操作:
在所述虚拟化主机处发起引导操作。
25.根据条款21至24中任一项所述的系统,其中所述网络管理器的至少一部分在所述扩展资源组的外围卡处实施。
26.一种方法,包括:
在提供商网络的扩展资源组的网络管理器处获得包括用于在所述扩展资源组的主机处启动计算实例的命令的消息,其中所述主机位于所述提供商网络外部的场所,其中所述消息由所述网络管理器在所述场所处配置的第一网络的第一地址范围内的地址获得;以及
将所述命令从所述网络管理器传输到所述主机以使所述主机实例化计算实例,其中,在所述场所处配置的第二网络内,为所述主机分配第二地址范围内的地址,其中所述第二地址范围的一个或多个地址由所述提供商网络的控制平面分配给所述提供商网络内的相应的主机。
27.根据条款26所述的方法,还包括:
在实例化所述计算实例之前,使用所述主机的安全模块来验证所述主机是否符合验收标准。
28.根据条款26至27中任一项所述的方法,其中所述主机包括存储装置,所述方法还包括:
在所述存储装置处存储所述计算实例的状态信息的加密版本,其中对所述加密版本的解密需要将所述存储装置物理地附接到所述主机。
29.根据条款26至28中任一项所述的方法,其中所述扩展资源组包括计算实例图像高速缓存,其中实例化所述计算实例包括:
利用从所述高速缓存获得的特定的计算实例图像。
30.根据条款26至29中任一项所述的方法,还包括:
获得被授权请求所述扩展资源组内的计算实例的启动的一个或多个实体的指示;以及
在实例化所述计算实例之前,验证所述计算实例由所述一个或多个实体中的一个实体请求。
31.根据条款26至30中任一项所述的方法,其中所述网络管理器的至少一部分在经由外围接口附接到所述扩展资源组的主机的卡上实施。
32.根据条款26至31中任一项所述的方法,其中所述主机被结合到所述扩展资源组的机架内,并且其中所述网络管理器的至少一部分在未结合到所述机架内的一个或多个装置处实施。
33.根据条款26至32中任一项所述的方法,还包括:
响应于一个或多个触发信号实例化所述网络管理器;以及
由所述网络管理器发起用于与所述提供商网络的至少一部分通信的安全网络通道的配置。
34.根据条款33所述的方法,其中所述一个或多个触发信号包括以下一项或多项:(a)在所述扩展资源组的特定装置处的通电信号或(b)所述扩展资源组的特定装置能够访问所述互联网的指示。
35.根据条款26至33中任一项所述的方法,还包括:
由所述网络管理器在所述主机处发起引导操作。
36.一种系统,包括:
提供商网络的扩展资源组的一个或多个计算装置,其中所述扩展资源组的至少主机位于所述提供商网络外部的场所处;
其中所述一个或多个计算装置包含指令,所述指令在一个或多个处理器上或跨所述一个或多个处理器执行时致使所述一个或多个计算装置进行以下操作:
在所述扩展资源组的网络管理器处获得包括启动计算实例的命令的消息,其中所述消息由所述网络管理器在所述场所处配置的第一网络的第一地址范围内的地址获得;以及
将所述命令从所述网络管理器传输到所述主机,其中对所述命令的处理导致在所述主机处实例化计算实例,并且其中,在所述场所处配置的第二网络内,为所述主机分配第二地址范围内的地址,其中所述第二地址范围的一个或多个地址由所述提供商网络的控制平面分配给所述提供商网络内的相应的主机。
37.根据条款36所述的系统,其中所述一个或多个计算装置包括另外的指令,所述另外的指令在所述一个或多个处理器上或者跨所述一个或多个处理器执行时致使所述一个或多个计算装置进行以下操作:
在实例化所述计算实例之前,使用所述主机的安全模块来验证所述主机是否符合验收标准。
38.根据条款36至37中任一项所述的系统,其中所述一个或多个计算装置包括另外的指令,所述另外的指令在所述一个或多个处理器上或者跨越所述一个或多个处理器执行时还致使所述一个或多个计算装置进行以下操作:
在存储装置处存储所述计算实例的状态信息的加密版本,其中对所述加密版本的解密需要将所述存储装置物理地附接到所述主机。
39.根据条款36至38中任一项所述的系统,其中所述扩展资源组包括计算实例图像高速缓存,其中实例化计算实例包括:
利用从所述高速缓存获得的特定的计算实例图像。
40.根据条款36至39中任一项所述的系统,其中经由以下一项或多项在所述网络管理器处获得所述消息:(a)将所述场所连接到所述提供商网络的专用物理链路,或(b)虚拟私有网(VPN)隧道。
结论
各种实施方案还可包括接收、发送或存储根据以上描述在计算机可存取介质上实施的指令和/或数据。一般而言,计算机可访问介质可以包括一个或多个存储介质(诸如磁性介质或光学介质,例如光盘或DVD/CD-ROM)、易失性或非易失性介质诸如RAM(例如SDRAM、DDR、RDRAM、SRAM等)、ROM等,以及经由通信介质诸如网络和/或无线链路传送的传输介质或信号,诸如电信号、电磁信号或数字信号。
如图所示和本文描述的各种方法表示方法的示例性实施方案。方法可以软件、硬件或它们的组合的方式实施。可改变方法的顺序,并且可添加、重新排序、组合、省略、修改等各种元件。
对于受益于本公开内容的本领域的技术人员显而易见的是,可以进行各种修改和改变。本发明旨在涵盖所有这些修改和变化,并且因此,以上描述应被视为是说明性的,而非限制性的。

Claims (10)

1.一种系统,包括:
第一网络管理器;和
提供商网络的虚拟化计算服务的扩展资源组的一个或多个计算装置,其中所述扩展资源组至少包括第一虚拟化主机,所述第一虚拟化主机包括防篡改存储装置和受信任的平台模块,其中所述第一虚拟化主机位于所述提供商网络外部的第一场所处,其中在所述第一场所处配置的第一网络包括第一范围的网络地址,并且其中位于所述提供商网络的一个或多个数据中心处的所述虚拟化计算服务的虚拟化主机被分配来自第二范围的网络地址的相应网络地址;
其中所述第一网络管理器包括指令,所述指令在处理器上执行时使所述第一网络管理器:
经由安全网络通道获得从与所述扩展资源组相关联的第一出站命令通信器传输的包括虚拟机启动命令的消息,其中所述虚拟机启动命令是响应于经由所述虚拟化计算服务的公共应用程序编程接口提交的请求而生成的,并且其中分配给所述第一网络管理器的所述消息的目的地址在所述第一范围的网络地址内;以及
将所述虚拟机启动命令从所述第一网络管理器传输到所述扩展资源组的第一虚拟化主机,其中在所述第一虚拟化主机处对所述虚拟机启动命令的处理导致在所述第一虚拟化主机处对虚拟机的实例化,并且其中在所述第一扩展资源组处建立的私有网络内,所述第一虚拟化主机被分配来自所述第二范围的地址。
2.根据权利要求1所述的系统,其中响应于以下的一者或多者而启动所述第一网络管理器的至少一部分:(a)所述扩展资源组的特定装置处的通电信号、或(b)所述扩展资源组的特定装置能够访问互联网的指示。
3.根据权利要求1所述的系统,其中所述第一网络管理器包括另外的指令,所述另外的指令在所述处理器上执行时进一步使所述第一网络管理器:
对在所述虚拟机处生成的第一网络分组执行第一组一个或多个转换操作;以及
将所述第一网络分组的经转换的版本传输到第一网络端点,其中所述第一网络端点:(a)不是所述提供商网络的一部分,并且(b)不是所述扩展资源组的一部分。
4.根据权利要求1所述的系统,其中所述第一网络管理器包括另外的指令,所述另外的指令在所述处理器上执行时进一步使所述第一网络管理器:
在所述第一虚拟化主机处发起引导操作。
5.根据权利要求1所述的所述的系统,其中所述第一网络管理器的至少一部分在所述扩展资源组的外围卡处实现。
6.一种方法,包括:
在提供商网络的扩展资源组的第一网络管理器处获得包括用于在所述扩展资源组的第一主机处启动计算实例的命令的消息,其中所述第一主机位于所述提供商网络外部的第一场所处,其中所述消息由所述第一网络管理器在所述第一场所处配置的第一网络的第一地址范围内的地址处获得;以及
将所述命令从所述第一网络管理器传输到所述第一主机以使所述第一主机实例化所述计算实例,其中,在所述第一场所处配置的第二网络内,为所述第一主机分配第二地址范围内的地址,其中所述第二地址范围的一个或多个地址由所述提供商网络的控制平面分配给所述提供商网络内的相应主机。
7.根据权利要求6所述的方法,还包括:
在实例化所述计算实例之前,使用所述第一主机的安全模块来验证所述第一主机满足接收标准。
8.根据权利要求6所述的方法,其中所述第一主机包括第一存储装置,所述方法还包括:
在所述第一存储装置处存储所述计算实例的状态信息的加密版本,其中对所述加密版本的解密需要将所述第一存储装置物理地附接到所述第一主机。
9.根据权利要求6所述的方法,其中所述扩展资源组包括计算实例映像高速缓存,其中实例化所述计算实例包括:
利用从所述高速缓存获得的特定计算实例映像。
10.根据权利要求6所述的方法,还包括:
获得被授权请求所述扩展资源组内的计算实例的启动的一个或多个实体的指示;以及
在实例化所述计算实例之前,验证所述计算实例被所述一个或多个实体中的实体所请求。
CN202210996225.1A 2018-11-20 2019-11-19 提供商网络服务扩展 Pending CN115185699A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US16/196,736 2018-11-20
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
CN201980075042.2A CN113039757B (zh) 2018-11-20 2019-11-19 提供商网络服务扩展
PCT/US2019/062243 WO2020106740A1 (en) 2018-11-20 2019-11-19 Provider network service extensions

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201980075042.2A Division CN113039757B (zh) 2018-11-20 2019-11-19 提供商网络服务扩展

Publications (1)

Publication Number Publication Date
CN115185699A true CN115185699A (zh) 2022-10-14

Family

ID=68835383

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980075042.2A Active CN113039757B (zh) 2018-11-20 2019-11-19 提供商网络服务扩展
CN202210996225.1A Pending CN115185699A (zh) 2018-11-20 2019-11-19 提供商网络服务扩展

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201980075042.2A Active CN113039757B (zh) 2018-11-20 2019-11-19 提供商网络服务扩展

Country Status (5)

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

Family Cites Families (9)

* 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
US9331938B2 (en) 2012-04-13 2016-05-03 Nicira, Inc. Extension of logical networks across layer 3 virtual private networks
JP6130518B2 (ja) * 2013-01-22 2017-05-17 アマゾン・テクノロジーズ・インコーポレーテッド インスタンスホストの構成
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
US9686121B2 (en) 2013-09-23 2017-06-20 Amazon Technologies, Inc. Client-premise resource control 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

Also Published As

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

Similar Documents

Publication Publication Date Title
US11469964B2 (en) Extension resource groups of provider network services
US11088944B2 (en) Serverless packet processing service with isolated virtual network integration
US10848431B2 (en) Virtual network interface objects
US10963282B2 (en) Computing service with configurable virtualization control levels and accelerated launches
JP6771650B2 (ja) クラウドコンピューティングシステムにおいて仮想マシンが物理サーバにアクセスするための方法、装置、およびシステム
US20200159555A1 (en) Provider network service extensions
US11563799B2 (en) Peripheral device enabling virtualized computing service extensions
US11520530B2 (en) Peripheral device for configuring compute instances at client-selected servers
US10397096B2 (en) Path resolution in InfiniBand and ROCE networks
US11296981B2 (en) Serverless packet processing service with configurable exception paths
CN113039757B (zh) 提供商网络服务扩展
WO2021061414A1 (en) Peripheral device for configuring compute instances at client- selected servers
US10848418B1 (en) Packet processing service extensions at remote premises
US11824943B1 (en) Managed connectivity between cloud service edge locations used for latency-sensitive distributed applications
US20240028375A1 (en) Control plane lifecycle management with dpu devices
US20200379658A1 (en) Secure Sharing of Storage Resources

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination