63
Lets talk about @markbate Mark Bate — Solutions Architect Websites on AWS

Websites on AWS

Embed Size (px)

Citation preview

Page 1: Websites on AWS

Lets talk about

@markbate

Mark Bate — Solutions Architect

Websites on AWS

Page 2: 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

Page 3: Websites on AWS

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

Page 4: Websites on AWS

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

Page 5: Websites on AWS

WHY AWS FOR SCALABLEWEB APPLICATIONS?

Page 6: Websites on AWS

Websites & Digital Transformation

Page 7: Websites on AWS

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/

Page 8: Websites on AWS

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

Page 9: Websites on AWS

RULE BOOK FOR SCALABLE WEBAPPLICATIONS ON AWS

Page 10: Websites 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

Page 11: Websites on AWS

Service all requests1

DNS APPLICATION DATA

Page 12: Websites on AWS

Service all requests1

DNS APPLICATION DATAREQUEST

Page 13: Websites on AWS

Service all requests1

DNS APPLICATION DATAREQUEST

Page 14: Websites on AWS

Service all requests1

DNS APPLICATION DATAREQUEST ╳

Page 15: Websites on AWS

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

Page 16: Websites on AWS

Service all requests1

DNS APPLICATION DATAREQUEST

Page 17: Websites on AWS

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

Page 18: Websites on AWS

1

DNS APPLICATION DATAREQUESTRegion

Region

ElasticLoad

Balancer

ElasticLoad

BalancerAvailability Zone

Availability Zone

Availability Zone

Availability Zone

AmazonDynamoDB

AmazonDynamoDB

Service all requests

Page 19: Websites on AWS

Service requests as fast as possible2

Page 20: Websites on AWS

Service requests as fast as possible1) Chose the ‘closest’ endpoint

2

REQUEST AmazonRoute 53

Region A Region B

Page 21: Websites on AWS

2

REQUEST AmazonRoute 53

Region A Region B

16ms 92ms

Service requests as fast as possible1) Chose the ‘closest’ endpoint

Page 22: Websites on AWS

2

REQUEST AmazonRoute 53

Region A Region B

16ms 92ms

Service requests as fast as possible1) Chose the ‘closest’ endpoint

Page 23: Websites on AWS

2

AmazonRoute 53

Region A Region B

16ms

REGION A DNS ENTRY

REQUEST

Service requests as fast as possible1) Chose the ‘closest’ endpoint

Page 24: Websites on AWS

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

Page 25: Websites on AWS

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

Page 26: Websites on AWS

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

Page 27: Websites on AWS

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

Page 28: Websites on AWS

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

Page 29: Websites on AWS

Service requests as fast as possible4) Single digit latencies where it matters

2D

ata

base

Query

Perf

orm

an

ce

Desired consistency & predictability

Scale

Page 30: Websites on AWS

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

Page 31: Websites on AWS

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

Page 32: Websites on AWS

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

Page 33: Websites on AWS

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/

Page 34: Websites on AWS

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)

Page 35: Websites on AWS

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

Page 36: Websites on AWS

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

Page 37: Websites on AWS

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

Page 38: Websites on AWS

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

Page 39: Websites on AWS

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

Page 40: Websites on AWS

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

Page 41: Websites on AWS

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/

Page 42: Websites on AWS

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)

Page 43: Websites on AWS

4

YourBusiness

70%Infrastructu

rethat you own &

operate

30%

Managing All of the “Undifferentiated Heavy Lifting”

Simply your architecture with services

Page 44: Websites on AWS

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

Page 45: Websites on AWS

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

Page 46: Websites on AWS

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

Page 47: Websites on AWS

4 Simply your architecture with services

Enterprise Applications

Administration & Security

Core Services

Platform Services

Infrastructure

AWS Marketplace

Page 48: Websites on AWS

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

Page 49: Websites on AWS

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

Page 50: Websites on AWS

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

Page 51: Websites on AWS

5 Automate operations & management2) Think immutable, one click-deployments

Amazon EC2 Container Service

Page 52: Websites on AWS

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

Page 53: Websites on AWS

5 Automate operations & management3) Design for availability, implement self healing

https://github.com/Netflix/SimianArmy

Page 54: Websites on AWS

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

Page 55: Websites on AWS

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

Page 56: Websites on AWS

COMMON PATTERNS FORWEB APPLICATIONS

Page 57: Websites on AWS

StatelessScale horizontallyLoose couplingAutomation

Page 58: Websites on AWS

RESOURCES YOU CAN USETO LEARN MORE

Page 59: Websites on AWS

aws.amazon.com/websites/

Page 60: Websites on AWS

aws.amazon.com/solutions/case-studies/

Page 61: Websites on AWS

aws.amazon.com/architecture/

Page 62: Websites on AWS

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

Page 63: Websites on AWS

@AWScloud for Global AWS News & Announcements

@AWS_Aktuell for local AWS events & news

@markbateMark Bate — Solutions Architect