首页 文章

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

提问于
浏览
2

我有一个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 回答

  • 3

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

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

  • 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执行 .

相关问题