2011-09-21 148 views

回答

24

在高層次上,wget是啓動一個HTTP Web請求的命令(假裝是一個瀏覽器)和這些選項告訴它吐出來由此產生的對stdout的響應(你看到的)。

由於EC2 dom0主機控制虛擬機中運行的實例所看到的網絡堆棧,因此EC2可以以任何方式將網絡流量處理爲169.254.169.254。

在這種情況下,EC2知道哪個實例正在發出請求(無論它是基於由EC2控制的您的內部IP地址,還是基於dom0主機可能正在處理請求,網絡)。因此,EC2知道哪個實例正在發出請求,EC2知道關於每個實例的所有信息,所以EC2可以返回請求的元數據,包括實例ID。

亞馬遜尚未公佈他們如何實現此功能,但他們確保能夠爲請求的實例返回正確的數據,而不會有其他人干擾。

您可以瞭解更多的EC2元數據在這裏:

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

神奇的IP地址169.254.169.254和相應的元數據網址不會EC2實例在外面工作,除非你碰巧在試圖仿效EC2的系統上運行。

5

您可以使用ec2metadata

ec2metadata --instance-id 
+0

ec2metadata可以在這裏下載:http://s3.amazonaws.com/ec2metadata/ec2-metadata(使用chmod + x)的 – John

+1

我如何獲得與實例相關聯的卷的標識-id –

+1

如果您查看此ec2metadata命令的源代碼,它只會在元數據URL http://169.254.169.254/latest/meta-data/上調用curl。 –