

# 将 AWS 用于 Web 托管时要考虑的关键因素
<a name="key-considerations-when-using-aws-for-web-hosting"></a>

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

## 不再需要实体网络设备
<a name="no-more-physical-network-appliances"></a>

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

## 防火墙无处不在
<a name="firewalls-everywhere"></a>

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

## 考虑多个数据中心的可用性
<a name="consider-the-availability-of-multiple-data-centers"></a>

将 [AWS 区域内的可用区](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html)视为多个数据中心。不同可用区的 EC2 实例在逻辑上和物理上是分离的，从而为跨数据中心部署应用程序提供了简单易用的模型，以帮助应用获取高可用性和可靠性。Amazon VPC 作为区域服务使您能够利用可用区，同时将所有资源保存在同一个逻辑网络中。

## 将主机当作临时、动态的存在
<a name="treat-hosts-as-ephemeral-and-dynamic"></a>

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

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

## 考虑容器和无服务器
<a name="consider-a-serverless-architecture"></a>

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

## 考虑自动部署
<a name="consider-automated-deployment"></a>
+ [https://aws.amazon.com/lightsail/](https://aws.amazon.com/lightsail/) 是一款易于使用的虚拟专用服务器 (VPS)，它为您提供构建应用程序或网站所需的一切，并提供经济高效的每月计划。Lightsail 是简化工作负载、加快部署和开始体验 AWS 的理想选择。它旨在帮助您从小规模开始，然后随着您的发展而扩展。
+ [https://aws.amazon.com/elasticbeanstalk/](https://aws.amazon.com/elasticbeanstalk/) 是一项易于使用的服务，用于在熟悉的服务器（例如 Apache、NGINX、Passenger 和 IIS）上部署和扩展使用 Java、.NET、PHP、Node.js、Python、Ruby、GO 和 Docker 开发的 Web 应用程序和服务。您只需上传代码，Elastic Beanstalk 即可自动处理部署、容量预置、负载均衡、自动扩展和应用程序运行状况监控工作。同时，您能够完全控制为应用程序提供支持的 AWS 资源，并可以随时访问底层资源。
+ [https://aws.amazon.com/apprunner/](https://aws.amazon.com/apprunner/)是一项完全托管式服务，使开发人员能够轻松、快速、大规模地部署容器化 Web 应用程序和 API，而无需事先具备基础设施方面的经验。从源代码或容器映像开始。App Runner 自动构建和部署 Web 应用程序，并通过加密实现流量的负载均衡。App Runner 还能自动扩大或缩小规模以满足您的流量需求。
+ [https://aws.amazon.com/amplify/](https://aws.amazon.com/amplify/) 是一组既可组合使用也可单独使用的工具和服务，能够帮助前端 Web 和移动开发人员构建由 AWS 提供支持的可扩展全栈式应用程序。借助 Amplify，您可以在几分钟内配置应用程序后端并连接应用程序，单击几下即可部署静态 Web 应用程序，并在 AWS 管理控制台 外轻松管理应用程序内容。