如何在 AWS 模板中创建没有给定 Image-Id 的 EC2 实例?

How to create EC2 instance without given Image-Id in AWS template?

我想使用 AWS 模板创建一个 RHEL OS EC2 实例。我目前没有任何 RHEL 实例。所以不要有任何Image-ID。

Red Hat 维护 RHEL AMI。我们可以使用 CLI describe-images 根据以下条件查询他们的 public AMI:

  • 账号:309956199498
  • 与 AMI 名称匹配的已知字符串模式:RHEL-*_HVM_GA-*-Hourly2-GP

为了这个例子,我们将按 CreationDate 对图像进行排序,仅请求集合中的最后一个元素(通过 -1)并将结果筛选为 Name、ImageId 和 CreationDate。

示例:

aws ec2 describe-images \
    --owners 309956199498 \
    --filters "Name=name,Values=RHEL-*_HVM_GA-*-Hourly2-GP2" \
    --query 'sort_by(Images, &CreationDate)[-1].[Name, ImageId, CreationDate]' \
    --output text

输出:

RHEL-7.3_HVM_GA-20161026-x86_64-1-Hourly2-GP2   ami-b63769a1    2016-10-26T22:32:29.000Z

要验证这是正确的,您可以通过访问 AWS 控制台的 EC2 'Launch Instances' 向导的 'Quick Start' 部分并检查靠近顶部排序的最新 RHEL AMI 来仔细检查这个快速启动列表。在本文发布时,最新的 RHEL AMI 是 ami-b63769a1

在此之后,您将获取生成的 ImageId 并将其用作您对 launch a new instance 的请求的一部分。

进一步阅读: