批量创建具有相同配置的计算实例时,可以通过将已配置好的实例创建为自定义镜像,并基于该自定义镜像快速生成包含预设软件和配置的新实例,实现环境的标准化和自动化批量部署。
工作原理
创建自定义镜像时,系统会为源实例的每块云盘(包括系统盘和数据盘)创建一份快照。这些快照的集合构成一份自定义镜像。后续使用该镜像创建新实例时,系统会基于这些快照恢复云盘数据,从而完整复制源实例的环境。
实例规格限制
本地SSD型(i系列)规格不支持基于实例创建自定义镜像。
操作步骤
步骤一:准备实例
在创建镜像前,需对目标实例进行清理和检查,以确保生成的镜像安全、稳定且通用。
清理敏感数据:登录实例,清理敏感数据,如个人文件、密码、密钥、配置文件中的访问凭证等,避免将敏感信息打包到镜像中,引发安全风险。
预留系统盘空间:确保系统盘未被写满,为镜像制作过程预留足够的空间。
(条件必选)检查系统配置项:对于Linux实例请勿随意升级内核或操作系统版本,升级后可能导致镜像创建失败或通过该镜像创建的实例无法启动。此外还应检查以下影响实例镜像创建及使用的配置项:
系统登录及分区设置:避免修改默认登录用户名(root),以及调整系统盘分区(目前系统盘仅支持单个根分区)。
系统敏感文件配置:检查
/etc/fstab
文件,文件中挂载数据盘信息和实例当前的数据盘信息应一致。关键系统文件:确认未修改过
/sbin
、/bin
、/lib
等关键系统目录,否则可能导致系统异常。
(可选)停止实例:由于运行中的实例可能存在缓存数据未落盘的情况,建议停止实例后再创建自定义镜像,以确保创建的镜像数据与实例数据完全一致。
步骤二:创建自定义镜像
控制台
访问ECS控制台-实例页面,在页面左侧顶部,选择目标资源所在的资源组和地域。
单击目标实例ID进入实例详情页,单击页面右上方。
按照页面提示配置镜像名称及其他可选参数,单击确认提交创建。
重要镜像创建过程中,请勿停止、启动或者重启实例,避免镜像创建失败。
系统默认勾选创建后执行检测。勾选后系统会在镜像创建完成后立即执行镜像检测功能,检测导入的自定义镜像是否为有效镜像、是否可以创建出功能齐全的ECS实例等。
若自定义镜像开启了镜像族系,可将其设置为弃用或恢复可用,以实现镜像的平滑更新与回滚。
前往 ECS控制台-镜像页面。在自定义镜像页签下,根据设置的镜像名称找到新建的自定义镜像。当镜像的状态变为可用时,表示镜像已成功创建。
创建镜像所需时间取决于实例云盘的大小,需要等待每块云盘的快照创建完成,镜像才可使用,请耐心等待。
API
可以使用API接口CreateImage指定实例IDInstanceId
创建自定义镜像。调用成功后,该台实例的每块云盘均会新增一份快照。
后续操作
若在创建自定义镜像时勾选了创建后执行检测,可在自定义镜像列表的检测结果列查看检测详情。若有待修复项,可通过系统运维管理 OOS(CloudOps Orchestration Service)的公共模板ACS-ECS-RepairImage一键修复或者根据详情中的建议手动修复。
成功创建自定义镜像后,可以使用该自定义镜像进行以下操作:
使用自定义镜像创建实例,自定义镜像与ECS实例的计费方式相互独立,例如使用包年包月ECS实例创建的自定义镜像,可用于创建按量付费的ECS实例。
计费说明
创建自定义镜像的同时系统默认会创建实例所有云盘的快照,并依据快照的快照容量及快照计费规则产生存储费用。
镜像列表中的系统盘快照大小字段仅为参考值,不作为计费依据。实际计费容量以出账信息为准。
自定义镜像的费用(即关联快照的存储费)与源实例的计费方式相互独立。即使源实例被释放,只要自定义镜像(及其关联的快照)未被删除,费用仍会持续产生。
常见问题
为什么使用RAM用户创建自定义镜像时报错权限不足?
使用RAM用户基于实例创建自定义镜像需授予ecs:CreateImage
,及创建快照、查询实例资源的权限。当使用的RAM账号被赋予了强制绑定标签的相关RAM策略时,必须为创建的自定义镜像添加一个标签,否则会报错权限不足。
为什么无法删除与自定义镜像关联的快照?
为保证自定义镜像的完整性和可用性,系统不允许直接删除正在被镜像引用的快照。必须先删除对应的自定义镜像,之后才能成功删除快照。
如何基于不同实例下挂载的云盘创建自定义镜像?
可以通过快照创建自定义镜像,支持使用系统盘快照及不同实例下的数据盘快照创建自定义镜像。