未为ENA启用AMI

时间:2019-01-21 19:55:40

标签: amazon-web-services amazon-ec2 ami ec2-ami

我正在尝试缩小us-east-1地区中AMI(ami-0a6b7e0cc0b1f464f)的根目录。缩小本身是成功的,即我创建了一个较小的快照,该快照可以正常工作。但是,当我从该快照创建AMI时,该AMI的实例中未启用ENA(使用弹性网络适配器的增强网络)。

下面是我执行的高级步骤。

  • 创建了一个新实例t3.micro,并确保在该实例中启用了ENA。
  • 创建了根卷(“源”)和收缩卷(“ target”)的新快照。
  • 将所有文件和分区从源复制到目标卷。
  • 创建目标卷的快照。从此快照创建了一个AMI。尝试启动t3实例,但由于未启用ENA而无法执行。

enter image description here

按照AWS Docs

  

Amazon Linux 2和最新版本的Amazon Linux AMI安装了增强联网所需的模块,并设置了必需的enaSupport属性。因此,如果您在支持的实例类型上使用Amazon Linux的HVM版本启动实例,则已经为您的实例启用了增强联网。

因此,如果我使用的是Amazon Linux 2,并且要为该卷拍摄快照,该卷具有从其先前的卷复制的所有文件,为什么不启用ENA?可能是通过其他方式应用了网络组件,所以简单的复制无法正常工作?

2 个答案:

答案 0 :(得分:1)

<块引用>

因此,如果我使用的是 Amazon Linux 2,并且我正在拍摄一个卷的快照,该卷的所有文件都从其先前的卷中复制,为什么未启用 ENA?可能网络组件以其他方式应用,所以简单的复制不起作用?

您可以将 AMI 视为一个定义文件,其中包含有关 ENA 的信息。快照不了解 AMI,它们是“存储”。是的,它们可能包括文件系统、操作系统、驱动程序等,但这不一定包括 AWS 需要为您提供的信息 == 启用 ENA 的网络。解决方法其实很简单。在创建 AMI 时,您告诉 AWS to enable ENA。例如,如果您使用 AWS cli 注册图像,只需添加 --ena-support 如

aws ec2 register-image --ena-support ...

现在,AWS 确实表示,如果您从启用了 ENA 的实例创建 AMI,它们将自动 infer this information from running instance。但是,这与使用快照创建映像不同。它最终对您有用,因为您有一个安装了 ENA 驱动程序的正在运行的实例,并且 AWS 能够检测到它。

答案 1 :(得分:0)

我仍然不知道其背后的逻辑原因,但是我成功制作启用了ENA的AMI的方式是:

  1. 首先创建我的问题中提到的目标卷。
  2. 然后从我用来创建目标卷的EC2实例中停止并分离所有卷(包括根卷)。请注意,此实例已启用ENA。
  3. 以root用户身份连接目标卷并启动EC2实例。由于目标卷包含与根目录相同的文件,因此ec2实例启动应该没有问题。我们在这里基本上要做的是将根卷与目标卷交换。
  4. 确认已在计算机上启用ENA,并且您的卷大小缩小了。然后从正在运行的实例中创建一个AMI(右键单击->映像->创建映像)。