加快Amazon EC2 Windows实例的启动


16

我正在使用EC2上托管的Web服务,并且需要根据负载运行不同数量的实例。我们已经启动并运行了基本服务,但是我们苦苦挣扎的事情之一是调配和启动Windows实例所花费的时间(我们使用了仅在Windows上运行的第三种工具)。我已经看到这需要10分钟到45分钟的惊人时间。

是否有人对如何加快EC2实例的启动有任何提示?例如,由于Windows服务器的AMI比Linux AMI大,所以我想知道是否可能要确保包含AMI的S3存储桶位于启动实例的同一区域中,所以大概使配置新实例更快。

Answers:


8

昨晚我安装了3个实例的Windows 2003 Server实例。前两个耗时约45分钟,第三个耗时约一个小时,整整花了2个小时才准备就绪!

那些根本没有任何S3用法。我怀疑除了等待亚马逊逐步提高部署速度之外,是否有办法加快这一基本步骤。因此,我得出的结论是,可以预料会有一定的延迟,而Kurt的建议是好的,那就是保留1或2个已经准备好的储备。

您可以做的另一件事是多次创建AMI类型的新实例。然后尝试使用您的S3存储几次,看看会增加多少时间。我假定图像和S3之间的可用区域应该匹配,尽管我不知道会有多少时间差。

一旦确定了配置的最长时间,就将负载/使用率提前几分钟。


感谢您的建议-2小时非常极端。自问这个问题以来,我注意到的一件事是EC2有时在启动后立即重新启动Windows实例。我不知道这是为什么(我还没有弄清楚为什么某些实例重新启动而另一些实例没有重新启动的模式),但是它可能会使启动时间再增加5或10分钟。
gareth_bowles

2
@gareth-这是因为该计算机与网络上的另一计算机具有相同的名称(即,它是一个映像)。EC2ConfigService会检测到此情况,分配一个新名称,然后重新启动它。您可以使用已安装的ec2config配置实用程序禁用它。
Kieren Johnstone

20

Amazon Windows实例在启动时会重新启动,因为“ EC2 Config” Windows服务的默认配置是将您的主机重命名为实例的内部DNS名称。重命名主机需要在Windows上重新启动。如果不需要使用实例的内部DNS名称,则可以通过禁用SetComputerName功能而受益。Windows实例还具有不必初始化启动驱动器的优势,因为在启动驱动器中您可能已经再次捆绑了配置,从而节省了更多实例启动时间。所有这些都可以通过EC2 Windows配置服务来实现。

Windows配置服务: http : //docs.amazonwebservices.com/AWSEC2/latest/UserGuide/appendix-windows-config.html

我的Windows小型实例通常需要15-18分钟才能启动(较大的实例会更快)。根据您的要求,您也许可以将所有软件捆绑在AMI内,并可以在此期间启动并运行所有程序。我理解不将所有内容捆绑到AMI中的保留意见,但是在生产时间中将所有捆绑在一起的生产AMI值得改善。如果要在构建环境中,请使构建脚本分开。

此外,由于Amazon已经发布了EBS根卷,而不是实例存储根卷。在EBS卷上运行的Windows小映像在将近5分钟的时间内启动,而之前花费了将近20分钟。另外,您不需要终止-您可以停止/启动它们-根据您的设置,这可能会在某些启动脚本中节省几分钟的时间。

从本质上定制Windows EC2 Config服务,AMI并可能使用EBS引导卷,应将启动时间减少到将近5分钟。您可以避免根据您的应用在ec2实例启动时运行的sysprep,尤其是出于开发目的。避免在启动时更改主机名的未经系统准备的m1.large映像可以在大约2分钟内启动,这一点还不错。

就目前而言,据我所知,这是在Amazon EC2上使用Windows可以做到的最好,但这确实还不错。如果您能够根据平均使用模式来预测未来将近10分钟,那么您应该能够启动更多实例并处理额外的负载。


内部主机重命名是一个很好的提示-谢谢!我也想尝试EBS根卷,这不仅因为它会使备份变得容易得多。我想我必须预测平均10分钟的启动时间;这本身并不是一个问题,但是启动时间的高度可变性仍然是一个真正的难题。
gareth_bowles

这应该在AWS文档中引用。
彼得·蒙斯

4

拥有一个最小的系统,尽可能多地保存在EBS中可能会有帮助?还是采用Apache风格的方法并保留一两个运行?


4

我们已经遇到了这个确切的问题,但是以一种非常严肃的方式-我们的新公司将Amazon EC2扩展到了虚拟实验室环境(多用户,策略,共享等)中,因此我们需要加快启动时间。 Windows机器。我们最大的决定是在应用程序中仅支持基于EBS的卷,因为它们是唯一可以在5到10分钟内启动的卷。在我们的测试中,我们发现实例存储的启动时间变化很大,有时会花费大量时间,这对我们来说毫无用处。

Simon @ EC2上的LabSlice虚拟实验室管理

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.