如何创建可以休眠的ec2实例?

问题描述 投票:1回答:1

我陷入了存储阶段。它说:To use hibernation, encrypt the root volume.。但我无法单击加密复选框,也没有找到任何加密根卷的方法。

amazon-ec2 ami hibernation
1个回答
1
投票

最后我被困在很多阶段,官方文档在某种程度上缺乏,所以我想我会记录我的发现:

为了休眠实例,它需要是C3,C4,C5,M3,M4,M5,R3,R4或R5类型。此外,它需要是一个亚马逊Linux 1 AMI(这可能已经过时,请参阅here获取最新列表)。我开始使用Linux 2 AMI并且直到它最终没有工作才报警(仅在/ var / log / messages中显示Suspend key pressed.Requested operation not supported, ignoring.),甚至their suggested steps to enable hibernation也不起作用,因为ec2-hibinit-agent不是Amazon Linux 2上的可用数据包。

休眠需要加密启动卷。为了实现这一点,您需要在启动启动向导之前加密AWS Linux 1 AMI:

  1. 使用AWS控制台创建KMS密钥
  2. 找到您所在地区的AWS Linux 1(不是2!)的ami id,例如使用ec2启动向导。在我的情况下(欧洲中心-1),这是ami-0cfbf4f6db41068ac
  3. 创建自己的,加密的ami(用你自己的密码替换eu-central-1amikms密钥

aws ec2 copy-image --source-region eu-central-1 --source-image-id ami-0cfbf4f6db41068ac \
--region eu-central-1 --name "LinuxAMIEncrypted" --encrypted \
--kms-key-id arn:aws:kms:eu-central-1:123412341234:key/aaaaaaaa-1234-abce-abcd-1234abcdef01

等几分钟,直到你看到新的AMI出现在EC2 - > AMIs中

  1. AMIs(在EC2 AWS控制台中)启动您的新AMI
  2. 选择C3,C4,C5,M3,M4,M5,R3,R4或R5
  3. 点击Enable hibernation as an additional stop behavior

测试它:

  • 在ec2实例上运行tail -f /var/log/messages以检查错误
  • 通过终端运行aws ec2 stop-instances --instance-ids "i-…" --hibernate来休眠,或者通过aws控制台运行

另外我在/var/log/messages中看到了这个错误:

Agent hibernate - AccessDeniedException: User: arn:… is not authorized to perform: ssm:UpdateInstanceInformation on resource: ssm:UpdateInstanceInformation。我需要附加AmazonEC2RoleforSSMAmazonSSMAutomationRole以使这些错误消失。

© www.soinside.com 2019 - 2024. All rights reserved.