Mobile Game Architectures on AWS (MBL201) | AWS re:Invent 2013

Post on 26-Jan-2015

107 views 0 download

description

The gaming industry is undergoing massive changes, and AWS offers unique capabilities that game developers can use to succeed. In this session, we cover cloud gaming architectural patterns you can use to create highly available and scalable online games. We discuss games-as-APIs, database design considerations, decoupled architectures, and the best instance types for mobile, social, and AAA online games. By the end of this session, you’ll understand the different architecture patterns for the major classes of online games, as well as understand which AWS technologies will help you meet the unique challenges of each one.

Transcript of Mobile Game Architectures on AWS (MBL201) | AWS re:Invent 2013

© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.

MBL201 Mobile Game Architectures

Nate Wiger, Principal Solutions Architect

November 13, 2013

What's In It For Me? • Mobile Game Trends • Core Game Backend • Scaling Out • Push Messages • Analytics

A Few Gaming Customers

Mobile Game Landscape • Free To Play • In-App Purchases • Long-Tail • Cross-Platform • Go Global • User Retention = Revenue

Projected Mobile App Revenue

0100002000030000400005000060000700008000090000

2011 2012 2013 2014 2015 2016 2017

AdsIAPPaid

Source: Gartner

Mobile Online Features • Social Login • Friends • Leaderboards • Push Messages • Content Updates • Analytics

Traditional: Rigid AWS: Elastic

Servers

Demand

Capacity

Excess Capacity Wasted $$

Demand

Unmet Demand Upset Players

Missed Revenue

Pay As You Scale

Pay As You Scale

9 Regions

25 Availability Zones

Continuous Expansion

Go Global In Minutes

Mobile Backend Technology • HTTP Based • External Social API's • Save State • Database • Static Data Store • Mobile Push • Analytics

Get It Up

Region

• Choose Region • 9 Globally

• One Availability Zone • Ok for Development • No Redundancy

• EC2 Instance • Linux or Windows • App Server Code

• Elastic Load Balancer • DNS Entry Point

• Database • RDS or DIY Region

ELB

Social API's

Scale It Out

ELB

S3

• Add Another AZ • High Availability • Load Balancing

• Secondary Database • RDS Multi-AZ • Or DIY

• S3 for Game Data • Assets • UGC • Analytics

Region

Big picture slide

Scale It Way Out

ELB

S3

Region

Scale It Way Out

ELB

S3

• Auto Scaling Group • Capacity on Demand • Respond to Users

EC2 EC2 EC2

Region

Scale It Way Out

ELB

S3

• Auto Scaling Group • Capacity on Demand • Respond to Users

• ElastiCache • Memcache • Redis • Or DIY

EC2 EC2 EC2

Region

Scale It Way Out CloudFront CDN

ELB

S3

EC2 EC2 EC2

Region

• Auto Scaling Group • Capacity on Demand • Respond to Users

• ElastiCache • Memcache • Redis • Or DIY

• CloudFront CDN • DLC, Assets • PUT / POST • Game Saves • UGC

40+ CloudFront POPs

Europe Amsterdam (2) Dublin Frankfurt (2) London (2) Madrid Milan Paris (2) Stockholm

Asia Chennai Hong Kong (2) Mumbai Osaka Singapore (2) Seoul Sydney Tokyo (2)

South America Sao Paulo

North America Ashburn, VA (2) Dallas, TX (2) Hayward, CA Jacksonville, FL Los Angeles, CA (2) Miami, FL Newark, NJ New York, NY (3) Palo Alto, CA Seattle, WA San Jose, CA South Bend, IN St. Louis, MO

Big picture slide

Big picture slide

Elastic Beanstalk • Managed Container • Git Push or Zip Upload • ELB, EC2, RDS • Web Dashboard • URL Swap Deploys • Same Performance • So Yeah, Use It

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

Region

Writing Is Painful

Availability Zone A

Availability Zone B

Region

S3

EC2

• Games are Write Heavy • Caching of Limited Use • Key Value Key Value • Binary Data • Database = Bottleneck

