本节我们将创建一个Global Accelerator,来加速ALB的应用:
为了节省时间,使用CloudFormation创建ALB及后端应用(后端接了个Lambda)。部署CloudFormation:
aws cloudformation create-stack --stack-name ga-workshop --template-url https://pingfan.s3.amazonaws.com/files/global-accelerator-workshop.yaml --capa
bilities CAPABILITY_IAM
Stack创建时间大概需要三分钟,等待它创建完成:
从Output中获取ALB的URL:
$ aws cloudformation describe-stacks --stack-name ga-workshop --query "Stacks[0].Outputs[?OutputKey=='URL'].OutputValue" --output text
http://ga-wor-Appli-QHyY4IINGp2C-1384026400.us-west-2.elb.amazonaws.com
访问ALB URL:
上面过程部署了一个Web 应用程序,它包含一个应用程序负载均衡器及后面的 Lambda 函数
接来下将创建一个AWS Global Accelerator
,并将创建的应用程序负载均衡器 (ALB) 作为其端点添加进去。
进入 Global Accelerator 控制台 ,创建新的GA:
为GA提供一个名称,选择Standard
类型,进入下一步:
为了让AWS Global Accelerator
知道在哪里监听流量,我们需要为 TCP 端口 80 添加一个侦Listener:
Global Accelerator 支持 TCP 和 UDP 协议。
在创建GA时定义Listener,以后也可随时添加更多Listener
如果配置为无客户端亲和力,Global Accelerator
将使用五元组属性 (源 IP、源端口、目标 IP、目标端口和协议) 来选择端点。但是,如果客户端使用不同的端口,Global Accelerator
就无法确保始终将来自该客户端的连接路由到同一endpoint。当配置为源 IP的客户端亲和力时,Global Accelerator
将使用二元组属性 (源 IP和目的 IP) 来选择哈希值并将用户路由到同一endpoint。
为GA添加endpoint groups
。在上一步中,我们创建了一个Listener,告诉 AWS Global Accelerator 应该在哪里监听流量。现在我们需要告诉它将流量发送到哪里。这是通过endpoint groups
实现的, 它包含一个或多个已注册的endpoint,用于发送流量。
endpoint group
的数量取决于应用程序部署的区域数量,目前只部署在一个区域。
一个endpoint group
及其中所有endpoint
必须在同一个 AWS 区域内。AWS Global Accelerator
会自动检查与静态 IP 地址关联的端点的运行状况,然后只将用户流量定向到运行状况良好的端点。Global Accelerator 包括默认的自动运行的健康检查,但可以配置检查的时间和其他选项。
添加一个Endpoint group
:
AWS Global Accelerator
依赖于流量拨号(Traffic Dial)
来控制定向到Endpoint group
的流量百分比
进入下一步,然后为Endpoint group
添加endpoint。AWS Global Accelerator
中的endpoint可以是网络负载均衡器、应用程序负载均衡器、EC2 实例或弹性 IP 地址,选择之前创建的ALB:
Endpoint Weight用于确定到Endpoint的流量比例
最后点击创建。这通常需要大约 5 分钟, 创建完成:
从 AWS Global Accelerator 控制台获取加速器的 URL/DNS,通过 cURL 和浏览器访问该 DNS。