Ec2-describe-instance-status Client.InvalidInstanceID.NotFound, но существует экземпляр KNOW

Я установил несколько инструментов AMA Amazon AWS (EC2, Auto Scaling, MOnitoring и ELB). Инструменты настроены правильно и работают отлично. Мои окружения vars все установлены, соответствующие для этого 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

Я ЗНАЮ, что существует идентификатор экземпляра, я скопировал его из веб-консоли AWS, и он находится в регионе eu-west-1, и мои env vars установлены в эту область.

В жизни я не могу понять, почему он не найдет мои примеры. Есть ли что-то очевидное, что я делаю неправильно?

UPDATE: воссоздание x509 cert/pk разрешило это... по какой-то причине.

Ответ 1

У меня была та же проблема. Это потому, что я не определял регион для моих команд. Я предположил, что он будет перечислять все экземпляры во всех регионах, но по умолчанию он равен us-west-1, и у меня там нет экземпляров.

Чтобы описать мои машины в Ирландии, я использую следующее:

ec2-describe-instances --region eu-west-1
NB: Я определяю свой ключ доступа к AWS и секрет в другом месте.

Чтобы избежать этой проблемы, я теперь установил свой регион с помощью переменной окружения на моих машинах linux и windows: EC2_URL=https://ec2.eu-west-1.amazonaws.com так что я не должен быть явным в командной строке.

Обновление мая 2014 г.. Вы также можете установить регион, добавив следующие строки в файл ~/.aws/config в вашей домашней папке (не тестировался в Windows). Это мой предпочтительный метод сейчас, особенно на моей виртуальной машине и контейнерах:

[default]
region = eu-west-1

Подробнее см. в официальных документах .

Ответ 2

Странная проблема - как обычно, когда вы сталкиваетесь с чем-то странным в разработке программного обеспечения, сначала нужно задать предположения:

Я ЗНАЮ, что существует идентификатор экземпляра, я скопировал его из веб-консоли AWS, и он находится в регионе eu-west-1, и мои env vars настроены на это область.

Таким образом, идентификатор экземпляра возникает из другой среды, отличной от той, в которой вы хотите ее использовать, - я попытался бы получить идентификатор экземпляра через ту же среду, а именно:

ec2-describe-instances

Я осмелюсь предположить, что список не вернет ожидаемые экземпляры. Это указывает на то, что вы либо используете учетные данные AWS, принадлежащие другой учетной записи, либо что эти учетные данные не имеют требуемых Amazon EC2 разрешений на чтение, назначенных через политики IAM, например.

Ответ 3

У меня была аналогичная проблема, и я пишу здесь решение для тех, кто может найти это полезным.

Я застрял в этой ошибке в течение нескольких часов.

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

Наконец, я обнаружил, что происходит: у меня был мой экземпляр в другом регионе, чем в регионе по умолчанию (US East (Северная Вирджиния)), и мне пришлось обновить эту информацию. По умолчанию команды выглядят только для экземпляров в области по умолчанию!

Это объясняется в документации, разделе (необязательно): Задайте область http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SettingUp_CommandLine.html

Ответ 5

Это очень простая проблема. Если вы получаете эту ошибку

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

Затем выполните следующие действия.

Теперь введите [email protected]:~# aws configure

Enter

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. Теперь вы сделаны

Теперь в консоли просто введите

[email protected]:~# aws ec2 describe-instance --instance-id i-06343434322t

СДЕЛАТЬ СЧАСТЛИВЫЙ СЧАСТЛИВЫЙ