识别 EC2 Linux 实例 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

识别 EC2 Linux 实例

您的应用程序可能需要确定是否运行在 EC2 实例上。

有关识别 Windows 实例的信息,请参阅Amazon EC2 用户指南(适用于 Windows 实例)中的识别 EC2 Windows 实例

检查 实例身份文档

对于标识 EC2 实例的明确且以加密方式验证的方法,请查看实例标识文档,包括其签名。这些文档适用于本地、不可路由地址 http://169.254.169.254/latest/dynamic/instance-identity/ 处的每个 EC2 实例。有关更多信息,请参阅实例身份文档

检查系统 UUID

您可以获取系统 UUID 并检查 UUID 的起始 octet 中是否存在字符 “ec2”或 “EC2”。此确定系统是否为 EC2 实例的方法速度快,但可能不准确,因为不是 EC2 实例的系统也有很小的几率使用以这些字符开头的 UUID。此外,对于不使用 Amazon Linux 2 的 EC2 实例,发行版的 SMBIOS 实施可能表示 little-endian 格式的 UUID,因此“EC2”字符不显示在 UUID 的开头。

例 :从 DMI 获取 UUID(仅限 HVM AMI)

通过以下命令使用桌面管理界面 (DMI) 获取 UUID:

[ec2-user ~]$ sudo dmidecode --string system-uuid

在以下示例输出中,UUID 以“EC2”开头,表示该系统可能是 EC2 实例。

EC2E1916-9099-7CAF-FD21-012345ABCDEF

在以下示例输出中,UUID 以 little-endian 格式表示。

45E12AEC-DCD1-B213-94ED-012345ABCDEF

或者,对于在 Nitro 系统上构建的实例,您可以使用以下命令:

[ec2-user ~]$ cat /sys/devices/virtual/dmi/id/board_asset_tag

如果输出是实例 ID,如下面的示例输出所示,则说明系统是 EC2 实例:

i-0af01c0123456789a

例 :从管理程序获取 UUID(仅限 PV AMI)

使用以下命令从管理程序获取 UUID:

[ec2-user ~]$ cat /sys/hypervisor/uuid

在以下示例输出中,UUID 以“ec2”开头,表示该系统可能是 EC2 实例。

ec2e1916-9099-7caf-fd21-012345abcdef