Amazon提供的两种服务:快速应用部署Elastic Beanstalk、服务模板CloudFormation。
AWS Elastic Beanstalk是一种简化在AWS上部署和管理应用程序的服务,系统会自动进行需求分配、负载均衡、自动缩放、监督检测等一些具体部署细节。目前AWS Elastic Beanstalk仅针对Java开发者提供支持。
Elastic Beanstalk虚拟机是一种运行Apache Web Server、Tomcat 和 the Enterprise Edition of the Java platform的AMI虚拟机,具有以下特点。
(1)Elastic Beanstalk构筑于AWS之上,因此它具有Amazon EC2、负载均衡、云监控、自动缩放等全部的特性。
(2)用户可以采用多种方式对其程序进行控制和参数设置,也可以通过登录EC2实例来处理程序出现的问题,或者采用Elastic Beanstalk AMI提供的默认处理方式。
(3)Elastic Beanstalk为每个应用运行多个EC2实例,提高程序的可靠性。
(4)利用Elastic Beanstalk部署的用户程序可以调用部署在其他EC2实例上的程序,并能保证时延。
Amazon虚拟私有云(VPC)是一个安全的、可靠的、可以无缝连接企业现有的基础设施和Amazon云平台的技术。VPC将企业现有网络和AWS计算资源连接成一个虚拟专用网络资源,提供强大的网络功能。通过Amazon VPC,企业可以很容易地获得需要的基础资源,有效地控制成本、节省时间和管理成本。
简单通知服务(SNS) 是一种Web服务,提供方便的信息发布平台,具有高的可扩展性和成本优势。应用程序可以通过SNS发布消息;用户可以直接通过SNS来创建的高可靠性、事件驱动的工作流程和信息应用。SNS的潜在用途包括监控应用、工作流系统、事件敏感的信息更新、移动应用。
Amazon简单邮件服务(Simple E-mail Service,SES) 是一个简单的高扩展性和具有成本优势的电子邮件发送服务。通过简单的API调用,企业就可以获得高品质电子邮件系统,将高效率、低成本的优势转移到用户身上。同时SES采用了内容过滤技术,有力地阻止垃圾邮件。
Amazon的弹性MapReduce是通过EC2和S3来实现的,其基本架构如图所示。
弹性MapReduce的运行过程非常简单,用户根本不需要考虑计算中涉及的服务器部署、维护及软件环境的配置。Amazon允许用户在上传数据前对数据进行加密并通过安全的HTTPS协议上传数据。弹性MapReduce中的实例被划分成两个安全组:一个是主节点安全组,另一个是从节点安全组。任务流实际上是由一系列前后相关的处理过程组成的,可以与线性链表的结构类比,除了第一个节点和最后一个节点,每个节点既是前一个节点的后继也是后一个节点的前驱。
Amazon在其最擅长的电子商务领域先后推出了一系列服务:DevPay、灵活支付服务、简单支付服务。
1、DevPay
DevPay是Amazon推出的主要针对开发者的软件销售及账户管理平台。开发者将自己开发的付费AMI和基于S3的相关产品通过DevPay平台进行发布,用户则通过DevPay浏览包括软件功能和价格在内的相关信息,并通过DevPay进行购买并支付费用。开发者通过DevPay提供的账户管理功能对自己的账户及产品进行管理,可以进行诸如查看使用产品的用户情况、修改产品价格等操作。Amazon Payments属于第三方支付平台,DevPay中的所有的交易都通过Payments完成。
用户利用开发者开发的软件方便地使用包括EC2、S3在内的Amazon云计算服务。开发者在Amazon的巨大用户群体中推广自己的产品,降低开发难度,保证资金安全。
在DevPay服务中,计费包括两部分:开发者向用户收取的费用和DevPay向开发者收取的费用。
2、灵活支付服务FPS
FPS允许用户根据需要和实际情况对支付服务进行各种个性化的设置,使其和用户的电子商务平台更加契合。
FPS服务类型 | 适合的交易类型 |
---|---|
Amazon FPS Basic Quick Start | 一次性的交易 |
Amazon FPS Advanced Quick Start | 买卖双方多次或重复交易 |
Amazon FPS Marketplace Quick Start | 有中介参与的三方交易 |
Amazon FPS Aggregated Payments Quick Start | 将数个小额交易集合成单个交易 |
Amazon FPS Account Management Quick Start | 账户管理 |
FPS服务中有三种身份的参与者:
顾客在使用了FPS服务的网站上购买产品或服务的基本流程如图:
Payment Token有以下几种:
(1)Single-use:一次性交易中所需的Token。
(2)Recurring-use:每隔固定的间隔时间就对购买进行确认所需的Token。
(3)Multi-use:可以在多次交易中使用的Token。
(4)Prepaid:使用预付款方式进行交易中所需的Token。
(5)Postpaid:使用赊账方式进行交易所需的Token。
(6)Editing:对已存在的Token修改时所需。
不同类型的FPS服务中会返回不同的Payment Token,这就是几种FPS服务的最主要区别。
在收到Payment Token后,商品网页会向FPS服务发出支付请求,成功之后顾客的付款就转移到销售者的账户上。
FPS还向开发者提供了一个沙盒(Sandbox)用来做测试,在正式使用FPS之前利用沙盒进行测试是非常有必要的,而且不会产生任何费用。
3、Simple Pay
简单支付服务(Simple Pay)是一种允许顾客使用其Amazon账户进行支付的服务,目前简单支付服务有五种常用的支付按钮,按钮类型及其功能见表。
按 钮 类 型 | 功 能 |
---|---|
Standard Button | 普通的一次性购物 |
Marketplace Button | 作为交易的中介者 |
Basic Donation Button | 允许在美国的通过美国国税局认证的非营利性机构募集捐款 |
Marketplace-Enabled Donation Button | 允许第三方机构代表非营利性组织来募集捐款 |
Subscription Button | 通过该按钮可以收取类似订阅费的重复性费用,还可以利用该按钮对用户提供免费试用服务或进行产品介绍 |
简单支付服务的功能和FPS服务类似,但和FPS相比,它的最大优势就是简单。FPS服务允许开发者自行定制其支付页面,可以实现各种复杂的支付方式,但高度的灵活性带来的必然是实现上的复杂性。FPS服务需要用户具有一定的编程经验,而简单支付服务对用户的编程技术几乎没有什么要求,简单支付服务流程如图所示:
总的来讲,对于支付服务有着较高要求的用户可以选择FPS,但只是简单地完成一些日常支付服务的则推荐使用简单支付服务。
Amazon执行网络(Fulfillment Web Service,FWS)是一个非常有用的代理订单执行网络服务,简单来说它的作用就是产品存储及销售业务的托管,也可直接理解为Amazon替用户销售产品。
Amazon的土耳其机器人是一个特殊的服务,采用了众包的思想。和EC2等服务聚集大量的计算机不同的是,土耳其机器人聚集的是人这种特殊的“计算工具”,所以将土耳其机器人称为“人计算”似乎更为恰当。土耳其机器人中涉及的概念如下。
(1)Requester:任务的发布者,可以是个人也可以是某个组织。
(2)HIT:HIT就是Requester发布的任务,HIT有一个时间限制,同时HIT还规定了接受任务者完成任务的时间。
(3)Worker:任务的接受者,对于同一个HIT每个Worker只能完成一次。
(4)Assignment:可以用来监督HIT的完成情况,对于每个Worker都会创建一个Assignment。
(5)Reward:Worker成功完成HIT后需要支付给其的奖励。
Amazon Redshift是一种完全托管的PB级数据仓库服务,费用不到大多数其他数据仓库解决方案成本的十分之一,降低数据仓库的成本。通过简单的API调用进行扩展或缩减,自动进行修补,并自动或根据用户定义进行备份。提供了对大规模数据进行快速分析的功能,可以实现对多个物理资源上数据的分布式并行查询。
与传统的数据仓库和数据库相比,Redshift具有如下特点。Redshift采用了列式数据存储,更加适用于数据仓库存储及分析。在数据仓库中,查询会涉及对大型数据集进行聚合。Redshift采用了多种压缩技术,并对加载的数据自动选择最合适的压缩方案,从而实现更好的压缩效果。Redshift具有大规模并行处理的能力。
很多应用程序中需要从分散且数量众多的数据源中收集数据。这要求开发人员实现大规模的汇聚网络进行数据收集,并采用弹性处理框架来适应数据量的变化。为了满足这类需求,Amazon提供了一系列的数据流服务,其中包括应用流服务AppStream和数据流服务Kinesis。
1、应用流服务AppStream
AppStream允许开发人员将应用程序部署在AWS的基础设施上,并以流传输的方式发送到不同的终端设备上。这样,AppStream就在应用程序和设备之间形成了一个代理。
AppStream允许开发人员将应用程序部署在AWS的基础设施上,并以流传输的方式发送到不同的终端设备上。这样,AppStream就在应用程序和设备之间形成了一个代理。此外,AppStream还可以与Amazon WorkSpaces虚拟桌面进行结合,以满足企业用户的需求,甚至在此基础上对数据流进行分析,用于金融、医疗等领域。
2、数据流分析服务Kinesis
Kinesis是一种完全托管的数据流服务,用于实时地处理快速流转的数据。Kinesis可以轻松实时地处理快速流转的数据,其基本功能是数据流的输入与输出。Kinesis允许定义任意数量的数据源,并与任意数量的处理相关联。
SmugMug作为在线照片和视频共享网站,目前拥有数百万用户并存储了数十亿张照片和视频。SmugMug将少量最热门的部分照片保留在自己的服务器上,剩下的照片迁移到S3服务器中存储,照片迁移过程仅花费了一周的时间。
下图展示了采用Amazon S3服务后的SmugMug基本架构。
虽然SmugMug提供了利用API直接对存储在S3中照片进行访问的方式,超过99%的用户依然采用访问SmugMug的方式处理照片,照片存储的方式对于用户是透明的。
SmugMug已经将所有的数据从传统的数据中心中迁入S3中。SmugMug还采用了EC2进行照片处理,并采用Amazon CloudSearch来支持用户在数十亿照片和视频中搜索。SmugMug构建了自己的队列服务和控制器,它们能与AWS很好地协作,使得系统中大部分操作都能够自动完成。
Animoto网站根据用户上传的图片、视频片段和音乐,自动编辑生成专业水准的视频,并且与用户的好友分享。
AWS所提供的S3和SQS等服务对于用户而言是完全透明的,用户的所有操作通过Animoto网站转到AWS中完成。这种方式为Animoto提供了具有很高伸缩性和灵活性的基础设施。如图展示了Animoto的基本架构。
Alexa公司是一家专注于世界网站排名的公司。
Alexa使用了大量的AWS服务,包括EC2、S3、SimpleDB、SQS等来提高服务质量和降低开发管理成本。Alexa使用S3存储缩略图像,并利用SimpleDB对缩略图像进行自动索引和高效查询。