build your mobile app faster with aws mobile services

80
©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved Build Your Mobile App Faster with AWS Mobile Services Jinesh Varia, @jinman Technology Evangelist, AWS Mobile and IoT

Upload: amazon-web-services

Post on 15-Jul-2015

1.151 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Build Your Mobile App Faster with AWS Mobile Services

©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved

Build Your Mobile App Faster with AWS Mobile Services

Jinesh Varia, @jinmanTechnology Evangelist, AWS Mobile and IoT

Page 2: Build Your Mobile App Faster with AWS Mobile Services

How to build a mobile app today?

Page 3: Build Your Mobile App Faster with AWS Mobile Services

Authenticate users

Authorize access

Analyze User Behavior

Store and share media

Synchronize data

Deliver media

Store shared data

Stream real-time dataRun Business Logic

Send push notifications

Manage users and

identity providers

Securely access

cloud resources

Sync user prefs , states

across devices

Track active users,

Engagement, retention

Run stateless custom

Code without managing servers

Store user-generated photos

Media and share them

Automatically detect mobile devices

Deliver content quickly globally

Bring users back to your app by sending

messages reliably

Store and query fast NoSQL data

across users and devices

Collect real-time clickstream logs

and take actions quickly

Your

Mobile

App

Page 4: Build Your Mobile App Faster with AWS Mobile Services

What Our Mobile Customers Have Told Us

Problems developers face today

Fragmentation across platforms

Sync scalability is extremely hard

Expensive to manage and operate

Distracts them from building core UX

Managing unique user identities is difficult

“Table stakes” for every app

Undifferentiated Heavy Lifting

Developer’s Mobile App Code

User Identity Mgmt. and Auth

User Data Synchronization

Asynchronous Communication

Active Devices Analytics

User Behavior Analytics

Engagement Analytics

Push Notifications

Event Triggers

Platform agnostic Mobile Backend

Data Validation and Transformation

File and Media Storage

Shared Database Storage

Data Collection

And More….

AWS Cloud Infrastructure

Page 5: Build Your Mobile App Faster with AWS Mobile Services

What Our Mobile Customers Have Told Us

Developer’s Mobile App Code

User Identity Mgmt. and Auth

User Data Synchronization

Asynchronous Communication

Active Devices Analytics

User Behavior Analytics

Engagement Analytics

Push Notifications

Event Triggers

Platform agnostic Mobile Backend

Data Validation and Transformation

File and Media Storage

Shared Database Storage

Data Collection

And More….

AWS Cloud Infrastructure

Amazon Cognito

Amazon Mobile Analytics

Amazon SNS Mobile Push

AWS Lambda New!

Mobile-optimized Connectors(Amazon Kinesis, Amazon S3,

Amazon DynamoDB, Amazon SQS)

Page 6: Build Your Mobile App Faster with AWS Mobile Services

Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push

Amazon Kinesis

RecorderDynamoDB

Mapper

S3 Transfer

ManagerSQS Client Amazon SES

Client

AWS Global Infrastructure (Regions, Availability Zones, Edge Locations)

Core Building Block

Services

Mobile Optimized

Connectors

Mobile Optimized

Services

Your Mobile App, Game or Device App

AWS Mobile SDK, API Endpoints, AWS Management Console

Compute Storage Networking Analytics Databases

Integrated SDK

AWS Mobile Services

AWS Lambda

Lambda

Functions

λ λλλ

Page 7: Build Your Mobile App Faster with AWS Mobile Services

Cross-platform, Optimized for Mobile

User identity &

data synchronization

service

Store any NoSQL

data and also map

mobile OS specific

objects to

DynamoDB tables

Fast cross-platform

Analytics & reporting

Service

Powerful Cross-platform

Push notification service

Recorder that can

handle intermittent

network connection

Easily upload,

download to S3 and

also pause,

resume, and cancel

these operations

Send email

reliably from

device

Access

distributed

buffering and

queuing service

Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push

Amazon Kinesis

Recorder

DynamoDB Mapper S3 Transfer

Manager

SQS Client SES ClientAWS Lambda

Lambda

Functions

λ λλλ

Not limited to Mobile.

Run stateless Lambda

Functions without any

backend servers to

manage or scale

Page 8: Build Your Mobile App Faster with AWS Mobile Services

