SlideShare a Scribd company logo
1 of 118
Technology Evangelist, AWS Mobile and IoT
Updated: April 12, 2015
Build Your Mobile App Faster with AWS Mobile
Services
Jinesh Varia, @jinman
What makes your mobile apps unique?
Where are you spending most of your time?
What makes your mobile apps unique?
Where are you spending most of your time?
Problems developers face today
Fragmentation across platforms
Sync scalability is extremely hard
Expensive to manage and operate
Distracts them from building core UX
Managing unique user identities is difficult
“Table stakes” for every app
Undifferentiated Heavy Lifting
Developer’s Mobile App Code
User Identity Mgmt. and Auth
User Data Synchronization
Asynchronous Communication
Active Devices Analytics
User Behavior Analytics
Engagement Analytics
Push Notifications
Event Triggers
Platform agnostic Mobile Backend
Data Validation and Transformation
File and Media Storage
Shared Database Storage
Data Collection
And More….
AWS Cloud Infrastructure
Developer’s Mobile App Code
User Identity Mgmt. and Auth
User Data Synchronization
Asynchronous Communication
Active Devices Analytics
User Behavior Analytics
Engagement Analytics
Push Notifications
Event Triggers
Platform agnostic Mobile Backend
Data Validation and Transformation
File and Media Storage
Shared Database Storage
Data Collection
And More….
AWS Cloud Infrastructure
Amazon Cognito
Amazon Mobile Analytics
Amazon SNS Mobile Push
Amazon Lambda New!
Mobile-optimized Connectors
(Kinesis, S3, DynamoDB, SQS)
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push
Kinesis Recorder DynamoDB Mapper S3 Transfer Mgr SQS Client SES Client
AWS Global Infrastructure (Regions, Availability Zones, Edge Locations)
Core Building Block
Services
Mobile Optimized
Connectors
Mobile Optimized
Services
Your Mobile App, Game or Device App
AWS Mobile SDK, API Endpoints, Management Console
Compute Storage Networking Analytics Databases
Integrated SDK
AWS Mobile Services
AWS Lambda
Lambda
Functions
λ λ
λ
λ
User identity &
data synchronization
service
Store any NoSQL
data and also map
mobile OS specific
objects to
DynamoDB tables
Fast cross-platform
Analytics & reporting
Service
Powerful Cross-platform
Push notification service
Recorder that can
handle intermittent
network connection
Easily upload,
download to S3 and
also pause,
resume, and cancel
these operations
Send email
reliably from
device
Access
distributed
buffering and
queuing service
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push
Kinesis Recorder DynamoDB Mapper S3 Transfer Mgr SQS Client SES ClientAWS Lambda
Lambda
Functions
λ λ
λ
λ
Not limited to Mobile.
Run stateless cloud
Functions without any
Backend servers to
Manage or scale
Authenticate users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
Deliver media
Store shared data
Stream real-time dataRun Business Logic
Send push notifications
Manage users and
identity providers
Securely access
cloud resources
Sync user prefs
across devices
Track active users,
Engagement, retention
Run stateless custom
Code without managing servers
Store user-generated photos
Media and share them
Automatically detect mobile devices
Deliver content quickly globally
Bring users back to your app by sending
messages reliably
Store and query fast NoSQL data
across users and devices
Collect real-time clickstream logs
and take actions quickly
Your
Mobile
App
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)
Run Business Logic
AWS Lambda
Send push notifications
Amazon SNS
Mobile Push
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)
Send push notifications
Amazon SNS
Mobile Push
Your
Mobile
App
Run Business Logic
AWS Lambda
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 Your own
Auth
Identity
Providers
Unique
IdentitiesJoe Anna Bob
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
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 identitypool for authenticated and
unauthenticated users in the AWS Console
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 OpenID Token
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
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:PutObject s3:GetObject s3:DeleteObject
s3:ListMultipartUploadParts s3:AbortMultipartUpload
arn:aws:s3:::BUCKET_NAME/*
s3:ListBucket s3:ListBucketMultipartUploads
arn:aws:s3:::BUCKET_NAME
dynamodb:GetItem dynamodb:Query dynamodb:PutItem
arn:aws:dynamodb:REGION:123456789:table/TABLE_NAME",
"arn:aws:dynamodb:REGION:123456789:table/TABLE_NAME/
index/INDEX_NAME
Allow
Actions:
Certain operations
Resource:
One bucket, table ..
s3:PutObject","s3:GetObject","s3:DeleteObject”,”s3:
ListMultipartUploadParts","s3:AbortMultipartUpload
arn:aws:s3:::BUCKET_NAME/Bob/*
s3:ListBucket
arn:aws:s3:::BUCKET_NAME
s3:prefix":”Bob/
s3:ListBucketMultipartUploads
arn: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
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
k/v data
Identity pool
No Backend
Simple client SDK eliminates need for server
side code
Sync Game States
Across OS/devices
State Transition
(link multiple accounts)
Sync User Profiles
across OS/devices/web
Concrete Software builds cross platform mobile games
Concrete Software has been making hit mobile games
like Jellyflop and PBA Bowling Challenge since 2003.
With Amazon Cognito, We
can build games much faster
and provide great user
experience to our customers.
Keith A. Pichelman
CEO, Concrete Software
”
“ • Provide a seamless user experience across devices
and platforms to our users.
• Store save games in the cloud and synchronize them
across all of a user’s devices without creating or
hosting a backend.
The Challenge
The solution
• Amazon Cognito helps us securely access our AWS
resources.
• Cognito Sync gives us flexibility to save data in the
cloud, and cache it on a user’s devices, without
managing any backend infrastructure.
Offline
Fast
Intelligent Sync
Flexible Conflict resolution
Local SQLite Cache
• Identity Pool: Pool of app users. Can be shared
across apps.
• Identity: An individual user. Consistent across
identity providers. Can be a guest user.
• Dataset: Per user grouping of data. The most
granular level of sync. Up to 1MB.
• Record: Key/Value pair.
AWS Account
Dataset
Identity
Identity
Identity
Dataset
Dataset
Identity
Pool
1:60
1:n
1:20
Dataset
Dataset
Record
1:1024
You
Your App
Your App Users
User Data
Container
User Data
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
DatasetDataset
Key/Value
1:n
Initialize the CredentialsProvider and CognitoClient
Call synchronize on the dataset
Create or open Dataset and Add Key Values
provider = new CognitoCachingCredentialsProvider (context, AWS_ACCOUNT_ID,
COGNITO_POOL_ID, COGNITO_ROLE_UNAUTH, COGNITO_ROLE_AUTH, Regions.US_EAST_1);
cognito = new CognitoSyncManager (context, Regions.US_EAST_1, provider);
dataset.synchronize(new SyncCallback(){..});
cognito.openOrCreateDataset(datasetName);
dataset.put(key, value);
Initialize the AWSCognitoSyncClient
Call synchronize on the dataset
Create or open Dataset and Add Key Values
DataSet *dataset = [syncClient openOrCreateDataSet:@"myDataSet"];
NSString *value = [dataset readStringForKey:@"myKey"];
[dataset putString:@"my value" forKey:@"myKey"];
AWSCognitoSyncClient *syncClient = [[AWSCognitoSyncClient alloc]
initWithConfiguration: configuration];
[dataset synchronize];
iOS
Store and share media
Deliver media
Store shared data
Stream real-time data
Send push notifications
Store user-generated photos
Media and share them
Automatically detect mobile devices
Deliver content quickly globally
Bring users back to your app by sending
messages reliably
Store and query fast NoSQL data
across users and devices
Collect real-time clickstream logs
and take actions quickly
Your
Mobile
App
Authenticate users
Authorize access
Synchronize data
Amazon Cognito
(Sync)
AWS Identity and
Access Management
Amazon Cognito
(Identity Broker)
Analyze User Behavior
Run Business Logic
Track active users,
Engagement, retention
Run stateless custom
Code without managing servers
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)
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
Initialize the MobileAnalyticsManager. That’s it! Get Session
Activity in the AWS Management Console.
For Custom Events activity reports, add events.
Add OnResume() and OnPause()
private static MobileAnalyticsManager analytics;
analytics = MobileAnalyticsManager.getOrCreateInstance(
this.getApplicationContext(),"yourCompany.yourAppId",
Regions.YOUR_REGION, config, cognitoProvider );
EventClient eventClient = analytics.getEventClient();
MobileAnalyticsEvent visitEvent = eventClient.createEvent("speedSet");
eventClient.recordEvent(visitEvent);
analytics.getSessionClient().resumeSession();
analytics.getSessionClient().pauseSession();
Analytics.getEventClient().submitEvents();
Initialize the AWSMobileAnalytics object. That’s it! Get Session
Activity in the AWS Management Console.
Submit the event. If we don't call submitEvents, events
will automatically be submitted at periodic intervals.
Create add Custom Events
[eventClient submitEvents];
id<AWSMobileAnalyticsEventClient> eventClient =
analytics.eventClient;
id<AWSMobileAnalyticsEvent> level1Event = [eventClient
createEventWithEventType:@"level1Complete"];
AWSMobileAnalytics* analytics = [AWSMobileAnalytics
defaultAWSMobileAnalyticsWithIdentifier:@"someuniqueid"];
iOS
mobile
client
Amazon
S3
Amazon Mobile
Analytics
mobile
client
Amazon
S3
Amazon
Redshift
Amazon Mobile
Analytics
Hadoop/Spark
Amazon EMR
Amazon
Glacier
archive
batch
mobile
client
Amazon
S3
Amazon
Redshift
Amazon Mobile
Analytics
External data
event_timestamp arrival_timestamp
event_type app_id
app_title cognito_id
client_id platform
platform_version locale
app_package_name app_version_name
device model device make
monetization_amount monetization_item
a_level
a_promo_code
m_score
m_quantity
mobile
client
Amazon
S3
Amazon
Redshift
Amazon Mobile
Analytics
External data
GROWTH PER COUNTRY
68
THE WORLD CUP IS THE MOST INTERESTING FOR THE AMERICANS
PENETRATION
69
USERS PER CAPITA
LEVERAGE ON MISSION
70
VOTE PER COUNTRY
DEVICES
71
IN FORZA FOOTBALL
Store and share media
Deliver media
Store shared data
Stream real-time data
Send push notifications
Store user-generated photos
Media and share them
Automatically detect mobile devices
Deliver content quickly globally
Bring users back to your app by sending
messages reliably
Store and query fast NoSQL data
across users and devices
Collect real-time clickstream logs
and take actions quickly
Your
Mobile
App
Authenticate users
Authorize access
Analyze User Behavior
Synchronize data
Amazon Mobile
Analytics
Amazon Cognito
(Sync)
AWS Identity and
Access Management
Amazon Cognito
(Identity Broker)
Run Business Logic
Run stateless custom
Code without managing servers
Auto Scaling
(Never under or over
provision)
Focus on business logic,
not infrastructure. Upload
your code; AWS Lambda
handles everything else
Zero Administration
Lambda scales the
infrastructure as needed
to match the event rate
and pay as you go
Bring Your Own Code
“Run your code in the cloud in response to events and scale without any
servers to manage”
Starting with JavaScript but
later any language, Create
threads and processes, run
batch scripts or other
executables,
How can you put AWS Lambda to work?
Stream
processing
Data triggersBack-end
service
Mobile/IoT Indexing &
synchronization
CommandPost is CMP.LY’s patented
Monitoring, Measurement & Insights (MMI)
tool for managed social communications.
Increase the amount of data
processed while reducing(!)
the resources (instances)
required to do it
Respond to events in real-time
Map local functions to lambda functions from within the SDK
Target, Filter, and Route Amazon SNS Notifications
Apply Custom Logic to User Preferences and Game State
Java Support (Coming soon), CloudTrail integration, Enhanced metrics
and logging via CloudWatch
S3 event
notification
s
DynamoDB
Streams
Kinesis
events
Cognito
events
SNS
events
Custom
events
AWS Lambda Now Ready for Production at Scale
Amazon
Cognito Sync
Dataset
Amazon
DynamoDB
Table
Map local
functions to
invoke
Lambda
Functions
synchronously
Maintain
Intelligence
in the cloud
and not the
device
Chain
multiple
Functions or
call them in
Parallel

SNS Push
notification
Personalize your
notification for
every user
Initialize the LambdaFactory and define the Interface for the functions
Call synchronize on the dataset
Create/Upload the Lambda Function to the AWS Management Console
lambda = new LambdaInvokerFactory(context, Regions.US_WEST_2, provider);
//interface
@LambdaFunction(functionName="cloudFunction”)
String localFunction(String nameInfo);
lambda.localFunction(“Hello From “); // this will output “Hello From Lambda”
exports.handler = function(event, context) {
context.done(null, event + 'Lambda'); // SUCCESS with message
};
Authenticate users
Authorize access
Analyze User Behavior
Synchronize data
AWS Mobile SDK
Amazon Mobile
Analytics
Amazon Cognito
(Sync)
AWS Identity and
Access Management
Amazon Cognito
(Identity Broker)
Run Business Logic
AWS Lambda
Your
Mobile
App
Store and share media
Deliver media
Store shared data
Stream real-time data
Send push notifications
Store user-generated photos
Media and share them
Automatically detect mobile devices
Deliver content quickly globally
Bring users back to your app by sending
messages reliably
Store and query fast NoSQL data
across users and devices
Collect real-time clickstream logs
and take actions quickly
Kinesis
AWS
Mobile
SDK
S3
Integrated AWS Mobile SDK
Optimized for native OS
Multipart upload media
Fault tolerant download
Automatic retries
Pause, resume, cancel functions
Generic batching system
handles intermittent network
connection
Optimize battery utilization
DynamoDB
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
Outplay Entertainment –Amazon S3 Connector viaAWS Mobile SDK
Outplay Entertainment is mobile-focused game
developer on a mission to deliver fun, free and
innovative games for smartphones, tablets, and social
networks.
With Amazon S3 connector, we can
improve the users experience by
dynamically downloading game assets
in the background. No long up-front
delays for our users.
Douglas Hare
CEO, Outplay Entertainment
”
“ • Improved User Experience. Using the Mobile SDK,
they can download the game assets in background
while the user starts playing the game. No limits on
downloading extra assets.
• Dynamic updates. They can update the assets
dynamically and avoid AppStore release cycles.
• Unquestioned Scalability. Different assets for
multiple screen densities go up to 170 MB+. By
storing this data on S3 and directly downloading to
the mobile device, they can scale seamlessly.
• Excellent Performance. Highest resolution devices
end up downloading about 90MB of extra content.
TransferManager transferManager = new
TransferManager(credentialProvider);
Upload upload = transferManager.upload(BUCKET_NAME, fileName, file);
Download download = transferManager.download(BUCKET_NAME, mKey,
file);
try {
PersistableDownload persistableDownload = download.pause();
//do something if we didn’t abort
} catch(PauseException e) {
//do something if we aborted
}
download = transferManager.resumeDownload(persistableDownload);
self.transferManager = [S3TransferManager new];
self.transferManager.s3 = s3client;
[self.transferManager uploadFile:fileName bucket:bucketName
key:objectName];
[self.transferManager downloadFile:fileName bucket:bucketName
key:objectName];
[self.transferManager pauseAllTransfers];
[self.transferManager resumeAllTransfers];
[self.transferManager cancelAllTransfers];
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)
Run Business Logic
AWS Lambda
Your
Mobile
App
Store shared data
Stream real-time data
Send push notifications
Bring users back to your app by sending
messages reliably
Store and query fast NoSQL data
across users and devices
Collect real-time clickstream logs
and take actions quickly
Cloud App
Platform Services Mobile Apps
Amazon SNS
Cross-platform
Mobile Push
Internet
Apple APNS
Google GCM
Amazon ADM
Windows WNS and
MPNS
Baidu CP
With Amazon SNS, developers can send push notifications on multiple platforms
and reach mobile users around the world
New features:
Delivery Metrics via
CloudWatch
Trigger Lambda
Functions from SNS
notifications
Android Phones and Tablets
Apple iPhones and iPads
Kindle Fire Devices
Android Phones and Tablets in China
iOS
Windows Desktop and Windows Phone
Devices
Mobile push lets our users live
life together in the moment, even
when they are miles apart.
Founded in San Francisco
in 2010
Social networking and
messaging designed for
close friends and family
Two apps, Three
platforms, 20 languages
5M+ DAU worldwide
creating billions of monthly
impressions
35 AWS EC2 m3.xlarge instances
Home-rolled code based on Tornado
6 Load
Balancers
Constantly trying to
scale out, both at
process level and
server level
Fighting to maximize
throughput at packets
per second level
Never certain how
many pushes we were
sending or dropping
Amazon SNS
Mobile Push
Zero to 500m+ daily
push notifications
almost overnight
Highest available
reliability and speed
Easy migration
$1 per million
mobile push deliveries 10m
170m
500m
Day 1 Day 2 Day 3
Path Daily SNS Mobile
Push Deliveries
(millions)
…Rising
Fast reliable
notification for every
Email received is
powered by SNS
Customers love
high scale and
Reliability of SNS
High-profile Startups
trust SNS for their
high-profile launches
Secret.ly
Advanced targeted
notifications
bring players back into
the game
Mature games increase
retention using SNS
Launched its Android
App with SNS, no
provisioning required
Jetpack Joyride
Fruit ninja
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)
Run Business Logic
AWS Lambda
Send push notifications
Amazon SNS
Mobile Push
Your
Mobile
App
Store shared data
Stream real-time data
Store and query fast NoSQL data
across users and devices
Collect real-time clickstream logs
and take actions quickly
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
HitPoint Studios UsesAWS to GrowAudience and Cut Costs by 45%
HitPoint is an independent casual online game
developer with games on Facebook and mobile.
HitPoint Studios uses AWS to grow
our player base and cut hosting
costs. We are also building our new
mobile gaming platform on its
infrastructure.
• Reduced hosting and content delivery costs by over 45%
• Delivers new game content weekly to 250,000+ MAU
• Reduced server deployment, maintenance, and
monitoring time to a single engineer
• Allows us to do large marketing spends for UA without
concern for server load from new users
• Provides us with the infrastructure needed to build our
new game platform with a small, focused team
Chris Vigorito
Technical Director, HitPoint Inc.
”
“
Cognito
User
Management
CloudFront
Content
Delivery
DynamoDB
Persistence
SNS
Notifications
EC2
Compute
Kinesis
Event Streaming
Elastic
Map Reduce
Data Analysis
Client
Elastic
Beanstalk
Auto-Scaling
Mobile
Analytics
Analytics
Amazon DynamoDB: Example @DynamoDBTable(tableName = "Bookstore")
public static class Book {
private int id;
private String isbn, title;
private Boolean hardCover;
@DynamoDBHashKey(attributeName = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@DynamoDBAttribute(attributeName="isbn")
public String getIsbn() {
return isbn;
}
...
}
Id isbn Title hardCover
1 22-22222 My First Book Yes
2 43-43234 My Favorite Book No
3 55-12345 My New Book Yes
Table: Bookstore
Amazon DynamoDB: Example
// Build a book object
Book book = new Book();
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);
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)
Run Business Logic
AWS Lambda
Send push notifications
Amazon SNS
Mobile Push
Your
Mobile
App
Stream real-time data
Collect real-time clickstream logs
and take actions quickly
Amazon
Kinesis
RedshiftS3Kinesis
enabled
Apps on
EC2
AWS
Mobile
SDK
For sophisticated
User Behavior
Real-time
Analysis
Integrated AWS Mobile SDK
Generic batching system that
handles intermittent network
connection and also optimize
battery utilization
Hardlight (ASEGANetworks Studio) –Amazon Kinesis
Hardlight (SEGA) is known for bringing SEGA’s
much loved blue mascot to the mobile domain. AWS Mobile SDK Amazon Kinesis
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)
Run Business Logic
AWS Lambda
Send push notifications
Amazon SNS
Mobile Push
Your
Mobile
App
Photo Sharing App Example Usecase: The Next Instagram
AWS RegionAUTHENTICATED(ASSUMEDROLE)
Photo Sharing
AWS MOBILE REFERENCE ARCHITECTURES
Download
Photos &
App Files
Session and Device Data, User Behavior
Social Content
(Tagging, Likes,
Comments, etc.)
Auto Export
Meta-data
Image Manipulation
Lambda
Function
Invoked
Multi-part Upload
User Login
Auth with Web Identity Token
User
Friends
AWS Mobile SDK
Session & Photo Metadata
RoleAssociated
WithIdentityPool
Amazon
Lambda
Amazon
CloudFront
Amazon
Mobile Analytics
Amazon
DynamoDB
Amazon
Cognito
Amazon
IAM Amazon
S3
Image editing
Amazon
SNS Mobile
Push
Amazon
Redshift
Targeted
• Common authentication mechanism across
all services
• Automatically handle intermittent network
connections
• Cross-platform Support: Android, iOS, Fire
OS
• Native SDKs optimized for Mobile OS, for
example, uses the local offline caching
architecture
• Reduced memory footprint; Pick and choose
the service jars you need
• Continuously updated with latest platform
enhancements
iOS Android JavaScript
Unity Xamarin
Download the latest
versions of the SDKs
SNSCognito
Cognito
Cognito
SNS
Lambda
Lambda Lambda
Lambda
Any
Analytics S3/Redshift
Kinesis
DynamoDB
Cognito KinesisLambdaS3
Flexible and Work
Better Together
Serverless and
Scales automatically
Fully Integrated and
easy to get started
Amazon
Cognito
Mobile
Analytics
SNS
Mobile Push
Free Tier:
1 Million push
messages every
month
Free Tier (for first 12
months):
1 Million
syncs/month + 10GB
of storage for
Amazon Cognito
Free Tier:
100 Million events
every month
http://aws.amazon.com/mobile
AWS
Lambda
Free Tier : 1M free
requests per month
400,000 GB-
seconds of compute
time per month
Jinesh Varia
@jinman
jvaria@amazon.com
Amazon Cognito Amazon Mobile
Analytics
Amazon SNS
Mobile Push
Free Tier:
1 Million push messages
every month
Thereafter:
$0.50 for Million
notifications delivered
$0.50 for Million requests
Free Tier (for first 12
months):
1 Million syncs/month +
10GB of storage for
Amazon Cognito
Thereafter:
$0.15 for 10K Syncs
$0.15 per GB for storage
Free Tier:
100 Million events every
month
Thereafter:
$1.00 per Million events

More Related Content

What's hot

Deep Dive on User Sign-up Sign-in with Amazon Cognito - AWS Online Tech Talks
Deep Dive on User Sign-up Sign-in with Amazon Cognito - AWS Online Tech TalksDeep Dive on User Sign-up Sign-in with Amazon Cognito - AWS Online Tech Talks
Deep Dive on User Sign-up Sign-in with Amazon Cognito - AWS Online Tech TalksAmazon Web Services
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API GatewayMark Bate
 
Introduction to AWS IAM
Introduction to AWS IAMIntroduction to AWS IAM
Introduction to AWS IAMKnoldus Inc.
 
Build your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS AmplifyBuild your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS AmplifyAmazon Web Services
 
Introduction to AWS Step Functions:
Introduction to AWS Step Functions: Introduction to AWS Step Functions:
Introduction to AWS Step Functions: Amazon Web Services
 
Azure API Management
Azure API ManagementAzure API Management
Azure API ManagementDaniel Toomey
 
Twilio Product Overview
Twilio Product OverviewTwilio Product Overview
Twilio Product OverviewTwilio Inc
 
Building Distributed Applications with AWS Step Functions
Building Distributed Applications with AWS Step FunctionsBuilding Distributed Applications with AWS Step Functions
Building Distributed Applications with AWS Step FunctionsAmazon Web Services
 
[NEW LAUNCH!] Introducti[NEW LAUNCH!] Introduction to event-driven architectu...
[NEW LAUNCH!] Introducti[NEW LAUNCH!] Introduction to event-driven architectu...[NEW LAUNCH!] Introducti[NEW LAUNCH!] Introduction to event-driven architectu...
[NEW LAUNCH!] Introducti[NEW LAUNCH!] Introduction to event-driven architectu...Amazon Web Services
 
Building Mobile Apps with AWS Amplify
Building Mobile Apps with AWS AmplifyBuilding Mobile Apps with AWS Amplify
Building Mobile Apps with AWS AmplifyAmazon Web Services
 
Accelerating App Development with AWS Amplify
Accelerating App Development with AWS AmplifyAccelerating App Development with AWS Amplify
Accelerating App Development with AWS AmplifyAmazon Web Services
 
AWS Security Best Practices and Design Patterns
AWS Security Best Practices and Design PatternsAWS Security Best Practices and Design Patterns
AWS Security Best Practices and Design PatternsAmazon Web Services
 
Protecting Your Data With AWS KMS and AWS CloudHSM
Protecting Your Data With AWS KMS and AWS CloudHSM Protecting Your Data With AWS KMS and AWS CloudHSM
Protecting Your Data With AWS KMS and AWS CloudHSM Amazon Web Services
 
Building a well-engaged and secure AWS account access management - FND207-R ...
 Building a well-engaged and secure AWS account access management - FND207-R ... Building a well-engaged and secure AWS account access management - FND207-R ...
Building a well-engaged and secure AWS account access management - FND207-R ...Amazon Web Services
 
AWS re:Invent 2016: Add User Sign-In, User Management, and Security to your M...
AWS re:Invent 2016: Add User Sign-In, User Management, and Security to your M...AWS re:Invent 2016: Add User Sign-In, User Management, and Security to your M...
AWS re:Invent 2016: Add User Sign-In, User Management, and Security to your M...Amazon Web Services
 
Building APIs with Amazon API Gateway
Building APIs with Amazon API GatewayBuilding APIs with Amazon API Gateway
Building APIs with Amazon API GatewayAmazon Web Services
 
Building secure applications with keycloak
Building secure applications with keycloak Building secure applications with keycloak
Building secure applications with keycloak Abhishek Koserwal
 

What's hot (20)

Deep Dive on User Sign-up Sign-in with Amazon Cognito - AWS Online Tech Talks
Deep Dive on User Sign-up Sign-in with Amazon Cognito - AWS Online Tech TalksDeep Dive on User Sign-up Sign-in with Amazon Cognito - AWS Online Tech Talks
Deep Dive on User Sign-up Sign-in with Amazon Cognito - AWS Online Tech Talks
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
 
Introduction to AWS IAM
Introduction to AWS IAMIntroduction to AWS IAM
Introduction to AWS IAM
 
Build your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS AmplifyBuild your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS Amplify
 
Introduction to AWS Step Functions:
Introduction to AWS Step Functions: Introduction to AWS Step Functions:
Introduction to AWS Step Functions:
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
Twilio Product Overview
Twilio Product OverviewTwilio Product Overview
Twilio Product Overview
 
Building Distributed Applications with AWS Step Functions
Building Distributed Applications with AWS Step FunctionsBuilding Distributed Applications with AWS Step Functions
Building Distributed Applications with AWS Step Functions
 
API strategy with IBM API connect
API strategy with IBM API connectAPI strategy with IBM API connect
API strategy with IBM API connect
 
How Secure Are Your APIs?
How Secure Are Your APIs?How Secure Are Your APIs?
How Secure Are Your APIs?
 
[NEW LAUNCH!] Introducti[NEW LAUNCH!] Introduction to event-driven architectu...
[NEW LAUNCH!] Introducti[NEW LAUNCH!] Introduction to event-driven architectu...[NEW LAUNCH!] Introducti[NEW LAUNCH!] Introduction to event-driven architectu...
[NEW LAUNCH!] Introducti[NEW LAUNCH!] Introduction to event-driven architectu...
 
Building Mobile Apps with AWS Amplify
Building Mobile Apps with AWS AmplifyBuilding Mobile Apps with AWS Amplify
Building Mobile Apps with AWS Amplify
 
Accelerating App Development with AWS Amplify
Accelerating App Development with AWS AmplifyAccelerating App Development with AWS Amplify
Accelerating App Development with AWS Amplify
 
AWS Security Best Practices and Design Patterns
AWS Security Best Practices and Design PatternsAWS Security Best Practices and Design Patterns
AWS Security Best Practices and Design Patterns
 
Protecting Your Data With AWS KMS and AWS CloudHSM
Protecting Your Data With AWS KMS and AWS CloudHSM Protecting Your Data With AWS KMS and AWS CloudHSM
Protecting Your Data With AWS KMS and AWS CloudHSM
 
Building a well-engaged and secure AWS account access management - FND207-R ...
 Building a well-engaged and secure AWS account access management - FND207-R ... Building a well-engaged and secure AWS account access management - FND207-R ...
Building a well-engaged and secure AWS account access management - FND207-R ...
 
AWS re:Invent 2016: Add User Sign-In, User Management, and Security to your M...
AWS re:Invent 2016: Add User Sign-In, User Management, and Security to your M...AWS re:Invent 2016: Add User Sign-In, User Management, and Security to your M...
AWS re:Invent 2016: Add User Sign-In, User Management, and Security to your M...
 
Building APIs with Amazon API Gateway
Building APIs with Amazon API GatewayBuilding APIs with Amazon API Gateway
Building APIs with Amazon API Gateway
 
Introduction to AWS Amplify CLI
Introduction to AWS Amplify CLIIntroduction to AWS Amplify CLI
Introduction to AWS Amplify CLI
 
Building secure applications with keycloak
Building secure applications with keycloak Building secure applications with keycloak
Building secure applications with keycloak
 

Similar to Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia

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
 
Building Cloud-Powered Mobile Apps
Building Cloud-Powered Mobile AppsBuilding Cloud-Powered Mobile Apps
Building Cloud-Powered Mobile AppsDanilo Poccia
 
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...Amazon Web Services
 
Build Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesBuild Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesAmazon Web Services
 
AWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
AWS Cloud Kata 2014 | Jakarta - 2-2 MobileAWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
AWS Cloud Kata 2014 | Jakarta - 2-2 MobileAmazon Web Services
 
Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsDanilo Poccia
 
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
 
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
 
Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsDanilo Poccia
 
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
 
Journey Through the Cloud - Social & Mobile Apps
Journey Through the Cloud - Social & Mobile Apps Journey Through the Cloud - Social & Mobile Apps
Journey Through the Cloud - Social & Mobile Apps Amazon Web Services
 
AWS 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
 
(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
 
02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_short02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_shortCodemotion
 
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
 
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
 

Similar to Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia (20)

AWS Mobile Services & SDK Introduction & Demo
AWS Mobile Services & SDK Introduction & DemoAWS Mobile Services & SDK Introduction & Demo
AWS Mobile Services & SDK Introduction & Demo
 
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
 
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...
(MBL311) Workshop: Build an Android App Using AWS Mobile Services | AWS re:In...
 
Build Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesBuild Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile Services
 
AWS 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
 
Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile Apps
 
Building Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit DiublinBuilding Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit Diublin
 
Journey Through the Cloud - Mobile & Social Apps
Journey Through the Cloud - Mobile & Social AppsJourney Through the Cloud - Mobile & Social Apps
Journey Through the Cloud - Mobile & Social Apps
 
Building 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
 
Building mobile apps on AWS
Building mobile apps on AWSBuilding mobile apps on AWS
Building mobile apps on 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
 
Journey Through the Cloud - Social & Mobile Apps
Journey Through the Cloud - Social & Mobile Apps Journey Through the Cloud - Social & Mobile Apps
Journey Through the Cloud - Social & Mobile Apps
 
AWS 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...
 
(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 2014
 
02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_short02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_short
 
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 AWS
 
Mobile on AWS
Mobile on AWSMobile on AWS
Mobile 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
 

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

PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
Intellectual property rightsand its types.pptx
Intellectual property rightsand its types.pptxIntellectual property rightsand its types.pptx
Intellectual property rightsand its types.pptxBipin Adhikari
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleanscorenetworkseo
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 

Recently uploaded (20)

PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
Intellectual property rightsand its types.pptx
Intellectual property rightsand its types.pptxIntellectual property rightsand its types.pptx
Intellectual property rightsand its types.pptx
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleans
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 

Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia

  • 1. Technology Evangelist, AWS Mobile and IoT Updated: April 12, 2015 Build Your Mobile App Faster with AWS Mobile Services Jinesh Varia, @jinman
  • 2.
  • 3. What makes your mobile apps unique? Where are you spending most of your time?
  • 4. What makes your mobile apps unique? Where are you spending most of your time?
  • 5. Problems developers face today Fragmentation across platforms Sync scalability is extremely hard Expensive to manage and operate Distracts them from building core UX Managing unique user identities is difficult “Table stakes” for every app Undifferentiated Heavy Lifting Developer’s Mobile App Code User Identity Mgmt. and Auth User Data Synchronization Asynchronous Communication Active Devices Analytics User Behavior Analytics Engagement Analytics Push Notifications Event Triggers Platform agnostic Mobile Backend Data Validation and Transformation File and Media Storage Shared Database Storage Data Collection And More…. AWS Cloud Infrastructure
  • 6. Developer’s Mobile App Code User Identity Mgmt. and Auth User Data Synchronization Asynchronous Communication Active Devices Analytics User Behavior Analytics Engagement Analytics Push Notifications Event Triggers Platform agnostic Mobile Backend Data Validation and Transformation File and Media Storage Shared Database Storage Data Collection And More…. AWS Cloud Infrastructure Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push Amazon Lambda New! Mobile-optimized Connectors (Kinesis, S3, DynamoDB, SQS)
  • 7. Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push Kinesis Recorder DynamoDB Mapper S3 Transfer Mgr SQS Client SES Client AWS Global Infrastructure (Regions, Availability Zones, Edge Locations) Core Building Block Services Mobile Optimized Connectors Mobile Optimized Services Your Mobile App, Game or Device App AWS Mobile SDK, API Endpoints, Management Console Compute Storage Networking Analytics Databases Integrated SDK AWS Mobile Services AWS Lambda Lambda Functions λ λ λ λ
  • 8. User identity & data synchronization service Store any NoSQL data and also map mobile OS specific objects to DynamoDB tables Fast cross-platform Analytics & reporting Service Powerful Cross-platform Push notification service Recorder that can handle intermittent network connection Easily upload, download to S3 and also pause, resume, and cancel these operations Send email reliably from device Access distributed buffering and queuing service Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push Kinesis Recorder DynamoDB Mapper S3 Transfer Mgr SQS Client SES ClientAWS Lambda Lambda Functions λ λ λ λ Not limited to Mobile. Run stateless cloud Functions without any Backend servers to Manage or scale
  • 9.
  • 10. Authenticate users Authorize access Analyze User Behavior Store and share media Synchronize data Deliver media Store shared data Stream real-time dataRun Business Logic Send push notifications Manage users and identity providers Securely access cloud resources Sync user prefs across devices Track active users, Engagement, retention Run stateless custom Code without managing servers Store user-generated photos Media and share them Automatically detect mobile devices Deliver content quickly globally Bring users back to your app by sending messages reliably Store and query fast NoSQL data across users and devices Collect real-time clickstream logs and take actions quickly Your Mobile App
  • 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 Broker) Amazon S3 Transfer Manager Amazon CloudFront (Device Detection) Store shared data Amazon DynamoDB (Object Mapper) Stream real-time data Amazon Kinesis (Recorder) Run Business Logic AWS Lambda Send push notifications Amazon SNS Mobile Push Your Mobile App
  • 12. 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) Send push notifications Amazon SNS Mobile Push Your Mobile App Run Business Logic AWS Lambda
  • 13.
  • 14. 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 Your own Auth
  • 15. Identity Providers Unique IdentitiesJoe Anna Bob 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
  • 16. 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
  • 17. Sign up for AWS Account and login to AWS Management Console Download and integrate the Mobile SDK and store and sync user data in a dataset Create identitypool for authenticated and unauthenticated users in the AWS Console
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. 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
  • 25. 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
  • 26. 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.
  • 27. Cognito ID (Temp Credentials) DynamoDB End Users Developer App with AWS Mobile SDK Access to AWS Services Cognito Identity Broker Get OpenID Token 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
  • 28.
  • 29. 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
  • 30. 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
  • 31. s3:PutObject s3:GetObject s3:DeleteObject s3:ListMultipartUploadParts s3:AbortMultipartUpload arn:aws:s3:::BUCKET_NAME/* s3:ListBucket s3:ListBucketMultipartUploads arn:aws:s3:::BUCKET_NAME dynamodb:GetItem dynamodb:Query dynamodb:PutItem arn:aws:dynamodb:REGION:123456789:table/TABLE_NAME", "arn:aws:dynamodb:REGION:123456789:table/TABLE_NAME/ index/INDEX_NAME Allow Actions: Certain operations Resource: One bucket, table ..
  • 33. 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
  • 34.
  • 35. 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 k/v data Identity pool No Backend Simple client SDK eliminates need for server side code
  • 36. Sync Game States Across OS/devices State Transition (link multiple accounts) Sync User Profiles across OS/devices/web
  • 37. Concrete Software builds cross platform mobile games Concrete Software has been making hit mobile games like Jellyflop and PBA Bowling Challenge since 2003. With Amazon Cognito, We can build games much faster and provide great user experience to our customers. Keith A. Pichelman CEO, Concrete Software ” “ • Provide a seamless user experience across devices and platforms to our users. • Store save games in the cloud and synchronize them across all of a user’s devices without creating or hosting a backend. The Challenge The solution • Amazon Cognito helps us securely access our AWS resources. • Cognito Sync gives us flexibility to save data in the cloud, and cache it on a user’s devices, without managing any backend infrastructure.
  • 38. Offline Fast Intelligent Sync Flexible Conflict resolution Local SQLite Cache
  • 39. • Identity Pool: Pool of app users. Can be shared across apps. • Identity: An individual user. Consistent across identity providers. Can be a guest user. • Dataset: Per user grouping of data. The most granular level of sync. Up to 1MB. • Record: Key/Value pair. AWS Account Dataset Identity Identity Identity Dataset Dataset Identity Pool 1:60 1:n 1:20 Dataset Dataset Record 1:1024 You Your App Your App Users User Data Container User Data
  • 40. 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 DatasetDataset Key/Value 1:n
  • 41. Initialize the CredentialsProvider and CognitoClient Call synchronize on the dataset Create or open Dataset and Add Key Values provider = new CognitoCachingCredentialsProvider (context, AWS_ACCOUNT_ID, COGNITO_POOL_ID, COGNITO_ROLE_UNAUTH, COGNITO_ROLE_AUTH, Regions.US_EAST_1); cognito = new CognitoSyncManager (context, Regions.US_EAST_1, provider); dataset.synchronize(new SyncCallback(){..}); cognito.openOrCreateDataset(datasetName); dataset.put(key, value);
  • 42. Initialize the AWSCognitoSyncClient Call synchronize on the dataset Create or open Dataset and Add Key Values DataSet *dataset = [syncClient openOrCreateDataSet:@"myDataSet"]; NSString *value = [dataset readStringForKey:@"myKey"]; [dataset putString:@"my value" forKey:@"myKey"]; AWSCognitoSyncClient *syncClient = [[AWSCognitoSyncClient alloc] initWithConfiguration: configuration]; [dataset synchronize]; iOS
  • 43.
  • 44. Store and share media Deliver media Store shared data Stream real-time data Send push notifications Store user-generated photos Media and share them Automatically detect mobile devices Deliver content quickly globally Bring users back to your app by sending messages reliably Store and query fast NoSQL data across users and devices Collect real-time clickstream logs and take actions quickly Your Mobile App Authenticate users Authorize access Synchronize data Amazon Cognito (Sync) AWS Identity and Access Management Amazon Cognito (Identity Broker) Analyze User Behavior Run Business Logic Track active users, Engagement, retention Run stateless custom Code without managing servers
  • 45.
  • 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.
  • 49. 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
  • 50. 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
  • 51. 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
  • 52. Initialize the MobileAnalyticsManager. That’s it! Get Session Activity in the AWS Management Console. For Custom Events activity reports, add events. Add OnResume() and OnPause() private static MobileAnalyticsManager analytics; analytics = MobileAnalyticsManager.getOrCreateInstance( this.getApplicationContext(),"yourCompany.yourAppId", Regions.YOUR_REGION, config, cognitoProvider ); EventClient eventClient = analytics.getEventClient(); MobileAnalyticsEvent visitEvent = eventClient.createEvent("speedSet"); eventClient.recordEvent(visitEvent); analytics.getSessionClient().resumeSession(); analytics.getSessionClient().pauseSession(); Analytics.getEventClient().submitEvents();
  • 53. Initialize the AWSMobileAnalytics object. That’s it! Get Session Activity in the AWS Management Console. Submit the event. If we don't call submitEvents, events will automatically be submitted at periodic intervals. Create add Custom Events [eventClient submitEvents]; id<AWSMobileAnalyticsEventClient> eventClient = analytics.eventClient; id<AWSMobileAnalyticsEvent> level1Event = [eventClient createEventWithEventType:@"level1Complete"]; AWSMobileAnalytics* analytics = [AWSMobileAnalytics defaultAWSMobileAnalyticsWithIdentifier:@"someuniqueid"]; iOS
  • 54.
  • 55.
  • 57.
  • 60.
  • 61. event_timestamp arrival_timestamp event_type app_id app_title cognito_id client_id platform platform_version locale app_package_name app_version_name device model device make monetization_amount monetization_item a_level a_promo_code m_score m_quantity
  • 63.
  • 64. GROWTH PER COUNTRY 68 THE WORLD CUP IS THE MOST INTERESTING FOR THE AMERICANS
  • 68. Store and share media Deliver media Store shared data Stream real-time data Send push notifications Store user-generated photos Media and share them Automatically detect mobile devices Deliver content quickly globally Bring users back to your app by sending messages reliably Store and query fast NoSQL data across users and devices Collect real-time clickstream logs and take actions quickly Your Mobile App Authenticate users Authorize access Analyze User Behavior Synchronize data Amazon Mobile Analytics Amazon Cognito (Sync) AWS Identity and Access Management Amazon Cognito (Identity Broker) Run Business Logic Run stateless custom Code without managing servers
  • 69.
  • 70. Auto Scaling (Never under or over provision) Focus on business logic, not infrastructure. Upload your code; AWS Lambda handles everything else Zero Administration Lambda scales the infrastructure as needed to match the event rate and pay as you go Bring Your Own Code “Run your code in the cloud in response to events and scale without any servers to manage” Starting with JavaScript but later any language, Create threads and processes, run batch scripts or other executables,
  • 71. How can you put AWS Lambda to work? Stream processing Data triggersBack-end service Mobile/IoT Indexing & synchronization
  • 72. CommandPost is CMP.LY’s patented Monitoring, Measurement & Insights (MMI) tool for managed social communications. Increase the amount of data processed while reducing(!) the resources (instances) required to do it
  • 73. Respond to events in real-time Map local functions to lambda functions from within the SDK Target, Filter, and Route Amazon SNS Notifications Apply Custom Logic to User Preferences and Game State Java Support (Coming soon), CloudTrail integration, Enhanced metrics and logging via CloudWatch S3 event notification s DynamoDB Streams Kinesis events Cognito events SNS events Custom events AWS Lambda Now Ready for Production at Scale
  • 74. Amazon Cognito Sync Dataset Amazon DynamoDB Table Map local functions to invoke Lambda Functions synchronously Maintain Intelligence in the cloud and not the device Chain multiple Functions or call them in Parallel  SNS Push notification Personalize your notification for every user
  • 75. Initialize the LambdaFactory and define the Interface for the functions Call synchronize on the dataset Create/Upload the Lambda Function to the AWS Management Console lambda = new LambdaInvokerFactory(context, Regions.US_WEST_2, provider); //interface @LambdaFunction(functionName="cloudFunction”) String localFunction(String nameInfo); lambda.localFunction(“Hello From “); // this will output “Hello From Lambda” exports.handler = function(event, context) { context.done(null, event + 'Lambda'); // SUCCESS with message };
  • 76.
  • 77. Authenticate users Authorize access Analyze User Behavior Synchronize data AWS Mobile SDK Amazon Mobile Analytics Amazon Cognito (Sync) AWS Identity and Access Management Amazon Cognito (Identity Broker) Run Business Logic AWS Lambda Your Mobile App Store and share media Deliver media Store shared data Stream real-time data Send push notifications Store user-generated photos Media and share them Automatically detect mobile devices Deliver content quickly globally Bring users back to your app by sending messages reliably Store and query fast NoSQL data across users and devices Collect real-time clickstream logs and take actions quickly
  • 78.
  • 79. Kinesis AWS Mobile SDK S3 Integrated AWS Mobile SDK Optimized for native OS Multipart upload media Fault tolerant download Automatic retries Pause, resume, cancel functions Generic batching system handles intermittent network connection Optimize battery utilization DynamoDB
  • 80.
  • 81. 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
  • 82. Outplay Entertainment –Amazon S3 Connector viaAWS Mobile SDK Outplay Entertainment is mobile-focused game developer on a mission to deliver fun, free and innovative games for smartphones, tablets, and social networks. With Amazon S3 connector, we can improve the users experience by dynamically downloading game assets in the background. No long up-front delays for our users. Douglas Hare CEO, Outplay Entertainment ” “ • Improved User Experience. Using the Mobile SDK, they can download the game assets in background while the user starts playing the game. No limits on downloading extra assets. • Dynamic updates. They can update the assets dynamically and avoid AppStore release cycles. • Unquestioned Scalability. Different assets for multiple screen densities go up to 170 MB+. By storing this data on S3 and directly downloading to the mobile device, they can scale seamlessly. • Excellent Performance. Highest resolution devices end up downloading about 90MB of extra content.
  • 83. TransferManager transferManager = new TransferManager(credentialProvider); Upload upload = transferManager.upload(BUCKET_NAME, fileName, file); Download download = transferManager.download(BUCKET_NAME, mKey, file); try { PersistableDownload persistableDownload = download.pause(); //do something if we didn’t abort } catch(PauseException e) { //do something if we aborted } download = transferManager.resumeDownload(persistableDownload);
  • 84. self.transferManager = [S3TransferManager new]; self.transferManager.s3 = s3client; [self.transferManager uploadFile:fileName bucket:bucketName key:objectName]; [self.transferManager downloadFile:fileName bucket:bucketName key:objectName]; [self.transferManager pauseAllTransfers]; [self.transferManager resumeAllTransfers]; [self.transferManager cancelAllTransfers];
  • 85.
  • 86. 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) Run Business Logic AWS Lambda Your Mobile App Store shared data Stream real-time data Send push notifications Bring users back to your app by sending messages reliably Store and query fast NoSQL data across users and devices Collect real-time clickstream logs and take actions quickly
  • 87.
  • 88.
  • 90. Amazon SNS Cross-platform Mobile Push Internet Apple APNS Google GCM Amazon ADM Windows WNS and MPNS Baidu CP With Amazon SNS, developers can send push notifications on multiple platforms and reach mobile users around the world New features: Delivery Metrics via CloudWatch Trigger Lambda Functions from SNS notifications Android Phones and Tablets Apple iPhones and iPads Kindle Fire Devices Android Phones and Tablets in China iOS Windows Desktop and Windows Phone Devices
  • 91. Mobile push lets our users live life together in the moment, even when they are miles apart. Founded in San Francisco in 2010 Social networking and messaging designed for close friends and family Two apps, Three platforms, 20 languages 5M+ DAU worldwide creating billions of monthly impressions
  • 92. 35 AWS EC2 m3.xlarge instances Home-rolled code based on Tornado 6 Load Balancers Constantly trying to scale out, both at process level and server level Fighting to maximize throughput at packets per second level Never certain how many pushes we were sending or dropping
  • 94. Zero to 500m+ daily push notifications almost overnight Highest available reliability and speed Easy migration $1 per million mobile push deliveries 10m 170m 500m Day 1 Day 2 Day 3 Path Daily SNS Mobile Push Deliveries (millions) …Rising
  • 95. Fast reliable notification for every Email received is powered by SNS Customers love high scale and Reliability of SNS High-profile Startups trust SNS for their high-profile launches Secret.ly Advanced targeted notifications bring players back into the game Mature games increase retention using SNS Launched its Android App with SNS, no provisioning required Jetpack Joyride Fruit ninja
  • 96. 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) Run Business Logic AWS Lambda Send push notifications Amazon SNS Mobile Push Your Mobile App Store shared data Stream real-time data Store and query fast NoSQL data across users and devices Collect real-time clickstream logs and take actions quickly
  • 97.
  • 98. 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
  • 99. HitPoint Studios UsesAWS to GrowAudience and Cut Costs by 45% HitPoint is an independent casual online game developer with games on Facebook and mobile. HitPoint Studios uses AWS to grow our player base and cut hosting costs. We are also building our new mobile gaming platform on its infrastructure. • Reduced hosting and content delivery costs by over 45% • Delivers new game content weekly to 250,000+ MAU • Reduced server deployment, maintenance, and monitoring time to a single engineer • Allows us to do large marketing spends for UA without concern for server load from new users • Provides us with the infrastructure needed to build our new game platform with a small, focused team Chris Vigorito Technical Director, HitPoint Inc. ” “
  • 101. Amazon DynamoDB: Example @DynamoDBTable(tableName = "Bookstore") public static class Book { private int id; private String isbn, title; private Boolean hardCover; @DynamoDBHashKey(attributeName = "id") public int getId() { return id; } public void setId(int id) { this.id = id; } @DynamoDBAttribute(attributeName="isbn") public String getIsbn() { return isbn; } ... } Id isbn Title hardCover 1 22-22222 My First Book Yes 2 43-43234 My Favorite Book No 3 55-12345 My New Book Yes Table: Bookstore
  • 102. Amazon DynamoDB: Example // Build a book object Book book = new Book(); 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);
  • 103. 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) Run Business Logic AWS Lambda Send push notifications Amazon SNS Mobile Push Your Mobile App Stream real-time data Collect real-time clickstream logs and take actions quickly
  • 104.
  • 105. Amazon Kinesis RedshiftS3Kinesis enabled Apps on EC2 AWS Mobile SDK For sophisticated User Behavior Real-time Analysis Integrated AWS Mobile SDK Generic batching system that handles intermittent network connection and also optimize battery utilization
  • 106. Hardlight (ASEGANetworks Studio) –Amazon Kinesis Hardlight (SEGA) is known for bringing SEGA’s much loved blue mascot to the mobile domain. AWS Mobile SDK Amazon Kinesis
  • 107. 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) Run Business Logic AWS Lambda Send push notifications Amazon SNS Mobile Push Your Mobile App
  • 108.
  • 109. Photo Sharing App Example Usecase: The Next Instagram
  • 110. AWS RegionAUTHENTICATED(ASSUMEDROLE) Photo Sharing AWS MOBILE REFERENCE ARCHITECTURES Download Photos & App Files Session and Device Data, User Behavior Social Content (Tagging, Likes, Comments, etc.) Auto Export Meta-data Image Manipulation Lambda Function Invoked Multi-part Upload User Login Auth with Web Identity Token User Friends AWS Mobile SDK Session & Photo Metadata RoleAssociated WithIdentityPool Amazon Lambda Amazon CloudFront Amazon Mobile Analytics Amazon DynamoDB Amazon Cognito Amazon IAM Amazon S3 Image editing Amazon SNS Mobile Push Amazon Redshift Targeted
  • 111.
  • 112. • Common authentication mechanism across all services • Automatically handle intermittent network connections • Cross-platform Support: Android, iOS, Fire OS • Native SDKs optimized for Mobile OS, for example, uses the local offline caching architecture • Reduced memory footprint; Pick and choose the service jars you need • Continuously updated with latest platform enhancements iOS Android JavaScript Unity Xamarin Download the latest versions of the SDKs
  • 114. Flexible and Work Better Together Serverless and Scales automatically Fully Integrated and easy to get started
  • 115. Amazon Cognito Mobile Analytics SNS Mobile Push Free Tier: 1 Million push messages every month Free Tier (for first 12 months): 1 Million syncs/month + 10GB of storage for Amazon Cognito Free Tier: 100 Million events every month http://aws.amazon.com/mobile AWS Lambda Free Tier : 1M free requests per month 400,000 GB- seconds of compute time per month
  • 117.
  • 118. Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push Free Tier: 1 Million push messages every month Thereafter: $0.50 for Million notifications delivered $0.50 for Million requests Free Tier (for first 12 months): 1 Million syncs/month + 10GB of storage for Amazon Cognito Thereafter: $0.15 for 10K Syncs $0.15 per GB for storage Free Tier: 100 Million events every month Thereafter: $1.00 per Million events

Editor's Notes

  1. Do you want me to present with you?
  2. Mobile is changing our world.  Developers, more than ever, rely on the cloud to build more exciting and engaging applications on a massive scale an increasingly global audience.
  3. What makes your applications unique Where you are spending most of your time Our goal
  4. Our goal “Secret Sauce” Great Playability Great User Experience Social Integration Viral Tricks Content Art and Graphics
  5. Most of this is just undifferenciated heavylifting. For example, Synchronizing data across multiple devices is table stakes but actually extremely hard to implement, they have to have right architecture, that scales to millions of users, security and most important complex conflict resolution techniques to get it right.
  6. Most of this is just undifferenciated heavylifting. For example, Synchronizing data across multiple devices is table stakes but actually extremely hard to implement, they have to have right architecture, that scales to millions of users, security and most important complex conflict resolution techniques to get it right.
  7. Such services are fully integrated with the rest of AWS offering, are optimized for mobile use cases, are accessible via a single Mobile SDK and share the same scalable, on-demand, global infrastructure of all our other AWS services.
  8. Amazon Cognito is a simple user identity and data synchronization service that helps you securely manage and synchronize app data for your users across their mobile devices. AWS Identity and Access Management (IAM) enables you to securely control access to AWS services and resources for your users. Amazon Mobile Analytics is a service that lets you easily collect, visualize, and understand app usage data at scale. Amazon S3 as you know is cloud storage for the Internet. We make it easy for you to access S3 from your mobile app using a S3 Transfer Manager DynamoDB is a fast, fully managed NoSQL database as a service that makes it simple and cost-effective to store and retrieve any amount of data, and serve any level of request traffic. The Amazon DynamoDB Object Mapper simplifies access to DynamoDB by enabling you to map your client-side classes to Amazon DynamoDB tables without having to write the code to transform objects into tables and vice versa. Amazon Kinesis is a fully managed service for real-time processing of streaming data at massive scale. The Kinesis Recorder batches requests to handle intermittent network connection and enable you to record events even when the device is offline. All this is bundled in the AWS Mobile SDK. The AWS Mobile SDK helps you build high quality mobile apps quickly and easily. It provides access to services specifically designed for building mobile apps, mobile-optimized connectors to popular AWS data streaming, storage and database services, and access to a full array of other AWS services.
  9. The moment you have more than one device, the cloud becomes the logical place to do work and store stuff.  AWS provides a great platform for mobile developers regardless of where the device comes from, what operating system it runs, and what a developer wants to do with it. 
  10. To give you a context, lets take an Example, Table stakes of any app Authenticate Users: Lets start from the users of your app. The most important aspect for you when building a mobile app is to deliver an engaging experience. For that you would want to know who the user is. In most cases you would use third party identity providers like Amazon, Facebook or Google. However, often a login screen proves to be a point of friction, so you would want users to be able to skip any authentication and directly interact with the app. But at the same time when users do decide to login, they expect their preferences, settings, progress to carry over. Synchronize Data: Users expect their preferences or profiles to be saved from one session to the next. E.g if you have a game, they expect to resume the game where they last left off. To make matters more complicated, your app or game may be available across platforms – iOS, Android, FireOS. If that is the case, users would expect their data, preferences, profile etc. to be automatically synced and available across devices and platforms. E.g with Amazon Instant Video, users can pause a video they are watching on their Kindle Fire and resume on iPad Store and share assets and media: Appstores generally have a limit on the size of the app that can be downloaded over WAN. You would want to store the app’s assets in a cloud storage so you can reduce the size of the app. In additional may want to store your users data like pictures and video in the cloud. Store shared data: Often you would want to store app data e.g settings in form of key-value pairs in NoSQL database and query it for fast access. Push Notifications: Coming back to user engagement, push notifications are a great way to engage your users. You can leverage Push Notifications to remind users of a special ongoing promotion, breaking news, or an update to your app. It’s a great way to bring the users back to your app. Analyze App Usage & Track Retention: Once you deploy your app, you would want track how your app is performing. You would want to track the usage of your app and also how well you are able to track retention. Some of the common things that you would want to track are active users, session duration, Revenue related metrics like revenue per daily active users, etc. Analytics User Behavior: You would also want to track user behavior or how users interact with your app. Do they follow the UX flow that you would expect, where would they drop off in your app etc. Stream data in real-time: You would want to collect large amount of custom metrics from your app for off-line analysis like click-stream logs. Authorized Access: Most importantly you want to provide secure and authorized access to cloud services. Now lets see how AWS can help you in each of these areas
  11. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  12. Lets understand this in the context of a mobile game app
  13. Amazon Cognito is a simple user identity and data synchronization service that makes it easy to securely manage your users data across their mobile devices. You can create unique identities for your users with information from a number of public login providers You can save application data locally on the device and then securely sync and save this data to the cloud so your application can work online and offline. You can save any kind of data in Key/Value pairs such as application preferences or game state in the AWS Cloud without having to write any backend code or manage any infrastructure. This means you can focus on creating great experiences instead of having to worry about building and managing a backend solution to handle identity, network state, storage, and sync.
  14. One of the key benefits of Amazon Cognito is its Identity broker component. It creates a unique identifer and matches it when user’s login with any of the login providers. Developers have the flexibility to choose any login provider, in v1, we support G+, Amazon and Facebook and you can easily integrate using the SDK. We focus on users and not login providers and manage the user preferences for that users.   Implementing AWS security best practices for accessing cloud resources with Amazon Cognito is easy. Amazon Cognito gives each app a set of temporary, limited privilege AWS credentials for each app user to access all AWS services.
  15. We have seen that 90% users simply consumers of data and only 10% are actually content creators. Unauthenticated guest users are users just like logged in users. We should focus more on them, build services for them, and treat them like users, not second class citizens. Amazon Cognito simplifies the way your application can access AWS resources in a secure manner, following AWS security best practices, even when your application users are not authenticated.  Amazon Cognito creates a random, unique identifier for each unauthenticated guest so you can start saving application data for those users and also leverage the temporary, limited privilege credentials Amazon Cognito provides to access other AWS resources, such as Amazon S3 and Amazon DynamoDB. When your users decide to authenticate using one of the supported public login providers, Amazon Cognito ensures the data you saved against the unauthenticated profile is now associated with the new authenticated profile removing the complexity of managing user conversion. By registering an unauthenticated user   or by sending a login provider token to Amazon Cognito, your application receives a set of temporary, limited privilege credentials from Amazon Cognito to access your AWS resources. Amazon Cognito takes care of all the steps necessary to create a unique identifier for your app’s users and retrieve the AWS credentials. Incorporating AWS security best practices now takes just a few lines of code.
  16. And Lets first touch on the security aspect. We have seen a lot of developers tend to embed their AWS credentials in their app. These credentials are compromised if the app is decompiled. Amazon Cognito, eliminates the need to embed you AWS credentials in the app. Your mobile app authenticates with the identity provider (IdP) using the provider’s SDK. Once the end user is authenticated with the identity provider, the OAuth or OpenID Connect token returned from the identity provider is passed by your app to Amazon Cognito, which returns a new Cognito ID for the user and a set of temporary, limited-privilege AWS credentials. Amazon Cognito supports the creation and token vending process for unauthenticated users as well as authenticated users. Amazon Cognito creates a random, unique identifier for each unauthenticated user. You can use the unique identifier generated for your app users in your Identity and Access Management policies. For example you can create a policy for an S3 bucket that only allows a particular user access to their own folder thus setting granular access permissions on AWS resources.
  17. Architecturally, Amazon Cognito has two parts: Cognito identity Broker and Cognito Sync Store. Users first login with login provider of their choice and App with SDK does the rest. In the past, to access cloud services, developers embed aws credentials which is access key id and secret key within the application, this is highly unsecure because it is easy to unip the apk file and get access to keys. Now we make it extremely secure by not only create temprory creds that are valid only for one hour but also limiting the access to other data. The users only have access to store and sync in their own dataset. Once you get the temp cred, you can access other AWS services like S3 to store video, for example, DynamoDB to store shared data like leaderboards, kinesis to store streaming data logs and so on.
  18. Our policy allows access to all
  19. We can restrict to the bucket for S3
  20. We can add a restriction by username/id but our policy is for everyone who assumes the role
  21. We can add a restriction by username/id but our policy is for everyone who assumes the role
  22. As we all know the number of devices per user is going down any time soon. Customers have told us users with multiple devices want to be able to transition between devices seamlessly. They want a roaming synchronized app profile so they can pick up their tablet and continue playing a game at the same level they achieved on their phone. Turns out sync at scale is an hard problem to solve. Additionally, they want to be able to access their profile even when their device is offline. To date, developers wanting to implement roaming profile functionality in their apps have had to roll their own solution or use a system tied only to a particular login provider. This either requires the developer to do more work or to limit their cross platform story.
  23. With Amazon Cognito developers can synchronize application data across an end user’s devices with a single line of code. With Amazon Cognito, developers can securely store application data, such as preferences and game state in the AWS cloud. With synchronized application data, developers can give your users a consistent, unified experience on their app across all of their mobile devices. Developers can use Amazon Cognito directly from their mobile app without building or maintaining any backend infrastructure. Amazon Cognito handles secure application data storage and sync, enabling them to focus on their application experiences, instead of the heavy lifting of creating and managing a user application data sync solution. It manages the complexity of conflict resolution and intermittent network connectivity by managing offline cache ensuring your application can always deliver a great user experience. Each data set in the Amazon Cognito sync store can be synchronized on all devices associated with an identity simply by calling the synchronize () method.
  24. STORY BACKGROUND [Include more details about the customer and the challenge. Example below.] Vodafone operates a live, interactive mobile television service, known as Mobile TV, through the Cricket Live Australia application Traffic for the applications peak during the four-month period when the international cricket season is at its height in Australia. During the 2011/2012 cricket season, 700,000 consumers downloaded the Cricket Live Australia application Vodafone needed to be able to meet customer demand, but didn’t want to invest in additional resources that would be underutilized cricket’s off-season. SOLUTION AND BENEFITS [Include more details about the solution, AWS benefits, and the AWS product list. Example below.] By using AWS, Vodafone is able to provide its streaming mobile service to any mobile device on any network cost-effectively Able to provide up to 10,000 simultaneous live streams compared to 3,000 before AWS Streaming service would have cost millions without the AWS Cloud Able to expand mobile streaming to additional networks and customers Using Amazon EC2, Auto Scaling, Amazon EBS, Amazon CloudWatch, and Amazon RDS
  25. One identitypool across advertizers Cognito id becomes a cookie id
  26. Use 1 to many
  27. SMS international Push Deliverity stats from Apple Latency/reliability SMS verification Support for inbound SMS SMS China? Regions exansion sync Username and password.
  28. Mobile Analytics is a service for collecting, visualizing and understanding app usage data at scale. Mobile Analytics is Fast, with reports typically updated within 60 minutes from when data are received. The service free up to XX million events/month (TBD), and scalable to process billions of events per day from million of users Your data stays confidential: Amazon does not own, share or monetize your data. 5. Mobile Analytics is cross-platform service that works with iOS, Android and Fire OS apps using our SDK, or with a Connected Device or a Server using the REST API
  29. Amazon Analytics is a service for collecting, visualizing and understanding app usage data at scale. The Amazon Analytics service is free , reports are updated within minutes from when data are received, and the data collected are owned by you. It is built to scale with your business and can collect and process billions of events per day from many millions of users. It’s a crossplatform services, any device any OS (Android, IOS, FireOS) can send data to Analytics service and see granular reports
  30. 1. We have made it easy for our customers to get a feel for the service with a demo app, and easily get started with resources such as tech documentation and user guide
  31. Quick Overview: Track nine pre-selected metrics in a simple to review dashboard to get a quick idea of engagement Active Users: Track how many users engage with your app daily and monthly and monitor sticky factor to gauge engagement, appeal, and monetization Sessions: Track how often your app is used on a given day and how often each user opens your app during a day Retention: Measure the rate at which customers come back to your app on a daily and weekly basis, after first use Revenue: Track in-app revenue trend data to identify areas for monetization improvement Custom Events: Track custom defined user actions specific to your app Sticky factor
  32. User retention is a key indicator to judge the outcome of a marketing campaign, new feature introduction, UX changes, app updates, etc. We have made it easy to track user retention with four charts, two for daily, and two for weekly retention estimates. As an example, if you look at the upper right chart, the developer of this app can see that he had ~2,900 new user on June 6th, of which 700 came back on the 7th, 390 came back on the 9th and finally, 230 came back on the 13th.
  33. Custom Events let you track any action taken in your app, giving you an incredibly powerful insight into your user’s experience and behavior. Custom Events are often used to track social events such as number of Likes/Shares, app specific events such as play progress/song played, and in-app purchase events such as transactions per product SKU. Songs played is the custom even per session. Attribute numerical value associated with the data metric. Attribute: Weaponsused sword, how many people used the sword?
  34. Later this year we plan to add continuous, automatic export of raw event data from your mobile devices to your own Redshift Cluster. With Redshift, you can write custom queries to analyze user segments in detail and extract the full value from your data to optimize your application experiences.
  35. Forza Football has become the worlds’ 2nd largest football app after just 2,5 years in business. We are a team of 17 based in Göteborg, Sweden. The americans in the room might recognize this sport as soccer but I will call it football throughout the presentation.
  36. Forza Football lets the users follow live scores Users can also subscribe to push notifications The users can also vote and give their confidence in the managers and squad.
  37. This is our numbers since our release in 2012. We have got over 5 000 000 downloads and over 50% converts to a monthly active user. Our sticky factor is 50%. This is the amount of our monthly active users who use the application on a particular day. Each month we got 100 000 000 sessions, 800 000 000 push notifications and track over 1 600 000 events.
  38. Bulk update and backin time.
  39. Back-Services • Use Lambda to build back-end services to perform workloads such as image analysis, document transformation, and indexing. • Architect your applications more effectively by moving client-side logic to a Lambda function o Easy scalability and more complex functionality for your app o Avoid client platform variations, reduce battery drain, and enable easier updates Data triggers • Use Lambda to trigger compute functions when data changes in other AWS services o Creating thumbnails when new images are added to Amazon S3 o Run sophisticated calculations on data after it is loaded into Amazon DynamoDB o Perform watermarking or compression when new documents are uploaded to Amazon S3. IoT • Lambda functions can be triggered by events from IoTconnected devices o Send a customized Amazon SNS notification when a smart thermal sensor indicates that the temperature is outside a defined limit. o Monitor and act on device data in an Amazon Kinesis stream, enabling you to easily connect smart appliances, home lighting systems, connected parking meters, or industrial machines to AWS services. Stream processing  • Lambda functions can be triggered by data stream updates from Amazon Kinesis and Amazon DynamoDB. o Watch for a pattern, such as an address, and trigger an alert to perform address verification. Data Indexing and synchronizing • Lots of AWS developers store objects in Amazon S3 and then run separate routines on a regular basis to update an index of the object metadata in Amazon DynamoDB and enable high speed search. • Lambda can monitor when objects are uploaded in S3, and automatically run a function to update the index in DynamoDB o Index is always updated, so search engines and other applications always have accurate index metadata
  40. What are you using Lambda for? o    Social media aggregation ·   Previously running a handful of our Node.js applications for communicating with third-party APIs, like Facebook or Twitter. ·   experiencing memory leak issues due to the number of exceptions we would encounter ·   We refactored those applications to leverage AWS Lambda - using Lambda applications to make our API requests; triggered using custom events ·   Allowed us to remove the direct API calls from our applications and work just with the results via S3 and SQS. ·   We've been able to increase the amount of data we can process while reducing the resources (instances) required to do it. ·   It is part of our production system; we dropped EC2 instances, help with the memory usage, helped significantly with rate limiting to FB API calls o    Finding ways to simplifying other parts of our system ·   In the last week or so, other parts of AWS that we weren't leveraging e.g. connecting what we were doing to Kinesis ·   Certainly a number of internal only projects - use cases for Lambda
  41. Use SNS to send a push notification alerting the user that they are trending, and inviting them to engage with the app. So in literally less than 50 lines of Javascript, here we’ve build an entire application without provisioning a single instance, which will scale automatically no matter how popular our mobile app gets. Server-free, fast to deploy and easy to code; that's AWS Lambda. This is an example of how applications can be architected in an event-driven computing environment, but to hear more about how Lambda can be used at scale, I’d like to welcome to the stage, Neil Hunt, the Chief Product Officer of Netflix. [Introduce Neil Hunt, Chief Product Officer at Netflix]
  42. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  43. draft
  44. STORY BACKGROUND Outplay Entertainment is mobile-focused game developer on a mission to deliver fun, free and innovative games for smartphones, tablets, and social networks. Flagship games include Alien Creep and Monster Legacy. They have a brand new title coming out called Mystery Match. Alien Creep has over 500K installs on Google Play and has above 4 star rating on both Apple Appstore and Google Play Game assets had to be stripped out to get the games under the Over The Air download size limits for the stores. In their experience, up-front delays at the starts of games is off putting for many users. Want to ensure that users are able to immersive themselves as soon as they launch the game. SOLUTION AND BENEFITS Decided to use S3 to host the extra assets and use the AWS Mobile SDK to download them at runtime. They are able to start the download in the background while the user starts to play. This has added benefit that they can update the assets without having to re-publish the game in Appstore. The solution scales seamlessly as the number of users increase and there is no impact to latency.
  45. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  46. Today push notifications is the way to get to the app when the user is not using. It is extremely important functionality to drive engagement, retention and overal user experience. Customers tell us that working with diferent push notifications services is painful. They have to maintain serverside database of tokens issued by apple and android, and maintain the infastructure and different APIs. Moreover, sending push notifications to different parts of the world for example china, where there are more than 200 android appstores is extremely hard.
  47. Each platform works differently, and push gets even more complex as you scale to support millions of devices.
  48. Amazon SNS Mobile Push is a managed, scalable, cross-platform push intermediary service. It abstracts the complexity of different push notification services and allows developers to send push notifications across different mobile endpoints. You can subscribe to topics and and send messages which are then relayed to apple, google, Windows, or Baidu notifications services
  49. Customers love high scale and Reliability of SNS Fast reliable notification for every Email received is powered by SNS High-profile Startups trust SNS for their high-profile launches Launched its Android App with SNS, no provisioning required Mature games increase retention using SNS Advanced targeted notifications bring players back into the game
  50. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  51. We discussed user data, now lets talk about shared data.
  52. It is highly likely that your app will have some data that you would want to share across users who will be on different platforms and devices. To ensure a fluid experience you would want quick and reliable access to the shared data. As an example, lets take one of the most common use cases in games – many games track high scores, leader boards and achievements to add a social element to the game and to increase user engagement. For that you need a quick access database in the cloud that you can query from the client. DynamoDB is a perfect solution for that. So what is DynamoDB? It is a fully managed NoSQL database service. Through its provisioned throughput model, it guarantees predictable performance. As your app can become an instant success overnight and your users can increase from 10s and 100s to 100 of thousands in matter of days. DynamoDB scales seamlessly. There is no cap in the table sizes and throughput limits. It uses SSD-based storage nodes that delivers low-latency access. And there is no administrative overhead. Now lets talk about how you can access DynamoDB from the AWS Mobile SDK in you Mobile App. In addition to the low-level APIs, we provide DynamoDB Object Mapper that simplifies access to Amazon DynamoDB. Using the Object Mapper, you can map you client-side classes to DynamoDB tables. The client library handles transforming the objects into tables and vice versa, eliminating the need for you to write redundant code. To see how easy it is to access DynmaoDB, lets look at an example
  53. STORY BACKGROUND Financial services technology company focused on the global trading market Develops trading, market data, and social research solutions for individual investors, small to mid-size brokers, and developers Needed a solution that could provide on-demand resources with the ability to handle unpredictable situations SOLUTION & BENEFITS Reduced the fixed cost of launching a software product by 40%    Reduced product development by hundreds of hours, enabling a more aggressive product development strategy Deployed servers in a single day, resulting in faster delivery of market data to customers Maintained client and trade record security while simplifying distribution of market data Using Amazon EC2, AmazonS3, Elastic Load Balancing, Amazon RDS, and AWS Direct Connect
  54. Suppose you have this DynamoDB table called BookStore. It has four fields Id, isbn, Title, and a Boolean HardCover. You would create this table in DynamoDB by going to the AWS DynamoDB Console where you can also define primary keys, read/write capacities, set up notifications and alarms etc. We will leave these details for a subsequent webinar. Now in your mobile app, you can use DynamoDB defined annotations to map client side classes to DynamoDB tables. For this example, we will create a mapping class called Book which will have the same fields as the DynamoDB table and Get and Set method for each field.
  55. Next you will simple build a book object and set the required fields. To save the object to DynamoDB, you will simply use DynamoDBObjectMapper save(..) method To update the item again, simply update the fields in the object and call save(..) again. And finally to load another book, you can call the DynamoDBObjectMapper load(..) method and use the hash key. In this case we have set the id as the hash key.
  56. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  57. draft
  58. STORY BACKGROUND [Include more details about the customer and the challenge. Example below.] Hardlight (SEGA) is known for bringing SEGA’s much loved blue mascot to the mobile domain. The Sonic games are highly rated (above 4 star) on both Apple Appstore and Google Play Store SOLUTION AND BENEFITS Hardlight leverages Amazon Kinesis available in the AWS Mobile SDK to stream data and events from the devices.
  59. How to build an app 1. Authentication 2. Authorization 3. Data Storage and Delivery (Upload and Download) 4. Data Analytics 5. Data Synchronization 6. Push Notifications 7. Shared Data 8. Stream real-time data 9.
  60. These services are optimized for mobile OS and make it dead easy to get started when using the SDK. They add a lot of functionality for example Kinesis and Analytics automatically buffer records and events to handle intermittent connection. Kinesis support in the SDK, you can directly ingest large amounts of streaming data from around the world to Kinesis Stream which automatically handles shard. SDK is a great wrapper to handle distributed systems issues, such as automatic retries and so on. Our Mobile SDK adds even more functionality above the normal SDK such as resume, cancel in case of S3 etc.
  61. What are the key ways we differenciate
  62. Get the latest version of the SDKs
  63. Amazon Cognito has a simple pay as you go pricing plan, with no upfront costs. You pay only for what you use.    Authenticating users and generating unique identifiers is free with Amazon Cognito. Upon sign-up, new AWS customers receive 10 GB of cloud sync store and 1,000,000 sync operations per month.   Charges are based on the total amount of data saved in the Amazon Cognito cloud  sync store and the number of sync operations performed. Amazon Analytics is almost free with 100 million events/month and just a 50 cents for millionevents there after.
  64. Using AWS Mobile Services
  65. Still incomplete
  66. Still incomplete
  67. Still incomplete