ec2-describe-instance-status Client.InvalidInstanceID.NotFound但我知道实例存在

时间:2013-04-12 11:01:15

标签: amazon-web-services amazon-ec2 amazon-elb aws-cli

我已经设置了一些亚马逊AWS CLI工具(EC2,Auto Scaling,MOnitoring和ELB)。工具设置正确,工作完美。我的环境变量已全部设定,此Q的相关内容为:

export EC2_REGION=eu-west-1
export EC2_URL=https://ec2.$EC2_REGION.amazonaws.com
export AWS_ELB_URL=https://elasticloadbalancing.$EC2_REGION.amazonaws.com

当我为任何实例运行ec2-describe-instance-status i-XXXXXXXX时,我得到:

Client.InvalidInstanceID.NotFound: The instance ID 'i-XXXXXXXX' does not exist

我知道实例ID存在,我将其从AWS Web控制台中复制出来,它位于eu-west-1区域,并且我的env变量设置为此区域。

对于我的生活,我无法弄清楚为什么它找不到我的实例。有什么明显的事实我做错了吗?

更新:由于某种原因,重新创建x509 cert / pk解决了这个问题。

6 个答案:

答案 0 :(得分:37)

我遇到了同样的问题。这是因为我没有为我的命令定义一个区域。我假设它会列出所有区域的所有实例,但默认为us-west-1,我没有任何实例。

为了描述我在爱尔兰的机器,我使用以下内容:

ec2-describe-instances --region eu-west-1
注意:我正在其他地方定义我的AWS访问密钥和秘密。

为了避免这个问题,我现在通过我的linux和Windows机器上的environment variable设置我的区域:EC2_URL=https://ec2.eu-west-1.amazonaws.com 所以我不必在命令行上明确。

2014年5月更新您还可以通过将以下行添加到主文件夹中的~/.aws/config文件(未在Windows上测试)来设置区域。这是我现在的首选方法,特别是在我的VM和容器上:

[default]
region = eu-west-1

有关详细信息,请参阅offical docs here.

答案 1 :(得分:3)

奇怪的问题 - 像往常一样,在软件开发中遇到奇怪的东西时,首先应该质疑这些假设:

  

我知道实例ID存在,我将其复制出AWS Web控制台,   它位于欧洲西部1区,我的环境变量就是这样的   区域。

因此实例ID源于与您想要使用它的环境不同的环境 - 我会尝试通过相同的环境派生实例ID,即:

ec2-describe-instances

我冒昧地猜测列表不会返回您期望的实例。这表示您使用的是属于其他帐户的AWS凭据,或者这些凭据没有通过Amazon EC2分配的必需IAM policies读取权限。

答案 2 :(得分:1)

我有一个类似的问题,我在这里写的解决方案适合任何能发现它有帮助的人。

我在几个小时内就遇到了这个错误。

Client.InvalidInstanceID.NotFound: The instance ID 'i-XXXXXXXX' does not exist

最后我发现了发生的事情:我的实例位于与默认区域(美国东部(弗吉尼亚北部)不同的区域),我不得不更新此信息。默认情况下,命令仅查找默认区域中的实例!

在文档中解释了(可选)部分:设置区域 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SettingUp_CommandLine.html

答案 3 :(得分:0)

我通过将EC2_URL从“https://ec2.ap-southeast-1.amazonaws.com”更改为“ec2.ap-southeast-1.amazonaws.com”来解决此问题

答案 4 :(得分:0)

这是一个非常简单的问题。如果您收到此错误

Client.InvalidInstanceID.NotFound: The instance ID 'i-XXXXXXXX' does not exist

然后按照步骤进行操作。

  1. 检查您的实例所在的国家/地区image here
  2. 现在输入root@Indian:~# aws configure

    输入

    AWS Access Key ID [****************D7M2]:

    AWS Secret Access Key [****************2h3r]:

    Default region name [us-east-1]:

      

    当询问默认区域时,请更改实例所在的区域。例如:us-east-2。然后按Enter键。   实际上,这些是可用的地区名称列表" RegionNames"

     "Regions": [
        {
            "RegionName": "ap-south-1",
            "Endpoint": "ec2.ap-south-1.amazonaws.com"
        },
        {
            "RegionName": "eu-west-2",
            "Endpoint": "ec2.eu-west-2.amazonaws.com"
        },
        {
            "RegionName": "eu-west-1",
            "Endpoint": "ec2.eu-west-1.amazonaws.com"
        },
        {
            "RegionName": "ap-northeast-2",
            "Endpoint": "ec2.ap-northeast-2.amazonaws.com"
        },
        {
            "RegionName": "ap-northeast-1",
            "Endpoint": "ec2.ap-northeast-1.amazonaws.com"
        },
        {
            "RegionName": "sa-east-1",
            "Endpoint": "ec2.sa-east-1.amazonaws.com"
        },
        {
            "RegionName": "ca-central-1",
            "Endpoint": "ec2.ca-central-1.amazonaws.com"
        },
        {
            "RegionName": "ap-southeast-1",
            "Endpoint": "ec2.ap-southeast-1.amazonaws.com"
        },
        {
            "RegionName": "ap-southeast-2",
            "Endpoint": "ec2.ap-southeast-2.amazonaws.com"
        },
        {
            "RegionName": "eu-central-1",
            "Endpoint": "ec2.eu-central-1.amazonaws.com"
        },
        {
            "RegionName": "us-east-1",
            "Endpoint": "ec2.us-east-1.amazonaws.com"
        },
        {
            "RegionName": "us-east-2",
            "Endpoint": "ec2.us-east-2.amazonaws.com"
        },
        {
            "RegionName": "us-west-1",
            "Endpoint": "ec2.us-west-1.amazonaws.com"
        },
        {
            "RegionName": "us-west-2",
            "Endpoint": "ec2.us-west-2.amazonaws.com"
        }
    ]
    }
    

    Default output format [None]:

    将输出格式留空,然后按Enter键。现在你完成了

    现在在控制台中输入

    root@Indian-3543:~# aws ec2 describe-instance --instance-id i-06343434322t
    

    快乐地开心

答案 5 :(得分:0)

就我而言,我在~/.aws/credentials中有两组凭据。要指定凭据标签,请使用

aws ec2 describe-instances --instance-id <your-instance-id> --profile <your-profile-name> --region <your-region>