Authenticate users

Authorize access

Analyze User Behavior

Store and share media

Synchronize data

Deliver media

Store shared data

Stream real-time dataRun Business Logic

Send push notifications

Manage users and

identity providers

Securely access

cloud resources

Sync user prefs

across devices

Track active users,

Engagement, retention

Run stateless custom

Code without managing servers

Store user-generated photos

Media and share them

Automatically detect mobile devices

Deliver content quickly globally

Bring users back to your app by sending

messages reliably

Store and query fast NoSQL data

across users and devices

Collect real-time clickstream logs

and take actions quickly

Your

Mobile

App

Page 9: Build Your Mobile App Faster with AWS Mobile Services

Authenticate users

Authorize access

Analyze User Behavior

Store and share media

Synchronize data

AWS Mobile SDK

Amazon Mobile

Analytics

Deliver media

Amazon Cognito

(Sync)

AWS Identity and

Access Management

Amazon Cognito

(Identity Broker)Amazon S3

Transfer Manager

Amazon CloudFront

(Device Detection)

Store shared dataAmazon DynamoDB

(Object Mapper)

Stream real-time dataAmazon Kinesis

(Recorder)

Run Business Logic

AWS Lambda

Send push notificationsAmazon SNS

Mobile Push

Your

Mobile

App

Page 10: Build Your Mobile App Faster with AWS Mobile Services

Photo Sharing App Example Use case: The Next Instagram

Page 11: Build Your Mobile App Faster with AWS Mobile Services

AWS Region

AU

TH

EN

TIC

AT

ED

(AS

SU

ME

D R

OL

E)

Photo SharingAWS MOBILE REFERENCE ARCHITECTURES

Download

Photos &

App Files

Session and Device Data, User Behavior

Social Content

(Tagging, Likes,

Comments, etc.)Auto Export

Metadata

Image Manipulation

40

Function

Invoked

Multi-part Upload

User Login

Auto with Web Identity Token

User

Friends

AWS Mobile SDK

Session & Photo Metadata

Role

Asso

cia

ted

With

Ide

ntity

Po

ol

AWS

Lambda

Amazon

CloudFront

Amazon

Mobile Analytics

Amazon

DynamoDB

Amazon

Cognito

Amazon

IAM Amazon

S3

Geo Look up

Amazon

SNS Mobile

Push

Amazon

Redshift

Targeted

Page 12: Build Your Mobile App Faster with AWS Mobile Services

Authenticate users

Authorize access

Analyze User Behavior

Store and share media

Synchronize data

AWS Mobile SDK

Amazon Mobile

Analytics

Deliver media

Amazon Cognito

(Sync)

AWS Identity and

Access Management

Amazon Cognito

(Identity Broker)Amazon S3

Transfer Manager

Amazon CloudFront

(Device Detection)

Store shared dataAmazon DynamoDB

(Object Mapper)

Stream real-time dataAmazon Kinesis

(Recorder)

Send push notificationsAmazon SNS

Mobile Push

Your

Mobile

App

Run Business Logic

AWS Lambda

Page 13: Build Your Mobile App Faster with AWS Mobile Services

Serverless Backend Optimized for Mobile

Page 14: Build Your Mobile App Faster with AWS Mobile Services

AWS Lambda

Auto Scaling

(Never under or over

provision)

Focus on business logic,

not infrastructure. Upload

your code; AWS Lambda

handles everything else

Zero Administration

Lambda scales the

infrastructure as needed

to match the event rate

and pay as you go

Bring Your Own Code

“Run stateless functions in the cloud and scale without any servers to manage”

Starting with JavaScript but

later any language, create

threads and processes, run

batch scripts or other

executables

Page 15: Build Your Mobile App Faster with AWS Mobile Services

How can you put AWS Lambda to work?

Stream

processing

Data triggersServerless

backend

Mobile/IoT Indexing &

synchronization

Page 16: Build Your Mobile App Faster with AWS Mobile Services

Case Study: AWS Lambda on Social Media Aggregation

CommandPost is CMP.LY’s patented

Monitoring, Measurement & Insights (MMI)

tool for managed social communications.

Increase the amount of data

processed while reducing(!)

the resources (instances)

required to do it

Page 17: Build Your Mobile App Faster with AWS Mobile Services

