基于AWS的媒体共享系统架构
媒体共享是互联网上最热门的市场之一。客户有强烈的欲望将照片和视频放在社交网站上,并在自定义的在线相册分享他们的媒体内容。媒体共享的日益普及意味着网站所有者面临着不断增长的存储和带宽需求,加快市场商用的压力,以及提供比竞争对手更快性能的问题。
由于现在大多数企业的人手,预算和数据中心空间都是有限的,AWS提供了一套独特的实现和扩展方式,使企业不必投资于硬件,人员,或额外的数据中心空间,使用AWS是一个非常有效的途径。根据不同的项目,不同的服务可以独立使用。下图显示了具有高可用性的,坚固耐用,并具有成本效益的媒体共享和处理平台。
1. 共享内容的第一步是在线上传媒体文件。在这种配置中,Elastic LoadBalancer 分发呼入请求到上传服务器组——1组动态的Amazon EC2 实例. Amazon CloudWatch 监测这些服务器,而 AutoScaling 管理他们,根据负载自动对EC2的容量进行增减。在这个例子中,使用了独立的节点来接收上传的媒体内容以便削减web网站的负载。
2. 上传的原始文件存储在 Amazon Simple StorageService (Amazon S3)中.
3. 为了使上传的文件被处理,上传服务器推送消息到AmazonSimple Queue Service (Amazon SQS) 队列中。这个队列作为文件接收和文件处理组件间的通信管道。
4. 处理管道是一组专用的EC2实例用来执行对上传媒体文件的任何后期处理任务(视频转码,图像大小调整等)。为了自动调整所需容量,Auto Scaling 管理这组服务器。同样,可以使用 SpotInstances 动态扩展组的容量来减少文件处理的成本。
5. 一旦处理完成, Amazon S3存储这些输出文件。由于原始文件也存储在S3中,处理后的文件应使用减少冗余的存储。
6. 媒体相关的数据可被放在mazon RDS或者 AmazonSimpleDB
7. 第三组 EC2 实例专门用来托管媒体共享服务的web 前端。
8. 在Amazon S3 中的媒体文件通过 Amazon CloudFront 分发给终端用户。 Amazon CloudFront 是一种CDN,通过全球范围的服务节点提供。