Amazon Machine Image (AMI) 是亚马逊AWS提供的系统镜像,该镜像包含了启动实例时所需要的必需信息。在创建一个EC2实例的时候,你必须选择一个AWS AMI。可以理解一个AMI是一个刻录好的系统光盘。
这个AMI包含了如下的信息:
- 由实例的操作系统、应用程序和应用程序相关的配置组成的模板
- 一个指定的需要在实例启动时附加到实例的卷的信息(比方说定义了使用8 GB的General Purpose SSD卷)
下图所示的是AMI的生命周期,你可以创建并注册一个AMI,并且可以使用这个AMI来创建一个EC2实例。同时你也可以将这个AMI复制到同一个AWS区域或者不同的AWS区域。你同样也可以注销这个AMI镜像。
你可以在AWS Marketplace下载厂家的官方AMI(比方说思科,SAP,微软等公司),或者可以在社区市场下载公共开放的AMI。你也可以制作AMI放到社区市场上。
Amazon Linux AMI
亚马逊AWS提供了一种官方的基于Linux操作系统的AMI,这个AMI能提供以下的功能:
- 稳定、安全和高效的执行环境。
- 不需要额外的费用(某些厂家软件会在对AMI的使用收取按小时的一定计费)
- 预装了编程语言Python, Ruby, Perl和Java等
- 预装了Docker, PHP, MySQL, PostgreSQL等常用的应用包
- 预装了AWS CLI工具,Amazon EC2 API和AMI工具等等
EBS快照
你可以通过创建一个关于EBS的快照将Amazon EBS卷上的数据备份起来,方便之后基于该快照创建新的EBS卷。快照还有如下特点:
- 备份的快照将会保存在亚马逊S3 (Simple Storage System)上
- EBS快照属于增量备份,即第二次之后的快照只会更新变化了的那一部分数据
- 你可以在EC2实例运行的状态下进行EBS的快照操作,但会给EC2的系统带来一定延迟(CPU,内存利用率会变高)
- 最佳实践是将EC2实例停止,然后将EBS从EC2上卸载下来,进行快照操作
- 你可以基于EBS快照在同一个AWS区域创建新的EBS卷,这个卷可以是任何EBS类型,任何支持的大小
- 你也可以将快照复制到其他AWS区域
- 你可以将快照共享给其他的AWS用户
- 加密的EBS卷在创建快照后,该快照也会被自动加密
- 通过加密快照创建的EBS也是自动加密的
- 在复制未加密的快照时,你可以在复制过程中对其加密
AMI和EBS快照的使用场景
有几个比较常见的场景会需要你使用AMI和EBS快照的功能。
如果你想将一个EC2实例从一个AWS区域迁移到另一个AWS区域,你需要:
- 创建基于这个EC2实例的AMI
- 将这个AMI进行复制,复制到另一个AWS区域
- 通过这个AMI创新创建一个EC2实例
- 充当数据盘的EBS也需要做EBS快照
- 将这个EBS快照进行复制,复制到另一个AWS区域
- 通过这个EBS快照创建EBS卷,并且依附到EC2实例上去
如果你想复制一个EBS卷到该AWS区域的不同可用区,你可以:
- 创建一个EBS快照
- 通过EBS快照创建一个新的EBS卷,并且定义大小、卷类型、是否加密等属性