The document discusses building web-scale applications using AWS. It covers principles like elasticity, scaling, and loose coupling of components. It describes using AWS services like S3, DynamoDB, ELB, Route53, CloudFront, and Auto Scaling to build applications that can handle large amounts of traffic and data flexibly. As an example, it discusses how a large UK job board company called Totaljobs migrated their infrastructure to AWS, which reduced costs while improving availability, scalability and performance compared to their previous data center setup.
2. What are we going to cover?
What’s a web scale application?
Three principles to build upon
Layering the cake:
Data
Application
Total Jobs Group – their story
6. Elastic capacity No need to guess capacity requirements and over-provision
Elastic Capacity
Demand
Actual demand
Customer
dissatisfaction
Predicted demand
Waste
Time
7. Elastic capacity No need to guess capacity requirements and over-provision
Elastic Capacity
Demand
Elastic capacity
Time
8. Built on a global footprint
Built across regional availability zones
9 Regions
25 Availability Zones
Continuous Expansion
9. Architected using services
Relational Database Service
Use RDS for databases Database-as-a-Service
No need to install or manage database instances
Scalable and fault tolerant configurations
DynamoDB Use DynamoDB for
Provisioned throughput NoSQL database high performance key-
Fast, predictable performance
value DB
Fully distributed, fault tolerant architecture
10. Architected using services
Amazon SQS Reliable message
Processing results Reliable, highly scalable, queue service
queuing without
for storing messages as they travel
Amazon SQS between instances
additional software
1
Processing
task/processing
trigger 2
Push inter-process Simple Workflow Task A
workflows into the Reliably coordinate processing steps
Task B 3
across applications
cloud with SWF (Auto-scaling)
Integrate AWS and non-AWS resources
Manage distributed state in complex
systems Task C
11. Architected using services
Document
Cloud Search Server
Don’t install search Elastic search engine based upon
software, use Amazon A9 search engine
Fully managed service with
CloudSearch
sophisticated feature set Search
Scales automatically Server
Results
Elastic MapReduce
Elastic Hadoop cluster
Process large volumes
Integrates with S3 & DynamoDB of data cost effectively
Leverage Hive & Pig analytics scripts with EMR
Integrates with instance types such as
spot
30. Master/Slave Horizontal Scaling
Reasonably simple to implement
Leverage PIOPs for raw performance
Easy to change instances sizes
Has an upper limit
Data
31. Sharded Horizontal Scaling
More complex at the application layer
No practical limit on scalability
Operation complexity/sophistication
Shard by function or key space
RDBMS or NoSQL
A D
hash
ring
C
B
Data
37. Increased provisioned
throughput
Table Table Table Table Table
Partition Partition Partition Partition Partition
SS SS SS SS SS
D D D D D
Table Table Table Table Table
Partition Partition Partition Partition Partition
SS SS SS SS SS
D D D D D
Data
Region
Illustrative diagram only
39. Loose coupling sets you free!
The looser they're coupled, the bigger
they scale
Independent components
Design everything as a black box
Application Decouple interactions
Load-balance clusters
Data
40. Amazon SQS
Reliable, highly scalable, queue service for storing
messages as they travel between instances
Processing results
Amazon SQS
Application
Data Processing
task/processing trigger
41. Tight Coupling
Controller A Controller B Controller C
Application
Data
42. Tight Coupling
Controller A Controller B Controller C
Q Q Q
Application
Controller A Controller B Controller C
Data Loose Coupling
43. Trigger auto-
scaling
policy
Auto Scaling
Automatic resizing of compute clusters based on demand
Application Feature Details
Control Define minimum and maximum instance pool
sizes and when scaling and cool down occurs.
Integrated to Use metrics gathered by CloudWatch to drive
Data Amazon scaling.
CloudWatch
Instance types Run Auto Scaling for On-Demand and Spot
Instances. Compatible with VPC.
47. Where should state reside?
Trigger auto-
scaling
policy
Application
Data
48. Where should state reside?
Trigger auto-
scaling
policy
Application
Not here
Data
49. Where should state reside?
Trigger auto-
scaling
policy
Application
Not here
Data State must reside OUTSIDE the
Session state
scope of the elements you wish to
service scale
50. Performant Where should state reside?
Scalable
Reliable
Application
Data
51. Elastic Load Balancing
Create highly scalable applications
Distribute load across EC2 instances
in multiple availability zones
Load Balancing
Feature Details
Application Available Load balance across instances in multiple Availability
Zones
Health checks Automatically checks health of instances and takes
them in or out of service
Session stickiness Route requests to the same instance
Data Secure sockets layer Supports SSL offload from web and application
servers with flexible cipher support
Monitoring Publishes metrics to CloudWatch
52. Route53
Global DNS service
Request Route53
Distribution
Route53
Load Balancing
Region Region
A B
Application
Data
53. Route53
Global DNS service
Request Route53
Distribution
Route53
16ms 92ms
Load Balancing
Region Region
A B
Application
Data
54. Route53
Global DNS service
Request Route53
Distribution
Route53
16ms 92ms
Load Balancing
Region Region
A B
Application
Data
55. Route53
Global DNS service
Request Route53
Distribution Region A DNS entry
Route53
16ms 92ms
Load Balancing
Region Region
A B
Application
Data
56. CloudFront
World-wide content distribution
Distribution network
3 Served from S3
/images/*
Load Balancing
Application
London 2 Served from EC2
*.php
Data Paris
1 Single CNAME
NY
www.mysite.com
57. CloudFront
World-wide content distribution
Distribution network
No CDN CDN for CDN for
Static Static &
Load Balancing Content Dynamic
Content
Application
Response Time
Response Time
Response Time
Server Load
Server
Server
Load
Load
Data
62. Management
Distribution
Automation &
Load Balancing management
Web scale enabler
Application
Data
63. Management
CloudFormation EC2
Distribution
Load Balancing
Application
Data
OpsWorks Elastic Beanstalk
64. Management control
CloudFormation EC2
Distribution
Load Balancing
Application
Data
OpsWorks Elastic Beanstalk
convenience
65. Summary
Summary
Use these techniques (and many others) as appropriate
Awareness of the options is the first step to good design
Scaling is the ability to move the bottlenecks around to
the least expensive part of the architecture
AWS makes this easier – so your application is not a
victim of its own success
69. Facts and Figures…
• Founded in 1999
• Largest job board company in the UK
• 450 staff
• 200K jobs
• 7 million job seekers a month
• 3.5 million page views per day
• 6.7 million searchable CVs
• 4 million job applications per month
• 3.5 million daily email job alerts
72. www.totaljobs.com
Akamai
www.origin.totaljobs.com
Availability Zone 1 Availability Zone 2 Route53
ELB
DNS
Replication
Active
Peer to Peer Passive
Replication
73. Technology
Service Data Centre AWS
Web Servers Virtual Machines (VMWare) m1.xlarge (15GB, 4 cores)
(IIS)
DB Servers Blades cc2.8xlarge (60GB, 32 cores)
(SQL Server 2012)
Storage SAN Elastic Block Store (EBS) standard + high
iops
Load Balancing Cisco Load Balancer + Elastic Load Balancing
Cisco Global Site Selector
Backup Tape zManda, using Simple Storage Service
(S3)
Security Hardware IPS Akamai WAF
Email Cisco IronPorts powerMTA