识别 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
检查系统虚拟机生成标识符
虚拟机生成标识符由被解释为加密随机整数标识符的 128 位的唯一缓冲区组成。您可以检索虚拟机生成标识符来识别 Amazon Elastic Compute Cloud 实例。生成标识符通过 ACPI 表条目在实例的来宾操作系统中公开。如果您的计算机被克隆、复制或导入到 AWS,例如使用 VM Import/Export,该值将改变。
例 :从 Linux 中检索虚拟机生成标识符
您可以使用以下命令从运行 Linux 的实例中检索虚拟机生成标识符。