From 0e12a2bc8b548fbb5d24b9b85b813000c6f754d7 Mon Sep 17 00:00:00 2001 From: kananinirav <30398499+kananinirav@users.noreply.github.com> Date: Sun, 21 Aug 2022 12:47:35 +0900 Subject: [PATCH] [Modified / Added] Global Infrastructure doc --- README.md | 3 +- sections/global_infrastructure.md | 235 ++++++++++++++++++++++++++++++ 2 files changed, 237 insertions(+), 1 deletion(-) create mode 100644 sections/global_infrastructure.md diff --git a/README.md b/README.md index 5e16332..f7be916 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,8 @@ - [Amazon S3](sections/s3.md) - [Databases & Analytics](sections/databases.md) - [Other Compute Section](sections/other_compute.md) -- [Deploying and Managing Infrastructure at Scale Section](sections/deploying.md) +- [Deploying and Managing Infrastructure at Scale](sections/deploying.md) +- [Global Infrastructure](sections/global_infrastructure.md) ### Contributors diff --git a/sections/global_infrastructure.md b/sections/global_infrastructure.md new file mode 100644 index 0000000..b45dafa --- /dev/null +++ b/sections/global_infrastructure.md @@ -0,0 +1,235 @@ +# Global Infrastructure + +- [Global Infrastructure](#global-infrastructure) + - [Why make a global application?](#why-make-a-global-application) + - [Global AWS Infrastructure](#global-aws-infrastructure) + - [Global Applications in AWS](#global-applications-in-aws) + - [Amazon Route 53 Overview](#amazon-route-53-overview) + - [Route 53 - Diagram for A Record](#route-53---diagram-for-a-record) + - [Route 53 Routing Policies](#route-53-routing-policies) + - [simple routing policy](#simple-routing-policy) + - [weighted routing policy](#weighted-routing-policy) + - [latency routing policy](#latency-routing-policy) + - [failover routing policy](#failover-routing-policy) + - [AWS CloudFront](#aws-cloudfront) + - [CloudFront - Origins](#cloudfront---origins) + - [CloudFront vs S3 Cross Region Replication](#cloudfront-vs-s3-cross-region-replication) + - [S3 Transfer Acceleration](#s3-transfer-acceleration) + - [AWS Global Accelerator](#aws-global-accelerator) + - [AWS Global Accelerator vs CloudFront](#aws-global-accelerator-vs-cloudfront) + - [AWS Outposts](#aws-outposts) + - [AWS Outposts Benefits](#aws-outposts-benefits) + - [AWS WaveLength](#aws-wavelength) + - [AWS Local Zones](#aws-local-zones) + - [Global Applications - Summary](#global-applications---summary) + +## Why make a global application? + +- A global application is an application deployed in **multiple geographies** +- On AWS: this could be **Regions** and / or **Edge Locations** +- **Decreased Latency** + - Latency is the time it takes for a network packet to reach a server + - It takes time for a packet from Asia to reach the US + - Deploy your applications closer to your users to decrease latency, better experience +- **Disaster Recovery (DR)** + - If an AWS region goes down (earthquake, storms, power shutdown, politics)… + - You can fail-over to another region and have your application still working + - A DR plan is important to increase the availability of your application +- **Attack protection**: distributed global infrastructure is harder to attack + +### Global AWS Infrastructure + +- Regions: For deploying applications and infrastructure +- Availability Zones: Made of multiple data centers +- Edge Locations (Points of Presence): for content delivery as close as possible to users +- More at: + +### Global Applications in AWS + +- **Global DNS: Route 53** + - Great to route users to the closest deployment with least latency + - Great for disaster recovery strategies +- **Global Content Delivery Network (CDN): CloudFront** + - Replicate part of your application to AWS Edge Locations – decrease latency + - Cache common requests – improved user experience and decreased latency +- **S3 Transfer Acceleration** + - Accelerate global uploads & downloads into Amazon S3 +- **AWS Global Accelerator:** + - Improve global application availability and performance using the AWS global network + +## Amazon Route 53 Overview + +- Route53 is a Managed DNS (Domain Name System) +- DNS is a collection of rules and records which helps clients understand how to reach a server through URLs. +- In AWS, the most common records are: + - www.google.com => 12.34.56.78 == A record (IPv4) + - www.google.com => 2001:0db8:85a3:0000:0000:8a2e:0370:7334 == AAAA IPv6 + - search.google.com => www.google.com == CNAME: hostname to hostname + - example.com => AWS resource == Alias (ex: ELB, CloudFront, S3, RDS, etc…) + +### Route 53 - Diagram for A Record + +```mermaid +sequenceDiagram + participant Web browser + participant Route 53 + participant Application Server(IP=11.12.13.1) + Web browser->>Route 53: DNS Request app.domain.com + Route 53 ->> Web browser: Send back IP:11.12.13.1(A record: hostname or IP) + Web browser->>Application Server(IP=11.12.13.1): HTTP Request IP:11.12.13.1 (Host:app.domain.com) + Application Server(IP=11.12.13.1) ->> Web browser: HTTP Response +``` + +## Route 53 Routing Policies + +Need to know them at a high-level for the Cloud Practitioner Exam + +- simple routing policy +- weighted routing policy +- latency routing policy +- failover routing policy + +### simple routing policy + +- Use for a single resource that performs a given function for your domain +- for example, a web server that serves content for the example.com website. +- You can use simple routing to create records in a private hosted zone + +### weighted routing policy + +- Use to route traffic to multiple resources in proportions that you specify. +- You can use weighted routing to create records in a private hosted zone. + +### latency routing policy + +- Use when you have resources in multiple AWS Regions and you want to route traffic to the region that provides the best latency. +- You can use latency routing to create records in a private hosted zone. + +### failover routing policy + +- Use when you want to configure active-passive failover. +- You can use failover routing to create records in a private hosted zone. + +## AWS CloudFront + +- Content Delivery Network (CDN) +- **Improves read performance, content is cached at the edge** +- Improves users experience +- 216 Point of Presence globally (edge locations) +- DDoS protection (because worldwide), integration with Shield, AWS Web Application Firewall +- Source: + +### CloudFront - Origins + +- S3 bucket + - For distributing files and caching them at the edge + - Enhanced security with CloudFront Origin Access Identity (OAI) + - CloudFront can be used as an ingress (to upload files to S3) +- Custom Origin (HTTP) + - Application Load Balancer + - EC2 instance + - S3 website (must first enable the bucket as a static S3 website) + - Any HTTP backend you want + +### CloudFront vs S3 Cross Region Replication + +| CloudFront | S3 Cross Region Replication | +| -------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| Global Edge network | Must be setup for each region you want replication to happen | +| Files are cached for a TTL (Time to Live) (maybe a day) | Files are updated in near real-time, Read only | +| **Great for static content that must be available everywhere** | **Great for dynamic content that needs to be available at low-latency in few regions** | + +### S3 Transfer Acceleration + +- Increase transfer speed by transferring file to an AWS edge location which will forward the data to the S3 bucket in the target region +- if we try to upload file to Australia S3 bucket it will take time using CloudFront we can rescue time. +- File in USA -> Edge Location(USA) -> S3 Bucket(Australia) +- Test the tool at: + +## AWS Global Accelerator + +- Improve global application availability and performance using the AWS global network +- Leverage the AWS internal network to optimize the route to your application (60% improvement) +- 2 Anycast IP are created for your application and traffic is sent through Edge Locations +- The Edge locations send the traffic to your application +- Test the tool at: + +### AWS Global Accelerator vs CloudFront + +- They both use the AWS global network and its edge locations around the world +- Both services integrate with AWS Shield for DDoS protection. +- CloudFront – Content Delivery Network + - Improves performance for your cacheable content (such as images and videos) + - Content is served at the edge +- Global Accelerator + - No caching, proxying packets at the edge to applications running in one or more AWS Regions. + - Improves performance for a wide range of applications over TCP or UDP + - Good for HTTP use cases that require static IP addresses + - Good for HTTP use cases that required deterministic, fast regional failover + +## AWS Outposts + +- **Hybrid Cloud**: businesses that keep an on - premises infrastructure alongside a cloud infrastructure +- Therefore, two ways of dealing with IT systems: • One for the AWS cloud (using the AWS console, CLI, and AWS APIs) +- One for their on-premises infrastructure +- **AWS Outposts are “server racks”** that offers the same AWS infrastructure, services, APIs & tools to build your own applications on-premises just as in the cloud +- **AWS will setup and manage “Outposts Racks”** within your on-premises infrastructure and you can start leveraging AWS services on-premises +- You are responsible for the Outposts Rack physical security + +### AWS Outposts Benefits + +- Low-latency access to on-premises systems +- Local data processing +- Data residency +- Easier migration from on-premises to the cloud +- Fully managed service +- Some services that work on Outposts: + - EC2 + - EBS + - S3 + - EKS + - ECS + - RDS + - EMR + +## AWS WaveLength + +- WaveLength Zones are infrastructure deployments embedded within the telecommunications providers’ datacenters at the edge of the 5G networks +- Brings AWS services to the edge of the 5G networks +- Example: EC2, EBS, VPC… +- Ultra-low latency applications through 5G networks +- Traffic doesn’t leave the Communication Service Provider’s (CSP) network +- High-bandwidth and secure connection to the parent AWS Region +- No additional charges or service agreements +- Use cases: Smart Cities, ML-assisted diagnostics, Connected Vehicles, Interactive Live Video Streams, AR/VR, Real-time Gaming + +## AWS Local Zones + +- Places AWS compute, storage, database, and other selected AWS services closer to end users to run latency-sensitive +applications +- Extend your VPC to more locations – “Extension of an AWS Region” +- Compatible with EC2, RDS, ECS, EBS, ElastiCache, Direct Connect … +- Example: + - AWS Region: N. Virginia (us-east-1) + - AWS Local Zones: Boston, Chicago, Dallas, Houston, Miami + +## Global Applications - Summary + +- Global DNS: Route 53 + - Great to route users to the closest deployment with least latency + - Great for disaster recovery strategies +- Global Content Delivery Network (CDN): CloudFront + - Replicate part of your application to AWS Edge Locations – decrease latency + - Cache common requests – improved user experience and decreased latency +- S3 Transfer Acceleration + - Accelerate global uploads & downloads into Amazon S3 +- AWS Global Accelerator + - Improve global application availability and performance using the AWS global network +- AWS Outposts + - Deploy Outposts Racks in your own Data Centers to extend AWS services +- AWS WaveLength + - Brings AWS services to the edge of the 5G networks + - Ultra-low latency applications +- AWS Local Zones + - Bring AWS resources (compute, database, storage, …) closer to your users + - Good for latency-sensitive applications