

# Asynchronous Online Gaming
<a name="asynchronous-online-gaming"></a>

Publication date: **March 24, 2021 ([Diagram history](#async-history))**

This architecture is intended for mobile and online games. These workloads are a natural fit for running on AWS due to unexpected traffic patterns and highly demanding request rates. With AWS, you can start small and scale up your architecture in response to your players. Use managed services for popular caching and database technologies to deliver the best experience for your game.

## Asynchronous Online Gaming diagram
<a name="async-diagram"></a>

![Reference architecture diagram showing a highly available, scalable architecture for asynchronous online games by using Amazon Aurora, Amazon ElastiCache, DynamoDB, and Amazon EC2 Auto Scaling.](http://docs.aws.amazon.com/reference-architecture-diagrams/latest/asynchronous-online-gaming/images/asynchronous-online-gaming.png)


The following steps describe the architecture:

1. Use Amazon Route 53 to make sure your players can always discover your service endpoints. Use the built-in routing policies to route users based on latency or geography.

1. Route users to your backend by using Elastic Load Balancing, which scales automatically for incoming traffic. Keep player data secure in transit through HTTPS and by using the SSL termination capabilities of the load balancer.

1. Launch your web servers running on [Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/) in an Auto Scaling group that spans multiple Availability Zones.

1. If you separate your app tier from your web tier, use an internal load balancer. This load balancer provides additional security by residing in a private subnet and making sure no external traffic overwhelms your app tier.

1. Use [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/) for Redis to reduce the cost and operational overhead of running a highly available, scalable Redis cluster. Use Multi-AZ ElastiCache in your game to provide automated disaster recovery and a scalable tier with read replicas.

1. Amazon Aurora is a MySQL-compatible database that provides high read and write throughput. It supports up to 64 TB of six-way replicated storage and up to 15 low-latency read replicas across multiple Availability Zones.

1. Your game also benefits from [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/), a managed NoSQL database that provides predictable performance and scalability.

1. Use [Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/) to store your game assets, downloadable content, and log files generated by your servers. As your user base grows geographically, use [Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/) as a globally distributed cache for content.

1. For push notifications, use [Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/dg/) with built-in support for Apple, Google, Amazon, and Windows platforms.

## Further reading
<a name="async-further-reading"></a>

For additional information, see the following resources:
+  [AWS Architecture Icons](https://aws.amazon.com/architecture/icons) 
+  [AWS Architecture Center](https://aws.amazon.com/architecture/) 
+  [AWS Well-Architected](https://aws.amazon.com/architecture/well-architected) 

## Diagram history
<a name="async-history"></a>

To be notified about updates to this reference architecture diagram, subscribe to the RSS feed.

| Change | Description | Date | 
| --- |--- |--- |
| [Initial publication](#async-history) | Reference architecture diagram first published. | March 24, 2021 | 

**Note**  
To subscribe to RSS updates, you must have an RSS plugin enabled for the browser you are using.