In this session, AWS shares best practices for mobile, console, and MMO games that can scale from 1,000 to 1,000,000 users. See how to create a game backend using Amazon EC2 and AWS Elastic Beanstalk. Learn about database scaling challenges, and how to use Amazon DynamoDB and Amazon ElastiCache to address them. And, hear how to deliver game assets efficiently using Amazon S3 and Amazon CloudFront. Then, hear from Roope Kangas, Lead Server Developer and co-founder at Grand Cru, about their journey launching and cost-optimizing Supernauts on AWS. Grand Cru used load testing to validate their system before launch, enabling them to reach 1 million users in 6 days. Then, after launch, the team optimized their architecture based on system metrics to cut their AWS costs by more than half.
7. ELB
•Choose region
•>=2 AvailabilityZones
•Amazon EC2 for app
•Elastic Load Balancing
•Amazon RDS database
•Multi-AZ
Region
8. ELB
•Amazon S3 for game data
•Assets
•UGC
•Analytics
Region
9. ELB
•Amazon S3 for game data
•Assets
•UGC
•Analytics
•... with CloudFront!
Region
CloudFront
CDN
10. •Amazon S3 for game data
•Assets
•UGC
•Analytics
•... with CloudFront!
•Auto Scaling Group
•Capacity on demand
•Respond to users
•Automatic healing
ELB
Region
CloudFront
CDN
11. • Amazon S3 for game data
• Assets
• UGC
• Analytics
• ... with CloudFront!
• Auto Scaling Group
• Capacity on demand
• Respond to users
• Automatic healing
• Amazon ElastiCache
• Memcached
• Redis
ELB
Region
CloudFront
CDN
12. •Games are write heavy
•Caching of limited use
•Key value key value
•Binary structures
•Database = bottleneck
ELB
Region
CloudFront
CDN
18. SOV204
Scaling Up to Your First 10 Million Users
SDD407
Amazon DynamoDB: Data Modeling and Scaling Best Practices
GAM302
EA's Real-World Hurdles with Millions of Players in theSimpsons: Tapped Out
19. Region
•API backend app
•Core session
•Matchmaking
•S3+CloudFront
•DLC, assets
•Game saves
•UGC
•Public server tier
•Direct client socket
•Scale on players
20. ①Login via API
②Request matchmaking
③Get game server IP
Region
21. ①Login via API
②Request matchmaking
③Get game server IP
④Connect to server
⑤Pull down assets
⑥Other players join
Region
40. 0 20 40 60 80
0 5000 10000 15000 20000 25000 30000
Engine Ping
Minutes
Milliseconds
ccu
95th
max
median
min
0 20 40 60 80
0 5000 10000 15000 20000 25000 30000
Join OK
Minutes
Milliseconds
ccu
95th
max
median
min
0 20 40 60 80
0 5000 10000 15000 20000 25000 30000
Spawn OK
Minutes
Milliseconds
ccu
95th
max
median
min
0 20 40 60 80
0 5000 10000 15000 20000 25000 30000
Turf API
Minutes
Milliseconds
ccu
95th
max
median
min
bad
41. 0 20 40 60 80 100
0 20000 40000 60000 80000
Engine Ping
Minutes
Milliseconds
ccu
95th
max
median
min
0 20 40 60 80 100
0 20000 40000 60000 80000
Join OK
Minutes
Milliseconds
ccu
95th
max
median
min
0 20 40 60 80 100
0 20000 40000 60000 80000
Spawn OK
Minutes
Milliseconds
ccu
95th
max
median
min
0 20 40 60 80 100
0 20000 40000 60000 80000
Turf API
Minutes
Milliseconds
ccu
95th
max
median
min
Better!
42.
43.
44.
45.
46.
47.
48.
49. GAM303
Beyond Game Servers: Load Testing, Rendering, and Cloud Gaming
WEB306
UI, Load, and Performance Testing Your Websites on AWS
GAM301
Real-Time Game Analytics with Kinesis, Redshift, and DynamoDB
GAM304
How Riot Games re:Inventedtheir AWS Model
ARC302
Running Lean Architectures: How to Optimize for Cost Efficiency