75
Building Cloud-powered Mobile Apps Danilo Poccia, Technical Evangelist September 25 th , 2014

Building Cloud-powered Mobile Apps

Embed Size (px)

DESCRIPTION

An Introduction to AWS Mobile Services with some code snippets.

Citation preview

Page 1: Building Cloud-powered Mobile Apps

Building Cloud-powered Mobile Apps

Danilo Poccia, Technical Evangelist

September 25th, 2014

Page 2: Building Cloud-powered Mobile Apps

#AWSUGBelgium

Page 3: Building Cloud-powered Mobile Apps

How to build a mobile app today?

Page 4: Building Cloud-powered Mobile Apps

Authenticate users

Authorize access

Analyze User Behavior

Store and share media

Synchronize data

Deliver media

Store shared data

Stream real-time dataTrack Retention

Send push notifications

Manage users and

identity providers

Securely access

cloud resources

Sync user prefs

across devices

Track active users,

engagement

Manage funnels,

Campaign performances

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 5: Building Cloud-powered Mobile Apps

Introducing AWS Mobile Services

Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push

Kinesis Connector DynamoDB Connector S3 Connector SQS ConnectorSES Connector

AWS Global Infrastructure (10 Regions, Availability Zones, 51 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

Page 6: Building Cloud-powered Mobile Apps

Cross-platform, Optimized for Mobile

Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push

Kinesis Connector DynamoDB Connector S3 Connector SQS ConnectorSES Connector

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

Page 7: Building Cloud-powered Mobile Apps

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

Page 8: Building Cloud-powered Mobile Apps

Authenticate users

Authorize access

Analyze User Behavior

Store and share media

Synchronize data

Deliver media

Store shared data

Stream real-time dataTrack Retention

Send push notifications

Manage users and

identity providers

Securely access

cloud resources

Sync user prefs

across devices

Track active users,

engagement

Manage funnels,

Campaign performances

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: Building Cloud-powered Mobile Apps

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)

Track RetentionAmazon Mobile

Analytics

Send push notificationsAmazon SNS

Mobile Push

Your

Mobile

App

Page 10: Building Cloud-powered Mobile Apps

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)

Track RetentionAmazon Mobile

Analytics

Send push notificationsAmazon SNS

Mobile Push

Your

Mobile

App

Page 11: Building Cloud-powered Mobile Apps

Authenticate users: Amazon Cognito

Page 12: Building Cloud-powered Mobile Apps

Amazon Cognito

Simplifies Identity and

Access Management

Securely access all

AWS services from

Mobile device

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

Page 13: Building Cloud-powered Mobile Apps

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

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 Kinesis

Page 14: Building Cloud-powered Mobile Apps

Amazon Cognito for Unauthenticated Identities

Unique Identifier for Your “Things”“Headless” connected devices can also

securely access cloud services.

Save Data to the CloudSave app and device data to the cloud and

merge them after login

Guest User AccessSecurely access AWS resources and leverage

app features without the need to create an

account or logging in

Visitor

Preferences

Cognito

Store

Guest

EC2 S3 DynamoDB Kinesis

Page 15: Building Cloud-powered Mobile Apps

Private Beta Customer: Location-aware Music App

Use Case: Soundtracker is the first geosocial

music network allowing people to

listen and share their own music

stations. By geolocalizing these

stations and synching data across

device and across OSs, users will

have enhanced user experience that

listen to what is being streamed

around them, and pick up from where

they left off.

User PreferencesStations

Music

Albums

Authenticated

User

Guest

Page 16: Building Cloud-powered Mobile Apps

Getting Started with 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 17: Building Cloud-powered Mobile Apps

Demo: Amazon Cognito Console

Page 18: Building Cloud-powered Mobile Apps
Page 19: Building Cloud-powered Mobile Apps
Page 20: Building Cloud-powered Mobile Apps
Page 21: Building Cloud-powered Mobile Apps
Page 22: Building Cloud-powered Mobile Apps
Page 23: Building Cloud-powered Mobile Apps

Amazon Cognito Security

Set granular access permissions on AWS

resources

Get fine-grained access control to cloud

