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