阿里云支持通过运维编排服务OOS、快照、ECS实例以及Packer构建自定义镜像,还支持导入本地的自定义镜像。出于安全考虑,如果您频繁地使用自定义镜像,建议您定期更新镜像。例如,定期升级操作系统补丁、更新中间件软件、更新证书或者安装最新的第三方软件。

构建方式对比

阿里云支持的构建自定义镜像的方式对比见下表所示:

构建方式 优点 缺点 计费
使用OOS更新自定义镜像
  • 官方模板,无需编码
  • 在线使用,无需安装
  • 无需登录密钥,安全可靠
  • 可视化执行过程
可能涉及实例规格、云盘、快照等资源消费。详情请参见计费概览
通过ECS控制台操作,简单易用
  • 随预装软件扩充变得复杂
  • 难以确保人工操作是否准确无误和前后一致
  • 后期维护成本高
可能涉及快照使用费用,详情请参见快照计费方式
使用Packer构建自定义镜像 工具开源并支持众多云服务提供商
  • 需要安装和维护
  • 需要自己编写脚本
可能涉及实例规格、云盘、快照等资源消费。详情请参见计费概览
创建并导入自定义镜像 可实现应用迁移上云 需操作图形化界面和配置虚拟驱动,有一定难度 可能涉及快照使用费用和对象存储OSS存储费用,详情请参见快照计费方式对象存储OSS文档 计量项和计费项

构建流程

除导入自定义镜像外,构建自定义镜像均依赖于ECS实例某一时刻的系统状态和应用数据。其中,运维编排服务OOS与Packer都是通过自动创建并释放临时ECS实例实现自定义镜像构建,更适合敏捷的开发流程。

不同的自定义镜像构建流程如下所示:
  • 使用OOS更新自定义镜像,需要您使用公共模板(例如ACS-ECS-UpdateImage)或者创建自定义运维模板。通过创建运维任务构建自定义镜像,构建流程可以通过YAML、JSON或者可视化预览呈现。使用OOS构建镜像
  • 使用快照或ECS实例构建自定义镜像,需要您使用已有的快照或者运行中的ECS实例在ECS管理控制台创建自定义镜像。如果您只需要获取自定义镜像,还需要自行释放临时创建的ECS实例。使用快照构建镜像
  • 使用Packer构建自定义镜像,需要您根据Packer的生成器等JSON模板自行编写脚本。使用Packer构建镜像
  • 创建并导入本地的自定义镜像,需要您根据阿里云自定义镜像规范配置虚拟机(例如VirtualBox VM),再通过对象存储OSS将自定义镜像导入到ECS。自定义镜像规范请参见导入镜像必读导入本地的自定义镜像