websites on aws
TRANSCRIPT
Lets talk about
@markbate
Mark Bate — Solutions Architect
Websites on AWS
Journey Through the Cloud
Learn from the journeys taken by other AWS customers
Discover best practices that you can use to bootstrap your projects
Common use cases and adoption models for the AWS Cloud123
Scalable Web Apps
A very popular use-case for AWS servicesApplications with growing, variable or cyclical demand fit AWS
well Elasticity and automation can be exercised to real advantage
AWS services allow you to accelerate application development
Agenda
Why use AWS for scalable web applications?Rule Book for scalable web application on AWS
Common patterns for web applicationsWhere to go to learn more
WHY AWS FOR SCALABLEWEB APPLICATIONS?
Websites & Digital Transformation
BEING IN THE CLOUD GIVES
US THE SCALABILITY OF ADDING APPLICATION AND DATABASE SERVERS AS WE NEED THEM.
Keith MitchellProgrammerreddit.com
• reddit is a San Francisco, CA company that provides reddit.com, a social news and entertainment website where users can submit and rank ideas, images, and links
• reddit originally operated reddit.com on physical servers, but after the number of users quadrupled in 18 months, the company realized it couldn’t scale with an on-premises environment
• By migrating to AWS, reddit can scale to manage 4 billion page views per month and run its website with only 20 employees
With AWS, reddit scales its social news site to handle 4 billion page views per month with only 20 employees
Find out more here : aws.amazon.com/solutions/case-studies/reddit/
Pick your platform
Use your favourite tools
Grow & shrink capacity to match demand
Spend your money on what matters
Take your app or site global in minutes
Never make your customers wait
123456
RULE BOOK FOR SCALABLE WEBAPPLICATIONS ON AWS
Service all requests
Service requests as fast as possible
Handle requests at any volume
Simply your architecture
Automate operations & management
Use the unique properties of the cloud
123456
Service all requests1
DNS APPLICATION DATA
Service all requests1
DNS APPLICATION DATAREQUEST
Service all requests1
DNS APPLICATION DATAREQUEST
Service all requests1
DNS APPLICATION DATAREQUEST ╳
Service all requests1
DNS APPLICATION DATAREQUEST
100%Availability
SLA
aws.amazon.com/route53/sla
Global Delivered from AWS global edge locations for fast and reliable domain name resolution
Scalable Automatically scales based upon query volumes
Latency based
routing
Supports resolution of endpoints based upon latency, enabling multi-region application delivery
Integrated Integrates with other AWS services allowing Route 53 to front elastic load balancers, S3 and EC2
Secure Integrates with IAM giving fine grained control over DNS record access
Service all requests1
DNS APPLICATION DATAREQUEST
1
DNS APPLICATION DATAREQUESTRegion
Region
ElasticLoad
Balancer
ElasticLoad
BalancerAvailability Zone
Availability Zone
Availability Zone
Availability Zone
Elastic load balancingMulti-availability zoneMulti-region
Service all requests
1
DNS APPLICATION DATAREQUESTRegion
Region
ElasticLoad
Balancer
ElasticLoad
BalancerAvailability Zone
Availability Zone
Availability Zone
Availability Zone
AmazonDynamoDB
AmazonDynamoDB
Service all requests
Service requests as fast as possible2
Service requests as fast as possible1) Chose the ‘closest’ endpoint
2
REQUEST AmazonRoute 53
Region A Region B
2
REQUEST AmazonRoute 53
Region A Region B
16ms 92ms
Service requests as fast as possible1) Chose the ‘closest’ endpoint
2
REQUEST AmazonRoute 53
Region A Region B
16ms 92ms
Service requests as fast as possible1) Chose the ‘closest’ endpoint
2
AmazonRoute 53
Region A Region B
16ms
REGION A DNS ENTRY
REQUEST
Service requests as fast as possible1) Chose the ‘closest’ endpoint
Service requests as fast as possible2) Offload your application servers
2
London
Paris
NY
Served from S3
/images/*
3
Served from EC2
*.php2
Single CNAME
www.mysite.com1
Amazon CloudFrontContent delivery web service
Integrates with other Amazon Web
Services Products
Easily distribute content to end users
with low latency, high data transfer
speeds, and no minimum usage
commitments
aws.amazon.com/cloudfront
Service requests as fast as possible2) Offload your application servers
2
Without Amazon
CloudFrontEC2 Instances running web and application
servers are loaded with user requests for
content assets
Service requests as fast as possible2) Offload your application servers
2
With Amazon CloudFrontA significant proportion of the load from user
requests is handled by Amazon CloudFront
and the EC2 cluster can be scaled downOffload
Scale Down
Service requests as fast as possible2) Offload your application servers
2
OffloadScale Down
Resp
onse
Tim
e
Serv
er
Load
Resp
onse
Tim
e
Serv
er
Load
Resp
onse
Tim
e
Serv
er
Load
No CDN CDN forStatic
Content
CDN forStatic &DynamicContent
Service requests as fast as possible3) Cache it if you can
2
Amazon ElastiCacheA web service that makes it easy to
deploy, operate, and scale an in-
memory cache
Allows you to retrieve information from
fast, managed, in-memory caches,
instead of relying entirely on slower
disk-based databases
Supports two open-source in memory
caching engines: Memcached & Redis
Service requests as fast as possible4) Single digit latencies where it matters
2D
ata
base
Query
Perf
orm
an
ce
Desired consistency & predictability
Scale
Service requests as fast as possible4) Single digit latencies where it matters
2D
ata
base
Query
Perf
orm
an
ce
Desired consistency & predictability
Scale
Actual performancedegrades with scale
Data
base
Query
Perf
orm
an
ce
Desired consistency & predictability
Scale
Actual performancedegrades with scale
Filling this gap requires:
Database sharding Data cachingProvisioning
Cluster managementFault management
Service requests as fast as possible4) Single digit latencies where it matters
2
Data
base
Query
Perf
orm
an
ce
Amazon DynamoDB Query Performance
Scale
Relational DatabaseQuery Performance
AmazonDynamoDB
Service requests as fast as possible4) Single digit latencies where it matters
2
AmazonDynamoDB
Amazon DynamoDBA fast and flexible NoSQL database
service
Consistent, single-digit millisecond
latency at any scale
Fully managed
Supports both document & key-value
store models
aws.amazon.com/dynamodb
Service requests as fast as possible4) Single digit latencies where it matters
2
aws.amazon.com/solutions/case-studies/adroll/
3 Handle requests at any volume & scale1) Scale up
Basic unit of compute capacity
Broad range of CPU, memory & local disk options
7 families available, from micro to compute, memory & storage
optimized
Scale up with Elastic Compute Cloud (EC2)
3 Handle requests at any volume & scale2) Scale out
Trigger auto-scaling policy
Auto Scaling
Amazon EC2 Auto
ScalingAllows you to scale your EC2 capacity
up or down automatically according to
conditions that you define
Increase the number of Amazon EC2
instances during demand spikes to
maintain performance & decrease
capacity during lulls to reduce costs
3
Manually
Send an API call or use CLI to launch/terminate instances – Only need to specify capacity change
(+/-)
By Schedule
Scale up/down based on date and time
By Policy
Scale in response to changing conditions, based on user
configured real-time monitoring and alerts
Auto-Rebalance
Instances are automatically launched/terminated to ensure
the application is balanced across multiple Azs
Handle requests at any volume & scale2) Scale out
3
Manually
Send an API call or use CLI to launch/terminate instances – Only need to specify capacity change
(+/-)
By Schedule
Scale up/down based on date and time
By Policy
Scale in response to changing conditions, based on user
configured real-time monitoring and alerts
Auto-Rebalance
Instances are automatically launched/terminated to ensure
the application is balanced across multiple Azs
Preemptive manual scaling of capacity
Adding 10 more instances before a marketing event
Handle requests at any volume & scale2) Scale out
3
Manually
Send an API call or use CLI to launch/terminate instances – Only need to specify capacity change
(+/-)
By Schedule
Scale up/down based on date and time
By Policy
Scale in response to changing conditions, based on user
configured real-time monitoring and alerts
Auto-Rebalance
Instances are automatically launched/terminated to ensure
the application is balanced across multiple Azs
Preemptive manual scaling of capacity
Adding 10 more instances before a marketing event
Regular scaling up & down of instances
Scaling from 0 to 2 to process SQS messages every night or doubling
capacity on a Friday night
Handle requests at any volume & scale2) Scale out
3
Manually
Send an API call or use CLI to launch/terminate instances – Only need to specify capacity change
(+/-)
By Schedule
Scale up/down based on date and time
By Policy
Scale in response to changing conditions, based on user
configured real-time monitoring and alerts
Auto-Rebalance
Instances are automatically launched/terminated to ensure
the application is balanced across multiple Azs
Preemptive manual scaling of capacity
Adding 10 more instances before a marketing event
Regular scaling up & down of instances
Scaling from 0 to 2 to process SQS messages every night or doubling
capacity on a Friday night
Dynamic scaling based on custom metrics
Scaling on SQS queue depth, average CPU load or ELB latency
Handle requests at any volume & scale2) Scale out
3
Manually
Send an API call or use CLI to launch/terminate instances – Only need to specify capacity change
(+/-)
By Schedule
Scale up/down based on date and time
By Policy
Scale in response to changing conditions, based on user
configured real-time monitoring and alerts
Auto-Rebalance
Instances are automatically launched/terminated to ensure
the application is balanced across multiple Azs
Preemptive manual scaling of capacity
Adding 10 more instances before a marketing event
Regular scaling up & down of instances
Scaling from 0 to 2 to process SQS messages every night or doubling
capacity on a Friday night
Dynamic scaling based on custom metrics
Scaling on SQS queue depth, average CPU load or ELB latency
Maintaining capacity across availability zones
Instance availability is maintained in the event of AZ becoming unavailable
Handle requests at any volume & scale2) Scale out
3 Handle requests at any volume & scale3) Dial up throughout
Elastic Block
Store
Provisioned IOPS up to
20,000 per EBS volume
Predictable performance for
demanding workloads such
as databases
DynamoDB
Provisioned read/write
performance per table
Predictable high performance
scaled via console or API
https://aws.amazon.com/blogs/aws/auto-scale-
dynamodb-with-dynamic-dynamodb/
Simply your architecture with services4
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take
away
Antoine de Saint-ExuperyFrench writer (1900 - 1944)
4
YourBusiness
70%Infrastructu
rethat you own &
operate
30%
Managing All of the “Undifferentiated Heavy Lifting”
Simply your architecture with services
4
YourBusiness
70%Infrastructu
rethat you own &
operate
30%
Managing All of the “Undifferentiated Heavy Lifting”
AWSCloud-BasedInfrastructure
More Time to Focus onYour Business
Configuring Your Cloud Services
30%70%
Simply your architecture with services
4 Simply your architecture with services
Relational Database
ServiceDatabase-as-a-Service
No need to install or manage database
instances
Scalable and fault tolerant configurations
DynamoDBProvisioned throughput NoSQL
database
Fast, predictable performance
Fully distributed, fault tolerant
architecture
Use RDS for relational databases such as
MySQL or Oracle
Use DynamoDB as high performance document or key-
value database
4 Simply your architecture with services
Amazon SQSReliable, highly scalable, queue
service for storing messages as
they travel between instances
Reliable message queuing without
additional software
Elastic MapReduceElastic Hadoop cluster
Integrates with S3 & DynamoDB
Leverage Hive & Pig analytics
scripts
Integrates with instance types
such as spot
Process large volumes of data cost effectively with
Amazon EMR
Amazon SQS
Processing
task/processing trigger
Processing results
4 Simply your architecture with services
Enterprise Applications
Administration & Security
Core Services
Platform Services
Infrastructure
AWS Marketplace
5
Access everything via CLI, API or Console
Achieve the highest levels of automation with ease
Find out more at: aws.amazon.com/developers/getting-started/
Automate operations & management1) Everything is programmable
5 Automate operations & management2) Think immutable, one click-deployments
AWS CloudFormationAn easy way to create & manage a collection
of related AWS resources, called a ‘stack’
Automate creation of ‘stacks’ in a repeatable
way
Version control your infrastructure as you do
your software
Feature Details
Platform support Support for AWS resources from EC2 to IAM
Resource creation Creates AWS resources behind the scenes and reports on progress
Declarative Specify stacks in JSON format and source control your environments
Customizable Drive stack creation with paramaters
5 Automate operations & management2) Think immutable, one click-deployments
Launch and terminate Docker containers
Across a cluster of EC2 instances
Mount persistent volumes at launch
Private Docker repositories
Amazon EC2 Container Service
5 Automate operations & management2) Think immutable, one click-deployments
Amazon EC2 Container Service
5 Automate operations & management3) Design for availability, implement self healing
Customize instance startup
Get instances to ask ‘who am I?’ question on startup and be
configured dynamically upon being answered
Maintain capacity of instances
Using a minimum pool size will maintain capacity
in the event of instance failures
Know what’s going on, take automated actions
Use CloudWatch standard and custom metrics to create
alarms.
Respond with automated administration actions
Bootstrapping Auto-scaling CloudWatch
5 Automate operations & management3) Design for availability, implement self healing
https://github.com/Netflix/SimianArmy
6 Use the unique properties of the cloud1) Optimize costs with different instance types
Choose an instance that best meets your basic
requirements
Start with memory & then choose closest virtual cores
Assess peak IOPS storage requirements
Deploy & run multiple instances in multiple
Availability Zones
Change instance size up or down based upon
monitoring
Use CloudWatch & Trusted Advisor to assess
Start Deploy & ScaleTune
6 Use the unique properties of the cloud1) Optimize costs with different instance types
00:00 01:00 02:00 03:00 04:00 05:00 06:00 07:00 08:00 09:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 22:00 23:00
100%
75%
58%
38%
13%
8%On Demand Instance
Reserved Instance
COMMON PATTERNS FORWEB APPLICATIONS
StatelessScale horizontallyLoose couplingAutomation
RESOURCES YOU CAN USETO LEARN MORE
aws.amazon.com/websites/
aws.amazon.com/solutions/case-studies/
aws.amazon.com/architecture/
Certification
aws.amazon.com/certification
Self-Paced Labs
aws.amazon.com/training/self-paced-labs
Try products, gain new skills, and get hands-on practice
working with AWS technologies
aws.amazon.com/training
Training
Validate your proven skills and expertise with the AWS platform
Build technical expertise to design and operate scalable, efficient applications on AWS
AWS Training & Certification
@AWScloud for Global AWS News & Announcements
@AWS_Aktuell for local AWS events & news
@markbateMark Bate — Solutions Architect