无法在“重新启动”后连接到EC2实例

重新启动后,我无法连接到我的m1.small实例。

我已经把这个公共IP与这个实例关联起来了。 在检查系统日志时,这似乎是问题:

cloud-init-nonethttp://11.84: waiting 10 seconds for network device cloud-init-nonethttp://21.85: waiting 120 seconds for network device cloud-init-nonethttp://141.85: gave up waiting for a network device. Cloud-init v. 0.7.3 running 'init' at Sun, 18 May 2014 07:02:55 +0000. Up 142.54 seconds. ci-info: +++++++++++++++++++++++Net device info++++++++++++++++++++++++ ci-info: +--------+-------+-----------+-----------+-------------------+ ci-info: | Device | Up | Address | Mask | Hw-Address | ci-info: +--------+-------+-----------+-----------+-------------------+ ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | . | ci-info: | eth0 | False | . | . | 02:43:xx:xx:xx:xx | ci-info: +--------+-------+-----------+-----------+-------------------+ ci-info: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Route info failed!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

一堆这些按照上面的消息:

2014-05-18 07:02:56,178 – url_helper.pyWARNING:调用http://169.254.169.254/2009-04-04/meta-data/instance-id失败0 / 120s:request error [HTTPConnectionPool(host ='networking无法访问):最大重试次数超过url:/ 2009-04-04 / meta-data / instance-id(由Errno 101引起)networking不可达)

这显然与networking接口工作不正常有关。 到目前为止,我已经尝试过:

  1. 从失败实例的自定义AMI(从EBS创build)重新启动一个新实例。 日志中显示相同的错误。

  2. 将新的networking接口附加到EC2实例。 错误仍然存​​在。 eth1显示在列表中,但“up”列是False。

这是由于有人进行了networking更改导致实例无法访问。 一个常见的networking设置问题是有人设置了一个静态IP地址,Amazon EC2忽略了每个AWS策略。

  1. 停止实例
  2. 从不可访问的实例中分离卷
  3. 将卷连接到正在运行的实例
  4. ssh运行实例
  5. mkdir不好(build立一个安装目录)
  6. 将卷装入不良/
  7. cd /bad/etc/sysconfig/network-scripts (/ bad是安装目录)
  8. vi ifcfg-eth0

     DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes TYPE=Ethernet USERCTL=yes PEERDNS=yes IPV6INIT=no 
  9. 分离音量
  10. 将卷附加到不可访问的实例
  11. 启动不可访问的实例

find它的工作。

@kapeels,

我刚刚通过相同的问题,对我的情况下,我使用的VPC DHCP选项设置的内部DNS服务器设置,如果DNS服务器设置那里所有的EC2服务器靴子将有同样的问题。

从我在日志中可以看到的情况来看,服务器使用主机名进行less量的API调用,这个主机名是通过使用DHCP选项集中的DNS进行翻译的,但是因为我的服务器closures了,它可以获得主机名的IP并返回169。 * IP。

当我再次将我的VPC DHCP选项设置为AmazonProvidedDNS时,它的工作。

所以基本上,AWS完全忽略了你的安全组来进行他们的API调用,但依靠你的DNS服务器来解决主机名。 🙂