SlideShare une entreprise Scribd logo
1  sur  69
Télécharger pour lire hors ligne
1
Build & Deploy Your Mobile Game with AWS
Dhruv Thukral
Solutions Architect, Gaming
dhruv@amazon.com
Tara Walker
Technical Evangelist
tarawalk@amazon.com
AWS Gaming Solutions
AWS Gaming Solutions
Table stakes for your mobile game!
AWS Gaming Solutions
Authenticate users
Authorize access
Synchronize data
Manage users and identity providers
Securely access cloud resources
Sync user preferences across devices
Store and Deliver media
Send Push Notifications
Store user-generated photos Media and share them
Bring users back to your app by sending messages reliably
Store shared data
Store and query fast NoSQL data across users and devices
Analyze User Behavior
Track active users, engagement
AWS Gaming Solutions
Introducing AWS Mobile Services
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push
Kinesis Recorder DynamoDB Mapper S3 Transfer Mgr SQS Client SES Client
Core Building Block
Services
Mobile Optimized
Connectors
Mobile Optimized
Services
Your Mobile Game
AWS Mobile SDK for iOS, Android & Unity, API Endpoints, Management Console
Compute Storage Networking Analytics Databases
Integrated SDK
AWS Lambda
Lambda
Functions
λ λ
λ
λ
AWS Gaming Solutions
Cross-platform, Optimized for Mobile
User identity &
data synchronization
service
Store any NoSQL
data and also map
mobile OS specific
objects to 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
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
AWS Gaming Solutions
Authenticate users: Amazon Cognito
AWS Gaming Solutions
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
AWS Gaming Solutions
Getting Started with Cognito in 3 steps
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 an identitypool for authenticated and
unauthenticated users in the AWS Console
AWS Gaming Solutions
Amazon Cognito Security
Set granular access permissions on AWS
resources
Safeguard AWS Credentials
Helps implement security best practices
EC2 S3 DynamoDB Kinesis
AWS Gaming Solutions
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
AWS Gaming Solutions
Developer Authenticated Identities
Cognito ID
(Temp
Credentials)
DynamoDB
End Users
Developer
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
AWS Gaming Solutions
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.
AWS Gaming Solutions
Synchronize data across devices : Amazon Cognito (Sync)
AWS Gaming Solutions
Amazon Cognito 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
AWS Gaming Solutions
Integrating Cognito Sync functionality is simple
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, COGNTIO_ROLE_UNAUTH, COGNITO_ROLE_AUTH, Regions.US_EAST_1);
cognito = new CognitoSyncManager (context, COGNITO_POOL_ID, Regions.US_EAST_1, provider);
dataset.synchronize(new SyncCallback(){..});
cognito.openOrCreateDataset(datasetName);
dataset.put(key, value);
AWS Gaming Solutions
Integrating Cognito Sync functionality is simple
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
AWS Gaming Solutions
Store and deliver media assets: Amazon S3 and CloudFront
AWS Gaming Solutions
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
AWS Gaming Solutions
// Creating the transfer manager
self.transferManager = [S3TransferManager new];
self.transferManager.s3 = s3client;
// Upload image
[self.transferManager uploadFile:fileName bucket:bucketName key:objectName];
// Download image
[self.transferManager downloadFile:fileName bucket:bucketName key:objectName];
// Pause, Resume, Cancel
[self.transferManager pauseAllTransfers];
[self.transferManager resumeAllTransfers];
[self.transferManager cancelAllTransfers];
Amazon S3 Connector: Transfer Manager
AWS Gaming Solutions
Outplay Entertainment – Amazon S3 Connector via 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.
AWS Gaming Solutions
Analyze User Behavior: Amazon Mobile Analytics
AWS Gaming Solutions
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
AWS Gaming Solutions
Getting Started with Mobile Analytics
in 3 steps
Sign up for AWS Account and create or use existing Cognito ID in
the AWS Management Console
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)
AWS Gaming Solutions
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
AWS Gaming Solutions
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
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
Track Custom Events
AWS Gaming Solutions
Integrating Mobile Analytics is simple
Initialize the MobileAnalyticsManager. That’s it!
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();
AWS Gaming Solutions
Integrating Mobile Analytics is simple
Initialize the AWSMobileAnalytics object. That’s it!
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
AWS Gaming Solutions
Send Push Notifications: Amazon SNS Mobile Push
AWS Gaming Solutions
Each platform works differently, and push gets more
complex as you scale to support millions of devices.
Cloud App
Platform Services Mobile Apps
AWS Gaming Solutions
Amazon SNS
Cross-platform
Mobile Push
Internet
Apple APNS
Google GCM
Amazon ADM
Windows WNS and
MPNS
Baidu CP
New features:
Message Expiry Time
Message Attributes
Delivery Status
Broadcast
iOS 8 support.
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
AWS Gaming Solutions
Store Shared Data: Amazon DynamoDB
AWS Gaming Solutions
Joe Anna Bob
Highscores
Joe 1500
Anna 800
Bob 750
Amazon DynamoDB Connector: Object Mapper
Simplifies access to Amazon
DynamoDB in your app
Map client-side classes to Amazon
DynamoDB tables
Removes the need to transform
objects into tables and vice versa
AWS Gaming Solutions
Amazon DynamoDB: Example
@DynamoDBTable(tableName = ”Highscores")
public static class HighScore{
private int id, highScore;
private String name;
@DynamoDBHashKey(attributeName = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@DynamoDBAttribute(attributeName=”name")
public String getName() {
return name;
}……
id name highscore
17 Joe 25
23 Anna 67
32 Bob 55
Table: Highscores
AWS Gaming Solutions
Amazon DynamoDB: Example
// Build a highscore object
HighScore highScore = new HighScore();
highScore.setId(17);
highScore.setName(”Joe");
highScore.setHighScore(25);
// Save book object to dynmaoDB
mapper.save(highScore);
// Update item and save object again
highScore.setHighScore(118);
mapper.save(highScore);
// Load another book
HighScore anotherHighScore = mapper.load(HighScore.class,23);
AWS Gaming Solutions
Amazon DynamoDB Best Practices
• Keep item size small
• Store metadata in Amazon DynamoDB and
large blobs in Amazon S3
• Use a table with a hash key for extremely
high scale
• Use table per day, week, month etc. for
storing time series data
• Use conditional/OCC updates
• Avoid hot keys and hot partitions
AWS Gaming Solutions
Adding a Server Backend
AWS Gaming Solutions
3 Ways To Do This!
Do It Yourself.
Serverless
Fully Managed
AWS Gaming Solutions
Basic Core Game Stack
ELB
S3
Region
AWS Gaming Solutions
Scale It Way Out
ELB
S3
• Auto Scaling Group
• Capacity on Demand
• Respond to Users
EC2EC2EC2
Region
AWS Gaming Solutions
Scale It Way, Way Out
ELB
S3
• Auto Scaling Group
• Capacity on Demand
• Respond to Users
• ElastiCache
• Memcached
• Redis EC2EC2EC2
Region
AWS Gaming Solutions
Scale It Way, Way, Way Out
CloudFront
CDN
ELB
S3
EC2EC2EC2
Region
• Auto Scaling Group
• Capacity on Demand
• Respond to Users
• ElastiCache
• Memcache
• Redis
• CloudFront CDN
• DLC, Assets
• Game Saves
• User-Generated
Content
AWS Gaming Solutions
3 Ways To Do This!
Do It Yourself.
Serverless
Fully Managed
AWS Gaming Solutions
Elastic Beanstalk
• Managed Container
• ELB, EC2, RDS
• Git Push or Zip Upload
• Web Dashboard
• Same Performance
AWS Gaming Solutions
3 Ways To Do This!
Do It Yourself.
Serverless
Fully Managed
AWS Gaming Solutions
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,
AWS Gaming Solutions
An Event Driven Asynchronous Code
Execution Platform.
AWS Gaming Solutions
An Event Driven Asynchronous Code
Execution Platform.
1. Custom event
2. S3 Notifications
3. DynamoDB Changes
4. Kinesis
AWS Gaming Solutions
An Event Driven Asynchronous Code
Execution Platform.
How do invoke a function?
 Directly Invoke on Lambda Console
 Use SDK or CLI and call invoke-async
 Registering an Event (S3, DynamoDB, Kinesis)
X Cron-ish
X RPC
X REST
AWS Gaming Solutions
An Event Driven Asynchronous Code
Execution Platform.
• A call to a Lambda function is non-blocking.
• You do not wait for an answer.
• You just assume your function will be executed and your request
processed.
AWS Gaming Solutions
An Event Driven Asynchronous Code
Execution Platform.
• Underlying Infrastructure is Entirely Managed for You!
• Supports Node.js only but more languages coming soon.
• Runs on Amazon Linux.
• Offers 500MB of /tmp storage.
AWS Gaming Solutions
Add some de-coupling
AWS Gaming Solutions
Messages and Queues
ELB
S3
• Simple Notification Service
• HTTP
• SMS
• Mobile Push
EC2EC2EC2
Region
AWS Gaming Solutions
Messages and Queues
ELB
EC2EC2EC2
Region
EC2EC2
• Simple Notification Service
• HTTP
• SMS
• Mobile Push
• CloudWatch
• Monitoring
• Alerts
• SQS
• Background Tasks
• Avatar Resizing
• Score Processing
AWS Gaming Solutions
Messages and Queues
ELB
EC2EC2EC2
Region
EC2EC2
• Simple Notification Service
• HTTP
• SMS
• Mobile Push
• CloudWatch
• Monitoring
• Alerts
• SQS
• Background Tasks
• Avatar Resizing
• Score Processing
AWS Gaming Solutions
Now over to Tara!!
AWS Gaming Solutions
AWS Mobile SDKs for Gaming
1. AWS Mobile SDK for Android
2. AWS Mobile SDK for iOS
3. AWS Mobile SDK for Unity (Developer Preview)
AWS Gaming Solutions
Introducing the AWS SDK for Unity
AWS Gaming Solutions
SDK Installation and Setup
• Download AWS Unity SDK and unzip
– http://aws.amazon.com/mobile/sdk/
• Import the desired package(s) into Unity as a Custom
Package
– CognitoSync Package
– DynamoDB Package
– S3 Package
– MobileAnalytics Package
• Add the AWSPrefab to Scene in Unity
AWS Gaming Solutions
Grumpy Flappy Game
• Demo will showcase
– Cognito Identity
– Cognito Sync
– Mobile Analytics
• Demo will be open-sourced …and polished
– Showing more of the AWS services
• Other Unity Samples Available on GitHub
AWS Gaming Solutions
Grumpy Flappy
AWS Mobile SDK: Services Setup
AWS Gaming Solutions
Grumpy Flappy : Services Setup
• Set up Cognito Identity Pool
– Create Grumpy Flappy Identity Pool
– Retrieve Identity Pool ID
• Set up Mobile Analytics App
– Add Grumpy Flappy App
– Retrieve App ID
AWS Gaming Solutions
Grumpy Flappy Demo
Amazon Cognito: Unity3D Code
AWS Gaming Solutions
Adding DynamoDB
• Create DynamoDB Table
– Using DynamoDB Console
– Using code with createTable method
– Using Visual Studio with AWS Toolkit for Visual Studio:
http://aws.amazon.com/net/
– Example:
• Table Name: GrumpyHighScores
• Primary Key Type: Hash
• Hash Attribute Name: ScoreID,
• Hash Type: Number
• Create DynamoDB Client
AmazonDynamoDBClient client = new
AmazonDynamoDBClient(RegionEndpoint.USEast1)
AWS Gaming Solutions
Using DynamoDB
• Add a High Score Record
– Create High Score Object
[DynamoDBTable("GrumpyHighScores")]
class HigScore
{ [DynamoDBHashKey] // hash key
public int ScoreID { get; set; }
[DynamoDBProperty]
public string Score { get; set; }
public string UserID {get; set; }
}
– Save High Score Record to DynamoDB
_context.SaveAsync<Book>(myBook,
(AmazonDynamoResult<VoidResponse> result) =>
{ if (result.Exception != null) { this.displayMessage += "Save
failed ; “ +result.Exception.Message; }
AWS Gaming Solutions
Adding Simple Storage Service (S3)
• Create S3 Bucket (set permissions)
– Using S3 Console
– Using code with PutBucket and PutBucketRequest
– Using Visual Studio with AWS Toolkit for Visual Studio:
http://aws.amazon.com/net/
– Example:
• Bucket Name: grumpyflappy_bucket
• Create an S3 Transfer Manager
AmazonS3Client S3Client =
new AmazonS3Client (credentials ,RegionEndpoint.USEast1);
AWS Gaming Solutions
Using Simple Storage Service (S3)
• Download an Object
– Get Badge Picture (bragging rights)
var request = new GetObjectRequest ()
{ BucketName = bucketName,
Key = downloadKey,
};
S3Client.GetObjectAsync (request, GetObjectCallback,null);
• Upload an Object
Stream stream = null;
stream = new FileStream(uploadSrcFilePath, FileMode.Open, FileAccess.Read,
FileShare.Read);
var postRequest = new PostObjectRequest
{ Key = uploadKey, Bucket = bucketName, InputStream = stream };
S3Client.PostObjectAsync (postRequest, PostObjectCallback,null);
AWS Gaming Solutions
AWS Resources
• AWS Mobile Blog
– http://mobile.awsblog.com
• AWS Mobile Services
– http://aws.amazon.com/mobile/
• AWS Mobile SDK
– http://aws.amazon.com/mobile/sdk/
• AWS Mobile Developer Guides
– Unity: http://docs.aws.amazon.com/mobile/sdkforunity/developerguide
– iOS: http://docs.aws.amazon.com/mobile/sdkforios/developerguide
– Android:
http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/Welcom
e.html
69
Fill out feedback survey and win:
http://bit.ly/amazongdc4

Contenu connexe

Tendances

Tendances (20)

How to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemHow to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin Ecosystem
 
AWS WAF のマネージドルールって結局どれを選べばいいの?
AWS WAF のマネージドルールって結局どれを選べばいいの?AWS WAF のマネージドルールって結局どれを選べばいいの?
AWS WAF のマネージドルールって結局どれを選べばいいの?
 
Foreign Data Wrappers and You with Postgres
Foreign Data Wrappers and You with PostgresForeign Data Wrappers and You with Postgres
Foreign Data Wrappers and You with Postgres
 
Redis data modeling examples
Redis data modeling examplesRedis data modeling examples
Redis data modeling examples
 
今だからこそ見直そうAzureコスト最適化
今だからこそ見直そうAzureコスト最適化今だからこそ見直そうAzureコスト最適化
今だからこそ見直そうAzureコスト最適化
 
Azure DevOps入門~TechLab編
Azure DevOps入門~TechLab編Azure DevOps入門~TechLab編
Azure DevOps入門~TechLab編
 
監視基盤 ~ZabbixとCloudWatch~
監視基盤 ~ZabbixとCloudWatch~監視基盤 ~ZabbixとCloudWatch~
監視基盤 ~ZabbixとCloudWatch~
 
JavaScriptでパワポを作ろう
JavaScriptでパワポを作ろうJavaScriptでパワポを作ろう
JavaScriptでパワポを作ろう
 
あなたも「違いが分かる人」になりましょう! ~ Azure, AzureStack, AzureStack HCI ~
あなたも「違いが分かる人」になりましょう! ~ Azure, AzureStack, AzureStack HCI ~あなたも「違いが分かる人」になりましょう! ~ Azure, AzureStack, AzureStack HCI ~
あなたも「違いが分かる人」になりましょう! ~ Azure, AzureStack, AzureStack HCI ~
 
Azure aws違い
Azure aws違いAzure aws違い
Azure aws違い
 
わかりづらいS3クロスアカウントアクセス許可に立ち向かおう
わかりづらいS3クロスアカウントアクセス許可に立ち向かおうわかりづらいS3クロスアカウントアクセス許可に立ち向かおう
わかりづらいS3クロスアカウントアクセス許可に立ち向かおう
 
入社100日の新人がクラスメソッドでの激速の日々を赤裸々に語る
入社100日の新人がクラスメソッドでの激速の日々を赤裸々に語る入社100日の新人がクラスメソッドでの激速の日々を赤裸々に語る
入社100日の新人がクラスメソッドでの激速の日々を赤裸々に語る
 
Azure IoT/AI最前線
Azure IoT/AI最前線Azure IoT/AI最前線
Azure IoT/AI最前線
 
新規事業「Bill One」による Google Cloud 活用術
新規事業「Bill One」による Google Cloud 活用術新規事業「Bill One」による Google Cloud 活用術
新規事業「Bill One」による Google Cloud 活用術
 
CAPとBASE、ACIDの呪縛
CAPとBASE、ACIDの呪縛CAPとBASE、ACIDの呪縛
CAPとBASE、ACIDの呪縛
 
DynamoDBを導入した話
DynamoDBを導入した話DynamoDBを導入した話
DynamoDBを導入した話
 
Azure Blob Storage API for Scala and Spark
Azure Blob Storage API for Scala and SparkAzure Blob Storage API for Scala and Spark
Azure Blob Storage API for Scala and Spark
 
Microsoft License の基本
Microsoft License  の基本Microsoft License  の基本
Microsoft License の基本
 
AWS Black Belt Techシリーズ AWS Lambda
AWS Black Belt Techシリーズ AWS LambdaAWS Black Belt Techシリーズ AWS Lambda
AWS Black Belt Techシリーズ AWS Lambda
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 

En vedette

You voiced your concerns. VMware listened: Major Adjustments to vSphere 5 lic...
You voiced your concerns. VMware listened: Major Adjustments to vSphere 5 lic...You voiced your concerns. VMware listened: Major Adjustments to vSphere 5 lic...
You voiced your concerns. VMware listened: Major Adjustments to vSphere 5 lic...
Softchoice Corporation
 
SQL Server 2012 ile Gelen Yeni Özellikler
SQL Server 2012 ile Gelen Yeni ÖzelliklerSQL Server 2012 ile Gelen Yeni Özellikler
SQL Server 2012 ile Gelen Yeni Özellikler
turgaysahtiyan
 

En vedette (20)

Deploying a Low-Latency Multiplayer Game Globally: Loadout
Deploying a Low-Latency Multiplayer Game Globally: Loadout Deploying a Low-Latency Multiplayer Game Globally: Loadout
Deploying a Low-Latency Multiplayer Game Globally: Loadout
 
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
 
Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game GloballyBehind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
 
How Cloud-Based Systems Can Improve Learning Outcomes
How Cloud-Based Systems Can Improve Learning OutcomesHow Cloud-Based Systems Can Improve Learning Outcomes
How Cloud-Based Systems Can Improve Learning Outcomes
 
Moving Enterprise Windows Workloads to AWS
Moving Enterprise Windows Workloads to AWSMoving Enterprise Windows Workloads to AWS
Moving Enterprise Windows Workloads to AWS
 
使用 Blox 實現容器任務調度與資源編排
使用 Blox 實現容器任務調度與資源編排使用 Blox 實現容器任務調度與資源編排
使用 Blox 實現容器任務調度與資源編排
 
AWS May Webinar Series - Industry Trends and Best Practices for Cloud Adoption
AWS May Webinar Series - Industry Trends and Best Practices for Cloud AdoptionAWS May Webinar Series - Industry Trends and Best Practices for Cloud Adoption
AWS May Webinar Series - Industry Trends and Best Practices for Cloud Adoption
 
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
 
Dev & Test on AWS - Journey Through the Cloud
Dev & Test on AWS - Journey Through the CloudDev & Test on AWS - Journey Through the Cloud
Dev & Test on AWS - Journey Through the Cloud
 
VPC and DX PoP @ HKG
VPC and DX PoP @ HKGVPC and DX PoP @ HKG
VPC and DX PoP @ HKG
 
Best Practices for Genomic and Bioinformatics Analysis Pipelines on AWS
Best Practices for Genomic and Bioinformatics Analysis Pipelines on AWS Best Practices for Genomic and Bioinformatics Analysis Pipelines on AWS
Best Practices for Genomic and Bioinformatics Analysis Pipelines on AWS
 
Optimizing Costs and Efficiency of AWS Services
Optimizing Costs and Efficiency of AWS ServicesOptimizing Costs and Efficiency of AWS Services
Optimizing Costs and Efficiency of AWS Services
 
Connecting Your Customers – Building Successful Mobile Games through the Powe...
Connecting Your Customers – Building Successful Mobile Games through the Powe...Connecting Your Customers – Building Successful Mobile Games through the Powe...
Connecting Your Customers – Building Successful Mobile Games through the Powe...
 
AWS Developer Fundamentals
AWS Developer FundamentalsAWS Developer Fundamentals
AWS Developer Fundamentals
 
Limewood Event - VMware
Limewood Event - VMware Limewood Event - VMware
Limewood Event - VMware
 
You voiced your concerns. VMware listened: Major Adjustments to vSphere 5 lic...
You voiced your concerns. VMware listened: Major Adjustments to vSphere 5 lic...You voiced your concerns. VMware listened: Major Adjustments to vSphere 5 lic...
You voiced your concerns. VMware listened: Major Adjustments to vSphere 5 lic...
 
Cassandra Introduction & Features
Cassandra Introduction & FeaturesCassandra Introduction & Features
Cassandra Introduction & Features
 
Nordic VMUG User Conference 2014 - Design VMware vCenter Server
Nordic VMUG User Conference 2014 - Design VMware vCenter ServerNordic VMUG User Conference 2014 - Design VMware vCenter Server
Nordic VMUG User Conference 2014 - Design VMware vCenter Server
 
Softchoice Webinar Series: VMware vSphere 5.1 Changes
Softchoice Webinar Series: VMware vSphere 5.1 ChangesSoftchoice Webinar Series: VMware vSphere 5.1 Changes
Softchoice Webinar Series: VMware vSphere 5.1 Changes
 
SQL Server 2012 ile Gelen Yeni Özellikler
SQL Server 2012 ile Gelen Yeni ÖzelliklerSQL Server 2012 ile Gelen Yeni Özellikler
SQL Server 2012 ile Gelen Yeni Özellikler
 

Similaire à Build and Deploy Your Mobile Games

Similaire à Build and Deploy Your Mobile Games (20)

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
 
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
 
Building mobile apps on aws
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
 
Build high performing mobile apps, faster with AWS
Build high performing mobile apps, faster with AWSBuild high performing mobile apps, faster with AWS
Build high performing mobile apps, faster with AWS
 
Mobile on AWS
Mobile on AWSMobile on AWS
Mobile on AWS
 
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
 
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 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
 
(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
 
(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...
 
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
 
Building Cloud-Powered Mobile Apps
Building Cloud-Powered Mobile AppsBuilding Cloud-Powered Mobile Apps
Building Cloud-Powered Mobile Apps
 
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
 
AWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
AWS Cloud Kata 2014 | Jakarta - 2-2 MobileAWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
AWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
 
Amazon Cognito
Amazon CognitoAmazon Cognito
Amazon Cognito
 
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...
 
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
 

Plus de Amazon 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 AWS
Amazon 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 Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon 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
 

Plus de 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
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Build and Deploy Your Mobile Games

  • 1. 1 Build & Deploy Your Mobile Game with AWS Dhruv Thukral Solutions Architect, Gaming dhruv@amazon.com Tara Walker Technical Evangelist tarawalk@amazon.com
  • 3. AWS Gaming Solutions Table stakes for your mobile game!
  • 4. AWS Gaming Solutions Authenticate users Authorize access Synchronize data Manage users and identity providers Securely access cloud resources Sync user preferences across devices Store and Deliver media Send Push Notifications Store user-generated photos Media and share them Bring users back to your app by sending messages reliably Store shared data Store and query fast NoSQL data across users and devices Analyze User Behavior Track active users, engagement
  • 5. AWS Gaming Solutions Introducing AWS Mobile Services Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push Kinesis Recorder DynamoDB Mapper S3 Transfer Mgr SQS Client SES Client Core Building Block Services Mobile Optimized Connectors Mobile Optimized Services Your Mobile Game AWS Mobile SDK for iOS, Android & Unity, API Endpoints, Management Console Compute Storage Networking Analytics Databases Integrated SDK AWS Lambda Lambda Functions λ λ λ λ
  • 6. AWS Gaming Solutions Cross-platform, Optimized for Mobile User identity & data synchronization service Store any NoSQL data and also map mobile OS specific objects to 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 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. AWS Gaming Solutions Authenticate users: Amazon Cognito
  • 8. AWS Gaming Solutions 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
  • 9. AWS Gaming Solutions Getting Started with Cognito in 3 steps 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 an identitypool for authenticated and unauthenticated users in the AWS Console
  • 10. AWS Gaming Solutions Amazon Cognito Security Set granular access permissions on AWS resources Safeguard AWS Credentials Helps implement security best practices EC2 S3 DynamoDB Kinesis
  • 11. AWS Gaming Solutions 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
  • 12. AWS Gaming Solutions Developer Authenticated Identities Cognito ID (Temp Credentials) DynamoDB End Users Developer 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
  • 13. AWS Gaming Solutions 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.
  • 14. AWS Gaming Solutions Synchronize data across devices : Amazon Cognito (Sync)
  • 15. AWS Gaming Solutions Amazon Cognito 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
  • 16. AWS Gaming Solutions Integrating Cognito Sync functionality is simple 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, COGNTIO_ROLE_UNAUTH, COGNITO_ROLE_AUTH, Regions.US_EAST_1); cognito = new CognitoSyncManager (context, COGNITO_POOL_ID, Regions.US_EAST_1, provider); dataset.synchronize(new SyncCallback(){..}); cognito.openOrCreateDataset(datasetName); dataset.put(key, value);
  • 17. AWS Gaming Solutions Integrating Cognito Sync functionality is simple 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
  • 18. AWS Gaming Solutions Store and deliver media assets: Amazon S3 and CloudFront
  • 19. AWS Gaming Solutions 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
  • 20. AWS Gaming Solutions // Creating the transfer manager self.transferManager = [S3TransferManager new]; self.transferManager.s3 = s3client; // Upload image [self.transferManager uploadFile:fileName bucket:bucketName key:objectName]; // Download image [self.transferManager downloadFile:fileName bucket:bucketName key:objectName]; // Pause, Resume, Cancel [self.transferManager pauseAllTransfers]; [self.transferManager resumeAllTransfers]; [self.transferManager cancelAllTransfers]; Amazon S3 Connector: Transfer Manager
  • 21. AWS Gaming Solutions Outplay Entertainment – Amazon S3 Connector via 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.
  • 22. AWS Gaming Solutions Analyze User Behavior: Amazon Mobile Analytics
  • 23. AWS Gaming Solutions 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
  • 24. AWS Gaming Solutions Getting Started with Mobile Analytics in 3 steps Sign up for AWS Account and create or use existing Cognito ID in the AWS Management Console 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)
  • 25. AWS Gaming Solutions 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
  • 26. AWS Gaming Solutions 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 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 Track Custom Events
  • 27. AWS Gaming Solutions Integrating Mobile Analytics is simple Initialize the MobileAnalyticsManager. That’s it! 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();
  • 28. AWS Gaming Solutions Integrating Mobile Analytics is simple Initialize the AWSMobileAnalytics object. That’s it! 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
  • 29. AWS Gaming Solutions Send Push Notifications: Amazon SNS Mobile Push
  • 30. AWS Gaming Solutions Each platform works differently, and push gets more complex as you scale to support millions of devices. Cloud App Platform Services Mobile Apps
  • 31. AWS Gaming Solutions Amazon SNS Cross-platform Mobile Push Internet Apple APNS Google GCM Amazon ADM Windows WNS and MPNS Baidu CP New features: Message Expiry Time Message Attributes Delivery Status Broadcast iOS 8 support. 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
  • 32. AWS Gaming Solutions Store Shared Data: Amazon DynamoDB
  • 33. AWS Gaming Solutions Joe Anna Bob Highscores Joe 1500 Anna 800 Bob 750 Amazon DynamoDB Connector: Object Mapper Simplifies access to Amazon DynamoDB in your app Map client-side classes to Amazon DynamoDB tables Removes the need to transform objects into tables and vice versa
  • 34. AWS Gaming Solutions Amazon DynamoDB: Example @DynamoDBTable(tableName = ”Highscores") public static class HighScore{ private int id, highScore; private String name; @DynamoDBHashKey(attributeName = "id") public int getId() { return id; } public void setId(int id) { this.id = id; } @DynamoDBAttribute(attributeName=”name") public String getName() { return name; }…… id name highscore 17 Joe 25 23 Anna 67 32 Bob 55 Table: Highscores
  • 35. AWS Gaming Solutions Amazon DynamoDB: Example // Build a highscore object HighScore highScore = new HighScore(); highScore.setId(17); highScore.setName(”Joe"); highScore.setHighScore(25); // Save book object to dynmaoDB mapper.save(highScore); // Update item and save object again highScore.setHighScore(118); mapper.save(highScore); // Load another book HighScore anotherHighScore = mapper.load(HighScore.class,23);
  • 36. AWS Gaming Solutions Amazon DynamoDB Best Practices • Keep item size small • Store metadata in Amazon DynamoDB and large blobs in Amazon S3 • Use a table with a hash key for extremely high scale • Use table per day, week, month etc. for storing time series data • Use conditional/OCC updates • Avoid hot keys and hot partitions
  • 37. AWS Gaming Solutions Adding a Server Backend
  • 38. AWS Gaming Solutions 3 Ways To Do This! Do It Yourself. Serverless Fully Managed
  • 39. AWS Gaming Solutions Basic Core Game Stack ELB S3 Region
  • 40. AWS Gaming Solutions Scale It Way Out ELB S3 • Auto Scaling Group • Capacity on Demand • Respond to Users EC2EC2EC2 Region
  • 41. AWS Gaming Solutions Scale It Way, Way Out ELB S3 • Auto Scaling Group • Capacity on Demand • Respond to Users • ElastiCache • Memcached • Redis EC2EC2EC2 Region
  • 42. AWS Gaming Solutions Scale It Way, Way, Way Out CloudFront CDN ELB S3 EC2EC2EC2 Region • Auto Scaling Group • Capacity on Demand • Respond to Users • ElastiCache • Memcache • Redis • CloudFront CDN • DLC, Assets • Game Saves • User-Generated Content
  • 43. AWS Gaming Solutions 3 Ways To Do This! Do It Yourself. Serverless Fully Managed
  • 44. AWS Gaming Solutions Elastic Beanstalk • Managed Container • ELB, EC2, RDS • Git Push or Zip Upload • Web Dashboard • Same Performance
  • 45. AWS Gaming Solutions 3 Ways To Do This! Do It Yourself. Serverless Fully Managed
  • 46. AWS Gaming Solutions 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,
  • 47. AWS Gaming Solutions An Event Driven Asynchronous Code Execution Platform.
  • 48. AWS Gaming Solutions An Event Driven Asynchronous Code Execution Platform. 1. Custom event 2. S3 Notifications 3. DynamoDB Changes 4. Kinesis
  • 49. AWS Gaming Solutions An Event Driven Asynchronous Code Execution Platform. How do invoke a function?  Directly Invoke on Lambda Console  Use SDK or CLI and call invoke-async  Registering an Event (S3, DynamoDB, Kinesis) X Cron-ish X RPC X REST
  • 50. AWS Gaming Solutions An Event Driven Asynchronous Code Execution Platform. • A call to a Lambda function is non-blocking. • You do not wait for an answer. • You just assume your function will be executed and your request processed.
  • 51. AWS Gaming Solutions An Event Driven Asynchronous Code Execution Platform. • Underlying Infrastructure is Entirely Managed for You! • Supports Node.js only but more languages coming soon. • Runs on Amazon Linux. • Offers 500MB of /tmp storage.
  • 52. AWS Gaming Solutions Add some de-coupling
  • 53. AWS Gaming Solutions Messages and Queues ELB S3 • Simple Notification Service • HTTP • SMS • Mobile Push EC2EC2EC2 Region
  • 54. AWS Gaming Solutions Messages and Queues ELB EC2EC2EC2 Region EC2EC2 • Simple Notification Service • HTTP • SMS • Mobile Push • CloudWatch • Monitoring • Alerts • SQS • Background Tasks • Avatar Resizing • Score Processing
  • 55. AWS Gaming Solutions Messages and Queues ELB EC2EC2EC2 Region EC2EC2 • Simple Notification Service • HTTP • SMS • Mobile Push • CloudWatch • Monitoring • Alerts • SQS • Background Tasks • Avatar Resizing • Score Processing
  • 56. AWS Gaming Solutions Now over to Tara!!
  • 57. AWS Gaming Solutions AWS Mobile SDKs for Gaming 1. AWS Mobile SDK for Android 2. AWS Mobile SDK for iOS 3. AWS Mobile SDK for Unity (Developer Preview)
  • 58. AWS Gaming Solutions Introducing the AWS SDK for Unity
  • 59. AWS Gaming Solutions SDK Installation and Setup • Download AWS Unity SDK and unzip – http://aws.amazon.com/mobile/sdk/ • Import the desired package(s) into Unity as a Custom Package – CognitoSync Package – DynamoDB Package – S3 Package – MobileAnalytics Package • Add the AWSPrefab to Scene in Unity
  • 60. AWS Gaming Solutions Grumpy Flappy Game • Demo will showcase – Cognito Identity – Cognito Sync – Mobile Analytics • Demo will be open-sourced …and polished – Showing more of the AWS services • Other Unity Samples Available on GitHub
  • 61. AWS Gaming Solutions Grumpy Flappy AWS Mobile SDK: Services Setup
  • 62. AWS Gaming Solutions Grumpy Flappy : Services Setup • Set up Cognito Identity Pool – Create Grumpy Flappy Identity Pool – Retrieve Identity Pool ID • Set up Mobile Analytics App – Add Grumpy Flappy App – Retrieve App ID
  • 63. AWS Gaming Solutions Grumpy Flappy Demo Amazon Cognito: Unity3D Code
  • 64. AWS Gaming Solutions Adding DynamoDB • Create DynamoDB Table – Using DynamoDB Console – Using code with createTable method – Using Visual Studio with AWS Toolkit for Visual Studio: http://aws.amazon.com/net/ – Example: • Table Name: GrumpyHighScores • Primary Key Type: Hash • Hash Attribute Name: ScoreID, • Hash Type: Number • Create DynamoDB Client AmazonDynamoDBClient client = new AmazonDynamoDBClient(RegionEndpoint.USEast1)
  • 65. AWS Gaming Solutions Using DynamoDB • Add a High Score Record – Create High Score Object [DynamoDBTable("GrumpyHighScores")] class HigScore { [DynamoDBHashKey] // hash key public int ScoreID { get; set; } [DynamoDBProperty] public string Score { get; set; } public string UserID {get; set; } } – Save High Score Record to DynamoDB _context.SaveAsync<Book>(myBook, (AmazonDynamoResult<VoidResponse> result) => { if (result.Exception != null) { this.displayMessage += "Save failed ; “ +result.Exception.Message; }
  • 66. AWS Gaming Solutions Adding Simple Storage Service (S3) • Create S3 Bucket (set permissions) – Using S3 Console – Using code with PutBucket and PutBucketRequest – Using Visual Studio with AWS Toolkit for Visual Studio: http://aws.amazon.com/net/ – Example: • Bucket Name: grumpyflappy_bucket • Create an S3 Transfer Manager AmazonS3Client S3Client = new AmazonS3Client (credentials ,RegionEndpoint.USEast1);
  • 67. AWS Gaming Solutions Using Simple Storage Service (S3) • Download an Object – Get Badge Picture (bragging rights) var request = new GetObjectRequest () { BucketName = bucketName, Key = downloadKey, }; S3Client.GetObjectAsync (request, GetObjectCallback,null); • Upload an Object Stream stream = null; stream = new FileStream(uploadSrcFilePath, FileMode.Open, FileAccess.Read, FileShare.Read); var postRequest = new PostObjectRequest { Key = uploadKey, Bucket = bucketName, InputStream = stream }; S3Client.PostObjectAsync (postRequest, PostObjectCallback,null);
  • 68. AWS Gaming Solutions AWS Resources • AWS Mobile Blog – http://mobile.awsblog.com • AWS Mobile Services – http://aws.amazon.com/mobile/ • AWS Mobile SDK – http://aws.amazon.com/mobile/sdk/ • AWS Mobile Developer Guides – Unity: http://docs.aws.amazon.com/mobile/sdkforunity/developerguide – iOS: http://docs.aws.amazon.com/mobile/sdkforios/developerguide – Android: http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/Welcom e.html
  • 69. 69 Fill out feedback survey and win: http://bit.ly/amazongdc4