AWS云平台系列介绍(一):AWS平台与EC2介绍

标签: 云平台 AWS,EC2,S3 Dynamodb RDS,AWS存储系统对比 Simpledb | 发表时间:2012-04-05 18:34 | 作者:chuanhui
出处:http://www.nosqlnotes.net

AWS整体介绍

Amazon平台的产品分为几个部分:

  • 计算类:包含弹性计算云(EC2)和弹性MapReduce(Elastic MapReduce)这两个产品。EC2几乎可以认为是迄今为止云计算领域最为成功的产品,通俗地将,就是提供虚拟机。EC2的创新在于允许用户根据需求动态改变虚拟机实例的类型及数量,技术上支持容错并在收费模式上支持按使用量付费,而不是预付费。弹性MapReduce将Hadoop MapReduce搬到云环境中,大量EC2实例动态地成为执行大规模MapReduce计算任务的工作机。
  • 存储类:存储类产品较多,包括弹性块存储EBS,简单消息存储SQS,Blob对象存储S3,表格存储系统Simpledb和DynamoDB以及分布式数据库系统RDS。其中,EBS相当于一个分布式块设备,可以直接挂载在EC2实例上,用于替代EC2实例本地存储,从而增强EC2可靠性。另外,S3中的Blob对象能够通过CloudFront缓存到不同地理位置的CDN节点,从而提高访问性能。Simpledb和DynamoDB是分布式表格系统,支持单表的简单操作;RDS是分布式数据库,目前支持Mysql以及Oracle两种数据库。SQS主要用于支持多个任务之间的消息传递,解除任务之间的耦合。
  • 工具支持:AWS支持多种开发语言,提供Java、Rupy、Python、PHP、Windows &.NET 以及Android和iOS的工具集。工具集中包含各种语言的SDK,程序自动部署以及各种管理工具。另外,AWS通过CloudWatch系统提供丰富的监控功能。

AWS平台引入了区域(Zone)的概念。它将区域分为两种:地理区域(Region Zone)和可用区域(Availability Zone),其中地理区域是按照实际的地理位置划分的,而可用区域一般是按照数据中心划分的。

如上图,假设用户的网站MyWebSite.com托管在AWS平台的某个可用区域中。用户将Web应用上传到EC2实例中,EC2一般分成多个自动扩展(Auto Scaling)组,并通过弹性负载均衡(Elastic Load Balancing)组件进行负载均衡。用户的Web应用可以访问AWS平台上的存储类服务,包括EBS,S3,Simpledb,DynamoDB,RDS以及SQS。网站上的Blob数据,如视频,图片将通过DNS定位到Amazon CloudFront。CloudFront首先在本地缓存节点查找Blob对象,如果不存在,将请求源站获取S3中存储的Blob对象,这一步操作称为回源。AWS CloudWatch对AWS平台上运行的所有服务及应用程序进行监控。

Amazon EC2

相比传统的虚拟机托管,EC2的最大特点是允许用户根据需求动态调整运行的实例类型和数量,实现按需付费。为了支持这种灵活性,EC2需要在技术上支持容错以及更好的安全性。

架构

Amazon EC2平台主要包含如下部分:

  • EC2实例

AMI(Amazon Machine Image)是Amazon虚拟机镜像文件,它是一个可以将用户的应用程序、配置等一起打包的加密机器镜像。用户创建好AMI后,部署在EC2平台上运行,称为一个EC2实例。每个实例自身包含一个本地存储模块(Instance Local Store),临时存放用户数据。如果EC2实例运行过程中出现故障或者实例被终止,存储在其中的数据将会丢失。因此,Amazon建议将重要的数据保存在EBS中以增强可靠性。

  • 弹性块存储

弹性块存储(EBS)映射为EC2实例上的块设备,与EC2配合使用。EBS允许用户创建卷(Volume),每个卷可以作为一个设备挂载到EC2实例上。数据在EBS中存储多份,从而保证高可靠性。另外,EBS提供了增量快照功能,可以将当前卷的状态快照增量备份到S3中。假设EBS卷有100G数据,其中只有5GB的数据从上次快照操作以后产生了变化,那么,仅仅需要将这5GB变化的数据备份到S3。

  • 弹性负载均衡

弹性负载均衡自动地将流量分发给多个EC2实例,并且在一定程度上支持容错。弹性负载均衡功能可以识别出应用实例的状态,当某个实例出现故障时,它会自动将流量路由到健康的实例上。

EC2存储

