AWS Web 托管架构的关键组件
以下各节将概述 AWS Web 托管架构的一些关键组件以及它们与传统 Web 托管组件的区别。
网络管理
在 AWS 云中,能够将您的网络与其他客户的网络分割开来,从而实现更加安全、更加可扩展的架构。安全组可提供主机级安全性(请参阅主机安全部分),而 Amazon Virtual Private Cloud
Amazon VPC 是一项服务,可让您完全控制在 AWS 中设置的网络的详细信息。这种控制的示例包括为 Web 服务器创建面向公众的子网,以及为数据库创建没有 Internet 访问权限的私有子网。此外,借助 Amazon VPC,您还可以使用硬件虚拟专用网络 (VPN) 创建混合架构,并将 AWS 云用作您自己的数据中心的扩展。
除了为您的网络提供传统的 IPv4
内容分发
如果您的 Web 流量是地理上分散的,那么在全球复制您的整个基础设施并不总是可行,当然也不具有成本效益。借助 内容分发网络
您可以使用 CloudFront,借助全球边缘站点网络交付您的网站,包括动态、静态和流媒体内容。CloudFront 会自动将您的内容请求路由到最近的边缘站点,从而以尽可能最佳的性能交付内容。CloudFront 经过优化,可与其他 AWS 服务配合使用,例如 Amazon S3
与其他 AWS 服务相同,使用 CloudFront 无须签订合同或购买月度额,您只需依照使用该服务交付的实际内容流量多少支付费用。
此外,Web 应用程序基础设施中的任何现有边缘缓存解决方案都应在 AWS 云中运行良好。
管理公有 DNS
将 Web 应用程序迁移到 AWS 云需要进行一些域名系统
主机安全
除了在边缘进行入站网络流量筛选外,AWS 还建议 Web 应用程序在主机级别应用网络流量筛选。Amazon EC2
您可以为每个 EC2 实例分配一个或多个安全组。每个安全组均允许适当的流量进入每个实例。可以配置安全组,以便只有特定的子网、IP 地址和资源才能访问 EC2 实例。或者,它们可以引用其他安全组来限制对特定组中 EC2 实例的访问。
在图 3 中的 AWS Web 托管架构中,Web 服务器集群的安全组可能只允许从 Web 层负载均衡器进行访问,并且仅允许通过端口 80 和 443(HTTP 和 HTTPS)上的 TCP 进行访问。另一方面,应用程序服务器安全组可能只允许从应用程序层负载均衡器进行访问。在此模型中,您的支持工程师还需要访问 EC2 实例,这一点可以通过 AWS Systems Manager Session Manager 来实现。有关安全性的更深入讨论,请参阅 AWS 云安全性
跨集群的负载均衡
硬件负载均衡器是传统 Web 应用程序架构中常见的网络设备。AWS 通过 Elastic Load Balancing
查找其他主机和服务
在传统的 Web 托管架构中,大多数主机均具有静态 IP 地址。在 AWS 云中,您的大多数主机均具有动态 IP 地址。尽管每个 EC2 实例都拥有公有和私有 DNS 条目并可通过 Internet 进行寻址,但是 DNS 条目和 IP 地址是在实例启动时动态分配的。它们不能手动分配。静态 IP 地址(在 AWS 术语中指弹性 IP 地址) 可在实例启动后分配给运行中的实例。所以对于需要一致的终端节点的服务和实例(例如主数据库、中央文件服务器和 EC2 托管的负载均衡器等),都应该分配弹性 IP 地址。
在 Web 应用程序内进行缓存
内存中的应用程序缓存可以通过缓存常用信息来降低服务负载并提高数据库层的性能和扩展性。Amazon ElastiCache