Architecting for the Cloud: AWS Best Practices Notes

AWS Best Practices article outlines IT pattern needs. It tells you what services are needed in IT, how AWS meets those needs.

Scalability

Scaling Vertically (CPU, RAM, IO, Network Capability Increase/Decrease)
Scaling Horizontally :

Stateless Applications (EC2, Lambda, etc..)

  • Push Model : ELB, AWS Route53
  • Pull Model : AWS SQS, Kinesis (Async Event-Driven)

Stateless Components

Session Data → Cookie → ServerSide LocalFile → DynamoDB, EFS, S3

Stateful Components

Session Affinity , S3, EFS, Databases,

Distributed Processing

Offline batch jobs scaled by using distributed data like Apache Hadoop, Amazon EMR → EC2 , Kinesis → EC2, Lambda …

Disposable Resouces Instead Of Fixed Servers

Configuration Drift, Immutable Infrastructure

Instantiating Compute Resource

Bootstrapping (EC2, RDS), AWS OpsWorks (Chef/Puppet — Bash/PowerShell scripts, AWS API, CloudFormation)

Golden Images :( EC2, RDS, EBS) → AMI , VM Import/Export, AWS AMI Catalog, AWS Marketplace

Containers (Dockers) : ECS, ElasticBeanstalk → manages → dockers → on EC2 Clusters

Hybrid : Bootstrapping — Golden Images

Infrastructure As Code: AWS CloudFormation

Automation

AWS Elastic Beanstalk, Amazon Ec2 Auto Recovery, Auto Scaling, Amazon CloudWatch Alarms, Amazon CloudWatch Events, AWS OpsWorks Lifecycle events, AWS Lambda Scheduled Events

Loose Coupling

Well Defined Interfaces: RESTful APIs , Amazon API Gateway

Service Discovery : Elastic Load Balancing, DNS and Private Amazon Route53 Zones, AWS API , Netflix Euroka, Airbnb Synapse, HashiCorp Consul

Asynchronous Integration : Amazon SQS, or streaming Amazon Kinesis, Amazon SWF, or AWS Lambda consumes AWS Service events

Graceful Failure : Amazon Route53 DNS failover feature

Services, Not Servers

Managed Services: SQS, S3, CloudFront, ELB, DynamoDB, Amazon CloudSearch, Amazon Elastic Transcoder, SES, vb..

Serverless Architectures: AWS Lambda for Event-Driven and synchronous services mobile, web, analytics, IOT

Databases

Relational Databases : Amazon RDS

NoSQL Databases: Amazon DynamoDB

Data Warehouse : Amazon Redshift

Search : Amazon ES (Elastic Search), Amazon CloudSearh

Removing Single Points of Failure

Introducing Redundancy: Standby Redundancy (failover), Active Redundancy

Detect Failure : ELB , Route53 (health check)

Durable Storage : S3 (Sync Replication)

Automated Multi-Data Center Resillence: Availablity Zones

Fault Isolation And Traditional Horizantal Scaling

Shuffle Sharding

Optimizing Cost

Right Sizing

Select Instance Type for EC2, RDS, Redshift, ElasticCache, ES

Select Storage Type for S3, EBS

Elasticity

EC2 → AutoScaling

AWS Lambda → Auto

AWS Managed Service → Auto

Take Advantage Of The Variety of Purchasing Options

Reserved Instance, On Demand, Spot ..

Caching

Application Data Caching

AWS ElasticCache

Edge Caching

Amazon Cloudfront

Security

Utilize AWS Features for Defense in Depth

AWS WAF, IAM

Offload Security Responsibility to AWS

Shared Security Responsibility Model

Reduced Privileged Access

IAM, Amazon Cloud Watch Logs..

Security As Code:

IAM, AWS CloudFormation, AWS Service Catalog

Real-Time Auditing :

AWS Config, Amazon Inspector, AWS Trusted Advisor, CloudWath Logs)