SlideShare a Scribd company logo
1 of 52
Download to read offline
1
GDC 2015 – Amazon Developer Day
Deploying a Low-Latency Multiplayer Game Globally
Nate Wiger
Principal, Gaming Solutions
@nateware
nateware@amazon.com
James Gwertzman
CEO, PlayFab
@playfabnetwork
http://playfab.com
AWS Gaming Solutions
[Game] Online Problems Continue; Features
Disabled as [Game Studio] Works on Fixes
“We are working hard to get everyone online
as soon as possible,” [Game Studio] says.
Days later, [Game Studio] leaving
disconnected players stranded
[Game] has a great online mode – if you
can get online, that is
“This is total bull**** I paid for a preorder and
I can’t even connect WTF [Game Studio]??”
AWS Gaming Solutions
AWS Gaming Solutions http://bit.ly/verizon-latency
http://bit.ly/superdata-latency
AWS Gaming Solutions
AWS Gaming Solutions
100+ms 100+ms
100+ms
100+ms
AWS Gaming Solutions
How To Be Awesome
1.  Game servers near players
2.  Everything else as HTTP APIs
3.  Data replication = bad
4.  Local caches = good
5.  Nobody really “plays everywhere”
AWS Gaming Solutions
Loosely Coupled Pods
Tokyo
Oregon
Frankfurt
Virginia
AWS Gaming Solutions
VPC Subnet
VPC Subnet
Game API Pods
Availability Zone A
 Availability Zone B
VPC Subnet
VPC Subnet
Auto Scaling group
WEB
VPC Subnet
WEB
JOBS
Cognito
SNS Mobile
Push
SES
AWS Gaming Solutions
Region
①  Login via HTTP API
②  Download Game Assets
③  Matchmaking to Game Server
EC2
Game Flow
EC2
EC2
AWS Gaming Solutions
Region
①  Login via HTTP API
②  Download Game Assets
③  Matchmaking to Game Server
④  Connect to Server
⑤  Hack Apart Your Friends
⑥  Game Over
Game Flow
EC2
EC2
AWS Gaming Solutions
Region
①  Login via HTTP API
②  Download Game Assets
③  Matchmaking to Game Server
④  Connect to Server
⑤  Hack Apart Your Friends
⑥  Game Over
⑦  Write via HTTP API
Game Flow
EC2
EC2
AWS Gaming Solutions
VPC Private Subnet
VPC Public Subnet
Game Server Pods
Availability Zone A
 Availability Zone B
VPC Public Subnet
VPC Private Subnet
GAME GAME GAME GAME GAME GAME
AWS Gaming Solutions
Make. Network. Faster.
•  C3/C4 instance family (or R3 for more memory)
•  In a VPC
•  HVM AMI – not PV
•  Enable Enhanced Networking (SR-IOV)
http://bit.ly/ec2-enhanced-net
•  Linux: Tweak Networking Stack
http://bit.ly/linux-tuning
AWS Gaming Solutions
Enhanced Networking (SR-IOV)
Before:
Hypervisor
After:
Hardware
AWS Gaming Solutions
VPC Private Subnet
 VPC Private Subnet
RabbitMQ + Elastic Load Balancing
Availability Zone A
 Availability Zone B
10.1.0.13 10.2.0.16
TCP 5672
rabbitmq-node1 rabbitmq-node2
TCP 4369
& 25672
AWS Gaming Solutions
RabbitMQ + Elastic Load Balancing
•  Clustering Tutorial
https://www.rabbitmq.com/clustering.html
•  Set Queue HA policy to "all"
https://www.rabbitmq.com/ha.html
•  Create Internal load balancer
–  Listen Port: TCP 5672
•  VPC Security Group
–  For load balancer: TCP 5672
–  Between EC2 nodes: TCP 4369 & 25672
•  Set up Client to Heartbeat
AWS Gaming Solutions
/etc/rabbitmq/rabbitmq.config
5672
rabbitmq-node1
rabbitmq-node2
AWS Gaming Solutions
VPC Private Subnet
VPC Public Subnet
Redis Pub / Sub
Availability Zone A
 Availability Zone B
VPC Public Subnet
VPC Private Subnet
GAME GAME GAME GAME GAME GAME
Auto Scaling group
AWS Gaming Solutions
VPC Private Subnet
VPC Public Subnet
CloudFormation + Chef
Availability Zone A
GAME GAME GAME
Auto Scaling group
AWS Gaming Solutions
AWS Gaming Solutions
Unreal Engine with CloudFormation
UnrealServer
unreal_linux.template.json
true
my-bucket-name
Unreal-123.zip
sshkeyname
1.2.3.4/24
MyPass123
AWS Gaming Solutions
AWS Gaming Solutions
AWS Gaming Solutions
AWS Gaming Solutions
Where My Servers At?
Tokyo
Oregon
Frankfurt
Virginia
?
?
AWS Gaming Solutions
VPC Subnet
Server Registration
Availability Zone A
 Availability Zone B
VPC Subnet
Auto Scaling group
WEB WEB
Oregon
Tokyo
VPC Subnet
JOBS
AWS Gaming Solutions
Server Registration & Scaling
•  HTTPS POST /api/servers/register
•  Include an HMAC (RFC 2104)
•  Send Server Status
–  Public IP
–  # Players
–  Game Modes
•  Matchmaking Service
–  Maintains server list
–  Removes servers
AWS Gaming Solutions
VPC Private Subnet
VPC Public Subnet
Game Server Logs
Availability Zone A
S3 Bucket
Amazon CloudWatch Logs
GAME GAME GAME
AWS Gaming Solutions
VPC Private Subnet
VPC Public Subnet
Game Server Logs
Availability Zone A
Amazon

