- Building Serverless Web Applications
- Diego Zanon
- 290字
- 2021-07-15 17:31:30
Amazon CloudFront
CloudFront is a Content Delivery Network (CDN). It is a special service with the objective of improving your website speed and availability. It achieves this by reducing the distance between users and files using Amazon's infrastructure around the world, which contains more than 60 edge locations, where each one of them can be used to host copies of your files.
A signal traveling at light speed from Sydney (Australia) to New York (USA) takes 53 milliseconds. A ping message needs a roundtrip, covering twice the distance and taking double the time. Also, there are other factors that increase this time: light travels 33% slower on fiber optics (glass), there is no straight line connecting both cities, and equipment like repeaters and switches will slow down transfer speeds. The result is a measured latency between 200 milliseconds and 300 milliseconds. By comparison, providing the content in the same city may reduce the latency to 15 milliseconds.
This difference is usually not significant for most applications. In a serverless website, the cold start delay has a bigger impact. If your use case is very sensitive to high latencies, you should avoid serverless or you can use CloudFront to minimize the impact, at least in the frontend.
To reduce costs, CloudFront won't replicate your content automatically throughout the world. It will replicate only where a demand for it exists. For example, when a request is made from a British city, the DNS will route the request to the nearest edge location and if it does not have yet a local copy of the file, it will be copied temporarily (cached). When another user in a nearby city requests the same file, it will benefit from a lower latency and fast response.
- Apache ZooKeeper Essentials
- 程序設計與實踐(VB.NET)
- Arduino開發實戰指南:LabVIEW卷
- Three.js開發指南:基于WebGL和HTML5在網頁上渲染3D圖形和動畫(原書第3版)
- 基于差分進化的優化方法及應用
- HTML5游戲開發案例教程
- PHP 編程從入門到實踐
- Android Native Development Kit Cookbook
- VMware虛擬化技術
- Learning Probabilistic Graphical Models in R
- Python算法詳解
- Creating Mobile Apps with jQuery Mobile(Second Edition)
- SSM開發實戰教程(Spring+Spring MVC+MyBatis)
- Mastering Git
- 新一代SDN:VMware NSX 網絡原理與實踐