置放群组
在您启动新的 EC2 实例时,EC2 服务会尝试以某种方式放置实例,以便将所有实例分布在基础硬件上以最大限度减少相关的故障。您可以使用置放群组影响如何放置一组相互依赖的实例,从而满足您的工作负载需求。根据工作负载类型,您可以使用以下置放策略之一创建置放群组:
-
集群 – 将一个可用区中靠近的实例打包在一起。通过使用该策略,工作负载可以实现所需的低延迟网络性能,以满足高性能计算(HPC)应用程序通常使用的紧密耦合的节点到节点通信的要求。
-
分区 – 将实例分布在不同的逻辑分区上,以便一个分区中的实例组不会与不同分区中的实例组使用相同的基础硬件。该策略通常为大型分布式和重复的工作负载所使用,例如,Hadoop、Cassandra 和 Kafka。
-
分布 – 将一小组实例严格放置在不同的基础硬件上以减少相关的故障。
创建置放群组无需支付费用。
置放群组策略
您可以使用以下一种置放策略创建置放群组。
集群置放群组
集群置放群组是单个可用区中的实例的逻辑分组。集群置放群组可横跨同一区域中的对等虚拟专用网络(VPC)。同一集群置放群组中的实例可针对 TCP/IP 流量享受更高的每流吞吐量限制,并且这些实例将处于网络的同一高等分带宽段中。
下图显示放入集群置放群组中的实例。

建议将集群置放群组用于可受益于低网络延迟和/或高网络吞吐量的应用程序。如果大部分网络流量在组中的实例之间进行,也建议使用集群置放群组。要为置放群组提供最低延迟和最高每秒数据包数的网络性能,请选择支持增强联网的实例类型。有关更多信息,请参阅增强联网。
我们建议您按照以下方法启动您的实例:
-
使用单个启动请求在置放群组中启动所需的实例数。
-
对置放群组中的所有实例使用相同的实例类型。
如果您以后尝试将更多实例添加到置放群组,或者如果您尝试在置放群组中启动多个实例类型,都会增大发生容量不足错误的可能性。
如果您停止置放群组中的某个实例,然后重启该实例,则其仍将在该置放群组中运行。但是,如果没有足够容量可用于该实例,则启动将会失败。
如果您在已有正在运行的实例的置放群组中启动实例时接收到容量错误信息,请在该置放群组中停止并启动所有实例,然后尝试再次启动。启动实例可能会将实例迁移至具有针对所有请求实例的容量的硬件。
分区置放群组
分区置放群组可帮助您的应用程序减少相关硬件故障的可能性。在使用分区置放群组时,Amazon EC2 将每个群组划分为多个逻辑段(称为“分区”)。Amazon EC2 确保置放群组中的每个分区具有自己的一组机架。每个机架具有自己的网络和电源。置放群组中的任何两个分区将不会分享相同的机架,从而让您可以在您的应用程序中隔离硬件故障的影响。
下图是单个可用区中的分区置放群组简单的直观表示。它显示了放入到一个分区置放群组的实例,该置放群组具有三个分区 — 分区 1、分区 2 和 分区 3。每个分区均包含多个实例。一个分区中的实例不与其他分区中的实例共享机架,这使您可以将单一硬件故障的影响限定在相关的分区内。

可使用分区置放群组跨不同机架部署大型分布式和重复的工作负载,例如 HDFS、HBase 和 Cassandra。当您在分区置放群组中启动实例时,Amazon EC2 将尝试跨您指定数量的分区均匀分发实例。您还可以在特定分区中启动实例,以更好地控制实例的放置位置。
分区置放群组可以在同一区域的多个可用区中具有分区。对于每个可用区,一个分区置放群组最多可具有 7 个分区。可在分区置放群组启动的实例的数量仅受账户限制的限制。
此外,分区置放群组提供对分区的可见性,您可以查看哪些实例位于哪些分区中。您可以与具有感知技术能力的应用程序共享此信息,例如 HDFS、HBase 和 Cassandra。这些应用程序使用此信息做出智能数据复制决策,用于提升数据的可用性和持久性。
如果在一个分区置放群组中启动一个实例,而没有足够的独特硬件来满足请求,则请求将失败。Amazon EC2 会随着时间的推移提供更多不同的硬件,因此,您稍后可以重试请求。
分布置放群组
分布置放群组是将实例分别置放在不同硬件上的实例群组。
建议在具有少量应单独放置的重要实例的应用程序中使用分布置放群组。通过在分布置放群组中启动实例,可以降低在实例位于同一设备中时同时出现故障的风险。分布置放群组使用不同的硬件,因而适合混用不同类型的实例或随着时间推移逐步启动实例的场景。
如果在一个排列置放群组中启动一个实例,而没有足够的独特硬件来满足请求,则请求将失败。Amazon EC2 会随着时间的推移提供更多不同的硬件,因此,您稍后可以重试请求。置放群组可以跨机架或主机分布实例。主机级别分布置放群组只能用于 Amazon Outposts。
机架级别分布置放群组
下图显示单个可用区中的 7 个实例,这些实例已放入一个分布置放群组。将七个实例置放在七个不同的机架上,每个机架都具有自己的网络和电源。

