Cloud Architectural Design Principle

Optimize for Cost

Automation

Scalability

Databases

Caching

Service, Not Servers

Removing single point of failure

Disposable Resource Instead of Fixed Servers

Security

Loose Coupling

Application Data Caching

Edge Caching

Vertical Scalability

Horizontal Scalability

Reserved Capacity

Spot Instances

Variety of Options

Data Warehouse

NoSQL Database

Search

Relational Database

Instantiating Compute Resources

Infrastructure as a code

Serverless Architecture

Managed Services

Well-defined Interfaces

Services Discovery

Graceful failure

Asynchronous Integration

Reduced Privilege Access

Offload security responsibility to AWS

Real-time Auditing

AWS Defence-in-Depth

Security as a code

Detect Failure

Automated Multi-Datacenter Resiliency

Redundancy

Fault Isolation

Durable Data Storage