AWS云平台的服务概览(中):应用服务


应用服务主要是帮助开发人员简化在AWS云平台上编写应用程序,因此这些服务的主要使用方式是通过这些服务提供的基于Web服务的API来使用。当然,AWS管理控制台也提供了一些管理和使用这些服务的界面。下面我们逐一描述一下AWS提供的主要应用服务。

 

1.      搜索服务:Amazon CloudSearch

Amazon CloudSearch是AWS管理的搜索服务,它可以帮助用户为自己的网站或应用快速构建出一个搜索解决方案。CloudSearch可以让用户搜索大量的数据,包括网页、文档、论坛帖等。通过CloudSearch,用户不必成为一个搜索专家也不用担心硬件资源的配置和管理等问题就可以通过AWS的管理控制台快速构建搜索服务。CloudSearch会根据用户数据量的大小和搜索请求量的多少自动调整提供搜索服务的实例大小和数量。CloudSearch管理构建和部署索引所需要的服务器资源,用户只需要向搜索域上载自己的数据然后就可以开始递交搜索服务的请求了。

 

2.      消息队列服务:Amazon SQS(Simple Queue Service)

消息队列服务是一种经常用来在架构层面进行松耦合设计的一种服务,在传统的企业应用环境中开发人员经常用到像IBM WebSphere MQ,MSMQ等消息队列产品。Amazon SQS提供了一种管理的消息队列服务,也就是说用户不用自己来管理消息队列底层的硬件资源以及软件的安装和配置,而直接可以通过SQS的API来使用服务。Amazon SQS有几个重要特点,首先SQS是个高可用的服务,当用户把消息放入队列后可以被可靠的(多份拷贝)保存一段时间直到消息被处理;其次SQS具有非常强的扩展能力,对用户需要处理的消息在数量上没有限制;最后SQS被设计为“至少一次”的消息发送处理机制,因此需要用户在应用层面来保障消息“只有一次”的处理以及消息的处理顺序如FIFO。

 

 

3.      内容分发服务:Amazon CloudFront

Amazon CloudFront是一个基于云计算服务模式的内容分发网络(CDN)服务,AWS通过把内容暂存在全球的几十个边缘站点来就近向最终用户提供内容分发服务。CloudFront帮助用户把他们的内容进行全球范围内的快速分发,从而降低数据传输延时并提高数据传输性能。CloudFront支持所有可以通过HTTP和HTTPS访问的内容,包括动态HTML、PHP网页,网站中的静态内容如图片、音视频、下载的文件等。另外,CloudFront还支持基于RTMP的流式内容和基于HTTP的流媒体(服务端支持Adobe Media Server和Windows Media Services)。CloudFront支持多种HTTP方法,包括GET、HEAD、POST、PUT、DELETE、OPTIONS等,从而可以通过一个域名来管理整个网站内容的分发。由于边缘站点与AWS区域之间网络路由的优化和一些TCP/IP传输的优化,因此通过CloudFront也可以提升上传内容的性能。

 

 

4.      通知服务:Amazon SNS(Simple Notification Service)

Amazon SNS是一种消息通知/推送服务,用户的应用可以通过SNS快速、低成本的实现向各种移动设备如iPhone、iPad、安卓、Kindle和其他互联网连接设备推送消息。用户还可以通过主题/订阅的方式,用短信(SMS)、邮件、HTTP/S请求、SQS队列等方式来进行消息分发。SNS可以帮助用户实现一次发送请求就可以把消息发布给大量的接收设备和应用。SNS是一种高性能、高可用的消息推送服务,为了避免消息的丢失,所有通过SNS发布的消息都会在同时在多个可用区内保存多个拷贝。SNS也是一种简单易用和低成本的服务,比如发送100万条移动推送消息的费用是0.5美元。

 

 

5.      Hadoop服务:Elastic MapReduce

Elastic MapReduce(EMR)是一种管理的Hadoop服务,可以认为是Hadoopas a Service。在大数据应用中,构建和维护Hadoop群集服务对许多用户来说都是一种繁琐的负担。通过EMR,用户可以通过按需使用的方式随时通过AWS管理控制台或命令行几分钟就构建一个Hadoop群集来做大数据分析,然后当任务结束后就可以关闭群集从而停止付费。对那些需要经常进行不定期进行各种大数据分析任务的用户而言,无论是处理日志分析、Web索引还是机器学习等各种任务,EMR可以让他们把主要精力放在大数据业务设计和分析模型的构建上,而把底层Hadoop群集相关的基础设施构建和维护事情交给EMR处理。另外,EMR不但可以结合Hive、Pig、Mahout、HBase等工具做数据分析,还可以集成S3、Redshift、DynamoDB等海量数据存储服务。

 

 

6.      实时数据分析服务:Amazon Kinesis

