Top Banner
Architecture Best Practices Steffen Krause/Constantin Gonzalez Technical Evangelist/Solution Architect @sk_bln/@zalez skrause@ amazon.de /[email protected]
58
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Architecture Best Practices

Architecture Best Practices

Steffen Krause/Constantin GonzalezTechnical Evangelist/Solution Architect

@sk_bln/@[email protected]/[email protected]

Page 2: Architecture Best Practices

What users want…

Page 3: Architecture Best Practices

What users want…

Fast!

Page 4: Architecture Best Practices

What users want…

Fast!Always

on!

Page 5: Architecture Best Practices

What users want…

Fast!Always

on!

Features!

Page 6: Architecture Best Practices

What users want…

Fast!Always

on!

Features!

Personal!

Page 7: Architecture Best Practices

How?

Page 8: Architecture Best Practices

Building powerful web applications

Page 9: Architecture Best Practices

Rule 2: Service requests as fast as possible

Rule 1: Service all web requests

Rule 3: Handle requests at any scale

Rule 4: Simplify architecture with services

Rule 5: Automate operational management

Rule 6: Leverage unique cloud properties

Page 10: Architecture Best Practices

AWS Global Infrastructure

9 Regions

25 Availability Zones

Continuous Expansion

Page 11: Architecture Best Practices

DNS Application DataRequest

a) Make sure requests get to your ‘front door’

Rule 1: Service all web requests

Page 12: Architecture Best Practices

DNS Application DataRequest

…then this is irrelevant

Clients can’t resolve you?

Rule 1: Service all web requestsa) Make sure requests get to your ‘front door’

Page 13: Architecture Best Practices

DNS Application DataRequest

“100% Available”

SLA

Rule 1: Service all web requests

Route53

Feature Details

Global Supported 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 load balancers, S3 and EC2

Secure Integrates with IAM giving fine grained control over DNS record access

http://aws.amazon.com/route53/sla

a) Make sure requests get to your ‘front door’

Page 14: Architecture Best Practices

Region

DNS Application DataRequest

Rule 1: Service all web requests

Elastic Load

Balancer Region

Availability Zone

Availability Zone

Availability Zone

Availability Zone

Route53

a) Make sure requests get to your ‘front door’b) Make sure you open the door when they arrive

Elastic load balancingMulti-availability zoneMulti-region

Page 15: Architecture Best Practices

Region

Rule 1: Service all web requests

DNS Application DataRequest

Elastic Load

Balancer

Route53

Region

Availability Zone

Availability Zone

Availability Zone

Availability Zone

a) Make sure requests get to your ‘front door’b) Make sure you open the door when they arrivec) Have the data to form a response

RDS

Multi-AZ

Master-slave

Read-replicas

Page 16: Architecture Best Practices

Rule 2: Service requests as fast as possible

Rule 1: Service all web requests

Rule 3: Handle requests at any scale

Rule 4: Simplify architecture with services

Rule 5: Automate operational management

Rule 6: Leverage unique cloud properties

Page 17: Architecture Best Practices

Rule 2: Service requests as fast as possiblea) Choose the fastest route

Region A

Route53

Region B

Request

Page 18: Architecture Best Practices

Rule 2: Service requests as fast as possiblea) Choose the fastest route

Region A

Route53

Region B

16ms 92ms

Request

Page 19: Architecture Best Practices

Rule 2: Service requests as fast as possible

Region A

Route53

Region B

16ms

RequestRegion A DNS entry

a) Choose the fastest route

Page 20: Architecture Best Practices

Rule 2: Service requests as fast as possiblea) Choose the fastest routeb) Offload your application servers

London

Paris

NY