resources.

Safeguard AWS Credentials

No need to embed credentials in the app

anymore. Get least-privileged temporary

credentials.

Helps implement security best practices

Securely access any AWS Service. It simplifies

the interaction with Security Token Service and

removes the need of Token Vending Machine

EC2 S3 DynamoDB Kinesis

Page 24: Building Cloud-powered Mobile Apps

Amazon Cognito Security Architecture

User ID

(Temp

Credentials)

DynamoDB

End Users

Developer

App w/SDKAccess

to AWS

Services

Cognito Identity

Broker

Login OAUTH/OpenID

Access Token

Cognito ID,

Temp

Credentials

S3

Mobile Analytics

Cognito Sync

Store

AWS

Management

Console

Access

Token

Pool ID

Role ARNs

Page 25: Building Cloud-powered Mobile Apps

Authorize access: Amazon Cognito + AWS IAM

+ Fine-grained access control

Page 26: Building Cloud-powered Mobile Apps

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 27: Building Cloud-powered Mobile Apps

Access Policy for the IAM Role

{

"Effect":"Allow",

"Action":["s3:*"],

"Resource":"*"

}

{

"Effect": ”Deny",

"Action": ["dynamodb:*"],

"Resource": "*"

}

{

"Effect": "Allow",

"Action": [”cognito-sync:*"],

"Resource": "*"

}

Allow

Actions:

All S3, Sync store

Operations

Resource:

All resources within

these services

Deny

Actions:

All DDB Operations

Resource:

All resources

Page 28: Building Cloud-powered Mobile Apps

Access Policy Restriction

{

"Effect":"Allow",

"Action":["s3:PutObject","s3:GetObject","s3:DeleteObject",

"s3:ListMultipartUploadParts","s3:AbortMultipartUpload"],

"Resource":"arn:aws:s3:::BUCKET_NAME/*"

}

{

"Effect":"Allow",

"Action":["s3:ListBucket","s3:ListBucketMultipartUploads"],

"Resource":"arn:aws:s3:::BUCKET_NAME"

}

{

"Effect": "Allow",

"Action": ["dynamodb:GetItem", "dynamodb:Query", "dynamodb:PutItem"],

"Resource" : [ "arn:aws:dynamodb:REGION:123456789:table/TABLE_NAME",

"arn:aws:dynamodb:REGION:123456789:table/TABLE_NAME/

index/INDEX_NAME" ]

}

Allow

Actions:

Certain operations

Resource:

One bucket, table ..

Page 29: Building Cloud-powered Mobile Apps

Access Policy Restriction

{

"Effect":"Allow”,

"Action” ["s3:PutObject","s3:GetObject","s3:DeleteObject”,”s3:ListMultipartUploadParts","s3:AbortMultipartUpload"],

"Resource":"arn:aws:s3:::BUCKET_NAME/Bob/*"

}

{

"Effect":"Allow",

"Action":"s3:ListBucket",

"Resource":"arn:aws:s3:::BUCKET_NAME",

"Condition":{"StringLike":{"s3:prefix":”Bob/"}}

}

{

"Effect":"Allow",

"Action":["s3:ListBucketMultipartUploads"],

"Resource":"arn:aws:s3:::BUCKET_NAME"

}

Allow

Actions:

Certain operations

Resource:

Within a bucket with

specific prefix (user)

Page 30: Building Cloud-powered Mobile Apps

Access Policy Restriction (Policy Variables)

Allow

Actions:

All sync operations

Resource:

Only to that identity

{

"Effect": "Allow”,

"Action": ["s3:GetObject”,"s3:PutObject”],

"Resource": ["arn:aws:s3:::

myBucket/amazon/snakegame/

${cognito-identity.amazonaws.com:sub}"]

}

{

"Effect":"Allow",

"Action":"cognito-sync:*",

"Resource":["arn:aws:cognito-sync:us-east-1:

123456789012:identitypool/

${cognito-identity.amazonaws.com:aud}/identity/

${cognito-identity.amazonaws.com:sub}/*"]

}

Allow

Actions:

S3 Get/Put operations

Resource:

Only to a specific part

of bucket to that identity

Page 31: Building Cloud-powered Mobile Apps

Synchronize data across devices : Amazon Cognito (Sync)

Page 32: Building Cloud-powered Mobile Apps

What have customers told us about “Synchronized

Profile”

People have multiple devices and want to transition between devices.

Implementing a user profile that syncs across devices, OS, apps is hard.

It not only has to work when offline, but easy to integrate with existing apps.

Page 33: Building Cloud-powered Mobile Apps

Amazon Cognito 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

Page 34: Building Cloud-powered Mobile Apps

Amazon Cognito Sync

Offline: The client SDK manages a local SQLite data store to allow the app to work even when connectivity is not available.

Fast: The methods to read and write data only interact with the local SQLite database.

Intelligent Sync: The sync method compares the local version of the data to the cloud sync store, pushes up deltas and pulls down new changes.

Flexible Conflict resolution: The sync method first reads the changes then writes its local changes to the cloud sync store By default Cognito assumes that the last write wins. Developers can override and implement their own conflict resolution programmatically

Local SQLite Cache

Page 35: Building Cloud-powered Mobile Apps

Amazon Cognito Sync Data Model

AWS Account

Identitypool

Dataset

Pool of identities that

share the same trust policy

IdentityIdentityIdentity

DatasetDataset

identitypool

Unique identifier across

devices, get cached on local devices

as well as saved in the cloud

1:n

1:n

1:n

Dataset synchronized across

devices by simply calling dataset.synchronize()

method

DatasetDatasetKey/Value

1:n

Key-value and sync count

Page 36: Building Cloud-powered Mobile Apps

Amazon Cognito Sync Data Model - Example

AWS Account

Identitypool

Dataset

IdentityIdentityIdentity

DatasetDataset

identitypool

1:n

1:n

1:n

User

preferences

Developer has two apps: a game and a productivity app

Game

state

Identitypool1

Productivity

App

Game

App

DatasetDatasetKey/Value

1:n

Page 37: Building Cloud-powered Mobile Apps

Integrating Cognito Sync functionality is very simple

Initialize the CredentialsProvider and CognitoClient

Call synchronize on the dataset

Create or open Dataset and Add Key Values

provider = new CognitoCredentialsProvider(context, AWS_ACCOUNT_ID,

COGNITO_POOL_ID, COGNTIO_ROLE_UNAUTH, COGNITO_ROLE_AUTH);

cognito = new DefaultCognitoSyncClient(context, COGNITO_POOL_ID, provider);

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

cognito.openOrCreateDataset(datasetName);

dataset.put(key, value);

Page 38: Building Cloud-powered Mobile Apps

Integrating Cognito Sync functionality is very 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 39: Building Cloud-powered Mobile Apps

Analyze User Behavior

Store and share media

Deliver media

Store shared data

Stream real-time dataTrack Retention

Send push notifications

Track active users,

engagement

Manage funnels,

Campaign performances

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

Authenticate users

Authorize access

Synchronize dataAmazon Cognito

(Sync)

AWS Identity and

Access Management

Amazon Cognito

(Identity Broker)

Page 40: Building Cloud-powered Mobile Apps

Analyze User Behavior: Amazon Mobile Analytics

Page 41: Building Cloud-powered Mobile Apps

Developer Economics | State of the Developer Nation Q3 2014 | © VisionM obile | All rights reserved | www.developereconomics.com/go 27

Page 42: Building Cloud-powered Mobile Apps

User Analytics (and Cloud Computing)

among top 10 most popular tools

Successful developers use more tools

Developer Economics

State of the Developer Nation Q3 2014

© VisionMobile

Page 43: Building Cloud-powered Mobile Apps

What Customers Told Us About “Mobile Analytics”

Developers deeply value user analytics and consider it an integral part

of their app development process. They want to monitor their most

important metrics in a timely manner, and take action quickly. They

would like to own their mobile data, just like they do with any other

AWS service.

Page 44: Building Cloud-powered Mobile Apps

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

“Easily collect, visualize and understand your app usage data at scale”

Data collected are not

shared, aggregated, or

reused

Page 45: Building Cloud-powered Mobile Apps

Getting Started with Mobile Analytics in 3 steps

Sign up for AWS Account and create or use existing 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: Building Cloud-powered Mobile Apps
Page 47: Building Cloud-powered Mobile Apps

Key Business Metrics

(with one line of code)

1. Monthly Active Users

(MAU)

2. Daily Active Users

(DAU)

3. New Users,

4. Daily Sessions,

5. Sticky Factor,

6. 1-Day Retention,

7. Avg. Revenue per DAU,

8. Daily Paying Users,

9. Avg. Paying DAU

Page 48: Building Cloud-powered Mobile Apps

Track Retention

User retention is a key

indicator to judge the

outcome of a marketing

campaign, new feature

introduction, UX changes,

app updates, etc.

Mobile Analytics provide four

charts to track daily or

weekly rate of returning

users, after first use of the

app

Page 49: Building Cloud-powered Mobile Apps

Get behavioral insights into app specific

actions that your users take

Reports provide a view of how often custom

events occur. You can add further context

with Attributes and Metrics, to each custom

event

Examples

Track the number of

Likes/Shares, per

article, in a news app

Understand player

abort rates per

level, in a game

Number of songs

played, per user

session, in a music

app

In-app item popularity

in a shopping app

Track Custom Events

Page 50: Building Cloud-powered Mobile Apps

Integrating Mobile Analytics is super simple

Initialize the AmazonMobileAnalyticsClient. That’s it! Get Session

Activity in the AWS Management Console.

For Custom Events activity reports, add events.

Add OnResume() and OnPause()

analytics = new AmazonMobileAnalytics(provider, context, "SnakeGameAWS”);

EventClient eventClient = analytics.getEventClient();

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

eventClient.recordEvent(visitEvent);

analytics.getSessionClient().resumeSession();

analytics.getSessionClient().pauseSession();

Analytics.getEventClient().submitEvents();

Page 51: Building Cloud-powered Mobile Apps

Integrating Mobile Analytics is super simple

Initialize the AmazonMobileAnalytics object. That’s it! Get Session

Activity in the AWS Management Console.

Submit the event. If we don't call submitEvents, events

will automatically be submitted at periodic intervals.

Create add Custom Events

[eventClient submitEvents];

id<AWSMobileAnalyticsEventClient> eventClient =

analytics.eventClient;

id<AWSMobileAnalyticsEvent> level1Event = [eventClient

createEventWithEventType:@"level1Complete"];

AWSMobileAnalytics* analytics = [AWSMobileAnalytics

defaultAWSMobileAnalyticsWithIdentifier:@"someuniqueid"];

iOS

Page 52: Building Cloud-powered Mobile Apps

Store and share media

Deliver media

Store shared data

Stream real-time data

Send push notifications

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

Authenticate users

Authorize access

Analyze User Behavior

Synchronize data

Amazon Mobile

Analytics

Amazon Cognito

(Sync)

AWS Identity and

Access Management

Amazon Cognito

(Identity Broker)

Track RetentionAmazon Mobile

Analytics

Page 53: Building Cloud-powered Mobile Apps

Store and share media: Amazon S3

Page 54: Building Cloud-powered Mobile Apps

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 55: Building Cloud-powered Mobile Apps

// 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];

Amazon S3 Connector: Transfer Manager

Page 56: Building Cloud-powered Mobile Apps

Store shared data

Stream real-time data

Send push notifications

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

Authenticate users

Authorize access

Analyze User Behavior

Synchronize data

Amazon Mobile

Analytics

Amazon Cognito

(Sync)

AWS Identity and

Access Management

Amazon Cognito

(Identity Broker)

Track RetentionAmazon Mobile

Analytics

Store and share media

Deliver media

Amazon S3

Transfer Manager

Amazon CloudFront

(Device Detection)

Page 57: Building Cloud-powered Mobile Apps

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)

Track RetentionAmazon Mobile

Analytics

Send push notificationsAmazon SNS

Mobile Push

Your

Mobile

App

Page 58: Building Cloud-powered Mobile Apps

Send Push Notifications: Amazon SNS Mobile Push

Page 59: Building Cloud-powered Mobile Apps

What Customers Told Us About “Push Notifications”

Sending large-scale push notifications, cross-platform is still hard.

Developers want to be able to reach their customers globally and

across all devices.

Page 60: Building Cloud-powered Mobile Apps

Each platform works differently, and push gets even more

complex as you scale to support millions of devices.

Cloud App

Platform Services Mobile Apps

Page 61: Building Cloud-powered Mobile Apps

Amazon SNS

Cross-platform

Mobile Push

Internet

Apple APNS

Google GCM

Amazon ADM

Windows WNS and

MPNS

Baidu CP

Industry’s First!

New!

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

and reach mobile users around the world

New features:

Message Expiry Time

Message Attributes

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 62: Building Cloud-powered Mobile Apps

Developers Love Cross-Platform Features of SNS

Fast reliable

notification for every

Email received is

powered by SNS

Customers love

high scale and

Reliability of SNS

High-profile Startups

trust SNS for their

high-profile launches

Secret.ly

Advanced targeted

notifications

bring players back into

the game

Mature games increase

retention using SNS

Launched its Android

App with SNS, no

provisioning required

Jetpack Joyride

Fruit ninja

Page 63: Building Cloud-powered Mobile Apps

Store shared data

Stream real-time data

Send push notifications

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

Authenticate users

Authorize access

Analyze User Behavior

Synchronize data

Amazon Mobile

Analytics

Amazon Cognito

(Sync)

AWS Identity and

Access Management

Amazon Cognito

(Identity Broker)

Track RetentionAmazon Mobile

Analytics

Store and share media

Deliver media

Amazon S3

Transfer Manager

Amazon CloudFront

(Device Detection)

Page 64: Building Cloud-powered Mobile Apps

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)

Track RetentionAmazon Mobile

Analytics

Send push notificationsAmazon SNS

Mobile Push

Your

Mobile

App

Page 65: Building Cloud-powered Mobile Apps

Collect real-time click-stream data:

Amazon Kinesis Mobile Connector

Page 66: Building Cloud-powered Mobile Apps

Amazon Kinesis

RedshiftS3Kinesis enabled Apps on EC2

AWS Mobile SDK

Amazon Kinesis Connector for Mobile

Apps

For sophisticatedUser Behavior

Analysis

Integrated AWS Mobile SDK

Generic batching system that handles intermittent network connection and also optimize

battery utilization

Page 67: Building Cloud-powered Mobile Apps

Summary

Page 68: Building Cloud-powered Mobile Apps

Authenticate users

Authorize access

Analyze User Behavior

Store and share media

Synchronize data

Deliver media

Store shared data

Stream real-time dataTrack Retention

Send push notifications

Manage users and

identity providers

Securely access

cloud resources

Sync user prefs

across devices

Track active users,

engagement

Manage funnels,

Campaign performances

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 69: Building Cloud-powered Mobile Apps

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)

Track RetentionAmazon Mobile

Analytics

Send push notificationsAmazon SNS

Mobile Push

Your

Mobile

App

Page 70: Building Cloud-powered Mobile Apps

Key Takeaways

Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push

Kinesis Connector DynamoDB Connector S3 Connector SQS ConnectorSES Connector

AWS Global Infrastructure (10 Regions, Availability Zones, 51 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

Page 71: Building Cloud-powered Mobile Apps

Key Takeaways

Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push

Kinesis Connector DynamoDB Connector S3 Connector SQS ConnectorSES Connector

AWS Global Infrastructure (10 Regions, Availability Zones, 51 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

Cross Platform

and Optimized

for Mobile

Flexibility

And Freedom

of Choice

Fully integrated

and easy to get

started

Page 72: Building Cloud-powered Mobile Apps

Amazon Cognito Amazon Mobile

Analytics

Amazon 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!

Page 73: Building Cloud-powered Mobile Apps

Thank You!

#AWSUGBelgium

@danilop

Page 74: Building Cloud-powered Mobile Apps

Appendix..

Page 75: Building Cloud-powered Mobile Apps

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