ELB

EC2

CloudFront CDN

Region

DynamoDB

Availability Zone A

Availability Zone B

Region

S3

• NoSQL Data Store • Fully-Managed • Highly Available • PUT/GET Keys • Provisioned Throughput • Secondary Indexes EC2 EC2

ELB

CloudFront CDN

Messages and Queues

ELB

S3

• Simple Notification Service • HTTP • SMS • Mobile Push

EC2 EC2 EC2

Region

Messages and Queues

ELB

• Simple Notification Service • HTTP • SMS • Mobile Push

• CloudWatch • Monitoring • Alerts

EC2 EC2 EC2

Region

EC2

PUB

Messages and Queues

ELB

EC2 EC2 EC2

Region

EC2 EC2

• Simple Notification Service • HTTP • SMS • Mobile Push

• CloudWatch • Monitoring • Alerts

• SQS • Background Tasks • Avatar Resizing • Score Processing

Messages and Queues

ELB

EC2 EC2 EC2

Region

EC2 EC2

• Simple Notification Service • HTTP • SMS • Mobile Push

• CloudWatch • Monitoring • Alerts

• SQS • Background Tasks • Avatar Resizing • Score Processing

Messages and Queues

ELB

EC2 EC2 EC2

Region

EC2 EC2

• Simple Notification Service • HTTP • SMS • Mobile Push

• CloudWatch • Monitoring • Alerts

• SQS • Background Tasks • Avatar Resizing • Score Processing

PUB

Big picture slide

ANALYTICS!

Off The Shelf Analytics • Easy To Integrate • Pre-Baked Reports • Rate Limits • Retention Windows • Data Lock-In

Analytics on AWS

Availability Zone A

Availability Zone B

Region

S3

EC2

• Elastic MapReduce • Managed Hadoop • Parse Logs • Data Cleanup • Aggregation

EC2

Region

CloudFront CDN

ELB

Analytics on AWS

Availability Zone A

Availability Zone B

Region

S3

EC2

• Elastic MapReduce • Managed Hadoop • Parse Logs • Data Cleanup • Aggregation

• Redshift

• Data Warehouse • Column-Oriented • SQL Compatible

EC2

Region

CloudFront CDN

ELB

• Write File on Device • Periodically Upload to S3 • Nightly Process into Redshift • Point GUI Tool to Redshift

Redshift for Game Analytics

2013-10-24,107,2.53,2134,932 2013-10-29,107,2.73,2211,817 2013-11-02,107,1.95,1833,752 2013-11-04,107,1.44,1121,635 2013-11-05,107,1.76,1411,1032

• Also Collect Server Logs • Periodically Upload to S3 • Optional Cleanup with EMR • Stick Into Redshift

Redshift for Game Analytics

2013-10-24,107,2.53,2134,932 2013-10-29,107,2.73,2211,817 2013-11-02,107,1.95,1833,752 2013-11-04,107,1.44,1121,635 2013-11-05,107,1.76,1411,1032

EC2

Wrap It Up Already • Free To Play is Here To Stay • Start Small, Scale Out • Elastic Beanstalk • DynamoDB • S3 with CloudFront • SNS Mobile Push • SQS + ElastiCache to Scale • Focus on the Game

A Few Gaming Sessions • MBL303 – High-Performance Gaming Ops • MBL304 – Red 5's Firefall MMO • MBL305 – Killzone: Shadow Fall • MBL307 – Parse on AWS • MBL308 – SNS Mobile Push

Other Relevant Sessions • DAT101 – Production DynamoDB in an Hour • DAT204 – SmugMug: MySQL to DynamoDB • DAT307 – ElastiCache Deep Dive • DMG204 – Elastic Beanstalk 0-60 • SVC206 – Using SQS to Scale • DAT103 – Intro to Redshift • BDT203 – Analytics with DynamoDB + EMR

Please give us your feedback on this presentation

As a thank you, we will select prize winners daily for completed surveys!

MBL201