在实例启动时自动启动apache - aws自动扩展

时间:2012-06-16 14:36:41

标签: amazon-ec2 amazon-web-services ec2-ami autoscaling

我有一个ec2实例,用于处理带有apache的网页。我在启动配置中使用此实例的AMI创建了一个自动缩放组。一旦CPU超过80%并且自动调度策略运行,就会创建一个新实例。但是我的原始实例的CPU继续上升,我的新实例的CPU保持在0%。

新实例未在网页上投放。我猜这是因为apache没有启动图像的启动。我试图ssh到新实例运行“服务httpd启动”但我得到以下错误:

ssh: Could not resolve hostname http://ec2-xxx-xx-xxx-xxx.compute-1.amazonaws.com:
nodename nor servname provided, or not known

为什么我不能进入?如何配置自动扩展以在启动时自动启动apache?

2 个答案:

答案 0 :(得分:3)

您似乎正在尝试使用主机名中的http:// ssh到主机。删除它,ssh应该工作。

假设您创建了一个在AutoScaling中使用的AMI,您需要在为AutoScaling创建新的AMI之前确保在源实例中chkconfig httpd on

答案 1 :(得分:1)

为了连接到EC2实例,您需要做两件事:

  • 与您的实例关联的安全组具有允许SSH通信的入站规则。
  • 确保为实例生成了私钥。注意:只有在您选择首先使用密钥时才需要这样做。

如果这两件事情都是正确的,那么您可以像这样连接到您的实例:

ssh -i "PATH_TO_YOUR_KEY.pem" ec2-user@ec2-xxx-xx-xxx-xxx.compute-1.amazonaws.com

另一方面,就是为了确保你可以在启动时启动apache,你可以做两件事:

  • 正如@atbell在上一个回答中提到的那样,您可以确保chkconfig YOUR_SERVICE on位于用于启动实例的AMI上。
  • 您可以将命令作为用户数据添加到LaunchConfiguration,以便在实例启动后立即运行它:

LaunchConfiguration wizard

一旦实例可以响应命令,这将会运行start YOUR_SERVICE start。因此,只要您的AutoScaling组创建另一个实例,您的服务肯定会启动。请注意,默认情况下,添加到LaunchConfiguration的用户数据字段的命令将作为sudo执行。

相关问题