跨区域加速方案
我在工作中遇到了一个场景:公司在AWS美国部署了服务器并运转良好,现在公司的客户在东南亚越来越多,结合成本和性能,我们是否可以借助AWS的其他服务来继续使用AWS美国的服务器在可接受的时延范围内服务东南亚客户,取得性能,成本和运营效率的平衡?
下面是典型的3种解决方案
-
多区域部署
- 性能最好
- 多一个区域的部署成本
- 价格可能最高
- 直接用最近的region服务当地客户
-
- 性能不错
- 价格相对便宜,可能最低
- 利用AWS跨洋光纤进行数据传输
- 静态资源可以使用CDN缓存
- 动态API:Cloudfront与原始服务器保持永久连接 能减少HTTPS TLS握手开销,这个特点在跨洋HTTPS场景下能提升很大的理论性能
- GET请求可以看情况使用缓存并AWS跨洋光纤
- POST请求可以利用AWS跨洋光纤
-
- 性能不错
- 价格相对便宜
- 利用AWS跨洋光纤进行数据传输
- 任播静态IP地址从最靠近终端客户端的边缘站点中接受流量
- 能优化通向您在 AWS 区域中运行的应用程序的路径
- 根据终端客户端的地理位置选择最佳 AWS 区域
- 减少首字节延迟并将性能提升高达60%
- 更好的跨洋网络带宽和稳定性
Global Accelerator和CloudFront的加速原理基本一样,但是有如下的区别:
- AWS Global Accelerator 和 Amazon CloudFront 是相互独立的服务,都使用 AWS 全球网络及其遍布世界各地的边缘站点
- CloudFront 能提高可缓存内容(如图像和视频)和动态内容(如 API 加速和动态站点交付)的性能。Global Accelerator 可通过在一个或多个 AWS 区域中运行的应用程序的边缘为数据包提供代理,提高 TCP 或 UDP 上的各种应用程序的性能
- GA支持L4/L7,cloudfront只支持L7;Global Accelerator 非常适合非 HTTP 使用案例
测试结果
耗时对比表
方案 | 新加坡 | 马来西亚 | 泰国 | 印度尼西亚 |
---|---|---|---|---|
ALB | 0.640 | 0.703 | 0.594 | 0.565 |
Cloudfront | 0.567 | 0.558 | 0.583 | 0.532 |
Global Accelerator | 0.448 | 0.476 | 0.562 | 0.503 |