SlideShare a Scribd company logo

(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014

Learn how to build a powerful Android app that leverages a variety of AWS services. In this three-hour, demo-heavy workshop, we show how you can build a modern native client app using the AWS Mobile SDK that uses a number of cross-platform mobile cloud services directly with minimal code on the client. We share best practices for building a highly scalable backend so you can add your own functionality. This is a step-by-step journey where you configure and add components to your architecture, then modify and test your components inside a mobile location-based messaging application. In the end, you will have a mobile application with your own backend consisting of different AWS services including: Amazon Cognito, Amazon Mobile Analytics, Amazon SNS Push Notification, Amazon S3, Amazon CloudFront, Amazon CloudSearch, Amazon DynamoDB, Amazon SQS, and AWS Elastic Beanstalk.

1 of 140
Download to read offline
November 14, 2014 | Las Vegas, NV 
Danilo Poccia, Amazon Web Services
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Authenticate users 
Authorize access 
Analyze User Behavior 
Store and share media 
Synchronize data 
Deliver media 
Store shared data 
Stream real-time data 
Track Retention 
Send push notifications 
Manage users and 
identity providers 
Securely access 
cloud resources 
Sync user prefs 
across devices 
Track active users, 
engagement 
Manage funnels, 
Campaign performances 
Store user-generated photos 
Media and share them 
Automatically detect mobile devices 
Deliver content quickly globally 
Bring users back to your app by sending 
messages reliably 
Store and query fast NoSQLdata 
across users and devices 
Collect real-time clickstream logs 
and take actions quickly 
Your Mobile App
Authenticate users 
Authorize access 
Analyze User Behavior 
Store and share media 
Synchronize data 
AWS Mobile SDK 
Amazon Mobile 
Analytics 
Deliver media 
Amazon Cognito 
(Sync) 
AWS Identity and 
Access Management 
Amazon Cognito 
(Identity) 
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
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push 
Kinesis Connector DynamoDB Connector S3 Connector SQS Connector SES Connector 
AWS Global Infrastructure (10 Regions, Availability Zones, 51 Edge Locations) 
Core Building Block 
Services 
Mobile Optimized 
Connectors 
Mobile Optimized 
Services 
Your Mobile App, Game or Device App 
AWS Mobile SDK, API Endpoints, Management Console 
Compute Storage Networking Analytics Databases 
Integrated SDK
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push 
Kinesis Connector DynamoDB Connector S3 Connector SQS Connector SES Connector 
User identity & 
data synchronization 
service 
Store any NoSQL 
data and also map 
mobile OS specific 
objects to 
DynamoDB tables 
Fast cross-platform 
Analytics & reporting 
Service 
Powerful Cross-platform 
Push notification service 
Recorder that can 
handle intermittent 
network connection 
Easily upload, 
download to S3 and 
also pause, 
resume, and cancel 
these operations 
Send email 
reliably from 
device 
Access 
distributed 
buffering and 
queuing service
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Simplifies Identity and Access Management 
Securely access all AWS services from Mobile device 
Cross-device and Cross-platform Sync 
Implement security best practices 
“Your App data is secure, available offline, and kept in sync between devices” 
Synchronize user’s data across devices and platforms 
Manage users as unique identities across identity providers 
Guest 
YourAuth
Identity 
Providers 
Unique 
Joe Anna Bob Identities 
Any Device 
Any Platform 
Any AWS 
Service 
Helps implement security best 
practices 
Securely access any AWS Service from mobile 
device. It simplifies the interaction with AWS 
Identity and Access Management 
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. 
Mobile 
Analytics 
S3 DynamoDB Kinesis 
Your own 
Auth
Unique Identifier for Your “Things” 
“Headless” connected devices can also 
securely access cloud services. 
Save Data to the Cloud 
Save app and device data to the cloud and 
merge them after login 
Guest User Access 
Securely access AWS resources and leverage 
app features without the need to create an 
account or logging in 
Visitor 
Preferences 
Cognito 
Store 
Guest 
EC2 S3 DynamoDB Kinesis
Sign up for AWS Account and login to AWS Management Console 
Download and integrate the Mobile SDK and store and sync user data in a dataset 
Create identitypoolfor authenticated and unauthenticated users in the AWS Console
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Set granular access permissions on AWS 
resources 
Get fine-grained access control to cloud 
resources. 
Safeguard AWS Credentials 
No need to embed credentials in the app 
anymore. Get least-privileged temporary 
credentials. 
Helps implement security best practices 
Securely access any AWS Service. It simplifies 
the interaction with Security Token Service and 
removes the need of Token Vending Machine 
EC2 S3 DynamoDB Kinesis
End Users 
App with AWS Mobile SDK 
Access 
to AWS Services 
Login 
OAUTH/OpenID 
Access Token 
Cognito ID, 
Temp Credentials 
Access Token 
Pool ID 
Role ARNs 
Cognito ID 
(Temp Credentials) 
DynamoDB 
Developer 
Cognito Identity Broker 
S3 
Mobile Analytics 
Cognito Sync Store 
AWS Management Console
Your own Username 
And Password 
Your own user authentication system 
Several apps prefer to have their own username and password instead of public identity providers for authentication. 
Manage mappings easily 
Cognito manages the mappings across login systems (public or private) using a unique Cognito ID 
Easily integrate with existing systems 
Implement GetOpenIdTokeForDeveloperIdentity() using our server-side SDKs like Java, Python, Ruby etc.
Cognito ID 
(Temp Credentials) 
DynamoDB 
End Users 
Developer 
App with AWS Mobile SDK 
Access 
to AWS Services 
Cognito Identity Broker 
Get OpenIDToken 
Username password 
Cognito ID, 
Temp Credentials 
S3 
Mobile Analytics 
Cognito Sync Store 
AWS Management Console 
OIDC Token 
Pool ID 
Role ARNs 
User Authentication System 
(Running on AWS or not) 
OIDC Token 
OIDC Token
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Identitypool 
Identity Providers 
Pool of identities that 
share the same trust policy 
Access Policy 
Access to AWS Services 
identitypool 
Unauthenticated Identities 
authenticated identities 
AWS IAM Roles 
AWS Account 
Web Identity 
Federation 
S3 
DynamoDB 
Get 
Delete 
Put
s3:* dynamodb:* cognito-sync:* 
Allow 
Actions: 
All S3, Sync store 
Operations 
Resource: 
All resources within 
these services 
Deny 
Actions: 
All DDB Operations 
Resource: 
All resources
s3:PutObjects3:GetObjects3:DeleteObjects3:ListMultipartUploadPartss3:AbortMultipartUploadarn:aws:s3:::BUCKET_NAME/* s3:ListBuckets3:ListBucketMultipartUploadsarn:aws:s3:::BUCKET_NAMEdynamodb:GetItemdynamodb:Querydynamodb:PutItemarn: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 ..
s3:PutObject","s3:GetObject","s3:DeleteObject”,”s3: ListMultipartUploadParts","s3:AbortMultipartUploadarn:aws:s3:::BUCKET_NAME/Bob/* s3:ListBucketarn:aws:s3:::BUCKET_NAMEs3:prefix":”Bob/ s3:ListBucketMultipartUploadsarn:aws:s3:::BUCKET_NAME 
Allow 
Actions: 
Certain operations 
Resource: 
Within a bucket with 
specific prefix (user)
Allow 
Actions: 
All sync operations 
Resource: 
Only to that identity 
{ 
"Effect": "Allow”, 
"Action": ["s3:GetObject”,"s3:PutObject”], 
"Resource": ["arn:aws:s3::: 
myBucket/amazon/snakegame/ 
${cognito-identity.amazonaws.com:sub}"] 
} 
{ 
"Effect":"Allow", 
"Action":"cognito-sync:*", 
"Resource":["arn:aws:cognito-sync:us-east-1: 123456789012:identitypool/ 
${cognito-identity.amazonaws.com:aud}/identity/ 
${cognito-identity.amazonaws.com:sub}/*"] 
} 
Allow 
Actions: 
S3 Get/Put operations 
Resource: 
Only to a specific part 
of bucket to that identity
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Implementing a user profile that syncs across devices, OS, apps is hard.
User Data Storage and 
Sync 
Any Platform 
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 
Identity pool 
k/v data
Offline 
Fast 
Intelligent Sync 
Flexible Conflict resolution 
Local SQLite Cache
AWS Account 
Identitypool 
Dataset 
Pool of identities that 
share the same trust policy 
Identity 
Identity 
Identity 
Dataset 
Dataset 
identitypool 
Unique identifier across 
devices, get cached on local devices 
as well as saved in the cloud 
1:n 
1:n 
1:n 
Dataset synchronized across 
devices by simply calling dataset.synchronize() 
method 
Dataset 
Dataset 
Key/Value 
1:n 
Key-value and sync count
AWS Account 
Identitypool 
Dataset 
Identity 
Identity 
Identity 
Dataset 
Dataset 
identitypool 
1:n 
1:n 
1:n 
User 
preferences 
Developer has two apps: a game and a productivity app 
Game 
state 
Identitypool1 
Productivity 
App 
Game 
App 
Dataset 
Dataset 
Key/Value 
1:n
CognitoCachingCredentialsProvidercognitoProvider= 
newCognitoCachingCredentialsProvider( 
myActivity.getContext(),// get the context for the current activity 
"AWS_ACCOUNT_ID", 
"COGNITO_IDENTITY_POOL_ID", 
"arn:aws:iam::AWS_ACCOUNT_ID:role/UNAUTHENTICATED_ROLE", 
"arn:aws:iam::AWS_ACCOUNT_ID:role/AUTHENTICATED_ROLE", 
Regions.US_EAST_1 
); 
Log.d("LogTag","my ID is "+cognitoProvider.getIdentityId()); 
// Create a service client with the provider 
AmazonDynamoDBclient =newAmazonDynamoDBClient(cognitoProvider);
CognitoSyncManagersyncClient=new 
CognitoSyncManager(myActivity.getContext(), 
COGNITO_POOL_ID,Regions.YOUR_REGION,cognitoProvider); 
Dataset dataset =client.openOrCreateDataset("myDataset"); 
dataset.put("myKey","my value"); 
String value =dataset.get("myKey"); 
dataset.remove("myKey"); 
dataset.synchronize(this,syncCallback); 
dataset.synchronizeOnConnectivity(this,syncCallback);
Analyze User Behavior 
Store and share media 
Deliver media 
Store shared data 
Stream real-time data 
Track Retention 
Send push notifications 
Track active users, 
engagement 
Manage funnels, 
Campaign performances 
Store user-generated photos 
Media and share them 
Automatically detect mobile devices 
Deliver content quickly globally 
Bring users back to your app by sending 
messages reliably 
Store and query fast NoSQLdata 
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) 
AWS Identity and 
Access Management 
Amazon Cognito 
(Identity Broker)
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Developer Economics | State of the Developer Nation Q3 2014 | © VisionMobile | All rights reserved | www.developereconomics.com/go 27
Developer Economics 
State of the Developer Nation Q3 2014 
© VisionMobile
timely mannerown their mobile data
Scalable and Generous Free Tier 
Focus on metrics that matter. Usage reports available within 60 minutes of receiving data from an app 
Fast 
Scale to billions of events per day from millions of users. 
Own Your Data 
“Easily collect, visualize and understand your app usage data at scale” 
Data collected are not shared, aggregated, or reused
Sign up for AWS Account and create or use existing Cognito ID in the AWS Management Console 
View engagement and session activity reports in the AWS Management console within minutes 
Download and integrate the Mobile SDK with one line of code (Android/FireOS, iOS)
// Within your activity 
privatestaticMobileAnalyticsManageranalytics; 
// Within your activity onCreate() 
try{ 
AnalyticsConfigoptions = newAnalyticsConfig(); 
options.withAllowsWANDelivery(true); 
analytics = MobileAnalyticsManager.getOrCreateInstance( 
getApplicationContext(), 
"YOU MOBILE ANALYTICS APP ID", 
Regions.US_EAST_1, 
cognitoProvider, // You need a Cognitocredential provider 
options 
); 
} catch(InitializationExceptionex) { 
Log.e(this.getClass().getName(), "Failed to initialize Amazon Mobile Analytics", ex); 
}
@Override 
protectedvoidonPause() { 
super.onPause(); 
if(analytics != null) { 
analytics.getSessionClient().pauseSession(); 
//Attempt to send any events that have been recorded to the Mobile Analytics service. 
analytics.getEventClient().submitEvents(); 
} 
} 
@Override 
protectedvoidonResume() { 
super.onPause(); 
if(analytics != null) { 
analytics.getSessionClient().resumeSession(); 
} 
}
publicvoidonLevelComplete(String levelName, String difficulty, doubletimeToComplete, intplayerState) { 
//Create a Level Complete event with some attributes and metrics(measurements) 
//Attributes and metrics can be added using with statements 
AnalyticsEventlevelCompleteEvent= analytics.getEventClient().createEvent("LevelComplete") 
.withAttribute("LevelName", levelName) 
.withAttribute("Difficulty", difficulty) 
.withMetric("TimeToComplete", timeToComplete); 
//attributes and metrics can also be added using add statements 
if(playerState== STATE_LOSE) 
levelCompleteEvent.addAttribute("EndState", "Lose"); 
elseif(playerState== STATE_WIN) 
levelCompleteEvent.addAttribute("EndState", "Win"); 
//Record the Level Complete event 
analytics.getEventClient().recordEvent(levelCompleteEvent); 
} 
this.onLevelComplete("Lower Dungeon", "Very Difficult", 2734, STATE_WIN);
EventClienteventClient= mobileAnalyticsManager.getEventClient(); 
// create a builder that can record purchase events for Amazon IAP 
AmazonMonetizationEventBuilderbuilder = AmazonMonetizationEventBuilder.create(eventClient); 
Event purchaseEvent= builder.withProductId(purchasedItem.getSku()) 
.withFormattedItemPrice(purchasedItem.getPrice()) 
.withQuantity(1).build(); 
eventClient.recordEvent(purchaseEvent); 
// create a builder that can record purchase events for Google Play IAP 
GooglePlayMonetizationEventBuilderbuilder = GooglePlayMonetizationEventBuilder.create(eventClient); 
Event purchaseEvent= builder.withProductId(sku) 
.withFormattedItemPrice(price) 
.withTransactionId(purchase.getOrderId()) 
.withQuantity(1).build(); 
eventClient.recordEvent(purchaseEvent); 
MonetizationEventBuilder 
AmazonMonetizationEventBuilder 
CustomMonetizationEventBuilder 
GooglePlayMonetizationEventBuilder 
VirtualMonetizationEventBuilder
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
Get behavioral insights into app specific actions that your users take 
Reports provide a view of how often custom events occur. You can add further context with Attributes and Metrics, to each custom event 
Examples 
Track the number of Likes/Shares, per article, in a news app 
Understand player abort rates per level, in a game 
Number of songs played, per user session, in a music app 
In-app item popularity in a shopping app
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Store and share media 
Deliver media 
Store shared data 
Stream real-time data 
Send push notifications 
Store user-generated photos 
Media and share them 
Automatically detect mobile devices 
Deliver content quickly globally 
Bring users back to your app by sending 
messages reliably 
Store and query fast NoSQLdata 
across users and devices 
Collect real-time clickstream logs 
and take actions quickly 
Your Mobile App 
Authenticate users 
Authorize access 
Analyze User Behavior 
Synchronize data 
Amazon Mobile 
Analytics 
Amazon Cognito 
(Sync) 
AWS Identity and 
Access Management 
Amazon Cognito 
(Identity Broker) 
Track Retention 
Amazon Mobile 
Analytics
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
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
// Creating the transfer manager 
TransferManagertransferManager= newTransferManager(credentialProvider); 
// Upload image 
Upload upload = transferManager.upload(BUCKET_NAME, fileName, file); 
// Download image 
Download download = transferManager.download(BUCKET_NAME, mKey, file); 
// Pause, and Resume 
try{ 
PersistableDownloadpersistableDownload= download.pause(); 
//do something if we didn’t abort 
} catch(PauseExceptione) { 
//do something if we aborted 
} 
download = transferManager.resumeDownload(persistableDownload);
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Amazon S3 Custom 
OR 
User requests 
Edge location 
(cache + network optimizations) 
Origin 
Get content Get content 
Content Content
Dallas(2) 
St.Louis 
Miami 
Jacksonville 
Los Angeles(2) 
Palo Alto 
Seattle 
Ashburn(3) 
Newark 
New York(3) 
Dublin 
London(2) 
Amsterdam(3) 
Stockholm 
Frankfurt(3) 
Paris(2) 
Singapore(2) 
Hong Kong(2) 
Tokyo(2) 
Sao Paulo 
South Bend 
San Jose 
Milan 
Sydney 
Madrid 
Seoul 
Mumbai 
Chennai 
Atlanta 
Hayward 
Rio de Janeiro 
Marseille 
Warsaw 
Osaka 
Manila 
Taipei 
Melbourne
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Store shared data 
Stream real-time data 
Send push notifications 
Bring users back to your app by sending 
messages reliably 
Store and query fast NoSQLdata 
across users and devices 
Collect real-time clickstream logs 
and take actions quickly 
Your Mobile App 
Authenticate users 
Authorize access 
Analyze User Behavior 
Synchronize data 
Amazon Mobile 
Analytics 
Amazon Cognito 
(Sync) 
AWS Identity and 
Access Management 
Amazon Cognito 
(Identity Broker) 
Track Retention 
Amazon Mobile 
Analytics 
Store and share media 
Deliver media 
Amazon S3 
Transfer Manager 
Amazon CloudFront 
(Device Detection)
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Joe 
Anna 
Bob 
High Scores 
Joe 
1500 
Anna 
800 
Bob 
750 
Amazon DynamoDB Connector: Object Mapper 
Simplifies access to Amazon DynamoDB in you app 
Map client-side classes to Amazon DynamoDB tables 
Removes the need to transform objects into tables and vice versa
Amazon DynamoDB: Example 
@DynamoDBTable(tableName= "Bookstore") 
publicstaticclassBook{ 
privateintid; 
privateString isbn, title; 
privateBoolean hardCover; 
@DynamoDBHashKey(attributeName= "id") 
publicintgetId() { 
returnid; 
} 
publicvoidsetId(intid) { 
this.id= id; 
} 
@DynamoDBAttribute(attributeName="isbn") 
publicString getIsbn() { 
returnisbn; 
} 
... 
} 
Id 
isbn 
Title 
hardCover 
1 
22-22222 
My First Book 
Yes 
2 
43-43234 
My Favorite Book 
No 
3 
55-12345 
My NewBook 
Yes 
Table: Bookstore
Amazon DynamoDB: 
An Example 
// Build a book object 
Book book = newBook(); 
book.setId(17); 
book.setIsbn("222-2222222222"); 
book.setTitle("Some Title"); 
book.setHardCover(true); 
// Save book object to dynmaoDB 
mapper.save(book); 
// Update item and save object again 
book.setTitle("Updated Title"); 
book.setHardCover(false); 
mapper.save(book); 
// Load another book 
Book anotherBook= mapper.load(Book.class,7);
Geo Library for Amazon DynamoDB
Authenticate users 
Authorize access 
Analyze User Behavior 
Store and share media 
Synchronize data 
AWS Mobile SDK 
Amazon Mobile 
Analytics 
Deliver media 
Amazon Cognito 
(Sync) 
AWS Identity and 
Access Management 
Amazon Cognito 
(Identity Broker) 
Amazon S3 
Transfer Manager 
Amazon CloudFront 
(Device Detection) 
Store shared data 
Amazon DynamoDB 
(Object Mapper) 
Stream real-time data 
Track Retention 
Amazon Mobile 
Analytics 
Send push notifications 
Your Mobile App 
Bring users back to your app by sending 
messages reliably 
Collect real-time clickstream logs 
and take actions quickly
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
65% of mobile apps are abandoned within 90 days. http://blog.flurry.com/bid/90743/App-Engagement-The-Matrix-Reloaded
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Broadcast 
Direct 
Closed Loop 
Identical messages to many at once 
Unique messages to individual customers 
Targeted and optimized with analytics
Broadcast 
Direct 
Closed Loop 
Identical messages to many at once 
Unique messages to individual customers 
Targeted and optimized with analytics
•New features/content/games 
•Promotion start/ends/redemption 
•Active players (active in 7 days) 
•Newly inactive players 
•Segmentation (geo, spend, others..)
•“New episode available now!” 
•“Halloween challenge starts today.” 
•“Keep the streak going.” 
•“Smokey the bear misses you!” 
•“New Jetpack, on sale today!”
Broadcast 
Closed Loop 
Identical messages to many at once 
Targeted and optimized with analytics 
Direct 
Unique messages to individual customers
•Messaging 
•Turn-based activities 
•Events 
•User lifecycle 
•Administrative
•“Jon invited you to a game.” 
•“It’s your turn to play.” 
•“You now have full lives.” 
•“Welcome to the game!” 
•“Your subscription is ending.”
Broadcast 
Identical messages to many at once 
Direct 
Unique messages to individual customers 
Closed Loop 
Targeted and optimized with analytics
•Broadcast push notifications 
•Direct push notifications
•Different messages 
•Different frequencies 
•Different segments 
•Different times of day 
•Different points in the lifecycle
Broadcast 
Direct 
Closed Loop 
Identical messages to many at once 
Unique messages to individual customers 
Targeted and optimized with analytics
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Cloud App 
Mobile Apps
Cloud App 
Mobile Apps 
Platform Service
Platform Service 
Token Registration 
TokenFeedback
Apple APNS 
Google GCM 
Amazon ADM
Cloud App 
Platform Services 
Mobile Apps
Mobile Apps 
Custom Code 
Push Intermediary
 
 
Operational complexity 
Scalability takes work 
Cost –even though the platform services themselves are free
Amazon SNS 
Cross-platform Mobile Push 
Apple APNS 
Google GCM 
Amazon ADM 
Windows WNS and MPNS 
Baidu CP 
Android Phones and Tablets 
Apple iPhones and iPads 
Kindle Fire Devices 
Android Phones and Tablets in China 
iOS 
Windows Desktop and Windows Phone Devices
New features: 
•Time to Live (TTL) 
•Message Attributes 
•Large Topics 
•iOS8
Apple APNS 
Google GCM 
Amazon ADM 
Amazon SNSMobile Push
Apple APNS 
Google GCM 
Amazon ADM 
Amazon SNSMobile Push 
ARN 1 
Token A 
ARN 2 
Token B 
ARN 3 
Token C
Amazon SNSMobile Push 
Token Registration 
Token Feedback 
Cloud App
Apple APNS 
Google GCM 
Amazon ADM 
Amazon SNSMobile Push 
ARN 1 
Token A 
ARN 2 
Token B 
ARN 3 
Token C 
Token X 
Token Y
Amazon SNSMobile Push 
ARN 1 
Token A 
ARN 2 
Token B 
ARN 3 
Token C
Publish 
Publish 
Publish 
Publish 
Direct Publishing 
Broadcast with SNS Topics
Geography 
Activity 
Product 
US –West Coast 
Daily Actives 
Flapping Bird Rio 
Interest 
Tier 
Segment 
49ers 
Premium 
Top 100 Players
Apple 
Kindle Fire 
Kindle Fire 
Google 
Publish 
Apple 
Kindle Fire 
Kindle Fire 
Google 
Publish 
Publish Once, Deliver Anywhere 
Specify Platform-Specific Payloads
So let’s get started.
Step 1: Write your mobile app 
•Use the mobile app platform’s push notification libraries as you normally would.
Step 2: Obtain Application Prerequisites 
•APNs: 
•Apple Push Notification service SSL certificate 
•Application Private Key 
•GCM: 
•API Key (Sender Auth Token) 
•ADM: 
•Client ID 
•Client secret
Step 3: Register Your Mobile App with AWS 
Amazon SNSMobile Push
Step 4: Obtain a Token/Registration ID from the device 
•APNs: 
•Device Token 
•GCM: 
•Registration ID 
•ADM: 
•Registration ID 
CloudApp 
<e960d9b1…de43f6c0>
Step 5: Add Token/Registration ID to Amazon SNS 
•For existing devices 
•Use the console for .csvimport 
•Or use CreatePlatformEndpointAPI 
•For future devices 
•Use a proxy server and the CreatePlatformEndpointAPI 
•Or use Cognitoand let devices register themselves 
•Receive an ARN back 
Amazon SNSMobile Push 
CloudApp 
<e960d9b1…de43f6c0> 
arn:aws:sns:eu-west-1:12…1f
privateString getArnForDeviceEndpoint( 
String platformApplicationArn, 
String deviceToken) { 
CreatePlatformEndpointRequestrequest = 
newCreatePlatformEndpointRequest() 
.withPlatformApplicationArn(platformApplicationArn) 
.withToken(deviceToken); 
CreatePlatformEndpointResultresult = 
snsClient.createPlatformEndpoint(request); 
returnresult.getEndpointArn(); 
} 
Device Registration –Code example
Step 6a: Send Push Notifications via the Console
Step 6b: Send Push Notifications via the API 
$ python 
>>> import boto 
>>> import boto.sns 
>>> sns= boto.sns.connect_to_region("us-west-2") 
>>> sns.publish( 
... message="Hello world!", 
... target_arn="arn:aws:sns:us-west-2:514247453397:endpoint/GCM/MsgDemo/24885ae1- 4002-306d-bb4f-0c79c11e951c") 
{u'PublishResponse': {u'PublishResult': {u'MessageId': u'f1f0f549-0e80-5eeb-a5bc- b984bf66dcc4'}, u'ResponseMetadata': {u'RequestId': u'258e807e-5430-5050-8873- ccb3e5d6c27f'}}} 
>>>
Step 7: Receive and Close the Loop
Authenticate users 
Authorize access 
Analyze User Behavior 
Store and share media 
Synchronize data 
AWS Mobile SDK 
Amazon Mobile 
Analytics 
Deliver media 
Amazon Cognito 
(Sync) 
AWS Identity and 
Access Management 
Amazon Cognito 
(Identity Broker) 
Amazon S3 
Transfer Manager 
Amazon CloudFront 
(Device Detection) 
Store shared data 
Amazon DynamoDB 
(Object Mapper) 
Stream real-time data 
Track Retention 
Amazon Mobile 
Analytics 
Send push notifications 
Amazon SNS 
Mobile Push 
Your Mobile App 
Collect real-time clickstream logs 
and take actions quickly
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Amazon Kinesis 
Redshift 
S3 
Kinesis 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
String kinesisDirectory= "YOUR_UNIQUE_DIRECTORY"; 
KinesisRecorderrecorder = newKinesisRecorder( 
cognitoProvider, 
Regions.US_WEST_2, 
getDir(kinesisDirectory, MODE_PRIVATE));
recorder.saveRecord("MyData".getBytes(),"MyStreamName"); 
recorder.submitAllRecords(); 
Long byteLimit= recorder.getDiskByteLimit(); 
Long bytesUsed= recorder.getDiskBytesUsed(); 
KinesisRecorderConfigkinesisRecorderConfig= recorder.getKinesisRecorderConfig(); 
Long maxStorageSize= kinesisRecorderConfig.getMaxStorageSize();
Authenticate users 
Authorize access 
Analyze User Behavior 
Store and share media 
Synchronize data 
AWS Mobile SDK 
Amazon Mobile 
Analytics 
Deliver media 
Amazon Cognito 
(Sync) 
AWS Identity and 
Access Management 
Amazon Cognito 
(Identity Broker) 
Amazon S3 
Transfer Manager 
Amazon CloudFront 
(Device Detection) 
Store shared 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
Kinesis Application 
AWS Elastic Beanstalk
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
DeployYour Backend Application
Elastic Load 
Balancing 
Auto Scaling 
Elastic Beanstalk 
Application 
CloudWatch 
Alarm
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Amazon Cognito 
Amazon Mobile Analytics 
S3 Connector 
DynamoDB Connector 
Kinesis Connector 
k/v data 
Amazon SNS Mobile Push 
S3 Bucket 
DynamoDB Table 
Kinesis Application 
Sync Repository 
End users 
App with 
AWS Mobile SDK 
Developers 
AWS Management Console 
Kinesis Application (?) 
Your Auth
Amazon Cognito 
Amazon Mobile Analytics 
S3 Connector 
DynamoDB Connector 
Kinesis Connector 
k/v data 
Amazon SNS Mobile Push 
S3 Bucket 
DynamoDB Table 
Kinesis Application 
Sync Repository 
Developers 
AWS Management Console 
Kinesis Application (?) 
End users 
App with 
AWS Mobile SDK 
Your Auth
Developers 
AWS Management Console 
Kinesis Application (?) 
Amazon Cognito 
Amazon Mobile Analytics 
S3 Connector 
DynamoDB Connector 
Kinesis Connector 
k/v data 
Amazon SNS Mobile Push 
S3 Bucket 
DynamoDB Table 
Kinesis Application 
Sync Repository 
End users 
App with 
AWS Mobile SDK 
Your Auth
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
Authenticate users 
Authorize access 
Analyze User Behavior 
Store and share media 
Synchronize data 
Deliver media 
Store shared data 
Stream real-time data 
Track Retention 
Send push notifications 
Manage users and 
identity providers 
Securely access 
cloud resources 
Sync user prefs 
across devices 
Track active users, 
engagement 
Manage funnels, 
Campaign performances 
Store user-generated photos 
Media and share them 
Automatically detect mobile devices 
Deliver content quickly globally 
Bring users back to your app by sending 
messages reliably 
Store and query fast NoSQLdata 
across users and devices 
Collect real-time clickstream logs 
and take actions quickly 
Your Mobile App
Authenticate users 
Authorize access 
Analyze User Behavior 
Store and share media 
Synchronize data 
AWS Mobile SDK 
Amazon Mobile 
Analytics 
Deliver media 
Amazon Cognito 
(Sync) 
AWS Identity and 
Access Management 
Amazon Cognito 
(Identity Broker) 
Amazon S3 
Transfer Manager 
Amazon CloudFront 
(Device Detection) 
Store shared 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
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push 
Kinesis Connector DynamoDB Connector S3 Connector SQS Connector SES Connector 
AWS Global Infrastructure (10 Regions, Availability Zones, 51 Edge Locations) 
Core Building Block 
Services 
Mobile Optimized 
Connectors 
Mobile Optimized 
Services 
Your Mobile App, Game or Device App 
AWS Mobile SDK, API Endpoints, Management Console 
Compute Storage Networking Analytics Databases 
Integrated SDK
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push 
Kinesis Connector DynamoDB Connector S3 Connector SQS Connector SES Connector 
User identity & 
data synchronization 
service 
Store any NoSQL 
data and also map 
mobile OS specific 
objects to 
DynamoDB tables 
Fast cross-platform 
Analytics & reporting 
Service 
Powerful Cross-platform 
Push notification service 
Recorder that can 
handle intermittent 
network connection 
Easily upload, 
download to S3 and 
also pause, 
resume, and cancel 
these operations 
Send email 
reliably from 
device 
Access 
distributed 
buffering and 
queuing service
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014
http://bit.ly/awsevals

Recommended

(MBL310) Workshop: Build iOS Apps Using AWS Mobile Services | AWS re:Invent 2014
(MBL310) Workshop: Build iOS Apps Using AWS Mobile Services | AWS re:Invent 2014(MBL310) Workshop: Build iOS Apps Using AWS Mobile Services | AWS re:Invent 2014
(MBL310) Workshop: Build iOS Apps Using AWS Mobile Services | AWS re:Invent 2014Amazon Web Services
 
AWS Mobile Services & SDK Introduction & Demo
AWS Mobile Services & SDK Introduction & DemoAWS Mobile Services & SDK Introduction & Demo
AWS Mobile Services & SDK Introduction & DemoAmazon 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 ServicesAmazon 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 ServicesAmazon Web Services
 
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, ...
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, ...Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, ...
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, ...Amazon Web Services
 
Cloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWSCloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWSDanilo Poccia
 
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 LambdaTheFamily
 
Integrating an App with Amazon Web Services SimpleDB - A Matter of Choices
Integrating an App with Amazon Web Services SimpleDB - A Matter of ChoicesIntegrating an App with Amazon Web Services SimpleDB - A Matter of Choices
Integrating an App with Amazon Web Services SimpleDB - A Matter of ChoicesMark Maslyn
 

More Related Content

What's hot

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 ServicesAmazon 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 ServicesAmazon Web Services
 
Building Cloud-Powered Mobile Apps
Building Cloud-Powered Mobile AppsBuilding Cloud-Powered Mobile Apps
Building Cloud-Powered Mobile AppsDanilo Poccia
 
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
 
Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsDanilo Poccia
 
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 AppsAmazon 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
 
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
 
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
 
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)Amazon Web Services
 
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 DiublinAmazon 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
 
Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsDanilo Poccia
 
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 MobileAmazon Web Services
 
Mobile App Development with Amazon Web Services Mobile Hub
Mobile App Development with Amazon Web Services Mobile HubMobile App Development with Amazon Web Services Mobile Hub
Mobile App Development with Amazon Web Services Mobile HubAmazon 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 CognitoAmazon Web Services
 

What's hot (20)

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
 
Mobile applicationdevelopment
Mobile applicationdevelopmentMobile applicationdevelopment
Mobile applicationdevelopment
 
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
 
Building Cloud-Powered Mobile Apps
Building Cloud-Powered Mobile AppsBuilding Cloud-Powered Mobile Apps
Building Cloud-Powered Mobile Apps
 
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...
 
Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile Apps
 
Building mobile apps on AWS
Building mobile apps on AWSBuilding mobile apps on AWS
Building mobile apps on AWS
 
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
 
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...
 
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...
 
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
 
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
 
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
 
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...
 
Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile Apps
 
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 Cognito
Amazon CognitoAmazon Cognito
Amazon Cognito
 
Mobile App Development with Amazon Web Services Mobile Hub
Mobile App Development with Amazon Web Services Mobile HubMobile App Development with Amazon Web Services Mobile Hub
Mobile App Development with Amazon Web Services Mobile Hub
 
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
 
AWS Mobile Hub Overview
AWS Mobile Hub OverviewAWS Mobile Hub Overview
AWS Mobile Hub Overview
 

Viewers also liked

(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoTAmazon Web Services
 
Lumberjacking on AWS: Cutting Through Logs to Find What Matters (ARC306) | AW...
Lumberjacking on AWS: Cutting Through Logs to Find What Matters (ARC306) | AW...Lumberjacking on AWS: Cutting Through Logs to Find What Matters (ARC306) | AW...
Lumberjacking on AWS: Cutting Through Logs to Find What Matters (ARC306) | AW...Amazon Web Services
 
Enterprise Security Considerations
Enterprise Security ConsiderationsEnterprise Security Considerations
Enterprise Security ConsiderationsAmazon Web Services
 
Choosing the Right Data Storage Solution
Choosing the Right Data Storage SolutionChoosing the Right Data Storage Solution
Choosing the Right Data Storage SolutionAmazon Web Services
 
AWS Webcast - Build Mobile Apps with a Secure, Scalable Back End on DynamoDB
AWS Webcast - Build Mobile Apps with a Secure, Scalable Back End on DynamoDBAWS Webcast - Build Mobile Apps with a Secure, Scalable Back End on DynamoDB
AWS Webcast - Build Mobile Apps with a Secure, Scalable Back End on DynamoDBAmazon Web Services
 
(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014
(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014
(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014Amazon Web Services
 
Maximizing EC2 and Elastic Block Store Disk Performance
Maximizing EC2 and Elastic Block Store Disk PerformanceMaximizing EC2 and Elastic Block Store Disk Performance
Maximizing EC2 and Elastic Block Store Disk PerformanceAmazon Web Services
 
Sales Tax Bootcamp for Amazon FBA Sellers
Sales Tax Bootcamp for Amazon FBA SellersSales Tax Bootcamp for Amazon FBA Sellers
Sales Tax Bootcamp for Amazon FBA SellersTaxJar
 
(MBL309) Analyze Mobile App Data and Build Predictive Applications
(MBL309) Analyze Mobile App Data and Build Predictive Applications(MBL309) Analyze Mobile App Data and Build Predictive Applications
(MBL309) Analyze Mobile App Data and Build Predictive ApplicationsAmazon Web Services
 
Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013
Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013
Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013Amazon Web Services
 
Cloud Adoption in the Enterprise
Cloud Adoption in the EnterpriseCloud Adoption in the Enterprise
Cloud Adoption in the EnterpriseAmazon Web Services
 
Industry Cloud Rising - 2014 Industry Cloud Forum Keynote
Industry Cloud Rising - 2014 Industry Cloud Forum KeynoteIndustry Cloud Rising - 2014 Industry Cloud Forum Keynote
Industry Cloud Rising - 2014 Industry Cloud Forum KeynoteEmergence Capital
 
Finding a drug safety solution for you - Embase and PharmaPendium - Webinar ...
Finding a drug safety solution for you  - Embase and PharmaPendium - Webinar ...Finding a drug safety solution for you  - Embase and PharmaPendium - Webinar ...
Finding a drug safety solution for you - Embase and PharmaPendium - Webinar ...Ann-Marie Roche
 
(BDT205) Your First Big Data Application On AWS
(BDT205) Your First Big Data Application On AWS(BDT205) Your First Big Data Application On AWS
(BDT205) Your First Big Data Application On AWSAmazon Web Services
 
Data Replication Options in AWS (ARC302) | AWS re:Invent 2013
Data Replication Options in AWS (ARC302) | AWS re:Invent 2013Data Replication Options in AWS (ARC302) | AWS re:Invent 2013
Data Replication Options in AWS (ARC302) | AWS re:Invent 2013Amazon Web Services
 
Integrating Siebel CTMS with Medidata Rave and Veeva Vault
Integrating Siebel CTMS with Medidata Rave and Veeva VaultIntegrating Siebel CTMS with Medidata Rave and Veeva Vault
Integrating Siebel CTMS with Medidata Rave and Veeva VaultPerficient, Inc.
 
Stream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LTStream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LTMasahiro Nagano
 
DigiPharm Europe 2010: Reportable Adverse Events on the World Wide Web
DigiPharm Europe 2010: Reportable Adverse Events on the World Wide WebDigiPharm Europe 2010: Reportable Adverse Events on the World Wide Web
DigiPharm Europe 2010: Reportable Adverse Events on the World Wide WebCREATION
 

Viewers also liked (20)

(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
 
Lumberjacking on AWS: Cutting Through Logs to Find What Matters (ARC306) | AW...
Lumberjacking on AWS: Cutting Through Logs to Find What Matters (ARC306) | AW...Lumberjacking on AWS: Cutting Through Logs to Find What Matters (ARC306) | AW...
Lumberjacking on AWS: Cutting Through Logs to Find What Matters (ARC306) | AW...
 
Enterprise Security Considerations
Enterprise Security ConsiderationsEnterprise Security Considerations
Enterprise Security Considerations
 
Choosing the Right Data Storage Solution
Choosing the Right Data Storage SolutionChoosing the Right Data Storage Solution
Choosing the Right Data Storage Solution
 
AWS Webcast - SharePoint 2013
AWS Webcast - SharePoint 2013AWS Webcast - SharePoint 2013
AWS Webcast - SharePoint 2013
 
AWS Webcast - Build Mobile Apps with a Secure, Scalable Back End on DynamoDB
AWS Webcast - Build Mobile Apps with a Secure, Scalable Back End on DynamoDBAWS Webcast - Build Mobile Apps with a Secure, Scalable Back End on DynamoDB
AWS Webcast - Build Mobile Apps with a Secure, Scalable Back End on DynamoDB
 
(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014
(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014
(SEC310) Integrating AWS with External Identity Management | AWS re:Invent 2014
 
Maximizing EC2 and Elastic Block Store Disk Performance
Maximizing EC2 and Elastic Block Store Disk PerformanceMaximizing EC2 and Elastic Block Store Disk Performance
Maximizing EC2 and Elastic Block Store Disk Performance
 
AURA: Aerial Unpaved Roads Assessment System Demonstration - Data Collection...
AURA: Aerial Unpaved Roads Assessment System Demonstration  - Data Collection...AURA: Aerial Unpaved Roads Assessment System Demonstration  - Data Collection...
AURA: Aerial Unpaved Roads Assessment System Demonstration - Data Collection...
 
Sales Tax Bootcamp for Amazon FBA Sellers
Sales Tax Bootcamp for Amazon FBA SellersSales Tax Bootcamp for Amazon FBA Sellers
Sales Tax Bootcamp for Amazon FBA Sellers
 
(MBL309) Analyze Mobile App Data and Build Predictive Applications
(MBL309) Analyze Mobile App Data and Build Predictive Applications(MBL309) Analyze Mobile App Data and Build Predictive Applications
(MBL309) Analyze Mobile App Data and Build Predictive Applications
 
Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013
Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013
Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013
 
Cloud Adoption in the Enterprise
Cloud Adoption in the EnterpriseCloud Adoption in the Enterprise
Cloud Adoption in the Enterprise
 
Industry Cloud Rising - 2014 Industry Cloud Forum Keynote
Industry Cloud Rising - 2014 Industry Cloud Forum KeynoteIndustry Cloud Rising - 2014 Industry Cloud Forum Keynote
Industry Cloud Rising - 2014 Industry Cloud Forum Keynote
 
Finding a drug safety solution for you - Embase and PharmaPendium - Webinar ...
Finding a drug safety solution for you  - Embase and PharmaPendium - Webinar ...Finding a drug safety solution for you  - Embase and PharmaPendium - Webinar ...
Finding a drug safety solution for you - Embase and PharmaPendium - Webinar ...
 
(BDT205) Your First Big Data Application On AWS
(BDT205) Your First Big Data Application On AWS(BDT205) Your First Big Data Application On AWS
(BDT205) Your First Big Data Application On AWS
 
Data Replication Options in AWS (ARC302) | AWS re:Invent 2013
Data Replication Options in AWS (ARC302) | AWS re:Invent 2013Data Replication Options in AWS (ARC302) | AWS re:Invent 2013
Data Replication Options in AWS (ARC302) | AWS re:Invent 2013
 
Integrating Siebel CTMS with Medidata Rave and Veeva Vault
Integrating Siebel CTMS with Medidata Rave and Veeva VaultIntegrating Siebel CTMS with Medidata Rave and Veeva Vault
Integrating Siebel CTMS with Medidata Rave and Veeva Vault
 
Stream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LTStream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LT
 
DigiPharm Europe 2010: Reportable Adverse Events on the World Wide Web
DigiPharm Europe 2010: Reportable Adverse Events on the World Wide WebDigiPharm Europe 2010: Reportable Adverse Events on the World Wide Web
DigiPharm Europe 2010: Reportable Adverse Events on the World Wide Web
 

Similar to (MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014

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 AWSAmazon 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 AWSShiva Narayanaswamy
 
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
 
(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 & DynamoDBAmazon Web Services
 
02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_short02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_shortCodemotion
 
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 SDKsAmazon 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 Amazon Web Services
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSAmazon Web Services
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSAmazon 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 HubAmazon Web Services
 
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...Amazon Web Services
 
Serverless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSServerless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSAmazon Web Services
 
Serverless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSServerless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSAmazon Web Services
 
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
 
4. Carlos Conde - Amazon Web Services
4. Carlos Conde - Amazon Web Services4. Carlos Conde - Amazon Web Services
4. Carlos Conde - Amazon Web ServicesMobCon
 
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 KleinAmazon Web Services Korea
 
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 ServicesAmazon Web Services
 

Similar to (MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014 (19)

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
 
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
 
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
 
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
 
(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
 
02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_short02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_short
 
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
 
Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWS
 
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
 
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
 
Serverless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSServerless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWS
 
Serverless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSServerless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps 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)
 
4. Carlos Conde - Amazon Web Services
4. Carlos Conde - Amazon Web Services4. Carlos Conde - Amazon Web Services
4. Carlos Conde - 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
 
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
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Recently uploaded

Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)François
 
Trending now: Book subjects on the move in the Canadian market - Tech Forum 2024
Trending now: Book subjects on the move in the Canadian market - Tech Forum 2024Trending now: Book subjects on the move in the Canadian market - Tech Forum 2024
Trending now: Book subjects on the move in the Canadian market - Tech Forum 2024BookNet Canada
 
Achieving Excellence IESVE for HVAC Simulation.pdf
Achieving Excellence IESVE for HVAC Simulation.pdfAchieving Excellence IESVE for HVAC Simulation.pdf
Achieving Excellence IESVE for HVAC Simulation.pdfIES VE
 
iOncologi_Pitch Deck_2024 slide show for hostinger
iOncologi_Pitch Deck_2024 slide show for hostingeriOncologi_Pitch Deck_2024 slide show for hostinger
iOncologi_Pitch Deck_2024 slide show for hostingerssuser9354ce
 
My Journey towards Artificial Intelligence
My Journey towards Artificial IntelligenceMy Journey towards Artificial Intelligence
My Journey towards Artificial IntelligenceVijayananda Mohire
 
software-quality-assurance question paper 2023
software-quality-assurance question paper 2023software-quality-assurance question paper 2023
software-quality-assurance question paper 2023RohanMistry15
 
Improving IT Investment Decisions and Business Outcomes with Integrated Enter...
Improving IT Investment Decisions and Business Outcomes with Integrated Enter...Improving IT Investment Decisions and Business Outcomes with Integrated Enter...
Improving IT Investment Decisions and Business Outcomes with Integrated Enter...Cprime
 
Microsoft x 2toLead Webinar Session 1 - How Employee Communication and Connec...
Microsoft x 2toLead Webinar Session 1 - How Employee Communication and Connec...Microsoft x 2toLead Webinar Session 1 - How Employee Communication and Connec...
Microsoft x 2toLead Webinar Session 1 - How Employee Communication and Connec...2toLead Limited
 
Establishing data sharing standards to promote global industry development
Establishing data sharing standards to promote global industry developmentEstablishing data sharing standards to promote global industry development
Establishing data sharing standards to promote global industry developmentThorsten Huelsmann
 
National Institute of Standards and Technology (NIST) Cybersecurity Framework...
National Institute of Standards and Technology (NIST) Cybersecurity Framework...National Institute of Standards and Technology (NIST) Cybersecurity Framework...
National Institute of Standards and Technology (NIST) Cybersecurity Framework...MichaelBenis1
 
Geospatial Synergy: Amplifying Efficiency with FME & Esri
Geospatial Synergy: Amplifying Efficiency with FME & EsriGeospatial Synergy: Amplifying Efficiency with FME & Esri
Geospatial Synergy: Amplifying Efficiency with FME & EsriSafe Software
 
Boosting Developer Effectiveness with a Java platform team 1.4 - ArnhemJUG
Boosting Developer Effectiveness with a Java platform team 1.4 - ArnhemJUGBoosting Developer Effectiveness with a Java platform team 1.4 - ArnhemJUG
Boosting Developer Effectiveness with a Java platform team 1.4 - ArnhemJUGRick Ossendrijver
 
Large Language Models and Applications in Healthcare
Large Language Models and Applications in HealthcareLarge Language Models and Applications in Healthcare
Large Language Models and Applications in HealthcareAsma Ben Abacha
 
Communities, networking and developer culture
Communities, networking and developer cultureCommunities, networking and developer culture
Communities, networking and developer cultureRavi Sanghani
 
Transcript: Trending now: Book subjects on the move in the Canadian market - ...
Transcript: Trending now: Book subjects on the move in the Canadian market - ...Transcript: Trending now: Book subjects on the move in the Canadian market - ...
Transcript: Trending now: Book subjects on the move in the Canadian market - ...BookNet Canada
 
Python For Kids - Sách Lập trình cho trẻ em
Python For Kids - Sách Lập trình cho trẻ emPython For Kids - Sách Lập trình cho trẻ em
Python For Kids - Sách Lập trình cho trẻ emNho Vĩnh
 
TrustArc Webinar - TrustArc's Latest AI Innovations
TrustArc Webinar - TrustArc's Latest AI InnovationsTrustArc Webinar - TrustArc's Latest AI Innovations
TrustArc Webinar - TrustArc's Latest AI InnovationsTrustArc
 
Low Latency at Extreme Scale: Proven Practices & Pitfalls
Low Latency at Extreme Scale: Proven Practices & PitfallsLow Latency at Extreme Scale: Proven Practices & Pitfalls
Low Latency at Extreme Scale: Proven Practices & PitfallsScyllaDB
 
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...ShapeBlue
 
Why Disability Justice should be at the core of your digital accessibility jo...
Why Disability Justice should be at the core of your digital accessibility jo...Why Disability Justice should be at the core of your digital accessibility jo...
Why Disability Justice should be at the core of your digital accessibility jo...Modality Co
 

Recently uploaded (20)

Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
 
Trending now: Book subjects on the move in the Canadian market - Tech Forum 2024
Trending now: Book subjects on the move in the Canadian market - Tech Forum 2024Trending now: Book subjects on the move in the Canadian market - Tech Forum 2024
Trending now: Book subjects on the move in the Canadian market - Tech Forum 2024
 
Achieving Excellence IESVE for HVAC Simulation.pdf
Achieving Excellence IESVE for HVAC Simulation.pdfAchieving Excellence IESVE for HVAC Simulation.pdf
Achieving Excellence IESVE for HVAC Simulation.pdf
 
iOncologi_Pitch Deck_2024 slide show for hostinger
iOncologi_Pitch Deck_2024 slide show for hostingeriOncologi_Pitch Deck_2024 slide show for hostinger
iOncologi_Pitch Deck_2024 slide show for hostinger
 
My Journey towards Artificial Intelligence
My Journey towards Artificial IntelligenceMy Journey towards Artificial Intelligence
My Journey towards Artificial Intelligence
 
software-quality-assurance question paper 2023
software-quality-assurance question paper 2023software-quality-assurance question paper 2023
software-quality-assurance question paper 2023
 
Improving IT Investment Decisions and Business Outcomes with Integrated Enter...
Improving IT Investment Decisions and Business Outcomes with Integrated Enter...Improving IT Investment Decisions and Business Outcomes with Integrated Enter...
Improving IT Investment Decisions and Business Outcomes with Integrated Enter...
 
Microsoft x 2toLead Webinar Session 1 - How Employee Communication and Connec...
Microsoft x 2toLead Webinar Session 1 - How Employee Communication and Connec...Microsoft x 2toLead Webinar Session 1 - How Employee Communication and Connec...
Microsoft x 2toLead Webinar Session 1 - How Employee Communication and Connec...
 
Establishing data sharing standards to promote global industry development
Establishing data sharing standards to promote global industry developmentEstablishing data sharing standards to promote global industry development
Establishing data sharing standards to promote global industry development
 
National Institute of Standards and Technology (NIST) Cybersecurity Framework...
National Institute of Standards and Technology (NIST) Cybersecurity Framework...National Institute of Standards and Technology (NIST) Cybersecurity Framework...
National Institute of Standards and Technology (NIST) Cybersecurity Framework...
 
Geospatial Synergy: Amplifying Efficiency with FME & Esri
Geospatial Synergy: Amplifying Efficiency with FME & EsriGeospatial Synergy: Amplifying Efficiency with FME & Esri
Geospatial Synergy: Amplifying Efficiency with FME & Esri
 
Boosting Developer Effectiveness with a Java platform team 1.4 - ArnhemJUG
Boosting Developer Effectiveness with a Java platform team 1.4 - ArnhemJUGBoosting Developer Effectiveness with a Java platform team 1.4 - ArnhemJUG
Boosting Developer Effectiveness with a Java platform team 1.4 - ArnhemJUG
 
Large Language Models and Applications in Healthcare
Large Language Models and Applications in HealthcareLarge Language Models and Applications in Healthcare
Large Language Models and Applications in Healthcare
 
Communities, networking and developer culture
Communities, networking and developer cultureCommunities, networking and developer culture
Communities, networking and developer culture
 
Transcript: Trending now: Book subjects on the move in the Canadian market - ...
Transcript: Trending now: Book subjects on the move in the Canadian market - ...Transcript: Trending now: Book subjects on the move in the Canadian market - ...
Transcript: Trending now: Book subjects on the move in the Canadian market - ...
 
Python For Kids - Sách Lập trình cho trẻ em
Python For Kids - Sách Lập trình cho trẻ emPython For Kids - Sách Lập trình cho trẻ em
Python For Kids - Sách Lập trình cho trẻ em
 
TrustArc Webinar - TrustArc's Latest AI Innovations
TrustArc Webinar - TrustArc's Latest AI InnovationsTrustArc Webinar - TrustArc's Latest AI Innovations
TrustArc Webinar - TrustArc's Latest AI Innovations
 
Low Latency at Extreme Scale: Proven Practices & Pitfalls
Low Latency at Extreme Scale: Proven Practices & PitfallsLow Latency at Extreme Scale: Proven Practices & Pitfalls
Low Latency at Extreme Scale: Proven Practices & Pitfalls
 
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
 
Why Disability Justice should be at the core of your digital accessibility jo...
Why Disability Justice should be at the core of your digital accessibility jo...Why Disability Justice should be at the core of your digital accessibility jo...
Why Disability Justice should be at the core of your digital accessibility jo...
 

(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:Invent 2014

  • 1. November 14, 2014 | Las Vegas, NV Danilo Poccia, Amazon Web Services
  • 10. Authenticate users Authorize access Analyze User Behavior Store and share media Synchronize data Deliver media Store shared data Stream real-time data Track Retention Send push notifications Manage users and identity providers Securely access cloud resources Sync user prefs across devices Track active users, engagement Manage funnels, Campaign performances Store user-generated photos Media and share them Automatically detect mobile devices Deliver content quickly globally Bring users back to your app by sending messages reliably Store and query fast NoSQLdata across users and devices Collect real-time clickstream logs and take actions quickly Your Mobile App
  • 11. Authenticate users Authorize access Analyze User Behavior Store and share media Synchronize data AWS Mobile SDK Amazon Mobile Analytics Deliver media Amazon Cognito (Sync) AWS Identity and Access Management Amazon Cognito (Identity) 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
  • 12. Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push Kinesis Connector DynamoDB Connector S3 Connector SQS Connector SES Connector AWS Global Infrastructure (10 Regions, Availability Zones, 51 Edge Locations) Core Building Block Services Mobile Optimized Connectors Mobile Optimized Services Your Mobile App, Game or Device App AWS Mobile SDK, API Endpoints, Management Console Compute Storage Networking Analytics Databases Integrated SDK
  • 13. Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push Kinesis Connector DynamoDB Connector S3 Connector SQS Connector SES Connector User identity & data synchronization service Store any NoSQL data and also map mobile OS specific objects to DynamoDB tables Fast cross-platform Analytics & reporting Service Powerful Cross-platform Push notification service Recorder that can handle intermittent network connection Easily upload, download to S3 and also pause, resume, and cancel these operations Send email reliably from device Access distributed buffering and queuing service
  • 15. Simplifies Identity and Access Management Securely access all AWS services from Mobile device Cross-device and Cross-platform Sync Implement security best practices “Your App data is secure, available offline, and kept in sync between devices” Synchronize user’s data across devices and platforms Manage users as unique identities across identity providers Guest YourAuth
  • 16. Identity Providers Unique Joe Anna Bob Identities Any Device Any Platform Any AWS Service Helps implement security best practices Securely access any AWS Service from mobile device. It simplifies the interaction with AWS Identity and Access Management 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. Mobile Analytics S3 DynamoDB Kinesis Your own Auth
  • 17. Unique Identifier for Your “Things” “Headless” connected devices can also securely access cloud services. Save Data to the Cloud Save app and device data to the cloud and merge them after login Guest User Access Securely access AWS resources and leverage app features without the need to create an account or logging in Visitor Preferences Cognito Store Guest EC2 S3 DynamoDB Kinesis
  • 18. Sign up for AWS Account and login to AWS Management Console Download and integrate the Mobile SDK and store and sync user data in a dataset Create identitypoolfor authenticated and unauthenticated users in the AWS Console
  • 20. Set granular access permissions on AWS resources Get fine-grained access control to cloud resources. Safeguard AWS Credentials No need to embed credentials in the app anymore. Get least-privileged temporary credentials. Helps implement security best practices Securely access any AWS Service. It simplifies the interaction with Security Token Service and removes the need of Token Vending Machine EC2 S3 DynamoDB Kinesis
  • 21. End Users App with AWS Mobile SDK Access to AWS Services Login OAUTH/OpenID Access Token Cognito ID, Temp Credentials Access Token Pool ID Role ARNs Cognito ID (Temp Credentials) DynamoDB Developer Cognito Identity Broker S3 Mobile Analytics Cognito Sync Store AWS Management Console
  • 22. Your own Username And Password Your own user authentication system Several apps prefer to have their own username and password instead of public identity providers for authentication. Manage mappings easily Cognito manages the mappings across login systems (public or private) using a unique Cognito ID Easily integrate with existing systems Implement GetOpenIdTokeForDeveloperIdentity() using our server-side SDKs like Java, Python, Ruby etc.
  • 23. Cognito ID (Temp Credentials) DynamoDB End Users Developer App with AWS Mobile SDK Access to AWS Services Cognito Identity Broker Get OpenIDToken Username password Cognito ID, Temp Credentials S3 Mobile Analytics Cognito Sync Store AWS Management Console OIDC Token Pool ID Role ARNs User Authentication System (Running on AWS or not) OIDC Token OIDC Token
  • 25. Identitypool Identity Providers Pool of identities that share the same trust policy Access Policy Access to AWS Services identitypool Unauthenticated Identities authenticated identities AWS IAM Roles AWS Account Web Identity Federation S3 DynamoDB Get Delete Put
  • 26. s3:* dynamodb:* cognito-sync:* Allow Actions: All S3, Sync store Operations Resource: All resources within these services Deny Actions: All DDB Operations Resource: All resources
  • 28. s3:PutObject","s3:GetObject","s3:DeleteObject”,”s3: ListMultipartUploadParts","s3:AbortMultipartUploadarn:aws:s3:::BUCKET_NAME/Bob/* s3:ListBucketarn:aws:s3:::BUCKET_NAMEs3:prefix":”Bob/ s3:ListBucketMultipartUploadsarn:aws:s3:::BUCKET_NAME Allow Actions: Certain operations Resource: Within a bucket with specific prefix (user)
  • 29. Allow Actions: All sync operations Resource: Only to that identity { "Effect": "Allow”, "Action": ["s3:GetObject”,"s3:PutObject”], "Resource": ["arn:aws:s3::: myBucket/amazon/snakegame/ ${cognito-identity.amazonaws.com:sub}"] } { "Effect":"Allow", "Action":"cognito-sync:*", "Resource":["arn:aws:cognito-sync:us-east-1: 123456789012:identitypool/ ${cognito-identity.amazonaws.com:aud}/identity/ ${cognito-identity.amazonaws.com:sub}/*"] } Allow Actions: S3 Get/Put operations Resource: Only to a specific part of bucket to that identity
  • 31. Implementing a user profile that syncs across devices, OS, apps is hard.
  • 32. User Data Storage and Sync Any Platform 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 Identity pool k/v data
  • 33. Offline Fast Intelligent Sync Flexible Conflict resolution Local SQLite Cache
  • 34. AWS Account Identitypool Dataset Pool of identities that share the same trust policy Identity Identity Identity Dataset Dataset identitypool Unique identifier across devices, get cached on local devices as well as saved in the cloud 1:n 1:n 1:n Dataset synchronized across devices by simply calling dataset.synchronize() method Dataset Dataset Key/Value 1:n Key-value and sync count
  • 35. AWS Account Identitypool Dataset Identity Identity Identity Dataset Dataset identitypool 1:n 1:n 1:n User preferences Developer has two apps: a game and a productivity app Game state Identitypool1 Productivity App Game App Dataset Dataset Key/Value 1:n
  • 36. CognitoCachingCredentialsProvidercognitoProvider= newCognitoCachingCredentialsProvider( myActivity.getContext(),// get the context for the current activity "AWS_ACCOUNT_ID", "COGNITO_IDENTITY_POOL_ID", "arn:aws:iam::AWS_ACCOUNT_ID:role/UNAUTHENTICATED_ROLE", "arn:aws:iam::AWS_ACCOUNT_ID:role/AUTHENTICATED_ROLE", Regions.US_EAST_1 ); Log.d("LogTag","my ID is "+cognitoProvider.getIdentityId()); // Create a service client with the provider AmazonDynamoDBclient =newAmazonDynamoDBClient(cognitoProvider);
  • 37. CognitoSyncManagersyncClient=new CognitoSyncManager(myActivity.getContext(), COGNITO_POOL_ID,Regions.YOUR_REGION,cognitoProvider); Dataset dataset =client.openOrCreateDataset("myDataset"); dataset.put("myKey","my value"); String value =dataset.get("myKey"); dataset.remove("myKey"); dataset.synchronize(this,syncCallback); dataset.synchronizeOnConnectivity(this,syncCallback);
  • 38. Analyze User Behavior Store and share media Deliver media Store shared data Stream real-time data Track Retention Send push notifications Track active users, engagement Manage funnels, Campaign performances Store user-generated photos Media and share them Automatically detect mobile devices Deliver content quickly globally Bring users back to your app by sending messages reliably Store and query fast NoSQLdata 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) AWS Identity and Access Management Amazon Cognito (Identity Broker)
  • 43. Developer Economics | State of the Developer Nation Q3 2014 | © VisionMobile | All rights reserved | www.developereconomics.com/go 27
  • 44. Developer Economics State of the Developer Nation Q3 2014 © VisionMobile
  • 45. timely mannerown their mobile data
  • 46. Scalable and Generous Free Tier Focus on metrics that matter. Usage reports available within 60 minutes of receiving data from an app Fast Scale to billions of events per day from millions of users. Own Your Data “Easily collect, visualize and understand your app usage data at scale” Data collected are not shared, aggregated, or reused
  • 47. Sign up for AWS Account and create or use existing Cognito ID in the AWS Management Console View engagement and session activity reports in the AWS Management console within minutes Download and integrate the Mobile SDK with one line of code (Android/FireOS, iOS)
  • 48. // Within your activity privatestaticMobileAnalyticsManageranalytics; // Within your activity onCreate() try{ AnalyticsConfigoptions = newAnalyticsConfig(); options.withAllowsWANDelivery(true); analytics = MobileAnalyticsManager.getOrCreateInstance( getApplicationContext(), "YOU MOBILE ANALYTICS APP ID", Regions.US_EAST_1, cognitoProvider, // You need a Cognitocredential provider options ); } catch(InitializationExceptionex) { Log.e(this.getClass().getName(), "Failed to initialize Amazon Mobile Analytics", ex); }
  • 49. @Override protectedvoidonPause() { super.onPause(); if(analytics != null) { analytics.getSessionClient().pauseSession(); //Attempt to send any events that have been recorded to the Mobile Analytics service. analytics.getEventClient().submitEvents(); } } @Override protectedvoidonResume() { super.onPause(); if(analytics != null) { analytics.getSessionClient().resumeSession(); } }
  • 50. publicvoidonLevelComplete(String levelName, String difficulty, doubletimeToComplete, intplayerState) { //Create a Level Complete event with some attributes and metrics(measurements) //Attributes and metrics can be added using with statements AnalyticsEventlevelCompleteEvent= analytics.getEventClient().createEvent("LevelComplete") .withAttribute("LevelName", levelName) .withAttribute("Difficulty", difficulty) .withMetric("TimeToComplete", timeToComplete); //attributes and metrics can also be added using add statements if(playerState== STATE_LOSE) levelCompleteEvent.addAttribute("EndState", "Lose"); elseif(playerState== STATE_WIN) levelCompleteEvent.addAttribute("EndState", "Win"); //Record the Level Complete event analytics.getEventClient().recordEvent(levelCompleteEvent); } this.onLevelComplete("Lower Dungeon", "Very Difficult", 2734, STATE_WIN);
  • 51. EventClienteventClient= mobileAnalyticsManager.getEventClient(); // create a builder that can record purchase events for Amazon IAP AmazonMonetizationEventBuilderbuilder = AmazonMonetizationEventBuilder.create(eventClient); Event purchaseEvent= builder.withProductId(purchasedItem.getSku()) .withFormattedItemPrice(purchasedItem.getPrice()) .withQuantity(1).build(); eventClient.recordEvent(purchaseEvent); // create a builder that can record purchase events for Google Play IAP GooglePlayMonetizationEventBuilderbuilder = GooglePlayMonetizationEventBuilder.create(eventClient); Event purchaseEvent= builder.withProductId(sku) .withFormattedItemPrice(price) .withTransactionId(purchase.getOrderId()) .withQuantity(1).build(); eventClient.recordEvent(purchaseEvent); MonetizationEventBuilder AmazonMonetizationEventBuilder CustomMonetizationEventBuilder GooglePlayMonetizationEventBuilder VirtualMonetizationEventBuilder
  • 52. 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
  • 53. 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
  • 54. Get behavioral insights into app specific actions that your users take Reports provide a view of how often custom events occur. You can add further context with Attributes and Metrics, to each custom event Examples Track the number of Likes/Shares, per article, in a news app Understand player abort rates per level, in a game Number of songs played, per user session, in a music app In-app item popularity in a shopping app
  • 56. Store and share media Deliver media Store shared data Stream real-time data Send push notifications Store user-generated photos Media and share them Automatically detect mobile devices Deliver content quickly globally Bring users back to your app by sending messages reliably Store and query fast NoSQLdata across users and devices Collect real-time clickstream logs and take actions quickly Your Mobile App Authenticate users Authorize access Analyze User Behavior Synchronize data Amazon Mobile Analytics Amazon Cognito (Sync) AWS Identity and Access Management Amazon Cognito (Identity Broker) Track Retention Amazon Mobile Analytics
  • 58. 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
  • 59. // Creating the transfer manager TransferManagertransferManager= newTransferManager(credentialProvider); // Upload image Upload upload = transferManager.upload(BUCKET_NAME, fileName, file); // Download image Download download = transferManager.download(BUCKET_NAME, mKey, file); // Pause, and Resume try{ PersistableDownloadpersistableDownload= download.pause(); //do something if we didn’t abort } catch(PauseExceptione) { //do something if we aborted } download = transferManager.resumeDownload(persistableDownload);
  • 61. Amazon S3 Custom OR User requests Edge location (cache + network optimizations) Origin Get content Get content Content Content
  • 62. Dallas(2) St.Louis Miami Jacksonville Los Angeles(2) Palo Alto Seattle Ashburn(3) Newark New York(3) Dublin London(2) Amsterdam(3) Stockholm Frankfurt(3) Paris(2) Singapore(2) Hong Kong(2) Tokyo(2) Sao Paulo South Bend San Jose Milan Sydney Madrid Seoul Mumbai Chennai Atlanta Hayward Rio de Janeiro Marseille Warsaw Osaka Manila Taipei Melbourne
  • 64. Store shared data Stream real-time data Send push notifications Bring users back to your app by sending messages reliably Store and query fast NoSQLdata across users and devices Collect real-time clickstream logs and take actions quickly Your Mobile App Authenticate users Authorize access Analyze User Behavior Synchronize data Amazon Mobile Analytics Amazon Cognito (Sync) AWS Identity and Access Management Amazon Cognito (Identity Broker) Track Retention Amazon Mobile Analytics Store and share media Deliver media Amazon S3 Transfer Manager Amazon CloudFront (Device Detection)
  • 66. Joe Anna Bob High Scores Joe 1500 Anna 800 Bob 750 Amazon DynamoDB Connector: Object Mapper Simplifies access to Amazon DynamoDB in you app Map client-side classes to Amazon DynamoDB tables Removes the need to transform objects into tables and vice versa
  • 67. Amazon DynamoDB: Example @DynamoDBTable(tableName= "Bookstore") publicstaticclassBook{ privateintid; privateString isbn, title; privateBoolean hardCover; @DynamoDBHashKey(attributeName= "id") publicintgetId() { returnid; } publicvoidsetId(intid) { this.id= id; } @DynamoDBAttribute(attributeName="isbn") publicString getIsbn() { returnisbn; } ... } Id isbn Title hardCover 1 22-22222 My First Book Yes 2 43-43234 My Favorite Book No 3 55-12345 My NewBook Yes Table: Bookstore
  • 68. Amazon DynamoDB: An Example // Build a book object Book book = newBook(); book.setId(17); book.setIsbn("222-2222222222"); book.setTitle("Some Title"); book.setHardCover(true); // Save book object to dynmaoDB mapper.save(book); // Update item and save object again book.setTitle("Updated Title"); book.setHardCover(false); mapper.save(book); // Load another book Book anotherBook= mapper.load(Book.class,7);
  • 69. Geo Library for Amazon DynamoDB
  • 70. Authenticate users Authorize access Analyze User Behavior Store and share media Synchronize data AWS Mobile SDK Amazon Mobile Analytics Deliver media Amazon Cognito (Sync) AWS Identity and Access Management Amazon Cognito (Identity Broker) Amazon S3 Transfer Manager Amazon CloudFront (Device Detection) Store shared data Amazon DynamoDB (Object Mapper) Stream real-time data Track Retention Amazon Mobile Analytics Send push notifications Your Mobile App Bring users back to your app by sending messages reliably Collect real-time clickstream logs and take actions quickly
  • 75. 65% of mobile apps are abandoned within 90 days. http://blog.flurry.com/bid/90743/App-Engagement-The-Matrix-Reloaded
  • 77. Broadcast Direct Closed Loop Identical messages to many at once Unique messages to individual customers Targeted and optimized with analytics
  • 78. Broadcast Direct Closed Loop Identical messages to many at once Unique messages to individual customers Targeted and optimized with analytics
  • 79. •New features/content/games •Promotion start/ends/redemption •Active players (active in 7 days) •Newly inactive players •Segmentation (geo, spend, others..)
  • 80. •“New episode available now!” •“Halloween challenge starts today.” •“Keep the streak going.” •“Smokey the bear misses you!” •“New Jetpack, on sale today!”
  • 81. Broadcast Closed Loop Identical messages to many at once Targeted and optimized with analytics Direct Unique messages to individual customers
  • 82. •Messaging •Turn-based activities •Events •User lifecycle •Administrative
  • 83. •“Jon invited you to a game.” •“It’s your turn to play.” •“You now have full lives.” •“Welcome to the game!” •“Your subscription is ending.”
  • 84. Broadcast Identical messages to many at once Direct Unique messages to individual customers Closed Loop Targeted and optimized with analytics
  • 85. •Broadcast push notifications •Direct push notifications
  • 86. •Different messages •Different frequencies •Different segments •Different times of day •Different points in the lifecycle
  • 87. Broadcast Direct Closed Loop Identical messages to many at once Unique messages to individual customers Targeted and optimized with analytics
  • 90. Cloud App Mobile Apps Platform Service
  • 91. Platform Service Token Registration TokenFeedback
  • 92. Apple APNS Google GCM Amazon ADM
  • 93. Cloud App Platform Services Mobile Apps
  • 94. Mobile Apps Custom Code Push Intermediary
  • 95.   Operational complexity Scalability takes work Cost –even though the platform services themselves are free
  • 96. Amazon SNS Cross-platform Mobile Push Apple APNS Google GCM Amazon ADM Windows WNS and MPNS Baidu CP Android Phones and Tablets Apple iPhones and iPads Kindle Fire Devices Android Phones and Tablets in China iOS Windows Desktop and Windows Phone Devices
  • 97. New features: •Time to Live (TTL) •Message Attributes •Large Topics •iOS8
  • 98. Apple APNS Google GCM Amazon ADM Amazon SNSMobile Push
  • 99. Apple APNS Google GCM Amazon ADM Amazon SNSMobile Push ARN 1 Token A ARN 2 Token B ARN 3 Token C
  • 100. Amazon SNSMobile Push Token Registration Token Feedback Cloud App
  • 101. Apple APNS Google GCM Amazon ADM Amazon SNSMobile Push ARN 1 Token A ARN 2 Token B ARN 3 Token C Token X Token Y
  • 102. Amazon SNSMobile Push ARN 1 Token A ARN 2 Token B ARN 3 Token C
  • 103. Publish Publish Publish Publish Direct Publishing Broadcast with SNS Topics
  • 104. Geography Activity Product US –West Coast Daily Actives Flapping Bird Rio Interest Tier Segment 49ers Premium Top 100 Players
  • 105. Apple Kindle Fire Kindle Fire Google Publish Apple Kindle Fire Kindle Fire Google Publish Publish Once, Deliver Anywhere Specify Platform-Specific Payloads
  • 106. So let’s get started.
  • 107. Step 1: Write your mobile app •Use the mobile app platform’s push notification libraries as you normally would.
  • 108. Step 2: Obtain Application Prerequisites •APNs: •Apple Push Notification service SSL certificate •Application Private Key •GCM: •API Key (Sender Auth Token) •ADM: •Client ID •Client secret
  • 109. Step 3: Register Your Mobile App with AWS Amazon SNSMobile Push
  • 110. Step 4: Obtain a Token/Registration ID from the device •APNs: •Device Token •GCM: •Registration ID •ADM: •Registration ID CloudApp <e960d9b1…de43f6c0>
  • 111. Step 5: Add Token/Registration ID to Amazon SNS •For existing devices •Use the console for .csvimport •Or use CreatePlatformEndpointAPI •For future devices •Use a proxy server and the CreatePlatformEndpointAPI •Or use Cognitoand let devices register themselves •Receive an ARN back Amazon SNSMobile Push CloudApp <e960d9b1…de43f6c0> arn:aws:sns:eu-west-1:12…1f
  • 112. privateString getArnForDeviceEndpoint( String platformApplicationArn, String deviceToken) { CreatePlatformEndpointRequestrequest = newCreatePlatformEndpointRequest() .withPlatformApplicationArn(platformApplicationArn) .withToken(deviceToken); CreatePlatformEndpointResultresult = snsClient.createPlatformEndpoint(request); returnresult.getEndpointArn(); } Device Registration –Code example
  • 113. Step 6a: Send Push Notifications via the Console
  • 114. Step 6b: Send Push Notifications via the API $ python >>> import boto >>> import boto.sns >>> sns= boto.sns.connect_to_region("us-west-2") >>> sns.publish( ... message="Hello world!", ... target_arn="arn:aws:sns:us-west-2:514247453397:endpoint/GCM/MsgDemo/24885ae1- 4002-306d-bb4f-0c79c11e951c") {u'PublishResponse': {u'PublishResult': {u'MessageId': u'f1f0f549-0e80-5eeb-a5bc- b984bf66dcc4'}, u'ResponseMetadata': {u'RequestId': u'258e807e-5430-5050-8873- ccb3e5d6c27f'}}} >>>
  • 115. Step 7: Receive and Close the Loop
  • 116. Authenticate users Authorize access Analyze User Behavior Store and share media Synchronize data AWS Mobile SDK Amazon Mobile Analytics Deliver media Amazon Cognito (Sync) AWS Identity and Access Management Amazon Cognito (Identity Broker) Amazon S3 Transfer Manager Amazon CloudFront (Device Detection) Store shared data Amazon DynamoDB (Object Mapper) Stream real-time data Track Retention Amazon Mobile Analytics Send push notifications Amazon SNS Mobile Push Your Mobile App Collect real-time clickstream logs and take actions quickly
  • 118. Amazon Kinesis Redshift S3 Kinesis 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
  • 119. String kinesisDirectory= "YOUR_UNIQUE_DIRECTORY"; KinesisRecorderrecorder = newKinesisRecorder( cognitoProvider, Regions.US_WEST_2, getDir(kinesisDirectory, MODE_PRIVATE));
  • 120. recorder.saveRecord("MyData".getBytes(),"MyStreamName"); recorder.submitAllRecords(); Long byteLimit= recorder.getDiskByteLimit(); Long bytesUsed= recorder.getDiskBytesUsed(); KinesisRecorderConfigkinesisRecorderConfig= recorder.getKinesisRecorderConfig(); Long maxStorageSize= kinesisRecorderConfig.getMaxStorageSize();
  • 121. Authenticate users Authorize access Analyze User Behavior Store and share media Synchronize data AWS Mobile SDK Amazon Mobile Analytics Deliver media Amazon Cognito (Sync) AWS Identity and Access Management Amazon Cognito (Identity Broker) Amazon S3 Transfer Manager Amazon CloudFront (Device Detection) Store shared 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
  • 122. Kinesis Application AWS Elastic Beanstalk
  • 126. Elastic Load Balancing Auto Scaling Elastic Beanstalk Application CloudWatch Alarm
  • 130. Amazon Cognito Amazon Mobile Analytics S3 Connector DynamoDB Connector Kinesis Connector k/v data Amazon SNS Mobile Push S3 Bucket DynamoDB Table Kinesis Application Sync Repository End users App with AWS Mobile SDK Developers AWS Management Console Kinesis Application (?) Your Auth
  • 131. Amazon Cognito Amazon Mobile Analytics S3 Connector DynamoDB Connector Kinesis Connector k/v data Amazon SNS Mobile Push S3 Bucket DynamoDB Table Kinesis Application Sync Repository Developers AWS Management Console Kinesis Application (?) End users App with AWS Mobile SDK Your Auth
  • 132. Developers AWS Management Console Kinesis Application (?) Amazon Cognito Amazon Mobile Analytics S3 Connector DynamoDB Connector Kinesis Connector k/v data Amazon SNS Mobile Push S3 Bucket DynamoDB Table Kinesis Application Sync Repository End users App with AWS Mobile SDK Your Auth
  • 134. Authenticate users Authorize access Analyze User Behavior Store and share media Synchronize data Deliver media Store shared data Stream real-time data Track Retention Send push notifications Manage users and identity providers Securely access cloud resources Sync user prefs across devices Track active users, engagement Manage funnels, Campaign performances Store user-generated photos Media and share them Automatically detect mobile devices Deliver content quickly globally Bring users back to your app by sending messages reliably Store and query fast NoSQLdata across users and devices Collect real-time clickstream logs and take actions quickly Your Mobile App
  • 135. Authenticate users Authorize access Analyze User Behavior Store and share media Synchronize data AWS Mobile SDK Amazon Mobile Analytics Deliver media Amazon Cognito (Sync) AWS Identity and Access Management Amazon Cognito (Identity Broker) Amazon S3 Transfer Manager Amazon CloudFront (Device Detection) Store shared 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
  • 136. Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push Kinesis Connector DynamoDB Connector S3 Connector SQS Connector SES Connector AWS Global Infrastructure (10 Regions, Availability Zones, 51 Edge Locations) Core Building Block Services Mobile Optimized Connectors Mobile Optimized Services Your Mobile App, Game or Device App AWS Mobile SDK, API Endpoints, Management Console Compute Storage Networking Analytics Databases Integrated SDK
  • 137. Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push Kinesis Connector DynamoDB Connector S3 Connector SQS Connector SES Connector User identity & data synchronization service Store any NoSQL data and also map mobile OS specific objects to DynamoDB tables Fast cross-platform Analytics & reporting Service Powerful Cross-platform Push notification service Recorder that can handle intermittent network connection Easily upload, download to S3 and also pause, resume, and cancel these operations Send email reliably from device Access distributed buffering and queuing service