gar*_*les 16 windows amazon-ec2
我正在开发一个托管在 EC2 上的 Web 服务,需要根据负载运行不同数量的实例。我们已经启动并运行了基本服务,但我们正在努力解决的问题之一是配置和启动 Windows 实例所需的时间(我们正在使用一些仅在 Windows 上运行的第三方工具)。我已经看到这需要从 10 分钟到惊人的 45 分钟不等。
有没有人对如何加快 EC2 实例的启动有任何提示?例如,由于与 Linux AMI 相比,Windows 服务器的 AMI 很大,我想知道是否有一件事是确保包含 AMI 的 S3 存储桶位于启动实例的同一区域中,这大概是加快配置新实例的速度。
Ame*_*een 21
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 中的启动时间的改进可能是值得的。如果您希望在您的构建环境中保持构建脚本分开。
此外,现在亚马逊发布了 EBS 根卷,而不是实例存储根卷。在 EBS 卷上运行的 Windows 小映像在近 5 分钟内启动,而之前需要近 20 分钟。此外,您不需要终止 - 您可以停止/启动它们 - 根据您的设置,这可能会在某些启动脚本中多花几分钟时间。
从本质上讲,自定义您的 Windows EC2 配置服务、您的 AMI 以及可能使用 EBS 启动卷应该将启动时间减少到近 5 分钟。您可以根据您的应用程序避免在 ec2 实例启动时运行的 sysprep,尤其是出于开发目的。避免在启动时更改主机名的非系统准备的 m1.large 映像可以在大约 2 分钟内启动,这一点也不差。
目前,据我所知,这是您在 Amazon EC2 上使用 Windows 所能做到的最好的事情,但这确实还不错。如果您能够根据平均使用模式预测近 10 分钟的未来,您应该能够启动额外的实例并处理额外的负载。
我昨晚安装了 3 个普通 Windows 2003 服务器的实例。前两个花了大约 45 分钟,第三个,大约一个小时后,花了整整 2 个小时才准备好!
那些根本没有任何东西,没有任何 S3 使用。我怀疑除了等待亚马逊随着时间的推移改进部署速度之外,还有什么方法可以加快这一基本步骤。因此,我得出的结论是,预计会有一定的延迟,Kurt 的建议是好的,即保留 1 或 2 个已经准备好的备用。
您可以做的另一件事是多次创建 AMI 类型的新实例并计时。然后使用您的 S3 存储尝试几次,看看增加了多少时间。我假设可用区应该在图像和 S3 之间匹配,尽管我不知道这会产生多少时间差异。
一旦您确定了最长的配置时间,请在负载/使用之前保持几分钟。