2013-04-12 9 views
16

Ho impostato alcuni degli strumenti AWS CLI amazon (EC2, Auto Scaling, MOnitoring e ELB). Gli strumenti sono impostati correttamente e funzionano perfettamente. I miei Vars di ambiente sono tutti insieme, quelli relativi a questo Q essere:ec2-describe-instance-status Client.InvalidInstanceID.NotFound ma I KNOW istanza esiste

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 

Quando eseguo ec2-describe-instance-status i-XXXXXXXX per uno dei miei casi, ottengo:

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

So che esiste l'ID di istanza, mi lo ha copiato dalla console web di AWS e si trova nella regione eu-west-1 e i miei oggetti sono impostati su questa regione.

Per la vita di me non riesco a capire perché non troverà le mie istanze. C'è qualcosa di assolutamente evidente che sto facendo in modo errato?

AGGIORNAMENTO: ricreare x509 cert/pk risolto questo ... per qualche motivo.

risposta

3

problema strano - come al solito quando incontra qualcosa di strano nello sviluppo di software, si dovrebbe prima mettere in discussione le ipotesi:

SO esiste l'ID istanza, ho copiato dalla console Web AWS, e si trova nella regione eu-west-1 e i miei oggetti sono impostati su questa regione .

Così l'ID istanza deriva da un ambiente diverso da quello che si desidera utilizzare in - vorrei cercare di ricavare l'ID istanza tramite lo stesso ambiente, invece, vale a dire:

ec2-describe-instances 

I venture l'ipotesi che la lista non restituisca le istanze che ti aspetti. Ciò indica che stai utilizzando credenziali AWS che appartengono a un altro account o che queste credenziali non dispongono delle autorizzazioni di lettura Amazon EC2 assegnate, ad esempio, tramite IAM policies.

+0

Grazie per l'input. Terrifyingly ec2-describe-instance (anche con l'argomento region) non produce nulla. Ho installato gli ultimi strumenti CLI ec2 (fino ad oggi) ed ec2-describe-regions fornisce l'output VALIDO. Forse qualcosa a che fare con i miei crediti. – BoomShaka

+0

Ho ricreato il mio certificato x509 e la chiave privata. Questo ha risolto il problema. Deve essere scaduto, sebbene quello che stavo usando fosse contrassegnato come attivo. Strano. – BoomShaka

+0

@BoomShaka - Consiglio vivamente di passare all'utilizzo dei soli tasti di accesso IAM, che sono molto più facili da usare e significativamente più versatili, e quindi implicitamente più sicuri; I certificati X.509 sono [nel frattempo deprecati] (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/setting_up_ec2_command_linux.html#set_aws_credentials_linux) per gli strumenti della riga di comando EC2 e quasi mai usati altrove già da un po 'di tempo . Vedi la mia risposta a [Come scaricare un certificato EC2 X.509 con un account utente IAM?] (Http://stackoverflow.com/a/8995926/45773) per un po 'di più su questo. –

31

Ho avuto lo stesso problema. Era perché non stavo definendo una regione per i miei comandi. Presumo che avrebbe elencato tutte le istanze in tutte le regioni, ma per impostazione predefinita è us-west-1 e non ho alcuna istanza lì.

Per descrivere le mie macchine in Irlanda Io uso il seguente:

ec2-describe-instances --region eu-west-1
NB: Sto definendo la mia chiave di accesso AWS e segreta altrove.

Per evitare questo problema in futuro, ora ho impostato la mia regione attraverso un environment variable sulle mie macchine Linux e Windows: EC2_URL=https://ec2.eu-west-1.amazonaws.com in modo che io non devo essere espliciti sulla riga di comando.

Aggiornamento maggio 2014 È inoltre possibile impostare la regione aggiungendo le seguenti righe al file ~/.aws/config nella cartella Inizio (non testato su Windows).Questo è il mio metodo preferito adesso, soprattutto sulle mie e VM di contenitori:

[default] 
region = eu-west-1 

Per ulteriori informazioni vedere il offical docs here.

+0

La tua risposta è stata utile, grazie! –

+0

Grazie per il suggerimento sull'impostazione nel file di configurazione – asherrard

1

ho avuto un problema simile e scrivo qui la soluzione per tutti coloro che possono trovare utile.

Sono stato stucked con questo errore durante alcune ore.

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

Finalmente ho trovato quello che stava accadendo: ho avuto il mio esempio in una regione diversa da quella della regione di default (US Est (Virginia del Nord)) e ho dovuto aggiornare queste informazioni. Di default i comandi guardano solo per le istanze nella regione di default!

E 'spiegato nei documenti, la sezione (opzionale): impostare la regionehttp://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SettingUp_CommandLine.html

0

È un problema molto semplice. Se ricevi questo errore

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

Quindi seguire i passaggi.

  1. Check in quale regione paese l'istanza è image here

Ora immettere [email protected]:~# aws configure

Enter

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

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

Default region name [us-east-1]:

Quando viene richiesta la regione predefinita, modificare la regione in cui si trovano le istanze. Es: us-east-2. Quindi premere Invio. Acutally questi sono l'elenco dei nomi delle regioni disponibili "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]:

Lascia il formato di output in bianco e premere Invio. Ora si è fatto

Ora nella console basta digitare

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

rendere felice sia felice

Problemi correlati