We live in a world where website performance is crucial. It must be fast and efficient worldwide to ensure a positive user experience. When utilizing AWS to design systems, it's essential to understand the various services available and their differences. This knowledge will enable wise decision-making based on specific needs.
Let's begin with CloudFront, one of AWS's oldest services. CloudFront is a CDN that stores content in edge locations and serves it to end users. It can serve both static and dynamic content, with dynamic content available when TTL or cache expiration is set to zero. Additionally, CloudFront can be used for API acceleration by setting the TTL or cache expiration to zero. This means that for each request made to CloudFront, it will fetch the response from the origin. Since the cache expiration is zero, it will be immediately invalidated. Therefore, for each request, it needs to request from the origin.
You can integrate CloudFront with AWS Shield and AWS WAF for DDoS protection. CloudFront is ideal for HTTP content and storing it at edge locations. Its functions can modify requests or responses at the edge, and you can use CloudFront functions to apply any necessary logic at the edge location.
Let's discuss Global Accelerator, a service offered by AWS ten years after the introduction of CloudFront. Global Accelerator primarily functions as a networking service, with its main purpose being to route traffic to multiple regions. When designing a system that requires load balancing of traffic between instances, load balancers are typically used. Depending on the specific needs of the system, either an application load balancer or network load balancer may be chosen. These load balancers are regional services that optimize performance for users in their region. However, to achieve optimal performance for cross regions, we need Global Accelerator, which can connect up to ten load balancers. Global Accelerator uses anycast IP to forward end-user requests to the nearest AWS region, thus improving performance.
Earlier, we mentioned that the network load balancer can be connected, allowing us to use the Global Accelerator for non-HTTP traffic such as TCP or UDP. The global accelerator provides a static global IP that can be whitelisted within enterprise firewalls. However, with CloudFront, we do not have a single static global IP.
You cannot utilize Global Accelerator for caching or transforming requests and responses at any edge location. You can use AWS WAF and AWS Shield in conjunction with Global Accelerator.
|Traffic||Only HTTP and HTTPS||Both HTTP and Non-HTTP|
|Supports AWS Shield||Yes||Yes|
|Supports AWS WAF||Yes||Yes|
|Global Static IPs||No||Yes|
|Supports Edge Functions||Yes||No|
|Pricing||Based on the data transferred||Base price along with data transferred|
If you have an interest in certifications, kindly visit the courses page.