Availability zones (AZs) are physically separate data centers within a region. Spreading resources across AZs protects against single failures.
Design principles:
Deploy in at least AZs
Use load balancers across AZs
Ensure data replication between AZs
Verify automatic failover
Distribute:
- Application servers across AZs
- Database replicas in different AZs
- NAT gateways per AZ
Cost consideration: Multi-AZ adds cost for duplicate resources and cross-AZ transfer. Balance availability needs against budget.