Amazon provides a suite of mobile services to help developers build scalable and secure cross-platform mobile apps. These include Amazon Cognito for user authentication, authorization and data synchronization across devices; Amazon Mobile Analytics for app usage analytics; and services like S3, DynamoDB, SNS and Lambda to store and access data, send push notifications and run backend functions without managing servers. The AWS Mobile SDK simplifies integrating these services into both native and web-based mobile apps.
3. Authenticate users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
Deliver media
Store shared data
Stream real-time dataTrack Retention
Send push notifications
Manage users and
identity providers
Securely access
cloud resources
Sync user prefs
across devices
Track active users,
engagement
Manage funnels,
Campaign performances
Store user-generated photos
Media and share them
Automatically detect mobile devices
Deliver content quickly globally
Bring users back to your app by sending
messages reliably
Store and query fast NoSQL data
across users and devices
Collect real-time clickstream logs
and take actions quickly
Your
Mobile
App
4. Authenticate users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
AWS Mobile SDK
Amazon Mobile
Analytics
Deliver media
Amazon Cognito
(Sync)
AWS Identity and
Access Management
Amazon Cognito
(Identity Broker)
Amazon S3
Transfer Manager
Amazon CloudFront
(Device Detection)
Store shared data
Amazon DynamoDB
(Object Mapper)
Stream real-time data
Amazon Kinesis
(Recorder)
Track Retention
Amazon Mobile
Analytics
Send push notifications
Amazon SNS
Mobile Push
Your
Mobile
App
5. 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
λ λ
λ
λ
6. Cross-platform, Optimized for Mobile
User identity &
data synchronization
service
Store any NoSQL
data and also map
mobile OS specific
objects to
DynamoDB tables
Fast cross-platform
Analytics & reporting
Service
Powerful Cross-platform
Push notification service
Recorder that can
handle intermittent
network connection
Easily upload,
download to S3 and
also pause, resume,
and cancel these
operations
Send email
reliably from
device
Access
distributed buffering
and queuing
service
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push
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
7. Fully Integrated AWS Mobile SDK
• Common authentication mechanism across all
services
• Automatically handle intermittent network
connections
• Cross-platform Support:
Android, iOS, Fire OS, Unity, Xamarin (beta)
• 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
9. Amazon Cognito
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
10. 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.
Amazon Cognito Identity
Mobile
Analytics
S3 DynamoDB Kinesis
11. Amazon Cognito for Unauthenticated Identities
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
12. Amazon Cognito Security Architecture
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
14. Access Policy for the IAM Role
{
"Effect":"Allow",
"Action":["s3:*"],
"Resource":"*"
}
{
"Effect": ”Deny",
"Action": ["dynamodb:*"],
"Resource": "*"
}
{
"Effect": "Allow",
"Action": [”cognito-sync:*"],
"Resource": "*"
}
Allow
Actions:
All S3, Sync store
Operations
Resource:
All resources within
these services
Deny
Actions:
All DDB Operations
Resource:
All resources
15. Access Policy Restriction (Policy Variables)
{
"Effect": "Allow”,
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": ["arn:aws:s3:::
myBucket/amazon/snakegame/
${cognito-identity.amazonaws.com:sub}"]
}
Allow
Actions:
S3 Get/Put operations
Resource:
Only to a specific part
of bucket to that identity
16. Access Policy Restriction (Policy Variables)
{
"Effect": "Allow",
"Action": [
"dynamodb:PutItem",
"dynamodb:UpdateItem",
"dynamodb:DeleteItem"
],
"Resource": [
"arn:aws:dynamodb:us-west-2:<AWS_ACCOUNT_ID>:
table/<TABLE_NAME>"
],
"Condition": {
"ForAllValues:StringEquals":
{"dynamodb:LeadingKeys":
["${cognito-identity.amazonaws.com:sub}"]}
}
}
Allow
Actions:
DynamoDB "Write" ops
Resource:
Only if your identity is
in the hash key
18. Cognito Cloud Save and Sync
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
19. Amazon Cognito Sync
Offline: The client SDK manages a local SQLite data store to
allow the app to work even when connectivity is not available.
Fast: The methods to read and write data only interact with the
local SQLite database.
Intelligent Sync: The sync method compares the local version
of the data to the cloud sync store, pushes up deltas and pulls
down new changes.
Flexible Conflict resolution: The sync method first reads the
changes then writes its local changes to the cloud sync store
By default Cognito assumes that the last write wins.
Developers can override and implement their own conflict
resolution programmatically
Local SQLite Cache
21. 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.
22. Just Launched: Javascript Sync
Unique identity across web and mobile
Uniquely identify your user on your website and mobile
devices
Sync your profiles across web and mobile
Sync user data and preferences across web and
devices with one line of code
JS/HTML5 Mobile Applications
Data always stored in local SQLite DB first. Works
seamlessly when intermittent or no connectivity
24. Analyze User Behavior
Store and share media
Deliver media
Store shared data
Stream real-time dataTrack Retention
Send push notifications
Track active users,
engagement
Manage funnels,
Campaign performances
Store user-generated photos
Media and share them
Automatically detect mobile devices
Deliver content quickly globally
Bring users back to your app by sending
messages reliably
Store and query fast NoSQL data
across users and devices
Collect real-time clickstream logs
and take actions quickly
Your
Mobile
App
Authenticate users
Authorize access
Synchronize data
Amazon Cognito
(Sync)
AWS Identity and
Access Management
Amazon Cognito
(Identity Broker)
26. Amazon Mobile Analytics
Scalable and Generous Free
Tier
Focus on metrics that
matter. Usage reports
available within 60 minutes
of receiving data from an
app
Fast
Scale to billions of events
per day from millions of
users.
Own Your Data
“Easily collect, visualize and understand your app usage data at scale”
Data collected are not
shared, aggregated, or
reused
32. Store and share media
Deliver media
Store shared data
Stream real-time data
Send push notifications
Store user-generated photos
Media and share them
Automatically detect mobile devices
Deliver content quickly globally
Bring users back to your app by sending
messages reliably
Store and query fast NoSQL data
across users and devices
Collect real-time clickstream logs
and take actions quickly
Your
Mobile
App
Authenticate users
Authorize access
Analyze User Behavior
Synchronize data
Amazon Mobile
Analytics
Amazon Cognito
(Sync)
AWS Identity and
Access Management
Amazon Cognito
(Identity Broker)
Track Retention
Amazon Mobile
Analytics
34. AWS Lambda
Auto Scaling
(Never under or over
provision)
Focus on business logic,
not infrastructure. Upload
your code; AWS Lambda
handles everything else
Zero Administration
Lambda scales the
infrastructure as needed
to match the event rate
and pay as you go
Bring Your Own Code
“Run stateless functions in the cloud and scale without any servers to manage”
Starting with Javacript but later
bring your own code, Create
threads and processes, run
batch scripts or other
executables,
35. Endless possibilities - not just for mobile
Data
Triggers
Stream
Processing
Indexing &
Synchronization
Server-free
Back-end
IoT
37. Amazon S3 Connector: Transfer Manager
S3 Connector
Multipart upload media (photos, videos, audio)
Fault tolerant download (e.g. assets)
No backend required
Automatic retries
Pause, resume, cancel functions
Optimized for native OS
38. 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.
39. Store shared data
Stream real-time data
Send push notifications
Bring users back to your app by sending
messages reliably
Store and query fast NoSQL data
across users and devices
Collect real-time clickstream logs
and take actions quickly
Your
Mobile
App
Authenticate users
Authorize access
Analyze User Behavior
Synchronize data
Amazon Mobile
Analytics
Amazon Cognito
(Sync)
AWS Identity and
Access Management
Amazon Cognito
(Identity Broker)
Track Retention
Amazon Mobile
Analytics
Store and share media
Deliver media
Amazon S3
Transfer Manager
Amazon CloudFront
(Device Detection)
41. Each platform works differently, and push gets even more complex as you
scale to support millions of devices.
Cloud App
Platform Services Mobile Apps
42. 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:
Message Expiry Time
Message Attributes
Amazon SNS Mobile Push
Android Phones and Tablets
Apple iPhones and iPads
Kindle Fire Devices
Android Phones and Tablets in China
iOS
Windows Desktop and Windows Phone
Devices
43. 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
44. Reliable push at scale takes constant work
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
45. Now Path Uses SNS Mobile Push
Amazon SNS
Mobile Push
47. 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
48. 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);
50. Amazon
Kinesis
RedshiftS3Kinesis
enabled
Apps on EC2
AWS Mobile
SDK
Amazon Kinesis Connector for Mobile Apps
For sophisticated
User Behavior
Real-time
Analysis
Integrated AWS Mobile SDK
Generic batching system that
handles intermittent network
connection and also optimize
battery utilization
51. 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
Sonic Series
52. Authenticate users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
AWS Mobile SDK
Amazon Mobile
Analytics
Deliver media
Amazon Cognito
(Sync)
AWS Identity and
Access Management
Amazon Cognito
(Identity Broker)
Amazon S3
Transfer Manager
Amazon CloudFront
(Device Detection)
Store shared data
Amazon DynamoDB
(Object Mapper)
Stream real-time data
Amazon Kinesis
(Recorder)
Track Retention
Amazon Mobile
Analytics
Send push notifications
Amazon SNS
Mobile Push
Your
Mobile
App
53. Demo - Sample App
Put your notes on a map,
add a picture,
share them
55. Authenticate users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
AWS Mobile SDK
Amazon Mobile
Analytics
Deliver media
Amazon Cognito
(Sync)
AWS Identity and
Access Management
Amazon Cognito
(Identity Broker)
Amazon S3
Transfer Manager
Amazon CloudFront
(Device Detection)
Store shared data
Amazon DynamoDB
(Object Mapper)
Stream real-time data
Amazon Kinesis
(Recorder)
Track Retention
Amazon Mobile
Analytics
Send push notifications
Amazon SNS
Mobile Push
Your
Mobile
App
56. Key Takeaways
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push
Kinesis Connector DynamoDB Connector S3 Connector SQS ConnectorSES Connector
AWS Global Infrastructure (10 Regions, Availability Zones, 51 Edge Locations)
Core Building Block
Services
Mobile Optimized
Connectors
Mobile Optimized
Services
Your Mobile App, Game or Device App
AWS Mobile SDK, API Endpoints, Management Console
Compute Storage Networking Analytics Databases
Integrated SDK
57. Amazon Cognito Amazon Mobile
Analytics
Amazon SNS
Mobile Push
Free Tier:
1 Million push messages
every month
Free Tier
(for first 12 months):
1 Million syncs/month +
10GB of storage for
Amazon Cognito
Free Tier:
100 Million events every
month
Get Started for Free!
http://aws.amazon.com/mobile