我的 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例无法检索实例元数据。
解决方法
根据您的配置执行以下故障排除操作。
我在 VPC 中的实例无法访问或未通过实例状态检查
如果您的 EC2 实例位于虚拟私有云 (VPC) 中,请将第二个弹性网络接口连接到该实例。然后,使用该实例提供所需的路由和有效的 IP 地址。使用第二个网络接口访问该实例并解决主网络接口上的网络配置问题。
**注意:**如果您在添加第二个网络接口时更改实例类型,请确保使用兼容的实例类型。
我的实例通过了两项状态检查并且可以访问
**重要事项:**在完成以下步骤之前,最佳做法是备份您的 Amazon Elastic Block Storage (Amazon EBS) 卷和路由表。
从 Windows PowerShell 运行 route print 命令。查看输出,以检查是否存在与以下示例类似的路由:
Network Address Netmask Gateway Address
169.254.169.254 10.255.255.255 Subnet Router Address
如果路由不存在或网关地址与现有子网不匹配,请完成以下步骤:
-
确认您的实例上已安装最新版本的 EC2Config 或 EC2Launch:
对于 Windows Server 2012 或更早版本,请使用最新的 EC2Config 版本。
对于 Windows Server 2016 或更高版本,请使用最新的 EC2Launch v2 版本。如果您使用的是 EC2Launch v1,请参阅安装最新版本的 EC2Launch。
-
根据您使用的软件将路由应用于实例。
对于 EC2config,请重新启动 EC2config 服务。
对于 EC2Launch v1,请从提升的 PowerShell 会话中运行以下命令:
Import-Module c:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psm1 ; Add-Routes
对于 EC2Launch v2,请继续执行后续步骤。
-
(仅限 EC2Launch v2)要验证代理服务的启动类型,请运行以下命令:
Get-Service -Name "Amazon EC2Launch" | select -property name,starttype
在输出中,如果 StartType 值不是 Automatic(自动),请运行以下命令来设置默认值:
Set-Service -Name "Amazon EC2Launch" -StartupType Automatic
-
(仅限 EC2Launch v2)要手动将路由添加到当前启动项中,请运行以下命令:
& "C:\Program Files\Amazon\EC2Launch\EC2Launch.exe" run-task add-routes
如果路由存在,但实例仍然无法检索元数据,请检查您的实例的 Windows 防火墙、第三方防火墙以及防病毒配置。确保它们不会明确拒绝发往 169.254.169.254 的流量。