AMI启动后如何使AWS实例能够检索元数据

37次阅读
没有评论

问题描述

在使用AWS服务时,遇到了一个问题。他创建了一个Windows Server 2016实例,并创建了一个快照。然后,他删除了该实例。现在,当他从该快照创建AMI并启动实例时,他无法使用私钥解密密码。他查看了一些日志,发现以下错误信息:”Failed to get metadata: The result from http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key was empty”。他在互联网上搜索了一些解决方法,发现需要运行一些PowerShell脚本,但他无法登录到实例。他还删除了原始实例。请给他一些建议,他如何登录到实例。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据用户的描述,您无法登录到实例,因此无法运行任何脚本。在这种情况下,您可以尝试以下步骤来解决问题:
1. 创建一个临时实例:
– 登录到AWS控制台。
– 导航到EC2服务。
– 单击”实例”,然后单击”启动实例”。
– 选择一个适合您的需求的AMI,并按照向导的指示完成实例的启动过程。
– 确保在”安全组”部分选择与您的原始实例相同的安全组。
– 单击”启动”。
2. 连接到临时实例:
– 等待实例启动完成。
– 使用您的私钥连接到实例。如果您不知道如何连接到实例,请参考AWS文档中的相关指南。
3. 检查元数据服务:
– 在连接到临时实例后,打开命令提示符或PowerShell。
– 运行以下命令来检查元数据服务是否正常运行:
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/
– 如果您能够成功获取到一些元数据信息,那么元数据服务应该是正常的。
4. 修复原始实例的元数据服务:
– 关闭临时实例。
– 导航到EC2服务。
– 单击”实例”,然后单击”实例”。
– 找到您的原始实例,并选择它。
– 单击”操作”,然后选择”启动模板”。
– 在”启动模板”页面上,单击”创建启动模板”。
– 在”启动模板”页面上,选择与您的原始实例相同的AMI,并按照向导的指示完成创建启动模板的过程。
– 在”启动模板”页面上,单击”启动模板”。
– 在”启动模板”页面上,选择您刚刚创建的启动模板,并按照向导的指示完成启动实例的过程。
– 确保在”安全组”部分选择与您的原始实例相同的安全组。
– 单击”启动”。
5. 验证修复:
– 等待实例启动完成。
– 使用您的私钥连接到实例。
– 运行以下命令来检查元数据服务是否正常运行:
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/
– 如果您能够成功获取到一些元数据信息,那么修复应该是成功的。
6. 删除临时实例:
– 确保您已经成功修复了原始实例的元数据服务。
– 导航到EC2服务。
– 单击”实例”,然后选择临时实例。
– 单击”操作”,然后选择”实例状态”,再选择”终止”。
– 在弹出的对话框中,单击”终止”来确认删除临时实例。

方案2

如果您无法登录到实例,也无法创建临时实例来修复元数据服务,那么您可以尝试以下步骤:
1. 创建一个新的Windows Server实例:
– 登录到AWS控制台。
– 导航到EC2服务。
– 单击”实例”,然后单击”启动实例”。
– 选择一个适合您的需求的AMI,并按照向导的指示完成实例的启动过程。
– 确保在”安全组”部分选择与您的原始实例相同的安全组。
– 单击”启动”。
2. 连接到新实例:
– 等待实例启动完成。
– 使用您的私钥连接到实例。如果您不知道如何连接到实例,请参考AWS文档中的相关指南。
3. 检查元数据服务:
– 在连接到新实例后,打开命令提示符或PowerShell。
– 运行以下命令来检查元数据服务是否正常运行:
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/
– 如果您能够成功获取到一些元数据信息,那么元数据服务应该是正常的。
4. 备份和恢复数据:
– 如果您的原始实例上有重要的数据,请确保在继续操作之前备份数据。
– 导航到EC2服务。
– 单击”实例”,然后选择原始实例。
– 单击”操作”,然后选择”创建映像”。
– 在”创建映像”页面上,按照向导的指示完成创建映像的过程。
– 在”映像”页面上,找到您刚刚创建的映像,并选择它。
– 单击”操作”,然后选择”启动实例”。
– 在”启动实例”页面上,按照向导的指示完成启动实例的过程。
– 确保在”安全组”部分选择与您的原始实例相同的安全组。
– 单击”启动”。
5. 验证修复:
– 等待实例启动完成。
– 使用您的私钥连接到实例。
– 运行以下命令来检查元数据服务是否正常运行:
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/
– 如果您能够成功获取到一些元数据信息,那么修复应该是成功的。
6. 删除原始实例:
– 确保您已经成功修复了新实例的元数据服务。
– 导航到EC2服务。
– 单击”实例”,然后选择原始实例。
– 单击”操作”,然后选择”实例状态”,再选择”终止”。
– 在弹出的对话框中,单击”终止”来确认删除原始实例。
请注意,这些解决方案可能需要一些时间和操作,具体取决于您的情况和要求。如果您仍然遇到问题,建议您联系AWS支持团队以获取进一步的帮助和指导。

正文完