启动新的 EC2 实例时,EC2 服务会尝试以某种方式放置实例,以便将所有实例分布在基础硬件上以最大限度减少相关的故障。我们可以使用置放群组--一组相互依赖的实例,从而满足我们的不同工作负载需求。
一、集群 分区 分布
Cluster
集群-将一个可用区中靠近的实例打包在一起。通过使用该策略,工作负载可以实现所需的低延迟网络性能,以满足 HPC应用程序通常使用的紧密耦合的节点到节点通信的要求。
Partition
分区-将实例分布在不同的逻辑分区上,以便一个分区中的实例组不会与不同分区中的实例组使用相同的基础硬件。该策略通常为大型分布式和重复的工作负载所使用,例如,Hadoop、Cassandra 和 Kafka。
spread
分布-将一小组实例严格放置在不同的基础硬件上以减少相关的故障。
1.集群置放群组
集群置放群组是单个可用区中的实例的逻辑分组。集群置放群组可横跨同一区域中的对等 VPC。同一集群置放群组中的实例可针对 TCP/IP 流量享受更高的每流吞吐量限制,并且这些实例将处于网络的同一高等分带宽段中。
2.分区置放群组
分区置放群组可帮助的应用程序减少相关硬件故障的可能性,在使用分区置放群组时,Amazon EC2 将每个群组划分为多个逻辑段(称为"分区")Amazon EC2 确保置放群组中的每个分区具有自己的一组机架。每个机架具有自己的网络和电源。置放群组中的任何两个分区将不会分享相同的机架,从而让我们可以在应用程序中隔离硬件故障的影响。
3.分布置放群组
分布置放群组将每个实例放置在不同的机架上,并且每个机架具有各自的网络和电源。
注意事项
- 对置放群组中的所有实例使用相同的实例类型。AWS建议在一个Placement Group内的所有EC2实例是一模一样的,否则会有短板效应
- 不可以将一个正在运行的EC2实例放到一个EC2 placement Group中
- 如果在Placement Group中创建实例的时候出现"capacity error"的错误,可以停止再启动组中的所有实例,再重新创建刚才的实例
- 如停止置放群组中的某个实例,然后重启该实例,则其仍将在该置放群组中运行。但是,如果没有足够容量可用于该实例,则启动将会失败
- 分布置放群组可以跨越同一区域中的多个可用区。每个群组在每个可用区中最多有7个正在运行的实例
- 如果在分布置放群组中启动实例,并且没有足够的独特硬件来满足请求,请求将失败
二、规则及限制
一般规则及限制:适用于集群、分区、分布的通用性规则
特定规则及限制:对应集群、分区、分布的特殊性规则
1.一般性规则及限制
- 置放群组指定的名称在您的区域 AWS 账户中必须是唯一的.
- 不能合并置放群组。
- 一次可在一个置放群组中启动一个实例;实例不能跨多个置放群组。
- 无法在置放群组中启动专用主机。
2.1集群置放群组规则和限制
- 集群置放群组中的实例必须为受支持的实例类型
- 一个集群置放群组不能跨过多个可用区。
- 集群置放群组中的两个实例之间的最大网络吞吐量流量速度受两个实例中的较慢实例限制。对于具有高吞吐量要求的应用程序,诸选择其网络连接满足您要求的实例类型。
- 可以将多种类型的实例启动到集群置放群组中。不过,这会降低提供所需容量以成功完成启动的可能性。AWS建议集群置放群组中的所有实例使用相同的实例类型
2.2分区置放群组规则和限制
- 对于每个可用区,一个分区置放群组最多支持7个分区。您可在分区置放群组中启动的实例的数量仅受账户限制的限制
- 在一个分区置放群组中启动实例时,Amazon EC2 将尝试跨所有分区均匀分发实例。Amazon EC2 不保证跨所有分区均匀分发实例
- 具有 专用实例 的分区置放群组最多可具有 2 个分区
1.3分布置放群组规则和限制
- 分布置放群组最多支持为每个可用区运行 7个实例。AWS官方说明:例如,在具有三个可用区的区域中,您可以在组中总共运行 21 个实例(每个区域7个)。如果您尝试在同一可用区和同一个分布置放群组中启动第八个实例,则该实例将无法启动。如果您需要在可用区中拥有七个以上的实例,则建议使用多个分布置放群组。使用多个分布置放群组并不能保证实例在组之间分布,但可确保每个组的分布,从而限制某些故障类别的影响。
- 专用实例 不支持分布置放群组。