by Abhinav Bannerjee 和 Fenil Patel,2024 年 8 月 5 日,发表于 Amazon Route 53 AWS Global Accelerator 网络与内容传递 永久链接 分享

在快速变化的网络应用及 API 环境中,为所有客户提供快速、可靠和安全的访问至关重要。然而,传统应用架构经常面临全球应用使用者的延迟和可靠性挑战,这是由于全球互联网基础设施的复杂性所造成的。使用 AWS Global Accelerator 能让你通过智能地在 AWS 全球网络中路由流量,优化至应用程式的路径,最终达成更快的性能和更高的可靠性。
本篇文章将探讨使用 Global Accelerator 的优势、添加加速器的情境,以及在将应用程式与该服务整合时可以应用的性能测试策略。同时,我们还将探索与其他 AWS 服务的整合,并提供使用 AWS CloudFormation 的实用部署范例。
首先,我们将回顾 Anycast 路由与基于 DNS 的路由之间的差异,之后解释 Global Accelerator 如何简化全球流量路由,并增强应用程式的安全性。
在我们深入了解如何将 Global Accelerator 应用于您的应用程式之前,让我们先来检视 DNS 路由的运作方式,因为这是今天最常用的路由形式。企业通常在其应用架构中配置 DNS 路由,使用如 Amazon Route 53 这样的服务来引导用户流量至不同的端点。客户的流量根据地理位置的接近性、健康检查及您所配置的路由政策进行路由。
例如,假设您在不同的 AWS 区域上托管一个网站,并使用 Route 53 的 地理位置路由 进行 DNS 解析。在这种情况下,Route 53 动态将域名解析为最近健康的 EC2 实例的 IP 地址,确保您的用户根据其位置被引导至网站的最佳端点。
虽然 Global Accelerator 和 Route 53 都可以引导流量,但它们在底层机制上存在明显不同。Route 53 在 DNS 层运作,根据配置的路由政策将域名解析为 IP 地址。相较之下,Global Accelerator 使用 Anycast IP 地址将流量路由至最近的健康端点,驱动流量进入 AWS 全球网络,从而减少延迟并增强可靠性。对于许多需要实时流量优化的场景,例如视频串流平台或在线游戏服务,Global Accelerator 是比基于 DNS 的路由更优的选择。
Global Accelerator 确保每位用户能够路由到延迟最低的边缘位置,实现流畅的播放体验,最小化缓冲时间。
除了通过任何播送路由提升用户体验外,Global Accelerator 还帮助您简化 IP 地址管理。Global Accelerator 为您的加速器提供了一组静态 IP 地址,这些地址来自强大的 AWS 边缘网络。对于 IPv4,您将获得两个静态 IPv4 地址,而对于双堆栈配置,您将获得总共四个地址:两个静态 IPv4 地址和两个静态 IPv6 地址。您还可以选择将自己的 IP 地址范围BYOIP带入 Global Accelerator,并将 IPv4 地址从自己的地址池分配给您的加速器。
在 Global Accelerator 中的 IP 地址为您的客户提供了静态进入点,使您能够为他们提供一致且无缝的体验。使用静态 IP 地址时,当您为标准加速器新增弹性负载平衡ELB、EC2 实例或弹性 IP 地址资源时,您的客户可以使用这些 IP 地址来访问您的资源。
Global Accelerator 的静态 IP 地址还简化了在可用性区或 AWS 区域之间移动端点的过程,而无需更新您的 DNS 配置或更改面向客户的应用程序。这种灵活性使您能够扩展基础架构,同时确保不间断提供服务。无论您是扩展至新区域还是升级现有设置,拥有静态 IP 地址都能帮助您轻松过渡,维持可靠性并减少停机时间。
您可以选择多种方式将 Global Accelerator 整合到现有架构中。例如,可以考虑以下内容:
前端网页应用程式 在 EC2 实例上托管的网页应用前使用 Global Accelerator,以实现全球用户的快速可靠访问。API 端点 通过将 Global Accelerator 与负载平衡器整合来提高 API 端点的性能。微服务 优化您在多个 AWS 区域部署的微服务之间的流量。为了说明 Global Accelerator 如何与应用架构整合,假设您有一个网站在两个 AWS 区域的 EC2 实例后面运行,使用应用负载平衡器。以下图图 1显示了这种部署的示例架构。
图 1:用户的 DNS 请求由 Amazon Route 53 解析并通过公共互联网路由至应用负载平衡器。
要将 Global Accelerator 添加至此架构中,您可以按照下列步骤操作:
创建加速器。为 80 端口添加 TCP 监听器。创建两个端点组,每个区域一组。将应用负载平衡器作为区域端点添加,每个负载平衡器添加到加速器的端点组中。以下图图 2显示了更新后的架构。
图 2:用户请求由 Global Accelerator 边缘位置解析,并通过 AWS 全球网络路由至应用负载平衡器。
在您将 Global Accelerator 整合入架构之前和之后,我们建议您全面评估应用性能。例如,使用 Apache JMeter 或 Locust 这样的工具来评估响应时间、延迟和用户整体体验。为验证 Global Accelerator 在提升全球访问中的有效性,模拟不同的流量模式和地理分布。
例如,可以假设您使用以下 curl 命令评估基线性能:
bashcurl I http//YourALBDNSName
在此命令中,将 “YourALBDNSName” 替换为您用于路由到应用的 DNS 名称。在将 Global Accelerator 整合到您的架构后,可以再次进行性能测试。使用以下第二个 curl 命令进行测试:
bashcurl I http//YourAcceleratorDNSName
在此命令中,将 “YourAcceleratorDNSName” 替换为您加速器的 DNS 名称详情请参考 AWS Global Accelerator 开发者指南。将这些结果与基线性能测试进行比较,检查响应时间的提升、延迟的减少及整体性能的增强。透过这些测试,您可获得前后对比,量化改进效果并验证 Global Accelerator 在优化用户全球访问方面的有效性。
您可以将 Global Accelerator 无缝地整合到其他 AWS 服务中,以增强应用程式的安全性,减轻潜在威胁。
例如,您可以将 Global Accelerator 与 AWS Shield Advanced 整合,以强化安全措施并抵御潜在的分布式拒绝服务 (DDoS) 攻击。新增 Shield Advanced 能够为基础设施级别的 DDoS 威胁提供附加防御层,同时保持操作效率。这对于依赖于网络负载平衡器的应用程式尤为重要,例如游戏、媒体串流服务和物联网系统。
当您与 Shield Advanced 整合时,Global Accelerator 优化流量流向网络负载平衡器,同时通过 Shield Advanced 提供基于边缘的 DDoS 监测和缓解。将 Shield Advanced 整合进来可让网络负载平衡器有效处理合法的请求,并充分利用 Global Accelerator 提供的所有优势。
鲨鱼加速器官网借助 AWS CloudFormation,您可以更轻松地自动化、测试和部署应用程式的基础架构。在本节中,我们提供了一个 CloudFormation 模板,用于部署一个常见的与 Global Accelerator 整合的架构。该架构包括应用负载平衡器、安全组和流畅部署所需的组件。此 CloudFormation 堆栈创建的加速器会根据您指定的监听器端口、规则和其他值将进来的流量路由至目标实例。
在您部署模板之前,确保已在您的 AWS 帐户中配置所需的 IAM 权限及其他先决条件。然后,将模板复制并粘贴到 AWS CloudFormation 控制台中,根据您自己的资源和应用需求进行调整,快速部署和配置 Global Accelerator 用于样本应用程式。务必将所有占位符值替换为您 AWS 环境中具体的值,如注释所述。
yamlAWSTemplateFormatVersion 20100909
Resources MyLoadBalancer Type AWSElasticLoadBalancingV2LoadBalancer Properties Subnets subnetabc # 用您 AWS 帐户中的实际子网 ID 替换 subnetxyz # 用您 AWS 帐户中的实际子网 ID 替换 SecurityGroups !GetAtt MySecurityGroupGroupId LoadBalancerAttributes Key idletimeouttimeoutseconds Value 60
MyListener Type AWSElasticLoadBalancingV2Listener Properties DefaultActions Type fixedresponse FixedResponseConfig StatusCode 200 ContentType text/plain MessageBody OK LoadBalancerArn Ref MyLoadBalancer Port 80 Protocol HTTP
MySecurityGroup Type AWSEC2SecurityGroup Properties GroupDescription MyLoadBalancer 的安全组 VpcId vpcabc # 请添加您的 VPC ID SecurityGroupIngress CidrIp 0000/0 # 用实际的 CIDR 范围替换,以允许进入流量 IpProtocol 1 # 注意:这个安全组的权限非常宽松,允许来自任何 IP 地址的所有进入流量。 # 考虑根据具体要求缩小安全组规则的范围来限制访问。
MyTargetGroup Type AWSElasticLoadBalancingV2TargetGroup Properties VpcId vpcabc # 请添加您的 VPC ID Protocol HTTP Port 80 HealthCheckEnabled true HealthCheckIntervalSeconds 30 HealthCheckPath /health HealthCheckPort 80 HealthCheckProtocol HTTP TargetType instance Targets Id iinstanceID # 用您目标实例的 ID 替换
MyAccelerator Type AWSGlobalAcceleratorAccelerator Properties Name Myaccelerator # 用唯一名称替换您的加速器名称 IpAddressType IPV4 Enabled true
MyAcceleratorListener Type AWSGlobalAcceleratorListener Properties AcceleratorArn Ref MyAccelerator PortRanges FromPort 80 ToPort 80 Protocol TCP
当您部署此堆栈时,CloudFormation 将在指定的 AWS 区域中启动应用负载平衡器、目标组、安全组、监听器和加速器。为完成解决方案,通过控制台或使用 AWS 命令行界面 (AWS CLI) 将应用负载平衡器作为端点添加至加速器。如需多区域支持,请在另一区域中启动此模板或将其修改为使用 CloudFormation 堆栈集。
在本篇文章中,我们讨论了 AWS Global Accelerator 如何为全球流量路由、提升性能和增强应用程式安全性提供完整解决方案。通过使用Anycast路由和与其他AWS服务的简便整合,Global Accelerator确保您的应用程式获得可靠的用户体验,并减少延迟。无论您是管理前端网页应用程式、API 端点还是微服务,Global Accelerator 都能让您在当今数字化环境中获得所需的灵活性和可扩展性。今天就开始使用 Global Accelerator,展现您的全球应用程式的全部潜力,提升客户体验。
Abhinav 是一名来自德克萨斯州的高级解决方案架构师。他与各行各业的客户紧密合作,帮助他们利用亚马逊网络服务AWS扩大业务。他还专注于帮
电话:13594780397
联系人:周经理
邮箱:proportionate@qq.com
网址:https://www.qiyeseoer.com
地址:福安市艳摘谷187号