

# Managing an Amazon GameLift Servers hosting solution (launch and beyond)
<a name="managing-hosting-solution"></a>

This section provides guidance on how to manage your Amazon GameLift Servers resources for the long term. Successfully launching your multiplayer game is just the beginning. Managing a production hosting solution requires ongoing attention to performance, cost optimization, security updates, and player experience. This section provides guidance on the operational aspects of running Amazon GameLift Servers in production, from day-one launch activities through long-term maintenance and optimization.

Whether you're preparing for launch, managing a live game, or optimizing an established hosting solution, these topics will help you maintain reliable, cost-effective game hosting that scales with your player base.

# Manage game hosting resources with Amazon GameLift Servers
<a name="gamelift-console-intro"></a>

Manage Amazon GameLift Servers resources, including builds, fleets, game session queues, and matchmakers. You can use the Amazon GameLift Servers console to scan resource lists, or view resource details including metrics. You can also retrieve resource information using the AWS SDK or AWS CLI for Amazon GameLift Servers 

## Amazon GameLift Servers console features
<a name="gamelift-console-features"></a>

Use the Amazon GameLift Servers console to view and manage your game hosting resources and ongoing hosting activity in near real time. The console offers a graphical interface for most of the functionality of the service API for Amazon GameLift Servers. You can use the console to: 
+ **Use the dashboard for a high-level snapshot.** You can see the numbers and current status of all your Amazon GameLift Servers hosting resources and follow links to get details on individual resources.
+ **Manage individual hosting resources.** You can create, view, and delete all Amazon GameLift Servers resources, and update their mutable properties. You can also view certain types of hosting activity, such as events and performance metrics.
+ **Interact with game and player session activity.** You can track game session and player session activity by fleet, and use this information to troubleshoot game session issues. View details on a game sessions, view player sessions for each game session, and look up player activity across multiple game sessions. You can also shut down individual game sessions as needed.

**Topics**
+ [Amazon GameLift Servers console features](#gamelift-console-features)
+ [Hosting dashboard in the Amazon GameLift Servers console](gamelift-console-dashboard.md)
+ [Game server builds](gamelift-console-builds.md)
+ [Fleets in the Amazon GameLift Servers console](gamelift-console-fleets.md)
+ [Aliases in the Amazon GameLift Servers console](gamelift-console-aliases.md)
+ [Game session queues in the Amazon GameLift Servers console](queues-console.md)

# Hosting dashboard in the Amazon GameLift Servers console
<a name="gamelift-console-dashboard"></a>

Use the Amazon GameLift Servers console dashboard to get a high-level snapshot about the current status of the Amazon GameLift Servers hosting resources in your AWS account. The **Amazon GameLift Servers dashboard** provides a view of the following:
+ The number of builds in **Ready**, **Initialized**, and **Failed** statuses. Choose **View builds** for details about builds in your current Region.
+ The number of fleets in all statuses. Choose **View fleets** for details about fleets in your current Region.
+ Your current resources.
+ New feature and service announcements.

**To open the Amazon GameLift Servers dashboard**
+ In the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), in the navigation pane, choose **Dashboard**.

From the dashboard, you can:
+ Prepare your game for launch by choosing **Prepare for launch** and filling out the corresponding launch questionnaire.
+ Request service quota increases in preparation for launches or in response to launches by choosing **View service quotas**.
+ View blog posts and detailed information about new features by choosing the link in the **Features spotlight**.

![\[The dashboard displays the status of all Amazon GameLift Servers resources in your current Region.\]](http://docs.aws.amazon.com/gameliftservers/latest/developerguide/images/gamelift-console-dashboard.png)


# Game server builds
<a name="gamelift-console-builds"></a>

The build resource represents your game server software. You upload your build package to Amazon GameLift Servers for deployment to managed EC2 fleets.

View information about game server builds in the Amazon GameLift Servers console or using the or AWS SDK for Amazon GameLift Servers.

------
#### [ Console ]

On the **Builds** page of the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), you can view information about and manage all the game server builds that you've uploaded to Amazon GameLift Servers for deployment on managed EC2 fleets. In the navigation pane, choose **Hosting**, **Managed EC2**, **Builds**.

