新创建的 AWS EC2 实例上的“名称解析暂时失败”

`Temporary failure in name resolution` on freshly created AWS EC2 instance

我是 AWS 新手。

我遇到了另一个实例问题,所以我决定删除它并重新执行创建新实例的步骤:

  1. 定义密钥对;
  2. 从模板创建堆栈;
  3. 使用 ssh 访问实例;
  4. 安装我想使用的应用程序。

这是我使用的模板

Resources:
  AppNode:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: t2.nano
      ImageId: ami-06a719e5f8e22c33b
      KeyName: influxdb_example_3
      SecurityGroups:
        - !Ref AppNodeSG
      UserData: !Base64 |
        #!/bin/bash
        apt-get update -qq
        apt-get install -y apt-transport-https ca-certificates
        apt-key adv apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
        apt-get update -qq apt-get purge lxc-docker || true
        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
        add-apt-repository "deb [arch=amd65] https://download.docker.com/linux/ubuntu bionic stable"
        apt-get -y install linux-image-extra-$(uname -r) linux-image-extra-virtual
        apt-get -y install docker-ce
        usermod -aG docker unbuntu
        docker image pull quay.io/influxdb/influxdb:v2.0.2
        docker container run -p 80:9999 quay.io/influxdb/influxdb:v2.0.2
  AppNodeSG:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: for the app nodes that allow ssh
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: "80"
          ToPort: "80"
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: "22"
          ToPort: "22"
          CidrIp: 0.0.0.0/0

这就是我创建堆栈的方式

aws cloudformation create-stack \
  --stack-name influxdb-trial-stack-2 \
  --region eu-central-1 \
  --template-body file://$PWD/stack.yaml

这就是我访问它的方式:

ssh -i influxdb_example_3.pem \
    ubuntu@ec2-18-159-XXX-XX.eu-central-1.compute.amazonaws.com

我设法创建了 stack/instance 并访问了它。但是,自第二次尝试以来,每当我尝试用 sudo 在那里做任何事情时,它的反应都非常缓慢,我收到了 unable to resolve host ip-172-31-xx-xxx: Temporary failure in name resolution 消息。我已经完成了三遍这些步骤,但它总是归结为这个。

我找到的最近的东西在这里:https://forums.aws.amazon.com/thread.jspa?threadID=132414

基于此,我将私有ip/dns插入etc/hosts,但没有帮助(虽然它谈到'network restart'。它与实例重启相同吗?)

我知道有不同的手动方法可以解决这个问题,但第一次它确实对我有用,而且我认为堆栈创建过程是自动的,我怀疑有一些 config/cache/???我不知道的问题。

如有任何建议,我们将不胜感激。

事实证明,使用不同的 AMI 解决了问题。

我的第二个和进一步的设置使用了与第一个不同的 AMI,只是我忘记了这一点,甚至不认为 AMI 可能是问题所在。

对于在 Ubuntu AMI 或以前可以连接的实例上遇到此类问题的任何人,这可能是硬件问题。

我在一个实例中遇到了同样的错误(并排除了 DNS lookup limit)。一段时间后,我偶然发现了一个 AWS 支持线程,表明它可能是硬件问题。

The physical underlying host of your instance (i-3d124c6d) looks to have intermittently been having a issues, some of which would have definitely caused service interruption.

Could you try stopping and starting this instance? Doing so will cause it to be brought up on new underlying hardware and then we could utilize your pingdom service to verify if further issues arise.

来自:https://forums.aws.amazon.com/thread.jspa?threadID=171805.

停止并重新启动实例解决了我的问题。