2011-09-21 14 views

risposta

24

Ad alto livello, wget è un comando che avvia una richiesta Web HTTP (fingendo di essere un browser) e quelle opzioni dicono a sputare la risposta risultante allo stdout (ciò che vedi).

Poiché l'host dom2 EC2 controlla lo stack di rete come visto dall'istanza in esecuzione su una macchina virtuale, EC2 può gestire il traffico di rete su 169.254.169.254 in qualsiasi modo.

In questo caso, EC2 sa quale istanza sta effettuando la richiesta (indipendentemente dal fatto che sia basata sull'indirizzo IP interno controllato da EC2, o in base al fatto che l'host dom0 potrebbe elaborare la richiesta prima ancora di essere inviata attraverso il Rete).

Quindi, EC2 sa quale istanza sta facendo la richiesta e EC2 conosce tutte le informazioni su ogni istanza, quindi EC2 può restituire i meta-dati richiesti compreso l'id di istanza.

Amazon non ha pubblicato esattamente come hanno implementato questa funzione, ma garantiscono che restituirà i dati corretti per l'istanza richiedente senza alcuna possibilità di interferire da qualcun altro.

Si può imparare di più su disponibile metadati EC2 qui:

http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?AESDG-chapter-instancedata.html

La magia indirizzo IP 169.254.169.254 e metadati corrispondenti URL non funziona al di fuori di un'istanza EC2, a meno che non sia in esecuzione su un sistema che sta tentando di emulare EC2.

5

È possibile utilizzare ec2metadata

ec2metadata --instance-id 
+0

ec2metadata può essere scaricato qui: http://s3.amazonaws.com/ec2metadata/ec2-metadata (chmod + x) – John

+1

come ottenere volume-ID associato esempio -id –

+1

Se si guarda il codice sorgente di questo comando ec2metadata, chiama semplicemente curl sull'URL dei metadati http://169.254.169.254/latest/meta-data/. –