EC2实例放置

时间:2012-06-12 14:56:10

标签: amazon-ec2 amazon-web-services

我们在ec2中运行了很多m1.medium / large实例。通常这些机器最适合我们的需求bang / buck-wize。但是,我们在节点之间获得了一些非常可怕的吞吐量。一些挖掘表明这些节点位于不同的子网上,可能位于不同的数据中心。

为了获得更多的吞吐量,我想尝试让EC2尽可能地将这些节点放在一起(network-wize)。 我们的拓扑结构如下:

  • 一个“服务器”节点,在EBS上托管一些中央存储数据,NFS导出,始终打开。 m1.large。
  • 80%的时间都有几个主要工作节点。 M1-大
  • 0-50从属节点,一次只能持续几个小时。通常这些是m1.smalls或m1.medium但如果作业需要可以是m1.large。

从属节点挂载导出的NFS驱动器。

显然,如果奴隶在远离服务器的地方被旋转,我们会得到一些可怕的吞吐量。

我知道放置组,但是这些似乎需要更昂贵的实例类型和完全不同的可视化技术,并且当我们需要40个额外节点时,我们的放置组中没有空间。

这会大大增加我们的成本并降低我们的灵活性。

有什么建议吗?

1 个答案:

答案 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​​。

http://docs.amazonwebservices.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-CreatePlacementGroup.html

我已经看到整个可用区域在EC2上出现了几次 - 所以如果您要将整个基础架构移动到同一可用区域,那么您的应用程序将面临风险,那么您需要进行某种灾难恢复或两个区域之间的容错实施。

希望这有帮助。