Kinesis
S3 Bucket
Amazon Redshift
GAME GAME GAME
AWS Gaming Solutions
AWS Gaming Solutions
Mini Pods Everywhere
China
Oregon
Frankfurt
Virginia
China
Leaderboard
AWS Gaming Solutions
PlayFab: Loadout Architecture
AWS Gaming Solutions
What is PlayFab?
PlayFab is a complete live game operations platform.
Focus on the fun – we’ll do the boring bits.
+
Tools for operating &
monetizing live games
Complete set of cloud-based
backend services
Eco-system of pre-integrated
third-party services
.. and
more
+
AWS Gaming Solutions
AWS Gaming Solutions
Some Loadout Stats
•  Launched 1/31/14
•  Over 1 billion API Calls
•  At Peak (Feb 2014):
–  300k DAU
–  120 fixed game servers
–  110 EC2 game servers
AWS Gaming Solutions
PlayFab Core Architecture Tenants
•  No scheduled downtime.
•  Automatic scaling for load.
•  Backend changes should be
invisible to developers.
•  Use buffering to smooth over
spikes or failures.
AWS Gaming Solutions
AWS cloud: PlayFab Web Services
US
 EU
Hardware
Game Servers
Hardware
Game Servers
Game Client
Amazon Route 53
(3.playfabapi.com)
Amazon EC2
(API handling)
Matchmaker
Instance
 Instance
Game Server
Monitor
DynamoDB
 Amazon RDS
 Amazon S3
Elastic Load Balancing
Amazon Redshift
Reports
service
Instance
Logs
ArchitectureOverview
Matchmaker
(Secondary)
Instance
US
 EU
SA
 AUS
Amazon EC2
Game Servers
Amazon EC2
Game Servers
Amazon EC2
Game Servers
Amazon EC2
Game Servers
AWS Gaming Solutions
List of PlayFab Web APIs
Client Server
Authentication Title-Wide Data Management Shared Group Data Authentication
AddUsernamePassword GetCatalogItems AddSharedGroupMembers AuthenticateSessionTicket
LoginWithAndroidDeviceID GetStoreItems CreateSharedGroup Account Management
LoginWithFacebook GetTitleData GetSharedGroupData GetUserAccountInfo
LoginWithGameCenter GetTitleNews RemoveSharedGroupMembers SendPushNotification
LoginWithGoogleAccount AddUserVirtualCurrency UpdateSharedGroupData Player Data Management
LoginWithIOSDeviceID Player Item Management Server-Side Game Logic GetLeaderboard
LoginWithPlayFab ConsumeItem GetLogicServerUrl GetLeaderboardAroundUser
LoginWithSteam GetUserInventory GetUserData
RegisterPlayFabUser RedeemCoupon GetUserInternalData
SendAccountRecoveryEmail SubtractUserVirtualCurrency GetUserReadOnlyData
Account Management UnlockContainerItem GetUserStatistics
GetAccountInfo StartPurchase UpdateUserData
GetPlayFabIDsFromFacebookIDs PayForPurchase UpdateUserInternalData
GetUserCombinedInfo ConfirmPurchase UpdateUserReadOnlyData
LinkFacebookAccount PurchaseItem UpdateUserStatistics
LinkGameCenterAccount Friend List Management Title-Wide Data Management
LinkSteamAccount AddFriend GetCatalogItems
UnlinkFacebookAccount GetFriendsList GetTitleData
UnlinkGameCenterAccount RemoveFriend SetTitleData
UnlinkSteamAccount SetFriendTags Player Item Management
UpdateEmailAddress IOS-Specific APIs AddUserVirtualCurrency
UpdatePassword RegisterForIOSPushNotification GetUserInventory
UpdateUserTitleDisplayName ValidateIOSReceipt GrantItemsToUsers
Player Data Management Matchmaking APIs SubtractUserVirtualCurrency
GetFriendLeaderboard GetCurrentGames Matchmaking APIs
GetLeaderboard GetGameServerRegions NotifyMatchmakerPlayerLeft
GetLeaderboardAroundCurrentUser Matchmake RedeemMatchmakerTicket
GetUserData StartGame Steam-Specific APIs
GetUserReadOnlyData Android-Specific APIs AwardSteamAchievement
GetUserStatistics AndroidDevicePushNotificationRegistration
UpdateUserData ValidateGooglePlayPurchase
UpdateUserStatistics Analytics
AWS Gaming Solutions
Example of Web API Call
API Request: Response from Web Services:
AWS Gaming Solutions
ELB Logging for Title Tracking
Game Client
Amazon Route 53
(3.playfabapi.com)
API Request:
Elastic Load
Balancing
Logs
Amazon Redshift
Amazon S3 