EC2本地存储是实例自带的磁盘空间,但它并不是持久的,也就是说这个实例所在的节点出现故障时,相应的磁盘空间也会随之清空,本地存储上的数据随时有丢失的风险。

为了解决本地存储不可靠问题,EC2推出了EBS,数据在EBS中自动在同一个可用区域内复制多份。EBS通过卷来组织数据,每个EBS卷只能挂载到一个EC2实例。EBS卷并不与实例绑定,而是与用户帐号绑定。当EC2实例发生故障时,用户可以在新启动的EC2实例上重新挂载EBS卷。另外,EBS能够以快照的形式将数据增量备份到S3,而S3的数据分布在多个可用区域,进一步增强了可靠性。EBS的设计原理如下:

如上图,EBS包含两个部分:EBS控制层(EBS control plane)及EBS存储节点。EBS客户端通过EBS control plane创建逻辑卷,获取逻辑卷每个副本所在的EBS存储节点位置,然后请求EBS存储节点读写逻辑卷数据。每个逻辑卷存储在多个EBS节点上,多个副本之间数据强同步,其中有一个副本为Primary,其它的为Secondary。当Primary往Secondary传输数据失败时,将请求EBS control plane选取新的EBS节点增加副本,这个过程称为重新镜像(re-mirroring)。EBS control plane负责每个逻辑卷的Primary副本选取,如果Primary出现故障,将选择某个Secondary副本为新的Primary。EC2实例通过EBS客户端访问EBS系统,它们之间遵守一定的协议,比如网络块设备(Network Block Device,NBD)协议,从而EC2实例访问远程EBS节点上的逻辑卷与访问本地的块设备没有差别。

自动缩放

自动缩放(Auto Scaling)可以根据用户自定义的条件,自动调整EC2的计算能力。多个EC2实例组成一个自动缩放组(Auto Scaling Group),当组内的实例负载过高,比如CPU平均使用率超过70%时,可以定义缩放规则自动增加EC2实例;同样地,当组内的实例负载过低时,可以自动缩小EC2实例规模以降低成本。

EC2根据计算能力将实例分为多种类型,如下表:

资源

Small

Large

Extra Large

High-CPU Medium

High-CPU Extra Large

平台

32位

64位

64位

64位

64位

CPU

1ECU

4ECU

8ECU

5ECU

20ECU

内存

1.7GB

7.5GB

15GB

1.7GB

7GB

存储容量

160GB

850GB

1690GB

350GB

1690GB

EC2的一个计算单元称为一个ECU(EC2 Compute Unit),其计算能力相当于1个1.0GHz 2007 Xeon处理器。EC2平台不支持虚拟机实例在线迁移,如果用户需要调整实例类型,EC2内部实现时逻辑上分为两步:a) 终止原有的EC2实例;b) 根据一定的策略(比如负载)动态选择新的服务器节点启动新的EC2实例。自动缩放功能一般会配合弹性负载均衡功能一起使用,弹性负载均衡组件能够自动将流量转发给新实例。

网络路由

通过自动缩放技术,当EC2平台检测到某个实例出现故障时,将动态选择新的节点启动新实例,每个实例重新启动后它的公共IP地址都会发生变化。Internet用户通过域名访问EC2实例,然而,需要一段比较长的时间才能更新公共IP地址与DNS之间的映射关系。为了解决这个问题,EC2提供了两种方式:

  1. 弹性负载均衡:EC2新实例重启后通知弹性负载均衡组件,弹性负载均衡组件能够自动将流量切换到新实例。
  2. 弹性IP地址:弹性IP地址和用户账号而不是和某个特定的实例绑定,EC2用户可以将DNS域名设置为指向弹性IP地址。新实例启动时,EC2用户只需要使用管理工具将弹性IP地址与新的实例关联起来,Internet用户感觉不到任何差异。

相关 [aws 平台 系列] 推荐:

AWS云平台系列介绍(一):AWS平台与EC2介绍

- - NOSQL Notes
Amazon平台的产品分为几个部分:. 计算类:包含弹性计算云(EC2)和弹性MapReduce(Elastic MapReduce)这两个产品. EC2几乎可以认为是迄今为止云计算领域最为成功的产品,通俗地将,就是提供虚拟机. EC2的创新在于允许用户根据需求动态改变虚拟机实例的类型及数量,技术上支持容错并在收费模式上支持按使用量付费,而不是预付费.

如何在AWS云平台上构建千万级用户应用

