Designed to provide high availability and fault tolerance
Plan for failure with redundancy
AWS Regions
One region has multiple data centers that have all the compute, storage and other services AWS provides
Regions are connected by a high speed fiber network (owned by AWS)
Regions are isolated unless I explicitly allow/export data to flow in or out (to fulfill compliance regulations)
& REGIONALLY SCOPED SERVICES: Regional services are by definition highly available, like the ELB , SQS and SNS
What influences region picking?
Compliance: Regulatory Laws
Proximity: Close to customers
Feature availability: Not all regions have all AWS services
Pricing: Some locations are more expensive than others for AWS to operate
AWS Availability Zones (AZs)
AZs are a group of data centers with redundant power, networking and connectivity (physically separated and geographically far away, but inside same Region)
One region has multiple AZs
It's recommended to redundantly deploy my application in at least 2 AZs
Edge Locations
Edge Locations run both CloudFront (CDN) and Route 53 (DNS)
Amazon CloudFront
AWS's Content Delivery Networks (CDNs) is called Amazon CloudFront
It's used to cache a copy of applications, data, APIs, content closer to costumers and achieve low latency
They are like a franchise of a company. CDN -> Franchise and Region -> Headquarters
Amazon Route 53
AWS's DNS service
AWS Outposts
Run AWS infrastructure on-premises using AWS's hardware (like a mini region)
How to provision AWS resources
In AWS, everything is an API
You can provision resources through an API
AWS Management Console: Good to learn and get started. Test environment and learning use cases (Web-based interface)
AWS CLI: Production use case (Bash script)
AWS SDK: Production use case (Using a programming language to script)
AWS Elastic BeanStalk: Deploy the whole EC2 stack and manages it for you. It also allows a snapshot of it to replicate it across regions.
AWS Regions: Geographic areas around the world where AWS clusters data centers.
Availability Zones (AZs): Composed of one or more discrete data centers within a Region, each with redundant power, networking, and connectivity. AZs are physically separate but connected with low-latency links.
Global Spread: Regions and AZs are distributed globally, allowing users to choose deployment locations.
Architectural Best Practices & High Availability
Multi-AZ Deployment: Best practice is to deploy infrastructure across at least two Availability Zones (AZs) within a Region for fault tolerance and high availability.
Auto-Distributed Services: Some AWS services inherently operate across multiple AZs:
Edge Locations: Sites AWS uses (often with Amazon CloudFront) to cache copies of content closer to end-users, reducing latency and improving performance.
AWS Outposts: An edge device solution allowing you to run AWS infrastructure and services on-premises in your own data center for a consistent hybrid experience.
Provisioning AWS Resources
Multiple methods exist to interact with and provision AWS resources:
Infrastructure as Code (IaC): Managing and provisioning infrastructure through code instead of manual processes, enabling automation and consistency (highlighted with AWS CloudFormation).
Key Takeaways
AWS provides a vast, globally distributed infrastructure.