AWS Summit Tel Aviv - Startup Track - Backend Use Cases

87
AWS Summit 2013 Tel Aviv Oct 16 Tel Aviv, Israel Carlos Conde Sr. Mgr. Solutions Architecture Thomas Metschke Technical Program Manager AWS OpsWorks BACK-END USE CASES

Transcript of AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Page 1: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AWS Summit 2013 Tel Aviv Oct 16 – Tel Aviv, Israel

Carlos Conde – Sr. Mgr. Solutions Architecture

Thomas Metschke – Technical Program Manager AWS OpsWorks

BACK-END USE CASES

Page 2: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

PRESENTATION

TIER (FRONT-END)

APPLICATION

TIER (BACK-END)

INFORMATION

TIER (DATABASES)

Page 3: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

PRESENTATION

TIER (FRONT-END)

APPLICATION

TIER (BACK-END)

INFORMATION

TIER (DATABASES)

Page 4: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 5: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 6: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

CONTENT DELIVERY

NETWORK

AMAZON

CLOUDFRONT

Page 7: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

WEB APPLICATION

FRONT-END AWS ELASTIC

BEANSTALK

Page 8: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AMAZON

DYNAMODB

DATA STORE

Page 9: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 10: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AMAZON S3

VIDEO FILES

STORE

Page 11: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 12: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

#1WORKFLOW

Page 13: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

SPAM?

CHECK

VIDEO

TOO

LONG?

CROP

VIDEO

NO

YES NO

YES

TRANSCODE

SPAM

CHECK

START

INDEX

& NOTIFY

STOP REJECT

Page 14: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

SPAM?

CHECK

VIDEO

TOO

LONG?

CROP

VIDEO

NO

YES NO

YES

TRANSCODE

SPAM

CHECK

START

INDEX

& NOTIFY

STOP REJECT

Page 15: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

SPAM?

CHECK

VIDEO

TOO

LONG?

CROP

VIDEO

NO

YES NO

YES

TRANSCODE

SPAM

CHECK

START

INDEX

& NOTIFY

STOP REJECT

Page 16: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

TASKS

DECISIONS

HISTORY

Page 17: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

TASKS

DECISIONS

HISTORY

STATELESS !

Page 18: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

STATELESS SCALES

HORIZONTALLY

Page 19: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AMAZON SWF ENABLES RESILIENT, SCALABLE,

DISTRIBUTED WORKFLOWS

Page 20: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AMAZON SWF

SERVICE

SWF DECIDER

SWF WORKER

Page 21: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

DECIDERS COORDINATION LOGIC

1. Poll for work on a decision list Long polling

2. Evaluate workflow execution history SWF sends full history in JSON format

3. Return decision to Amazon SWF Usually scheduling another task

Page 22: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

WORKERS EXECUTION LOGIC

1. Poll for work on a specific task list Long polling

2. Execute works, send heartbeats SWF sends input data from deciders

3. Return success / failure Detailed data can be provided to deciders

Page 23: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AMAZON SWF TRACKS:

Execution Time to start, time to finish, …

Time to finish for overall workflow

Timeouts controlled for each of these (and more)

Heartbeats for long-running activities (optional)

Decider is informed of timeouts Schedule retries, “mitigation” strategies or cleanup tasks

Page 24: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

NO NEW LANGUAGE

TO LEARN

YOUR CODE IS YOUR WORKFLOW LANGUAGE

AMAZON SWF MAINTAINS STATE

Page 25: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

ALL HORIZONTAL SCALING

PATTERNS APPLY

Page 26: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 27: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 28: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 29: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 30: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 31: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 32: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 33: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 34: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

#2TRANSCODING

Page 35: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AMAZON

ELASTIC TRANSCODER SCALABLE, EASY TO USE AND A COST EFFECTIVE

Page 36: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

SD $0.015 / MINUTE Resolution of less than 720p

HD $0.030 / MINUTE Resolution of more than 720p

Transcode up to 20 minutes of content each month for free.

Page 37: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 38: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AMAZON ELASTIC

TRANSCODER

Page 39: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 40: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 41: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 42: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 43: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

#3SEARCH

Page 44: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AMAZON

CLOUDSEARCH ENABLES RESILIENT, SCALABLE,

DISTRIBUTED WORKFLOWS

Page 45: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

select *

from articles

where content

like ‘%cloud%’

Page 46: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 47: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Relevance &

Ranking

Page 48: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Faceting

Page 49: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Field

Search

Page 50: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Range Search

Page 51: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

+

Page 52: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

search-mydomain.us-east-1.cloudsearch.amazonaws.com

doc-mydomain.us-east-1.cloudsearch.amazonaws.com

Endpoints

Page 53: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

+

HTTP POST author=carlos;

date=2013-02-07;

comment=text;

Page 54: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

SCALABLE SEARCH

Page 55: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Small Instance Partition 1

Copy 1

Time: 1800h

<80% CPU

Elastic Search

Time

Requests

Page 56: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Small Instance Partition 1

Copy 1

Elastic Search

Time

Requests

Small Instance Partition 1

Copy 1

>80% CPU

Small Instance Partition 1

Copy 2

Time: 2000h

Page 57: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Small Instance Partition 1

Copy 1

