SlideShare a Scribd company logo
Building Cloud-powered Mobile Apps 
Danilo Poccia, Technical Evangelist 
October 15th, 2014
#AWSUGHungary 
@danilop
Enterprise 
Applications 
Virtual 
Desktops 
Collaboration and Sharing 
Platform 
Services 
Database 
s 
Relational 
No SQL 
Caching 
Analytics 
Hadoop 
Real-time 
Data 
Warehouse 
Data 
Workflows 
App Services 
Queuing 
Orchestration 
App Streaming 
Transcoding 
Email 
Search 
Deployment & Management 
Containers 
Dev/ops Tools 
Resource Templates 
Usage Tracking 
Monitoring and Logs 
Mobile Services 
Identity 
Sync 
Mobile Analytics 
Notifications 
Foundation 
Services 
Compute 
(VMs, Auto-scaling 
and Load Balancing) 
Storage 
(Object, Block 
and Archive) 
Security & 
Access Control 
Networking 
Infrastructure Regions Availability Zones CDN and Points of Presence 
AWS Overview
Regions 
US-WEST (N. California) 
EU-WEST (Ireland) 
ASIA PAC 
(Tokyo) 
ASIA PAC 
(Singapore) 
US-WEST (Oregon) 
US-EAST (Virginia) 
SOUTH AMERICA (Sao 
Paulo) 
GOV CLOUD 
ASIA PAC 
(Sydney) 
CHINA 
AWS Global Infrastructure
Availability Zones 
AWS Global Infrastructure
Edge Locations 
Seattle 
Dallas(2) 
St.Louis 
Miami 
New York (3) 
Marseille 
Jacksonville 
Palo Alto 
Los Angeles (2) 
London(2) 
Ashburn(3) 
Newark 
Dublin 
Amsterdam (3) 
Stockholm 
Frankfurt(3) 
Paris(2) 
Singapore (2) 
Tokyo (2) 
Taipei 
Hong Kong (2) 
Sao Paulo 
South Bend 
San Jose 
Milan 
Sydney 
Madrid 
Seoul 
Mumbai 
Chennai 
Atlanta 
Hayward 
Rio de Janeiro 
Warsaw 
Osaka 
Manila 
Melbourne 
AWS Global Infrastructure
AWS Console 
Self-service 
On demand 
Pay as you go 
API-based 
AWS Console 
SDKs 
CLI Tools
How to build a mobile app today?
Authenticate users 
Manage users and 
identity providers 
Authorize access 
Securely access 
cloud resources 
Sync user prefs 
across devices 
Analyze User Behavior 
Store and share media 
Synchronize data 
Deliver media 
Send push notifications 
Store shared data 
Track active users, 
engagement 
Track Retention Stream real-time data 
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
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) 
Mobile Optimized 
Services 
Mobile Optimized 
Connectors 
Core Building Block 
Services 
Your Mobile App, Game or Device App 
AWS Mobile SDK, API Endpoints, Management Console 
Compute Storage Networking Analytics Databases 
Integrated SDK
Cross-platform, Optimized for Mobile 
User identity & 
data synchronization 
service 
Fast cross-platform 
Analytics & reporting 
Service 
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push 
Kinesis Connector DynamoDB Connector S3 Connector SQS ConnectorSES Connector 
Store any NoSQL 
data and also map 
mobile OS specific 
objects to 
DynamoDB tables 
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
Fully Integrated AWS Mobile SDK 
• Common authentication mechanism across 
all services 
• Automatically handle intermittent network 
connections 
• Cross-platform Support: 
Android, iOS, Fire OS, Xamarin 
• 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
Authenticate users 
Manage users and 
identity providers 
Authorize access 
Securely access 
cloud resources 
Sync user prefs 
across devices 
Analyze User Behavior 
Store and share media 
Synchronize data 
Deliver media 
Send push notifications 
Store shared data 
Track active users, 
engagement 
Track Retention Stream real-time data 
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 
Amazon Cognito 
(Identity Broker) 
Authorize access 
AWS Identity and 
Access Management 
Analyze User Behavior 
Store and share media 
Synchronize data 
AWS Mobile SDK 
Amazon Mobile 
Analytics 
Deliver media 
Amazon Cognito 
(Sync) 
Amazon S3 
Transfer Manager 
Amazon CloudFront 
(Device Detection) 
Store shared data 
Amazon DynamoDB 
(Object Mapper) 
Stream real-time data 
Amazon Kinesis 
(Recorder) 
Track Retention 
Amazon Mobile 
Analytics 
Send push notifications 
Amazon SNS 
Mobile Push 
Your 
Mobile 
App
Authenticate users: Amazon Cognito
Amazon Cognito 
“Your App data is secure, available offline, and kept in sync between devices” 
Simplifies Identity and 
Access Management 
Securely access all 
AWS services from 
Mobile device 
Cross-device and 
Cross-platform Sync 
Implement security best 
practices 
Synchronize user’s data 
across devices and 
platforms 
Guest 
Developer 
Authenticated 
Identities 
Manage users as 
unique identities across 
identity providers
Unique 
Joe Anna Bob Identities 
Identity 
Providers 
Any Device 
Any Platform 
Any AWS 
Service 
Amazon Cognito Identity 
Support Multiple Login Providers 
Easily integrate with major login providers for 
authentication. 
Unique Users vs. Devices 
Manage unique identities. Automatically 
recognize unique user across devices and 
platforms. 
Helps implement security best 
practices 
Securely access any AWS Service from mobile 
device. It simplifies the interaction with AWS 
Identity and Access Management 
Mobile 
Analytics 
Developer 
Authenticated 
Identities 
S3 DynamoDB Kinesis
Amazon Cognito for Unauthenticated Identities 
Guest User Access 
Securely access AWS resources and leverage 
app features without the need to create an 
account or logging in 
Save Data to the Cloud 
Save app and device data to the cloud and 
merge them after login 
Unique Identifier for Your “Things” 
“Headless” connected devices can also 
securely access cloud services. 
Visitor 
Preferences 
Guest 
Cognito 
Store 
EC2 S3 DynamoDB Kinesis
Getting Started with Cognito in 3 steps 
Sign up for AWS Account and login to AWS Management Console 
Create identitypool for authenticated and 
unauthenticated users in the AWS Console 
Download and integrate the Mobile SDK and store and 
sync user data in a dataset
Demo: Amazon Cognito Console
Amazon Cognito Security 
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 
Set granular access permissions on AWS 
resources 
Get fine-grained access control to cloud 
resources. 
EC2 S3 DynamoDB Kinesis
Amazon Cognito Security Architecture 
User ID 
(Temp 
Credentials) 
DynamoDB 
End Users 
Developer 
App w/SDK 
Developer 
Authenticated 
Identities 
Access 
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
Authorize access: Amazon Cognito + AWS IAM 
+ Fine-grained access control
Amazon Cognito (Identity Broker) 
Identitypool 
Identity 
Providers 
Pool of identities that 
share the same trust policy 
Access 
Policy 
Access to 
AWS 
Services 
identitypool 
authenticated 
identities 
Unauthenticated 
Identities 
AWS IAM Roles 
AWS 
Account 
Web Identity 
Federation 
S3 
DynamoDB 
Get Delete Put 
Developer 
Authenticated 
Identities
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
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 ..
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)
Access Policy Restriction (Policy Variables) 
Allow 
Actions: 
All sync operations 
Resource: 
Only to that identity 
{ 
"Effect":"Allow", 
"Action":"cognito-sync:*", 
"Resource":["arn:aws:cognito-sync:us-east-1: 
{ 
"Effect": "Allow”, 
"Action": ["s3:GetObject”,"s3:PutObject”], 
"Resource": ["arn:aws:s3::: 
myBucket/amazon/snakegame/ 
${cognito-identity.amazonaws.com:sub}"] 
} 
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
Synchronize data across devices : Amazon Cognito (Sync)
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.
Amazon Cognito Sync 
User Data 
Storage and 
Sync 
Any Platform 
Identity pool 
iOS/Android/FireOS 
Store App Data, Preferences and State 
Save 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 Offline 
Data always stored in local SQLite DB first. 
Works seamlessly when intermittent or no 
connectivity 
k/v data
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
Amazon Cognito Sync Data Model 
AWS 
Account 
Identitypool 
identitypool 
Dataset 
Pool of identities that 
share the same trust policy 
Identity 
Identity 
Identity 
Dataset 
Dataset 
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 
1:n 
Dataset 
Dataset 
Key/Value 
Key-value and sync count
Amazon Cognito Sync Data Model - Example 
AWS 
Account 
1:n 
Identitypool 
identitypool 
1:n 
Identity 
Identity 
Identity 
1:n 
Dataset 
Dataset 
Dataset 
Developer has two apps: a game and a productivity app 
User 
preferences 
Game 
state 
Identitypool1 
Productivity 
App 
Game 
App 
1:n 
Dataset 
Dataset 
Key/Value
Integrating Cognito Sync functionality is very simple 
Initialize the CredentialsProvider and CognitoClient 
provider = new CognitoCredentialsProvider(context, AWS_ACCOUNT_ID, 
COGNITO_POOL_ID, COGNTIO_ROLE_UNAUTH, COGNITO_ROLE_AUTH); 
cognito = new DefaultCognitoSyncClient(context, COGNITO_POOL_ID, provider); 
Create or open Dataset and Add Key Values 
cognito.openOrCreateDataset(datasetName); 
dataset.put(key, value); 
Call synchronize on the dataset 
dataset.synchronize(new SyncCallback(){..});
Integrating Cognito Sync functionality is very simple 
Initialize the AWSCognitoSyncClient 
AWSCognitoSyncClient *syncClient = [[AWSCognitoSyncClient alloc] 
initWithConfiguration: configuration]; 
Create or open Dataset and Add Key Values 
DataSet *dataset = [syncClient openOrCreateDataSet:@"myDataSet"]; 
NSString *value = [dataset readStringForKey:@"myKey"]; 
[dataset putString:@"my value" forKey:@"myKey"]; 
Call synchronize on the dataset 
[dataset synchronize]; 
iOS
Amazon Cognito 
(Identity Broker) 
AWS Identity and 
Access Management 
Analyze User Behavior 
Store and share media 
Deliver media 
Send push notifications 
Store shared data 
Track active users, 
engagement 
Track Retention Stream real-time data 
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 data 
Amazon Cognito 
(Sync)
Analyze User Behavior: Amazon Mobile Analytics
Developer Economics | State of the Developer Nation Q3 2014 | © VisionMobile | All rights reserved | www.developereconomics.com/go 27
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
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.
Amazon Mobile Analytics 
“Easily collect, visualize and understand your app usage data at scale” 
Scalable and Generous 
Free Tier 
Fast 
Focus on metrics that 
matter. Usage reports 
available within 60 
minutes of receiving data 
from an app 
Scale to billions of 
events per day from 
millions of users. 
Own Your Data 
Data collected are not 
shared, aggregated, or 
reused
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 
Download and integrate the Mobile SDK with one line of 
code (Android/FireOS, iOS) 
View engagement and session activity reports in the 
AWS Management console within minutes
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
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
Track Custom Events 
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 
Number of songs 
played, per user 
session, in a music 
app 
Understand player 
abort rates per 
level, in a game 
In-app item popularity 
in a shopping app
Integrating Mobile Analytics is super simple 
Initialize the AmazonMobileAnalyticsClient. That’s it! Get Session 
Activity in the AWS Management Console. 
analytics = new AmazonMobileAnalytics(provider, context, "SnakeGameAWS”); 
Add OnResume() and OnPause() 
analytics.getSessionClient().resumeSession(); 
analytics.getSessionClient().pauseSession(); 
Analytics.getEventClient().submitEvents(); 
For Custom Events activity reports, add events. 
EventClient eventClient = analytics.getEventClient(); 
MobileAnalyticsEvent visitEvent = eventClient.createEvent("speedSet"); 
eventClient.recordEvent(visitEvent);
Integrating Mobile Analytics is super simple 
Initialize the AmazonMobileAnalytics object. That’s it! Get Session 
Activity in the AWS Management Console. 
AWSMobileAnalytics* analytics = [AWSMobileAnalytics 
defaultAWSMobileAnalyticsWithIdentifier:@"someuniqueid"]; 
Create add Custom Events 
id<AWSMobileAnalyticsEventClient> eventClient = 
analytics.eventClient; 
id<AWSMobileAnalyticsEvent> level1Event = [eventClient 
createEventWithEventType:@"level1Complete"]; 
Submit the event. If we don't call submitEvents, events 
will automatically be submitted at periodic intervals. 
[eventClient submitEvents]; 
iOS
Store and share media 
Store user-generated photos 
Media and share them 
Deliver media 
Automatically detect mobile devices 
Deliver content quickly globally 
Send push notifications 
Bring users back to your app by sending 
messages reliably 
Store shared data 
Store and query fast NoSQL data 
across users and devices 
Stream real-time data 
Collect real-time clickstream logs 
and take actions quickly 
Your 
Mobile 
App 
Authenticate users 
Amazon Cognito 
(Identity Broker) 
Authorize access 
AWS Identity and 
Access Management 
Synchronize data 
Amazon Cognito 
(Sync) 
Analyze User Behavior 
Amazon Mobile 
Analytics 
Track Retention 
Amazon Mobile 
Analytics
Store and share media: Amazon S3
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
Amazon S3 Connector: Transfer Manager 
// 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 
Transfer Manager 
Send push notifications 
Bring users back to your app by sending 
messages reliably 
Store shared data 
Store and query fast NoSQL data 
across users and devices 
Stream real-time data 
Collect real-time clickstream logs 
and take actions quickly 
Your 
Mobile 
App 
Authenticate users 
Amazon Cognito 
(Identity Broker) 
Authorize access 
AWS Identity and 
Access Management 
Synchronize data 
Amazon Cognito 
(Sync) 
Analyze User Behavior 
Amazon Mobile 
Analytics 
Track Retention 
Amazon Mobile 
Analytics 
Store and share media 
Deliver media 
Amazon CloudFront 
(Device Detection)
Authenticate users 
Amazon Cognito 
(Identity Broker) 
Authorize access 
AWS Identity and 
Access Management 
Analyze User Behavior 
Store and share media 
Synchronize data 
AWS Mobile SDK 
Amazon Mobile 
Analytics 
Deliver media 
Amazon Cognito 
(Sync) 
Amazon S3 
Transfer Manager 
Amazon CloudFront 
(Device Detection) 
Store shared data 
Amazon DynamoDB 
(Object Mapper) 
Stream real-time data 
Amazon Kinesis 
(Recorder) 
Track Retention 
Amazon Mobile 
Analytics 
Send push notifications 
Amazon SNS 
Mobile Push 
Your 
Mobile 
App
Send Push Notifications: Amazon SNS Mobile Push
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.
Each platform works differently, and push gets even more 
complex as you scale to support millions of devices. 
Cloud App 
Platform Services Mobile Apps
Amazon SNS 
Cross-platform 
Mobile Push 
Internet 
Apple APNS 
Google GCM 
Baidu CP 
Amazon ADM 
Windows WNS and 
MPNS 
Industry’s First! 
New! 
iOS 
Apple iPhones and iPads 
Android Phones and Tablets in China 
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 
Kindle Fire Devices 
Windows Desktop and Windows Phone 
Devices
Developers Love Cross-Platform Features of SNS 
Customers love 
high scale and 
Reliability of SNS 
Fast reliable 
notification for every 
Email received is 
powered by SNS 
High-profile Startups 
trust SNS for their 
high-profile launches 
Secret.ly 
Mature games increase 
retention using SNS 
Advanced targeted 
notifications 
bring players back into 
the game 
Launched its Android 
App with SNS, no 
provisioning required 
Jetpack Joyride 
Fruit ninja
Amazon S3 
Transfer Manager 
Send push notifications 
Bring users back to your app by sending 
messages reliably 
Store shared data 
Store and query fast NoSQL data 
across users and devices 
Stream real-time data 
Collect real-time clickstream logs 
and take actions quickly 
Your 
Mobile 
App 
Authenticate users 
Amazon Cognito 
(Identity Broker) 
Authorize access 
AWS Identity and 
Access Management 
Synchronize data 
Amazon Cognito 
(Sync) 
Analyze User Behavior 
Amazon Mobile 
Analytics 
Track Retention 
Amazon Mobile 
Analytics 
Store and share media 
Deliver media 
Amazon CloudFront 
(Device Detection)
Authenticate users 
Amazon Cognito 
(Identity Broker) 
Authorize access 
AWS Identity and 
Access Management 
Analyze User Behavior 
Store and share media 
Synchronize data 
AWS Mobile SDK 
Amazon Mobile 
Analytics 
Deliver media 
Amazon Cognito 
(Sync) 
Amazon S3 
Transfer Manager 
Amazon CloudFront 
(Device Detection) 
Store shared data 
Amazon DynamoDB 
(Object Mapper) 
Stream real-time data 
Amazon Kinesis 
(Recorder) 
Track Retention 
Amazon Mobile 
Analytics 
Send push notifications 
Amazon SNS 
Mobile Push 
Your 
Mobile 
App
Collect real-time click-stream data: 
Amazon Kinesis Mobile Connector
Amazon Kinesis Connector for Mobile Apps 
Amazon 
Kinesis 
Kinesis S3 Redshift 
enabled 
Apps on 
EC2 
AWS 
Mobile 
SDK 
For sophisticated 
User Behavior 
Analysis 
Integrated AWS Mobile SDK 
Generic batching system that 
handles intermittent network 
connection and also optimize 
battery utilization
Summary
Authenticate users 
Manage users and 
identity providers 
Authorize access 
Securely access 
cloud resources 
Sync user prefs 
across devices 
Analyze User Behavior 
Store and share media 
Synchronize data 
Deliver media 
Send push notifications 
Store shared data 
Track active users, 
engagement 
Track Retention Stream real-time data 
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 
Amazon Cognito 
(Identity Broker) 
Authorize access 
AWS Identity and 
Access Management 
Analyze User Behavior 
Store and share media 
Synchronize data 
AWS Mobile SDK 
Amazon Mobile 
Analytics 
Deliver media 
Amazon Cognito 
(Sync) 
Amazon S3 
Transfer Manager 
Amazon CloudFront 
(Device Detection) 
Store shared data 
Amazon DynamoDB 
(Object Mapper) 
Stream real-time data 
Amazon Kinesis 
(Recorder) 
Track Retention 
Amazon Mobile 
Analytics 
Send push notifications 
Amazon SNS 
Mobile Push 
Your 
Mobile 
App
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) 
Mobile Optimized 
Services 
Mobile Optimized 
Connectors 
Core Building Block 
Services 
Your Mobile App, Game or Device App 
AWS Mobile SDK, API Endpoints, Management Console 
Compute Storage Networking Analytics Databases 
Integrated SDK
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) 
Mobile Optimized 
Services 
Mobile Optimized 
Connectors 
Core Building Block 
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
Get Started for Free! 
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
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
Thank You! 
#AWSUGHungary 
@danilop

More Related Content

What's hot

Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile Apps
Danilo Poccia
 
Build Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesBuild Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile Services
Amazon Web Services
 
Delivering Mobile Apps Using AWS Mobile Services
Delivering Mobile Apps Using AWS Mobile ServicesDelivering Mobile Apps Using AWS Mobile Services
Delivering Mobile Apps Using AWS Mobile Services
Amazon Web Services
 
AWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
AWS Cloud Kata 2014 | Jakarta - 2-2 MobileAWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
AWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
Amazon Web Services
 
AWS Webinar - 201 Developing mobile apps with AWS
AWS Webinar - 201 Developing mobile apps with AWSAWS Webinar - 201 Developing mobile apps with AWS
AWS Webinar - 201 Developing mobile apps with AWS
Amazon Web Services
 
Mobile applicationdevelopment
Mobile applicationdevelopmentMobile applicationdevelopment
Mobile applicationdevelopment
Amazon Web Services
 
Build a mobile app serverless with AWS Lambda
Build a mobile app serverless with AWS LambdaBuild a mobile app serverless with AWS Lambda
Build a mobile app serverless with AWS Lambda
TheFamily
 
Building Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit DiublinBuilding Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit Diublin
Amazon Web Services
 
Journey Through the Cloud - Mobile & Social Apps
Journey Through the Cloud - Mobile & Social AppsJourney Through the Cloud - Mobile & Social Apps
Journey Through the Cloud - Mobile & Social Apps
Amazon Web Services
 
Building mobile apps on AWS
Building mobile apps on AWSBuilding mobile apps on AWS
Building mobile apps on AWS
Amazon Web Services
 
AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...
AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...
AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...
Amazon Web Services
 
Build Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesBuild Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile Services
Amazon Web Services
 
AWS September Webinar Series - Build Cross-Platform Mobile Apps with AWS and...
AWS September Webinar Series -  Build Cross-Platform Mobile Apps with AWS and...AWS September Webinar Series -  Build Cross-Platform Mobile Apps with AWS and...
AWS September Webinar Series - Build Cross-Platform Mobile Apps with AWS and...
Amazon Web Services
 
Journey Through the Cloud - Social & Mobile Apps
Journey Through the Cloud - Social & Mobile Apps Journey Through the Cloud - Social & Mobile Apps
Journey Through the Cloud - Social & Mobile Apps
Amazon Web Services
 
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...Amazon Web Services
 
Add User Sign in and Management to your Apps with Amazon Cognito
Add User Sign in and Management to your Apps with Amazon CognitoAdd User Sign in and Management to your Apps with Amazon Cognito
Add User Sign in and Management to your Apps with Amazon Cognito
Amazon Web Services
 
Amazon Cognito
Amazon CognitoAmazon Cognito
Amazon Cognito
Amazon Web Services
 
Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...
Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...
Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...
Amazon Web Services
 
AWS Mobile Hub Overview
AWS Mobile Hub OverviewAWS Mobile Hub Overview
AWS Mobile Hub Overview
Amazon Web Services
 

What's hot (19)

Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile Apps
 
Build Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesBuild Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile Services
 
Delivering Mobile Apps Using AWS Mobile Services
Delivering Mobile Apps Using AWS Mobile ServicesDelivering Mobile Apps Using AWS Mobile Services
Delivering Mobile Apps Using AWS Mobile Services
 
AWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
AWS Cloud Kata 2014 | Jakarta - 2-2 MobileAWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
AWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
 
AWS Webinar - 201 Developing mobile apps with AWS
AWS Webinar - 201 Developing mobile apps with AWSAWS Webinar - 201 Developing mobile apps with AWS
AWS Webinar - 201 Developing mobile apps with AWS
 
Mobile applicationdevelopment
Mobile applicationdevelopmentMobile applicationdevelopment
Mobile applicationdevelopment
 
Build a mobile app serverless with AWS Lambda
Build a mobile app serverless with AWS LambdaBuild a mobile app serverless with AWS Lambda
Build a mobile app serverless with AWS Lambda
 
Building Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit DiublinBuilding Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit Diublin
 
Journey Through the Cloud - Mobile & Social Apps
Journey Through the Cloud - Mobile & Social AppsJourney Through the Cloud - Mobile & Social Apps
Journey Through the Cloud - Mobile & Social Apps
 
Building mobile apps on AWS
Building mobile apps on AWSBuilding mobile apps on AWS
Building mobile apps on AWS
 
AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...
AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...
AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...
 
Build Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesBuild Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile Services
 
AWS September Webinar Series - Build Cross-Platform Mobile Apps with AWS and...
AWS September Webinar Series -  Build Cross-Platform Mobile Apps with AWS and...AWS September Webinar Series -  Build Cross-Platform Mobile Apps with AWS and...
AWS September Webinar Series - Build Cross-Platform Mobile Apps with AWS and...
 
Journey Through the Cloud - Social & Mobile Apps
Journey Through the Cloud - Social & Mobile Apps Journey Through the Cloud - Social & Mobile Apps
Journey Through the Cloud - Social & Mobile Apps
 
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
 
Add User Sign in and Management to your Apps with Amazon Cognito
Add User Sign in and Management to your Apps with Amazon CognitoAdd User Sign in and Management to your Apps with Amazon Cognito
Add User Sign in and Management to your Apps with Amazon Cognito
 
Amazon Cognito
Amazon CognitoAmazon Cognito
Amazon Cognito
 
Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...
Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...
Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...
 
AWS Mobile Hub Overview
AWS Mobile Hub OverviewAWS Mobile Hub Overview
AWS Mobile Hub Overview
 

Viewers also liked

Benefits of Employee Education
Benefits of Employee EducationBenefits of Employee Education
Benefits of Employee Education
Venkatachalam Vaidhiyanathan
 
Media Applications on AWS
Media Applications on AWSMedia Applications on AWS
Media Applications on AWS
Danilo Poccia
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
Danilo Poccia
 
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and ToolsDeployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Danilo Poccia
 

Viewers also liked (6)

Benefits of Employee Education
Benefits of Employee EducationBenefits of Employee Education
Benefits of Employee Education
 
Session 4 Print
Session 4   PrintSession 4   Print
Session 4 Print
 
Jumpstart To Career
Jumpstart To CareerJumpstart To Career
Jumpstart To Career
 
Media Applications on AWS
Media Applications on AWSMedia Applications on AWS
Media Applications on AWS
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and ToolsDeployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
 

Similar to Building Cloud-Powered Mobile Apps

Mobile on AWS
Mobile on AWSMobile on AWS
Mobile on AWS
Amazon Web Services
 
Building mobile apps on aws
Building mobile apps on awsBuilding mobile apps on aws
Building mobile apps on aws
Amazon Web Services
 
Build high performing mobile apps, faster with AWS
Build high performing mobile apps, faster with AWSBuild high performing mobile apps, faster with AWS
Build high performing mobile apps, faster with AWS
Shiva Narayanaswamy
 
AWS Summit Seoul 2015 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화 (윤석찬, Markku Lepisto)
AWS Summit Seoul 2015 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화 (윤석찬, Markku Lepisto)AWS Summit Seoul 2015 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화 (윤석찬, Markku Lepisto)
AWS Summit Seoul 2015 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화 (윤석찬, Markku Lepisto)
Amazon Web Services Korea
 
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
Amazon Web Services
 
Social & Mobile Apps journey through the cloud
Social & Mobile Apps   journey through the cloudSocial & Mobile Apps   journey through the cloud
Social & Mobile Apps journey through the cloudIan Massingham
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWS
Amazon Web Services
 
Build Mobile Apps using AWS SDKs and AWS Mobile Hub
Build Mobile Apps using AWS SDKs and AWS Mobile HubBuild Mobile Apps using AWS SDKs and AWS Mobile Hub
Build Mobile Apps using AWS SDKs and AWS Mobile Hub
Amazon Web Services
 
02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_short02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_shortCodemotion
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWS
Amazon Web Services
 
(SPOT205) State of the Union: AWS Mobile Services and New World of Connected ...
(SPOT205) State of the Union: AWS Mobile Services and New World of Connected ...(SPOT205) State of the Union: AWS Mobile Services and New World of Connected ...
(SPOT205) State of the Union: AWS Mobile Services and New World of Connected ...
Amazon Web Services
 
Build Your Mobile App with AWS Mobile Services
Build Your Mobile App with AWS Mobile ServicesBuild Your Mobile App with AWS Mobile Services
Build Your Mobile App with AWS Mobile Services
Amazon Web Services
 
AWS Innovate 2016: Build Mobile Apps using AWS SDKs and Mobile Hub- Oliver Klein
AWS Innovate 2016: Build Mobile Apps using AWS SDKs and Mobile Hub- Oliver KleinAWS Innovate 2016: Build Mobile Apps using AWS SDKs and Mobile Hub- Oliver Klein
AWS Innovate 2016: Build Mobile Apps using AWS SDKs and Mobile Hub- Oliver Klein
Amazon Web Services Korea
 
Build Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesBuild Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile Services
Amazon Web Services
 
Improve monitoring and monetization of your mobile apps
Improve monitoring and monetization of your mobile appsImprove monitoring and monetization of your mobile apps
Improve monitoring and monetization of your mobile apps
Amazon Web Services
 
4. Carlos Conde - Amazon Web Services
4. Carlos Conde - Amazon Web Services4. Carlos Conde - Amazon Web Services
4. Carlos Conde - Amazon Web Services
MobCon
 
Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games
Amazon Web Services
 
Scaling your Mobile App Development in the Cloud - DevNexus
Scaling your Mobile App Development in the Cloud - DevNexusScaling your Mobile App Development in the Cloud - DevNexus
Scaling your Mobile App Development in the Cloud - DevNexus
Tara Walker
 
CIS14: Identity Management for the Cloud
CIS14: Identity Management for the CloudCIS14: Identity Management for the Cloud
CIS14: Identity Management for the Cloud
CloudIDSummit
 
Day 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKs
Day 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKsDay 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKs
Day 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKs
Amazon Web Services
 

Similar to Building Cloud-Powered Mobile Apps (20)

Mobile on AWS
Mobile on AWSMobile on AWS
Mobile on AWS
 
Building mobile apps on aws
Building mobile apps on awsBuilding mobile apps on aws
Building mobile apps on aws
 
Build high performing mobile apps, faster with AWS
Build high performing mobile apps, faster with AWSBuild high performing mobile apps, faster with AWS
Build high performing mobile apps, faster with AWS
 
AWS Summit Seoul 2015 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화 (윤석찬, Markku Lepisto)
AWS Summit Seoul 2015 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화 (윤석찬, Markku Lepisto)AWS Summit Seoul 2015 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화 (윤석찬, Markku Lepisto)
AWS Summit Seoul 2015 - 모바일 및 IoT 환경을 위한 AWS 클라우드 플랫폼의 진화 (윤석찬, Markku Lepisto)
 
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
 
Social & Mobile Apps journey through the cloud
Social & Mobile Apps   journey through the cloudSocial & Mobile Apps   journey through the cloud
Social & Mobile Apps journey through the cloud
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWS
 
Build Mobile Apps using AWS SDKs and AWS Mobile Hub
Build Mobile Apps using AWS SDKs and AWS Mobile HubBuild Mobile Apps using AWS SDKs and AWS Mobile Hub
Build Mobile Apps using AWS SDKs and AWS Mobile Hub
 
02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_short02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_short
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWS
 
(SPOT205) State of the Union: AWS Mobile Services and New World of Connected ...
(SPOT205) State of the Union: AWS Mobile Services and New World of Connected ...(SPOT205) State of the Union: AWS Mobile Services and New World of Connected ...
(SPOT205) State of the Union: AWS Mobile Services and New World of Connected ...
 
Build Your Mobile App with AWS Mobile Services
Build Your Mobile App with AWS Mobile ServicesBuild Your Mobile App with AWS Mobile Services
Build Your Mobile App with AWS Mobile Services
 
AWS Innovate 2016: Build Mobile Apps using AWS SDKs and Mobile Hub- Oliver Klein
AWS Innovate 2016: Build Mobile Apps using AWS SDKs and Mobile Hub- Oliver KleinAWS Innovate 2016: Build Mobile Apps using AWS SDKs and Mobile Hub- Oliver Klein
AWS Innovate 2016: Build Mobile Apps using AWS SDKs and Mobile Hub- Oliver Klein
 
Build Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesBuild Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile Services
 
Improve monitoring and monetization of your mobile apps
Improve monitoring and monetization of your mobile appsImprove monitoring and monetization of your mobile apps
Improve monitoring and monetization of your mobile apps
 
4. Carlos Conde - Amazon Web Services
4. Carlos Conde - Amazon Web Services4. Carlos Conde - Amazon Web Services
4. Carlos Conde - Amazon Web Services
 
Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games
 
Scaling your Mobile App Development in the Cloud - DevNexus
Scaling your Mobile App Development in the Cloud - DevNexusScaling your Mobile App Development in the Cloud - DevNexus
Scaling your Mobile App Development in the Cloud - DevNexus
 
CIS14: Identity Management for the Cloud
CIS14: Identity Management for the CloudCIS14: Identity Management for the Cloud
CIS14: Identity Management for the Cloud
 
Day 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKs
Day 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKsDay 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKs
Day 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKs
 

More from Danilo Poccia

Get Value from Your Data
Get Value from Your DataGet Value from Your Data
Get Value from Your Data
Danilo Poccia
 
Building Event-Driven Serverless Applications
Building Event-Driven Serverless ApplicationsBuilding Event-Driven Serverless Applications
Building Event-Driven Serverless Applications
Danilo Poccia
 
Connecting the Unconnected: IoT Made Simple
Connecting the Unconnected: IoT Made SimpleConnecting the Unconnected: IoT Made Simple
Connecting the Unconnected: IoT Made Simple
Danilo Poccia
 
Building Event-driven Serverless Apps
Building Event-driven Serverless AppsBuilding Event-driven Serverless Apps
Building Event-driven Serverless Apps
Danilo Poccia
 
An Introduction to AWS IoT
An Introduction to AWS IoTAn Introduction to AWS IoT
An Introduction to AWS IoT
Danilo Poccia
 
Event-driven (serverless) Applications
Event-driven (serverless) ApplicationsEvent-driven (serverless) Applications
Event-driven (serverless) Applications
Danilo Poccia
 
Machine Learning for Developers
Machine Learning for DevelopersMachine Learning for Developers
Machine Learning for Developers
Danilo Poccia
 
Masterclass Advanced Usage of the AWS CLI
Masterclass Advanced Usage of the AWS CLIMasterclass Advanced Usage of the AWS CLI
Masterclass Advanced Usage of the AWS CLI
Danilo Poccia
 
Cloud-powered Mobile Apps
Cloud-powered Mobile AppsCloud-powered Mobile Apps
Cloud-powered Mobile Apps
Danilo Poccia
 
Get Value From Your Data
Get Value From Your DataGet Value From Your Data
Get Value From Your Data
Danilo Poccia
 
Amazon Elastic File System (Amazon EFS)
Amazon Elastic File System (Amazon EFS)Amazon Elastic File System (Amazon EFS)
Amazon Elastic File System (Amazon EFS)
Danilo Poccia
 
AWS Mobile Hub Overview
AWS Mobile Hub OverviewAWS Mobile Hub Overview
AWS Mobile Hub Overview
Danilo Poccia
 
Data Analytics on AWS
Data Analytics on AWSData Analytics on AWS
Data Analytics on AWS
Danilo Poccia
 
Managing Containers at Scale
Managing Containers at ScaleManaging Containers at Scale
Managing Containers at Scale
Danilo Poccia
 
Amazon API Gateway and AWS Lambda: Better Together
Amazon API Gateway and AWS Lambda: Better TogetherAmazon API Gateway and AWS Lambda: Better Together
Amazon API Gateway and AWS Lambda: Better Together
Danilo Poccia
 
Amazon Aurora Let's Talk About Performance
Amazon Aurora Let's Talk About PerformanceAmazon Aurora Let's Talk About Performance
Amazon Aurora Let's Talk About Performance
Danilo Poccia
 
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API GatewayBuild a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Danilo Poccia
 
Amazon Aurora: Amazon’s New Relational Database Engine
Amazon Aurora: Amazon’s New Relational Database EngineAmazon Aurora: Amazon’s New Relational Database Engine
Amazon Aurora: Amazon’s New Relational Database Engine
Danilo Poccia
 
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API GatewayBuild a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Danilo Poccia
 
Infrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with GitInfrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with Git
Danilo Poccia
 

More from Danilo Poccia (20)

Get Value from Your Data
Get Value from Your DataGet Value from Your Data
Get Value from Your Data
 
Building Event-Driven Serverless Applications
Building Event-Driven Serverless ApplicationsBuilding Event-Driven Serverless Applications
Building Event-Driven Serverless Applications
 
Connecting the Unconnected: IoT Made Simple
Connecting the Unconnected: IoT Made SimpleConnecting the Unconnected: IoT Made Simple
Connecting the Unconnected: IoT Made Simple
 
Building Event-driven Serverless Apps
Building Event-driven Serverless AppsBuilding Event-driven Serverless Apps
Building Event-driven Serverless Apps
 
An Introduction to AWS IoT
An Introduction to AWS IoTAn Introduction to AWS IoT
An Introduction to AWS IoT
 
Event-driven (serverless) Applications
Event-driven (serverless) ApplicationsEvent-driven (serverless) Applications
Event-driven (serverless) Applications
 
Machine Learning for Developers
Machine Learning for DevelopersMachine Learning for Developers
Machine Learning for Developers
 
Masterclass Advanced Usage of the AWS CLI
Masterclass Advanced Usage of the AWS CLIMasterclass Advanced Usage of the AWS CLI
Masterclass Advanced Usage of the AWS CLI
 
Cloud-powered Mobile Apps
Cloud-powered Mobile AppsCloud-powered Mobile Apps
Cloud-powered Mobile Apps
 
Get Value From Your Data
Get Value From Your DataGet Value From Your Data
Get Value From Your Data
 
Amazon Elastic File System (Amazon EFS)
Amazon Elastic File System (Amazon EFS)Amazon Elastic File System (Amazon EFS)
Amazon Elastic File System (Amazon EFS)
 
AWS Mobile Hub Overview
AWS Mobile Hub OverviewAWS Mobile Hub Overview
AWS Mobile Hub Overview
 
Data Analytics on AWS
Data Analytics on AWSData Analytics on AWS
Data Analytics on AWS
 
Managing Containers at Scale
Managing Containers at ScaleManaging Containers at Scale
Managing Containers at Scale
 
Amazon API Gateway and AWS Lambda: Better Together
Amazon API Gateway and AWS Lambda: Better TogetherAmazon API Gateway and AWS Lambda: Better Together
Amazon API Gateway and AWS Lambda: Better Together
 
Amazon Aurora Let's Talk About Performance
Amazon Aurora Let's Talk About PerformanceAmazon Aurora Let's Talk About Performance
Amazon Aurora Let's Talk About Performance
 
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API GatewayBuild a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
 
Amazon Aurora: Amazon’s New Relational Database Engine
Amazon Aurora: Amazon’s New Relational Database EngineAmazon Aurora: Amazon’s New Relational Database Engine
Amazon Aurora: Amazon’s New Relational Database Engine
 
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API GatewayBuild a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
 
Infrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with GitInfrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with Git
 

Building Cloud-Powered Mobile Apps

  • 1. Building Cloud-powered Mobile Apps Danilo Poccia, Technical Evangelist October 15th, 2014
  • 3. Enterprise Applications Virtual Desktops Collaboration and Sharing Platform Services Database s Relational No SQL Caching Analytics Hadoop Real-time Data Warehouse Data Workflows App Services Queuing Orchestration App Streaming Transcoding Email Search Deployment & Management Containers Dev/ops Tools Resource Templates Usage Tracking Monitoring and Logs Mobile Services Identity Sync Mobile Analytics Notifications Foundation Services Compute (VMs, Auto-scaling and Load Balancing) Storage (Object, Block and Archive) Security & Access Control Networking Infrastructure Regions Availability Zones CDN and Points of Presence AWS Overview
  • 4. Regions US-WEST (N. California) EU-WEST (Ireland) ASIA PAC (Tokyo) ASIA PAC (Singapore) US-WEST (Oregon) US-EAST (Virginia) SOUTH AMERICA (Sao Paulo) GOV CLOUD ASIA PAC (Sydney) CHINA AWS Global Infrastructure
  • 5. Availability Zones AWS Global Infrastructure
  • 6. Edge Locations Seattle Dallas(2) St.Louis Miami New York (3) Marseille Jacksonville Palo Alto Los Angeles (2) London(2) Ashburn(3) Newark Dublin Amsterdam (3) Stockholm Frankfurt(3) Paris(2) Singapore (2) Tokyo (2) Taipei Hong Kong (2) Sao Paulo South Bend San Jose Milan Sydney Madrid Seoul Mumbai Chennai Atlanta Hayward Rio de Janeiro Warsaw Osaka Manila Melbourne AWS Global Infrastructure
  • 7. AWS Console Self-service On demand Pay as you go API-based AWS Console SDKs CLI Tools
  • 8. How to build a mobile app today?
  • 9. Authenticate users Manage users and identity providers Authorize access Securely access cloud resources Sync user prefs across devices Analyze User Behavior Store and share media Synchronize data Deliver media Send push notifications Store shared data Track active users, engagement Track Retention Stream real-time data 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
  • 10. 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) Mobile Optimized Services Mobile Optimized Connectors Core Building Block Services Your Mobile App, Game or Device App AWS Mobile SDK, API Endpoints, Management Console Compute Storage Networking Analytics Databases Integrated SDK
  • 11. Cross-platform, Optimized for Mobile User identity & data synchronization service Fast cross-platform Analytics & reporting Service Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push Kinesis Connector DynamoDB Connector S3 Connector SQS ConnectorSES Connector Store any NoSQL data and also map mobile OS specific objects to DynamoDB tables 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
  • 12. Fully Integrated AWS Mobile SDK • Common authentication mechanism across all services • Automatically handle intermittent network connections • Cross-platform Support: Android, iOS, Fire OS, Xamarin • 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
  • 13. Authenticate users Manage users and identity providers Authorize access Securely access cloud resources Sync user prefs across devices Analyze User Behavior Store and share media Synchronize data Deliver media Send push notifications Store shared data Track active users, engagement Track Retention Stream real-time data 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
  • 14. Authenticate users Amazon Cognito (Identity Broker) Authorize access AWS Identity and Access Management Analyze User Behavior Store and share media Synchronize data AWS Mobile SDK Amazon Mobile Analytics Deliver media Amazon Cognito (Sync) Amazon S3 Transfer Manager Amazon CloudFront (Device Detection) Store shared data Amazon DynamoDB (Object Mapper) Stream real-time data Amazon Kinesis (Recorder) Track Retention Amazon Mobile Analytics Send push notifications Amazon SNS Mobile Push Your Mobile App
  • 16. Amazon Cognito “Your App data is secure, available offline, and kept in sync between devices” Simplifies Identity and Access Management Securely access all AWS services from Mobile device Cross-device and Cross-platform Sync Implement security best practices Synchronize user’s data across devices and platforms Guest Developer Authenticated Identities Manage users as unique identities across identity providers
  • 17. Unique Joe Anna Bob Identities Identity Providers Any Device Any Platform Any AWS Service Amazon Cognito Identity Support Multiple Login Providers Easily integrate with major login providers for authentication. Unique Users vs. Devices Manage unique identities. Automatically recognize unique user across devices and platforms. Helps implement security best practices Securely access any AWS Service from mobile device. It simplifies the interaction with AWS Identity and Access Management Mobile Analytics Developer Authenticated Identities S3 DynamoDB Kinesis
  • 18. Amazon Cognito for Unauthenticated Identities Guest User Access Securely access AWS resources and leverage app features without the need to create an account or logging in Save Data to the Cloud Save app and device data to the cloud and merge them after login Unique Identifier for Your “Things” “Headless” connected devices can also securely access cloud services. Visitor Preferences Guest Cognito Store EC2 S3 DynamoDB Kinesis
  • 19. Getting Started with Cognito in 3 steps Sign up for AWS Account and login to AWS Management Console Create identitypool for authenticated and unauthenticated users in the AWS Console Download and integrate the Mobile SDK and store and sync user data in a dataset
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. Amazon Cognito Security 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 Set granular access permissions on AWS resources Get fine-grained access control to cloud resources. EC2 S3 DynamoDB Kinesis
  • 27. Amazon Cognito Security Architecture User ID (Temp Credentials) DynamoDB End Users Developer App w/SDK Developer Authenticated Identities Access 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
  • 28. Authorize access: Amazon Cognito + AWS IAM + Fine-grained access control
  • 29. Amazon Cognito (Identity Broker) Identitypool Identity Providers Pool of identities that share the same trust policy Access Policy Access to AWS Services identitypool authenticated identities Unauthenticated Identities AWS IAM Roles AWS Account Web Identity Federation S3 DynamoDB Get Delete Put Developer Authenticated Identities
  • 30. 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
  • 31. 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 ..
  • 32. 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)
  • 33. Access Policy Restriction (Policy Variables) Allow Actions: All sync operations Resource: Only to that identity { "Effect":"Allow", "Action":"cognito-sync:*", "Resource":["arn:aws:cognito-sync:us-east-1: { "Effect": "Allow”, "Action": ["s3:GetObject”,"s3:PutObject”], "Resource": ["arn:aws:s3::: myBucket/amazon/snakegame/ ${cognito-identity.amazonaws.com:sub}"] } 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
  • 34. Synchronize data across devices : Amazon Cognito (Sync)
  • 35. 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.
  • 36. Amazon Cognito Sync User Data Storage and Sync Any Platform Identity pool iOS/Android/FireOS Store App Data, Preferences and State Save 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 Offline Data always stored in local SQLite DB first. Works seamlessly when intermittent or no connectivity k/v data
  • 37. 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
  • 38. Amazon Cognito Sync Data Model AWS Account Identitypool identitypool Dataset Pool of identities that share the same trust policy Identity Identity Identity Dataset Dataset 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 1:n Dataset Dataset Key/Value Key-value and sync count
  • 39. Amazon Cognito Sync Data Model - Example AWS Account 1:n Identitypool identitypool 1:n Identity Identity Identity 1:n Dataset Dataset Dataset Developer has two apps: a game and a productivity app User preferences Game state Identitypool1 Productivity App Game App 1:n Dataset Dataset Key/Value
  • 40. Integrating Cognito Sync functionality is very simple Initialize the CredentialsProvider and CognitoClient provider = new CognitoCredentialsProvider(context, AWS_ACCOUNT_ID, COGNITO_POOL_ID, COGNTIO_ROLE_UNAUTH, COGNITO_ROLE_AUTH); cognito = new DefaultCognitoSyncClient(context, COGNITO_POOL_ID, provider); Create or open Dataset and Add Key Values cognito.openOrCreateDataset(datasetName); dataset.put(key, value); Call synchronize on the dataset dataset.synchronize(new SyncCallback(){..});
  • 41. Integrating Cognito Sync functionality is very simple Initialize the AWSCognitoSyncClient AWSCognitoSyncClient *syncClient = [[AWSCognitoSyncClient alloc] initWithConfiguration: configuration]; Create or open Dataset and Add Key Values DataSet *dataset = [syncClient openOrCreateDataSet:@"myDataSet"]; NSString *value = [dataset readStringForKey:@"myKey"]; [dataset putString:@"my value" forKey:@"myKey"]; Call synchronize on the dataset [dataset synchronize]; iOS
  • 42. Amazon Cognito (Identity Broker) AWS Identity and Access Management Analyze User Behavior Store and share media Deliver media Send push notifications Store shared data Track active users, engagement Track Retention Stream real-time data 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 data Amazon Cognito (Sync)
  • 43. Analyze User Behavior: Amazon Mobile Analytics
  • 44. Developer Economics | State of the Developer Nation Q3 2014 | © VisionMobile | All rights reserved | www.developereconomics.com/go 27
  • 45. 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
  • 46. 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.
  • 47. Amazon Mobile Analytics “Easily collect, visualize and understand your app usage data at scale” Scalable and Generous Free Tier Fast Focus on metrics that matter. Usage reports available within 60 minutes of receiving data from an app Scale to billions of events per day from millions of users. Own Your Data Data collected are not shared, aggregated, or reused
  • 48. 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 Download and integrate the Mobile SDK with one line of code (Android/FireOS, iOS) View engagement and session activity reports in the AWS Management console within minutes
  • 49.
  • 50. 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
  • 51. 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
  • 52. Track Custom Events 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 Number of songs played, per user session, in a music app Understand player abort rates per level, in a game In-app item popularity in a shopping app
  • 53. Integrating Mobile Analytics is super simple Initialize the AmazonMobileAnalyticsClient. That’s it! Get Session Activity in the AWS Management Console. analytics = new AmazonMobileAnalytics(provider, context, "SnakeGameAWS”); Add OnResume() and OnPause() analytics.getSessionClient().resumeSession(); analytics.getSessionClient().pauseSession(); Analytics.getEventClient().submitEvents(); For Custom Events activity reports, add events. EventClient eventClient = analytics.getEventClient(); MobileAnalyticsEvent visitEvent = eventClient.createEvent("speedSet"); eventClient.recordEvent(visitEvent);
  • 54. Integrating Mobile Analytics is super simple Initialize the AmazonMobileAnalytics object. That’s it! Get Session Activity in the AWS Management Console. AWSMobileAnalytics* analytics = [AWSMobileAnalytics defaultAWSMobileAnalyticsWithIdentifier:@"someuniqueid"]; Create add Custom Events id<AWSMobileAnalyticsEventClient> eventClient = analytics.eventClient; id<AWSMobileAnalyticsEvent> level1Event = [eventClient createEventWithEventType:@"level1Complete"]; Submit the event. If we don't call submitEvents, events will automatically be submitted at periodic intervals. [eventClient submitEvents]; iOS
  • 55. Store and share media Store user-generated photos Media and share them Deliver media Automatically detect mobile devices Deliver content quickly globally Send push notifications Bring users back to your app by sending messages reliably Store shared data Store and query fast NoSQL data across users and devices Stream real-time data Collect real-time clickstream logs and take actions quickly Your Mobile App Authenticate users Amazon Cognito (Identity Broker) Authorize access AWS Identity and Access Management Synchronize data Amazon Cognito (Sync) Analyze User Behavior Amazon Mobile Analytics Track Retention Amazon Mobile Analytics
  • 56. Store and share media: Amazon S3
  • 57. 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
  • 58. Amazon S3 Connector: Transfer Manager // 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];
  • 59. Amazon S3 Transfer Manager Send push notifications Bring users back to your app by sending messages reliably Store shared data Store and query fast NoSQL data across users and devices Stream real-time data Collect real-time clickstream logs and take actions quickly Your Mobile App Authenticate users Amazon Cognito (Identity Broker) Authorize access AWS Identity and Access Management Synchronize data Amazon Cognito (Sync) Analyze User Behavior Amazon Mobile Analytics Track Retention Amazon Mobile Analytics Store and share media Deliver media Amazon CloudFront (Device Detection)
  • 60. Authenticate users Amazon Cognito (Identity Broker) Authorize access AWS Identity and Access Management Analyze User Behavior Store and share media Synchronize data AWS Mobile SDK Amazon Mobile Analytics Deliver media Amazon Cognito (Sync) Amazon S3 Transfer Manager Amazon CloudFront (Device Detection) Store shared data Amazon DynamoDB (Object Mapper) Stream real-time data Amazon Kinesis (Recorder) Track Retention Amazon Mobile Analytics Send push notifications Amazon SNS Mobile Push Your Mobile App
  • 61. Send Push Notifications: Amazon SNS Mobile Push
  • 62. 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.
  • 63. Each platform works differently, and push gets even more complex as you scale to support millions of devices. Cloud App Platform Services Mobile Apps
  • 64. Amazon SNS Cross-platform Mobile Push Internet Apple APNS Google GCM Baidu CP Amazon ADM Windows WNS and MPNS Industry’s First! New! iOS Apple iPhones and iPads Android Phones and Tablets in China 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 Kindle Fire Devices Windows Desktop and Windows Phone Devices
  • 65. Developers Love Cross-Platform Features of SNS Customers love high scale and Reliability of SNS Fast reliable notification for every Email received is powered by SNS High-profile Startups trust SNS for their high-profile launches Secret.ly Mature games increase retention using SNS Advanced targeted notifications bring players back into the game Launched its Android App with SNS, no provisioning required Jetpack Joyride Fruit ninja
  • 66. Amazon S3 Transfer Manager Send push notifications Bring users back to your app by sending messages reliably Store shared data Store and query fast NoSQL data across users and devices Stream real-time data Collect real-time clickstream logs and take actions quickly Your Mobile App Authenticate users Amazon Cognito (Identity Broker) Authorize access AWS Identity and Access Management Synchronize data Amazon Cognito (Sync) Analyze User Behavior Amazon Mobile Analytics Track Retention Amazon Mobile Analytics Store and share media Deliver media Amazon CloudFront (Device Detection)
  • 67. Authenticate users Amazon Cognito (Identity Broker) Authorize access AWS Identity and Access Management Analyze User Behavior Store and share media Synchronize data AWS Mobile SDK Amazon Mobile Analytics Deliver media Amazon Cognito (Sync) Amazon S3 Transfer Manager Amazon CloudFront (Device Detection) Store shared data Amazon DynamoDB (Object Mapper) Stream real-time data Amazon Kinesis (Recorder) Track Retention Amazon Mobile Analytics Send push notifications Amazon SNS Mobile Push Your Mobile App
  • 68. Collect real-time click-stream data: Amazon Kinesis Mobile Connector
  • 69. Amazon Kinesis Connector for Mobile Apps Amazon Kinesis Kinesis S3 Redshift enabled Apps on EC2 AWS Mobile SDK For sophisticated User Behavior Analysis Integrated AWS Mobile SDK Generic batching system that handles intermittent network connection and also optimize battery utilization
  • 71. Authenticate users Manage users and identity providers Authorize access Securely access cloud resources Sync user prefs across devices Analyze User Behavior Store and share media Synchronize data Deliver media Send push notifications Store shared data Track active users, engagement Track Retention Stream real-time data 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
  • 72. Authenticate users Amazon Cognito (Identity Broker) Authorize access AWS Identity and Access Management Analyze User Behavior Store and share media Synchronize data AWS Mobile SDK Amazon Mobile Analytics Deliver media Amazon Cognito (Sync) Amazon S3 Transfer Manager Amazon CloudFront (Device Detection) Store shared data Amazon DynamoDB (Object Mapper) Stream real-time data Amazon Kinesis (Recorder) Track Retention Amazon Mobile Analytics Send push notifications Amazon SNS Mobile Push Your Mobile App
  • 73. 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) Mobile Optimized Services Mobile Optimized Connectors Core Building Block Services Your Mobile App, Game or Device App AWS Mobile SDK, API Endpoints, Management Console Compute Storage Networking Analytics Databases Integrated SDK
  • 74. 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) Mobile Optimized Services Mobile Optimized Connectors Core Building Block 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
  • 75. Get Started for Free! 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
  • 76. 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

