您可以创建一个启动模板,其中包含用于启动实例的配置信息。您可以在启动模板中存储启动参数,而无需在每次启动实例时都指定这些参数。
使用cli创建一个启动模板,然后使用该启动模板启动一个ec2
1. 创建模板文件
如果你对模板的定义不太熟悉,可以从一个现有的启动模板导出一份作为基础,再来做修改。
导出一个启动模板:
aws ec2 describe-launch-template-versions --launch-template-id lt-xxxxxx
json在线格式化:https://www.json.cn/#
新建json文件:launch-ec2-template-data.json (配置参数说明,请查看文档)
{
"KeyName":"test-key",
"ImageId":"ami-xxxxxx",
"BlockDeviceMappings":[
{
"DeviceName":"/dev/xvda",
"Ebs":{
"DeleteOnTermination":true,
"VolumeType":"gp2",
"VolumeSize":2
}
}
],
"InstanceType":"t2.micro",
"NetworkInterfaces":[
{
"SubnetId":"subnet-xxxxxx",
"DeviceIndex":0,
"Groups":[
"sg-xxxxxx"
]
}
]
}
2. 使用上面的配置文件,创建启动模板
# aws ec2 create-launch-template --launch-template-name TemplateForWebServer --version-description WebVersion1 --launch-template-data file://launch-ec2-template-data.json
{
"LaunchTemplate": {
"LatestVersionNumber": 1,
"LaunchTemplateId": "lt-xxxxxx",
"LaunchTemplateName": "TemplateForWebServer",
"DefaultVersionNumber": 1,
"CreatedBy": "arn:aws:iam::xxxxxxxxxx:user/test-user",
"CreateTime": "2019-01-12T05:13:54.000Z"
}
}
3. 使用启动模版创建ec2
aws ec2 run-instances --launch-template LaunchTemplateId=lt-xxxxxx,Version=1
4. 常用命令
列出所有启动模板:
aws ec2 describe-launch-templates
获取启动模板的配置信息:
aws ec2 describe-launch-template-versions --launch-template-id lt-xxxxxx
设置默认启动模板的版本:
aws ec2 modify-launch-template --launch-template-id lt-xxxxxx --default-version 2
5. 其他
启动模版本身已经有版本管理,你也可以把启动模版配置文件(如上面的:launch-ec2-template-data.json)放置在git服务中,实现版本管理。
参考:
https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/ec2-launch-templates.html