Epic Games’ most popular multiplayer game, Fortnite, hosts over 200 million concurrent players worldwide and can’t afford to lose gamers due to infrastructure or application issues. In efforts to capitalize on a reliable, scalable, low latency game platform, Epic uses AWS Game Tech services. Epic operates on AWS with scalable cloud architecture to host their last-man-standing game, platform, and analytics pipeline. AWS provides game companies with the tools they need to not only build their game, but also to evolve it, scale it, and massively expand it to meet the growing demands of players.
While there is no secret sauce for building a global fan base for your game, there is a general approach recommended by AWS for building reliable, scalable, and secure cloud infrastructure; the Well-Architected Framework. The aim of this blog post is not to discuss the framework itself; however, it does play a critical role in any cloud architecture, especially when it comes to operating games on AWS.
The underpinning of the entire Internet is based on the Domain Name System (DNS), so it makes sense to leverage Amazon Route 53, not just for registering domains, but also for managing the critical records responsible for mapping players to your infrastructure. Route 53’s flexible and powerful routing policies allow you to further control how your players connect. In a global scenario, Route 53 plays a pivotal role in the scalability and success of your game.
In addition to a scalable DNS service, your game will also need scalable compute; servers that run games, microservices, APIs, and other critical functions. It’s not enough to simply deploy a fixed number of servers and hope that works; these servers need to adjust dynamically to the number of players connecting to match demand instead of sitting idly and accumulating cost. AWS Auto Scaling addresses the scalability requirement while Elastic Load Balancing distributes traffic across servers.
AWS provides a global presence for delivering game content out of the box. Between Amazon S3 and Amazon CloudFront, you have an industry-leading storage service known for performance, scalability, and availability, as well as a content delivery network with 169 points of presence in 29 countries. With these services, game developers can securely deliver games, data, and rich media to players with low latency and high transfer speeds to ensure an engaging experience.
It’s not enough to just deliver data; players generate huge volumes of activity data. Companies like Epic Games use AWS to store and analyze several petabytes of data from their users every month using services like Amazon Kinesis, Amazon EMR, Amazon S3, and Amazon Athena. These services allow game companies to stream data in massive amounts to backend storage systems and conduct detailed analyses to drive business decisions and outcomes.
In addition to analytics, game platforms need databases to store user information, profiles, progress, achievements, etc. AWS provides database engines and technologies for a variety of use cases; including non-relational databases with Amazon DynamoDB and Amazon DocumentDB, relational databases with Amazon RDS and Amazon Aurora, and graph databases with Amazon Neptune. These managed database services all are tuned for performance and reliability, and will scale alongside your application.
While services like Elastic Load Balancing and Auto Scaling help optimize performance, you may want to make more granular improvements to work more efficiently with those services. With the advent of more modern operating-system-level containerization software such as Docker, rkt, LXC, and OpenVZ, developers create containerized workloads that allow code to more efficiently utilize servers. Containers deploy more rapidly than traditional applications, allow developers to easily package and test their applications, and scale different components of the workload effortlessly.
AWS provides native solutions for deploying resilient container infrastructure using popular open source orchestration tools, in addition to providing their own custom-built solutions. Services such as Amazon Elastic Container Repository (ECR), Amazon Elastic Container Service (ECS), and Amazon Elastic Container Service for Kubernetes (EKS) allow operators to manage container images and orchestrate container deployments atop an existing EC2 workload (or without any servers using ECS in Fargate mode).
When application servers (container or not) are stateless and infrastructure is loosely coupled, operators can scale more seamlessly, launch clusters in new regions, deploy already built and tested images, and manage fleets as homogenous pools of compute resources.
When it comes to building a scalable, resilient, and reliable gaming architecture on AWS, there are numerous steps to consider. However, by leveraging the appropriate service options made available by AWS, you can attain your goals more easily. An experienced AWS partner can help you understand and deploy the required services to get you there faster and allow your development teams to focus on features and improvements rather than infrastructure, incidents, and outages. With multiple AWS services and AWS game tech-specific capabilities to boost the scalability and performance of your games and applications, a managed AWS Service provider like Mission can elevate your game to the next level.