CloudFront+ALB+EC2+S3构建动静分离站点
一、背景与优势
1. 背景
由于用户站点的动态跟静态资源都是保存在Web服务器中,从而导致用户访问站点时,图片、视频、文档等静态资源访问缓慢。并且由于动静态资源都在一个Web服务器,所有的访问都走服务器的出入口,会造成网络拥塞堵塞的情况,就需要用户提升带宽,花销会加大。
因此可以使用CloudFront+ALB+EC2+S3架构,实现站点的动态资源和静态资源的分离。可以保证用户访问时快速加载静态资源,减少用户在带宽上的花销。并且ALB还能为用户的站定提供7层负载均衡,为站点提供高可用性。
2. 优势
2.1 CloudFront
Amazon CloudFront 是一项加快将静态和动态 Web 内容(例如 .html、.css、.js 和图像文件)分发给用户的速度的 Web 服务。CloudFront 通过 AWS 主干网络将每个用户请求传送到能以最佳方式提供内容的边缘站点,以此来加速分发内容。
如果请求的内容并不是首次请求,那么内容已经缓存在边缘站点上,用户再次请求时,CloudFront会从延迟最短的边缘站点提供给用户,无需访问资源的源。如果请求内容是首次请求,CloudFront将从已定义的源(例如,已确定为内容最终版本的来源的 Amazon S3 存储桶、MediaPackage 通道或 HTTP 服务器,如 Web 服务器)检索内容。
CloudFront 网络有 220+ 个节点 (PoP),使用 AWS 网络可大大降低用户的请求必须经由的网络数量,从而提高性能和高可用性。用户将会体验到延迟 (加载文件的第一个字节所花费的时间) 更短、数据传输速率更高。
2.2 ALB
应用程序负载均衡器(ALB)在多个可用区中的多个目标 (例如 EC2 实例) 间分配应用程序的传入流量,提高应用程序的可用性。并且通过负载,减少单台服务器的进出口流量。当应用程序出现大量请求时,能够有效的均衡每个服务器的带宽,为每个用户提供更好的访问体验。
2.3 EC2
Amazon Elastic Compute Cloud (Amazon EC2) 是一种 Web 服务,能在云中提供安全且可调整大小的计算能力,让开发人员能够更轻松地进行 Web 规模的云计算。Amazon EC2 的 Web 服务接口非常简单,可以最小的阻力轻松获取和配置容量。使用EC2还可以减少购买实体机的费用和机房的维护费用。
2.4 S3
当从 Amazon S3 上传和检索存储时,您的应用程序可以轻松地实现每秒数千个事务的请求性能。Amazon S3 会自动扩展至高请求速率。例如,您的应用程序可以在存储桶中实现至少每秒每个