Being Well-Architected in The Cloud
Being Well-Architected in The Cloud
Being Well-Architected in The Cloud
Twitter: @adhorn
Email: adhorn@amazon.com
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• Technical Evangelist, Developer Advocate,
… Software Engineer
• Own bed in Finland
• Previously:
• Solutions Architect @AWS
• Lead Cloud Architect @Dreambroker
• Director of Engineering, Software Engineer, DevOps, Manager, ... @Hdm
• Researcher @Nokia Research Center
• and a bunch of other stuff.
• Climber, like Ginger shots.
What to expect from the session
Faster response to change Delivery time Change Management Reduce human errors
in market
16
Regions
42 Availability Zones
Building Blocks
Server
Amazon
EC2 instance S3
Subnet
Amazon
CloudWatch
Region
Security pillar
Security pillar
Protect information, systems, and assets while delivering business value
through risk assessments and mitigation strategies
Customers
Customer applications & content
Platform, Applications, Identity & Access Management
Availability Zones
AWS Global Edge
Infrastructure Locations
Regions
Credentials
{
"Version": "2012-10-17",
"Statement":
[
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*"
}
]
}
Network and Boundary
User
WEB WEB
Server Security Group
Web Subnet A
DB
Security Group
RDS DB Instance
DB Subnet A
Availability Zone A
Bastion Host & Security Groups
Developer
DB
Security Group
RDS DB Instance
Private Subnet A
Availability Zone A
Monitoring and Auditing
Troubleshoot
• Load Balancing
Amazon S3
Load
balancer
Web Web
Instance Instance
Amazon S3
ELB
Auto-Scaling group
Web Web
Instances ElastiCache
Instances
• Define Objectives
• Backup Strategy
• Automated Recovery
• Periodic Reviews
Performance efficiency pillar
Performance efficiency pillar
Efficiently use of computing resources to meet requirements, and
maintaining that efficiency as demand changes and technologies evolve
• Reference Architecture
• Quick Start Reference Deployments
• Benchmarking
• Load Testing
• Cost / Budget
• Monitoring and Notification
Utilization vs Provisioned capacity
76%
November
24%
Proximity and Caching
• Database Caching
Amazon
• Reduce Latency ElastiCache
Listener A B
Queue
Pub-Sub A B
Queue
Async. Architecture (part 1)
API: {DO foo} API: {JobID: 0001}
Web
Instances Queue
Result:
{
JobID: 0001,
Result: bar
Worker Worker }
ElastiCache
Instance Instance
Async. Architecture (part 2)
Push Notification
Queue
User
Amazon SNS
Worker Worker
ElastiCache
Instance Instance
Full Decoupling
Amazon Amazon
User Route 53 Cloudfront
Elastic Load
Balancer
Web Web
Instance Instance Worker
Instance Amazon S3
Worker
Instance
Queue Amazon SNS
RDS DB Instance ElastiCache
Active (Multi-AZ)
Availability Zone
Event-driven patterns
Event driven
Event on B by A triggers C A B C
How Lambda works
Such as…
Redshift Kinesis S3
Custom CloudWatch
events events
Event-driven using Lambda
Triggered on
PUTs
Users upload photos
Databases
Read / Write Sharding
Products Users
DB DB
Database Sharding
User ShardID
002345 A
App App App
Instance Instance Instance 002346 B
002347 C
002348 B
002349 A
A B C
Specialized Database
NoSQL Graph DB
Database specialization example: Redis
• On Demand
• Reserved
• Spot
• Dedicated
Auto Start/Shutdown of Instances
Amazon
Cloudwatch
Sleep trigger
Rules: every day at 21h30
Wakeup trigger
Rules: every day at 6h15
AWS Lambda AWS Resources
(EC2 instances)
Managed Services
• Tag Resources
version code
code integrate
control review
Twitter: @adhorn
Email: adhorn@amazon.com