bucket
Reports
service
Logs
Instance
Logs include title-specific
endpoint for analytics
AWS wildcard DNS
(*.playfabapi.com)
Log event:
AWS Gaming Solutions
Loadout API Usage Report (Oct 2014)
API NAME
TOTAL
CALLS
AVERAGE
BACKEND
TIME (S)
AVERAGE
RESPONSE
TIME (MS)
AVERAGE
REQUEST
TIME (MS)
TOTAL
REQUEST
TIME (M)
AVERAGE
RECIEVED
(BYTES)
AVERAGE
SENT
(BYTES)
TOTAL
ERRORS
adminapi_userinfo 93,081,685 0.03 0.04 0.04 59.83 0 452 1979
gameserver_usercustomdatareadonly 1,582,348 0.06 0.04 0.04 1.06 42 902 290
matchmaker_userinfo 1,138,842 0.20 0.04 0.04 0.81 0 10046 319
matchmaker_playerjoined 1,138,247 0.01 0.04 0.04 0.79 64 2 93
matchmaker_playerleft 1,136,797 0.01 0.04 0.04 0.80 64 2 400
matchmaker_authuser 736,607 0.01 0.03 0.04 0.52 0 48 107
gameserver_usercustomdata 297,735 0.19 0.04 0.04 0.20 0 4080 0
gameserver_usercustomdatainternal 297,469 0.08 0.04 0.04 0.20 0 237 2
AWS Gaming Solutions
Instance
Making a Singleton Highly Available
Health
Check
Auto Scaling group
Auto Scaling
service
Instance
Matchmaker
(Primary)
Instance
Amazon Route 53)
Elastic Load
Balancing
Matchmaker
(Secondary)
1. Auto Scaling is set to keep
two instances up.
2. Elastic Beanstalk Health
Check terminates bad
instance.
3. Amazon Route 53 fails
over all traffic to secondary
server.
4. Auto Scaling detects
failure and starts new
instance.
AWS Gaming Solutions
Monitoring Service Health
Amazon EC2
(API handling)
Elastic Load
Balancing
 CloudWatch
Health
Check
Email Alerts
On-call Engineer
Mobile Alerts
AWS Gaming Solutions
Handling Spikes Without Losing Data
Amazon EC2 API Server
Server SSD
Amazon Redshift
Local Reports
service
 Local event
logs
Instance
Events:
logins and
purchases
Reports
service
Logs
Customer’s game
management dashboard
Analytics
Server
Logs
RabbitMQ
message
queue
Logs
Instance
Logstash
service
Logstash
Instance
ElasticSearch
Instance
Instance
AWS Gaming Solutions
Storage in DynamoDB, Amazon RDS, Amazon S3,
Amazon Redshift
DynamoDB
 Amazon RDS
 Amazon S3
Player data:
•  Accounts
•  Profile
•  Inventory
•  Save data
•  Player stats
•  Player currency
values
•  Auditing
•  Log files
•  Game replays
Amazon Redshift
•  Analytics data
AWS Gaming Solutions
Managing Tables in DynamoDB
Amazon
DynamoDB
•  Player data: accounts, profile, inventory, save data
User:
UserID: Hash
TitleID: range key
-  DisplayName
-  Linked accounts
-  …

Custom user data:
UserID: Hash
TitleID: range key
-  Key/value 1
-  Key/value 2
-  …

Inventory:
UserID: Hash
ItemID: range key
-  titleID
-  Catalog Item
-  …

…
AWS Gaming Solutions
Physical Deployment
AZ 1
AZ 2
PlayFab Web
Services
PlayFab Web
Services
N. California
AZ 1
AZ 2
PlayFab Web
Services
PlayFab Web
Services
Oregon
AZ 1
PlayFab Web
Services
Beijing
•  Original deployment: us-west-1
•  Expanded to us-west-2 in July
•  Coming soon: cn-north-1
Amazon EC2
Game Server
Singapore
Game Client
Instance
AWS Gaming Solutions
Managing Cross-Region Data
Player accounts are shared
across all regions:
•  Cross-regional wrapper for
user.get sets order of
databases and regions to
check
•  user.get then checks for
player account data
•  High availability, transparent
to customers and players
// Returns the first matching player record, searching DynamoDB and SimpleDB
// in both regions in the specified order.
// Updates the player record in the store and region from which it was loaded.
// Creates a player record in the default store and region.
AWS Gaming Solutions
AWS Gaming Solutions
AWS cloud: PlayFab Web Services
US
 EU
Hardware
Game Servers
Hardware
Game ServersGame Client
Amazon Route 53
(3.playfabapi.com)
Amazon EC2
(API handling)
Matchmaker
Instance
 Instance
Game Server
Monitor
DynamoDB
 Amazon RDS
 Amazon S3
Elastic Load Balancing
Amazon Redshift
Reports
service
Instance
Logs
ArchitectureOverview
Matchmaker
(Secondary)
Instance
US
 EU
SA
 AUS
Amazon EC2
Game Servers
Amazon EC2
Game Servers
Amazon EC2
Game Servers
Amazon EC2
Game Servers
52
Nate Wiger
Principal, Gaming Solutions
@nateware
nateware@amazon.com

More Related Content

What's hot

Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심Amazon Web Services Korea
 
Redis on Kubernetes
Redis on KubernetesRedis on Kubernetes
Redis on KubernetesIdan Atias
 
(GAM406) Glu Mobile: Real-time Analytics Processing og 10 MM+ Devices
(GAM406) Glu Mobile: Real-time Analytics Processing og 10 MM+ Devices(GAM406) Glu Mobile: Real-time Analytics Processing og 10 MM+ Devices
(GAM406) Glu Mobile: Real-time Analytics Processing og 10 MM+ DevicesAmazon Web Services
 
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...Amazon Web Services
 
Amazon Lumberyard: end-to-end solutions for game developers
Amazon Lumberyard: end-to-end solutions for game developersAmazon Lumberyard: end-to-end solutions for game developers
Amazon Lumberyard: end-to-end solutions for game developersDevGAMM Conference
 