Elastic Search

Time

Requests

Small Instance Partition 1

Copy 1

>80% CPU

Small Instance Partition 1

Copy 2

Small Instance Partition 1

Copy 3

Small Instance Partition 1

Copy 1

Small Instance Partition 1

Copy 2

Time: 2200h

Page 58: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Small Instance Partition 1

Copy 1

Elastic Search

Time

Requests

Small Instance Partition 1

Copy 1

Small Instance Partition 1

Copy 2

Small Instance Partition 1

Copy 3

Small Instance Partition 1

Copy 1

Small Instance Partition 1

Copy 2 <30% CPU

Small Instance Partition 1

Copy 1

Time: 0000h

Page 59: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Small Instance Partition 1

Copy 1

Cost savings

Elastic Search

Time

Requests

Small Instance Partition 1

Copy 1

Small Instance Partition 1

Copy 2

Small Instance Partition 1

Copy 3

Small Instance Partition 1

Copy 1

Small Instance Partition 1

Copy 2

Small Instance Partition 1

Copy 1

Traditional required capacity

Page 60: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Small Instance Partition 1

Copy 1

Cost savings

Elastic Search

Time

Requests

Small Instance Partition 1

Copy 1

Small Instance Partition 1

Copy 2

Small Instance Partition 1

Copy 3

Small Instance Partition 1

Copy 1

Small Instance Partition 1

Copy 2

Small Instance Partition 1

Copy 1

Traditional required capacity

Elastic Capacity

Page 61: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Small Instance Partition 1

Copy 1

Cost savings

Elastic Search

Time

Requests

Small Instance Partition 1

Copy 1

Small Instance Partition 1

Copy 2

Small Instance Partition 1

Copy 3

Small Instance Partition 1

Copy 1

Small Instance Partition 1

Copy 2

Small Instance Partition 1

Copy 1

Traditional required capacity

Elastic Capacity

Savings Savings

Page 62: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Cloud Search

Search Instance Partition 1

Copy 1

Search Instance Partition 1

Copy 2

Search Instance Partition 1

Copy n

Traffic Request

volume & complexity

Page 63: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Data Document quantity & size

Search Instance Partition 1

Copy 1

Search Instance Partition 2

Copy 1

Search Instance Partition n

Copy 1

Cloud Search

Page 64: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

Search Instance Partition 1

Copy 1

Search Instance Partition 2

Copy 1

Search Instance Partition n

Copy 1

Search Instance Partition 1

Copy 2

Search Instance Partition 2

Copy 2

Search Instance Partition n

Copy 2

Search Instance Partition 1

Copy n

Search Instance Partition 2

Copy n

Search Instance Partition n

Copy n

Traffic Request

volume & complexity

Data Document quantity & size Cloud

Search

Page 65: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 66: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 67: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 68: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AMAZON

CLOUDSEARCH DOCUMENT

ENDPOINT

SEARCH

ENDPOINT

Page 69: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 70: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

#4NOTIFICATIONS

Page 71: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AMAZON SES BULK AND TRANSACTIONAL

EMAIL-SENDING SERVICE

Page 72: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

$0.10 PER 1000 EMAILS

+ $0.12 per GB of attachments

Page 73: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 74: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AMAZON SNS MOBILE PUSH NOTIFICATIONS

Page 75: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 76: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

#5ENDPOINT

Page 77: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 78: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 79: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 80: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

DIRECT API CALLS TO AWS

Page 81: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

iOS Android

// Create Amazon S3 Client

AmazonS3Client *s3 = [[AmazonS3Client alloc]

initWithAccessKey:ACCESS_KEY_ID withSecretKey:SECRET_KEY];

// Create Amazon S3 Client

AmazonS3Client s3 = new AmazonS3Client(

new BasicAWSCredentials( ACCESS_KEY_ID, SECRET_KEY ) );

// Put an Object into a Bucket

S3PutObjectRequest *por = [[S3PutObjectRequest alloc]

initWithKey:VIDEO_NAME inBucket:VIDEO_BUCKET];

por.contentType = @“mpeg4";

por.data = video;

[s3 putObject:por];

// Put an Object into a Bucket

PutObjectRequest por =

new PutObjectRequest(VIDEO_BUCKET,

VIDEO_NAME,

new java.io.File( video ) );

s3.putObject( por );

// Get an Object from a Bucket

S3GetObjectRequest *gor = [[S3GetObjectRequest alloc]

initWithKey:VIDEO_NAME withBucket:VIDEO_BUCKET];

S3GetObjectResponse *response = [s3 getObject:gor];

// Get an Object from a Bucket

S3Object data = s3.getObject(VIDEO_BUCKET, VIDEO_NAME);

Page 82: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

IAM STS SECURITY TOKEN SERVICE

Page 83: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

IAM STS

Page 84: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 85: AWS Summit Tel Aviv - Startup Track - Backend Use Cases
Page 86: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

FOCUS ON YOUR

CORE BUSINESS

Page 87: AWS Summit Tel Aviv - Startup Track - Backend Use Cases

AWS Summit 2013 Tel Aviv Oct 16 – Tel Aviv, Israel

Thomas Metschke – Technical Program Manager AWS OpsWorks

AWS OPSWORKS