Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
High Performance Web Applications
Search
Matt Wood
October 29, 2012
Technology
6
610
High Performance Web Applications
Building high performance web applications on AWS.
Matt Wood
October 29, 2012
Tweet
Share
More Decks by Matt Wood
See All by Matt Wood
Field Notes from Expeditions in the Cloud
mza
2
380
A Platform for Big Data
mza
6
730
The Data Lifecycle
mza
5
490
Provision Throughput Like a Boss
mza
0
420
Impact of Cloud Computing: Life Sciences
mza
2
830
Latency's Worst Nightmare: Performance Tuning Tips and Tricks
mza
4
1.1k
Under the Covers of DynamoDB
mza
4
1k
From Analytics to Intelligence: Amazon Redshift
mza
9
970
Scaling Science
mza
3
480
Other Decks in Technology
See All in Technology
Linuxのパッケージ管理とアップデート基礎知識
go_nishimoto
0
100
いつも初心者向けの記事に助けられているので得意分野では初心者向けの記事を書きます
toru_kubota
2
310
YOLOv10~v12
tenten0727
4
940
Стильный код: натуральный поиск редких атрибутов по картинке. Юлия Антохина, Data Scientist, Lamoda Tech
lamodatech
0
700
PicoRabbit: a Tiny Presentation Device Powered by Ruby
harukasan
PRO
2
200
日経電子版 for Android の技術的課題と取り組み(令和最新版)/android-20250423
nikkei_engineer_recruiting
0
110
SmartHR プロダクトエンジニア求人ガイド_2025 / PdE job guide 2025
smarthr
0
100
QA/SDETの現在と、これからの挑戦
imtnd
0
120
Running JavaScript within Ruby
hmsk
3
320
AWSの新機能検証をやる時こそ、Amazon Qでプロンプトエンジニアリングを駆使しよう
duelist2020jp
1
150
システムとの会話から生まれる先手のDevOps
kakehashi
PRO
0
270
CBになったのでEKSのこともっと知ってもらいたい!
daitak
1
160
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
670
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
119
51k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Bash Introduction
62gerente
611
210k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Into the Great Unknown - MozCon
thekraken
37
1.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
BBQ
matthewcrist
88
9.6k
A Tale of Four Properties
chriscoyier
158
23k
The Cult of Friendly URLs
andyhume
78
6.3k
Speed Design
sergeychernyshev
29
900
The Invisible Side of Design
smashingmag
299
50k
Transcript
High Performance Web Applications
[email protected]
Dr. Matt Wood @mza
Hello
Building blocks for wonderful applications Storage, compute, databases, managed services
None
Retail Merchant services Web services
Retail Merchant services Web services
Getting started with Amazon Web Services quick review H
Utility computing Available at the end of an API call.
Metered billing. H
Family of 20 services Adding new services and refinement weekly.
Rapid rate of innovation. H
Undi!erentiated heavy lifting Focus on your app, customers and business
H
H
aws.amazon.com H Free account. Free tier.
Building High Performance Web Applications r
Deliver a great experience to your customers. Responsive, fast web
applications. r
g DECOUPLED SCALE OUT S OPTIMIZE COST FOR C AUTOMATE
v CALIBRATED FOR: CPU performance v CALIBRATED FOR: IO performance 5patterns for performance
g DECOUPLED
Monolithic Mega System v2
Application Assets Analytics
Application Assets Analytics
Images, javascript, stylesheets, HTML pages Deliver as fast as possible
to customers r
Websites without the servers Highly durable: 99.999999999% Zero config: fire
and forget r
None
Low latency delivery of assets Local caching for fast downloads
Amazon CloudFront r
P P
Create content distributions From objects in S3 Any custom origin
Dynamic, streaming and static content r
P P P
CNAME? Map to any custom URL assets.domain.com, www.domain.com r
Application Assets Analytics
Application Assets Analytics
Application architecture Small things, loosely coupled r
Application Assets Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Shared responsibility Infrastructure by AWS OS, application and data by
customers Tools to help meet best practices r
Security groups Customer controlled firewalls All ports are closed by
default r
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
x
Decoupling provides an architectural framework for performance Easier to separate
concerns: assets, streaming, etc. Easier to manage and scale. r
SCALE OUT
Elasticity is a tenet of the cloud Scale up when
you need to Scale down when you don’t r
Predictable peaks r Time Demand Capacity
Predictable peaks r Time Demand Capacity
Variable usage r Time Demand Capacity
Variable usage r Time Demand Capacity
Variable usage r Time Demand
Horizontal scaling drives performance up ...and costs down r
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Amazon Machine Images encapsulate your app Customize your virtual machines
AMI can be the unit of deployment r
1. Spin up a new instance using your AMI Configured
to bootstrap the app. r
2. Pull down latest code base From S3 or code
repository r
3. Start up the app on the instance Ready to
receive requests r
4. Register with the load balancer Job done. r
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Horizontal scaling allows for fault tolerance r
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Load balancer App servers Database Asynchronous processing :( Application Assets
Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Deploying and scaling a datastore r Follow the same patterns:
horizontal scale, availability, automation.
One question: r Does your application require a strict, controlled
schema for query flexibility?
Amazon Relational Database Service r Management systems: CRM, ERP, finance
Does your application require a strict, controlled schema for query flexibility? Yes
Focus on your app r Handles tedious database admin tasks
Designed for availability
Multi-engine r MySQL, Oracle, Microsoft SQL Server Up and running
in six clicks
Point in time snapshots r Automatic. Easy recovery.
High availability r Deployed across multiple availability zones. Synchronous writes.
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Read replicas r Perfect for read heavy applications. Asynchronous writes.
Replication metrics available.
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Amazon DynamoDB r Web apps, social apps, mobile apps, user
generated content, unstructured data integration, lots of data. Does your application require a strict, controlled schema for query flexibility? No
Focus on your app r Managed NoSQL database service. No
schema.
Unlimited scale r Unlimited storage Pay as you go
High performance r Single digit millisecond latencies
Zero admin r No instances to manage Tiny API, perfectly
formed
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Asynchronous processing r Resize images. Transcode movies. Resample media.
Follow the same best practices r Decouple. Stateless. Horizontal scale.
Load balancer App servers Database Asynchronous processing Application Assets Analytics
CloudFront for dynamic content r Edge caching for dynamic content
Cache by query string parameters Multiple origin servers Persistent connections to origin servers
C AUTOMATE
Automate everything The tedious. The time consuming. The error prone.
r
For example: when increasing capacity Launch instance. Update application code.
Register with load balancer. r
Auto-scaling CloudWatch Auto-scaling service Elastic Load Balancer r
Set operational thresholds Network capacity > 80% Memory utilization >
75% CPU < 50% r
Automatically respond to operational alarms r Network capacity > 80%:
add instances Memory utilization > 75%: add instances CPU < 50%: remove instances
Set bounds Step change configured by number or percentage of
instances r
Custom metrics Respond to custom metrics Page load time Database
query time r
Automatic load balancer configuration Instances added/removed automatically Health check for
running application before routing tra"c r
Stateless operations are important Decoupled, but stateless Instances are naive
to other instances r
Treat your data as a royal garden Backup to S3:
high durability Compute is a disposable resource r
v CALIBRATED FOR: CPU performance
Range of resources Choose the best instance type for performance
r
r t1.micro m1.small cc2.8xlarge
r t1.micro m1.small cc2.8xlarge High memory High CPU High CPU
+ memory
Load balancer App servers Database Asynchronous processing Application Assets Analytics
1 instance for 100 hours = 100 instances for 1
hour
Balance cost/performance Mix instance types for application servers, databases, ancillary
services, analytics etc. r
Migrate to large instance types As your application grows Use
64 bit from the outset, if possible r
v CALIBRATED FOR: IO performance
IO bound web applications are more common Application requires predictable,
consistent IO r
Provisioned throughput with DynamoDB No need to provision storage Provision
IO requirements: reads and writes per second r
None
None
None
None
Scale up, and carry on DynamoDB will manage resources to
achieve and maintain throughput r
Low latency, unlimited scale Writes acknowledged when saved to disk
in multiple data centres. Backed on SSDs. r
...and SSDs for all
hi1.4xlarge instances High capacity, high performance storage 2 x 1Tb
SSD drives r
Perfect match for databases Relational and NoSQL storage r
Perfect match for databases Relational and NoSQL storage 90k to
120k IOPS r
High performance network 10 gigabit ethernet Placement groups Perfect for
distributed stores r
S OPTIMIZE COST FOR
Economies of scale Drive down prices for customers 20 price
drops in past 6 years r
Maximize utilization Greater utilization drives down cost r
Reserved capacity Time Utilization
Reserved instances Small upfront payment Guaranteed capacity for 1 or
3 years Lower hourly rate r
Reserved instance resale Sell your reservations on the resale market
Sellers set your own price Buyers select and check out r
Reserved capacity Time Utilization
Reserved capacity On-demand Time Utilization
Reserved capacity On-demand Time Utilization
Spot instances Name your price computing r
Spot instances Lower costs ‘Overclock’ your app: more bang for
your buck r
Load balancer App servers Database on SSDs Asynchronous processing Application
Assets Analytics
Load balancer App servers Database on SSDs Asynchronous processing Application
Assets Analytics
Load balancer App servers Database on SSDs Asynchronous processing Application
Assets Analytics
Become price aware Price is a driver of your architecture
r
Automated bidding Automate bids based on on-demand price Run on
spot only when cost e!ective r
Continuous cost optimization Evaluate your reserved instance/on-demand/ spot mix regularly
as app requirements change r
5patterns for performance g DECOUPLED
5patterns for performance g DECOUPLED SCALE OUT
5patterns for performance g DECOUPLED SCALE OUT S OPTIMIZE COST
FOR
5patterns for performance g DECOUPLED SCALE OUT S OPTIMIZE COST
FOR v CALIBRATED FOR: CPU performance v CALIBRATED FOR: IO performance
5patterns for performance g DECOUPLED SCALE OUT S OPTIMIZE COST
FOR v CALIBRATED FOR: CPU performance v CALIBRATED FOR: IO performance C AUTOMATE
Thank you aws.amazon.com @mza
[email protected]