云计算经过这几年的发展,已经不再是是一个高大上的名词,而是已经应用到寻常百姓家的技术。每天如果你和互联网打交道,那么或多或少都会和云扯上关系。gmail、github、各种网盘、GAE、heroku等各种服务都属于云服务的范畴。那么云计算的定义到底是什么?这里有摘自wiki的定义。
从上面的定义可以看出,云计算可以看做一个计算网络,其由一组硬件主机作为服务器,然后通过通讯网络连接,从而给其他用户提供各种各样的服务。
从该图中可以看出,云计算提供的服务可以分为三层,第一层是基础设施(Infrastructure),第二层是平台(Platform),第三层是应用软件(Application)。基础设置的服务包括虚拟或实体计算机、块级存储、网络设施(如负载均衡,内容交付网络,DNS解析)等,平台的服务包括对象存储、认证服务和访问服务、各种程序的运行时、队列服务、数据库服务等,而应用软件的服务则包括的多了,比如邮件服务、代码托管服务等等。用户可以通过台式电脑、手提电脑、手机、平板等各种互联网终端设备访问和使用这些服务。
其实这三层就是我们常说的IaaS(InfrastructureasaService)、PaaS(PlatformasaService)、SaaS(SoftwareasaService)。
亚马逊的云服务提供了多达几十种服务,涵盖了IaaS、PaaS、SaaS这三层。既然是亚马逊云服务,那么为什么通常都叫做AmazonWebService(AWS)那,为什么不叫AmazonCloudService之类的那?这个就不得而知了,估计当时AWS第一个服务出来的时候是年,那时候云的概念还没有这么火,而webservice则如日中天,所以起了个这个名字。好了不八卦了,先看看亚马逊云计算的架构图。
从该架构图可以看出,亚马逊云服务由7部分组成。接下来对这7部分的主要服务做一个简要的介绍。
在全局基础设施中有3个很重要的概念。第一个是Region(区域),每个Region是相互独立的,自成一套云服务体系,分布在全球各地。目前全球有10个Region,北京的Region已经在内测当中,不久就会开放使用。
第二个是AvailabilityZone(可用区),每个Region又由数个可用区组成,每个可用区可以看做一个数据中心,相互之间通过光纤连接。
第三个是EdgeLocations(边缘节点)。全球目前有50多个边缘节点,是一个内容分发网络(CDN,ContentDistrubtionNetwork),可以降低内容分发的延迟,保证终端用户获取资源的速度。它是实现全局DNS基础设施(Route53)和CloudFrontCDN的基石。
DirectConnect:支持企业自身的数据中心直接与AWS的数据中心直连,充分利用企业现有的资源。
VirtualPrivateCloud:私有云,从AWS云资源中分一块给你使用,进一步提高安全性。
EC2:ElasticComputerservice,亚马逊的虚拟机,支持Windows和Linux的多个版本,支持API创建和销毁,有多种型号可供选择,按需使用。并且有autoscaling功能,有效解决应用程序性能问题。
ELB:ElasticLoadBalancing,亚马逊提供的负载均衡器,可以和EC2无缝配合使用,横跨多个可用区,可以自动检查实例的健康状况,自动剔除有问题的实例,保证应用程序的高可用性。
S3:SimpleStorageService,简单存储服务,是亚马逊对外提供的对象存储服务。不限容量,单个对象大小可达5TB,支持静态网站。其高达99.%的可用性让其它竞争对手胆寒。
EBS:ElasticBlockStorage,块级存储服务,支持普通硬盘和SSD硬盘,加载方便快速,备份非常简单。
DynamoDB:DynamoDB是亚马逊自主研发的nosql型数据库,性能高,容错性强,支持分布式,并且与CloudWatch、EMR等其它云服务高度集成。
RDS:RelationalDatabaseService,关系型数据库服务。支持MySql,SQLServer和Oracle等数据库,具有自动备份功能,IO吞吐量可按需调整。
EMR:ElasticMapReduce,一个hadoop框架的实例,可用于大数据处理。
CloudFormation:采用jason格式的模板文件来创建和管理一系列亚马逊云资源。
OpsWorks:OpsWorks允许用户将应用程序的部署模块化,可以实现对数据库、运行时、服务器软件等自动化设置和安装。