我们在ec2中运行了很多m1.medium / large实例。通常这些机器最适合我们的需求bang / buck-wize。但是,我们在节点之间获得了一些非常可怕的吞吐量。一些挖掘表明这些节点位于不同的子网上,可能位于不同的数据中心。
为了获得更多的吞吐量,我想尝试让EC2尽可能地将这些节点放在一起(network-wize)。 我们的拓扑结构如下:
从属节点挂载导出的NFS驱动器。
显然,如果奴隶在远离服务器的地方被旋转,我们会得到一些可怕的吞吐量。
我知道放置组,但是这些似乎需要更昂贵的实例类型和完全不同的可视化技术,并且当我们需要40个额外节点时,我们的放置组中没有空间。
这会大大增加我们的成本并降低我们的灵活性。
有什么建议吗?
答案 0 :(得分:2)
您需要在同一可用区中启动实例和展示位置组:
http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
可以在启动实例或创建展示位置组时选择可用区域(ec2-create-placement-group)。区域通常是A,B,C或无偏好(默认 - 随机)。
同一可用区中的节点连接在同一个10Gbps网络上 - 这比运行在SATA3接口上的固态驱动器上的带宽(6Gbps)更好。
不同的区域位于同一区域(例如美国东北部),但通常距离很远,以便实施灾难恢复。他们肯定在不同的数据中心,并且可能在同一地区的不同州,例如美国东北部。亚马逊不发布实际位置。
注意,似乎没有办法通过AWS管理控制台为放置组创建指定可用区 - 您可能需要使用API。
我已经看到整个可用区域在EC2上出现了几次 - 所以如果您要将整个基础架构移动到同一可用区域,那么您的应用程序将面临风险,那么您需要进行某种灾难恢复或两个区域之间的容错实施。
希望这有帮助。