This presentation details our experience of Gaming and AWS. It also looks at building a back-end for all platforms including the core, scaling it out, autoscaling, caching, analytics and massive scale.
Philip Fitzsimons, Solutions Architect - Gaming
1. How to Power the Back-End in all platforms
Philip Fitzsimons (fitz), Solutions Architect - Gaming
2. 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
5. 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
6. 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
7. 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
8. 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
9. 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 Servers
Auto Scaling Group
HTTP/JSON Servers
SQS for jobs
and alerts
Auto Scaling Group
Job 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 Group
Job Workers
Destination:
Massive Scale
11. 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
12. 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