亚马逊 EC2 实例元数据

14
2个回答

24

wget 是一个命令,用于发起 HTTP 网络请求(伪装成浏览器),而这些选项告诉它将产生的响应输出到 stdout(即您看到的内容)。

由于 EC2 dom0 主机控制着虚拟机中运行的实例所见到的网络堆栈,因此 EC2 可以处理发送到 169.254.169.254 的网络流量。

在这种情况下,EC2 知道哪个实例正在发出请求(无论是基于由 EC2 控制的您的内部 IP 地址还是基于 dom0 主机可能在发送到网络之前处理请求的事实)。

因此,EC2 知道哪个实例正在发出请求,EC2 知道每个实例的所有信息,因此 EC2 可以返回所请求的元数据,包括实例 ID。

Amazon 没有公开他们如何实现此功能的具体细节,但他们确保它将为请求实例返回正确的数据,并且没有任何其他人干扰的可能性。

您可以在此处了解有关可用 EC2 元数据的更多信息:

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

魔术 IP 地址 169.254.169.254 和相应的元数据 URL 只能在 EC2 实例内部使用,除非您恰好在运行试图模拟 EC2 的系统上。


6
您可以使用ec2metadata
ec2metadata --instance-id

ec2metadata可以在这里下载:http://s3.amazonaws.com/ec2metadata/ec2-metadata (chmod +x) - John
1
如何获取与实例ID相关联的卷ID - Anway Kulkarni
2
如果您查看此ec2metadata命令的源代码,它只是在元数据URL http://169.254.169.254/latest/meta-data/ 上调用curl。 - Greg Glockner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接