Chr*_*Lam 6 scaling network-speed amazon-web-services
我们的基础设施依赖于 us-east-1 区域的 AWS。(EC2、CloudFront、RDS、ElastiCache)
我们现在有越来越多来自亚太地区的用户。用户开始抱怨我们网站的网络速度。(请注意,我们已经在使用 CloudFront 来提供静态资产)
研究后的一些线索:
我的问题:
任何帮助将不胜感激,谢谢:D
世界是一个相当大的地方,虽然网络带宽正在稳步增加世界一个地方和地球另一端之间的网络延迟,但不会很快消失。
在多个级别上进行优化和调整可以改善用户体验,但最终您将达到这样一个级别,即通过让您的数据在物理上更接近最终用户来减少延迟是提高性能的唯一可行方法。
Web 性能工程师 Ilya Grigorik 的《高性能浏览器网络》是一本包含许多见解和上图来源的好书。
什么是最经济/最优的取决于您的特定场景、您的代码库并需要仔细测试。没有神奇的基础设施唯一的解决方案。
大多数需要大规模扩展的应用程序都需要通过一次或多次重新设计来解决这个问题。对 X 数量用户似乎有效的设计选择、技术和假设将被证明是错误的 100 倍或 1000 倍。
在High Scalability 博客中可以找到有趣的经验教训
重新设计您的应用程序代码以便更好地缓存动态内容是一种方法,例如查看 varnish 模型,该模型允许您的 Web 应用程序按需使缓存的动态内容无效,当大量动态内容实际上不需要时,这种方法非常有效为每个请求完全重新生成。这应该可以让您更好地使用 CDN,并意味着您可以留在一个可用区域内。
重新设计您的应用程序,使其能够在多个可用区上工作,这也将改善灾难恢复,不仅可以提高国际用户的性能。
您必须在用户体验和美元之间进行权衡。首先,我想知道按百分比计算有多少用户来自亚太地区。如果低于 10%,您最好的做法是等待,看看会发生什么。
您也没有说明您支持哪种类型的应用程序以及它对延迟的敏感程度。如果它是一个实时视频聊天应用程序,你会做出一个决定,如果它是一个最终一致的社交媒体应用程序,你会做出另一个决定。
综上所述,您已经找到了正确的选项集。
我最喜欢你的选项 2。我会将尽可能多的代理/网络服务尽可能靠近大多数用户。尽管某些流量始终必须返回您的 us-east-1 位置,但在区域内终止第一个连接将带来更好的用户体验。想想 SSL 往返。
我也会看看SPDY。
我还会考虑从 us-east-1 移动到 us-west-2 以适应您在美国的存在。
VPN 隧道是一个好主意,设置起来并不难。
我会使用 OpenVPN设置冗余隧道。
| 归档时间: |
|
| 查看次数: |
1074 次 |
| 最近记录: |