将 AWS 用于 Web 托管时要考虑的关键因素 - 托管于 AWS 云中的 Web 应用程序

将 AWS 用于 Web 托管时要考虑的关键因素

AWS 云和传统 Web 应用程序托管模型相比有一些重要区别。以上部分突出强调了将 Web 应用程序部署到云中时需要考虑的众多因素。本部分将指出将应用程序迁移到云中时,需要对架构执行的一些重要调整。

不再需要实体网络设备

您不能在 AWS 中部署物理网络设备。例如,AWS 应用程序的防火墙、路由器和负载均衡器不再驻留在物理设备上,而是必须以软件解决方案取代。无论是负载均衡还是建立 VPN 连接,都有各种各样的企业级软件解决方案。这不是限制可以在 AWS 云上运行的内容,而是如果您现在就使用这些设备,应用程序的架构会发生改变。

防火墙无处不在

以前在传统托管模型中,您拥有一个简单的非管制区域 (DMZ),然后开启主机之间的通信,现在,AWS 强制实施了更加安全的模式,在这种模式中每个主机均被锁定。在计划 AWS 部署时,其中一个步骤是分析主机之间的流量。该分析将会确定究竟需要打开哪些端口。您可以为架构中每种类型的主机创建安全组。您还可以创建各种简单的分层安全模型,以便在架构中的主机间提供最低访问权。在 Amazon VPC 中使用网络访问控制列表有助于在子网级别锁定您的网络。

考虑多个数据中心的可用性

AWS 区域内的可用区视为多个数据中心。不同可用区的 EC2 实例在逻辑上和物理上是分离的,从而为跨数据中心部署应用程序提供了简单易用的模型,以帮助应用获取高可用性和可靠性。Amazon VPC 作为区域服务使您能够利用可用区,同时将所有资源保存在同一个逻辑网络中。

将主机当作临时、动态的存在

在构建 AWS 应用程序架构时,最重要的一个转变就是 EC2 主机应该是临时的、动态的。任何面向 AWS 云构建的应用程序都不应假定主机始终可用,而应在设计时充分考虑到,如果 EC2 实例发生故障,EC2 即时存储中的任何数据都将丢失。

启动新主机时,不应假设主机可用区内的 IP 地址或位置。所以配置模型必须灵活,引导启动主机的方法也必须充分考虑云的动态特性。这些技术对于构建和运行高度可扩展、容错能力强的应用程序至关重要。

考虑容器和无服务器

本白皮书主要关注更传统的 Web 架构。但是,请考虑通过迁移到容器无服务器技术来实现 Web 应用程序的现代化,利用 AWS FargateAWS Lambda 等服务使您能够抽象使用虚拟机来执行计算任务。由于无服务器计算以及容量预置和修补等基础设施管理任务可由 AWS 处理,您就可以构建更敏捷的应用程序,从而更快地进行创新和响应变化。

考虑自动部署

  • 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 外轻松管理应用程序内容。