2

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

新实例未提供网页。我猜这是因为 apache 并没有随着图像的启动而启动。我尝试通过 ssh 进入新实例以运行“service httpd start”,但出现以下错误:

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

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

4

2 回答 2

3

您似乎正在尝试通过 ssh 连接到主机名中带有 http:// 的主机。删除它,ssh 应该可以工作。

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

于 2012-06-18T22:43:08.443 回答
2

为了让您连接到 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 onAMI 在用于启动您的实例的 AMI 上。
  • 您可以将命令作为用户数据添加到您的 LaunchConfiguration,以便在实例启动后立即运行它:

启动配置向导

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

于 2017-01-19T16:57:22.343 回答