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

时间:2019-02-20 11:10:46

标签: amazon-ec2 ami hibernation

我被困在存储阶段。它说:To use hibernation, encrypt the root volume.。但是我无法单击加密复选框,也找不到任何方法来加密根卷。

1 个答案:

答案 0 :(得分:0)

最后,我被困在许多阶段,官方文件以某种方式缺乏,所以我想记录下我的发现:

要使实例休眠,其类型必须为 C3,C4,C5,M3,M4,M5,R3,R4或R5 。另外,它必须是 Amazon Linux 1 AMI(此版本可能已过时,有关最新列表,请参见here)。我从Linux 2 AMI开始,直到最后没有起作用(在/ var / log / messages中仅显示Suspend key pressed.Requested operation not supported, ignoring.)之前,都没有收到任何警告,甚至{{ 3}}无效,因为ec2-hibinit-agent在Amazon Linux 1上不是可用数据包。

休眠要求对启动卷进行加密。为此,您需要在启动启动向导之前加密AWS Linux 1 AMI

  1. 使用AWS控制台创建KMS密钥
  2. 如果您所在地区的AWS Linux 1(不是2!),请找到ami id。使用ec2启动向导。在我的情况下(eu-central-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中显示-> AMI

  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才能使这些错误消失。