AWS 如何查找EC2实例特定版本的AMI ID
B站视频:https://www.bilibili.com/video/BV1884y1q7qM/?spm_id_from=333.999.0.0
一、背景
在我的CloudFormation代码里面,经常会使用到特定版本的实例。但是在AWS控制台启动EC2实例时,AWS只会提供特定版本的EC2镜像,用户并不能自由选择特定的版本进行启动。要启动特定版本的EC2只能通过AWS CLI或者AWS CloudFormation在代码里面指定ami-id
信息然后启动。这里分享一下如何寻找特定版本的ami-id信息。
二、获取AWS控制台提供的镜像ami-id
对于控制台界面能够选择的实例,比较好查找对应的ami-id信息,找到这个ami-id是第一步,后续查找实例的其他版本需要用到这个ami-id。所以先看一下如何获取图形化能选择的实例ami-id。
AWS控制台界面可以通过四种途径启动EC2,分别是:
-
快速启动(Quickstart AMIs) -
我的AMI(My AMIs) -
亚马逊云科技Marketplace(AWS Marketplace AMIs) -
社区AMI(Community AMIs)。
目前AWS 中国区和AWS Global区域启动EC2的界面所有区别。对于第一、二和四种类型,在控制台界面可以直接看到ami-id信息。但是对于第三种在Marketplace上的实例,两种控制台界面获取ami-id的方法有所区别。
快速启动(QUickstart AMIs)界面获取ami-id信息
我的AMI(My AMIs)界面获取ami-id信息。
社区AMI(Community AMIs)界面获取ami-id信息。
对于AWS Global区域查看AWS Marketplace AMIs,在选择镜像后,准备启动时就可以看到ami-id信息,并不需要真的启动EC2就能获取ami-id信息。
对于AWS 中国区域查看AWS Marketplace AMIs,需要启动EC2之后,选中对应实例,才能看到对应的ami-id信息。
三、查询历史版本ami-id
现在已经了解如何通过AWS控制台界面来获取实例的ami-id信息。要获取实例其他版本的ami-id,需要使用aws cli
,并配置好凭证信息(请参考往期文章《AWS CloudFormation系列--(3)Python 操作CloudFormation》介绍了如何使用 AWS CLI以及配置凭证信息)。
这里通过一个案例,来看如何获取实例特定版本的ami-id信息,例如想要获取Fortigate 6.4.10版本的ami-id信息。
AWS控制台当前提供的Fortigate版本是7.0.7,通过上面的方法,获取到7.0.7版本的ami-id是ami-0f2b0162d497c9988
。
下面需要使用aws ec2 describe-images
[1]命令来查看这个ami-id的详细信息。
使用--region
参数,指定只查看Tokyo区域的的镜像。使用--image-ids
,指定ami-id信息。命令可以在有凭证的主机上运行,也可以在AWS CloudShell
上操作。
aws ec2 describe-images \
--region ap-northeast-1 \
--image-ids ami-0f2b0162d497c9988
AWS Gloabl区域提供CloudShell服务,进入之后可以直接配置AWS CLI,拥有和图形化界面用户相同的权限。