Intro to Game Development & Operations on AWS
Intro to Game Development & Operations on AWSIntro to Game Development & Operations on AWS
Intro to Game Development & Operations on AWSAmazon Web Services
 
Amazon API Gateway を活用したゲームサーバー構築
Amazon API Gateway を活用したゲームサーバー構築Amazon API Gateway を活用したゲームサーバー構築
Amazon API Gateway を活用したゲームサーバー構築崇之 清水
 
Amazon Lumberyard (박 선용) - Amazed by AWS
Amazon Lumberyard (박 선용) - Amazed by AWSAmazon Lumberyard (박 선용) - Amazed by AWS
Amazon Lumberyard (박 선용) - Amazed by AWSAmazon Web Services Korea
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...Amazon Web Services
 
201507131408448146
201507131408448146201507131408448146
201507131408448146Mason Mei
 
Docker clusters on AWS with Amazon ECS and Kubernetes
Docker clusters on AWS with Amazon ECS and KubernetesDocker clusters on AWS with Amazon ECS and Kubernetes
Docker clusters on AWS with Amazon ECS and KubernetesJulien SIMON
 
Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)Julien SIMON
 
Amazon EC2 Container Service: Deep Dive
Amazon EC2 Container Service: Deep DiveAmazon EC2 Container Service: Deep Dive
Amazon EC2 Container Service: Deep DiveAmazon Web Services
 
오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
오픈소스 게임 서버 엔진 스터디 캠프 - CloudBreadDae Kim
 
AWS re:Invent 2016 : announcement, technical demos and feedbacks
AWS re:Invent 2016 : announcement, technical demos and feedbacksAWS re:Invent 2016 : announcement, technical demos and feedbacks
AWS re:Invent 2016 : announcement, technical demos and feedbacksEmmanuel Quentin
 

What's hot (20)

Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
 
Redis on Kubernetes
Redis on KubernetesRedis on Kubernetes
Redis on Kubernetes
 
(GAM406) Glu Mobile: Real-time Analytics Processing og 10 MM+ Devices
(GAM406) Glu Mobile: Real-time Analytics Processing og 10 MM+ Devices(GAM406) Glu Mobile: Real-time Analytics Processing og 10 MM+ Devices
(GAM406) Glu Mobile: Real-time Analytics Processing og 10 MM+ Devices
 
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...
 
Amazon Lumberyard: end-to-end solutions for game developers
Amazon Lumberyard: end-to-end solutions for game developersAmazon Lumberyard: end-to-end solutions for game developers
Amazon Lumberyard: end-to-end solutions for game developers
 
Intro to Game Development & Operations on AWS
Intro to Game Development & Operations on AWSIntro to Game Development & Operations on AWS
Intro to Game Development & Operations on AWS
 
Amazon API Gateway を活用したゲームサーバー構築
Amazon API Gateway を活用したゲームサーバー構築Amazon API Gateway を活用したゲームサーバー構築
Amazon API Gateway を活用したゲームサーバー構築
 
AWS Architecture - GDC 2014
AWS Architecture - GDC 2014AWS Architecture - GDC 2014
AWS Architecture - GDC 2014
 
Amazon Lumberyard (박 선용) - Amazed by AWS
Amazon Lumberyard (박 선용) - Amazed by AWSAmazon Lumberyard (박 선용) - Amazed by AWS
Amazon Lumberyard (박 선용) - Amazed by AWS
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
201507131408448146
201507131408448146201507131408448146
201507131408448146
 
Docker clusters on AWS with Amazon ECS and Kubernetes
Docker clusters on AWS with Amazon ECS and KubernetesDocker clusters on AWS with Amazon ECS and Kubernetes
Docker clusters on AWS with Amazon ECS and Kubernetes
 
Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)
 
Deep dive into AWS fargate
Deep dive into AWS fargateDeep dive into AWS fargate
Deep dive into AWS fargate
 
Amazon ECS Deep Dive
Amazon ECS Deep DiveAmazon ECS Deep Dive
Amazon ECS Deep Dive
 
Amazon ECS
Amazon ECSAmazon ECS
Amazon ECS
 
Amazon EC2 Container Service: Deep Dive
Amazon EC2 Container Service: Deep DiveAmazon EC2 Container Service: Deep Dive
Amazon EC2 Container Service: Deep Dive
 
오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
 
AWS re:Invent 2016 : announcement, technical demos and feedbacks
AWS re:Invent 2016 : announcement, technical demos and feedbacksAWS re:Invent 2016 : announcement, technical demos and feedbacks
AWS re:Invent 2016 : announcement, technical demos and feedbacks
 
Deep Dive:EC2 Container Service
Deep Dive:EC2 Container ServiceDeep Dive:EC2 Container Service
Deep Dive:EC2 Container Service
 

Similar to GDC 2015 - Low-latency Multiplayer Gaming with AWS

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 GloballyJames Gwertzman
 
AWS re:Invent 2016| GAM303 | Develop Games Using Lumberyard and Leverage AWS ...
AWS re:Invent 2016| GAM303 | Develop Games Using Lumberyard and Leverage AWS ...AWS re:Invent 2016| GAM303 | Develop Games Using Lumberyard and Leverage AWS ...
AWS re:Invent 2016| GAM303 | Develop Games Using Lumberyard and Leverage AWS ...Amazon Web Services
 
게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
 
