• Share
  • Email
  • Embed
  • Like
  • Private Content
AWS Architecture - GDC 2014
 

AWS Architecture - GDC 2014

on

  • 446 views

Mobile, AAA, and MMO game companies alike are leveraging AWS to build cost-effective, scalable online games. Learn how game studios are using AWS services such as Elastic Beanstalk, DynamoDB, Amazon ...

Mobile, AAA, and MMO game companies alike are leveraging AWS to build cost-effective, scalable online games. Learn how game studios are using AWS services such as Elastic Beanstalk, DynamoDB, Amazon S3, CloudFront, and ElastiCache to build online games that can scale from 1,000 to 1,000,000 users, while paying only for what they use. Finally, we'll share some thoughts about the future of cloud gaming based on trends we're seeing worldwide.

Statistics

Views

Total Views
446
Views on SlideShare
441
Embed Views
5

Actions

Likes
3
Downloads
13
Comments
0

1 Embed 5

http://www.slideee.com 5

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    AWS Architecture - GDC 2014 AWS Architecture - GDC 2014 Presentation Transcript

    • AWS Gaming Solutions | GDC 2014 Scalable Gaming with AWS Or, How to go from 1,000 to 1,000,000 users without starting over Nate Wiger @nateware | Principal Gaming Solutions Architect
    • AWS Gaming Solutions | GDC 2014 What's In It For Me? • Why AWS for Games? • Core Game Backend • Scaling Data with DynamoDB • Low-Latency Multiplayer with C3 • Mobile Push Notifications
    • AWS Gaming Solutions | GDC 2014 Gratuitous Logo Slide
    • AWS Gaming Solutions | GDC 2014 Traditional: Rigid AWS: Elastic Servers Demand Capacity Excess Capacity Wasted $$ Demand Unmet Demand Upset Players Missed Revenue Pay As You Scale
    • AWS Gaming Solutions | GDC 2014 Pay As You Scale
    • AWS Gaming Solutions | GDC 2014 10 Regions 51 CloudFront POPs Continuous Expansion Global Is Good
    • AWS Gaming Solutions | GDC 2014
    • AWS Gaming Solutions | GDC 2014 Game Backend Concepts • Think in terms of API's • Get friends, leaderboard • HTTP+JSON • Binary asset data • Mobile push • Multiplayer servers
    • AWS Gaming Solutions | GDC 2014 Core Game Backend ELB S3 • Choose Region • Elastic Load Balancer • Two Availability Zones • EC2 for App • RDS Database • Multi-AZ • S3 for Game Data • Assets • UGC • Analytics Region
    • AWS Gaming Solutions | GDC 2014 Scale It Way Out ELB S3 • Auto Scaling Group • Capacity on Demand • Respond to Users EC2EC2EC2 Region
    • AWS Gaming Solutions | GDC 2014 Scale It Way Out ELB S3 • Auto Scaling Group • Capacity on Demand • Respond to Users • ElastiCache • Memcache • Redis EC2EC2EC2 Region
    • AWS Gaming Solutions | GDC 2014 Scale It 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 • UGC
    • AWS Gaming Solutions | GDC 2014 Big picture slide
    • AWS Gaming Solutions | GDC 2014 Elastic Beanstalk • Managed Container • Git Push or Zip Upload • ELB, EC2, RDS • Web Dashboard • Same Performance • So Yeah, Use It
    • AWS Gaming Solutions | GDC 2014 Hill Of Beans ELB S3 • Beanstalk Manages • ELB • EC2 • Auto Scaling • Monitoring • RDS • Add Other Services • S3 • CloudFront • ElastiCache • SNS EC2 Elastic Beanstalk Container EC2 CloudFront CDN
    • AWS Gaming Solutions | GDC 2014
    • AWS Gaming Solutions | GDC 2014 More CLI bell cd MyGameAPI eb init eb start vi app.rb require 'sinatra' get '/hello.json' do {message: "Hello World!"} End git commit –m "app updates" app.rb git aws.push • Initialize everything • Write code • Commit to git • Push to Beanstalk • Coffee / Beer • Repeat
    • AWS Gaming Solutions | GDC 2014
    • AWS Gaming Solutions | GDC 2014 Region Writing Is Painful Availability Zone A Availability Zone B S3 EC2 • Games are Write Heavy • Caching of Limited Use • Key Value Key Value • Binary Structures • Database = Bottleneck ELB EC2 CloudFront CDN
    • AWS Gaming Solutions | GDC 2014 Sharding (Not Fun) Availability Zone A C2
    • AWS Gaming Solutions | GDC 2014 DynamoDB Availability Zone A Availability Zone B S3 • NoSQL Data Store • Fully-Managed • Highly Available • PUT/GET Keys • Secondary Indexes • Provisioned Throughput • Auto Scaling EC2 EC2 ELB CloudFront CDN Elastic Beanstalk Container
    • AWS Gaming Solutions | GDC 2014 Leaderboard in DynamoDB • Hash key = Primary key • Range key = Sub key • Others attributes are unstructured, unindexed • So… How to sort based on Top Score?
    • AWS Gaming Solutions | GDC 2014 Leaderboard with Secondary Indexes • Create a secondary index! • Set hash key to Game Level • Set range key to Top Score • Can now query by Level, Sorted by Top Score • Handles any (sane) gaming use case
    • AWS Gaming Solutions | GDC 2014 Python Leaderboard table = Table('scores', schema=[ HashKey('user'), RangeKey('level') ], throughput={ 'read': 5, 'write': 15 }, global_indexes=[ GlobalAllIndex('highscore', parts=[ HashKey('level'), RangeKey('score', data_type=NUMBER) ], throughput={ 'read': 5, 'write': 15 } ) ]) new_score = Item(table, data={ 'user': user, 'level': level, 'score': score }) new_score.save() topscores = table.query(index='highscore') for ts in topscores: print(ts['user'], ts['score'])
    • AWS Gaming Solutions | GDC 2014 Big picture slide
    • AWS Gaming Solutions | GDC 2014 G2 Instance • NVIDIA Kepler GPU • Game Streaming • Rendering Assets • Build Servers • AppStream!
    • AWS Gaming Solutions | GDC 2014 C3 Instance • High packets per second • Very low latency, jitter • Intel Ivy Bridge CPU • SSD's • Built for games • 15 cents / hour
    • AWS Gaming Solutions | GDC 2014 Enhanced Networking (SR-IOV) Before: Hypervisor After: Hardware
    • AWS Gaming Solutions | GDC 2014 Multiplayer Game Servers EC2EC2 EC2 Region • Beanstalk App • Core Session • Matchmaking • Public Server Tier • Direct Client Socket • Scale on Players • CloudFront CDN • DLC, Assets • Game Saves • UGC EC2
    • AWS Gaming Solutions | GDC 2014 Multiplayer Game Servers ① Login via Beanstalk ② Request Matchmaking ③ Get Game Server IP EC2EC2 EC2 Region EC2
    • AWS Gaming Solutions | GDC 2014 Multiplayer Game Servers ① Login via Beanstalk ② Request Matchmaking ③ Get Game Server IP ④ Connect to Server ⑤ Pull Down Assets ⑥ Other Players Join EC2EC2 EC2 Region EC2
    • AWS Gaming Solutions | GDC 2014 Multiplayer Game Servers ① Login via Beanstalk ② Request Matchmaking ③ Get Game Server IP ④ Connect to Server ⑤ Pull Down Assets ⑥ Other Players Join ⑦ Game Ends ⑧ Update Stats EC2EC2 EC2 Region EC2
    • AWS Gaming Solutions | GDC 2014 Multi-Region Game Servers E2 Region EC2 Region
    • AWS Gaming Solutions | GDC 2014 Big picture slide
    • AWS Gaming Solutions | GDC 2014 Messages and Queues ELB S3 • Simple Notification Service • HTTP • SMS • Mobile Push EC2EC2EC2 Region
    • AWS Gaming Solutions | GDC 2014 Messages and Queues ELB • Simple Notification Service • HTTP • SMS • Mobile Push • CloudWatch • Monitoring • Alerts EC2EC2EC2 Region EC2 PUB
    • AWS Gaming Solutions | GDC 2014 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 | GDC 2014 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 | GDC 2014 Messages and Queues ELB EC2EC2EC2 Region EC2EC2 • Simple Notification Service • HTTP • SMS • Mobile Push • CloudWatch • Monitoring • Alerts • SQS • Background Tasks • Avatar Resizing • Score Processing PUB
    • AWS Gaming Solutions | GDC 2014 Wrap It Up Already • Start Simple With Beanstalk • Go Directly to DynamoDB, Do Not Pass Go • CloudFront + S3 for Download and Upload • Add Multiplayer - Hybrid • Use the EC2 C3 Instance • SQS to Decouple and Scale
    • AWS Gaming Solutions | GDC 2014 Cheers – Nate Wiger @nateware