将 AWS 用于 Web 托管时要考虑的关键因素
AWS 云和传统 Web 应用程序托管模型相比有一些重要区别。以上部分突出强调了将 Web 应用程序部署到云中时需要考虑的众多因素。本部分将指出将应用程序迁移到云中时,需要对架构执行的一些重要调整。
不再需要实体网络设备
您不能在 AWS 中部署物理网络设备。例如,AWS 应用程序的防火墙、路由器和负载均衡器不再驻留在物理设备上,而是必须以软件解决方案取代。无论是负载均衡还是建立 VPN 连接,都有各种各样的企业级软件解决方案。这不是限制可以在 AWS 云上运行的内容,而是如果您现在就使用这些设备,应用程序的架构会发生改变。
防火墙无处不在
以前在传统托管模型中,您拥有一个简单的非管制区域
考虑多个数据中心的可用性
将 AWS 区域内的可用区视为多个数据中心。不同可用区的 EC2 实例在逻辑上和物理上是分离的,从而为跨数据中心部署应用程序提供了简单易用的模型,以帮助应用获取高可用性和可靠性。Amazon VPC 作为区域服务使您能够利用可用区,同时将所有资源保存在同一个逻辑网络中。
将主机当作临时、动态的存在
在构建 AWS 应用程序架构时,最重要的一个转变就是 EC2 主机应该是临时的、动态的。任何面向 AWS 云构建的应用程序都不应假定主机始终可用,而应在设计时充分考虑到,如果 EC2 实例发生故障,EC2 即时存储中的任何数据都将丢失。
启动新主机时,不应假设主机可用区内的 IP 地址或位置。所以配置模型必须灵活,引导启动主机的方法也必须充分考虑云的动态特性。这些技术对于构建和运行高度可扩展、容错能力强的应用程序至关重要。
考虑容器和无服务器
本白皮书主要关注更传统的 Web 架构。但是,请考虑通过迁移到容器
考虑自动部署
-
Amazon Lightsail
是一款易于使用的虚拟专用服务器 (VPS),它为您提供构建应用程序或网站所需的一切,并提供经济高效的每月计划。Lightsail 是简化工作负载、加快部署和开始体验 AWS 的理想选择。它旨在帮助您从小规模开始,然后随着您的发展而扩展。 -
AWS Elastic Beanstalk
是一项易于使用的服务,用于在熟悉的服务器(例如 Apache、NGINX、Passenger 和 IIS)上部署和扩展使用 Java、.NET、PHP、Node.js、Python、Ruby、GO 和 Docker 开发的 Web 应用程序和服务。您只需上传代码,Elastic Beanstalk 即可自动处理部署、容量预置、负载均衡、自动扩展和应用程序运行状况监控工作。同时,您能够完全控制为应用程序提供支持的 AWS 资源,并可以随时访问底层资源。 -
AWS App Runner
是一项完全托管式服务,使开发人员能够轻松、快速、大规模地部署容器化 Web 应用程序和 API,而无需事先具备基础设施方面的经验。从源代码或容器映像开始。App Runner 自动构建和部署 Web 应用程序,并通过加密实现流量的负载均衡。App Runner 还能自动扩大或缩小规模以满足您的流量需求。 -
AWS Amplify
是一组既可组合使用也可单独使用的工具和服务,能够帮助前端 Web 和移动开发人员构建由 AWS 提供支持的可扩展全栈式应用程序。借助 Amplify,您可以在几分钟内配置应用程序后端并连接应用程序,单击几下即可部署静态 Web 应用程序,并在 AWS Management Console 外轻松管理应用程序内容。