- - 博客园_新闻
高扩展性应用建设并非把应用直接迁移到云平台上就能轻易实现,相反我们需要根据云平台的特性进行专门的设计,这包括选择合适的云服务类型并进行良好的应用架构设计. 对于希望基于 AWS 构建千万级用户应用的开发者而言,不仅需要对区域(Region)、可用区(AZ)和边缘站点等基础设施的分布有所了解,更需要了解不同的 AWS 服务各自的特点和最佳实践.

猜測 AWS ELB 內的架構…

- - Gea-Suan Lin's BLOG
AWS Elastic Load Balancing (ELB) 是 AWS 在雲端上推出的 Load balancer. 在非雲端的架構上會使用 Layer 4 Switch (像是 F5、 Alteon),或是使用 open source 的 HAProxy. 從實驗猜測 ELB 是這樣做的:.

AWS 的 S3 故障回顾和思考

- - 酷 壳 – CoolShell
继 Gitlab的误删除数据事件没几天,“不沉航母” AWS S3 (Simple Storage Service)几天前也“沉”了4个小时,墙外的半个互联网也跟着挂了. 如约,按 AWS 惯例,AWS今天给出了一个简单的故障报告《 Summary of the Amazon S3 Service Disruption in the Northern Virginia (US-EAST-1) Region》.

2016 AWS Re:Invent 大会上,AWS又发布了哪些让人惊艳的创新?

- - 知乎每日精选
由于工作的关系,最近一直跟亚马逊的若干平台打交道,对这个公司产生了极大的兴趣和关注,也刚刚看完了其老板的最新自传《The Everything Store | 万物商店》. 于是这次re:Invent大会自然不能错过,今天花两个半小时时间完整的看完了AWS的CEO Andy Jassy在re:Invent 2016上的Key Note (2016 AWS re:Invent Keynote Andy Jassy https://www.youtube.com/watch?v=8RrbUyw9uSg ).

苹果iCloud通过微软Azure和亚马逊AWS提供

- amleaf - GeekPark 捕风捉影
9月5日,据国外媒体报道,目前看来,苹果公司也有自己的局限性,虽然它在手机,平板电脑,音乐商店等方面取得了成功,但在云应用方面,苹果公司无法完全依靠自己的力量. 苹果即将发布的iCloud服务从一开始就被公众追捧,但说到苹果的云服务,仍然停留在设备级的,并没有上升到网络级. 这对苹果来说是一个绝佳的机会,它可以成为第一个让用户习惯于从云中在线获取产品,而不是单单从手机上获取产品.

亚马逊AWS引入命令行界面

- - Solidot
在图形界面时代,命令行仍然是最高效的系统管理工具. 亚马逊云计算平台宣布发布AWS命令行界面(aws-cli)的开发者预览版,让管理员和开发者通过命令行界面配置和控制AWS服务器. 目前该工具支持12种服务,包括Amazon EC2、Auto Scaling、Elastic Load Balancing、Amazon SQS和Amazon SNS,未来会增加其它服务的支持.

AWS 上 Apache httpd 服务器性能调优

- - ITeye博客
最近做了一个网站部署到AWS EC2上,启动之后访问速度奇慢无比,打开静态页面都要等好几分钟,这咋行. 于是我开始研究AWS性能调优的问题. 开始怀疑是免费的micro instance配置太差,但想想Amazon也不至于这么不靠谱吧. 于是ssh上去看了一眼top,里边的进程也没用掉多少CPU和内存,Swap也基本没有,所以基本排除服务器硬件资源不足的问题.

亚马逊AWS, Linode, 阿里云等云服务对比

- - idea's blog
最近, 有消息称亚马逊云服务(AWS)要进入中国, 在中国建立 IDC. 一石激起千层浪, 国内云服务纷纷降价. 根据我使用和了解到的云服务, 我觉得有必要对比下各个厂商的云服务, 希望支大家有帮助.. 网络传输 – $0.12/GB. 看起来, 似乎阿里云的价格最低, 但是, 阿里云的 CPU 和内存非常弱, 我在上面编译 PHP 源码, 竟然花了近一个小时.

亚马逊内部有个Google,那就是高速增长的AWS业务

- - PingWest品玩
没有一家上市公司,能够像亚马逊这样对自己的核心业务数据进行保密. 而这与公司最具话语权管理层的性格密切相关,亚马逊CEO杰夫·贝佐斯最擅于严守秘密. 在他看来,向经营对手披露自己的秘诀,他们会纷纷效仿. 于是,在不违背法律规定的前提下,他每次只透露了一点信息. 所以到现在,亚马逊Prime会员数和云服务AWS的收入规模,对媒体和公众来说,还始终是个谜.