Respond to events in real-time

Map local functions to cloud functions from within the SDK

Target, Filter, and Route Amazon SNS Notifications

Apply Custom Logic to User Preferences and Game State

Java Support (Coming soon), AWS CloudTrail integration, Enhanced metrics and logging via Amazon CloudWatch

S3 event

notification

s

DynamoDB

Streams

Amazon

Kinesis

events

Amazon

Cognito

eventsSNS

events

Custom

events

AWS Lambda Now Ready for Production at Scale

Page 18: Build Your Mobile App Faster with AWS Mobile Services

Amazon

Cognito Sync

Dataset

Amazon

DynamoDB

Table

Map local

functions to

invoke

Lambda

Functions

synchronously

Maintain

intelligence

in the cloud

and not the

device

Chain

multiple

functions or

call them in

parallel

SNS

Push notificationPersonalize your

notification for

every user

Page 19: Build Your Mobile App Faster with AWS Mobile Services

Demo: Synchronously invoke Lambda function from a

mobile device

Page 20: Build Your Mobile App Faster with AWS Mobile Services

Adding a Lambda Backend to your Mobile App is

simple

Initialize the LambdaFactory and define the Interface for the functions

Call synchronize on the dataset

Create/Upload the Lambda Function to the AWS Management Console

lambda = new LambdaInvokerFactory(context, Regions.US_WEST_2, provider);

//interface

