Amazon EC2实例元数据

时间:2011-09-21 07:49:53

标签: amazon-ec2

我运行此命令以从EC2实例获取实例ID,请求如何处理以及服务如何知道要发回的详细信息?

wget -q -O - http://169.254.169.254/latest/meta-data/instance-id

感谢

2 个答案:

答案 0 :(得分: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和相应的元数据URL在EC2实例之外不起作用,除非您碰巧在试图模拟EC2的系统上运行。

答案 1 :(得分:5)

您可以使用ec2metadata

ec2metadata --instance-id