fault tolerant applications on aws

33
Building Fault-Tolerant Applications in the Cloud Ryan Holland Ecosystem Solution Architect

Upload: amazon-web-services-latin-america

Post on 13-Jan-2015

670 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Fault Tolerant Applications on AWS

Building Fault-Tolerant

Applications in the Cloud

Ryan Holland

Ecosystem Solution Architect

Page 2: Fault Tolerant Applications on AWS

Faults? Facilities

Hardware

Networking

Code

People

Page 3: Fault Tolerant Applications on AWS

What is “Fault-Tolerant”?

Degrees of risk mitigation - not binary

Automated

Tested!

Page 4: Fault Tolerant Applications on AWS

Agenda

The AWS Approach

Building Blocks

Design Patterns

Page 5: Fault Tolerant Applications on AWS

Old School Fault-Tolerance: Build Two

Page 6: Fault Tolerant Applications on AWS

No Up-Front

Capital Expense

Pay Only for

What You Use

Self-Service

Infrastructure Easily Scale

Up and Down

Improve Agility &

Time-to-Market

Low Cost

Cloud Computing Benefits

Deploy

Page 7: Fault Tolerant Applications on AWS

No Up-Front HA

Capital Expense

Pay for DR Only

When You Use it

Self-Service

DR Infrastructure Easily Deliver Fault-

Tolerant Applications

Improve Agility &

Time-to-Recovery

Low Cost

Backups

Cloud Computing Fault-Tolerance Benefits

Deploy

Page 8: Fault Tolerant Applications on AWS

AWS Cloud allows Overcast Redundancy

Have the shadow

duplicate of your

infrastructure ready to go

when you need it…

…but only pay for what

you actually use

Page 9: Fault Tolerant Applications on AWS

Old Barriers to HA

are now Surmountable

Cost

Complexity

Expertise

Page 10: Fault Tolerant Applications on AWS

AWS Building Blocks: Two Strategies

Inherently fault-

tolerant services Services that are fault-tolerant

with the right architecture

S3

SimpleDb

DynamoDB

Cloudfront

SWF, SQS, SNS, SES

Route53

Elastic Load Balancer

Elastic Beanstalk

ElastiCache

Elastic MapReduce

IAM

Amazon EC2

VPC

EBS

RDS

Page 11: Fault Tolerant Applications on AWS

The Stack:

Resources

Deployment

Management

Configuration

Networking

Facilities

Geographies

Page 12: Fault Tolerant Applications on AWS

The Stack:

EC2 Instances

Amazon Machine Images

CW Alarms - AutoScaling

Cloudformation - Beanstalk

Route53 – ElasticIP – ELB

Availability Zones

Regions

Page 13: Fault Tolerant Applications on AWS

Regional Diversity

Use Regions for:

Latency

• Customers

• Data Vendors

• Staff

Compliance

Disaster Recovery

… and Fault Tolerance!

Page 14: Fault Tolerant Applications on AWS

Proper Use of Multiple Availability Zones

Page 15: Fault Tolerant Applications on AWS

107.22.18.45 isn’t fault-tolerant but 50.17.200.146 is: EIP

Elastic Load Balancing

Automated DNS: Route53

Latency-Based Routing

Network Fault-Tolerance Tools

Page 16: Fault Tolerant Applications on AWS

New EC2 VPC feature:

Elastic Network Interface

Up to 8 Interfaces

with 30 Addresses

each

Span Subnets

Attach/Detach

Public or Private

Page 17: Fault Tolerant Applications on AWS

Cloudformation – Elastic Beanstalk

Q: Is your stack unique?

Page 18: Fault Tolerant Applications on AWS

Cloudwatch – Alarms – AutoScaling

Page 19: Fault Tolerant Applications on AWS

AMI’s

Maintenance is critical

Alternatives: Chef, Puppet, cfn-init, etc.

When in doubt: 64-bit

Replicate for DR

Page 20: Fault Tolerant Applications on AWS

EC2 Instances

Consistent, reliable building block

100% API controlled

Reserved Instances

EBS

Immense Fleet Scale

Page 21: Fault Tolerant Applications on AWS

Example:

a “fork-lifted” app

Page 22: Fault Tolerant Applications on AWS

Example:

Fault-Tolerant

Page 23: Fault Tolerant Applications on AWS

Why mess with all of that?

Page 24: Fault Tolerant Applications on AWS

Design For Failure

SPOF

Page 25: Fault Tolerant Applications on AWS

Build Loosely Coupled Systems

Tight

Coupling

Loose Coupling

using Queues

Copyright ©

2011 Amazon

Web Services

Page 26: Fault Tolerant Applications on AWS

Fault-Tolerant Front-end Systems

Addressing: Route53, EIP

Distribution: Multi-AZ, ELB, Cloudfront

Redundancy: Auto-Scaling

Monitoring: Cloudwatch

Platform: Elastic Beanstalk

Amazon CloudFront

Amazon CloudWatch

Auto Scaling

Amazon Route

53

Elastic Load

Balancer

AWS Elastic

Beanstalk

Elastic IP

Page 27: Fault Tolerant Applications on AWS

Fault-Tolerant Data-Tier Systems

Tuned

Patched

Cached

Sharded

Replicated

Backed Up

Archived

Monitored

Page 28: Fault Tolerant Applications on AWS

Fault-Tolerant Data-Tier Systems

Tuned

Patched

Cached

Sharded

Replicated

Backed Up

Archived

Monitored

LOTS

OF

WORK

Page 29: Fault Tolerant Applications on AWS

AWS Fault-Tolerant Data-Tier Services

S3

SimpleDB

EMR

DynamoDB

RDS

Amazon Elastic

MapReduce

Amazon Simple

Storage Service

(S3)

Amazon Relational

Database Service

(RDS)

Amazon SimpleDB

Amazon DynamoDB

Amazon

ElastiCache

Page 30: Fault Tolerant Applications on AWS

RDS Fault-Tolerant Features

Multi-AZ Deployments

Read Replicas

Automated Backups

Snapshots

RDS DB Instance RDS DB Instance

Multi-AZ Standby

Page 31: Fault Tolerant Applications on AWS

Storage Gateway Your Datacenter

Amazon Elastic Block Storage

(EBS)

Amazon Elastic Compute Cloud

(EC2)

Amazon Simple Storage Service (S3)

Clients

On-premises Host

AWS Storage Gateway

VM

Direct Attached or Storage Area Network Disks

SSL

Internet or

Direct Connect

AWS Storage

Gateway Service

Application Servers

Page 33: Fault Tolerant Applications on AWS

Thank You!