2013-06-04 53 views
0

我有用C++编写的分布式系统。为了测试其可扩展性,我在寻找基于AWS EC2的解决方案,因为它很容易在短时间内启动数百甚至数千个实例。而对于大多数实验,我只需要在不到1小时的时间内运行基准测试。我应该如何使用EC2来做性能测试

但是,准备这些数千个实例的适当/经济的方法是什么?这些项目需要大量的依赖关系,其中一些在Ubuntu中找不到.deb软件包(我们使用基于ubuntu的AMI)。在每个实例上编译这个项目是不合理的,我想......但是,我该怎么做才能将其二进制文件和所有必需的软件包传播到所有实例?

如果可能,我们希望使用Ubuntu和基于python的解决方案。

回答

1

最简单的方法是使用要运行的服务器的映像创建Amazon Machine Image(AMI)。一旦你有了这个,你可以简单地提名你想要启动的实例的数量。

的过程是:

  • 从控制台做Launch Instance的AMI的(比方说)与裸的Ubuntu 12.04分布。然后您将拥有一台基本服务器来开始安装软件包和软件。
  • 一旦服务器处于想要复制数千个实例的状态,请在控制台中单击正在运行的实例并选择操作Create Image (EBS AMI)。这将在控制台的AMI部分创建自定义AMI。
  • 现在你已经有了一个图像,你可以像做基本图像那样做一个AMI的Launch Instance。启动它时,只需指定要启动的实例数即可。
+0

每次我有我的项目的新二进制文件时,是否需要重新创建映像? – eddyxu

+0

是的,“图像”是您保存服务器时的快照。如果更改,则丢弃旧的AMI,用新的二进制文件从服务器创建一个新的AMI,如上所述关闭所有旧的AMI,并从新的AMI启动一个机队。鉴于看起来您将创建大量实例,您可能希望查看[boto](https://github.com/boto/boto)以获取基于Python的解决方案,以实现上述自动化。 – ianjs

相关问题