2011-09-21 7 views

Répondre

24

À un niveau élevé, wget est une commande qui lance une requête Web HTTP (faire semblant d'être un navigateur) et ces options disent qu'il a craché la réponse résultante à stdout (ce que vous voyez). Étant donné que l'hôte dom2 EC2 contrôle la pile réseau comme vu par votre instance s'exécutant dans une machine virtuelle, EC2 peut gérer le trafic réseau à 169.254.169.254 comme il veut. Dans ce cas, EC2 sait quelle instance fait la requête (qu'elle soit basée sur votre adresse IP interne contrôlée par EC2 ou sur le fait que l'hôte dom0 peut traiter la requête avant même qu'elle ne soit envoyée sur le serveur. réseau). Ainsi, EC2 sait quelle instance fait la demande et EC2 connaît toutes les informations sur chaque instance, ainsi EC2 peut renvoyer les méta-données demandées, y compris l'identificateur d'instance.

Amazon n'a pas publié exactement comment ils ont implémenté cette fonctionnalité, mais ils garantissent qu'il retournera les données correctes pour l'instance de requête sans aucune interférence.

Vous pouvez en savoir plus sur les métadonnées disponibles EC2 ici:

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

La magie adresse IP 169.254.169.254 et les URL de métadonnées correspondantes ne fonctionnera pas en dehors d'une instance EC2, sauf si vous exécutez sur un système qui essaie d'émuler EC2.

5

Vous pouvez utiliser ec2metadata

ec2metadata --instance-id 
+0

ec2metadata peut être téléchargé ici: http://s3.amazonaws.com/ec2metadata/ec2-metadata (chmod + x) – John

+1

Comment j'obtenir le volume-ID associé exemple -id –

+1

Si vous regardez la source de cette commande ec2metadata, elle appelle simplement curl sur l'URL de métadonnées http://169.254.169.254/latest/meta-data/. –