Served from S3/images/*

3

Served from EC2*.php

2

Single CNAMEwww.mysite.com

1

CloudFrontWorld-wide content distribution network

Easily distribute content to end users with low

latency, high data transfer speeds, and no

commitments.

Page 21: Architecture Best Practices

Rule 2: Service requests as fast as possiblea) Choose the fastest routeb) Offload your application serversc) Cache it if you can

ElastiCacheMemcached compatible caching

Serve frequently requested & slow

changing data from scalable cache

clusters

Reduce load on database and other

servers

Page 22: Architecture Best Practices

Rule 2: Service requests as fast as possiblea) Choose the fastest routeb) Offload your application serversc) Cache it if you cand) Single digit latencies where it matters

ScaleDat

abas

e Q

uery

Per

form

ance

Desired consistency, predictability

Actual degraded

performance with scale

Page 23: Architecture Best Practices

Rule 2: Service requests as fast as possiblea) Choose the fastest routeb) Offload your application serversc) Cache it if you cand) Single digit latencies where it matters

ScaleDat

abas

e Q

uery

Per

form

ance

Desired consistency, predictability

Actual degraded

performance with scale

Management problems

Data shardingData cachingProvisioning

Cluster managementFault management

Page 24: Architecture Best Practices

Rule 2: Service requests as fast as possiblea) Choose the fastest routeb) Offload your application serversc) Cache it if you cand) Single digit latencies where it matters

ScaleDat

abas

e Q

uery

Per

form

ance

Dynamo DB Query Performance

DynamoDB

Low latencyLarge scaleZero admin

Predictable performanceAverage single-digit milliseconds server side latencies

Runs on solid state drives, and is built to maintain consistent, fast latencies at any scale

Page 25: Architecture Best Practices

Rule 2: Service requests as fast as possible

Rule 1: Service all web requests

Rule 3: Handle requests at any scale

Rule 4: Simplify architecture with services

Rule 5: Automate operational management

Rule 6: Leverage unique cloud properties

Page 26: Architecture Best Practices

Rule 3: Handle requests at any scalea) Scale up

Vertical ScalingFrom $0.02/hr

Basic unit of compute capacity

Range of CPU, memory & local disk options

18 Instance types available, from micro through cluster

compute to SSD backed

Scale up with Elastic Compute Cloud (EC2)

Page 27: Architecture Best Practices

Rule 3: Handle requests at any scalea) Scale upb) Scale out

Trigger auto-scaling policy

as-create-auto-scaling-group MyGroup --launch-configuration MyConfig--availability-zones eu-west-1a--min-size 4--max-size 200

Auto-scalingAutomatic re-sizing of compute clusters based upon demand

Page 28: Architecture Best Practices

ManuallySend an API call or use CLI to

launch/terminate instances – Only need to specify capacity change (+/-)

By ScheduleScale up/down based on date and timePreemptive manual

scaling of capacitye.g. before a marketing event add 10 more

instances

Regular scaling up and down of instances

e.g. scale from 0 to 2 for batch processing every night or double capacity on Fridays

a) Scale upb) Scale out

By PolicyScale in response to changing conditions,

based on user configured real-time monitoring and alerts

Auto-RebalanceInstances are automatically

launched/terminated to ensure the application is balanced across multiple

Azs

Rule 3: Handle requests at any scale

Dynamic scale based upon custom metrics

e.g. SQS queue depth, Average CPU load, ELB latency

Maintain capacity across availability zones

e.g. Instance availability maintained in event of AZ becoming unavailable

Page 29: Architecture Best Practices

Rule 3: Handle requests at any scalea) Scale upb) Scale outc) Dial it up

Elastic Block StoreProvisioned IOPS up to 4000 per EBS

volume

Predictable performance for

demanding workloads such as

databases

DynamoDBProvisioned read/write performance per

table

Predictable high performance scaled via

console or API

Page 30: Architecture Best Practices

Case Study

“AWS gave us the flexibility to bring a massive amount of capacity online in a short period of

time and allowed us to do so in an operationally straightforward way.

AWS is now Shazam’s cloud provider of choice,”

Jason Titus,CTO

DynamoDB: over 500,000 writes per

second

Amazon EMR:more than 1 million writes

per second

Page 31: Architecture Best Practices

Rule 2: Service requests as fast as possible

Rule 1: Service all web requests

Rule 3: Handle requests at any scale

Rule 4: Simplify architecture with services

Rule 5: Automate operational management

Rule 6: Leverage unique cloud properties

Page 32: Architecture Best Practices

YourBusiness

70%

On-PremiseInfrastructure

30%

Managing All of the “Undifferentiated Heavy Lifting”

Rule 4: Simplify architecture with services

Page 33: Architecture Best Practices

AWSCloud-Based

Infrastructure

YourBusiness

More Time to Focus onYour Business

Configuring Your Cloud Assets

70%

30%70%

On-PremiseInfrastructure

30%

Managing All of the “Undifferentiated Heavy Lifting”

Rule 4: Simplify architecture with services

Page 34: Architecture Best Practices

Rule 4: Simplify architecture with services

Data Centers

Power

Cooling

Cabling

Networking

Racks

Servers

Storage

Labor

Buy and install new hardware

Setup and configure new software

build or upgrade data centers

We take care of it… So you don’t have to …

Page 35: Architecture Best Practices

Shared Responsibility for Security & Compliance

Facilities

Physical Security

Compute Infrastructure

Storage Infrastructure

Network Infrastructure

Virtualization Layer

Operating System

Applications

Security Groups

Firewalls

Network Configuration

Account Management

+ =

Customer

Page 36: Architecture Best Practices

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 databases

Use DynamoDB for high performance key-

value DB

Rule 4: Simplify architecture with services

Page 37: Architecture Best Practices

Amazon SQS

Processing

task/processing

trigger

Processing results

Amazon SQSReliable, highly scalable, queue service

for storing messages as they travel

between instances

Task A

Task B

(Auto-scaling)

Task C

2

3

1

Simple WorkflowReliably coordinate processing steps

across applications

Integrate AWS and non-AWS resources

Manage distributed state in complex

systems

Push inter-process workflows into the cloud with SWF

Reliable message queuing without

additional software

Rule 4: Simplify architecture with services

Page 38: Architecture Best Practices

Cloud SearchElastic search engine based upon

Amazon A9 search engine

Fully managed service with

sophisticated feature set

Scales automatically

DocumentServer

Results

SearchServer

Don’t install search software, use CloudSearch

Process large volumes of data cost effectively

with EMR

Elastic MapReduceElastic Hadoop cluster

Integrates with S3 & DynamoDB

Leverage Hive & Pig analytics scripts

Integrates with instance types such as

spot

Rule 4: Simplify architecture with services

Page 39: Architecture Best Practices

“Amazon CloudSearch is a game-changing product that has allowed us to deliver powerful

new search capabilities. Our customers can now find what they are looking for faster and more

easily than ever before…

….We saved many months of re-architecture and development time by going with Amazon

CloudSearch”

Don MacAskillCEO & Chief Geek

SmugMug

Case Study

Page 40: Architecture Best Practices

Rule 2: Service requests as fast as possible

Rule 1: Service all web requests

Rule 3: Handle requests at any scale

Rule 4: Simplify architecture with services

Rule 5: Automate operational management

Rule 6: Leverage unique cloud properties

Page 41: Architecture Best Practices

Compute

Storage

Security Scaling

Database

NetworkingMonitoring

Messaging

Workflow

DNSLoad Balancing

BackupCDN

API

Rule 5: Automate operational managementa) Everything is programmable

Access everything via CLI, API or

Console

Achieve the highest levels of automation

sophistication with ease

Page 42: Architecture Best Practices

Rule 5: Automate operational managementa) Everything is programmableb) Think disposable, one click deployments

AWS Elastic Beanstalk

Automate resource management

AWS CloudFormation

Templates to deploy & manage

Web App

Enterprise

App

Database

AWS OpsWorks

Dev-Ops framework for application lifecycle

management

Page 43: Architecture Best Practices

Rule 5: Automate operational managementa) Everything is programmableb) Think disposable, one click deploymentsc) Design for failure, 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 Cloud Watch

Page 44: Architecture Best Practices

Rule 5: Automate operational managementa) Everything is programmableb) Think disposable, one click deploymentsc) Design for failure, implement self healing

Page 45: Architecture Best Practices

Rule 2: Service requests as fast as possible

Rule 1: Service all web requests

Rule 3: Handle requests at any scale

Rule 4: Simplify architecture with services

Rule 5: Automate operational management

Rule 6: Leverage unique cloud properties

Page 46: Architecture Best Practices

Small 1.7 GB, 1 ECU1 virtual core

Large 7.5 GB4 ECUs2 virtual cores

Extra Large 15 GB 8 ECUs4 virtual cores

Hi-Mem XL 17.1 GB6.5 ECUs2 virtual cores

Hi-Mem 2XL 34.2 GB13 ECUs4 virtual cores

Hi-Mem 4XL 68.4 GB26 ECUs8 virtual cores

High-CPU Med 1.7 GB 5 ECUs 2 virtual cores

High-CPU XL 7 GB 20 ECUs8 virtual cores

Micro 613 MB Up to 2 ECUs (for short bursts)

Cluster GPU 4XL 22 GB 33.5 ECUs8 Nehalem virtual cores 2 x NVIDIA Tesla “Fermi” M2050 GPUs

Cluster Compute 4XL 23 GB 33.5 ECUs 8 Nehalem virtual cores

Cluster Compute 8XL 60.5 GB 88 ECUs 8 core 2 x Intel Xeon

Medium 3.75 GB2 ECUs1 virtual cores

Rule 6: Leverage unique cloud propertiesa) Optimize costs with instance types

Page 47: Architecture Best Practices

Unix/Linux instances start at $0.02/hour

Pay as you go for compute power

Low cost and flexibility

Pay only for what you use, no up-front commitments or long-term contracts

Use Cases:

Applications with short term, spiky, or unpredictable workloads;

Application development or testing

On-demand instances

1- or 3-year terms

Pay low up-front fee, receive significant hourly discount

Low Cost / Predictability

Helps ensure compute capacity is available when needed

Use Cases:

Applications with steady state or predictable usage

Applications that require reserved capacity, including disaster recovery

Reserved instances

Bid on unused EC2 capacity

Spot Price based on supply/demand, determined automatically

Cost / Large Scale, dynamic workload handling

Use Cases:

Applications with flexible start and end times

Applications only feasible at very low compute prices

Spot instances

Rule 6: Leverage unique cloud propertiesa) Optimize costs with instance types

Page 48: Architecture Best Practices

a) Optimize costs with instance typesb) Get insight fast with Elastic MapReduce

Rule 6: Leverage unique cloud properties

Elastic MapReduceManaged, elastic Hadoop cluster

Integrates with S3 & DynamoDB

Leverage Hive & Pig analytics scripts

Integrates with instance types such as spot

Feature Details

Scalable Use as many or as few compute instances running Hadoop as you want. Modify the number of instances while your job flow is running

Integrated with other services

Works seamlessly with S3 as origin and output. Integrates with DynamoDB

Comprehensive Supports languages such as Hive and Pig for defining analytics, and allows complex definitions in Cascading, Java, Ruby, Perl, Python, PHP, R, or C++

Cost effective Works with Spot instance types

Monitoring Monitor job flows from with the management console

Page 49: Architecture Best Practices

Cluster compute instancesImplement HVM process execution

Intel® Xeon® E5-2670 processors

10 Gigabit Ethernet

Cluster Compute

80 EC2 Compute Units

60GB RAM

3TB LocalDisk

Network placement groupsCluster instances deployed in a ‘Placement Group’ enjoy low

latency, full bisection 10 Gbps bandwidth

10Gbps

Rule 6: Leverage unique cloud propertiesa) Optimize costs with instance typesb) Get insight fast with Elastic MapReducec) Create a supercomputer backend when you need it

Page 50: Architecture Best Practices

Rule 2: Service requests as fast as possible

Rule 1: Service all web requests

Rule 3: Handle requests at any scale

Rule 4: Simplify architecture with services

Rule 5: Automate operational management

Rule 6: Leverage unique cloud properties

Page 51: Architecture Best Practices

Use AWS for…

Fast!Always

on!

Features!

Personal!

Page 52: Architecture Best Practices

Use AWS for…

Elastic capacity

Alwayson!

Features!

Personal!

Page 53: Architecture Best Practices

Use AWS for…

Elastic capacity

Highly available, global

coverage

Features!

Personal!

✔ ✔

Page 54: Architecture Best Practices

Use AWS for…

Elastic capacity

Highly available, global

coverage

Agility & automated

ops

Personal!

✔ ✔

Page 55: Architecture Best Practices

Use AWS for…

Elastic capacity

Highly available, global

coverage

Agility & automated

ops

Storage,Big Data, Analytics

✔ ✔

✔ ✔

Page 56: Architecture Best Practices

• http://aws.amazon.com/de/free/ • Für neue AWS Kunden• Bis zu 12 Monate kostenlose Nutzung für viele AWS Dienste• Kreditkarte für Anmeldung erforderlich

– Aber keine Abbuchungen, so lange Sie im „Free Tier“ bleiben

Testen Sie - kostenlos

Page 57: Architecture Best Practices

• http://aws.amazon.com/de • 25 US$ credits für neue Kunden:

http://aws.amazon.com/de/campaigns/account/• Twitter: @AWS_Aktuell• Facebook:

http://www.facebook.com/awsaktuell • Webinare: http://aws.amazon.com/de/about-aws/events/• Slides: http://de.slideshare.net/AWSAktuell

Ressourcen

Page 58: Architecture Best Practices

Vielen Dank!

Steffen Krause@AWS_Aktuell

[email protected]