Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Technology Evangelist, AWS Mobile and IoT
Updated: April 12, 2015
Build Your Mobile App Faster with AWS Mobile
Services
Ji...
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 o...
Developer’s Mobile App Code
User Identity Mgmt. and Auth
User Data Synchronization
Asynchronous Communication
Active Devic...
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push
Kinesis Recorder DynamoDB Mapper S3 Transfer Mgr SQS Client ...
User identity &
data synchronization
service
Store any NoSQL
data and also map
mobile OS specific
objects to
DynamoDB tabl...
Authenticate users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
Deliver media
Store share...
Authenticate users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
AWS Mobile SDK
Amazon Mob...
Authenticate users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
AWS Mobile SDK
Amazon Mob...
Simplifies Identity and
Access Management
Securely access all
AWS services from
Mobile device
Cross-device and
Cross-platf...
Identity
Providers
Unique
IdentitiesJoe Anna Bob
Any Device
Any Platform
Any AWS
Service
Helps implement security best
pra...
Unique Identifier for Your “Things”
“Headless” connected devices can also
securely access cloud services.
Save Data to the...
Sign up for AWS Account and login to AWS Management Console
Download and integrate the Mobile SDK and store and
sync user ...
Set granular access permissions on AWS
resources
Get fine-grained access control to cloud
resources.
Safeguard AWS Credent...
End Users
App with
AWS Mobile
SDK
Access
to AWS
Services
Login OAUTH/OpenID
Access Token
Cognito ID,
Temp
Credentials
Acce...
Your own Username
And Password
Your own user authentication system
Several apps prefer to have their own username
and pass...
Cognito ID
(Temp
Credentials)
DynamoDB
End Users
Developer
App with
AWS Mobile
SDK
Access
to AWS
Services
Cognito Identity...
Identitypool
Identity
Providers
Pool of identities that
share the same trust policy
Access
Policy
Access to
AWS
Services
i...
s3:*
dynamodb:*
cognito-sync:*
Allow
Actions:
All S3, Sync store
Operations
Resource:
All resources within
these services
...
s3:PutObject s3:GetObject s3:DeleteObject
s3:ListMultipartUploadParts s3:AbortMultipartUpload
arn:aws:s3:::BUCKET_NAME/*
s...
s3:PutObject","s3:GetObject","s3:DeleteObject”,”s3:
ListMultipartUploadParts","s3:AbortMultipartUpload
arn:aws:s3:::BUCKET...
Allow
Actions:
All sync operations
Resource:
Only to that identity
{
"Effect": "Allow”,
"Action": ["s3:GetObject”,"s3:PutO...
User Data
Storage and
Sync
Any Platform
iOS/Android/FireOS
Store App Data, Preferences and State
Save app and device data ...
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...
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 ...
AWS
Account
Identitypool
Dataset
Identity
Identity
Identity
Dataset
Dataset
identitypool
1:n
1:n
1:n
User
preferences
Deve...
Initialize the CredentialsProvider and CognitoClient
Call synchronize on the dataset
Create or open Dataset and Add Key Va...
Initialize the AWSCognitoSyncClient
Call synchronize on the dataset
Create or open Dataset and Add Key Values
DataSet *dat...
Store and share media
Deliver media
Store shared data
Stream real-time data
Send push notifications
Store user-generated p...
Scalable and Generous
Free Tier
Focus on metrics that
matter. Usage reports
available within 60
minutes of receiving data
...
Sign up for AWS Account and create or use existing Cognito ID in
the AWS Management Console
View engagement and session ac...
Key Business Metrics
(with one line of code)
1. Monthly Active Users
(MAU)
2. Daily Active Users
(DAU)
3. New Users,
4. Da...
Track Retention
User retention is a key
indicator to judge the
outcome of a marketing
campaign, new feature
introduction, ...
Get behavioral insights into app specific
actions that your users take
Reports provide a view of how often custom
events o...
Initialize the MobileAnalyticsManager. That’s it! Get Session
Activity in the AWS Management Console.
For Custom Events ac...
Initialize the AWSMobileAnalytics object. That’s it! Get Session
Activity in the AWS Management Console.
Submit the event....
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_pa...
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 p...
Auto Scaling
(Never under or over
provision)
Focus on business logic,
not infrastructure. Upload
your code; AWS Lambda
han...
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...
Respond to events in real-time
Map local functions to lambda functions from within the SDK
Target, Filter, and Route Amazo...
Amazon
Cognito Sync
Dataset
Amazon
DynamoDB
Table
Map local
functions to
invoke
Lambda
Functions
synchronously
Maintain
In...
Initialize the LambdaFactory and define the Interface for the functions
Call synchronize on the dataset
Create/Upload the ...
Authenticate users
Authorize access
Analyze User Behavior
Synchronize data
AWS Mobile SDK
Amazon Mobile
Analytics
Amazon C...
Kinesis
AWS
Mobile
SDK
S3
Integrated AWS Mobile SDK
Optimized for native OS
Multipart upload media
Fault tolerant download...
S3 Connector
Multipart upload media (photos, videos, audio)
Fault tolerant download (e.g. assets)
No backend required
Auto...
Outplay Entertainment –Amazon S3 Connector viaAWS Mobile SDK
Outplay Entertainment is mobile-focused game
developer on a m...
TransferManager transferManager = new
TransferManager(credentialProvider);
Upload upload = transferManager.upload(BUCKET_N...
self.transferManager = [S3TransferManager new];
self.transferManager.s3 = s3client;
[self.transferManager uploadFile:fileN...
Authenticate users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
AWS Mobile SDK
Amazon Mob...
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 ...
Mobile push lets our users live
life together in the moment, even
when they are miles apart.
Founded in San Francisco
in 2...
35 AWS EC2 m3.xlarge instances
Home-rolled code based on Tornado
6 Load
Balancers
Constantly trying to
scale out, both at
...
Amazon SNS
Mobile Push
Zero to 500m+ daily
push notifications
almost overnight
Highest available
reliability and speed
Easy migration
$1 per mill...
Fast reliable
notification for every
Email received is
powered by SNS
Customers love
high scale and
Reliability of SNS
Hig...
Authenticate users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
AWS Mobile SDK
Amazon Mob...
Joe Anna Bob
High Scores
Joe 1500
Anna 800
Bob 750
Amazon DynamoDB Connector: Object Mapper
Simplifies access to Amazon
Dy...
HitPoint Studios UsesAWS to GrowAudience and Cut Costs by 45%
HitPoint is an independent casual online game
developer with...
Cognito
User
Management
CloudFront
Content
Delivery
DynamoDB
Persistence
SNS
Notifications
EC2
Compute
Kinesis
Event Strea...
Amazon DynamoDB: Example @DynamoDBTable(tableName = "Bookstore")
public static class Book {
private int id;
private String...
Amazon DynamoDB: Example
// Build a book object
Book book = new Book();
book.setId(17);
book.setIsbn("222-2222222222");
bo...
Authenticate users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
AWS Mobile SDK
Amazon Mob...
Amazon
Kinesis
RedshiftS3Kinesis
enabled
Apps on
EC2
AWS
Mobile
SDK
For sophisticated
User Behavior
Real-time
Analysis
Int...
Hardlight (ASEGANetworks Studio) –Amazon Kinesis
Hardlight (SEGA) is known for bringing SEGA’s
much loved blue mascot to t...
Authenticate users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
AWS Mobile SDK
Amazon Mob...
Photo Sharing App Example Usecase: The Next Instagram
AWS RegionAUTHENTICATED(ASSUMEDROLE)
Photo Sharing
AWS MOBILE REFERENCE ARCHITECTURES
Download
Photos &
App Files
Session ...
• Common authentication mechanism across
all services
• Automatically handle intermittent network
connections
• Cross-plat...
SNSCognito
Cognito
Cognito
SNS
Lambda
Lambda Lambda
Lambda
Any
Analytics S3/Redshift
Kinesis
DynamoDB
Cognito KinesisLambd...
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
mon...
Jinesh Varia
@jinman
jvaria@amazon.com
Amazon Cognito Amazon Mobile
Analytics
Amazon SNS
Mobile Push
Free Tier:
1 Million push messages
every month
Thereafter:
$...
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, Mobile Analytics and more) - Jinesh Varia
Upcoming SlideShare
Loading in …5
×

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

44,588 views

Published on

Build powerful mobile applications using AWS Mobile Services. For the first time, we will discuss how mobile developers can leverage the new cross-platform AWS Mobile Services that we announced today. How they can authenticate and authorize their users using Amazon Cognito, user identity and data synchronization service. We will discuss how Amazon Mobile Analytics service collects, visualizes and understand your mobile app usage at scale, All this is available as a single unified and mobile-optimized easy-to-use SDK so developers can access these new services (and other services like S3, DynamoDB) with just a few lines of code on the client and without the need of owning backend servers. - http://aws.amazon.com/mobile

Published in: Internet, Technology, Business
  • 80% Win Rate? It's Not a BUG? [Proof Inside] ●●● http://ishbv.com/zcodesys/pdf
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD FULL BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hey guys! Who wants to chat with me? More photos with me here 👉 http://www.bit.ly/katekoxx
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sir, your slide was really enlightening. Can you tell about building an android mobile app easily even if a person doesn't know coding? (http://buildmobileapp.webs.com/)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Njce! Thanks for sharing.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

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

  1. 1. Technology Evangelist, AWS Mobile and IoT Updated: April 12, 2015 Build Your Mobile App Faster with AWS Mobile Services Jinesh Varia, @jinman
  2. 2. What makes your mobile apps unique? Where are you spending most of your time?
  3. 3. What makes your mobile apps unique? Where are you spending most of your time?
  4. 4. 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
  5. 5. 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)
  6. 6. 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 λ λ λ λ
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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.
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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 ..
  22. 22. 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)
  23. 23. 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
  24. 24. 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
  25. 25. Sync Game States Across OS/devices State Transition (link multiple accounts) Sync User Profiles across OS/devices/web
  26. 26. 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.
  27. 27. Offline Fast Intelligent Sync Flexible Conflict resolution Local SQLite Cache
  28. 28. • 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
  29. 29. 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
  30. 30. 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);
  31. 31. 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
  32. 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 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
  33. 33. 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
  34. 34. 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)
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. 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();
  39. 39. 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
  40. 40. mobile client Amazon S3 Amazon Mobile Analytics
  41. 41. mobile client Amazon S3 Amazon Redshift Amazon Mobile Analytics Hadoop/Spark Amazon EMR Amazon Glacier archive batch
  42. 42. mobile client Amazon S3 Amazon Redshift Amazon Mobile Analytics External data
  43. 43. 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
  44. 44. mobile client Amazon S3 Amazon Redshift Amazon Mobile Analytics External data
  45. 45. GROWTH PER COUNTRY 68 THE WORLD CUP IS THE MOST INTERESTING FOR THE AMERICANS
  46. 46. PENETRATION 69 USERS PER CAPITA
  47. 47. LEVERAGE ON MISSION 70 VOTE PER COUNTRY
  48. 48. DEVICES 71 IN FORZA FOOTBALL
  49. 49. 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
  50. 50. 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,
  51. 51. How can you put AWS Lambda to work? Stream processing Data triggersBack-end service Mobile/IoT Indexing & synchronization
  52. 52. 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
  53. 53. 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
  54. 54. 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
  55. 55. 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 };
  56. 56. 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
  57. 57. 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
  58. 58. S3 Connector Multipart upload media (photos, videos, audio) Fault tolerant download (e.g. assets) No backend required Automatic retries Pause, resume, cancel functions Optimized for native OS
  59. 59. 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.
  60. 60. 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);
  61. 61. 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];
  62. 62. 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
  63. 63. Cloud App Platform Services Mobile Apps
  64. 64. 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
  65. 65. 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
  66. 66. 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
  67. 67. Amazon SNS Mobile Push
  68. 68. 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
  69. 69. 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
  70. 70. Authenticate users Authorize access Analyze User Behavior Store and share media Synchronize data AWS Mobile SDK Amazon Mobile Analytics Deliver media Amazon Cognito (Sync) AWS Identity and Access Management Amazon Cognito (Identity Broker) Amazon S3 Transfer Manager Amazon CloudFront (Device Detection) 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
  71. 71. 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
  72. 72. 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. ” “
  73. 73. 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
  74. 74. 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
  75. 75. 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);
  76. 76. 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
  77. 77. 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
  78. 78. 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
  79. 79. 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
  80. 80. Photo Sharing App Example Usecase: The Next Instagram
  81. 81. 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
  82. 82. • 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
  83. 83. SNSCognito Cognito Cognito SNS Lambda Lambda Lambda Lambda Any Analytics S3/Redshift Kinesis DynamoDB Cognito KinesisLambdaS3
  84. 84. Flexible and Work Better Together Serverless and Scales automatically Fully Integrated and easy to get started
  85. 85. 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
  86. 86. Jinesh Varia @jinman jvaria@amazon.com
  87. 87. 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

×