Editor's Notes

  1. The moment you have more than one device, the cloud becomes the logical place to do work and store stuff.  AWS provides a great platform for mobile developers regardless of where the device comes from, what operating system it runs, and what a developer wants to do with it. 
  2. Such services are fully integrated with the rest of AWS offering, are optimized for mobile use cases, are accessible via a single Mobile SDK and share the same scalable, on-demand, global infrastructure of all our other AWS services.
  3. These services are optimized for mobile OS and make it dead easy to get started when using the SDK. They add a lot of functionality for example Kinesis and Analytics automatically buffer records and events to handle intermittent connection. Kinesis support in the SDK, you can directly ingest large amounts of streaming data from around the world to Kinesis Stream which automatically handles shard. SDK is a great wrapper to handle distributed systems issues, such as automatic retries and so on. Our Mobile SDK adds even more functionality above the normal SDK such as resume, cancel in case of S3 etc.
  4. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  5. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  6. Amazon Cognito is a simple user identity and data synchronization service that makes it easy for developers to securely manage application data for your users across their mobile devices. Developers can create unique identities for your users with information from a number of public login providers Developers can save application data locally on the device and then securely sync and save this data to the cloud so your application can work online and offline. Developers can save any kind of data in Key/Value pairs such as application preferences or game state in the AWS Cloud, without having to write any backend code or manage any infrastructure. This means you can focus on creating great application experiences instead of having to worry about building and managing a backend solution to handle identity, network state, storage, and sync.
  7. One of the key benefits of Amazon Cognito is its Identity broker component. It creates a unique identifer and matches it when user’s login with any of the login providers. Developers have the flexibility to choose any login provider, in v1, we support G+, Amazon and Facebook and you can easily integrate using the SDK. We focus on users and not login providers and manage the user preferences for that users.   Implementing AWS security best practices for accessing cloud resources with Amazon Cognito is easy. Amazon Cognito gives each app a set of temporary, limited privilege AWS credentials for each app user to access all AWS services.
  8. We have seen that 90% users simply consumers of data and only 10% are actually content creators. Unauthenticated guest users are users just like logged in users. We should focus more on them, build services for them, and treat them like users, not second class citizens. Amazon Cognito simplifies the way your application can access AWS resources in a secure manner, following AWS security best practices, even when your application users are not authenticated.  Amazon Cognito creates a random, unique identifier for each unauthenticated guest so you can start saving application data for those users and also leverage the temporary, limited privilege credentials Amazon Cognito provides to access other AWS resources, such as Amazon S3 and Amazon DynamoDB. When your users decide to authenticate using one of the supported public login providers, Amazon Cognito ensures the data you saved against the unauthenticated profile is now associated with the new authenticated profile removing the complexity of managing user conversion. By registering an unauthenticated user   or by sending a login provider token to Amazon Cognito, your application receives a set of temporary, limited privilege credentials from Amazon Cognito to access your AWS resources. Amazon Cognito takes care of all the steps necessary to create a unique identifier for your app’s users and retrieve the AWS credentials. Incorporating AWS security best practices now takes just a few lines of code.
  9. We have seen that 90% users simply consumers of data and only 10% are actually content creators. Unauthenticated guest users are users just like logged in users. We should focus more on them, build services for them, and treat them like users, not second class citizens. Amazon Cognito simplifies the way your application can access AWS resources in a secure manner, following AWS security best practices, even when your application users are not authenticated.  Amazon Cognito creates a random, unique identifier for each unauthenticated guest so you can start saving application data for those users and also leverage the temporary, limited privilege credentials Amazon Cognito provides to access other AWS resources, such as Amazon S3 and Amazon DynamoDB. When your users decide to authenticate using one of the supported public login providers, Amazon Cognito ensures the data you saved against the unauthenticated profile is now associated with the new authenticated profile removing the complexity of managing user conversion. By registering an unauthenticated user   or by sending a login provider token to Amazon Cognito, your application receives a set of temporary, limited privilege credentials from Amazon Cognito to access your AWS resources. Amazon Cognito takes care of all the steps necessary to create a unique identifier for your app’s users and retrieve the AWS credentials. Incorporating AWS security best practices now takes just a few lines of code.
  10. Architecturally, Amazon Cognito has two parts: Cognito identity Broker and Cognito Sync Store. Users first login with login provider of their choice and App with SDK does the rest. In the past, to access cloud services, developers embed aws credentials which is access key id and secret key within the application, this is highly unsecure because it is easy to unip the apk file and get access to keys. Now we make it extremely secure by not only create temprory creds that are valid only for one hour but also limiting the access to other data. The users only have access to store and sync in their own dataset. Once you get the temp cred, you can access other AWS services like S3 to store video, for example, DynamoDB to store shared data like leaderboards, kinesis to store streaming data logs and so on.
  11. Our policy allows access to all
  12. We can restrict to the bucket for S3
  13. We can add a restriction by username/id but our policy is for everyone who assumes the role
  14. We can add a restriction by username/id but our policy is for everyone who assumes the role
  15. As we all know the number of devices per user is going down any time soon. Customers have told us users with multiple devices want to be able to transition between devices seamlessly. They want a roaming synchronized app profile so they can pick up their tablet and continue playing a game at the same level they achieved on their phone. Turns out sync at scale is an hard problem to solve. Additionally, they want to be able to access their profile even when their device is offline. To date, developers wanting to implement roaming profile functionality in their apps have had to roll their own solution or use a system tied only to a particular login provider. This either requires the developer to do more work or to limit their cross platform story.
  16. With Amazon Cognito developers can synchronize application data across an end user’s devices with a single line of code. With Amazon Cognito, developers can securely store application data, such as preferences and game state in the AWS cloud. With synchronized application data, developers can give your users a consistent, unified experience on their app across all of their mobile devices. Developers can use Amazon Cognito directly from their mobile app without building or maintaining any backend infrastructure. Amazon Cognito handles secure application data storage and sync, enabling them to focus on their application experiences, instead of the heavy lifting of creating and managing a user application data sync solution. It manages the complexity of conflict resolution and intermittent network connectivity by managing offline cache ensuring your application can always deliver a great user experience. Each data set in the Amazon Cognito sync store can be synchronized on all devices associated with an identity simply by calling the synchronize () method.
  17. One identitypool across advertizers Cognito id becomes a cookie id
  18. SMS international Push Deliverity stats from Apple Latency/reliability SMS verification Support for inbound SMS SMS China? Regions exansion sync Username and password.
  19. Mobile Analytics is a service for collecting, visualizing and understanding app usage data at scale. Mobile Analytics is Fast, with reports typically updated within 60 minutes from when data are received. The service free up to XX million events/month (TBD), and scalable to process billions of events per day from million of users Your data stays confidential: Amazon does not own, share or monetize your data. 5. Mobile Analytics is cross-platform service that works with iOS, Android and Fire OS apps using our SDK, or with a Connected Device or a Server using the REST API
  20. Mobile Analytics is a service for collecting, visualizing and understanding app usage data at scale. Mobile Analytics is Fast, with reports typically updated within 60 minutes from when data are received. The service free up to XX million events/month (TBD), and scalable to process billions of events per day from million of users Your data stays confidential: Amazon does not own, share or monetize your data. 5. Mobile Analytics is cross-platform service that works with iOS, Android and Fire OS apps using our SDK, or with a Connected Device or a Server using the REST API
  21. Amazon Analytics is a service for collecting, visualizing and understanding app usage data at scale. The Amazon Analytics service is free , reports are updated within minutes from when data are received, and the data collected are owned by you. It is built to scale with your business and can collect and process billions of events per day from many millions of users. It’s a crossplatform services, any device any OS (Android, IOS, FireOS) can send data to Analytics service and see granular reports
  22. Custom Events let you track any action taken in your app, giving you an incredibly powerful insight into your user’s experience and behavior. Custom Events are often used to track social events such as number of Likes/Shares, app specific events such as play progress/song played, and in-app purchase events such as transactions per product SKU. Songs played is the custom even per session. Attribute numerical value associated with the data metric. Attribute: Weaponsused sword, how many people used the sword?
  23. Bulk update and backin time.
  24. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  25. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  26. Today push notifications is the way to get to the app when the user is not using. It is extremely important functionality to drive engagement, retention and overal user experience. Customers tell us that working with diferent push notifications services is painful. They have to maintain serverside database of tokens issued by apple and android, and maintain the infastructure and different APIs. Moreover, sending push notifications to different parts of the world for example china, where there are more than 200 android appstores is extremely hard.
  27. Amazon SNS Mobile Push is a managed, scalable, cross-platform push intermediary service. It abstracts the complexity of different push notification services and allows developers to send push notifications across different mobile endpoints. You can subscribe to topics and and send messages which is then relayed to apple and google notifications services
  28. Customers love high scale and Reliability of SNS Fast reliable notification for every Email received is powered by SNS High-profile Startups trust SNS for their high-profile launches Launched its Android App with SNS, no provisioning required Mature games increase retention using SNS Advanced targeted notifications bring players back into the game
  29. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  30. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  31. draft
  32. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  33. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  34. Such services are fully integrated with the rest of AWS offering, are optimized for mobile use cases, are accessible via a single Mobile SDK and share the same scalable, on-demand, global infrastructure of all our other AWS services.
  35. Such services are fully integrated with the rest of AWS offering, are optimized for mobile use cases, are accessible via a single Mobile SDK and share the same scalable, on-demand, global infrastructure of all our other AWS services.
  36. Amazon Cognito has a simple pay as you go pricing plan, with no upfront costs. You pay only for what you use.    Authenticating users and generating unique identifiers is free with Amazon Cognito. Upon sign-up, new AWS customers receive 10 GB of cloud sync store and 1,000,000 sync operations per month.   Charges are based on the total amount of data saved in the Amazon Cognito cloud  sync store and the number of sync operations performed. Amazon Analytics is almost free with 100 million events/month and just a 50 cents for millionevents there after.