AWS Webcast - Database in the Cloud Series - Scalable Games and Analytics wit...
AWS Webcast - Database in the Cloud Series - Scalable Games and Analytics wit...AWS Webcast - Database in the Cloud Series - Scalable Games and Analytics wit...
AWS Webcast - Database in the Cloud Series - Scalable Games and Analytics wit...Amazon Web Services
 
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...Amazon Web Services
 
Twitch-ready 3D-Games with Amazon Lumberyard and GameLift
Twitch-ready 3D-Games with Amazon Lumberyard and GameLiftTwitch-ready 3D-Games with Amazon Lumberyard and GameLift
Twitch-ready 3D-Games with Amazon Lumberyard and GameLiftAmazon Web Services
 
Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Docker, Inc.
 
Breaking through silos - From multi to true crossplatform using the cloud
Breaking through silos - From multi to true crossplatform using the cloudBreaking through silos - From multi to true crossplatform using the cloud
Breaking through silos - From multi to true crossplatform using the cloudChristof Wegmann
 
GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...
GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...
GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...Amazon Web Services
 
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:capAmazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:capAmazon Web Services Japan
 
White rabbit game cloud deployment architecture
White rabbit game cloud deployment architectureWhite rabbit game cloud deployment architecture
White rabbit game cloud deployment architectureGhazanfar Latif (Gabe)
 
Gam301 Real-Time Game Analytics with Amazon Redshift, Amazon Kinesis, and Ama...
Gam301 Real-Time Game Analytics with Amazon Redshift, Amazon Kinesis, and Ama...Gam301 Real-Time Game Analytics with Amazon Redshift, Amazon Kinesis, and Ama...
Gam301 Real-Time Game Analytics with Amazon Redshift, Amazon Kinesis, and Ama...Amazon Web Services Korea
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesiFunFactory Inc.
 
Scalable Gaming with AWS - GDC 2014
Scalable Gaming with AWS - GDC 2014Scalable Gaming with AWS - GDC 2014
Scalable Gaming with AWS - GDC 2014Nate Wiger
 
GDC 2015 - Game Analytics with AWS Redshift, Kinesis, and the Mobile SDK
GDC 2015 - Game Analytics with AWS Redshift, Kinesis, and the Mobile SDKGDC 2015 - Game Analytics with AWS Redshift, Kinesis, and the Mobile SDK
GDC 2015 - Game Analytics with AWS Redshift, Kinesis, and the Mobile SDKNate Wiger
 
Building an ActionScript Game Server with over 15,000 Concurrent Connections
Building an ActionScript Game Server with over 15,000 Concurrent ConnectionsBuilding an ActionScript Game Server with over 15,000 Concurrent Connections
Building an ActionScript Game Server with over 15,000 Concurrent Connections Renaun Erickson
 
Cloud Gaming Architectures: From Social to Mobile to MMO
Cloud Gaming Architectures: From Social to Mobile to MMOCloud Gaming Architectures: From Social to Mobile to MMO
Cloud Gaming Architectures: From Social to Mobile to MMOAWS Germany
 
Amazon Services for Data Sync, Player Engagement & A/B Testing (MBL309) | AWS...
Amazon Services for Data Sync, Player Engagement & A/B Testing (MBL309) | AWS...Amazon Services for Data Sync, Player Engagement & A/B Testing (MBL309) | AWS...
Amazon Services for Data Sync, Player Engagement & A/B Testing (MBL309) | AWS...Amazon Web Services
 

Similar to GDC 2015 - Low-latency Multiplayer Gaming with AWS (20)

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
 
AWS re:Invent 2016| GAM303 | Develop Games Using Lumberyard and Leverage AWS ...
AWS re:Invent 2016| GAM303 | Develop Games Using Lumberyard and Leverage AWS ...AWS re:Invent 2016| GAM303 | Develop Games Using Lumberyard and Leverage AWS ...
AWS re:Invent 2016| GAM303 | Develop Games Using Lumberyard and Leverage AWS ...
 
게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
 
AWS Webcast - Database in the Cloud Series - Scalable Games and Analytics wit...
AWS Webcast - Database in the Cloud Series - Scalable Games and Analytics wit...AWS Webcast - Database in the Cloud Series - Scalable Games and Analytics wit...
AWS Webcast - Database in the Cloud Series - Scalable Games and Analytics wit...
 
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
(GAM301) Real-Time Game Analytics with Amazon Kinesis, Amazon Redshift, and A...
 
Twitch-ready 3D-Games with Amazon Lumberyard and GameLift
Twitch-ready 3D-Games with Amazon Lumberyard and GameLiftTwitch-ready 3D-Games with Amazon Lumberyard and GameLift
Twitch-ready 3D-Games with Amazon Lumberyard and GameLift
 
KGC 2013 AWS Keynote
KGC 2013 AWS KeynoteKGC 2013 AWS Keynote
KGC 2013 AWS Keynote
 
Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
 
Breaking through silos - From multi to true crossplatform using the cloud
Breaking through silos - From multi to true crossplatform using the cloudBreaking through silos - From multi to true crossplatform using the cloud
Breaking through silos - From multi to true crossplatform using the cloud
 
GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...
GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...
GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...
 
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:capAmazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
 
White rabbit game cloud deployment architecture
White rabbit game cloud deployment architectureWhite rabbit game cloud deployment architecture
White rabbit game cloud deployment architecture
 
