Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
660
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
440
A Platform for Big Data
mza
6
790
The Data Lifecycle
mza
5
540
Provision Throughput Like a Boss
mza
0
490
Impact of Cloud Computing: Life Sciences
mza
2
890
Latency's Worst Nightmare: Performance Tuning Tips and Tricks
mza
4
1.1k
Under the Covers of DynamoDB
mza
4
1.1k
From Analytics to Intelligence: Amazon Redshift
mza
9
1k
Scaling Science
mza
3
540
Other Decks in Technology
See All in Technology
打 造 A I 驅 動 的 G i t H u b ⾃ 動 化 ⼯ 作 流 程
appleboy
0
370
SQLだけでマイグレーションしたい!
makki_d
0
1.1k
プロンプトやエージェントを自動的に作る方法
shibuiwilliam
15
15k
Snowflakeで実践する、生成AIを活用した「自然言語によるデータとの対話」
nayuts
0
120
AI駆動開発における設計思想 認知負荷を下げるフロントエンドアーキテクチャ/ 20251211 Teppei Hanai
shift_evolve
PRO
2
460
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
190
Amazon Quick Suite で始める手軽な AI エージェント
shimy
1
1.1k
【ServiceNow SNUG Meetup LT deck】WorkFlow Editorの廃止と Flow Designerへの移行戦略
niwato
0
110
Connection-based OAuthから学ぶOAuth for AI Agents
flatt_security
0
190
業務のトイルをバスターせよ 〜AI時代の生存戦略〜
staka121
PRO
2
230
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
360
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
2
870
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
64
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.7k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
60
37k
Claude Code のすすめ
schroneko
65
200k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
0
39
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
0
60
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
0
98
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.4k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The browser strikes back
jonoalderson
0
65
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]