- Newest
- Most votes
- Most comments
-
Consider using Auto Scaling Groups (ASGs) for both connection servers and game servers, with strategies like maintaining warm instances, using pre-baked AMIs, and leveraging predictive/scheduled scaling to mitigate launch time concerns.
-
Implement load balancing for connection servers using services like Network Load Balancer (NLB) or Application Load Balancer (ALB) to ensure high availability and load distribution.
-
Explore game server clustering to dynamically provision and deprovision game servers based on demand.
-
Leverage Content Delivery Network (CDN) like Amazon CloudFront to distribute static game assets and reduce load on game servers.
-
Incorporate appropriate databases (e.g., Amazon RDS, DynamoDB) and caching (Amazon ElastiCache) solutions based on data storage and caching requirements.
-
Implement robust monitoring, logging, and security measures using services like Amazon CloudWatch, AWS CloudTrail, Amazon VPC, Security Groups, and Network ACLs.
-
Consider integrating additional game services like matchmaking, leaderboards, and achievements using services like Amazon GameSparks or AWS Lambda.
Relevant content
- asked 2 years ago
- asked 3 years ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 3 years ago

Hi Giovanni, thx a lot!
My Idea so far after some research on the 1st part of the answer you gave, I agree with you and will work on it as you said (I really liked the idea!)
S3 will be used to host the mainpage of the game and the information that appears in the client 1st screen, it will use CloudFront to distribute patches, updates, and so on (I was already thinking on that)
For Databases, I was thinking of using Aurora for the User database (personal information and data that may be used as transactional DB (user data, payments, upgrade subscriton, paid content and so on). DynamoDB as the Ingame database for the avatars, since it can have several RWs in miliseconds, it would be awesome to use it to save the avatar's state, location, level and so on. I was also thinking of using Redis to scoreboard in the game)
Lambda will be use for some offgame characteriscts like avatar creating, thinking of using it with SQS to have some chat moderator (every message in the chat would go to the SQS which would send to Lambda to check for offensive words and then return to the game and be shown with ***** for offensive words, something like it)
The Cluster part on the 3rd topic you mentioned is something that I need to do a deeper dive
another question (not sure if you guys get notification for it.
what would be the best way to handle it (based on latency, value, and if it would work as well)
game_client ---> ALB ---> conection server ---> NLB ---> game server
or
game_client ---> NLB ---> conection server ---> NLB ---> game server I imagine that the client in the user PC would connect using TCP to the connection server, instead of HTTPS, or it can work both ways?
No Notifications unfortunately...
Use Option 2 if your game relies on TCP connections for real-time interactions. It simplifies the architecture by minimizing protocol translation and potential latency. Use Option 1 if you need the ALB’s advanced routing features and your connection server communicates with the game server over HTTP/HTTPS.