fault tolerant applications on aws

Post on 13-Jan-2015

670 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Building Fault-Tolerant

Applications in the Cloud

Ryan Holland

Ecosystem Solution Architect

Faults? Facilities

Hardware

Networking

Code

People

What is “Fault-Tolerant”?

Degrees of risk mitigation - not binary

Automated

Tested!

Agenda

The AWS Approach

Building Blocks

Design Patterns

Old School Fault-Tolerance: Build Two

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

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

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

Old Barriers to HA

are now Surmountable

Cost

Complexity

Expertise

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

The Stack:

Resources

Deployment

Management

Configuration

Networking

Facilities

Geographies

The Stack:

EC2 Instances

Amazon Machine Images

CW Alarms - AutoScaling

Cloudformation - Beanstalk

Route53 – ElasticIP – ELB

Availability Zones

Regions

Regional Diversity

Use Regions for:

Latency

• Customers

• Data Vendors

• Staff

Compliance

Disaster Recovery

… and Fault Tolerance!

Proper Use of Multiple Availability Zones

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

New EC2 VPC feature:

Elastic Network Interface

Up to 8 Interfaces

with 30 Addresses

each

Span Subnets

Attach/Detach

Public or Private

Cloudformation – Elastic Beanstalk

Q: Is your stack unique?

Cloudwatch – Alarms – AutoScaling

AMI’s

Maintenance is critical

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

When in doubt: 64-bit

Replicate for DR

EC2 Instances

Consistent, reliable building block

100% API controlled

Reserved Instances

EBS

Immense Fleet Scale

Example:

a “fork-lifted” app

Example:

Fault-Tolerant

Why mess with all of that?

Design For Failure

SPOF

Build Loosely Coupled Systems

Tight

Coupling

Loose Coupling

using Queues

Copyright ©

2011 Amazon

Web Services

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

Fault-Tolerant Data-Tier Systems

Tuned

Patched

Cached

Sharded

Replicated

Backed Up

Archived

Monitored

Fault-Tolerant Data-Tier Systems

Tuned

Patched

Cached

Sharded

Replicated

Backed Up

Archived

Monitored

LOTS

OF

WORK

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

RDS Fault-Tolerant Features

Multi-AZ Deployments

Read Replicas

Automated Backups

Snapshots

RDS DB Instance RDS DB Instance

Multi-AZ Standby

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

Thank You!

top related