对 CloudFront 进行负载测试
传统的负载测试方法不能很好地与 CloudFront 一起使用,因为 CloudFront 使用 DNS 平衡跨越地理上分散的边缘站点的负载和每个边缘站点内的负载。当客户端从 CloudFront 请求内容时,客户端收到包含一组 IP 地址的 DNS 响应。如果您采用的测试方法是只向 DNS 返回的其中一个 IP 地址发送请求,那么您测试的仅仅是一个 CloudFront 边缘站点中的一小部分资源,这并不能准确体现实际的流量规律。根据所请求的数据量,以这种方式进行测试可能会造成这一小部分 CloudFront 服务器超载且性能下降。
CloudFront 的设计旨在扩展在多个地理区域具有不同客户端 IP 地址和不同 DNS 分解器的查看器。要执行准确评估 CloudFront 性能的负载测试,建议您执行以下所有操作:
-
从多个地理区域发送客户端请求。
-
配置您的测试,让每个客户端发出独立的 DNS 请求。然后,每个客户端从 DNS 接收一组不同的 IP 地址。
-
对于每个发出请求的客户端,将客户端请求分布在 DNS 返回的一组 IP 地址上。这样可以确保将负载分布在 CloudFront 边缘站点中的多个服务器上。
注意
-
不允许对包含 Lambda@Edge 查看器请求或查看器响应触发器的缓存行为进行负载测试。
-
不允许对已启用 Origin Shield 的源进行负载测试。