在AWS官方文档中,Web应用程序托管架构图如下:
这是一个常见的Web应用程序部署架构,在这个分层结构中,采用了多重AWS服务来保证Web应用程序的性能、稳定性、容错、可扩展等能力:
1. 用户首先会通过Amazon Route 53服务查询DNS;
2. Web应用程序的静态、动态以及流媒体内容通过Amazon CloudFront分发到不同地域节点,用户访问的时候直接从距离最近的节点获取这些内容;
3. Web应用程序用到的资源和静态内容全部存储在S3上;
4. 在Web服务器和应用程序服务器的前端,均使用Amazon ELB服务进行HTTP负载均衡,将用户请求均衡分发到不同的EC2虚拟机节点,并且可以在同一个Region下跨不同的可用分区(Availability Zone)进行分发,在保证性能的基础上增加了容错和可靠性;
5. 所有的Web服务器都部署在EC2虚拟机上,并且大多数情况下都需要定制一些虚拟机镜像(AMI)来满足不同的需求,后续部署新的Web服务器的时候既可以直接使用这个AMI创建虚拟机;
6. 所有的Web服务器和应用程序服务器都部署在一个自动伸缩组(Auto Scaling Group)下,AutoScaling将会根据配置的策略自动添加或者减少虚拟机。以便在用户访问量较大的时候提高性能,以及在访问量很小的时候减少虚拟机以降低成本;
7. 在最底层,采用Amazon RDS(Relational Database Service)来保存应用程序的数据。