Gam301 Real-Time Game Analytics with Amazon Redshift, Amazon Kinesis, and Ama...
Gam301 Real-Time Game Analytics with Amazon Redshift, Amazon Kinesis, and Ama...Gam301 Real-Time Game Analytics with Amazon Redshift, Amazon Kinesis, and Ama...
Gam301 Real-Time Game Analytics with Amazon Redshift, Amazon Kinesis, and Ama...
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
 
Scalable Gaming with AWS - GDC 2014
Scalable Gaming with AWS - GDC 2014Scalable Gaming with AWS - GDC 2014
Scalable Gaming with AWS - GDC 2014
 
Gaming in the cloud
Gaming in the cloudGaming in the cloud
Gaming in the cloud
 
GDC 2015 - Game Analytics with AWS Redshift, Kinesis, and the Mobile SDK
GDC 2015 - Game Analytics with AWS Redshift, Kinesis, and the Mobile SDKGDC 2015 - Game Analytics with AWS Redshift, Kinesis, and the Mobile SDK
GDC 2015 - Game Analytics with AWS Redshift, Kinesis, and the Mobile SDK
 
Building an ActionScript Game Server with over 15,000 Concurrent Connections
Building an ActionScript Game Server with over 15,000 Concurrent ConnectionsBuilding an ActionScript Game Server with over 15,000 Concurrent Connections
Building an ActionScript Game Server with over 15,000 Concurrent Connections
 
Cloud Gaming Architectures: From Social to Mobile to MMO
Cloud Gaming Architectures: From Social to Mobile to MMOCloud Gaming Architectures: From Social to Mobile to MMO
Cloud Gaming Architectures: From Social to Mobile to MMO
 
Amazon Services for Data Sync, Player Engagement & A/B Testing (MBL309) | AWS...
Amazon Services for Data Sync, Player Engagement & A/B Testing (MBL309) | AWS...Amazon Services for Data Sync, Player Engagement & A/B Testing (MBL309) | AWS...
Amazon Services for Data Sync, Player Engagement & A/B Testing (MBL309) | AWS...
 

