aws "game on" event - how to ower the back-end in all platforms - 19 june13
Post on 01-Jun-2015
267 Views
Preview:
DESCRIPTION
TRANSCRIPT
How to Power the Back-End in all platforms
Philip Fitzsimons (fitz), Solutions Architect - Gaming
Our experience of Gaming and AWS
Building a back-end for all platforms
The core
Scaling it out
Autoscaling and caching
Analytics
Massive Scale
Deployment options
Connect with us
Some game companies
Common Backend Design Patterns
First Stop: Core Backend
Region
Availability
Zone A
ELB
• Choose Region • 9 Globally
• One Availability Zone • Ok for Development • No redundancy
• EC2 Instance • Linux, Windows • App server code
• Elastic Load Balancer • DNS for App
• MySQL Database • RDS or EC2 yourself
Next Stop: Scale It Out
ELB
Availability
Zone A Availability
Zone B
Region
S3
• Add Another AZ • Redundancy (HA) • Load Balancing
• Add Slave Database • RDS Multi-AZ • Or EC2 yourself
• S3 for Game Data • Patches • UGC
Next Stop: Auto Scale + Caching
CloudFront CDN
ELB
Availability
Zone A Availability
Zone B
Region
S3
• Auto Scaling Group • Capacity on Demand • Respond to Users • Recover from Failure
• Memcache • ElastiCache • Or EC2 yourself
• CloudFront CDN • 40 POPs Globally • Edge Cache • DLC, Game Assets
EC2 EC2
Next Stop: Analytics
CloudFront CDN
ELB
Availability
Zone A Availability
Zone B
Region
S3
• Elastic MapReduce • Managed Hadoop • Parse Logs • Parallel Aggregation
• Redshift • Data Warehouse • Column-Oriented • SQL Compatible
EC2 EC2
Region
Security Group
Event-Driven Servers
Elastic Load
Balancing
Security Group
NoSQL EC2 Instances
S3 buckets for
binary data
Server
PUT
Client
GET
CloudFront (optional)
Security Group
ElastiCache Cluster
Auto Scaling Group
HTTP/JSON ServersAuto Scaling Group
HTTP/JSON Servers
SQS for jobs
and alerts
Auto Scaling GroupJob Workers
Security Group
Event-Driven Servers
Writes
Reads
Start Job
Reads
Writes
Job Results
Read Replica Read Replica
Master DB DB Slave
Security Group
NoSQL EC2 Instances
Security Group
ElastiCache Cluster
Stateful
TCP socket
HTTP
Spawn
Async
Job
Send
Message
to Client
Availability Zone BAvailability Zone A
Auto Scaling GroupJob Workers
Destination:
Massive Scale
Deployment options
Elastic Beanstalk
AWS Elastic Beanstalk is an even
easier way for you to quickly deploy and
manage applications in the AWS cloud.
You simply upload your application, and
Elastic Beanstalk automatically handles
the deployment details of capacity
provisioning, load balancing, auto-
scaling, and application health
monitoring
Different Deployment Methods Available
CloudFormation
You can use AWS CloudFormation’s to
create your own templates to describe
the AWS resources, and any associated
dependencies or runtime parameters,
required to run your application.
Once deployed, you can modify and
update the AWS resources in a
controlled and predictable way allowing
you to version control your AWS
infrastructure in the same way as you
version control your software.
Do it yourself
With full API support, you can control
manage and the AWS environment
through scripting, or the console. You
have fine grained control over the
environment.
Alternatively there are a number of third
party tools such as Chef or Puppet to
help manage and build the environment
Game On
Know the audience for our genre
Chose the right platform for your audience
Chose the right Multiplayer for your audience
Have data gathering in place before you release
Create a polished game before release
Understand
your
players
Focus
On
The game
Proven with multiple platforms & genres
Scalable
Reduce the risk & cost of failure
Agility and speed to market
Game On
Understand
your
players
Focus
On
The game
Thank You!
Building
back-ends
For all platforms
Deploy your game and
Evolve with
Configuration management
top related