1

我在 Amazon EC2 上从微型实例升级到小型实例。

当我想部署新代码时,由于以下原因未部署代码

** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: ELASTIC_IP (Errno::ETIMEDOUT: Operation timed out - connect(2))
connection failed for: ELASTIC_IP (Errno::ETIMEDOUT: Operation timed out - connect(2))

所以看起来升级忽略了旧的弹性IP。因此,我创建了一个新的弹性 IP 并将这个 IP 分配给新实例,这个错误就消失了。

但是当我访问www.my_project.com11.22.33.44(弹性 IP)或公共 DNS (ec2-11-222-333-444.compute-1.amazonaws.com)时,仍然有一个空页面而不是我的应用程序。

代码通过 Capistrano 部署,没有任何错误。在我使用nginx的旧微实例上 - 这个 nginx 是否也可以在新实例上访问,还是我需要再次设置/安装?

如何使我的应用程序可访问?

谢谢

4

2 回答 2

0

当您最终遇到此类问题时,AWS 需要手动监控。当您升级您的实例时,您采用了什么方法?

无论是你

  • 使用实例和卷创建一个 ami,然后使用新的小实例启动 ami 或

  • 分离 ebs 卷并附加到一个小实例并进行必要的配置更改。

ssh 进入实例并检查

  • 如果您可以手动部署代码。
  • 如果是 git repo,您​​可以直接拉取和推送更改。
  • 所有与 nginx、db 等相关的进程都在运行。
  • 例如,默认主页位于何处。对于 apache.conf 的 ex documentroot。

我不能排除密钥不匹配的可能性,但错误并未指出这一点。

于 2013-11-19T08:23:41.860 回答
0

如果我不得不猜测,那是 SSH 密钥(不是 EC2 密钥对,而是来自机器的实际 SSH 密钥)发生了变化,默认情况下,出于安全原因,本地机器上的 SSH 会阻​​止连接。

如果您使用的是 Mac/Linux 机器,您可以查看内部~/.ssh/known_hosts并删除弹性 IP 条目,保存更改,然后再次尝试通过 SSH 连接到机器以确认连接。

不确定 Windows 中的正确路径,但您会进行相同的更改。

于 2013-10-29T17:08:19.483 回答