亚马逊弹性计算云(Amazon Elastic Compute Cloud,Amazon EC2)是一项基于网络的服务。该服务可使企业用户在Amazon.com计算环境下运行应用程序。
EC2的基本架构
EC2的基本架构中主要包括了 Amazon 机器映象、实例、存储模块等组成部分,并能与S3等其他Amazon云计算服务结合使用。
Amazon机器映象(AMI)
Amazon机器映像(Amazon Machine Image,AMI)是包含了操作系统、服务器程序、应用程序等软件配置的模板
当用户使用EC2服务去创建自己的应用程序时,首先需要构建或获取相应的AMI
四种获取AMI的途径
- 免费使用 Amazon提供的公共 AMI
- 根据自身需要定制一个或多个私有 AMI
- 向开发者付费购买 AMI
- 使用其他开发者分享的共享 AMI
构建好的AMI分为Amaznon EBS支持和实例存储支持两类
实例(Instance)
EC2中实例由AMI启动,可以像传统的主机一样提供服务。同一个AMI可以用于创建具有不同计算和存储能力的实例。
Amazon提供了多种不同类型的实例,分别在计算、GPU、内存、存储、网络、费用等方面进行了优化
Amazon还允许用户在应用程序的需求发生变更时,对实例的类型进行调整,从而实现按需付费。
Amazon EC2还为实例提供了许多附加功能,帮助用户更好地部署和管理应用程序。
弹性块存储(EBS)
EBS存储卷的设计与物理硬盘相似,其大小由用户设定,目前提供的容量从1GB到1TB不等。
一个实例可以包含多个EBS
EBS存储卷适用于数据需要细粒度地频繁访问并持久保存的情形,适合作为文件系统或数据库的主存储。
快照功能是EBS的特色功能之一,用于在S3中存储Amazon EBS卷的时间点副本。
地理区域和可用区域
地理区域(Region Zone) 按照实际的地理位置划分:
美东(北佛吉尼亚)
美西(俄勒冈)
美西(北加利佛尼亚)
欧洲(爱尔兰)
亚太(新加坡)
亚太(东京)
亚太(悉尼)
南美(圣保罗)
美西服务政府的GovCloud区域
中国(北京)区域
可用区域(Availability Zone)
是否有独立的供电系统和冷却系统等
通常将每个数据中心看做一个可用区域
EC2系统中包含多个地理区域,而每个地理区域中又包含多个可用区域。为了确保系统的稳定性,用户最好将自己的多个实例分布在不同的可用区域和地理区域中。
EC2的通信机制
弹性负载平衡
弹性负载平衡功能允许EC2实例自动分发应用流量,从而保证工作负载不会超过现有能力,并且在一定程度上支持容错。
弹性负载平衡功能可以识别出应用实例的状态,当一个应用运行不佳时,它会自动将流量路由到状态较好的实例资源上,直到前者恢复正常才会重新分配流量到其实例上。
监控服务
Amazon CloudWatch提供了 AWS资源的可视化检测功能
- EC2实例状态
- 资源利用率
- 需求状况
- CPU利用率
- 磁盘读取
- 写入
- 网络流量
用户只需要选择EC2实例,设定监视时间,CloudWatch就可以自动收集和存储检测数据
自动缩放
自动缩放可以按照用户自定义的条件,自动调整EC2的计算能力:
需求高峰期:确保EC2实例的处理能力无缝增大
需求下降时:自动缩小EC2实例规模以降低成本
自动缩放功能特别适合周期性变化的应用程序,它由CloudWatch自动启动。
服务管理控制台
各项技术通过互相配合来实现 EC2的可扩展性和可靠性
EC2的安全及容错机制
安全组是一组规则,用户利用这些规则来决定哪些网络流量会被实例接受,其他则全部拒绝。
当用户的实例被创建时,如果没有指定安全组,则系统自动将该实例分配给一个默认组。
默认组只接受组内成员的消息,拒绝其他消息。
当一个组的规则改变后,改变的规则自动适用于组中所有的成员。
SSH安全
SSH是目前对网络上传输的数据进行加密的一种很可靠的协议,当用户创建一个密钥对时,密钥对的名称(Key Pair Name)和公钥(Public Key)会被存储在EC2中
EC2引入了弹性IP地址的概念
弹性IP地址和用户账号绑定而不是和某个特定的实例绑定
当系统正在使用的实例出现故障时,用户只需要将弹性IP地址通过网络地址转换NAT转换为新实例所对应的私有IP地址
通过弹性IP地址改变映射关系总可以保证有实例可用