Recently uploaded

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Recently uploaded (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

GDC 2015 - Low-latency Multiplayer Gaming with AWS

  • 1. 1 GDC 2015 – Amazon Developer Day Deploying a Low-Latency Multiplayer Game Globally Nate Wiger Principal, Gaming Solutions @nateware nateware@amazon.com James Gwertzman CEO, PlayFab @playfabnetwork http://playfab.com
  • 2. AWS Gaming Solutions [Game] Online Problems Continue; Features Disabled as [Game Studio] Works on Fixes “We are working hard to get everyone online as soon as possible,” [Game Studio] says. Days later, [Game Studio] leaving disconnected players stranded [Game] has a great online mode – if you can get online, that is “This is total bull**** I paid for a preorder and I can’t even connect WTF [Game Studio]??”
  • 4. AWS Gaming Solutions http://bit.ly/verizon-latency http://bit.ly/superdata-latency
  • 6. AWS Gaming Solutions 100+ms 100+ms 100+ms 100+ms
  • 7. AWS Gaming Solutions How To Be Awesome 1.  Game servers near players 2.  Everything else as HTTP APIs 3.  Data replication = bad 4.  Local caches = good 5.  Nobody really “plays everywhere”
  • 8. AWS Gaming Solutions Loosely Coupled Pods Tokyo Oregon Frankfurt Virginia
  • 9. AWS Gaming Solutions VPC Subnet VPC Subnet Game API Pods Availability Zone A Availability Zone B VPC Subnet VPC Subnet Auto Scaling group WEB VPC Subnet WEB JOBS Cognito SNS Mobile Push SES
  • 10. AWS Gaming Solutions Region ①  Login via HTTP API ②  Download Game Assets ③  Matchmaking to Game Server EC2 Game Flow EC2 EC2
  • 11. AWS Gaming Solutions Region ①  Login via HTTP API ②  Download Game Assets ③  Matchmaking to Game Server ④  Connect to Server ⑤  Hack Apart Your Friends ⑥  Game Over Game Flow EC2 EC2
  • 12. AWS Gaming Solutions Region ①  Login via HTTP API ②  Download Game Assets ③  Matchmaking to Game Server ④  Connect to Server ⑤  Hack Apart Your Friends ⑥  Game Over ⑦  Write via HTTP API Game Flow EC2 EC2
  • 13. AWS Gaming Solutions VPC Private Subnet VPC Public Subnet Game Server Pods Availability Zone A Availability Zone B VPC Public Subnet VPC Private Subnet GAME GAME GAME GAME GAME GAME
  • 14. AWS Gaming Solutions Make. Network. Faster. •  C3/C4 instance family (or R3 for more memory) •  In a VPC •  HVM AMI – not PV •  Enable Enhanced Networking (SR-IOV) http://bit.ly/ec2-enhanced-net •  Linux: Tweak Networking Stack http://bit.ly/linux-tuning
  • 15. AWS Gaming Solutions Enhanced Networking (SR-IOV) Before: Hypervisor After: Hardware
  • 16. AWS Gaming Solutions VPC Private Subnet VPC Private Subnet RabbitMQ + Elastic Load Balancing Availability Zone A Availability Zone B 10.1.0.13 10.2.0.16 TCP 5672 rabbitmq-node1 rabbitmq-node2 TCP 4369 & 25672
  • 17. AWS Gaming Solutions RabbitMQ + Elastic Load Balancing •  Clustering Tutorial https://www.rabbitmq.com/clustering.html •  Set Queue HA policy to "all" https://www.rabbitmq.com/ha.html •  Create Internal load balancer –  Listen Port: TCP 5672 •  VPC Security Group –  For load balancer: TCP 5672 –  Between EC2 nodes: TCP 4369 & 25672 •  Set up Client to Heartbeat
  • 19. AWS Gaming Solutions VPC Private Subnet VPC Public Subnet Redis Pub / Sub Availability Zone A Availability Zone B VPC Public Subnet VPC Private Subnet GAME GAME GAME GAME GAME GAME Auto Scaling group
  • 20. AWS Gaming Solutions VPC Private Subnet VPC Public Subnet CloudFormation + Chef Availability Zone A GAME GAME GAME Auto Scaling group
  • 22. AWS Gaming Solutions Unreal Engine with CloudFormation UnrealServer unreal_linux.template.json true my-bucket-name Unreal-123.zip sshkeyname 1.2.3.4/24 MyPass123
  • 26. AWS Gaming Solutions Where My Servers At? Tokyo Oregon Frankfurt Virginia ? ?
  • 27. AWS Gaming Solutions VPC Subnet Server Registration Availability Zone A Availability Zone B VPC Subnet Auto Scaling group WEB WEB Oregon Tokyo VPC Subnet JOBS
  • 28. AWS Gaming Solutions Server Registration & Scaling •  HTTPS POST /api/servers/register •  Include an HMAC (RFC 2104) •  Send Server Status –  Public IP –  # Players –  Game Modes •  Matchmaking Service –  Maintains server list –  Removes servers
  • 29. AWS Gaming Solutions VPC Private Subnet VPC Public Subnet Game Server Logs Availability Zone A S3 Bucket Amazon CloudWatch Logs GAME GAME GAME
  • 30. AWS Gaming Solutions VPC Private Subnet VPC Public Subnet Game Server Logs Availability Zone A Amazon
 Kinesis S3 Bucket Amazon Redshift GAME GAME GAME
  • 32. AWS Gaming Solutions Mini Pods Everywhere China Oregon Frankfurt Virginia China Leaderboard
  • 33. AWS Gaming Solutions PlayFab: Loadout Architecture
  • 34. AWS Gaming Solutions What is PlayFab? PlayFab is a complete live game operations platform. Focus on the fun – we’ll do the boring bits. + Tools for operating & monetizing live games Complete set of cloud-based backend services Eco-system of pre-integrated third-party services .. and more +
  • 36. AWS Gaming Solutions Some Loadout Stats •  Launched 1/31/14 •  Over 1 billion API Calls •  At Peak (Feb 2014): –  300k DAU –  120 fixed game servers –  110 EC2 game servers
  • 37. AWS Gaming Solutions PlayFab Core Architecture Tenants •  No scheduled downtime. •  Automatic scaling for load. •  Backend changes should be invisible to developers. •  Use buffering to smooth over spikes or failures.
  • 38. AWS Gaming Solutions AWS cloud: PlayFab Web Services US EU Hardware Game Servers Hardware Game Servers Game Client Amazon Route 53 (3.playfabapi.com) Amazon EC2 (API handling) Matchmaker Instance Instance Game Server Monitor DynamoDB Amazon RDS Amazon S3 Elastic Load Balancing Amazon Redshift Reports service Instance Logs ArchitectureOverview Matchmaker (Secondary) Instance US EU SA AUS Amazon EC2 Game Servers Amazon EC2 Game Servers Amazon EC2 Game Servers Amazon EC2 Game Servers
  • 39. AWS Gaming Solutions List of PlayFab Web APIs Client Server Authentication Title-Wide Data Management Shared Group Data Authentication AddUsernamePassword GetCatalogItems AddSharedGroupMembers AuthenticateSessionTicket LoginWithAndroidDeviceID GetStoreItems CreateSharedGroup Account Management LoginWithFacebook GetTitleData GetSharedGroupData GetUserAccountInfo LoginWithGameCenter GetTitleNews RemoveSharedGroupMembers SendPushNotification LoginWithGoogleAccount AddUserVirtualCurrency UpdateSharedGroupData Player Data Management LoginWithIOSDeviceID Player Item Management Server-Side Game Logic GetLeaderboard LoginWithPlayFab ConsumeItem GetLogicServerUrl GetLeaderboardAroundUser LoginWithSteam GetUserInventory GetUserData RegisterPlayFabUser RedeemCoupon GetUserInternalData SendAccountRecoveryEmail SubtractUserVirtualCurrency GetUserReadOnlyData Account Management UnlockContainerItem GetUserStatistics GetAccountInfo StartPurchase UpdateUserData GetPlayFabIDsFromFacebookIDs PayForPurchase UpdateUserInternalData GetUserCombinedInfo ConfirmPurchase UpdateUserReadOnlyData LinkFacebookAccount PurchaseItem UpdateUserStatistics LinkGameCenterAccount Friend List Management Title-Wide Data Management LinkSteamAccount AddFriend GetCatalogItems UnlinkFacebookAccount GetFriendsList GetTitleData UnlinkGameCenterAccount RemoveFriend SetTitleData UnlinkSteamAccount SetFriendTags Player Item Management UpdateEmailAddress IOS-Specific APIs AddUserVirtualCurrency UpdatePassword RegisterForIOSPushNotification GetUserInventory UpdateUserTitleDisplayName ValidateIOSReceipt GrantItemsToUsers Player Data Management Matchmaking APIs SubtractUserVirtualCurrency GetFriendLeaderboard GetCurrentGames Matchmaking APIs GetLeaderboard GetGameServerRegions NotifyMatchmakerPlayerLeft GetLeaderboardAroundCurrentUser Matchmake RedeemMatchmakerTicket GetUserData StartGame Steam-Specific APIs GetUserReadOnlyData Android-Specific APIs AwardSteamAchievement GetUserStatistics AndroidDevicePushNotificationRegistration UpdateUserData ValidateGooglePlayPurchase UpdateUserStatistics Analytics
  • 40. AWS Gaming Solutions Example of Web API Call API Request: Response from Web Services:
  • 41. AWS Gaming Solutions ELB Logging for Title Tracking Game Client Amazon Route 53 (3.playfabapi.com) API Request: Elastic Load Balancing Logs Amazon Redshift Amazon S3 
 bucket Reports service Logs Instance Logs include title-specific endpoint for analytics AWS wildcard DNS (*.playfabapi.com) Log event:
  • 42. AWS Gaming Solutions Loadout API Usage Report (Oct 2014) API NAME TOTAL CALLS AVERAGE BACKEND TIME (S) AVERAGE RESPONSE TIME (MS) AVERAGE REQUEST TIME (MS) TOTAL REQUEST TIME (M) AVERAGE RECIEVED (BYTES) AVERAGE SENT (BYTES) TOTAL ERRORS adminapi_userinfo 93,081,685 0.03 0.04 0.04 59.83 0 452 1979 gameserver_usercustomdatareadonly 1,582,348 0.06 0.04 0.04 1.06 42 902 290 matchmaker_userinfo 1,138,842 0.20 0.04 0.04 0.81 0 10046 319 matchmaker_playerjoined 1,138,247 0.01 0.04 0.04 0.79 64 2 93 matchmaker_playerleft 1,136,797 0.01 0.04 0.04 0.80 64 2 400 matchmaker_authuser 736,607 0.01 0.03 0.04 0.52 0 48 107 gameserver_usercustomdata 297,735 0.19 0.04 0.04 0.20 0 4080 0 gameserver_usercustomdatainternal 297,469 0.08 0.04 0.04 0.20 0 237 2
  • 43. AWS Gaming Solutions Instance Making a Singleton Highly Available Health Check Auto Scaling group Auto Scaling service Instance Matchmaker (Primary) Instance Amazon Route 53) Elastic Load Balancing Matchmaker (Secondary) 1. Auto Scaling is set to keep two instances up. 2. Elastic Beanstalk Health Check terminates bad instance. 3. Amazon Route 53 fails over all traffic to secondary server. 4. Auto Scaling detects failure and starts new instance.
  • 44. AWS Gaming Solutions Monitoring Service Health Amazon EC2 (API handling) Elastic Load Balancing CloudWatch Health Check Email Alerts On-call Engineer Mobile Alerts
  • 45. AWS Gaming Solutions Handling Spikes Without Losing Data Amazon EC2 API Server Server SSD Amazon Redshift Local Reports service Local event logs Instance Events: logins and purchases Reports service Logs Customer’s game management dashboard Analytics Server Logs RabbitMQ message queue Logs Instance Logstash service Logstash Instance ElasticSearch Instance Instance
  • 46. AWS Gaming Solutions Storage in DynamoDB, Amazon RDS, Amazon S3, Amazon Redshift DynamoDB Amazon RDS Amazon S3 Player data: •  Accounts •  Profile •  Inventory •  Save data •  Player stats •  Player currency values •  Auditing •  Log files •  Game replays Amazon Redshift •  Analytics data
  • 47. AWS Gaming Solutions Managing Tables in DynamoDB Amazon DynamoDB •  Player data: accounts, profile, inventory, save data User: UserID: Hash TitleID: range key -  DisplayName -  Linked accounts -  … Custom user data: UserID: Hash TitleID: range key -  Key/value 1 -  Key/value 2 -  … Inventory: UserID: Hash ItemID: range key -  titleID -  Catalog Item -  … …
  • 48. AWS Gaming Solutions Physical Deployment AZ 1 AZ 2 PlayFab Web Services PlayFab Web Services N. California AZ 1 AZ 2 PlayFab Web Services PlayFab Web Services Oregon AZ 1 PlayFab Web Services Beijing •  Original deployment: us-west-1 •  Expanded to us-west-2 in July •  Coming soon: cn-north-1 Amazon EC2 Game Server Singapore Game Client Instance
  • 49. AWS Gaming Solutions Managing Cross-Region Data Player accounts are shared across all regions: •  Cross-regional wrapper for user.get sets order of databases and regions to check •  user.get then checks for player account data •  High availability, transparent to customers and players // Returns the first matching player record, searching DynamoDB and SimpleDB // in both regions in the specified order. // Updates the player record in the store and region from which it was loaded. // Creates a player record in the default store and region.
  • 51. AWS Gaming Solutions AWS cloud: PlayFab Web Services US EU Hardware Game Servers Hardware Game ServersGame Client Amazon Route 53 (3.playfabapi.com) Amazon EC2 (API handling) Matchmaker Instance Instance Game Server Monitor DynamoDB Amazon RDS Amazon S3 Elastic Load Balancing Amazon Redshift Reports service Instance Logs ArchitectureOverview Matchmaker (Secondary) Instance US EU SA AUS Amazon EC2 Game Servers Amazon EC2 Game Servers Amazon EC2 Game Servers Amazon EC2 Game Servers
  • 52. 52 Nate Wiger Principal, Gaming Solutions @nateware nateware@amazon.com