@LambdaFunction(functionName="cloudFunction”)

String localFunction(String nameInfo);

lambda.localFunction(“Hello From “); // this will output “Hello From Lambda”

exports.handler = function(event, context) {

context.done(null, event + 'Lambda'); // SUCCESS with message

};

Page 21: Build Your Mobile App Faster with AWS Mobile Services

Send Push Notifications: Amazon SNS Mobile Push

Page 22: Build Your Mobile App Faster with AWS Mobile Services

Amazon SNS

Cross-platform

Mobile Push

Internet

Apple APNS

Google GCM

Amazon ADM

Microsoft Windows

WNS and MPNS

Baidu CP

With Amazon SNS, developers can send push notifications on multiple platforms

and reach mobile users around the world

New features:

Delivery Metrics via CloudWatch

Trigger Lambda Functions from SNS

notifications

Amazon SNS Mobile Push

Android Phones and Tablets

Apple iPhones and iPads

Kindle Fire Devices

Android Phones and Tablets in China

iOS

Windows Desktop and Windows Phone

Devices

Page 23: Build Your Mobile App Faster with AWS Mobile Services

Mobile push lets our users live

life together in the moment, even

when they are miles apart.

Founded in San Francisco

in 2010

Social networking and

messaging designed for

close friends and family

Two apps, Three

platforms, 20 languages

5M+ DAU worldwide

creating billions of monthly

impressions

Page 24: Build Your Mobile App Faster with AWS Mobile Services

Reliable push at scale takes constant work

35 AWS EC2 m3.xlarge instances

Home-rolled code based on Tornado

6 ELB Load

BalancersConstantly trying to

scale out, both at

process level and

server level

Fighting to maximize

throughput at packets

per second level

Never certain how

many pushes we were

sending or dropping

Page 25: Build Your Mobile App Faster with AWS Mobile Services

Now Path Uses SNS Mobile Push

Amazon SNS

Mobile Push

Page 26: Build Your Mobile App Faster with AWS Mobile Services

Now Path Uses SNS Mobile Push

Zero to 500m+ daily

push notifications

almost overnight

Highest available

reliability and speed

Easy migration

$1 per million

mobile push deliveries 10m

170m

500m

Day 1 Day 2 Day 3

Path Daily SNS Mobile

Push Deliveries

(millions)

…Rising

Page 27: Build Your Mobile App Faster with AWS Mobile Services

How are AWS Mobile Services different?

Serverless and

Scales automatically

Page 28: Build Your Mobile App Faster with AWS Mobile Services

Authenticate users: Amazon Cognito

Page 29: Build Your Mobile App Faster with AWS Mobile Services

Amazon Cognito

Simplifies Identity and

Access Management

Securely access all

AWS services from

mobile devices

Cross-device and

cross-platform syncImplement security best

practices

“Your App data is secure, available offline, and kept in sync between devices”

Synchronize user’s data

across devices and

platforms

Manage users as

unique identities across

identity providers

Guest Your own

Auth

Page 30: Build Your Mobile App Faster with AWS Mobile Services

Identity

Providers

Unique

IdentitiesJoe Anna Bob

Any Device

Any Platform

Any AWS

Service

Helps implement security best

practicesSecurely access any AWS Service from mobile

device. It simplifies the interaction with AWS

Identity and Access Management (IAM)

Support Multiple Login ProvidersEasily integrate with major login providers for

authentication.

Unique Users vs. DevicesManage unique identities. Automatically

recognize unique user across devices and

platforms.

Amazon Cognito Identity

Mobile

AnalyticsS3 DynamoDB Amazon

Kinesis

Page 31: Build Your Mobile App Faster with AWS Mobile Services

Developer Authenticated Identities (Any OpenID Connect Token)

Amazon Cognito

ID (Temp

Credentials)

DynamoDB

End Users

Developer

App with

AWS Mobile

SDK

Access

to AWS

Services

Amazon Cognito

Identity Broker

Get OpenID Token

Username

password

Amazon Cognito

ID, Temp

Credentials

S3

Mobile Analytics

Amazon Cognito

Sync Store

AWS

Management

Console

OIDC Token

Pool ID

Role ARNs

User Authentication

System

(Running on AWS or not)

OIDC Token

OIDC Token

Page 32: Build Your Mobile App Faster with AWS Mobile Services

Getting Started with Amazon Cognito in 3 steps

Sign up for AWS Account and login to AWS Management Console

Download and integrate the Mobile SDK and store and

sync user data in a dataset

Create identitypool for authenticated and

unauthenticated users in the AWS console

Page 33: Build Your Mobile App Faster with AWS Mobile Services

Demo: Amazon Cognito Console

Page 34: Build Your Mobile App Faster with AWS Mobile Services

Amazon Cognito (Identity Broker)

Identitypool

Identity Providers

Pool of identities that

share the same trust policy

Access Policy

Access to AWS

Servicesidentitypool

Unauthenticated Identities

authenticated identities

AWS IAM Roles

AWS Account

Web Identity

Federation

S3

DynamoDB

Get Delete Put

Page 35: Build Your Mobile App Faster with AWS Mobile Services

Synchronize data across devices : Amazon Cognito (Sync)

Page 36: Build Your Mobile App Faster with AWS Mobile Services

Amazon Cognito Cloud

Save and Sync

User Data

Storage and

Sync

Any Platform

iOS/Android/FireOS

Store App Data, Preferences and StateSave app and device data to the cloud and merge

them after login

Cross-device Cross-OS Sync Sync user data and preferences across devices

with one line of code

Work OfflineData always stored in local SQLite DB first.

Works seamlessly when intermittent or no

connectivity

k/v data

Identity pool

No BackendSimple client SDK eliminates need for server

side code

Page 37: Build Your Mobile App Faster with AWS Mobile Services

Synchronize data across devices with

Amazon Cognito

Sync Game States

Across OS/devices State Transition

(link multiple accounts)Sync User Profiles

across OS/devices/web

Page 38: Build Your Mobile App Faster with AWS Mobile Services

Concrete Software builds cross platform mobile games

Concrete Software has been making hit mobile games

like Jellyflop and PBA Bowling Challenge since 2003.

With Amazon Cognito, We

can build games much faster

and provide great user

experience to our customers.

Keith A. Pichelman

CEO, Concrete Software

“• Provide a seamless user experience across devices

and platforms to our users.

• Store save games in the cloud and synchronize them

across all of a user’s devices without creating or

hosting a backend.

The Challenge

The solution

• Amazon Cognito helps us securely access our AWS

resources.

• Amazon Cognito Sync gives us flexibility to save data

in the cloud, and cache it on a user’s devices, without

managing any backend infrastructure.

Page 39: Build Your Mobile App Faster with AWS Mobile Services

Amazon Cognito Sync data model

• Identity Pool: Pool of app users. Can be shared across apps.

• Identity: An individual user. Consistent across identity providers. Can be a guest user.

• Dataset: Per user grouping of data. The most granular level of sync. Up to 1MB.

• Record: Key/Value pair.

AWS Account

Dataset

IdentityIdentityIdentity

DatasetDataset

Identity

Pool

1:60

1:n

1:20

DatasetDatasetRecord

1:1024

You

Your App

Your App Users

User Data Container

User Data

Page 40: Build Your Mobile App Faster with AWS Mobile Services

Demo: Sync user’s game state across devices

Page 41: Build Your Mobile App Faster with AWS Mobile Services

Integrating Amazon Cognito Sync functionality is

dead simple

Initialize the CredentialsProvider and CognitoClient

Call synchronize on the dataset

Create or open Dataset and Add Key Values

provider = new CognitoCachingCredentialsProvider (context, AWS_ACCOUNT_ID,

COGNITO_POOL_ID, COGNITO_ROLE_UNAUTH, COGNITO_ROLE_AUTH, Regions.US_EAST_1);

cognito = new CognitoSyncManager (context, Regions.US_EAST_1, provider);

dataset.synchronize(new SyncCallback(){..});

cognito.openOrCreateDataset(datasetName);

dataset.put(key, value);

Page 42: Build Your Mobile App Faster with AWS Mobile Services

Integrating Amazon Cognito Sync functionality is

dead simple

Initialize the AWSCognitoSyncClient

Call synchronize on the dataset

Create or open Dataset and Add Key Values

DataSet *dataset = [syncClient openOrCreateDataSet:@"myDataSet"];

NSString *value = [dataset readStringForKey:@"myKey"];

[dataset putString:@"my value" forKey:@"myKey"];

AWSCognitoSyncClient *syncClient = [[AWSCognitoSyncClient alloc]

initWithConfiguration: configuration];

[dataset synchronize];

iOS

Page 43: Build Your Mobile App Faster with AWS Mobile Services

Analyze User Behavior: Amazon Mobile Analytics

Page 44: Build Your Mobile App Faster with AWS Mobile Services

Amazon Mobile Analytics

Scalable and Generous

Free Tier

Focus on metrics that

matter. Usage reports

available within 60

minutes of receiving data

from an app

Fast

Scale to billions of

events per day from

millions of users.

Own Your Data

“Simply and cost effectively collect and analyze your application usage data”

Data collected are not

shared, aggregated, or

reused

Page 45: Build Your Mobile App Faster with AWS Mobile Services

Getting Started with Mobile Analytics in 3 steps

Sign up for AWS Account and create or use existing Amazon

Cognito ID in the AWS Management Console

View engagement and session activity reports in the

AWS Management Console within minutes

Download and integrate the Mobile SDK with one line of

code (Android/FireOS, iOS)

Page 46: Build Your Mobile App Faster with AWS Mobile Services

Integrating Mobile Analytics is super simple

Initialize the MobileAnalyticsManager. That’s it! Get Session

Activity in the AWS Management Console.

For Custom Events activity reports, add events.

Add OnResume() and OnPause()

private static MobileAnalyticsManager analytics;

analytics = MobileAnalyticsManager.getOrCreateInstance(

this.getApplicationContext(),"yourCompany.yourAppId",

Regions.YOUR_REGION, config, cognitoProvider );

EventClient eventClient = analytics.getEventClient();

MobileAnalyticsEvent visitEvent = eventClient.createEvent("speedSet");

eventClient.recordEvent(visitEvent);

analytics.getSessionClient().resumeSession();

analytics.getSessionClient().pauseSession();

Analytics.getEventClient().submitEvents();

Page 47: Build Your Mobile App Faster with AWS Mobile Services

Demo: How is my game performing across platforms

Page 48: Build Your Mobile App Faster with AWS Mobile Services

Just Last Month: Run custom queries

Page 49: Build Your Mobile App Faster with AWS Mobile Services

Export to S3 + Amazon Redshift

mobile

client

S3Amazon Mobile

Analytics

Page 50: Build Your Mobile App Faster with AWS Mobile Services
Page 51: Build Your Mobile App Faster with AWS Mobile Services

Export to S3, Process Data Anywhere

mobile

client

Amazon

S3Amazon

Redshift

Amazon Mobile

Analytics

Hadoop/Spark

Amazon EMR

Amazon

Glacier

archive

batch

Page 52: Build Your Mobile App Faster with AWS Mobile Services

Export to Amazon Redshift (Managed)

mobile

client

Amazon

S3Amazon

Redshift

Amazon Mobile

Analytics

External data

Page 53: Build Your Mobile App Faster with AWS Mobile Services
Page 54: Build Your Mobile App Faster with AWS Mobile Services

mobile

client

Amazon

S3Amazon

Redshift

Amazon Mobile

Analytics

External data

Page 55: Build Your Mobile App Faster with AWS Mobile Services
Page 56: Build Your Mobile App Faster with AWS Mobile Services

74Live score VotingPush notifications

Page 57: Build Your Mobile App Faster with AWS Mobile Services

FORZA FOOTBALL

75

SINCE 2012

Page 58: Build Your Mobile App Faster with AWS Mobile Services

GROWTH PER COUNTRY

76

THE WORLD CUP IS THE MOST INTERESTING FOR THE AMERICANS

Page 59: Build Your Mobile App Faster with AWS Mobile Services

PENETRATION

77

USERS PER CAPITA

Page 60: Build Your Mobile App Faster with AWS Mobile Services

LEVERAGE ON MISSION

78

VOTE PER COUNTRY

Page 61: Build Your Mobile App Faster with AWS Mobile Services

DEVICES

79

IN FORZA FOOTBALL

Page 62: Build Your Mobile App Faster with AWS Mobile Services

Mobile Services Work Better Together

SNS

Amazon

Cognito

Amazon

Cognito

Amazon

Cognito

SNS

Lambda

Lambda Lambda

Lambda

Any

AnalyticsS3 +

Amazon Redshift

Amazon

Kinesis

DynamoDB

Amazon

Cognito

Amazon

KinesisLambdaS3

Page 63: Build Your Mobile App Faster with AWS Mobile Services

How are AWS Mobile Services different?

Flexible and Work

Better Together

Serverless and

Scales automatically

Page 64: Build Your Mobile App Faster with AWS Mobile Services

Store and share media: Amazon S3

Page 65: Build Your Mobile App Faster with AWS Mobile Services

Amazon KinesisAWS

Mobile SDK

Mobile-optimized Connectors (AWS Mobile

SDK)

S3

Integrated AWS Mobile SDK Optimized for native OS

Multipart upload media

Fault tolerant download

Automatic retries

Pause, resume, cancel functions

Generic batching system

handles intermittent network

connection

Optimize battery utilization

DynamoDB

Page 66: Build Your Mobile App Faster with AWS Mobile Services

Amazon S3 Connector: Transfer Manager

S3 Connector

Multipart upload media (photos, videos, audio)

Fault tolerant download (e.g.. assets)

No backend required

Automatic retries

Pause, resume, cancel functions

Optimized for native OS

Page 67: Build Your Mobile App Faster with AWS Mobile Services

Outplay Entertainment – Amazon S3 Connector via AWS Mobile SDK

Outplay Entertainment is mobile-focused game

developer on a mission to deliver fun, free and

innovative games for smartphones, tablets, and social

networks.

With Amazon S3 connector, we can

improve the users experience by

dynamically downloading game assets

in the background. No long up-front

delays for our users.

Douglas Hare

CEO, Outplay Entertainment

“ • Improved User Experience. Using the Mobile SDK,

they can download the game assets in background

while the user starts playing the game. No limits on

downloading extra assets.

• Dynamic updates. They can update the assets

dynamically and avoid AppStore release cycles.

• Unquestioned Scalability. Different assets for

multiple screen densities go up to 170 MB+. By

storing this data on S3 and directly downloading to

the mobile device, they can scale seamlessly.

• Excellent Performance. Highest resolution devices

end up downloading about 90MB of extra content.

Page 68: Build Your Mobile App Faster with AWS Mobile Services

Amazon S3 Connector: Transfer Manager in Android

// Creating the transfer manager

TransferManager transferManager = new

TransferManager(credentialProvider);

// Upload image

Upload upload = transferManager.upload(BUCKET_NAME, fileName, file);

// Download image

Download = transferManager.download(BUCKET_NAME, mKey, file);

// Pause, and Resume

try {

PersistableDownload persistableDownload = download.pause();

//do something if we didn’t abort

} catch(PauseException e) {

//do something if we aborted

}

download = transferManager.resumeDownload(persistableDownload);

Page 69: Build Your Mobile App Faster with AWS Mobile Services

Amazon S3 Connector: Transfer Manager in iOS

// Creating the transfer manager

self.transferManager = [S3TransferManager new];

self.transferManager.s3 = s3client;

// Upload image

[self.transferManager uploadFile:fileName bucket:bucketName

key:objectName];

// Download image

[self.transferManager downloadFile:fileName bucket:bucketName

key:objectName];

// Pause, Resume, Cancel

[self.transferManager pauseAllTransfers];

[self.transferManager resumeAllTransfers];

[self.transferManager cancelAllTransfers];

Page 70: Build Your Mobile App Faster with AWS Mobile Services

Demo : Download Game Assets

Page 71: Build Your Mobile App Faster with AWS Mobile Services

Fully Integrated AWS Mobile SDK

• Common authentication mechanism across

all services

• Automatically handle intermittent network

connections

• Cross-platform Support: Android, iOS, Fire

OS

• Native SDKs optimized for Mobile OS, for

example, uses the local offline caching

architecture

• Reduced memory footprint; pick and choose

the service jars you need

• Continuously updated with latest platform

enhancements

iOS Android JavaScript

Unity Xamarin

Download the latest

versions of the SDKs

Page 72: Build Your Mobile App Faster with AWS Mobile Services

How are AWS Mobile Services different?

Flexible and Work

Better Together

Serverless and

Scales automaticallyFully Integrated and

easy to get started

Page 73: Build Your Mobile App Faster with AWS Mobile Services

Summary

Page 74: Build Your Mobile App Faster with AWS Mobile Services

Authenticate users

Authorize access

Analyze User Behavior

Store and share media

Synchronize data

AWS Mobile SDK

Amazon Mobile

Analytics

Deliver media

Amazon Cognito

(Sync)

AWS Identity and

Access Management

Amazon Cognito

(Identity Broker)Amazon S3

Transfer Manager

Amazon CloudFront

(Device Detection)

Store shared dataAmazon DynamoDB

(Object Mapper)

Stream real-time dataAmazon Kinesis

(Recorder)

Run Business Logic

AWS Lambda

Send push notificationsAmazon SNS

Mobile Push

Your

Mobile

App

Page 75: Build Your Mobile App Faster with AWS Mobile Services

Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push

Amazon Kinesis

Recorder

DynamoDB Mapper S3 Transfer Mgr SQS Client SES Client

AWS Global Infrastructure (Regions, Availability Zones, Edge Locations)

Core Building Block

Services

Mobile Optimized

Connectors

Mobile Optimized

Services

Your Mobile App, Game or Device App

AWS Mobile SDK, API Endpoints, Management Console

Compute Storage Networking Analytics Databases

Integrated SDK

AWS Mobile Services

AWS Lambda

Lambda

Functions

λ λλλ

Page 76: Build Your Mobile App Faster with AWS Mobile Services

Key Takeaways

Flexible and Work

Better Together

Serverless and

Scales automaticallyFully Integrated and

easy to get started

Page 77: Build Your Mobile App Faster with AWS Mobile Services

Amazon

Cognito

Mobile

Analytics

SNS

Mobile Push

Free Tier:

1 Million push

messages every

month

Free Tier (for first 12

months):

1 Million

syncs/month + 10GB

of storage for

Amazon Cognito

Free Tier:

100 Million events

every month

Get Started for Free!

http://aws.amazon.com/mobile

AWS

Lambda

Free Tier : 1M free

requests per month

400,000 GB-

seconds of compute

time per month

Page 78: Build Your Mobile App Faster with AWS Mobile Services

SAN FRANCISCO

Jinesh Varia@jinman

[email protected]

Page 79: Build Your Mobile App Faster with AWS Mobile Services

Appendix..

Page 80: Build Your Mobile App Faster with AWS Mobile Services

Simple and predictable pay as you go pricing

Amazon Cognito Amazon Mobile

Analytics

Amazon SNS

Mobile Push

Free Tier:

1 Million push messages

every month

Thereafter:

$0.50 for Million

notifications delivered

$0.50 for Million requests

Free Tier (for first 12

months):

1 Million syncs/month +

10GB of storage for

Amazon Cognito

Thereafter:

$0.15 for 10K Syncs

$0.15 per GB for storage

Free Tier:

100 Million events every

month

Thereafter:

$1.00 per Million events