Amazon Kinesis是一个大规模实时数据流分析服务,它每小时可以从成千上万的数据源中实时收集和处理几百个TB数据。这些实时的数据源包括像网站的点击流、社交网站信息、运营日志、设备测量信息等各种动态产生数据的场景。Kinesis为用户提供了一个进行实时数据采集(Producer)、存储和处理(Consumer)的基础架构和编程框架。Kinesis的API简单易用,比如应用通过HTTP PUT方法就可以加载数据。通过Kinesis,用户不用关心底层数据的分配和存储架构,用户配置完Kinesis服务后Kinesis会自动帮助用户处理数据流的负载均衡、扩展性和数据的高可用存储等需求。AWS提供Amazon Kinesis Client Library来简化Kinesis服务的使用。数据在Kinesis只会保存24小时,如果需要进一步处理或保存数据,Kinesis可以方便的和S3、DynamoDB、Redshift做集成。

 

 

7.      数据管道服务:AWS Data Pipeline

AWS Data Pipeline可以帮助用户在不同的AWS服务之间建立定时移动、集成和处理数据的管道服务。Data Pipeline可以用来定义一些数据驱动的工作流任务,尤其适合需要定期执行和处理的任务。Data Pipeline的定义包括指定数据来源的数据源,处理数据的业务逻辑流程和执行操作的时间安排。根据定义和设置,Data Pipeline会在一个高可用、高容错的环境中执行并监控用户的数据处理工作流,同时记录执行情况并进行异常处理。为简化用户使用,AWS管理控制台提供了一个图形化的设计界面,用户通过鼠标拖拽方式就可以定义Data Pipeline。另外,AWS还提供了常见的数据管道服务的模板(比如从RDS拷贝数据到S3、从企业MySQL拷贝到RDS等),进一步简化用户的Data Pipeline设计。

 

8.      邮件发送服务:Amazon SES(Simple Email Service)

Amazon SES是一个可靠的、低成本的和简单易用的电子邮件发送服务。SES可以帮助用户解决像市场活动中大批量邮件发送的需求。通过使用SES服务,用户可以快速发送大量邮件而不用自己管理邮件服务器,不用配置网络和IP地址拒绝设置等。SES提供了SMTP接口和SES API两种方式发送邮件。为帮助用户实现一个相对较高的邮件发送成功率,SES提供了一个内置的邮件发送反馈机制。同时,SES还提供一个监测邮件发送情况的仪表盘,显示成功发送邮件的数量、退回和拒绝的百分比或数量等。

 

9.      工作流服务:Amazon SWF(Simple Workflow)

Amazon SWF是一个帮助用户应用实现任务协同和状态管理的工作流服务。通过使用SWF,用户可以不用关注复杂的状态机的实现,而把主要精力放在工作流业务逻辑的实现上面。用户可以通过不同的编程语言调用SWF API,来构建基于SWF的工作流服务。这些代码不仅可以运行在EC2实例上,也可以运行在任何联通互联网的服务器上。SWF提供一个分布式的工作流服务,它就像是一个协调中心来连接不同的工作流节点,包括用于条件判断的Decider和用于任务处理的Worker。SWF支持自动任务和人工任务,同时记录工作流中任务的执行情况。通过SWF用户可以构建一个高度灵活和松耦合的工作流应用。

 

 

10.   媒体转码服务:Amazon Elastic Transcoder

Amazon Elastic Transcoder是一个基于云的媒体转码服务。Elastic Transcoder可以帮助用户把媒体文件从一个源格式转化成多种目标格式,从而满足不同设备的格式和清晰度要求。Elastic Transcoder可以转码整个文件,也可以只转码源媒体文件中指定的片段。Elastic Transcoder会自动管理媒体文件转码的各个方面,用户不需要配置和管理软件,也不用考虑多个文件转码时的扩展性等问题。用户只需要创建一个转码任务,然后指定媒体文件源、目标文件位置和文件格式就可以开始转码服务。用户可以通过服务的API、SDK或AWS管理控制台使用Elastic Transcoder,然后以分钟为单位根据转码媒体的时间长度来计费。

 

 

11.   应用流服务:Amazon AppStream

Amazon AppStream是一种低延时、高分辨率的应用流服务,它可以让用户把部署在AWS云平台上的应用程序通过互联网以流的方式在客户端的设备上进行展现和交互。这些客户端设备可以是PC、平板和智能手机等。由于应用程序是运行在AWS云平台上面的,所以应用程序可以访问AWS云平台上包括计算(包括GPU)、存储和数据库等各种资源,从而彻底解决应用程序的资源需求问题。你可以选择把整个应用或部分应用通过流的方式交互到终端设备上去。对于那些原先只能运行在终端设备上但对计算资源要求比较高的3D模拟、游戏等应用,AppStream提供了一种非常合适的解决方案。

 

 

 

相关内容

    暂无相关文章