有很多关于自动缩放的问题。但是没有一个谈论扩展这些服务器上安装的软件堆栈。 AWS Auto Scaling仅扩展资源。不是它上面的软件。在我的情况下,我期待将第一个实例上安装的Tomcat服务器(和Apache HTTPD服务器)扩展为AWS Scaling Service创建的新实例的一部分。
我按照常规流程在Amazon Web Services EC2实例上为我的应用程序建立扩展。
上述过程仅创建一个新实例,但不会复制图像上的软件堆栈。
如何以这样的方式完成自动缩放:当AWS自动缩放发生时,AMI的Tomcat服务器部分也会被复制并在新的扩展实例中启动。
我是否必须使用Puppet / Chef或任何此类工具来实现此目的?或者AWS中是否有使用命令行的选项?
请注意,Elastic Load Balancer会根据启动配置自动添加新实例,但会显示“停止服务”。因为新扩展的实例上没有安装Apache服务器。
答案 0 :(得分:4)
您可以直接从EC2实例创建AMI,而不是从快照创建AMI。快照适用于EBS卷。检查您是否已在安装并运行Apache / Tomcat的运行EC2实例上正确创建了AMI(并配置为在重新启动时自动启动)。
不,您不必使用Puppet / Chef或任何其他CM工具。你可以通过以下几种方式做你想做的事:
#1的缺点是您的AMI会很快过时。 #2的缺点是您的实例需要更长时间才能投入使用。我建议将#1和#2组合使用,特别是每隔几个月捕获一个新的AMI,这将成为您启动的基础AMI,并在启动时通过userdata init脚本更新实例。