Regions and Availability Zones
- AWS is made up of regions which are a grouping of independently separated data centers in a specific geographic region knows as “Availability Zones”.
- Availability Zones work together in a region to make up a collection of your AWS resources. Properly designing applications will utilize multiple availability zones for fault tolerance and failover. AZ’s (as they known) have direct low latency connections between each AZ in a region but each AZ is isolated from other AZ’s to ensure fault tolerance.
- Availability of regions allows the architect to design applications to conform to specific laws and regulations for specific parts of the world. When viewing a region in the console you will only view resources in one region at a time but will be across all AZ’s within that region.
- Some AWS services work “globally” and not within a specific region. For examples users created in IAM will work across regions.
- An edge location is an AWS datacenter which does not contain AWS services. It is used to deliver content to part of the world. An example would be CloufFront which is a CDN. Cached items such as a PDF file can be cached on an edge location which reduces the amount of “space/time/latency” required for a request from that part of the world.
Ability for a system to expand and contract according to workload demands
- Operationally Efficient
- Cost effective as the service grows
Ability for your system to operate without interruption in the event of service failures
- Auto Scaling
- Route 53
- Availability Zones
- Multiple Regions
Fundamental properly of the cloud; the ability for an infrastructure to adapt up and down automatically to a given workload.
- EC2, AMI, RDS, Route 53, Auto Scaling, Bootstrapping
- Proactive Cycle Scaling: Scale out based off “known” peak periods
- Proactive Event-Based Scaling: Scale out in anticipation of increase demand
- Auto Scaling Based on a Demand: Scale out based on metrics such as CPU utilization, network utilization etc. This is considered Horizontal scaling vs. Vertical scaling.
AWS services are available and grouped together by “type”.
AWS Services are grouped into the following categories
- Compute and Networking
- Storage and content Delivery
- Database Services
- App Services
- Deployment Services
- Management Services
A properly architected application will make use of multiple types of services. A focus on automation, fault tolerance, disaster recovery, and high availability should always be the focus of any architected AWS application and will require the use of multiple AWS services.