2011-09-21 30 views

Odpowiedz

24

Na wysokim poziomie, wget jest polecenie, które inicjuje żądanie HTTP internetowej (udając przeglądarki) i te opcje powiedzieć to wypluć wynikowa odpowiedź na standardowe wyjście (co widzisz).

Ponieważ host EC2 dom0 kontroluje stos sieci widziany przez instancję działającą na maszynie wirtualnej, EC2 może obsłużyć ruch sieciowy do 169.254.169.254 w dowolny sposób.

W takim przypadku EC2 wie, z jakiej instancji pochodzi żądanie (czy jest oparte na wewnętrznym adresie IP kontrolowanym przez EC2, czy na tym, że host dom0 może przetwarzać żądanie, zanim zostanie nawet wysłany sieć).

EC2 wie, z jakiej instancji pochodzi żądanie, a EC2 zna wszystkie informacje o każdym wystąpieniu, więc EC2 może zwrócić żądane meta-dane, w tym identyfikator wystąpienia.

Amazon nie opublikował dokładnie tego, w jaki sposób zaimplementował tę funkcję, ale gwarantuje, że zwróci poprawne dane dla instancji żądającej, bez możliwości ingerencji nikogo innego.

Możesz dowiedzieć się więcej o dostępnych metadanych EC2 tutaj:

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

magii adresu IP 169.254.169.254 i adresów URL odpowiednich metadanych nie będzie działać poza instancji EC2, chyba że działasz w systemie, który próbuje emulować EC2.

5

Można użyć ec2metadata

ec2metadata --instance-id 
+0

ec2metadata można pobrać tutaj: http://s3.amazonaws.com/ec2metadata/ec2-metadata (chmod + x) – John

+1

Jak uzyskać volume-id związane z instancji -id –

+1

Jeśli spojrzysz na źródło tego polecenia ec2metadata, po prostu wywołuje zwijanie w adresie URL metadanych http://169.254.169.254/latest/meta-data/. –