

# What is Amazon GameLift Servers?
What is Amazon GameLift Servers?

Use Amazon GameLift Servers to deploy, operate, and scale dedicated, low-cost servers in the cloud for session-based multiplayer games. Built on AWS global computing infrastructure, Amazon GameLift Servers helps deliver high-performance, high-reliability game servers while dynamically scaling your resource usage to meet worldwide player demand.

## Key features


### Global reach and low latency

+ Deploy hosting in AWS Regions and Local Zones worldwide to bring your games to new players. See a complete list of [locations supported by Amazon GameLift Servers](gamelift-regions.md).
+ Deliver lowest possible latency and great player experience, wherever your players are located.
+ Use multi-location placement queues to dynamically place players into game sessions with optimal player experiences.

### Automatic scaling for managed fleets

+ Optimize fleet capacity for cost efficiency while maintaining quality of service.
+ Scale capacity based on player demand using target-based auto scaling
+ Maintain capacity buffer to handle sudden player influxes.

### Flexible hosting options


See more details at [Amazon GameLift Servers game hosting options](gamelift-intro-flavors.md).
+ Game hosting in the cloud, managed by Amazon GameLift Servers
  + Host game servers on Amazon Elastic Compute Cloud (Amazon EC2) infrastructure. Choose from resource types including compute-optimized (C-family), memory-optimized (R-family), and cost-efficient ARM-based Graviton instances.
  + Customize how Amazon GameLift Servers manages all aspects of your game hosting solution, from deploying game servers and starting game sessions to matching players and getting them into games.
  + Use multi-location fleets to streamline global game server deployment. 
  + Take advantage of low-cost hosting with [Amazon EC2 Spot Instances](https://aws.amazon.com/ec2/spot/).
  + Deploy Windows or Linux game servers with managed EC2 hosting.
  + Deploy Linux-based containers with your game server with managed container hosting.
+ Game hosting managed by you, with Amazon GameLift Servers Anywhere
  + Leverage Amazon GameLift Servers game session placement and session management capabilities.
  + Self-manage game server deployments and scaling on your own hardware, on-premises infrastructure, or other cloud providers. 
+ Hybrid game hosting
  + Create a game hosting solution that uses a combination of Amazon GameLift Servers managed fleets and Anywhere fleets to work with existing solutions or support migration.

### Game session management

+ Let Amazon GameLift Servers manage game server processes for you, track game server status and availability, and place new game sessions on request. 
+ Use game session placement features to help players find and join game sessions that will provide the best possible player experience. Rely on Amazon GameLift Servers decision-making, or customize around criteria such as hosting cost, player latency, and geographic location.
+ Create game session placement queues to efficiently process new game session requests. Use features to set a balance between placement quality and speed that fits your game and player expectations.
+ Take advantage of optional player session features to reserve player slots in game sessions, validate players on connection, and monitor slot availability. Search or filter existing game sessions to find available slots.

### Advanced matchmaking with FlexMatch

+ Add robust matchmaking that's fully integrated with your Amazon GameLift Servers hosting solution.
+ Build custom matchmaking rules based on player attributes and preferences, such as skill level or character choice, and use complex logic as needed.
+ Set up team-based matches for competitive or cooperative gameplay. Balance players across team and/or match composition. 
+ Optimize the matchmaking algorithm to balance match quality and wait times.
+ Support matches from 2 to 200 concurrent players.
+ Support match backfilling to fill available player slots and keep game sessions full.

### Comprehensive monitoring

+ Get real-time metrics on usage and performance for game sessions and player activity, as well as hosting performance and health for managed fleets.
+ Integrate with Amazon CloudWatch for alerts and dashboards.
+ Access server logs and event tracking for troubleshooting.
+ Analyze performance and utilization data to optimize scaling (managed fleets) or resource allocation (self-managed fleets).

### Customization and extensibility

+ Customize game session placement logic, including prioritizing for latency, cost, and location.
+ For managed hosting, choose your game hosting resources and provide instructions for launching and running game servers on each instance. For managed containers, fine-tune resource allocation across containers.
+ Define your own matchmaking rules. 
+ Implement custom strategies for capacity scaling.
+ Add game server code to integrate with your existing AWS services, such as databases or content storage tools.
+ Create a backend service with custom features to manage player join requests (such as player parties), handle authentication, or add custom logic and persistence. 

### Integration with AWS ecosystem

+ Use services such as Amazon DynamoDB, Amazon Simple Storage Service, and Amazon Aurora DSQL for game state persistence.
+ Implement Amazon Cognito for player authentication.
+ Process game analytics with Amazon Kinesisand Amazon S3.
+ Add voice chat with Amazon Chime SDK.
+ Create custom game features using AWS Lambda and Amazon API Gateway.

## How to work with Amazon GameLift Servers


Use these tools to work with Amazon GameLift Servers.

**AWS CLI**  
Use the AWS Command Line Interface (AWS CLI) to make calls to the AWS SDK, including the service API for Amazon GameLift Servers. See [Getting started with the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) in the *AWS Command Line Interface User Guide*.

**Amazon GameLift Servers console**  
Use the [AWS Management Console for Amazon GameLift Servers](https://console.aws.amazon.com/gamelift) to configure resources, manage your game server deployments, and track performance and usage metrics. The Amazon GameLift Servers console is a GUI alternative to managing resources programmatically or with the AWS CLI.

**Amazon GameLift Servers SDKs**  
The Amazon GameLift Servers SDKs contain the libraries required to establish communication between your game clients, game servers, and game services and the Amazon GameLift Servers service. For more information, see [Get Amazon GameLift Servers development tools](gamelift-supported.md).

**AWS CloudFormation**  
Use AWS CloudFormation to model, provision, and manage AWS resources for your game hosting solution by treating infrastructue as code. Create templates that describe the resources, and CloudFormation automates the tasks of configuring and deploying resources to the locations you specify.

# Amazon GameLift Servers game hosting options
Game hosting options

Amazon GameLift Servers offers a range of options for hosting game servers for session-based multiplayer games. Whether you want to set up cloud-based hosting managed by Amazon GameLift Servers or incorporate hosting resources that you already have, you can work with Amazon GameLift Servers to build the hosting solution you need for your players. For more details about what a game hosting solution looks like, see [How hosting with Amazon GameLift Servers works](gamelift-howitworks.md).

**Topics**
+ [

## Managed EC2
](#gamelift-intro-flavors-hosting-managed-ec2)
+ [

## Managed containers
](#gamelift-intro-flavors-hosting-managed-containers)
+ [

## Anywhere hosting
](#gamelift-intro-flavors-hosting-anywhere)
+ [

## Hybrid hosting
](#gamelift-intro-flavors-hosting-hybrid)

## Managed EC2


Offload the work of managing your production game servers onto Amazon GameLift Servers with managed EC2 hosting. Take advantage of optimizations for multiplayer game servers while still relying on the high performance and reliability of Amazon Elastic Compute Cloud (Amazon EC2) and AWS global computing infrastructure. 

[Start building an Amazon GameLift Servers managed EC2 hosting solution](gamelift-roadmap-managed.md)

**Characteristics**
+ Host multiplayer game servers that run on Amazon Linux or Windows Server operating systems.
+ Use Amazon GameLift Servers to deploy and manage your custom game servers to hosting resources AWS Cloud. Choose the hardware type and where to deploy it, and configure additional details only where you need to.
+ Configure the runtime process manager to automatically maintain game server processes as needed to host game sessions.
+ Set up custom health tracking to help Amazon GameLift Servers detect and resolve poor-performing game servers. 
+ Take advantage of Amazon GameLift Servers performance monitoring. Track metrics such as hardware performance and server process life cycles. You can also download and store game session logs.
+ Use Amazon GameLift Servers to manage access between game server processes and other AWS resources.
+ For production hosting, automate game hosting deployments and management with AWS CloudFormation templates and the AWS Cloud Development Kit (AWS CDK). Take advantage of continuous integration and continuous delivery (CI/CD) tools and services such as AWS CodePipeline.

## Managed containers


Amazon GameLift Servers provides a complete cloud hosting solution for containerized game servers, so you can take advantage of the core benefits of container usage, such as portability, agility, and fault tolerance. As with managed EC2 hosting , managed container hosting deploys and runs your containers on Amazon EC2 instances.

[Start developing an Amazon GameLift Servers managed hosting solution for your containerized game server.](gamelift-roadmap-containers.md)

**Characteristics**
+ Develop a custom architecture with lightweight containers to run your game server build, dependencies and auxillary software.
+ Use Docker tools to create a Linux-based container image. Store images in an Amazon Elastic Container Registry (Amazon ECR) repository for deployment.
+ Use Amazon GameLift Servers to deploy and manage your custom game servers to hosting resources AWS Cloud. Choose the hardware type and where to deploy it, and configure additional details only where you need to.
+ Manage hosting fleet life-cycle with tools to model game server versions. Deploy game server updates and other configuration changes as needed.
+ Track game hosting performance with container-specific performance metrics. Monitor the health of your fleet resources using hardware metrics.
+ Manage container fleet resources using AWS CloudFormation templates for Amazon GameLift Servers.

## Anywhere hosting


With Anywhere hosting, you can take advantage of Amazon GameLift Servers game session management features, including matchmaking and game session metrics, to host game servers wherever you want to. Self-manage your game server deployments, game server health monitoring, and capacity scaling. 

**Note**  
Anywhere fleets are particularly useful as test environments for rapid, iterative game development. Set up an Anywhere fleet for your own local workstation or a cloud-based hosting resource. For more information about testing with Anywhere, see [Set up local testing with Amazon GameLift Servers Anywhere](integration-testing.md). 

[Start developing an Amazon GameLift Servers Anywhere hosting solution for your game.](gamelift-roadmap-anywhere.md)

**Characteristics**
+ Deploy game servers on your own hardware, on-premises infrastructure, or other cloud providers. Make use of available hardware close to your players, anywhere.
+ Use Amazon GameLift Servers session management features to monitor game server availability, start new game sessions, and join players to game session slots.

## Hybrid hosting


For production hosting, you might choose a hybrid approach, with Anywhere fleets for the hosting resources you supply and manage, and Amazon GameLift Servers managed fleets filling in where needed. A hybrid solution uses the same processes to start game sessions and connect players to deliver a seamless player experience. You can monitor and collect usage metrics for all hosting, regardless of resource type.

Common scenarios where a hybrid solution makes sense: 
+ **Expand your hosting solution to the AWS Cloud.** Supplement the capabilities of your existing hosting solution (on-premises hardware or other cloud-based hosting) by adding Amazon GameLift Servers managed hosting. With managed hosting, you can increase your hosting capacity or add "burst" capacity to rapidly scale up and pay only for resources when you need them. You can also take advantage of the Amazon GameLift Servers service's global footprint to reach more players around the world and provide the low-latency multiplayer experience they expect.
+ **Prepare for migration to cloud-based hosting.** If you're considering or planning to migrate to the AWS Cloud, a hybrid hosting solution is a viable way for you to make the transition as gradually as you need to. It lets you build the solution you need right now while preparing for where you want to be in the future. 
+ **Lower latency for players in locations beyond those serviced by Amazon GameLift Servers.** If you're already using Amazon GameLift Servers managed hosting, you might need to support players in unusual situations. For example, you might want to better reach players in unusually remote locations or support players with special access needs. Add custom hosting locations and use Amazon GameLift Servers Anywhere to support those locations along with your managed hosting resources.
+   
  


[Start developing an Amazon GameLift Servers hybrid hosting solution for your game.](gamelift-roadmap-hybrid.md)

# How hosting with Amazon GameLift Servers works
How it works

Amazon GameLift Servers is a service that provides dedicated, low-cost servers, infrastructure provisioning, scaling, and session management for your session-based multiplayer games. The service offers flexible tools and features that you can customize for your games or use in collaboration with your own systems. Take advantage of Amazon GameLift Servers managed hosting so you can focus on creating gameplay experiences rather than managing server operations.

This topic describes the core components of a complete Amazon GameLift Servers hosting solution and how they work together to supply multiplayer game sessions to players.

## Core components of a game hosting solution
Core components

A complete Amazon GameLift Servers hosting solution consists of several essential components that work together to deliver multiplayer game experiences. Some of these components are built and managed by you, while others are provided by Amazon GameLift Servers and managed based on your configuration choices. Understanding how these components interact and their respective roles is crucial for developing an effective game hosting solution. The components include:
+ Game client runs on player devices.
+ Backend service enables game clients to communicate with Amazon GameLift Servers to get game session information and join games.
+ Game server software runs on game hosting resources and hosts game sessions for a group of players.
+ Placement system initiates game sessions and matches players to games.
+ Game hosting fleets provide game servers in one or more geographic locations.
+ Game hosting management system monitors game hosting status and manages capacity. 

![\[Game architecture with managed Amazon GameLift Servers.\]](http://docs.aws.amazon.com/gameliftservers/latest/developerguide/images/game_architecture.png)


### Game client


The game client is your game software that runs on a player's device. It initiates player placement into a game session by communicating with a backend service and connects directly to a game server to participate in gameplay.

**Key functions for game hosting**
+ Send join requests to the backend service. Include relevant player data and game session data as part of the join request.
+ Collect latency data for the game client and include that information in the join request.
+ Receive game session connection information from the backend service and use it to connect to a game server.
+ Handle session connection scenarios such as player verification, match acceptance for Amazon GameLift Servers FlexMatch, session interruptions, or disconnects.

**Who builds it**  
You add game hosting functionality to your game client software and set up communication with the backend service.

### Backend service


The backend service is a coordination layer between game clients and the Amazon GameLift Servers service. It controls all communication with the service to make requests for game session placements and to retrieve game session and player session information. Use of a backend service is a best practice that maintains secure communication with the service on behalf of game clients and avoids having to share sensitive AWS credentials and permissions with game clients.

Your backend service implements a player grouping strategy for your game sessions. You have a lot of flexibility in how players end up in a game session. You might set up a game session browser for players or support player-defined parties. Or you might pool game session requests as they come in, form player groups (possibly with pre-sorting), and start a game session for each group. With FlexMatch matchmaking, you can form player matches and backfill existing matches.

**Key functions for game hosting**
+ Authenticate communications from game clients.
+ Make requests to Amazon GameLift Servers to start new game sessions, get game session information, or join existing game sessions. Include relevant game session and player data in requests as needed.
+ Optionally create requests for player sessions to more closely monitor game session availability. Use player sessions to reserve game session slots, validate players when they connect, and track player disconnects.
+ Respond to game clients with game session connection details and other information as requested.

**Who builds it**  
You build the backend service in an environment that's managed by you to support your game requirements and implement how players get into games. Integrate the AWS SDK to make calls to the Amazon GameLift Servers service API. Optionally build your backend service on AWS using services such as AWS Lambda, Amazon Simple Storage Service (Amazon S3), and Amazon Cognito.

### Game server


The game server is your custom server software that manages game state, processes player actions, and synchronizes gameplay across multiple connected players. The game server maintains communication with the Amazon GameLift Servers service to manage game session hosting.

**Key functions for game hosting**
+ Communicate with Amazon GameLift Servers to:
  + report status (ready to host sessions, ready to accept players, health status).
  + respond to service calls (start or end game sessions).
+ Manage game session lifecycle to host one game session at a time per process.
+ Coordinate with other AWS services for added functionality.
+ Optionally validate new player connections.

**Who builds it**  
You build your game server software. You integrate the server SDK for Amazon GameLift Servers and add functionality to establish a connection with the service and support game session management.

### Game hosting fleet


The hosting fleet is a collection of computing resources that run your game servers. Fleet resources can be distributed across multiple geographic locations to provide low-latency gameplay to players wherever they are. Each fleet resource runs one or more game server processes, which communicates directly with Amazon GameLift Servers. Each game server process can host one game session at a time.

Fleet characteristics and functionality vary based on the fleet's hosting type. Managed fleets deploy resources to the AWS Cloud and are managed by Amazon GameLift Servers. Anywhere fleets are customer-provided compute resources that are managed outside of Amazon GameLift Servers.

**Key functions for game hosting**
+ Provision game server hosting resources.
  + Managed fleets deploy cloud-based Amazon EC2 instances with a wide range of configuration settings. A fleet configuration determines the computing power of each instance in the fleet, the physical location of instances, and other details. Managed fleets add or remove EC2 instances in response to capacity scaling 
  + Anywhere fleet deployments are self-managed. The fleet can consist of physical hardware or other cloud resources, and be configured as needed.
+ Install runtime environment and game server software.
  + Managed Amazon EC2 fleet instances are deployed with your game server build and an Amazon Machine Image (AMI) with a compatible runtime environment.
  + Managed container fleet instances are deployed with your game server build and a container-optimized AMI with Docker tools and other components to work with Amazon ECS.
  + Anywhere fleets are deployed with your chosen game server software and operating system.
+ Manage game server process life cycle. Apply pre-configured runtime instructions to start and stop processes on each fleet resource.

**Who builds it**

This depends on the fleet's hosting type:
+ Managed Amazon EC2 fleets: You upload your game server build to Amazon GameLift Servers, which stores it for deployment to fleet instances. Amazon GameLift Servers provides the fleet's AWS Cloud infrastructure. You configure the fleet and instruct it on how to run game servers on each fleet instance.
+ Managed container fleets: You package your game server build and runtime instructions into a container image to store in Amazon ECR for deployment. Amazon GameLift Servers provides the fleet's AWS Cloud infrastructure. You provide a container architecture and configure the fleet to host your containers.
+ Anywhere fleets: You provision all infrastructure and manage server software deployment. You create Anywhere fleets to connect your active game hosting resources with Amazon GameLift Servers.

### Game session placement system


The game session placement system locates available game servers to host new game sessions. The system uses real-time information about game server availability to make optimal placement decisions.

In Amazon GameLift Servers, the primary game session placement mechanism is the queue. A game session queue uses algorithms, which you can configure, to place game sessions for the best possible outcome. You can prioritize placements based on factors such as lowest hosting cost and lowest player latency, and you can configure a queue to search across multiple geographic locations. As an alternative to queues, you can designate a specific fleet to host your game sessions.

**Key functions for game hosting**
+ Process game session placement requests received from the backend service.
+ Make placements based on real-time information about hosting resource availability.
+ Use player latency data and other data to prioritize placement options (queues only)
+ Prompt game server processes to start new game sessions.
+ Update game session connection information after the game session is ready to accept players.
+ Optionally set up FlexMatch matchmaking to create player matches and request game session placement for matches.

**Who builds it**  
Amazon GameLift Servers supplies the placement system. You configure placement behavior through how your backend service makes placement requests and optionally by setting up game session queues and FlexMatch matchmakers. Use the Amazon GameLift Servers console, the AWS SDK, or the AWS CLI to create and configure queues and matchmakers for your game.

### Game hosting management system


The game hosting management system is the operational backbone that coordinates and monitors all aspects of your game hosting solution. This system provides the intelligence and automation that makes Amazon GameLift Servers' placement and scaling capabilities possible.

**Key functions for game hosting**
+ Track the real-time status and availability of game server processes, game sessions, and player sessions across all fleets to support game session placement and automatic capacity scaling.
+ Monitor fleet health and performance.
+ Collect and analyze game hosting activity metrics.
+ Provide capacity scaling tools, including automatic scaling based on player demand and fleet utilization.
+ Manage updates to game server software and runtime instructions.

**Who builds it**
+ Managed fleets: Amazon GameLift Servers provides availability tracking, metrics on game hosting activity and hardware performance, and capacity scaling tools. You use available AWS tools to manage game server software updates, modify runtime instructions, and customize your use of metrics (such as setting up CloudWatch for monitoring). You configure a custom scaling policy and modify as needed.
+ Anywhere fleets: Amazon GameLift Servers provides availability tracking and game hosting activity metrics. You manage fleet configuration changes, including updates to game server software and runtime instructions. You create systems to monitor fleet performance and manage fleet capacity scaling.

## How the components work together
How components work together

**When a game hosting compute is deployed**
+ **Game server software installed**: The compute is installed with a runtime environment and your game server build
+ **Game server launches**: At least one instance of the game server executable is launched, with optional launch parameters, on the compute.
+ **Game server connects to Amazon GameLift Servers**: As part of its startup actions, the game server process calls the server SDK to initialize a connection to the service.
+ **Game server reports ready to host a game session**: The game server process completes startup actions, then calls the server SDK to report readiness. It begins reporting health status based on its configuration.
+ **Amazon GameLift Servers tracks availability**: The service records the game server process's availability to game session placement. It also updates metrics for fleets, instances, and game sessions to track usage and capacity.
+ **Game server waits for game session assignment**: The game server process maintains its idle status while it waits for a prompt to start a game session.

**When a player wants to join a game**
+ **Player initiates a game**: A player launches your game client, authenticates with your backend service, and asks to join a game.
+ **Backend service requests a game session**: Your backend service calls Amazon GameLift Servers to find or create a suitable game session, based on its player grouping strategy. The request might include player or game data for use in the game session.
+ **Amazon GameLift Servers places the game session**: When starting a new game session, the placement system identifies an optimal location to host the session and selects an available game server process. The service prompts the selected process to start a new game session and passes any player or game data. If FlexMatch matchmaking is in use, the matchmaker first creates a match, then requests placement for the match.
+ **Game server starts the game session**: The game server initiates steps to start a game session. When complete, it reports to Amazon GameLift Servers that it's ready to accept player connections.
+ **Connection information delivered to game client**: After the game server updates its status, Amazon GameLift Servers provides the game session connection information. The backend service receives this information and delivers it to the game client.
+ **Player connects to the game session**: The game client uses the connection information to connect directly to the game server and begin gameplay.
+ **Amazon GameLift Servers monitors game session status**: The game server process reports health status, optional player connection status, and game session status to track ongoing game session availability.
+ **Game server process shuts down**: The game server process ends the game session, reports status, and then shuts itself down.

# Amazon GameLift Servers and the player experience
Player experience

Players expect fast, fair, and reliable multiplayer gaming experiences. Amazon GameLift Servers delivers these experiences by providing game developers with tools that directly enhance how players connect and engage with multiplayer games. This topic outlines the key player benefits Amazon GameLift Servers features provide.

## Provide fast gameplay to players globally


Players want to connect to nearby servers with minimal lag. Amazon GameLift Servers ensures optimal connection experiences through intelligent placement and global infrastructure:
+ **Players experience consistent performance globally** – Host games in AWS Regions and Local Zones available globally to minimize the distance between players and game servers (see [Amazon GameLift Servers service locations](gamelift-regions.md)). You can choose from a wide range of Amazon EC2 instance types in these locations to find the best computing resources to host your game workloads.
+ **Players connect to the best available servers** – Amazon GameLift Servers places players in game sessions with the lowest possible latency by gathering game client network data and searching for available servers across multiple locations. Use UDP ping beacons to collect accurate latency data. Configure latency policies to balance connection quality with acceptable wait times for players.
+ **Players from different regions can play together** – Game session placements can balance game sessions with players from regional player pools while maintaining acceptable latency. Players from less-populated regions can find matches without sacrificing connection quality.

## Help players join games quickly


Players want fast access to games regardless of demand. Amazon GameLift Servers provides a range of capacity scaling tools that help you ensure that players can find games during peak and quiet periods:
+ **Players can easily find available servers** – With automatic scaling tools, you can ensure that hosting resources are ready when they're needed. Target tracking manages a flexible buffer of capacity to anticipate player demand patterns for your game and scale proactively.
+ **Players experience smooth performance during special events** – Combine auto-scaling with manual scaling techniques to handle sudden influxes after planned events, such as game updates, marketing campaigns, or tournaments.
+ **Players don't have to wait for servers to start up** – On every game hosting resource, game servers are pre-warmed so that they're always ready to host new sessions as soon as players join.

## Build creative ways to group players for game sessions


Players want to compete or collaborate with others in fair, balanced ways. Amazon GameLift Servers offers a number of options for grouping players into game sessions:
+ **Players are grouped to optimize player experience** – You can manage player grouping to best suit your game using a range of features. Let players search or browse game sessions or group player requests when they arrive based on skill level, latency, and other attributes. You can manage player grouping on your own or you can implement FlexMatch matchmaking with customizable match rules.
+ **Players can join active matches** – Build player groups to start new game sessions, or use player sessions to track available slots in existing sessions and add new players. With FlexMatch, automatically backfill sessions with well-matched players.
+ **Friends can play together as a team** – Player party support lets groups of friends play together. Game sessions can fill remaining slots with other players or restrict access. With FlexMatch, friends can form teams.
+ **Players can bring custom data to game sessions** – Include game and player information in requests for game sessions and player sessions. The information gets passed on to the game server for use in a game session.
+ **Players don't wait indefinitely for perfect matches** – With FlexMatch, you can relax match requirements over time to prevent player frustration from excessive queuing. Create progressive relaxation rules that prioritize the most important aspects of match quality.
+ **Players can choose to accept or decline matches** – With FlexMatch, you can customize workflows for letting players accept or reject prospective matches.

## Deliver reliable connections throughout gameplay


Players expect consistent gameplay without interruptions or disconnections. Amazon GameLift Servers provides comprehensive session management and protection:
+ **Players enjoy high-quality performance on AWS Cloud** – With hosting managed by Amazon GameLift Servers, players get fast, reliable game servers that run on AWS computing infrastructure.
+ **Validate players when they connect** – When you enable player sessions for your game, you can have Amazon GameLift Serversreserve player slots in game sessions and validate players on connection.
+ **Players can reconnect and maintain game progress** – Amazon GameLift Servers supports reconnection for both server-side and client-side interruptions.
+ **Players' games are protected from termination** – Optional game session protection feature prevents active sessions from being terminated during scaling events or other interruptions.

## Improve player experience based on real-world data


Players expect games to work consistently and get better over time. Amazon GameLift Servers provides comprehensive monitoring and analytics that help optimize the player experience:
+ **Players experience fewer disruptions** – Real-time monitoring of fleet performance, game sessions, and player activity can identify issues before they significantly impact gameplay Customize graceful game session shutdowns and migrations.
+ **Players benefit from proactive server health monitoring** – Amazon GameLift Servers provides continuous server health monitoring and automatically replaces unhealthy game servers to minimize hardware or software failure impact. Configure health check parameters to support different game requirements.
+ **Players get data-driven improvements in gameplay** – Take advantage of game session logs and detailed analytics to reveal patterns in player behavior and server performance. Add custom logging support for game-specific events.

## Integrate enhanced game features with other AWS services


Players want integrated features like voice chat, secure authentication, and persistent progress. Amazon GameLift Servers can be integrated with other AWS services to provide comprehensive gaming experiences:
+ **Players get streamlined authentication** – Amazon Cognito integration supports various identity providers and authentication methods while maintaining secure player identities across game sessions, with streamlined login processes for returning players.
+ **Players can persist their game progress across sessions** – Amazon DynamoDB integration can be used to store player progression, inventories, and persistent data with high-performance access that ensures minimal gameplay impact while supporting cross-session continuity.
+ **Players benefit from analytic insights** – Amazon Kinesis and Amazon Simple Storage Service (Amazon S3) integration processes game analytics to gather insights on player behavior and preferences, enabling real-time analytics that help developers adapt to changing player patterns and keep games fresh and engaging.

# Managing game hosting in production with Amazon GameLift Servers
Game hosting in production

After you've launched your game with Amazon GameLift Servers, you'll need to manage your game hosting infrastructure to ensure optimal performance, reliability, and player experience. This topic covers the key features and tools for managing game hosting lifecycles during production.

## Monitoring hosting health and performance


Amazon GameLift Servers provides comprehensive monitoring tools to help you track the health and performance of your game hosting infrastructure:
+ **Performance metrics** – Monitor key performance indicators for managed fleets, such as instance utilization, player sessions, and game session placements. Track these metrics in Amazon GameLift Servers or in Amazon CloudWatch, where you can also set up alarms to get notifications when metrics exceed thresholds.
+ **Fleet metrics and events** – Track fleet-specific metrics including active server processes, available game sessions, and active player sessions to ensure optimal capacity.
+ **Game session placement metrics and events** – Track metrics and events to monitor the health and performance of your game session placement system.
+ **Game session logs** - Access and analyze game session logs to identify issues and understand player behavior patterns.
+ **Realtime script logs** - For games using Real-time Servers, monitor script execution and performance through detailed logs.
+ **AWS Health Dashboard** - Stay informed about AWS service health that might affect your Amazon GameLift Servers deployments.

You can access these monitoring tools through the Amazon GameLift Servers console, AWS CLI, or use the AWS SDK for Amazon GameLift Servers to create custom dashboards and monitoring solutions. 

## Managing game server updates and patches


Keeping your game servers updated is critical for security, performance, and adding new features. Amazon GameLift Servers provides several approaches for managing updates:
+ **Build management** - Upload and manage multiple versions of your game server builds. Each build is versioned and can be deployed to different fleets.
+ **Fleet replacement** - Create new fleets with AMI versions and game server build updates, and gradually shift traffic from old fleets to new ones using game session placement queues and aliases.
+ **Script updates** - For Real-time Servers, update server scripts without replacing the entire fleet by uploading new script versions.
+ **Container updates** - For container-based deployments, update container images and definitions. Deploy new versions of your game servers to existing fleets. Replace fleets to update AMI versions.
+ **Automated deployments** - Use AWS CodePipeline and AWS CodeDeploy to create CI/CD pipelines for automated game server updates.

When planning updates, consider using blue/green deployment strategies to minimize disruption to active players and allow for quick rollbacks if issues are detected.

## Optimizing performance and scaling


As your player base evolves, you'll need to adjust your hosting configuration to maintain optimal performance and cost-efficiency:
+ **Auto scaling** - Configure fleet scaling policies based on metrics like player count or game session utilization to automatically adjust capacity.
+ **Regional deployment adjustments** - Add or remove regions from your multi-region deployments based on player demographics and latency requirements.
+ **Queue management** - Optimize game session placement queue configurations to balance player experience and hosting costs.
+ **Instance type selection** - Analyze performance metrics to determine the most cost-effective instance types for your game server requirements.
+ **Spot Instance usage** - Leverage Spot Instances for non-critical workloads to reduce costs, with appropriate fallback strategies to On-Demand instances.
+ **FlexMatch tuning** - Refine matchmaking rules and algorithms based on actual player data and feedback.

Regularly review CloudWatch metrics and cost reports to identify optimization opportunities and implement changes through the Amazon GameLift Servers console or API.

## Troubleshooting and live operations


Effective troubleshooting and live operations management are essential for maintaining a positive player experience:
+ **Fleet event notifications** - Set up Amazon Simple Notification Service notifications for fleet events such as scaling activities, instance terminations, or game session placement failures.
+ **Game session placement debugging** - Use detailed placement logs to identify and resolve issues with game session placements.
+ **Server process health checks** - Monitor server process health and automatically replace processes that fail health checks.
+ **Remote access** - Connect to fleet instances for direct troubleshooting using AWS Systems Manager Session Manager.
+ **Alias management** - Use aliases to quickly redirect player traffic away from problematic fleets without changing client configurations.
+ **Backup and recovery** - Implement regular backups of critical game data and configuration to enable quick recovery from failures.

Establish clear incident response procedures and runbooks for common issues to minimize downtime and impact on players.

## Tools and integration


Amazon GameLift Servers integrates with various AWS services and third-party tools to enhance your production management capabilities:
+ **AWS CloudFormation** - Define and manage your GameLift resources as infrastructure as code for consistent deployments.
+ **AWS Lambda** - Create serverless functions to automate routine management tasks and respond to events.
+ **Amazon EventBridge** - Build event-driven architectures that respond automatically to changes in your Amazon GameLift Servers environment.
+ **AWS SDK integration** - Use AWS SDKs to build custom management tools and dashboards tailored to your specific needs.
+ **Third-party monitoring** - Integrate with third-party monitoring and analytics platforms using CloudWatch metrics export.

Leverage these integrations to create a comprehensive management solution that aligns with your team's workflows and requirements.

## Related resources

+ [Monitoring Amazon GameLift with Amazon CloudWatch](https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html)
+ [Updating Your Amazon GameLift Fleets](https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-updating.html)
+ [Scaling Game Hosting Capacity with Amazon GameLift](https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-autoscaling.html)
+ [Amazon GameLift Server SDK Reference](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html)

# Amazon GameLift Servers key terms
Key terms

This topic provides definitions for key technical terms used in Amazon GameLift Servers documentation and services.

**Active game session**  
A game session that is currently running and accepting or hosting players. Used as a metric to monitor fleet utilization and capacity planning. See [Monitor Amazon GameLift Servers with Amazon CloudWatch](monitoring-cloudwatch.md).

**Alias**  
A friendly identifier for a fleet that provides an abstraction layer between your game client and fleet resources. Aliases allow you to update fleet configurations without changing your game client code. See [Abstract an Amazon GameLift Servers fleet designation with an alias](aliases-intro.md).

**AMI (Amazon Machine Image)**  
A pre-configured virtual machine image used to create Amazon EC2 instances for managed fleets. Contains the operating system, runtime libraries, and Amazon GameLift Servers agent software needed to run game servers. See [Amazon GameLift Servers managed EC2 fleets](fleets-intro-managed.md).

**Anywhere fleet**  
A type of fleet that uses customer-provided compute resources managed outside of Amazon GameLift Servers. Anywhere fleets allow you to integrate existing infrastructure or hybrid cloud solutions with Amazon GameLift Servers game session management. See [Amazon GameLift Servers Anywhere fleets](fleets-intro-anywhere.md).

**Authentication token**  
A security credential generated by Amazon GameLift Servers that authenticates game server processes running on Anywhere compute resources. Required for server processes to communicate with the Amazon GameLift Servers service. See [Amazon GameLift Servers Anywhere fleets](fleets-intro-anywhere.md).

**Backend service**  
A coordination layer between game clients and the Amazon GameLift Servers service that controls communication for game session placement requests and retrieves game session information. Acts as a secure intermediary to protect hosting resources from malicious attacks. See [How hosting with Amazon GameLift Servers works](gamelift-howitworks.md).

**Game server build**  
A packaged version of your game server software that includes all files needed to run your game server on Amazon GameLift Servers hosting resources. Contains the game server executable, dependencies, and assets. See [Package a game server build for deployment](gamelift-build-intro.md).

**Compute**  
In container fleets, represents a copy of a game server container group on a fleet instance. Each compute can host one game session at a time. See [How containers work in Amazon GameLift Servers](containers-howitworks.md).

**Container fleet**  
A type of managed fleet that runs containerized game servers using container images instead of traditional builds. Provides flexibility for deploying game servers with specific runtime environments and dependencies. See [Amazon GameLift Servers managed container fleets](fleets-intro-containers.md).

**Container group**  
A collection of containers that work together to provide game server functionality. Similar to a container task or pod, defining how containers behave, dependencies, and resource sharing within a container fleet. See [How containers work in Amazon GameLift Servers](containers-howitworks.md).

**Destination**  
In game session queues, a fleet or alias that can receive game session placement requests. Queues can have multiple destinations with different priorities and latency policies. See [Customize a game session queue](queues-design.md).

**Fleet**  
A collection of computing resources that run your game servers. Fleet resources can be distributed across multiple geographic locations and each resource runs one or more game server processes. See [Deploy hosting fleets for Amazon GameLift Servers](fleets-intro.md).

**Fleet location**  
A specific AWS Region or Local Zone where fleet instances are deployed. Multi-location fleets can span multiple locations to reduce latency and improve availability. See [Deploy hosting fleets for Amazon GameLift Servers](fleets-intro.md).

**FlexMatch**  
Amazon GameLift Servers matchmaking service that automatically forms player matches based on configurable rules and requests game session placement for completed matches. Supports skill-based matching, team balancing, and match backfilling. See [What is GameLift FlexMatch?](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-intro.html)

**Game client**  
Your game software that runs on a player's device. Initiates player placement into game sessions by communicating with a backend service and connects directly to game servers for gameplay. See [How hosting with Amazon GameLift Servers works](gamelift-howitworks.md).

**Game property**  
Key-value pairs of custom data associated with a game session. Used to pass configuration information, game rules, or other metadata to game servers and clients. See [GameProperty](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GameProperty.html) in the API Reference.

**Game server**  
Your custom server software that manages game state, processes player actions, and synchronizes gameplay across multiple connected players. Integrates with the Amazon GameLift Servers Server SDK to communicate with the service. See [Add Amazon GameLift Servers to your game server with the server SDK](gamelift-sdk-server-api.md).

**Game server activation**  
The process of starting and initializing a game server process on a hosting resource. Includes loading the game server executable, establishing communication with Amazon GameLift Servers, and preparing to host game sessions. See [Add Amazon GameLift Servers to your game server with the server SDK](gamelift-sdk-server-api.md).

**Game server container**  
A container within a game server container group that runs the game server application. Automatically designated as essential to the container group lifecycle. See [How containers work in Amazon GameLift Servers](containers-howitworks.md).

**Game server container group**  
A type of container group that manages containers running game server applications and supporting software. Required for container fleets to host game sessions and can be replicated across fleet instances. See [How containers work in Amazon GameLift Servers](containers-howitworks.md).

**Game server process**  
A running instance of your game server executable on a hosting resource. Each process can host one game session at a time and communicates directly with Amazon GameLift Servers to report status and receive instructions. See [Add Amazon GameLift Servers to your game server with the server SDK](gamelift-sdk-server-api.md).

**Game session**  
An instance of your multiplayer game running on a game server process. Represents a single gameplay experience that multiple players can join and participate in together. See [How hosting with Amazon GameLift Servers works](gamelift-howitworks.md) and [GameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GameSession.html) in the API Reference.

**Game session data**  
Information associated with a game session including player data, game state, session properties, and other runtime information used by game servers and clients. See [GameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GameSession.html) in the API Reference.

**Game session placement**  
The process of locating available game servers to host new game sessions. Uses real-time information about game server availability to make optimal placement decisions based on factors like cost and latency. See [Integrate Amazon GameLift Servers game client functionality](gamelift-sdk-client-api.md) and [StartGameSessionPlacement](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_StartGameSessionPlacement.html) in the API Reference.

**Game session protection**  
A setting that prevents Amazon GameLift Servers from terminating game server processes that are hosting active game sessions during scaling events or fleet updates. Ensures ongoing games are not interrupted. See [Manually set capacity for an Amazon GameLift Servers fleet](fleets-updating-capacity.md).

**Game session queue**  
A placement mechanism that uses configurable algorithms to place game sessions for optimal outcomes. Can prioritize placements based on factors such as lowest hosting cost and lowest player latency across multiple geographic locations. See [Configure game session placement](queues-intro.md).

**Idle instance**  
A fleet instance that is running but not currently hosting any active game sessions. Used as a metric for monitoring fleet efficiency and scaling decisions. See [Monitor Amazon GameLift Servers with Amazon CloudWatch](monitoring-cloudwatch.md).

**Inbound permissions**  
Network access rules that define which IP addresses and port ranges can be used to connect to fleet instances. Controls access to game servers and ensures secure connections. Both managed EC2 and managed container fleets require inbound permissions configuration.  
See [IpPermision](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_IpPermission.html) and [Configure network connections](containers-design-fleet.md#containers-custom-network).

**Latency policy**  
Rules in game session queues that define acceptable latency thresholds for player connections. Used to ensure players are placed in game sessions with acceptable network performance. See [Customize a game session queue](queues-design.md).

**Managed fleet**  
A type of fleet where Amazon GameLift Servers deploys and manages computing resources in the AWS Cloud. Provides automatic scaling, health monitoring, and infrastructure management. See [Amazon GameLift Servers managed EC2 fleets](fleets-intro-managed.md).

**Matchmaking**  
The process of grouping players together for multiplayer gameplay based on criteria such as skill level, latency, or other game-specific factors. In Amazon GameLift Servers, primarily handled by FlexMatch. See [What is GameLift FlexMatch?](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-intro.html)

**Metric group**  
A collection of related performance metrics used for monitoring and auto-scaling decisions. Groups metrics like active game sessions, available game servers, and player utilization. See [Auto-scale fleet capacity with Amazon GameLift Servers](fleets-autoscaling.md).

**Per-instance container group**  
An optional container group type that runs additional software on each fleet instance. Useful for background services or monitoring tools, with only one copy deployed per instance. See [How containers work in Amazon GameLift Servers](containers-howitworks.md).

**Player session**  
A connection slot for a player in a game session. Used to reserve game session slots, validate players when they connect, and track player connection status and disconnects. See [Integrate Amazon GameLift Servers game client functionality](gamelift-sdk-client-api.md) and [PlayerSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_PlayerSession.html) in the API Reference.

**Priority configuration**  
Settings that customize the prioritization order of a game session queue when selecting destinations for game session placement. Defines the overall queue behavior, in contrast to priority override lists which modify priority for individual placement requests. See [Prioritize game session placement](queues-design-priority.md).

**Priority override list**  
An alternate priority list of locations that can be included in a game session placement request. Effectively replaces the queue's configured prioritization for locations for that one request only, without impacting other requests. See [Prioritize game session placement](queues-design-priority.md).

**Process manager**  
A component that manages the lifecycle of multiple game server processes within a container or instance. Handles starting, stopping, and monitoring individual game server processes. See [Optimize game server runtime configuration on managed Amazon GameLift Servers](fleets-multiprocess.md).

**Realtime script**  
JavaScript code that defines game logic for Amazon GameLift Servers Realtime Servers. Handles player connections, message routing, and game state management without requiring a custom game server. See [What is Amazon GameLift Realtime Servers?](https://docs.aws.amazon.com/gameliftservers/latest/realtimeguide/realtime-intro.html)

**Routing strategy**  
Configuration that determines how aliases direct traffic to fleets. Can route to a specific fleet or distribute traffic across multiple fleets based on defined rules. See [Abstract an Amazon GameLift Servers fleet designation with an alias](aliases-intro.md).

**Runtime configuration**  
Settings that define how game server processes run on fleet instances, including the number of concurrent processes, launch parameters, and resource allocation. See [Optimize game server runtime configuration on managed Amazon GameLift Servers](fleets-multiprocess.md).

**Scaling**  
The process of adjusting fleet capacity by adding or removing hosting resources based on player demand. Can be automatic (based on utilization metrics) or manual (administrator-controlled). See [Auto-scale fleet capacity with Amazon GameLift Servers](fleets-autoscaling.md).

**Scaling policy**  
Rules that define when and how to automatically adjust fleet capacity. Can be target-based (maintain specific utilization) or rule-based (scale based on metric thresholds). See [Auto-scale fleet capacity with Amazon GameLift Servers](fleets-autoscaling.md).

**Server SDK**  
Software development kit that provides the tools and libraries needed to integrate your game server with Amazon GameLift Servers. Enables communication between your game server and the service for session management, health reporting, and status updates. See [Add Amazon GameLift Servers to your game server with the server SDK](gamelift-sdk-server-api.md).

**Session-based multiplayer**  
A multiplayer game architecture where gameplay occurs within discrete, time-limited sessions. Each session has a defined start and end, with players joining and leaving as needed. See [How hosting with Amazon GameLift Servers works](gamelift-howitworks.md).

**Spot instances**  
A type of Amazon EC2 instance that uses spare AWS capacity at reduced cost. Spot instances can be interrupted when AWS needs the capacity back, making them suitable for fault-tolerant game workloads. See [Build a queue for Spot Instances](spot-tasks.md).

**TLS certificate**  
A digital certificate used to enable encrypted communication between game clients and servers. Required for TLS-enabled fleets to ensure secure data transmission. See [Create an Amazon GameLift Servers managed EC2 fleet](fleets-creating.md).