如何创建可休眠的EC2实例?

5

我在存储阶段遇到了问题。它显示:要使用休眠功能,请加密根目录卷。 但是我无法勾选加密复选框,也找不到任何加密根目录卷的方法。

2个回答

5

更新 2020-03

自下面的帖子以来,很多事情已经发生了变化,休眠现在非常容易。加密可以在AWS控制台中的正常ec2创建流程中完成,Amazon Linux 2也得到支持。

你需要知道的所有内容:

  • 不是所有实例类型都受支持,请参见此处获取最新列表
  • RAM > 150GB不受支持
  • 您的磁盘空间需要大于您的RAM(因为休眠时会将RAM写入磁盘)

原帖:

最终我卡在了许多阶段,官方文档有些欠缺,所以我想记录一下我的发现:

要休眠一个实例,它必须是类型C3、 C4、 C5、 M3、 M4、 M5、 R3、 R4或R5。此外,它需要是Amazon Linux 1 AMI(这可能已过时,请参见此处获取最新列表)。我使用了Linux 2 AMI,并没有收到任何警告,直到最后它根本不起作用(仅在/var/log/messages中显示Suspend key pressed.Requested operation not supported, ignoring.),即使他们建议的启用休眠的步骤也不起作用,因为Amazon Linux 2上没有可用的ec2-hibinit-agent

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

  1. 使用AWS控制台创建KMS密钥
  2. 找到您地区的AWS Linux 1(非2!)的ami id,例如使用EC2启动向导。在我的情况下(欧洲中部区域),这是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

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

  1. 从EC2 AWS控制台的 AMIs(Amazon机器映像)中启动你的新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 来解决这些错误。


我之前遇到过类似的问题,于是停止使用Hibernation。然而,最近我又使用了它,并且创建一个可休眠实例变得更加简单。 现在,在使用控制台时,创建加密的EBS根卷已成为该过程的一部分。 - Yuvraj Gupta

1

2022年的可视化指南

先决条件

首先,查看AWS休眠前提条件,了解休眠要求,特别注意操作系统、RAM容量(小于150GB)和支持的实例族。

为启用休眠,需要在根卷上分配空间以存储实例内存(RAM)。确保根卷足够大,能够存储RAM内容并满足您的预期使用需求,例如操作系统、应用程序等。要使用休眠,根卷必须是加密的EBS卷

创建EC2实例步骤

启动实例向导(创建新EC2实例时的向导)中,展开存储(卷)EBS卷部分 enter image description here

注意以下属性:

  • 大小(GiB):确保它大于内存大小和您的预期使用
  • 加密:是
  • KMS密钥:您可以选择默认值以简化操作

然后滚动到高级详细信息部分,选择启用停止 - 休眠行为选项 enter image description here

然后继续创建实例

使用方法

要将创建的实例休眠,请从仪表板中选择它,选择实例状态 -> 休眠实例 Hibernating an instance


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接