The **Builds** page shows the following information for each build. You can adjust the table content as needed using the **Preferences** tool (see the ![\[Gear icon representing settings or configuration options.\]](http://docs.aws.amazon.com/gameliftservers/latest/developerguide/images/settings.png) icon in the upper right corner of the table). Custom preferences are saved to your AWS account user and are automatically applied whenever you view this page.

**Note**  
The **Builds** page shows builds in your current AWS Region only.
+ **Name** – The name associated with the uploaded build.
+ **Status** – The status of the build. Displays one of three status messages:
  + **Initialized** – The upload hasn't started or is still in progress.
  + **Ready** – The build is ready for fleet creation.
  + **Failed** – The build timed out before Amazon GameLift Servers received the binaries.
+ **Creation time** – The date and time that you uploaded the build to Amazon GameLift Servers.
+ **Build ID** – The unique ID assigned to the build on upload.
+ **Version** – The version label associated with the uploaded build.
+ **Operating system** – The OS that the build runs on. The build OS determines which operating system Amazon GameLift Servers installs on a fleet's instances.
+ **Size** – The size, in megabytes (MB), of the build file uploaded to Amazon GameLift Servers.
+ **Fleets** – The number of fleets deployed with the build.

From this page you can do any of the following:
+ View build details. Choose a build's name to open its build details page.
+ Create a new fleet from a build. Select a build, and then choose **Create fleet**.
+ Filter and sort the build list. Use the controls at the top of the table.
+ Delete a build. Select a build, and then choose **Delete**.

**Build details**  
On the **Builds** page, choose a build's name to open its details page. The **Overview** section of the details page displays the same build summary information as the **Builds** page. The **Fleets** section shows a list of fleets that are running the build, including the same summary information as the [**Fleets** page](gamelift-console-fleets.md).

------
#### [ AWS SDK ]

Use the following AWS CLI commands to retrieve information about this resource:
+ [ListBuild](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListBuilds.html)
+ [DescribeBuild](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeBuild.html)

------

# Update a game server build
<a name="gamelift-build-cli-uploading-update-build-files"></a>

When you deploy your game server build for Amazon GameLift Servers managed EC2 hosting, you upload your game server software and create an Amazon GameLift Servers build resource. After you've created an Amazon GameLift Servers build, you can update the build's metadata, but you can't update the build files themselves. To deploy updates to your game server build, you must upload a new set of files and create a new Amazon GameLift Servers build using the AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/gamelift/upload-build.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/upload-build.html) command. Alternatively, you can use the [https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-build.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-build.html) command to upload a new build from an Amazon S3 bucket that you control. Then deploy the new build by creating a new fleet for it.

You can update a build's metadata, including the name and description. For these tasks, use the Amazon GameLift Servers console or the [https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-build.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-build.html) AWS CLI command. 

## Automate your game build updates
<a name="gamelift-build-uploading-automate"></a>

Follow these tips to help automate and streamline the process of updating game server builds for Amazon GameLift Servers managed fleets:
+ **Use game session queues and swap out fleets as needed.** When sending game session requests to Amazon GameLift Servers, specify a game session queue instead of a specific fleet. With queues, you can add fleets with a new build and remove old fleets as needed. For more information, see [Configure game session placement](queues-intro.md).
+ **Use aliases to transfer players to a new game build.** When sending game session requests to Amazon GameLift Servers, specify a fleet alias instead of a fleet ID. For more information, see [Create an Amazon GameLift Servers alias](aliases-creating.md).
+ **Set up for iterative development.** During game development, explore options for setting up a hosted test environment that supports rapid iterative development. See [Set up for iterative development with Amazon GameLift Servers Anywhere](integration-dev-iteration.md).

Try out these resources from the [Amazon GameLift Servers Toolkit](https://github.com/aws/amazon-gamelift-toolkit) on GitHub:

**Fast build update tool (for development only)**  
This tool helps you modify game server builds that are already deployed on computes in a managed EC2 fleet, saving you time during fast development iteration. The tool has several options; you can replace the entire game build or change specific files, and you can manage how to restart game server processes after the updates. You can also use it to update all computes in a fleet or target individual computes.  
Visit the Amazon GameLift Servers Toolkit repo in GitHub to get the [fast build update tool](https://github.com/aws/amazon-gamelift-toolkit/tree/main/fast-build-update-tool) in GitHub and learn more about how to use it.

**Production deployment sample script**  
This script illustrates how you can automate the process of updating game server builds that are deployed on managed EC2 fleets in production. To use this script, your Amazon GameLift Servers hosting solution must use aliases to abstract fleet IDs. The sample script handles the following basic steps: upload an updated build, create a new build and deploy to a new fleet, redirect player traffic from an existing fleet to the new fleet, and delete the old fleet. Customize the sample script to meet your specific deployment requirements.  
Visit the Amazon GameLift Servers Toolkit repo in GitHub to get the [production deployment sample script](https://github.com/aws/amazon-gamelift-toolkit/tree/main/production-deployment-sample-script) in GitHub and learn more about how to use it.

# Fleets in the Amazon GameLift Servers console
<a name="gamelift-console-fleets"></a>

The fleet resource represents a set of compute machines that are deployed with and run your game servers. Depending on your hosting solution, you might have managed EC2 fleets, managed container fleets, Anywhere fleets, or a combination.

View information about fleets in the Amazon GameLift Servers console or using the or AWS SDK for Amazon GameLift Servers.

------
#### [ Console ]

You can view information on all the fleets created to host your games on Amazon GameLift Servers under your AWS account. In the console's left-side navigation, find the hosting option you want (Anywhere, Managed EC2, Managed containers), and choose **Fleets**. 

For each hosting option, the **Fleets** page lists fleets that are located in your currently selected AWS Region. From the **Fleets** page, you can create a new fleet or view additional detail on a fleet. A fleet's [detail page](gamelift-console-fleets-metrics.md) contains usage information, metrics, game session data, and player session data. You can also edit a fleet record or delete a fleet.

A **Fleets** page displays the following summary information by default. You can adjust the table content as needed using the **Preferences** tool (see the ![\[Gear icon representing settings or configuration options.\]](http://docs.aws.amazon.com/gameliftservers/latest/developerguide/images/settings.png) icon in the upper right corner of the table). Custom preferences are saved to your AWS account user and are automatically applied whenever you view this page.
+ **ID** – An identifier assigned to the fleet. This ID is unique within the AWS Region where the fleet is created.
+ **Name** – A friendly name given to the fleet.
+ **Status** – The status of the fleet: **New**, **Downloading**, **Building**, and **Active**.
+ **Creation time** – The date and time the fleet was created.
**Note**  
A fleet displays a warning icon for fleets that were created more than 90 days ago. As a best practice, we recommend replacing fleets every 30 days to maintain a secure and up-to-date runtime environment for your hosted game servers. For guidance, see [Security best practices for Amazon GameLift Servers](security-best-practices.md).
+ **Fleet type** – The availability of the instances used to host your games, which can potentially impact hosting costs. A managed fleet can use **On-Demand** (always available) or **Spot** (availability varies) instances.
+ **Active instances** – The number of EC2 instances in use for the fleet.
+ **Desired instances** – The number of EC2 instances to keep active.
+ **Game sessions** – The number of active game sessions running in the fleet. The data is delayed by five minutes.
+ **Player sessons** – The number of active player sessions in the fleet. The data is delayed by five minutes.

------
#### [ AWS SDK ]

Use the following AWS CLI commands to retrieve information about this resource:
+ Managed EC2 fleets
  + [ListFleets](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListFeets.html)
  + [ListCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListCompute.html)
  + [DescribeFleetAttributes](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeFleetAttributes.html)
  + [DescribeCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeCompute.html)
  + [DescribeFleetCapacity](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeFleetCapacity.html)
  + [DescribeFleetUtilization](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeFleetUtilization.html)
+ Managed container fleets
  + [ListContainerFleets](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListContainerFleets.html)
  + [DescribeContainerFleet](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeContainerFleet.html)
  + [ListContainerGroupDefinitions](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListContainerGroupDefinition.html)
  + [DescribeContainerGroupDefinition](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeContainerGroupDefinition.html)
+ 
  + [ListFleets](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListFeets.html)
  + [ListCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListCompute.html)
  + [DescribeFleetAttributes](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeFleetAttributes.html)
  + [DescribeCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeCompute.html)

------

# Update an Amazon GameLift Servers fleet configuration
<a name="fleets-editing"></a>

Use the Amazon GameLift Servers console or the AWS CLI to update your fleet settings, change remote locations, or delete a fleet. For managed fleets, you can't change a fleet's game server build or instance type. Instead, you must replace the fleet.

**Fast Build Update Tool (for development only)**  
With managed EC2 fleets, to deploy a game server build update, you need to upload each new build to Amazon GameLift Servers and create a new fleet for it.   
The Fast Build Update Tool lets you can bypass these steps during development, saving you time and allowing for faster development iteration. With this tool, you can quickly update your game build files across all computes in an existing fleet. The tool has several options; you can replace an entire game build or change 6 specific files, and you can manage how to restart game server processes after the updates. You can also use it to update individual computes in a fleet.  
To get the Fast Build Update Tool and learn more about how to use it, visit the Amazon GameLift Servers Toolkit repo for [ The Fast Build Update Tool](https://github.com/aws/amazon-gamelift-toolkit/tree/main/fast-build-update-tool) in Github. 

You can update mutable fleet attributes, port settings, and runtime configurations using the Amazon GameLift Servers console or the AWS CLI. To change scaling limits, see [Auto-scale fleet capacity with Amazon GameLift Servers](fleets-autoscaling.md).

------
#### [ Console ]

1. In the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), in the navigation pane, choose **Fleets**.

1. Choose the fleet you want to update. A fleet must be in `ACTIVE` status before you can edit it.

1. On the Fleet detail page, in any of the following sections, choose **Edit**.
   + **Fleet settings**
     + Change the fleet attributes such as **Name** and **Description**. 
     + Add or remove **Metric groups**, that Amazon CloudWatch uses to track aggregated Amazon GameLift Servers metrics for multiple fleets.
     + Update **Resource creation limit** settings. 
     + Turn game session protection on or off.
   + **Runtime configuration** – You can change any of the following settings of your runtime configurations and add or remove runtime configurations.
     + Change the **Launch path** of your game server.
     + Add, remove, or change optional **Launch parameters**.
     + Change the number of **Concurrent processes** that your game servers run.
   + **Game session activation** – Change how you want server processes to run and host game sessions by updating **Max concurrent game session activations** and **New activation timeout**.
   + **EC2 port settings** – Update the IP addresses and port ranges that allow inbound access to the fleet.

1. Choose **Confirm** to save changes.

------
#### [ AWS CLI ]

 

Use the following AWS CLI commands to update a fleet:
+ [update-fleet-attributes](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-fleet-attributes.html)
+ [update-fleet-port-settings](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-fleet-port-settings.html)
+ [update-runtime-configuration](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-runtime-configuration.html)

------

# Update fleet locations
<a name="fleets-update-locations"></a>

You can add or remove a fleet's remote locations using the Amazon GameLift Servers console or the AWS CLI. You can't change a fleet's home Region.

------
#### [ Console ]

1. In the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), in the navigation pane, choose **Fleets**.

1. Choose the fleet you want to update. A fleet must be in `ACTIVE` status before you can edit it.

1. On the Fleet detail page, choose the **Locations** tab to view the fleet's locations. 

1. To add new remote locations, choose **Add** and select the locations you want to deploy instances to. This list doesn't include instances where the fleet's instance type isn't available.

1. With new locations selected, choose **Add**. Amazon GameLift Servers adds the new locations to the list, with status set to `NEW`. Amazon GameLift Servers then begins provisioning an instance in each added location and preparing it to host game sessions.

1. To remove existing remote locations from the fleet, use the check boxes to select one or more listed locations. 

1. With one or more fleets selected, choose **Remove**. The removed locations remain in the list, with status set to `DELETING`. Amazon GameLift Servers then begins the process of terminating activity in the removed location. If there are active instances that are hosting game sessions, Amazon GameLift Servers uses the game server termination process to gracefully end game sessions, terminate game servers, and shut down instances.

------
#### [ AWS CLI ]

 

Use the following AWS CLI commands to update fleet locations:
+ [create-fleet-locations](https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-fleet-locations.html)
+ [delete-fleet-locations](https://docs.aws.amazon.com/cli/latest/reference/gamelift/delete-fleet-locations.html)

------

# Delete a fleet
<a name="fleets-deleting"></a>

You can delete a fleet when you no longer need it. Deleting a fleet permanently removes all data associated with game sessions and player sessions, and collected metric data. As an alternative, you can retain the fleet, disable auto scaling, and manually scale the fleet to 0 instances.

**Note**  
If the fleet has a VPC peering connection, first request authorization by calling [CreateVpcPeeringAuthorization](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateVpcPeeringAuthorization.html). Amazon GameLift Servers deletes the VPC peering connection during fleet deletion. 

You can use either the Amazon GameLift Servers console or the AWS CLI tool to delete a fleet. 

------
#### [ Console ]

1. In the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), in the navigation pane, choose **Fleets**.

1. Choose the fleet you want to delete. You can only delete fleets in `ACTIVE` or `ERROR` status.

1. Choose **Delete**.

1. In the **Delete fleet** dialog box, confirm the deletion by entering **delete**.

1. Choose **Delete**.

------
#### [ AWS CLI ]

 

Use the following AWS CLI command to delete a fleet:
+ [delete-fleet](https://docs.aws.amazon.com/cli/latest/reference/gamelift/delete-fleet.html)

------

# Fleet details in the Amazon GameLift Servers console
<a name="gamelift-console-fleets-metrics"></a>

Access a **Fleet** detail page from the dashboard or the **Fleets** page by choosing the fleet name.

On the fleet details page you can take the following actions:
+ Update a fleet's attributes, port settings, and runtime configuration.
+ Add or remove fleet locations.
+ Change fleet capacity settings. 
+ Set or change target-tracking auto scaling.
+ Delete a fleet.

## Details
<a name="fleets-summary"></a>

**Fleet settings**
+ **Fleet ID** – An identifier assigned to the fleet. This ID is unique within the AWS Region where the fleet is created.
+ **Fleet name** – A friendly name given to the fleet.
+ **ARN** – A unique identifier assigned to this fleet. A fleet's ARN identifies it as an Amazon GameLift Servers resource and specifies the region and AWS account.
+ **Description** – A short identifiable description of the fleet.
+ **Status** – Current status of the fleet, which may be **New**, **Downloading**, **Building**, and **Active**.
+ **Creation time** – The date and time when the fleet was created.
**Note**  
A fleet displays a warning icon for fleets that were created more than 90 days ago. As a best practice, we recommend replacing fleets every 30 days to maintain a secure and up-to-date runtime environment for your hosted game servers. For guidance, see [Security best practices for Amazon GameLift Servers](security-best-practices.md).
+ **Compute type** – The type of compute used to host your games. A fleet can be a **Managed EC2**, **Managed container**, or **Anywhere** fleet.
+ **Operating system** – The Amazon Machine Image (AMI) that's deployed to every instance in the fleet. The AMI version is the latest version available at the time the fleet was created.
+ **Certificate type** – The status of the fleet's ability to use a TLS certificate for authenticating a game server and encrypting all client/server communication.
+ **Fleet type** – The availability of the instances used to host your games, which can potentially impact hosting costs. A fleet can use **On-Demand** (always available) or **Spot** (availability varies) instances.
+ **EC2 instance type** – Amazon EC2 [instance type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) selected for the fleet when it was created.
+ **Instance role ARN** – An AWS IAM role that manages access to your other AWS resources, if one was provided during fleet creation.
+ **Instance role credentials provider** – An AWS IAM role that manages access to your other AWS resources, if one was provided during fleet creation.
+ **Metric group name** – The group used to aggregate metrics for multiple fleets.
+ **Game scaling protection policy** – Indicates whether the fleet's game session protection is enabled, which prevents active game sessions from ending prematurely during a scale-down event.
+ **Maximum game sessions per player** – The maximum number of sessions a player can create during the **Policy period**.
+ **Policy period** – The length of time used to limit a player's number of sessions created.

**Build details**  
The **Build details** section displays the build hosted on the fleet. Select the build name to see the full build detail page.

**Runtime configuration**  
The **Runtime configuration** section displays the server processes to launch on each instance. It includes the path for the game server executable and optional launch parameters.

**Game session activation**  
The **Game session activation** section displays the number of server processes that launch at the same time and how long to wait for the process to activate before terminating it.

**EC2 port settings**  
The **Ports** section displays the fleet's connection permissions, including IP address and port setting ranges.

## Metrics
<a name="fleets-metrics-tab"></a>

The **Metrics** tab displays a graphical representation of fleet metrics over time. For more information about using metrics in Amazon GameLift Servers, see [Monitor Amazon GameLift Servers with Amazon CloudWatch](monitoring-cloudwatch.md).

## Events
<a name="fleets-events-tab"></a>

The **Events** tab provides a log of all events that have occurred on the fleet, including the event code, message, and time stamp. See [Event](https://docs.aws.amazon.com/gamelift/latest/apireference/API_Event.html) descriptions in the Amazon GameLift Servers API Reference. 

## Scaling
<a name="fleets-scaling-tab"></a>

The **Scaling** tab contains information about fleet capacity, including the current status and capacity changes over time. It also provides tools to update capacity limits and manage auto scaling. 

**Scaling capacity**  
View current fleet capacity settings for each fleet location. For more information about changing limits and capacity, see [Scaling game hosting capacity with Amazon GameLift Servers](fleets-manage-capacity.md).
+ **AWS Location** – Name of a location where fleet instances are deployed. 
+ **Status** – Hosting status of the fleet location. Location status must be `ACTIVE` to be able to host games.
+ **Min size** – The smallest number of instances that must be deployed in the location.
+ **Desired instances** – The target number of active instances to maintain the location. When active instances and desired instances aren't' the same, a scaling event is started to start or shut down instances as needed until active instances equals desired instances.
+ **Max size** – The most instances that can be deployed in the location.
+ **Available** – The service limit on instances minus the number of instances in use. This value tells you the maximum number of instances that you can add to the location.

**Auto scaling policies**  
This section covers information about auto scaling policies that are applied to the fleet. You can set up or update a target-based policy. The fleet's rule-based policies, which must be defined using the AWS SDK or CLI, are displayed here. For more information about scaling, see [Auto-scale fleet capacity with Amazon GameLift Servers](fleets-autoscaling.md).

**Scaling history**  
View graphs of capacity changes over time.

## Locations
<a name="fleets-location-tab"></a>

The **Locations** tab lists all locations where fleet instances are deployed. Locations include the fleet's home Region and any remote locations that have been added. You can add or remove locations directly in this tab.
+ **Location** – Name of a location where fleet instances are deployed. 
+ **Status** – Hosting status of the fleet location. Location status tracks the process of activating the first instances in the location. Location status must be `ACTIVE` to be able to host games.
+ **Active instances** – The number of instances with server processes running on the fleet location.
+ **Active servers** – The number of game server processes able to host game sessions in the fleet location.
+ **Game sessions** – The number of game sessions active on instances in the fleet location.
+ **Player sessions** – The number of player sessions, which represent individual players, that are participating in game sessions that are active in the fleet location.

## Game sessions
<a name="fleets-game-sessions-tab"></a>

The **Game sessions** tab lists past and present game sessions hosted on the fleet, including some detail information. Choose a game session ID to access additional game session information, including player sessions. For more information about player sessions, see [Game and player sessions in the Amazon GameLift Servers console](gamelift-console-game-player-sessions-metrics.md).

# Game and player sessions in the Amazon GameLift Servers console
<a name="gamelift-console-game-player-sessions-metrics"></a>

You can use the Amazon GameLift Servers console to work with games sessions and player sessions. For more information about game sessions and player sessions, see [Amazon GameLift Servers and the player experience](game-sessions-intro.md). The Amazon GameLift Servers console provides information and tools to help you investigate issues with your game sessions.

What you can do:
+ Explore game session and player session activity that is hosted on a specific fleet.
+ Look up game session activity for a specific player across multiple fleets.
+ Shut down a specific game session. 

## View game session detail
<a name="game-sessions"></a>

Game session and player session data is organized by the fleet that hosts the game session.

**To access game session and player session information**

1. In the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), open the left navigation pane. Select a hosting solution type and open the **Fleets** page. For example:
   + **Hosting**, **Anywhere**, **Fleets**
   + **Hosting**, **Managed EC2**, **Fleets**
   + **Hosting**, **Managed containers**, **Fleets**

1. Each **Fleets** page displays the list of fleets for your currently selected AWS Region. Choose the fleet that you want to view game session data for.

1. In the fleet's detail page, open the **Game sessions** tab. This tab lists all game sessions that were hosted on the fleet, along with summary information. You can adjust the table content as needed using the **Preferences** tool (see the ![\[Gear icon representing settings or configuration options.\]](http://docs.aws.amazon.com/gameliftservers/latest/developerguide/images/settings.png) icon in the upper right corner of the table). Custom preferences are saved to your AWS account user and are automatically applied whenever you view this page.

1. Choose a game session from the list to view additional information. 

1. If the game session includes player session data, choose **View player sessions** to open the player sessions lookup tool with the game session ID automatically filled in.

The **Game sessions** detail include the following information:
+ **Status** – Game session status.
  + **Activating** – The instance is initiating a game session.
  + **Active** – A game session is running and available to receive players, depending on the session's [player creation policy](https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameSession.html).
  + **Terminated** – the game session has ended.
+ **ARN** – The Amazon Resource Name of the game session.
+ **Name** – Name generated for the game session.
+ **Location** – The location that Amazon GameLift Servers hosted the game session in.
+ **Creation time** – Date and time that Amazon GameLift Servers created the stream session.
+ **Ending time** – Date and time that the game session ended.
+ **DNS name** – The host name of the game session.
+ **IP address** – IP address specified for the game session.
+ **Port ** – Port number used to connect to the game session.
+ **Creator ID** – A unique identifier of the player that initiated the game session.
+ **Player session creation policy** – Indicates if the game session is accepting new players.
+ **Game scaling protection policy** – The type of game session protection to set on all new instances that Amazon GameLift Servers starts in the fleet.

**Game data**  
Game property data, formatted as a string, to send to your game session on start.

**Game properties**  
Game property data, formatted as key/value pairs, to send to your game session on start.

**Matchmaking data**  
If the game session was created with FlexMatch, matchmaking data describes information about the matchmaking configuration and rule set. This includes each match's player attributes and team assignments. Data is in JSON format. For more information about FlexMatch matchmaking, see [Build a matchmaker](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/matchmaker-build.html).

# Look up player session data
<a name="player-sessions"></a>

If your game hosting solution uses player sessions and provides unique player IDs, you can explore player-specific activity for past or present game sessions across multiple fleets. Open the Player session lookup tool using either of the following methods: 
+ In the Amazon GameLift Servers console, open the left navigation pane and choose **Player session lookup** and select the filter type to use.
+ When viewing a fleet's game session details, choose **View player sessions**. The lookup tool opens with the game session with the game session ID filter preselected and the game session value filled in. 

When using the lookup tool, you can provide any the following information:
+ A player session ID to get information on a specific player session.
+ A game session ID to get information on all player sessions for the requested game session. The results represent all players who reserved a slot or connected to the game session. You can optionally filter results by player session status.
+ A player ID to get information on all player sessions for the requested player. The results represent all game sessions that the player participated in.

**Note**  
The lookup tool searches for all player session activity across the currently selected AWS Region. If you have multiple fleets in the Region, the results include player session activity across all fleets. For multi-location fleets, the results also include player session activity across the fleets' remote locations.

 

The following player session data is collected for each game session:
+ **Player session ID** – The identifier assigned to the player session.
+ **Player ID** – A unique identifier for the player. Choose this ID to get additional player information.
+ **Game session ID** – The identifier assigned to the game session.
+ **Fleet ID** – The identifier assigned to the fleet that hosted the game session.
+ **Status** – The status of the player session. The following are possible statuses:
  + **Reserved** – Player session has been reserved, but the players isn't connected.
  + **Active** – Player session is connected to the game server.
  + **Completed** – Player session has ended; player is no longer connected.
  + **Timed Out** – Player failed to connect.
+ **Creation time** – The time the player connected to the game session.
+ **Ending time** – The time the player disconnected from the game session.
+ **Connection data** – IP address, DNS name and port that the player used to connect to the game session.
+ **Player data** – Information about the player that was provided during player session creation. 

# Shut down a game session
<a name="terminate-sessions"></a>

Use the Amazon GameLift Servers console to shut down a specific game session. This feature gives you a simple and fast method for locating a game session and sending a signal to terminate it. Another termination method requires that you find the fleet instance where the game session is running, remotely access the instance, and manually shut down the game session. 

You can shut down a game session for any reason. The most common reason is to resolve a game session that's failing to shut down naturally. As a result, the hosting resource for the game session can't be freed to host a new game session, and the fleet's hosting capacity is degraded.

**Note**  
This feature relies on certain configuration settings for your hosting solution. It has the following limitations:   
The game session must be hosted on a fleet that's running a game server build with server SDK for Amazon GameLift Servers v5 or greater. If your game servers are deployed with an older version, you need to use remote access to delete the game session.
If the game session is hosted on an Anywhere fleet, the fleet must be using the Amazon GameLift Servers Agent to manage game server processes. 

**To terminate a game session**

1. In the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), open the left navigation pane. Select a hosting solution type and open the **Fleets** page. For example:
   + **Hosting**, **Anywhere**, **Fleets**
   + **Hosting**, **Managed EC2**, **Fleets**
   + **Hosting**, **Managed containers**, **Fleets**

1. Each **Fleets** page displays the list of fleets for your currently selected AWS Region. Choose the fleet that's hosting the game session that you want to terminate. 

1. In the fleet's detail page, open the **Game sessions** tab. In the list of game sessions, select the one that you want to terminate, and choose the **Terminate** button.

1. In the **Terminate game session?** window, verify that you're shutting down the right game session and choose a termination method. 
   + Normal game session shutdown – This option sends a signal to the server process that's hosting the game session to shut down. If your game server build was properly integrated for Amazon GameLift Servers, the server process initiates its game session shutdown sequence, notifies Amazon GameLift Servers that it's ending, and stops. Depending on your game design, the shutdown sequence might include steps to gracefully complete the game session, such as saving data and notifying active players. This method might require a small delay to complete the game session shutdown sequence.
   + Immediate game session shutdown – This option sends a signal to a process manager to shut down the server process that's hosting the game session. This option bypasses the normal game session shutdown. It's able to terminate the game session even when the server process is unable to respond.

1. Confirm game session termination. You can track the shutdown progress on the **Game sessions** console page. The game session status will change to "Terminating", and then to "Terminated" when shutdown is complete.

**Related topics**
+ You can also shutdown game sessions using the AWS SDK and the AWS CLI. For more details and examples, see the Amazon GameLift Servers API Reference topic [TerminateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_TerminateGameSession.html).
+ For more information on game server integration and how a server process responds to signals from the Amazon GameLift Servers service, see [Add Amazon GameLift Servers to your game server with the server SDK](gamelift-sdk-server-api.md).

# Update an Amazon GameLift Servers managed container fleet
<a name="containers-update-fleet"></a>

You can update most of the properties of a managed container fleet, including the container group definitions. Depending on the settings being updated, a fleet update might initiate a new fleet deployment. In a fleet deployment, all instances in the fleet are removed and replaced with instances with the new configuration. Settings that require a deployment include: 
+ Container group definitions, including updates to container images
+ Connection port ranges and inbound permissions
+ Log configuration

You can track the status of fleet deployments in the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/) or the AWS Command Line Interface (AWS CLI) to create a container fleet. 

**Note**  
You can't update a fleet's runtime environment. At fleet creation, the fleet's Amazon Machine Image (AMI) is set to the latest available version of the Linux AMI. All container images that are deployed to this fleet must be compatible with this version. To change the fleet's AMI or upgrade to a newer version, you must create a new fleet. As a best practice, we recommend replacing your fleets every 30 days to maintain a secure and up-to-date runtime environment for your hosted game servers. For more guidance, see [Security best practices for Amazon GameLift Servers](security-best-practices.md).

------
#### [ Console ]

In the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), select the AWS Region where you want to create the fleet. The container group definitions must be in the same region where you want to create the fleet. 

Open the console’s left navigation bar and choose **Managed containers: Fleets**. On the managed container fleets page, select a fleet from the list and choose **Edit**.

1. Update container fleet settings as needed. When you're finished, choose **Create**. 

1. If your updates require a fleet deployment, you're asked to specify deployment options as follows: 
   + Game session protection. You can choose to protect fleet instances that have active game sessions (safe deployment). With this setting, the fleet instances aren't replaced until after the game sessions end. Alternatively, you can choose to replace fleet instances regardless of game session activity (unsafe deployment). Unsafe deployments are useful during development and testing phases in order to reduce deployment time. 
   + Minimum healthy percentage. You can manage how quickly the fleet's instances are replaced. Use this setting to maintain a minimal amount of healthy tasks the during deployment. A low value prioritizes deployment speed, while a high value ensures that game server availability remains high throughout the deployment. 
   + Deployment failure strategy. Decide what actions to take if a deployment fails. A deployment failure means that some of the updated containers have failed status checks and are considered impaired. You can set deployments to automatically roll back all fleet instances to the previously deployed state. Alternatively you can choose to maintain some of the impaired fleet instances for use in debugging.

If your request is successful, the console displays the **Deployments** tab for the managed container fleet. Use this tab to track the status of each deployment. If you start a new deployment for the fleet, this action automatically cancels any deployment that is currently in process for the fleet. 

------
#### [ AWS CLI ]

To create a container fleet with the AWS CLI, open a command line window and use the `update-container-fleet` command. For more information about this command, see [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/update-container-fleet.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/update-container-fleet.html) in the *AWS CLI Command Reference*.

The following example updates an existing container fleet with the following characteristics: 
+ It updates the game server container group definition to use version 2. 
+ It specifies safe deployment options. 

```
{
  "DeploymentConfiguration": { 
    "ImpairmentStrategy": "ROLLBACK",
    "MinimumHealthyPercentage": 75,
    "ProtectionStrategy": "WITH_PROTECTION"
  },
  "FleetId": "containerfleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
  "GameServerContainerGroupDefinitionName": "arn:aws:gamelift:us-west-2:111122223333:containergroupdefinition/MyAdventureGameContainerGroup:2"
}
```

------



# Update a container group definition for an Amazon GameLift Servers container fleet
<a name="containers-modify-groups"></a>

You can update most of the properties of a container group definition, including the individual container definitions. Container group definitions have a version number. When you update a container group definition, Amazon GameLift Servers saves the update and increments the definition's version number. When configuring a container fleet, you can specify which version of a container group definition to deploy.

After updating a container group definition, you can deploy the new version to a new or existing container fleet.

## Update a game server container group definition
<a name="containers-modify-groups-edit"></a>

This topic describes how to update game server container group definition using the Amazon GameLift Servers console or AWS CLI tools. For more detailed information on optional features, see [Customize an Amazon GameLift Servers container fleet](containers-design-fleet.md).

**To update a container group definition:**

------
#### [ Console ]

In the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), select the AWS Region where you want to create the container group. 

Open the console’s left navigation bar and choose **Managed containers: Group definitions**. On the Container groups definition page, choose a container group definition and version to update.

After you've saved your updates, you can use the new version to create a new container fleets or you can deploy the updates to an existing container fleet.

**Step 1: Define container group definition details**
+ You can update the total memory and vCPU limit settings. 

**Step 2: Add container definitions**

You can make the following container definition updates: 
+ Update existing container definitions. 
+ Add new support container definitions.
+ Remove support container definitions.

1. You can update the **ECR image URI**. Make sure to update the **Server SDK version** setting to match the new image.

1. You can update the **Internal container port range** as needed. Changes you make to these settings might impact a container fleet's connection port settings when these changes are deployed to a fleet. For more details, see [Configure network connections](containers-design-fleet.md#containers-custom-network). 

**Step 3: Configure dependencies**
+ You can change dependencies as needed. For more information, see [Set container dependencies](containers-design-fleet.md#containers-design-fleet-dependencies).

**Step 3: Review and create**
+ Review your container group definition updates. Use **Edit** to make additional changes in any section. When you're finished, choose **Create** to generate a new version of the container group definition. 

  If your request is successful, the console displays the detail page for the new container group definition resource. Initially the status is `COPYING`, as Amazon GameLift Servers starts taking snapshots of all the container images for the group. When this phase is complete, the container group definition status changes to `READY`. A container group definition must be in `READY` status before you can create a container fleet with it.

------
#### [ AWS CLI ]

When you use the AWS CLI to create or update a container group definition, maintain your container definition configurations in a separate `JSON` file. You can reference the file in your CLI command. See [Create a container definition `JSON` file](containers-create-groups.md#containers-definitions-create) for schema examples.

When updating a definition, you only need to specify the values you want to update. Amazon GameLift Servers retains any values that you don't include in your update request. If you're changing a container definition. However, when changing a container definition, provide a complete set.

**To update a container group definition**  
To update a new container group definition, use the `update-container-group-definition` CLI command. For more information about this command, see [update-container-group-definition](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-container-group-definition.html) in the *AWS CLI Command Reference*.  

**Example : game server container group**  
You can specify a container group definition version when retrieving, updating, or deleting a container group definition, or when creating or updating a container fleet. Each container group definition has a version property. In addition, the and definition's ARN value specifies the version number.  
This example illustrates a request for a change to a game server container group definition. It assumes that you’ve created a JSON file with the container definitions for this group. This example uses the ARN value for definition name, and specifies that the update is to version 1.  

```
aws gamelift update-container-group-definition \
    --name arn:aws:gamelift:us-west-2:111122223333:containergroupdefinition/MyAdventureGameContainerGroup:1 \
    --operating-system AMAZON_LINUX_2023 \
    --container-group-type GAME_SERVER \
    --total-memory-limit-mebibytes 4096 \
    --total-vcpu-limit 1 \
    --container-definitions file://SimpleServer.json
```

------

## Clone a container group definition
<a name="containers-create-groups-clone"></a>

You can use the Amazon GameLift Servers console to clone an existing container group definition. 

**To clone a container group**

1. In the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), go to the left navigation pane and choose **Container groups**.

1. On the **Container groups** list page, select the existing container group that you want to clone. After you select a container group, the **Clone** button is active.

1. Choose **Clone**. This action opens the container group creation wizard with pre-filled settings.

1. Enter a new name for the cloned container group. Container group in the same region must have unique names. 

1. Step through the container group and container definition pages, review, and **Create** the new container group.

# Delete a container group definition for an Amazon GameLift Servers container fleet
<a name="containers-delete-groups"></a>

You have several options for deleting a container group definition. When you delete a container group definition, this action also deletes all the container definitions in the container group.

Container group definitions can have multiple versions. Container group versions have the same name, but have a different version number. Container group definition ARNs specify both the name and version.

You can specify a container group definition version when retrieving, updating, or deleting a container group definition, or when creating or updating a container fleet. Each container group definition has a version property. In addition, the definition's ARN value specifies the version number.

There are several ways to delete container group definitions: 
+ You can delete all versions of a specific definition.
+ You can delete one particular version of a specific definition.
+ You can keep some number of newest versions and delete the older versions of a specific definition. For example, you might delete all versions older than version 5.

You can delete a container group definition version only if it's not being used in a container fleet. 

**To delete a container group definition**

------
#### [ Console ]

In the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), select the AWS Region where you want to create the container group. 

Open the console’s left navigation bar and choose **Managed containers: Group definitions**. On the Container group definitions page, select the definition you want to modify and choose **Delete**.

You're prompted to select the type of deletion you want to make and specify additional settings depending on the delete type. 

------
#### [ AWS CLI ]
+ To delete a container group definition, use the `delete-container-group-definition` CLI command and provide values for the type of delete you want to do. For more information about this command, see [delete-container-group-definition](https://docs.aws.amazon.com/cli/latest/reference/gamelift/delete-container-group-definition.html) in the *AWS CLI Command Reference*.

  This example illustrates a request to delete all versions of game server container group definition older than version 5.   
**Example**  

  ```
  aws gamelift delete-container-group-definition \
      --name MyAdventureGameContainerGroup \
      --version-count-to-retain 5 \
  ```

------

# Aliases in the Amazon GameLift Servers console
<a name="gamelift-console-aliases"></a>

The alias resource represents a pointer to a fleet or terminal destination. They are used to direct player traffic to specific hosting destinations. Use an alias to abstract a destination so that you can more easily redirect traffic when you update your hosting fleets.

View information about aliases in the Amazon GameLift Servers console or using the or AWS SDK for Amazon GameLift Servers.

------
#### [ Console ]

The **Alias** page displays information about Amazon GameLift Servers aliases that direct traffic specific hosting destinations. To view aliases, choose **Hosting**, **Aliases** in the navigation pane. 

You can do the following on the aliases page:
+ Create a new alias. Choose **Create alias**.
+ Filter and sort the aliases table. Use the controls at the top of the table. You can adjust the table content as needed using the **Preferences** tool (see the ![\[Gear icon representing settings or configuration options.\]](http://docs.aws.amazon.com/gameliftservers/latest/developerguide/images/settings.png) icon in the upper right corner of the table). Custom preferences are saved to your AWS account user and are automatically applied whenever you view this page.
+ View alias details. Choose an alias name to open the alias detail page.
+ Delete an alias. Choose an alias and then choose **Delete**.

**Alias details**  
The alias details page displays information about the alias. 

From this page you can: 
+ Edit an alias. Choose **Edit**.
+ View the fleets you associated with the alias.
+ Delete an alias. Choose **Delete**.

Alias detail information includes: 
+ **ID** – The unique number used to identify the alias.
+ **Description** – The description of the alias.
+ **ARN** – The Amazon Resource Name of the alias.
+ **Creation** – The date and time the alias was created.
+ **Last updated** – The date and time that the alias was last updated.
+ **Routing type** – The routing type for the alias, which can be one of these:
  + **Simple** – Routes player traffic to a specified fleet ID. You can update the fleet ID for an alias at any time.
  + **Terminal** – Passes a message back to the client. For example, you can direct players who are using an out-of-date client to a location where they can get an upgrade.
+ **Tags** – Key and value pairs used to identify the alias.

------
#### [ AWS SDK ]

Use the following AWS CLI commands to retrieve information about this resource:
+ [ListAliases](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListAliases.html)
+ [DescribeAlias](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeAlias.html)

------

# Edit an alias
<a name="aliases-editing"></a>

You can edit an alias using the Amazon GameLift Servers console or with the AWS CLI command [update-alias](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-alias.html).

This topic describes how to edit an Amazon GameLift Servers alias for use with game session placement. You can make the following edits: 

**To edit an alias**

Use either the Amazon GameLift Servers console or the AWS Command Line Interface (AWS CLI) to edit an alias. 

------
#### [ Console ]

In the [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), use the navigation pane to open the **Aliases** page.

1. Select the alias you want to edit and choose **Edit**. If you don't see the alias you want to edit, check your currently selected AWS Region.

1. On the **Edit alias** page, you can make the following edits:
   + Change the alias name.
   + Change the alias description.
   + Change the routing strategy from simple to terminal, or from terminal to simple.
   + For an alias with a simple routing strategy, change the fleet ID the alias is associated with.
   + For an alias with a terminal routing strategy, change the message text.

1. Choose **Save changes**. When updating the fleet ID for an alias with a simple routing strategy, it may take up to 2 minutes for the transition to complete. During this time, new game session placements might take place on the old fleet.

------
#### [ AWS CLI ]

Use the [https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-alias.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-alias.html) command to make changes to an alias resource. You can update an alias resource in your current default AWS Region, or you can add a `--region` tag to specify a different AWS Region.

You can change the following properties: 
+ Alias name.
+ Alias description.
+ Routing strategy type. Be sure to provide a fleet ID or a message string for the new routing strategy.
+ Fleet ID for an existing simple routing strategy. The fleet ID must be in the same region as the alias.
+ Message string for an existing terminal routing strategy.

------

# Game session queues in the Amazon GameLift Servers console
<a name="queues-console"></a>

The queue resource represents your configuration of the game session placement component. It determines how Amazon GameLift Servers searches for and chooses the best possible compute resource to host a new game session, based on your configuration choices.

View information about game session queues in the Amazon GameLift Servers console or using the or AWS SDK for Amazon GameLift Servers.

------
#### [ Console ]

You can view information on all queues, which are used to process requests for new game sessions. The queues page shows game session queues in the currently selected AWS Region. From the **Queues** page, you can create a new queue, delete existing queues, or open a details page for a selected queue. Each queue details page contains the queue's configuration and metrics data. For more information about queues, see [Configure game session placement](queues-intro.md).

The queues page displays the following summary information for each queue. You can adjust the table content as needed using the **Preferences** tool (see the ![\[Gear icon representing settings or configuration options.\]](http://docs.aws.amazon.com/gameliftservers/latest/developerguide/images/settings.png) icon in the upper right corner of the table). Custom preferences are saved to your AWS account user and are automatically applied whenever you view this page.
+ **Queue name** – The name assigned to the queue. Requests for new game sessions specify a queue by this name.
+ **Queue timeout** – Maximum length of time, in seconds, that a game session placement request remains in the queue before timing out.
+ **Destinations in queue** – Number of fleets listed in the queue configuration. Amazon GameLift Servers places new game sessions on any fleet in the queue.

**View queue details**  
You can access detailed information on any queue, including the queue configuration and metrics. To open a queue details page, go to the **Queues** page and choose a queue name.

The queue detail page displays a summary table and tabs containing additional information. On this page you can do the following: 
+ Update the queue's configuration, list of destinations and player latency policies. Choose **Edit**. 
+ Delete a queue. After you delete a queue, all requests for new game sessions that reference that queue name will fail. Choose **Delete**.
**Note**  
To restore a deleted queue, create a new queue with the deleted queue's name.

**Details**  
The **Overview** section displays the queue's Amazon Resource Name (**ARN**) and the **Timeout**. You can use the ARN when referencing the queue in other actions or areas of Amazon GameLift Servers. The timeout is the maximum length of time, in seconds, that a game session placement request remains in the queue before timing out.

**Event notification**  
The **Event notification** section lists the **SNS topic** Amazon GameLift Servers publishes event notifications to and the **Event data** that is added to all events created by this queue.

**Tags**  
The **Tags** table displays the keys and values used to tag the resource. For more information about tagging, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).

**Metrics**  
The **Metrics** tab shows a graphical representation of queue metrics over time.

Queue metrics include a range of information describing placement activity across the queue, including successful placements organized by Region. You can use Region data to understand where you are hosting your games. Regional placement metrics can help to detect issues with the overall queue design. 

Queue metrics are also available in Amazon CloudWatch. For descriptions of available metrics, see [Amazon GameLift Servers metrics for queues](monitoring-cloudwatch.md#gamelift-metrics-queue).

**Destinations**  
The **Destinations** tab shows all fleets or aliases listed for the queue.

When Amazon GameLift Servers searches the destinations for available resources to host a new game session, it searches the default order listed here. As long as there is capacity on the first destination listed, Amazon GameLift Servers places new game sessions there. You can have individual game session placement requests override the default order by providing player latency data. This data tells Amazon GameLift Servers to search for an available destination with the lowest average player latency. For more information about designing your queues, see [Customize a game session queue](queues-design.md).

**Session placement**  
Configuration settings that customize the placement process for your game.

**Player latency policies**  
The **Player latency policies** section shows all policies that the queue uses. The tables lists the policies in the order they're enforced.

**Locations**  
The **Locations** section shows the locations that this queue can put a game session in.

**Priority**  
The **Priority** section shows the order that the queue evaluates a game sessions details.

**Location order**  
The **Location order** section shows the default order that the queue uses when placing game sessions. The queue uses this order if you haven't defined other types of priority.

------
#### [ AWS SDK ]

Use the following AWS CLI commands to retrieve information about this resource:
+ [DescribeGameSessionQueues](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeGameSessionQueues.html)

------

# Prepare for launch with Amazon GameLift Servers hosting
<a name="gamelift_quickstart_customservers_checklist"></a>

Use the following checklists to validate each deployment phase of your game. Items marked **[Critical]** are critical for your production launch.

Download and complete the Amazon GameLift Servers launch questionnaire, which is available in the [https://console.aws.amazon.com/gamelift/prepare-to-launch](https://console.aws.amazon.com/gamelift/prepare-to-launch). We want every game developer using Amazon GameLift Servers to have a smooth launch day, and the requested information helps us help you prepare for upcoming load testing, soft launch or public launch. Plan to submit the completed questionnaire at least three (3) months before conducting your first load test. 

**Topics**
+ [Get your game ready](#gamelift_quickstart_customservers_prepgameserver_checklist)
+ [Prepare for testing](#gamelift_quickstart_customservers_test_checklist)
+ [Prepare for launch](#gamelift_quickstart_customservers_launch_checklist)
+ [Plan for post-launch updates](#gamelift_quickstart_customservers_launch_postchecklist)

## Get your game ready
<a name="gamelift_quickstart_customservers_prepgameserver_checklist"></a>
+ **[Critical]** Verify that you've completed all the [development roadmap steps ](getting-started-intro.md) for your hosting solution, and that you have all the required components in place, including and integrated game server, a backend service for game clients, hosting fleets, and a game session placement method (such as a queue). 
+ **[Critical]** [Create AWS Identity and Access Management (IAM) roles](setting-up-aws-login.md) that allow your game server to access other AWS resources while running.
+ **[Critical]** Design and implement failover to other hosting resources as needed. 
+ [Plan the rollout of fleets to your target locations](gamelift-regions.md), considering your game's queue and fleet structure.
+ [Automate your deployment](resources-cloudformation.md) using infrastructure as code (IaC) with CloudFormation and the AWS Cloud Development Kit (AWS CDK).
+ [Collect logs and analytics](monitoring-overview.md) using Amazon CloudWatch and Amazon Simple Storage Service (Amazon S3).

## Prepare for testing
<a name="gamelift_quickstart_customservers_test_checklist"></a>
+ **[Critical]** [Request increases for Amazon GameLift Servers service quotas](limits-regions.md) and other AWS service quotas so that your live environment can scale up to production needs.
+ **[Critical]** Verify that the open ports on live fleets match the range of ports that your servers could use.
+ **[Critical]** Close RDP port 3389 and SSH port 22.
+ Develop a plan for the DevOps management of your game. If you're using Amazon CloudWatch Logs or Amazon CloudWatch custom metrics, define alarms for severe or critical problems on the server fleet. Simulate failures and test the runbooks.
+ Verify that the compute resources you're using can support the number of server processes that you want to run concurrently on each compute. 
+ [Tune your scaling policy](fleets-manage-capacity.md) to be more conservative at first and provide more idle capacity than you think you need. You can optimize for cost later. Consider the use of target-based scaling policy with 20 percent idle capacity.
+ For FlexMatch, use[ latency rules](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-intro.html) to match players who are geographically near each other. Test how this behaves under load with synthetic latency data from your load test client.
+ Load test your player authentication and game session infrastructure to see if it scales effectively to meet demand.
+ Verify that a server left running for several days can still accept connections.
+ Raise your Support plan level to Business or Enterprise so that AWS can respond to you during problems or outages.

## Prepare for launch
<a name="gamelift_quickstart_customservers_launch_checklist"></a>
+ **[Critical]**[ Set the fleet protection policy](fleets-creating.md) to full protection on all live fleets so that scaling down doesn't stop active game sessions.
+ **[Critical]** [Set fleet maximum sizes](fleets-capacity-limits.md) high enough to accommodate peak anticipated demand, at minimum. We recommend that you double your maximum size for unanticipated demand.
+ Encourage your entire development team to participate in the launch event and monitor your game launch in a launch room.
+ Monitor player latency and player experience.

## Plan for post-launch updates
<a name="gamelift_quickstart_customservers_launch_postchecklist"></a>
+ [Tune scaling policy](fleets-manage-capacity.md) to minimize idle capacity based on player usage.
+ [Modify FlexMatch rules](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-intro.html) or [add hosting locations](gamelift-compute.md#gamelift-compute-location) based on player latency data and revised requirements.
+ Optimize the runtime configuration to run as many games sessions as possible on each computing resource. Mazimizing performance efficiency in this way can directly affect your fleet costs, because you might be able to run more server processes with the same compute resources. 
+ [Use your analytics data](monitoring-overview.md) to drive continued development, improve player experience and game longevity, and optimize monetization.

# Manage Amazon GameLift Servers hosting resources using CloudFormation
<a name="resources-cloudformation"></a>

You can use CloudFormation to manage your Amazon GameLift Servers resources. In CloudFormation, you create a template that models each resource and then use the template to create your resources. To update resources, you make the changes to your template and use CloudFormation to implement the updates. You can organize your resources into logical groups, called stacks and stack sets. 

Using CloudFormation to maintain your Amazon GameLift Servers hosting resources offers a more efficient way to manage sets of AWS resources. You can use version control to track template changes over time and coordinate updates made by multiple team members. You can also reuse templates. For example, when deploying a game across multiple Regions, you might use the same template to create identical resources in each Region. You can also use these templates to deploy the same sets of resources in another partition. 

For more information about CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/). To view template information for Amazon GameLift Servers resources, see the [Amazon GameLift Servers resource type reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_GameLift.html).

## Best practices
<a name="resources-cloudformation-bestpractices"></a>

For detailed guidance on using CloudFormation, see the [CloudFormation best practices](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html) in the *AWS CloudFormation User Guide*. In addition, these best practices have special relevance with Amazon GameLift Servers.
+ **Consistently manage your resources through CloudFormation.** If you change your resources outside of CloudFormation your resources will get out of sync with your resource templates.
+ **Use CloudFormation stacks and stack sets to efficiently manage multiple resources.** 
  + Use stacks to manage groups of connected resources. For example, a stack that contains a build, a fleet that references the build, and an alias that references the fleet. If you update your template to replace a build, CloudFormation replaces the fleets connected to the build. CloudFormation then updates the existing aliases to point to the new fleets. For more information, see [Working with stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html) in the *AWS CloudFormation User Guide*.
  + Use CloudFormation stack sets if you're deploying identical stacks across multiple regions or AWS accounts. For more information, see [Working with stack sets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) in the *AWS CloudFormation User Guide*.
+ **If you are using Spot Instances, include an On-Demand Fleet as a back-up.** We recommend setting up your templates with two fleets in each region, one fleet with Spot Instances, and one fleet with On-Demand Instances.
+ **Group your location-specific resources and global resources into separate stacks when you are managing resources in multiple locations.**
+ **Place your global resources close to the services that use it.** Resources like queues and matchmaking configurations tend to receive a high volume of requests from specific sources. By placing your resources close to the source of those requests, you minimize the request travel time and can improve overall performance.
+ **Place your matchmaking configuration in the same Region as the game session queue that it uses.**
+ **Create a separate alias for each fleet in the stack.**

## Using CloudFormation stacks
<a name="resources-cloudformation-multistack"></a>

We recommend the following structures to use when setting up CloudFormation stacks for Amazon GameLift Servers resources. Your optimal stack structure varies depending on if you are deploying your game in one location or multiple locations. 

### Stacks for a single location
<a name="resources-cloudformation-multistack-singleregion"></a>

To manage Amazon GameLift Servers resources in a single location, we recommend a two-stack structure: 
+ **Support stack** – This stack contains resources that your Amazon GameLift Servers resources depend on. At a minimum, this stack should include the S3 bucket where you store your custom game server or Realtime script files. The stack should also include an IAM role that gives Amazon GameLift Servers permission to retrieve your files from the S3 bucket when creating an Amazon GameLift Servers build or script resource. This stack might also contain other AWS resources that are used with your game, such as DynamoDB tables, Amazon Redshift clusters, and Lambda functions. 
+ **Amazon GameLift Servers stack **– This stack contains all of your Amazon GameLift Servers resources, including the build or script, a set of fleets, aliases, and game session queue. CloudFormation creates a build or script resource with files stored in the S3 bucket location and deploys the build or script to one or more fleet resources. Each fleet should have a corresponding alias. The game session queue references some or all of the fleet aliases. If you are using FlexMatch for matchmaking, this stack also contains a matchmaking configuration and rule set. 

The diagram below illustrates a two-stack structure for deploying resources in a single AWS Region. 

![\[\]](http://docs.aws.amazon.com/gameliftservers/latest/developerguide/images/resources-cf_single_vsd.png)


### Stacks for multiple regions
<a name="resources-cloudformation-multistack-multiregion"></a>

When deploying your game in more than one Region, keep in mind how resources can interact across Regions. Some resources, such as Amazon GameLift Servers fleets, can only reference other resources in the same Region. Other resources, such as an Amazon GameLift Servers queue, are Region agnostic. To manage Amazon GameLift Servers resources in multiple Regions, we recommend the following structure. 
+ **Regional support stacks** – These stacks contain resources that your Amazon GameLift Servers resources depend on. This stack must include the S3 bucket where you store your custom game server or Realtime script files. It might also contain other AWS resources for your game, such as DynamoDB tables, Amazon Redshift clusters, and Lambda functions. Many of these resources are Region specific, so you must create them in every Region. Amazon GameLift Servers also needs an IAM role that allows access to these support resources. Because an IAM role is Region agnostic, you only need one role resource, placed in any Region and referenced in all of the other support stacks.
+ **Regional Amazon GameLift Servers stacks** –This stack contains the Amazon GameLift Servers resources that must exist in each region where your game is being deployed, including the build or script, a set of fleets, and aliases. CloudFormation creates a build or script resource with files in an S3 bucket location, and deploys the build or script to one or more fleet resources. Each fleet should have a corresponding alias. The game session queue references some or all of the fleet aliases. You can maintain one template to describe this type of stack and use it to create identical sets of resources in every Region.
+ **Global Amazon GameLift Servers stack** – This stack contains your game session queue and matchmaking resources. These resources can be located in any Region and are usually placed in the same Region. The queue can reference fleets or aliases that are located in any Region. To place additional queues in different Regions, create additional global stacks. 

The diagrams below illustrates a multistack structure for deploying resources in several AWS Regions. The first diagram shows a structure for a single game session queue. The second diagram shows a structure with multiple queues.

![\[\]](http://docs.aws.amazon.com/gameliftservers/latest/developerguide/images/resources-cf_multi_vsd.png)


![\[\]](http://docs.aws.amazon.com/gameliftservers/latest/developerguide/images/resources-cf_multiqueue_vsd.png)


## Updating builds
<a name="resources-cloudformation-updatebuild"></a>

Amazon GameLift Servers builds are immutable, as is the relationship between a build and a fleet. As a result, when you update your hosting resources to use a new set of game build files, the following need to happen: 
+ Create a new build using the new set of files (replacement).
+ Create a new set of fleets to deploy the new game build (replacement).
+ Redirect aliases to point to the new fleets (update with no interruption). 

For more information, see [ Update behaviors of stack resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html) in the *AWS CloudFormation User Guide*. 

### Deploy build updates automatically
<a name="resources-cloudformation-updatebuild-auto"></a>

When updating a stack containing related build, fleet and alias resources, the default CloudFormation behavior is to automatically perform these steps in sequence. You trigger this update by first uploading the new build files to a new S3 location. Then you modify your CloudFormation build template to point to the new S3 location. When you update your stack with the new S3 location, this triggers the following CloudFormation sequence: 

1. Retrieves the new files from S3, validates the files, and creates a new Amazon GameLift Servers build. 

1. Updates the build reference in the fleet template, which triggers new fleet creation.

1. After the new fleets are active, updates the fleet reference in the alias, which triggers the alias to update to target the new fleets.

1. Deletes the old fleet.

1. Deletes the old build.

If your game session queue uses fleet aliases, player traffic is automatically switched to the new fleets as soon as the aliases are updated. The old fleets are gradually drained of players as game sessions end. Auto scaling handles the task of adding and removing instances from each set of fleets as player traffic fluctuates. Alternatively, you can specify an initial desired instance count to quickly ramp up for the switch and enable auto scaling later.

You can also have CloudFormation retain resources instead of deleting them. For more information, see [RetainResources](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeleteStack.html) in the *AWS CloudFormation API Reference*.

### Deploy build updates manually
<a name="resources-cloudformation-updatebuild-manual"></a>

If you want to have more control over when new fleets go live for players, you have some options. You can choose to manage aliases manually using the Amazon GameLift Servers console or the CLI. Alternatively, instead of updating your build template to replace the build and fleets, you can add a second set of build and fleet definitions to your template. When you update the template, CloudFormation creates a second build resource and corresponding fleets. Since the existing resources are not replaced, they are not deleted, and the aliases remain pointing at original fleets. 

The main advantage with this approach is that it gives you the flexibility. You can create separate resources for the new version of your build, test the new resources, and control when the new fleets go live to players. A potential drawback is that it requires twice as many resources in each Region for a brief period of time.

The following diagram illustrates this process. 

![\[\]](http://docs.aws.amazon.com/gameliftservers/latest/developerguide/images/resources-cf_updating_vsd.png)


### How rollbacks work
<a name="resources-cloudformation-updatebuild-rollbacks"></a>

When executing a resource update, if any step is not completed successfully, CloudFormation automatically initiates a rollback. This process reverses each step in sequence, deleting the newly created resources. 

If you need to manually trigger a rollback, change the build template's S3 location key back to the original location and update your stack. A new Amazon GameLift Servers build and fleet are created, and the alias switches over to the new fleet after the fleet is active. If you are managing aliases separately, you need to switch them to point to the new fleets.

For more information about how to handle a rollback that fails or gets stuck, see [Continue rolling back an update](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html) in the *AWS CloudFormation User Guide*. 