机架分布置放群组可以跨越同一区域中的多个可用区。对于机架分布置放群组,每个群组在每个可用区中最多可以运行七个实例。
主机级别分布置放群组
主机级别置放群组仅适用于 Amazon Outposts。对于主机级别分布置放群组,每个 Outpost 上可运行的实例数量没有限制。有关更多信息,请参阅Amazon Outposts 上的置放群组。
置放群组规则和限制
一般规则和限制
在使用置放群组之前,请注意以下规则:
-
在每个区域中,最多可以为每个账户创建 500 个置放群组。
-
您为置放群组指定的名称在您的区域 Amazon 账户中必须是唯一的。
-
不能合并置放群组。
-
一次可在一个置放群组中启动一个实例;实例不能跨多个置放群组。
-
按需容量预留 和 zonal 预留实例 为特定的可用区中的 EC2 实例提供容量预留。置放群组中的实例可以使用容量预留。使用带有容量预留的集群置放群组时,建议您在集群置放群组内预留容量。有关更多信息,请参阅集群置放群组中的容量预留。
可用区预留实例在特定的可用区中提供实例容量预留。置放群组中的实例可以使用容量预留。但是,您无法使用可用区预留实例为置放群组显式预留容量。
-
您无法在置放群组中启动专用主机。
集群置放群组规则和限制
以下规则适用于集群置放群组:
-
支持以下实例类型:
-
一个集群置放群组不能跨过多个可用区。
-
集群置放群组中的两个实例之间的最大网络吞吐量流量速度受两个实例中的较慢实例限制。对于具有高吞吐量要求的应用程序,请选择其网络连接满足您要求的实例类型。
-
对于启用了增强联网的实例,以下规则适用:
-
对于单个流的流量,集群置放群组中的实例最多可以使用 10 Gbps。对于单个流的流量,不在集群置放群组中的实例最多可以使用 5 Gbps。
-
在同一个区域中,通过公有 IP 地址空间或者通过 VPC 终端节点往返于 Amazon S3 存储桶之间的流量可以使用所有可用的实例聚合带宽。
-
-
您可以将多种类型的实例启动到集群置放群组中。不过,这会降低提供所需容量以成功完成启动的可能性。我们建议集群置放群组中的所有实例使用相同的实例类型。
-
指向 Internet 的网络流量以及通过 Amazon Direct Connect 连接指向本地资源的流量限制为 5 Gbps。
分区置放群组规则和限制
以下规则适用于分区置放群组:
-
对于每个可用区,一个分区置放群组最多支持 7 个分区。您可在分区置放群组中启动的实例的数量仅受账户限制的限制。
-
当您在分区置放群组中启动实例时,Amazon EC2 将尝试跨所有分区均匀分发实例。Amazon EC2 不保证跨所有分区均匀分发实例。
-
具有 专用实例 的分区置放群组最多可具有 2 个分区。
-
容量预留不会在分区放置组中预留容量。
分布置放群组规则和限制
以下规则适用于分布置放群组:
-
机架分布置放群组最多支持在每个可用区运行七个实例。例如,在具有三个可用区的区域中,您可以在组中总共运行 21 个实例,每个可用区 7 个实例。如果您尝试在同一可用区和同一个分布置放群组中启动第八个实例,则该实例将无法启动。如果需要在一个可用区中运行超过七个实例,则建议使用多个分布置放群组。使用多个分布置放群组并不能保证实例在群组之间分布,但可帮助确保每个群组内的分布,从而限制某些故障类别的影响。
-
专用实例 不支持分布置放群组。
-
主机级别分布置放群组仅适用于 Amazon Outposts 上的置放群组。主机级别分布置放群组对于可运行的实例数量没有限制。
-
容量预留不会在分布放置组中预留容量。
使用置放群组
创建置放群组
您可以使用以下一种方法创建置放群组。
注意
您只能在创建时使用命令行工具标记置放群组。
标记置放群组
要对现有置放群组进行分类和管理,可以使用自定义元数据标记它们。有关标签的工作原理的更多信息,请参阅标记 Amazon EC2 资源。
当您标记置放群组时,不会自动标记启动到置放群组中的实例。您需要显式标记启动到置放群组中的实例。有关更多信息,请参阅在启动实例时添加标签。
您可以使用新 的控制台和命令行工具查看、添加和删除标签。
在置放群组中启动实例
如果使用以下一种方法满足置放群组规则和限制,则可以在置放群组中启动实例。
描述置放群组中的实例
您可以使用以下一种方法查看实例的置放信息。您还可以使用 Amazon CLI 按分区编号筛选分区置放群组。
更改实例的置放群组
您可以通过以下任一方法更改实例的置放群组:
-
将现有实例移动到置放群组
-
将实例从一个置放群组移动到另一个置放群组
-
从置放群组中删除实例
在移动或删除实例之前,实例必须处于 stopped
状态。您可以使用 Amazon CLI 或 Amazon 开发工具包移动或删除实例。
删除置放群组
如果您需要替换或不再需要某个置放群组,您可以将其删除。您可以使用以下一种方法删除置放群组。
要求
在删除置放群组之前,该群组中不能包含任何实例。您可以终止在置放群组中启动的所有实例,将这些实例移动到另一个置放群组,或者将其从置放群组中删除。