我運行此命令從EC2實例獲取實例ID,請求如何處理以及服務如何知道要發送回的細節?亞馬遜EC2實例元數據
的wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
感謝
我運行此命令從EC2實例獲取實例ID,請求如何處理以及服務如何知道要發送回的細節?亞馬遜EC2實例元數據
的wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
感謝
在高層次上,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的系統上運行。
您可以使用ec2metadata
ec2metadata --instance-id
ec2metadata可以在這裏下載:http://s3.amazonaws.com/ec2metadata/ec2-metadata(使用chmod + x)的 – John
我如何獲得與實例相關聯的卷的標識-id –
如果您查看此ec2metadata命令的源代碼,它只會在元數據URL http://169.254.169.254/latest/meta-data/上調用curl。 –