

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Personalize para sua solução de hospedagem de jogos
<a name="customize-solution-intro"></a>

Com uma solução básica de hospedagem de jogos, use os tópicos a seguir para personalizá-la e aprimorá-la a fim de melhorar a experiência do jogador, otimizar custos e adicionar funcionalidades avançadas. Esta seção aborda várias opções de personalização organizadas pelo componente que elas afetam principalmente. Escolha as personalizações que melhor atendem aos requisitos e à base de jogadores do seu jogo.

**Tópicos**
+ [Personalizações de compilação de servidores de jogos](customize-game-server-builds.md)
  + [Conecte seu servidor de jogos Amazon GameLift Servers hospedado a outros AWS recursos](gamelift-sdk-server-resources.md)
  + [Permita que seu servidor de jogos acesse os dados da frota do Amazon GameLift Servers](gamelift-sdk-server-fleetinfo.md)
  + [Configurar o emparelhamento de VPC para o Amazon GameLift Servers](vpc-peering.md)
+ [Sessões de jogadores e personalizações de criação de partidas](customize-player-sessions-matchmaking.md)
  + [Gerar IDs de jogador](player-sessions-player-identifiers.md)
  + [Adição da criação de partidas do FlexMatch ao Amazon GameLift Servers](gamelift-match-intro.md)
+ [Personalizações de colocação de sessões de jogo](customize-game-session-placement.md)
  + [Personalizar uma fila de sessões de jogo](queues-design.md)
  + [Priorize o posicionamento de sessões de jogo](queues-design-priority.md)
  + [Construir uma fila para instâncias Spot](spot-tasks.md)
+ [Personalizações dos recursos de hospedagem](fleets-design.md)
  + [Escolher recursos de computação para uma frota gerenciada](gamelift-compute.md)
  + [Personalizar uma frota de contêineres do Amazon GameLift Servers](containers-design-fleet.md)
  + [Reduza os custos de hospedagem de jogos com frotas Spot](fleets-spot.md)
  + [Otimize a configuração de runtime do servidor de jogos no Amazon GameLift Servers gerenciado](fleets-multiprocess.md)
  + [Trabalhar com o Amazon GameLift Servers Agent](integration-dev-iteration-agent.md)
  + [Resumir uma designação de frota do Amazon GameLift Servers com um alias](aliases-intro.md)

# Personalizações de compilação de servidores de jogos
<a name="customize-game-server-builds"></a>

As personalizações de criação do servidor de jogos oferecem oportunidades de aprimorar a funcionalidade do servidor de jogos, incluindo o aproveitamento de outros AWS serviços. Essas personalizações ampliam os recursos do seu servidor de jogos além da hospedagem básica para oferecer suporte a recursos e integrações avançados.

# Conecte seu servidor de jogos Amazon GameLift Servers hospedado a outros AWS recursos
<a name="gamelift-sdk-server-resources"></a>

Ao criar uma versão de servidor de jogos para implantação em frotas do Amazon GameLift Servers, talvez você queira que as aplicações em sua versão de jogo se comuniquem de forma direta e segura com outros recursos AWS que você possui. Como o Amazon GameLift Servers gerencia suas frotas de hospedagem de jogos, você deve dar ao Amazon GameLift Servers acesso limitado a esses recursos e serviços.

Alguns exemplos de cenários incluem: 
+ Use um CloudWatch agente da Amazon para coletar métricas, registros e rastreamentos de frotas gerenciadas do EC2 e frotas do Anywhere.
+ Envie dados de log da instância para o Amazon CloudWatch Logs.
+ Obtenha arquivos de jogos armazenados em um bucket do Amazon Simple Storage Service (Amazon S3).
+ Ler e gravar dados de jogos (como modos de jogo ou inventário) armazenados em um banco de dados do Amazon DynamoDB ou em outro serviço de armazenamento de dados.
+ Envie sinais diretamente para uma instância usando o Amazon Simple Queue Service (Amazon SQS).
+ Acesse os recursos personalizados que são implantados e executados no Amazon Elastic Compute Cloud (Amazon EC2).

O Amazon GameLift Servers oferece suporte aos seguintes métodos para estabelecer acesso:
+ [Acesse AWS recursos com uma função do IAM](#gamelift-sdk-server-resources-roles)
+ [Acesse AWS recursos com o peering de VPC](#gamelift-sdk-server-resources-vpc)

## Acesse AWS recursos com uma função do IAM
<a name="gamelift-sdk-server-resources-roles"></a>

Use uma perfil do IAM para especificar quem pode acessar seus recursos e definir limites para esse acesso. Partes confiáveis podem “assumir” uma função e obter credenciais de segurança temporárias que as autorizem a interagir com os recursos. Quando as partes fazem solicitações de API relacionadas ao recurso, elas devem incluir as credenciais.

Para configurar o acesso controlado por um perfil do IAM, execute as seguintes tarefas: 

1. [Crie o perfil do IAM](#gamelift-sdk-server-resources-roles-create)

1. [Modifique os aplicativos para adquirir credenciais](#gamelift-sdk-server-resources-roles-apps)

1. [Associe uma frota ao perfil do IAM](#gamelift-sdk-server-resources-roles-fleet)

### Crie o perfil do IAM
<a name="gamelift-sdk-server-resources-roles-create"></a>

Nesta etapa, você cria uma função do IAM, com um conjunto de permissões para controlar o acesso aos seus AWS recursos e uma política de confiança que concede Amazon GameLift Servers direitos de uso das permissões da função.

Para obter instruções sobre como configurar o perfil do IAM, consulte [Configurar um perfil de serviço do IAM para o Amazon GameLift Servers](setting-up-role.md). Ao criar a política de permissões, escolha serviços, recursos e ações específicos com os quais seus aplicativos precisam trabalhar. Como melhor prática, limite o escopo das permissões o máximo possível. 

Depois de criar a função, anote o nome do recurso da Amazon (ARN) da função. Você precisa da função do ARN durante a criação da frota.

### Modifique os aplicativos para adquirir credenciais
<a name="gamelift-sdk-server-resources-roles-apps"></a>

Nesta etapa, você configura seus aplicativos para adquirir credenciais de segurança para a função do IAM e usá-las ao interagir com seus AWS recursos. Consulte a tabela a seguir para determinar como modificar suas aplicações com base (1) no tipo de aplicação e (2) na versão do SDK do servidor que seu jogo usa para se comunicar com o Amazon GameLift Servers.


|  | Aplicativos de servidor de jogos | Outros aplicativos | 
| --- | --- | --- | 
|  **Usando o SDK do servidor versão 5.x**  |  Chame o método SDK do servidor `GetFleetRoleCredentials()` a partir do código do servidor do jogo.  |  Adicione código ao aplicativo para extrair credenciais de um arquivo compartilhado na instância da frota.  | 
|  **Usando o SDK do servidor versão 4 ou anterior**  |   Ligue para AWS Security Token Service (AWS STS) `[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)` com a função ARN.  |  Ligue para AWS Security Token Service (AWS STS) `[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)` com a função ARN.  | 

**nota**  
Para frotas de contêineres, `FleetRoleArn` as credenciais são injetadas em cada contêiner. Seus aplicativos podem usar o provedor de AWS credenciais padrão para acessar essas credenciais. Você ainda pode ligar`GetFleetRoleCredentials()`, o que retorna as mesmas credenciais. Essas credenciais de função da frota só podem ser acessadas dentro de contêineres.

Para jogos integrados ao SDK 5.x do servidor, esse diagrama ilustra como os aplicativos em sua versão de jogo implantada podem adquirir credenciais para o perfil do IAM.

![\[Os executáveis do jogo chamam GetFleetRoleCredentials(). Outros arquivos usam credenciais compartilhadas armazenadas localmente.\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/images/instance-role-creds_vsd.png)


#### Chamada `GetFleetRoleCredentials()` (SDK 5.x do servidor)
<a name="gamelift-sdk-server-resources-roles-apps-sdk5"></a>

No código do servidor de jogos, que já deve estar integrado ao SDK 5.x do servidor Amazon GameLift Servers, chame `GetFleetRoleCredentials` ([C\$1\$1](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-getfleetrolecredentials)) ([C\$1](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-getfleetrolecredentials)) ([Unreal](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-getfleetrolecredentials)) ([Go](integration-server-sdk-go-actions.md#integration-server-sdk-go-getfleetrolecredentials)) para recuperar um conjunto de credenciais temporárias. Quando as credenciais expirarem, você poderá atualizá-las com outra chamada para `GetFleetRoleCredentials`.

#### Use credenciais compartilhadas (SDK 5.x do servidor)
<a name="gamelift-sdk-server-resources-roles-apps-sdk5-shared"></a>

Para aplicações que não são de servidor que são implantados com compilações de servidores de jogos usando o SDK 5.x do servidor, adicione código para obter e usar credenciais armazenadas em um arquivo compartilhado. O Amazon GameLift Servers gera um perfil de credenciais para cada instância de frota. As credenciais estão disponíveis para uso por todas as aplicações na instância. O Amazon GameLift Servers atualiza continuamente as credenciais temporárias.

Você deve configurar uma frota para gerar o arquivo de credenciais compartilhadas na criação da frota.

Em cada aplicativo que precisa usar o arquivo de credenciais compartilhado, especifique a localização do arquivo e o nome do perfil, da seguinte forma: 

Windows:

```
[credentials]
shared_credential_profile= "FleetRoleCredentials"
shared_credential_file= "C:\\Credentials\\credentials"
```

Linux

```
[credentials]
shared_credential_profile= "FleetRoleCredentials"
shared_credential_file= "/local/credentials/credentials"
```

**Exemplo: configurar um CloudWatch agente para coletar métricas para instâncias de Amazon GameLift Servers frota**

Se você quiser usar um CloudWatch agente da Amazon para coletar métricas, registros e rastreamentos de suas Amazon GameLift Servers frotas, use esse método para autorizar o agente a emitir os dados para sua conta. Nesse cenário, execute as seguintes etapas:

1. Recupere ou grave o `config.json` arquivo do CloudWatch agente.

1. Atualize o arquivo `common-config.toml` para que o atendente identifique o nome do arquivo de credenciais e o nome do perfil, conforme descrito acima.

1. Configure seu script de instalação de compilação do servidor de jogos para instalar e iniciar o CloudWatch agente.

#### Uso `AssumeRole()` (SDK do servidor 4)
<a name="gamelift-sdk-server-resources-roles-apps-sdk4"></a>

Adicione código aos seus aplicativos para assumir a função do IAM e obter credenciais para interagir com seus AWS recursos. Qualquer aplicação executada em uma instância de frota do Amazon GameLift Servers com SDK de servidor 4 ou anterior pode assumir o perfil do IAM. 

No código do aplicativo, antes de acessar um AWS recurso, o aplicativo deve chamar a operação da `[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)` API AWS Security Token Service (AWS STS) e especificar o ARN da função. Essa operação retorna um conjunto de credenciais temporárias que autoriza o aplicativo a acessar o AWS recurso. Para obter mais informações, consulte [Uso de credenciais temporárias com AWS recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) no *Guia do usuário do IAM*.

### Associe uma frota ao perfil do IAM
<a name="gamelift-sdk-server-resources-roles-fleet"></a>

Depois de criar o perfil do IAM e atualizar os aplicativos na versão do seu servidor de jogos para obter e usar as credenciais de acesso, você pode implantar uma frota. Ao configurar a nova frota, defina os seguintes parâmetros.

Para frotas de contêineres:
+  [FleetRoleArn](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateContainerFleet.html#gameliftservers-CreateContainerFleet-request-FleetRoleArn)— Defina esse parâmetro como o ARN da função do IAM.

Para outros tipos de frota:
+  [ InstanceRoleArn](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_FleetAttributes.html#gamelift-Type-FleetAttributes-InstanceRoleArn)— Defina esse parâmetro como o ARN da função do IAM.
+  [ InstanceRoleCredentialsProvider](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_FleetAttributes.html#gamelift-Type-FleetAttributes-InstanceRoleCredentialsProvider)— Para solicitar Amazon GameLift Servers a geração de um arquivo de credenciais compartilhado para cada instância da frota, defina `SHARED_CREDENTIAL_FILE` esse parâmetro como.

Você deve definir esses valores ao criar a frota. Eles não podem ser atualizados mais tarde.

## Acesse AWS recursos com o peering de VPC
<a name="gamelift-sdk-server-resources-vpc"></a>

Você pode usar o emparelhamento da Amazon Virtual Private Cloud (Amazon VPC) para se comunicar entre aplicativos em execução em uma Amazon GameLift Servers instância e outro recurso. AWS Uma VPC é uma rede privada virtual que você define e que inclui um conjunto de recursos gerenciados por meio do seu. Conta da AWS Cada frota do Amazon GameLift Servers tem sua própria VPC. Com o peering de VPC, você pode estabelecer uma conexão de rede direta entre a VPC para sua frota e para seus outros recursos. AWS 

O Amazon GameLift Servers simplifica o processo de configuração de conexões de emparelhamento de VPCs para seus servidores de jogos. Ele lida com solicitações de emparelhamento, atualiza tabelas de rota e configura as conexões, conforme necessário. Para obter instruções sobre como configurar o emparelhamento da VPC para os servidores de jogos, consulte [Configurar o emparelhamento de VPC para o Amazon GameLift Servers](vpc-peering.md).

**nota**  
O emparelhamento de VPC não é compatível com frotas de contêineres.

# Permita que seu servidor de jogos acesse os dados da frota do Amazon GameLift Servers
<a name="gamelift-sdk-server-fleetinfo"></a>

Há algumas situações em que sua compilação de jogo ou script de Amazon GameLift Servers Realtime podem exigir informações sobre a frota do Amazon GameLift Servers. Por exemplo, a compilação ou o script do seu jogo podem incluir código para:
+ Monitore a atividade com base nos dados da frota.
+ Acumule métricas para rastrear a atividade por dados da frota. (Muitos jogos usam esses dados para LiveOps atividades.)
+ Forneça dados relevantes para serviços de jogos personalizados, como criação de partidas, escalabilidade de capacidade adicional ou testes.

As informações da frota estão disponíveis como um arquivo JSON em cada instância nos seguintes locais:
+ Windows: `C:\GameMetadata\gamelift-metadata.json`
+ Linux: `/local/gamemetadata/gamelift-metadata.json`

O `gamelift-metadata.json` arquivo inclui os [atributos de um recurso Amazon GameLift Servers da frota](https://docs.aws.amazon.com/gamelift/latest/apireference/API_FleetAttributes.html).

Exemplo de arquivo JSON:

```
{
    "buildArn":"arn:aws:gamelift:us-west-2:123456789012:build/build-1111aaaa-22bb-33cc-44dd-5555eeee66ff",
    "buildId":"build-1111aaaa-22bb-33cc-44dd-5555eeee66ff",
    "fleetArn":"arn:aws:gamelift:us-west-2:123456789012:fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
    "fleetDescription":"Test fleet for Really Fun Game v0.8",
    "fleetId":"fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
    "name":"ReallyFunGameTestFleet08",
    "fleetType":"ON_DEMAND",
    "instanceRoleArn":"arn:aws:iam::123456789012:role/S3AccessForGameLift",
    "instanceType":"c5.large",
    "serverLaunchPath":"/local/game/reallyfungame.exe"
}
```

# Configurar o emparelhamento de VPC para o Amazon GameLift Servers
<a name="vpc-peering"></a>

Este tópico fornece orientações sobre como configurar uma conexão de emparelhamento de VPCs entre seus servidores de jogos hospedados pelo Amazon GameLift Servers e seus outros recursos que não são do Amazon GameLift Servers. Use as conexões de emparelhamento da Amazon Virtual Private Cloud (VPC) para permitir que seus servidores de jogos se comuniquem direta e privadamente com seus outros AWS recursos, como um serviço web ou um repositório. Você pode estabelecer o emparelhamento de VPC com qualquer recurso executado AWS e gerenciado por uma AWS conta à qual você tenha acesso.

**nota**  
O emparelhamento de VPCs é um recurso avançado. Para saber mais sobre as opções preferidas para permitir que seus servidores de jogos se comuniquem direta e privadamente com seus outros AWS recursos, consulte[Conecte seu servidor de jogos Amazon GameLift Servers hospedado a outros AWS recursos](gamelift-sdk-server-resources.md).

Se você já está familiarizado com o peering da Amazon VPCs e do VPC, entenda que configurar o peering com servidores de Amazon GameLift Servers jogos é um pouco diferente. Você não tem acesso à VPC que contém os servidores de jogos (ela é controlada pelo serviço Amazon GameLift Servers), portanto, não é possível solicitar o emparelhamento da VPC diretamente para ela. Primeiro, você deve pré-autorizar a VPC com seus recursos que não são do Amazon GameLift Servers para aceitar uma solicitação de emparelhamento do serviço Amazon GameLift Servers. Depois disso, acione o Amazon GameLift Servers para solicitar o emparelhamento de VPC que você acabou de autorizar. O Amazon GameLift Servers lida com as tarefas de criação da conexão de emparelhamento, configuração das tabelas de rotas e configuração da conexão.

## Como configurar o emparelhamento de VPC para uma frota existente
<a name="vpc-peering-existing"></a>

1. 

**Obtenha IDs e credenciais da AWS conta.**

   Você precisa de um ID e credenciais de login para as seguintes contas. AWS Você pode encontrar AWS uma conta IDs fazendo login [Console de gerenciamento da AWS](https://console.aws.amazon.com/)e visualizando as configurações da sua conta. Para obter as credenciais, acesse o console do IAM.
   + AWS conta que você usa para gerenciar seus servidores de Amazon GameLift Servers jogos.
   + AWS conta que você usa para gerenciar seus Amazon GameLift Servers recursos não relacionados. 

   Se estiver usando a mesma conta para recursos do Amazon GameLift Servers e que não são do Amazon GameLift Servers, você precisa do ID e das credenciais dessa conta apenas.

1. 

**Obtenha identificadores para cada VPC.**

   Obtenha as seguintes informações para que os dois VPCs sejam examinados: 
   + VPC para seus servidores de jogos do – Este é o ID de sua frota do . Os servidores de jogos são implantados no Amazon GameLift Servers em uma frota de instâncias do EC2. Cada frota é colocada automaticamente em sua própria VPC, que é gerenciada pelo serviço Amazon GameLift Servers. Você não tem acesso direto à VPC, e isso é identificado pelo ID da frota. 
   + VPC para quem não tem Amazon GameLift Servers AWS recursos — Você pode estabelecer um emparelhamento de VPC com qualquer recurso executado AWS e gerenciado por uma AWS conta à qual você tenha acesso. Se você ainda não criou uma VPC para esses recursos, consulte [Conceitos básicos da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/getting-started-ipv4.html). Depois de criar uma VPC, você pode encontrar a ID da VPC fazendo login na [Console de gerenciamento da AWS](https://console.aws.amazon.com/)Amazon VPC e visualizando sua. VPCs
**nota**  
Ao configurar um peering, ambos VPCs devem existir na mesma região. A VPC de seu servidor de jogos da frota do Amazon GameLift Servers está na mesma região que a frota.

1. 

**Autorize um emparelhamento de VPC.**

   Nesta etapa, você pré-autoriza uma solicitação futura do Amazon GameLift Servers para emparelhar a VPC com seus servidores de jogos com sua VPC para recursos que não forem do Amazon GameLift Servers. Esta ação atualiza o grupo de segurança da sua VPC.

   Para autorizar o emparelhamento de VPC, chame a [ CreateVpcPeeringAuthorizationAPI de serviço (](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateVpcPeeringAuthorization.html)) ou use o AWS comando CLI. `create-vpc-peering-authorization` Faça esta chamada usando a conta que gerencia seus recursos que não são do Amazon GameLift Servers. Identifique as seguintes informações:
   + ID da VPC de emparelhamento – esse é para a VPC com recursos que não são do Amazon GameLift Servers.
   + Amazon GameLift Servers AWS ID da conta — Essa é a conta que você usa para gerenciar sua Amazon GameLift Servers frota. 

   Após autorizar um emparelhamento da VPC, a autorização permanecerá válida por 24 horas, a menos que seja revogada. É possível gerenciar suas autorizações de emparelhamento de VPCs usando as seguintes operações:
   + [DescribeVpcPeeringAuthorizations()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeVpcPeeringAuthorizations.html) (AWS CLI`describe-vpc-peering-authorizations`).
   + [DeleteVpcPeeringAuthorization()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DeleteVpcPeeringAuthorization.html) (AWS CLI`delete-vpc-peering-authorization`).

1. 

**Solicite uma conexão de emparelhamento.**

   Com uma autorização válida, é possível solicitar que o Amazon GameLift Servers estabeleça uma conexão de emparelhamento.

   Para solicitar um emparelhamento de VPC, chame a API de serviço [CreateVpcPeeringConnection() ou use](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateVpcPeeringConnection.html) o comando CLI AWS . `create-vpc-peering-connection` Faça essa chamada usando a conta que gerencia seus servidores de jogos do Amazon GameLift Servers. Use as informações a seguir para identificar os dois VPCs que você deseja comparar:
   + ID de VPC de mesmo nível AWS e ID da conta — Essa é a VPC para seus recursos não Amazon GameLift Servers relacionados e a conta que você usa para gerenciá-los. O ID da VPC deve corresponder ao ID em uma autorização de emparelhamento válida. 
   + ID da frota – Isto identifica a VPC para seus servidores de jogos do .

1. 

**Acompanhe o status da conexão de emparelhamento.**

   Solicitar uma conexão de emparelhamento da VPC é uma operação assíncrona. Para rastrear o status de uma solicitação de emparelhamento e processar os casos de sucesso ou falha, use uma das seguintes opções:
   + Sonde continuamente com `DescribeVpcPeeringConnections()`. Essa operação recupera o registro de conexão de emparelhamento da VPC, incluindo o status da solicitação. Se uma conexão emparelhada for criada com êxito, o registro de conexão também conterá um bloco CIDR de endereços IP privados que é atribuído à VPC.
   + Gerencie eventos de frota associados a conexões de emparelhamento de VPC com [DescribeFleetEvents()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetEvents.html), incluindo eventos de sucesso e falha. 

Uma vez estabelecida a conexão de emparelhamento, é possível gerenciá-la usando as seguintes operações:
+ [DescribeVpcPeeringConnections()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeVpcPeeringConnections.html) (AWS CLI`describe-vpc-peering-connections`).
+ [DeleteVpcPeeringConnection()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DeleteVpcPeeringConnection.html) (AWS CLI`delete-vpc-peering-connection`).

## Como configurar o emparelhamento de VPC com uma nova frota
<a name="fleets-creating-aws-cli-vpc"></a>

É possível criar uma nova frota do Amazon GameLift Servers e solicitar uma conexão de emparelhamento de VPC ao mesmo tempo. 

1. 

**Obtenha IDs e credenciais da AWS conta.**

   Você precisa de um ID e credenciais de login para as duas contas a seguir. AWS Você pode encontrar AWS uma conta IDs fazendo login [Console de gerenciamento da AWS](https://console.aws.amazon.com/)e visualizando as configurações da sua conta. Para obter as credenciais, acesse o console do IAM.
   + AWS conta que você usa para gerenciar seus servidores de Amazon GameLift Servers jogos.
   + AWS conta que você usa para gerenciar seus Amazon GameLift Servers recursos não relacionados. 

   Se estiver usando a mesma conta para recursos do Amazon GameLift Servers e que não são do Amazon GameLift Servers, você precisa do ID e das credenciais dessa conta apenas.

1. 

**Obtenha o ID da VPC para seus recursos que não são recursos. Amazon GameLift Servers AWS**

   Se você ainda não criou uma VPC para esses recursos, faça isso agora (consulte [Conceitos básicos da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/getting-started-ipv4.html)). Certifique-se de criar a nova VPC na mesma região em que planeja criar sua nova frota. Se seus Amazon GameLift Servers recursos não relacionados forem gerenciados em uma AWS conta ou user/user grupo diferente daquele com o qual você usaAmazon GameLift Servers, você precisará usar essas credenciais da conta ao solicitar autorização na próxima etapa. 

   Depois de criar uma VPC, você pode localizar a ID da VPC no console da Amazon VPC visualizando sua. VPCs

1. 

**Autorize um emparelhamento de VPCs com recursos que não são do Amazon GameLift Servers.**

   Quando o Amazon GameLift Servers cria a nova frota e a VPC correspondente, ele também envia uma solicitação para emparelhar com a VPC para seus recursos que não são do Amazon GameLift Servers. Você precisa pré-autorizar essa solicitação. Esta etapa atualiza o grupo de segurança da sua VPC.

   Usando as credenciais da conta que gerenciam seus Amazon GameLift Servers recursos não relacionados, chame a API de serviço [ CreateVpcPeeringAuthorization()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateVpcPeeringAuthorization.html) ou use o comando AWS `create-vpc-peering-authorization` CLI. Identifique as seguintes informações:
   + ID da VPC de emparelhamento – o ID da VPC com seus recursos que não são do .
   + Amazon GameLift Servers AWS ID da conta — ID da conta que você usa para gerenciar sua Amazon GameLift Servers frota. 

   Após autorizar um emparelhamento da VPC, a autorização permanecerá válida por 24 horas, a menos que seja revogada. É possível gerenciar suas autorizações de emparelhamento de VPCs usando as seguintes operações:
   + [DescribeVpcPeeringAuthorizations()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeVpcPeeringAuthorizations.html) (AWS CLI`describe-vpc-peering-authorizations`).
   + [DeleteVpcPeeringAuthorization()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DeleteVpcPeeringAuthorization.html) (AWS CLI`delete-vpc-peering-authorization`).

1. Siga as instruções para [criar uma nova frota usando a AWS CLI](fleets-creating.md). Inclua os parâmetros adicionais a seguir:
   + *peer-vpc-aws-account-id* — ID da conta que você usa para gerenciar a VPC com seus recursos que não Amazon GameLift Servers são.
   + *peer-vpc-id*— ID da VPC com sua conta não pertencente à sua conta. Amazon GameLift Servers

Uma chamada bem-sucedida para [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-fleet.html) com os parâmetros de emparelhamento de VPC gera uma nova frota e uma nova solicitação de emparelhamento de VPC. O status da frota é definido para **Novo**, e o processo de ativação dela é iniciado. O status da solicitação de conexão de emparelhamento é definido como **initiating-request**. Você pode acompanhar o sucesso ou a falha da solicitação de emparelhamento [describe-vpc-peering-connections](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-vpc-peering-connections.html)ligando.

Ao solicitar uma nova frota e uma conexão de emparelhamento da VPC, ambas as ações serão bem-sucedidas ou falharão. Se uma frota falhar durante o processo de criação, a conexão de emparelhamento da VPC não será estabelecida. Da mesma forma, se uma conexão de emparelhamento da VPC falhar por qualquer motivo, a nova frota falhará ao mudar do status **Ativando** para **Ativo**.

**nota**  
A nova conexão de emparelhamento da VPC não será concluída até que a frota esteja pronta para se tornar ativa. Isso significa que a conexão não está disponível e não pode ser usada durante o processo de instalação de compilação do servidor de jogos.

O exemplo a seguir cria uma nova frota e uma conexão de emparelhamento entre uma VPC pré-estabelecida e a VPC para a nova frota. A VPC preestabelecida é identificada de forma exclusiva pela combinação do seu ID que não Amazon GameLift Servers AWS é da conta e do ID da VPC. 

```
$ AWS gamelift create-fleet
    --name "My_Fleet_1"
    --description "The sample test fleet"
    --ec2-instance-type "c5.large"
    --fleet-type "ON_DEMAND"
    --build-id "build-1111aaaa-22bb-33cc-44dd-5555eeee66ff"
    --runtime-configuration "GameSessionActivationTimeoutSeconds=300,
                             MaxConcurrentGameSessionActivations=2,
                             ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe,
                                               Parameters=+sv_port 33435 +start_lobby,
                                               ConcurrentExecutions=10}]"
    --new-game-session-protection-policy "FullProtection"
    --resource-creation-limit-policy "NewGameSessionsPerCreator=3,
                                      PolicyPeriodInMinutes=15"
    --ec2-inbound-permissions "FromPort=33435,ToPort=33435,IpRange=0.0.0.0/0,Protocol=UDP" 
                              "FromPort=33235,ToPort=33235,IpRange=0.0.0.0/0,Protocol=UDP"
    --metric-groups  "EMEAfleets"
    --peer-vpc-aws-account-id "111122223333"
    --peer-vpc-id "vpc-a11a11a"
```

*Versão copiável:*

```
AWS gamelift create-fleet --name "My_Fleet_1" --description "The sample test fleet" --fleet-type "ON_DEMAND" --metric-groups "EMEAfleets" --build-id "build-1111aaaa-22bb-33cc-44dd-5555eeee66ff" --ec2-instance-type "c5.large" --runtime-configuration "GameSessionActivationTimeoutSeconds=300,MaxConcurrentGameSessionActivations=2,ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe,Parameters=+sv_port 33435 +start_lobby,ConcurrentExecutions=10}]" --new-game-session-protection-policy "FullProtection" --resource-creation-limit-policy "NewGameSessionsPerCreator=3,PolicyPeriodInMinutes=15" --ec2-inbound-permissions "FromPort=33435,ToPort=33435,IpRange=0.0.0.0/0,Protocol=UDP" "FromPort=33235,ToPort=33235,IpRange=0.0.0.0/0,Protocol=UDP" --peer-vpc-aws-account-id "111122223333" --peer-vpc-id "vpc-a11a11a"
```

## Solucionar problemas de emparelhamento de VPC
<a name="vpc-peering-troubleshooting"></a>

Se você estiver com problemas para estabelecer uma conexão de emparelhamento de VPC para seus servidores de jogos do Amazon GameLift Servers, considere estas causas raiz comuns: 
+ Uma autorização para a conexão solicitada não foi encontrada: 
  + Verifique o status de uma autorização de VPC para a VPC que não é do Amazon GameLift Servers. Pode não existir ou pode ter expirado.
  + Verifique as regiões das duas VPCs que você está tentando examinar. Se não estiverem na mesma região, elas não podem ser emparelhadas. 
+ Os blocos CIDR (consulte [Configurações de conexão de emparelhamento de VPC inválidas](https://docs.aws.amazon.com/vpc/latest/peering/invalid-peering-configurations.html#overlapping-cidr)) de seus dois estão sobrepostos. VPCs Os blocos IPv4 CIDR atribuídos ao peering VPCs não podem se sobrepor. O bloco CIDR da VPC para sua frota do Amazon GameLift Servers é atribuído automaticamente e não pode ser alterado, portanto, será necessário alterar o bloco CIDR da VPC para seus recursos que não são do Amazon GameLift Servers. Para resolver esse problema: 
  + Procure este bloco CIDR para sua frota do Amazon GameLift Servers chamando `DescribeVpcPeeringConnections()`.
  + Vá para o console da Amazon VPC, encontre a VPC para seus recursos que não são do Amazon GameLift Servers e altere o bloco CIDR para que eles não se sobreponham.
+ A nova frota não foi ativada (ao solicitar o emparelhamento de VPC com uma nova frota). Se a nova frota não conseguir avançar para o status **Ativa** não haverá VPC com a qual emparelhar, portanto, a conexão de emparelhamento não poderá ser bem-sucedida.

# Sessões de jogadores e personalizações de criação de partidas
<a name="customize-player-sessions-matchmaking"></a>

As personalizações de sessões de jogadores e criação de partidas oferecem a oportunidade de desenvolver fluxos de trabalho sofisticados de gerenciamento de jogadores, incluindo um sistema de criação de partidas diferenciado que ajuda você a oferecer experiências multijogador equilibradas e envolventes.

# Gerar IDs de jogador
<a name="player-sessions-player-identifiers"></a>

O Amazon GameLift Servers usa uma sessão de jogador para representar um jogador conectado a uma sessão de jogo. O Amazon GameLift Servers cria uma sessão de jogador sempre que um jogador se conecta a uma sessão de jogo usando um cliente de jogo integrado aoAmazon GameLift Servers. Quando um jogador sai de um jogo, a sessão do jogador termina. o Amazon GameLift Servers não reutiliza sessões de jogadores.

**Importante**  
Ao usar a criação de partidas FlexMatch, se você criar uma nova solicitação de criação de partidas que contenha uma ID de jogador que já esteja incluída em uma solicitação de criação de partidas ativa existente, a solicitação existente será automaticamente cancelada. No entanto, um evento de `MatchmakingCancelled` não é enviado para a solicitação cancelada. Para monitorar o status das solicitações de criação de partidas existentes, use [DescribeMatchmaking](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeMatchmaking.html) para pesquisar o status da solicitação em intervalos pouco frequentes (30-60 segundos). A solicitação cancelada mostrará o status `CANCELLED` com o motivo `Cancelled due to duplicate player`.

O exemplo de código a seguir gera aleatoriamente IDs de jogadores exclusivos:

```
bool includeBrackets = false;
bool includeDashes = true;
string playerId = AZ::Uuid::CreateRandom().ToString<string>(includeBrackets, includeDashes);
```

Para obter mais informações sobre sessões de jogadores, consulte [Sessões de jogos e jogadores no console do Amazon GameLift Servers](gamelift-console-game-player-sessions-metrics.md).

# Adição da criação de partidas do FlexMatch ao Amazon GameLift Servers
<a name="gamelift-match-intro"></a>

Use o FlexMatch do Amazon GameLift Servers para adicionar a funcionalidade de corresponder aos seus jogos hospedados pelo Amazon GameLift Servers. Você pode usar o FlexMatch com servidores de jogos personalizados ou o Amazon GameLift Servers Realtime. 

FlexMatchO compara o serviço de criação de partidas com um mecanismo de regras personalizável. Você cria como combinar jogadores com base nos atributos dos jogadores e nos modos de jogo que fazem sentido para o seu jogo. O FlexMatch gerencia os detalhes básicos da avaliação de jogadores que estão procurando um jogo, formando partidas com uma ou mais equipes e iniciando sessões de jogo para sediar as partidas. 

Para usar o serviço completo do FlexMatch, tenha os recursos de hospedagem configurados com filas. O Amazon GameLift Servers usa filas para localizar os melhores locais de hospedagem possíveis para jogos em várias regiões e tipos de computação. Em particular, as filas do Amazon GameLift Servers podem usar dados de latência, quando fornecidos por clientes de jogos, para colocar sessões de jogo de forma que os jogadores tenham a menor latência possível ao jogar.

Para obter mais informações sobre o FlexMatch, incluindo ajuda detalhada com a integração de criação de partidas nos jogos, consulte estes tópicos do [Guia do Desenvolvedor Amazon GameLift Servers FlexMatch](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/) :
+ [Como a Amazon GameLift Servers FlexMatch funciona](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-intro.html)
+ [Etapas de integração do FlexMatch](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-tasks.html)

# Personalizações de colocação de sessões de jogo
<a name="customize-game-session-placement"></a>

As personalizações de colocação das sessões de jogo oferecem a oportunidade de ajustar seu sistema de colocação para oferecer à sua base de jogadores a melhor experiência de jogo possível. Você pode otimizar a colocação de acordo com a compatibilidade e as preferências dos jogadores, bem como para considerações operacionais, como eficiência de custos, distribuição geográfica e resiliência contra interrupções no serviço.

# Personalizar uma fila de sessões de jogo
<a name="queues-design"></a>

Este tópico descreve como personalizar suas filas de sessões de jogo para tomar as melhores decisões possíveis sobre a colocação das sessões de jogo. Para obter mais informações sobre filas de sessões de jogo e como elas funcionam, consulte [Faz correspondência com posicionamento de sessões de jogo](queues-intro.md).

Estes recursos do Amazon GameLift Servers exigem filas:
+ [Como marcar jogos com o FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-tasks.html)
+ [Construir uma fila para instâncias Spot](spot-tasks.md)

**Topics**
+ [Definir o escopo de uma fila](queues-design-scope.md)
+ [Criar uma fila de vários locais](queues-design-multiregion.md)
+ [Avaliar métricas de fila](queues-design-metrics.md)

# Definir o escopo de uma fila
<a name="queues-design-scope"></a>

A população de jogadores do seu jogo pode ter grupos de jogadores que não deveriam jogar juntos. Por exemplo, se você publicar seu jogo em dois idiomas, cada idioma deverá ter seus próprios servidores de jogos.

Para configurar o posicionamento de sessões de jogo para sua população de jogadores, crie uma fila separada para cada segmento de jogadores. Avalie cada fila para posicionar os jogadores nos servidores de jogos corretos. Algumas formas comuns de definir o escopo das filas incluem:
+ **Por localizações geográficas.** Ao implantar seus servidores de jogos em várias áreas geográficas, você pode criar filas para jogadores em cada local a fim de reduzir a latência dos jogadores.
+ **Por variações de compilação ou script.** Se tiver mais de uma variação do seu servidor de jogos, talvez você esteja apoiando grupos de jogadores que não podem jogar nas mesmas sessões de jogo. Por exemplo, compilações ou scripts de servidores de jogos podem oferecer suporte a diferentes idiomas ou tipos de dispositivos.
+ **Por tipos de eventos.** Você pode criar uma fila especial para gerenciar jogos para participantes de torneios ou outros eventos especiais. 

## Criar várias filas
<a name="queues-design-players"></a>

Dependendo do jogo e dos jogadores, talvez você queira criar mais de uma fila de sessões de jogo. Quando o serviço do cliente do jogo solicita uma nova sessão de jogo, ele especifica que fila da sessão de jogo usar. Para ajudá-lo a determinar se você deve usar várias filas, considere:
+ Variações do servidor de jogos. Você pode criar uma fila separada para cada variação do servidor de jogos. Todas as frotas de uma fila devem implantar servidores de jogos compatíveis. Isso ocorre porque os jogadores que usam a fila para entrar nos jogos devem poder jogar em qualquer um dos servidores de jogos da fila.
+ Grupos de jogadores diferentes. Você pode personalizar a forma como o Amazon GameLift Servers coloca as sessões de jogo com base no grupo de jogadores. Por exemplo, você pode precisar de filas personalizadas para determinados modos de jogo que exigem um tipo especial de instância ou de configuração de runtime. Ou, talvez, você queira uma fila especial para gerenciar posicionamentos em um torneio ou outro evento.
+ Métricas da fila de sessões de jogo. Você pode configurar filas com base em como deseja coletar as métricas de posicionamento de sessões de jogo. Para obter mais informações, consulte [Métricas do Amazon GameLift Servers para filas](monitoring-cloudwatch.md#gamelift-metrics-queue).

# Criar uma fila de vários locais
<a name="queues-design-multiregion"></a>

Recomendamos um design de vários locais para todas as filas. Esse design pode melhorar a velocidade do posicionamento e a resiliência da hospedagem. É necessário um design de vários locais para usar os dados de latência do jogador e posicionar os jogadores em sessões de jogo com latência mínima. Se estiver criando filas de vários locais que usam frotas de instâncias spot, siga as instruções em [Reduza os custos de hospedagem de jogos com frotas Spot](fleets-spot.md).

Uma forma de criar uma fila de vários locais é adicionar uma [frota de vários locais](gamelift-regions.md#gamelift-regions-hosting) a uma fila. Dessa forma, a fila pode posicionar sessões de jogo em qualquer um dos locais da frota. Você também pode adicionar outras frotas com configurações ou locais residenciais diferentes para redundância. Se você estiver usando uma frota de instâncias spot de vários locais, siga as melhores práticas e inclua uma frota de instância sob demanda com os mesmos locais.

O exemplo a seguir descreve o processo de criação de uma fila básica de vários locais. Neste exemplo, usamos duas frotas: uma frota de instâncias spot e uma frota de instâncias sob demanda. Cada frota tem o seguinte Regiões da AWS para locais de colocação: `us-east-1` `us-east-2``ca-central-1`,, `us-west-2` e.

**Para criar uma fila básica de vários locais com frotas de vários locais**

1. Escolha um local para criar a fila. Você pode minimizar a latência da solicitação colocando a fila em um local próximo ao local onde você implantou o serviço ao cliente. Neste exemplo, criamos a fila em `us-east-1`.

1. Crie uma nova fila e adicione suas frotas de vários locais como destinos de fila. A ordem de destino determina como o Amazon GameLift Servers coloca as sessões de jogo. Neste exemplo, listamos a frota de instâncias spot primeiro e a frota de instâncias sob demanda em segundo lugar.

1. Defina a ordem de prioridade de posicionamento de sessões de jogo da fila. Essa ordem determina onde a fila procura primeiro por um servidor de jogos disponível. Neste exemplo, usamos a ordem de prioridade padrão.

1. Defina a ordem dos locais. Se você não definir a ordem dos locais, o Amazon GameLift Servers usará os locais em ordem alfabética.

![\[Uma captura de tela do console que ilustra a localização do exemplo de fila e a ordem de destino.\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/images/queue-multi-location-1.png)


![\[Uma captura de tela do console que ilustra a prioridade de posicionamento e a ordem de localização do exemplo de fila.\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/images/queue-multi-location-2.png)


# Avaliar métricas de fila
<a name="queues-design-metrics"></a>

Use métricas para avaliar o desempenho das suas filas. Você pode visualizar métricas relacionadas às filas no [console do Amazon GameLift Servers](https://console.aws.amazon.com/gamelift) ou no Amazon CloudWatch. Para obter uma lista e descrições de métricas de fila, consulte [Métricas do Amazon GameLift Servers para filas](monitoring-cloudwatch.md#gamelift-metrics-queue).

As métricas de fila podem fornecer informações sobre o seguinte:
+ **Desempenho geral da fila**: as métricas da fila indicam com que sucesso uma fila responde às solicitações de posicionamento. Essas métricas também podem ajudá-lo a identificar quando e por que os posicionamentos falham. Para filas com frotas escaladas manualmente, as métricas `AverageWaitTime` e `QueueDepth` podem indicar quando você deve ajustar a capacidade de uma fila.
+ **Desempenho do algoritmo FleetIQ**: para solicitações de posicionamento usando o algoritmo FleetIQ, as métricas mostram com que frequência o algoritmo descobre o posicionamento ideal de sessões de jogo. O posicionamento pode priorizar o uso de recursos com a menor latência do jogador ou recursos com o menor custo. Também existem métricas de erro que identificam motivos comuns pelos quais o Amazon GameLift Servers não consegue descobrir um posicionamento ideal. Para obter mais informações sobre métricas, consulte [Monitore Amazon GameLift Servers com a Amazon CloudWatch](monitoring-cloudwatch.md).
+ **Posicionamentos específicos de locais**: para filas de vários locais, as métricas mostram posicionamentos bem-sucedidos por local. Com filas que usam o algoritmo FleetIQ, esses dados fornecem informações úteis sobre onde a atividade do jogador ocorre.

Ao avaliar métricas de desempenho do algoritmo FleetIQ, considere as seguintes sugestões:
+ Para rastrear a taxa da fila de descobertas de um posicionamento ideal, use a métrica `PlacementsSucceeded` em combinação com as métricas do FleetIQ para obter a menor latência e o menor preço.
+ Para aumentar a taxa da fila de descobertas de um posicionamento ideal, analise as seguintes métricas de erro:
  + Se `FirstChoiceOutOfCapacity` for alto, ajuste o escalonamento da capacidade para as frotas da fila.
  + Se a métrica `FirstChoiceNotViable` de erro for alta, veja suas frotas de instâncias Spot. As frotas de instâncias spot são consideradas inviáveis quando a taxa de interrupção de um determinado tipo de instância é muito alta. Para resolver esse problema, altere a fila de modo que ela use as frotas de instâncias spot com diferentes tipos de instância. Recomendamos que você inclua frotas de instâncias spot com diferentes tipos de instância em cada local.

# Priorize o posicionamento de sessões de jogo
<a name="queues-design-priority"></a>

O Amazon GameLift Servers usa um algoritmo para determinar como priorizar os destinos de uma fila e determinar onde posicionar uma nova sessão de jogo. O algoritmo é baseado em um conjunto ordenado de critérios. Você pode usar a ordem de prioridades padrão ou personalizá-la. É possível editar a ordem prioritária de uma fila a qualquer momento. 

**Ordem de prioridades padrão**

1. **Latência** — Se a solicitação de colocação da sessão de jogo incluir dados de latência específicos da localização dos jogadores, o Amazon GameLift Servers calcula a latência média do jogador em cada local e tenta colocar uma sessão de jogo em um local da frota com a menor média.

1. **Custo** — se uma solicitação não incluir dados de latência ou se várias frotas tiverem a mesma latência, o Amazon GameLift Servers avaliará o custo de hospedagem de cada frota. O custo de hospedagem de uma frota varia com base no tipo de frota (spot ou sob demanda), tipo de instância e localização. 

1. **Destino**: se várias frotas têm latência e custos iguais, o Amazon GameLift Servers prioriza frotas com base no ordem de destino conforme listado na configuração da fila.

1. **Localização** — Para filas com frotas com vários locais, se todos os outros critérios forem iguais, o Amazon GameLift Servers priorizará as localizações da frota com base na ordem alfabética.

## Personalize como uma fila prioriza as colocações das sessões de jogo
<a name="queues-design-priority-custom"></a>

Você pode escolher personalizar como uma fila prioriza os critérios de colocação. A fila aplica a priorização personalizada a todas as solicitações de colocação de sessão de jogo que recebe. 

**nota**  
Se você criar uma configuração de prioridade personalizada e não incluir todos os quatro critérios, o Amazon GameLift Servers anexará automaticamente os critérios ausentes na ordem padrão.

**Para personalizar a configuração de prioridade de uma fila**

Use o [console do Amazon GameLift Servers](https://console.aws.amazon.com/gamelift/) ou o AWS Command Line Interface (AWS CLI) para criar uma configuração de prioridade personalizada. 

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

No [console do Amazon GameLift Servers](https://console.aws.amazon.com/gamelift/), você pode personalizar as prioridades de uma fila ao criar uma nova fila ou atualizar uma fila existente. Selecione uma AWS região para trabalhar.

Abra a barra de navegação esquerda do console e escolha **Filas**. Na página Filas, selecione uma fila existente e escolha **Editar**.

1. Vá para a seção **Prioridade de colocação da sessão de jogo**. Arraste e solte cada critério de prioridade para criar o pedido desejado. 

1. Vá para a seção **Ordem de localização**. Adicione os locais que você deseja priorizar. Essa lista é útil quando a fila tem frotas com vários locais. No mínimo, você deve especificar um local. Os locais que você especificar aqui são priorizados primeiro, seguidos por todos os outros locais nos destinos da fila.

1. Escolha **Salvar alterações**.

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

Use o [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/update-game-session-queue.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/update-game-session-queue.html)comando com a `--priority-configuration` opção de personalizar a ordem de prioridade de uma fila. Amazon GameLift Serversatualiza uma fila na sua AWS região padrão atual, ou você pode adicionar uma `--region` tag para especificar uma AWS região diferente.

O exemplo a seguir adiciona ou atualiza a configuração de prioridade de uma fila especificada.

```
aws gamelift update-game-session-queue \ 
    --name "example-queue-with-priority"
    --priority-configuration PriorityOrder="COST','LOCATION","DESTINATION",LocationOrder="us-east-1","us-east-2","ca-central-1","us-west-2" \
```

------

## Priorize as colocações por latência do jogador
<a name="queues-design-priority-custom-latency"></a>

Se você quiser oferecer aos seus jogadores a melhor experiência possível e garantir o mínimo de latência, siga as etapas a seguir ao configurar seu sistema de colocação de sessões de jogo: 
+ Configure sua fila para priorizar a latência ao escolher onde colocar as sessões de jogo. A latência é, por padrão, na parte superior da lista de prioridades. Você também pode personalizar a configuração de prioridade da fila e escolher onde colocar a latência em ordem de prioridade. 
+ Configure políticas de latência do player para sua fila. As políticas de latência permitem que você defina limites rígidos sobre a quantidade de latência permitida na colocação de uma sessão de jogo. Se o Amazon GameLift Servers não conseguir realizar uma sessão de jogo sem exceder os limites, a solicitação de colocação expirará e falhará. Você pode configurar uma única política de latência ou criar uma série de políticas que relaxem gradualmente o limite de latência ao longo do tempo. Com uma série de políticas, você pode especificar limites de latência inicial muito baixos e ainda acomodar jogadores com latências mais altas após um pequeno atraso. Para detalhes sobre a criação de políticas de latência, consulte [Crie uma política de latência do jogador](queues-design-latency.md). 
+ Ao fazer solicitações de posicionamento de sessão de jogo (consulte [StartGameSessionPlacement](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_StartGameSessionPlacement.html)), inclua dados de latência de cada jogador. Os dados de latência do jogador incluem um valor para cada local possível em que uma sessão de jogo pode ser realizada. Por exemplo, para uma fila que coloca sessões de jogo em Regiões da AWS us-east-2 e ca-central-1, os dados de latência podem ter a seguinte aparência: 

  ```
  "PlayerLatencies": [ 
      { "LatencyInMilliseconds": 100, "PlayerId": "player1", "RegionIdentifier": "us-east-2" },
      { "LatencyInMilliseconds": 100, "PlayerId": "player1", "RegionIdentifier": "ca-central-1" },
      { "LatencyInMilliseconds": 150, "PlayerId": "player2", "RegionIdentifier": "us-east-2" },
      { "LatencyInMilliseconds": 150, "PlayerId": "player2", "RegionIdentifier": "ca-central-1" }
    ]
  ```

  Para obter medições precisas de latência, use os sinalizadores de ping UDP do Amazon GameLift Servers. Esses endpoints permitem medir a latência real da rede UDP entre dispositivos de jogadores e cada um dos possíveis locais de hospedagem, resultando em decisões de colocação mais precisas do que o uso de pings ICMP. Para obter mais informações sobre o uso de sinalizadores de ping UDP para medir a latência, consulte [Sinalizadores de ping UDP](reference-udp-ping-beacons.md).

## Priorize as colocações por localização
<a name="queues-design-priority-custom-location"></a>

Você pode configurar uma fila para fazer colocações de sessões de jogo com base em uma lista priorizada de localizações geográficas. A localização é um dos critérios que determina como uma fila escolhe onde colocar uma nova sessão de jogo. Por padrão, a localização é priorizada em quarto lugar, depois da latência, custo e destino.

Para a colocação da sessão de jogo, destino e localização têm significados um pouco diferentes:
+ *Destino* se refere a uma frota específica e inclui todos os recursos de hospedagem da frota, onde quer que estejam implantados. Ao priorizar por destino, o Amazon GameLift Servers pode fazer uma colocação em qualquer local da frota. As frotas gerenciadas em vários locais e as frotas Anywhere podem ter recursos de hospedagem implantados em um ou mais locais.
+ A *localização* se refere a uma posição geográfica específica em que os recursos de hospedagem de uma frota são implantados. Uma frota pode ter vários locais, que podem incluir Regiões da AWS Zonas Locais ou locais personalizados (para uma frota em qualquer lugar). Uma frota gerenciada em um único local tem um local e é sempre uma Região da AWS. Uma frota multilocal gerenciada tem uma região de origem e pode ter locais remotos. Uma frota Anywhere tem um ou mais locais personalizados.

Ao priorizar as colocações por local, o Amazon GameLift Servers procura qualquer destino de fila que inclua o local prioritário e busca um recurso de hospedagem disponível. Se houver vários destinos com a localização prioritária, o Amazon GameLift Servers passa para os próximos critérios de prioridade (custo, latência, destino).

Existem várias maneiras de influenciar como os locais de uma fila são priorizados. 
+ Configure como a fila lida com todas as solicitações de colocação da sessão do jogo:
  + **Adicione uma configuração de prioridade à fila.** A configuração prioritária de uma fila inclui uma lista ordenada de locais. Você pode especificar um ou mais locais a serem priorizados. Essa lista não exclui nenhum local, ela simplesmente diz ao Amazon GameLift Servers onde procurar primeiro um recurso de hospedagem disponível. Um uso comum de uma lista ordenada de locais é quando você deseja canalizar a maior parte do tráfego para uma ou mais localizações geográficas específicas e usar locais adicionais como capacidade de backup. Adicione uma configuração prioritária ligando [UpdateGameSessionQueue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_UpdateGameSessionQueue.html).
  + **Adicione uma configuração de filtro à fila.** Uma configuração de filtro é uma lista de permissões para a fila. Ele diz ao Amazon GameLift Servers para ignorar todos os locais que não estão na lista ao procurar um recurso de hospedagem disponível. Há dois usos comuns para uma configuração de filtro. Primeiro, para frotas com vários locais, você pode usar um filtro para excluir alguns dos locais da frota. Em segundo lugar, talvez você queira proibir temporariamente as colocações em um determinado local; por exemplo, um local pode estar enfrentando problemas transitórios. Como você pode atualizar a configuração do filtro de uma fila a qualquer momento, você pode facilmente adicionar e remover locais conforme necessário. Adicione uma configuração de filtro chamando [UpdateGameSessionQueue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_UpdateGameSessionQueue.html).
+ Use instruções especiais para solicitações individuais de colocação:
  + **Inclua uma lista de substituição de prioridade na solicitação de colocação de sessão de jogo.** Você pode fornecer uma lista alternativa de prioridades de locais com qualquer [StartGameSessionPlacement](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_StartGameSessionPlacement.html)solicitação. A lista efetivamente substitui a priorização configurada da fila para locais somente para aquela solicitação. Isso não afeta nenhuma outra solicitação. Esse recurso de substituição tem alguns requisitos:
    + Use uma lista de substituição somente com uma fila que tenha uma configuração de prioridade estabelecida com `LOCATION` como primeira prioridade.
    + Não inclua dados de latência do jogador na mesma solicitação de colocação. Incluir dados de latência cria conflitos ao priorizar locais que o Amazon GameLift Servers não pode resolver.
    + Decida como você deseja que o Amazon GameLift Servers proceda se não conseguir encontrar um recurso disponível na lista de substituição prioritária. Escolha entre voltar para os outros locais da fila ou limitar as colocações à lista de substituição. Por padrão, o Amazon GameLift Servers volta à tentativa de colocação em outros locais da fila.
    + Atualize a configuração do filtro da fila conforme necessário, como adicionar locais na lista de substituição. A lista de substituição não invalida a lista de filtros. 

# Crie uma política de latência do jogador
<a name="queues-design-latency"></a>

Se suas solicitações de colocação incluírem dados de latência do jogador, o Amazon GameLift Servers descobrir sessões de jogo em locais com a menor latência média para todos os jogadores. A colocação de sessões de jogo com base na latência média do jogador impede que o Amazon GameLift Servers coloque a maioria dos jogadores em jogos com alta latência. No entanto, o Amazon GameLift Servers ainda coloca jogadores com latência extrema. Para acomodar esses jogadores, crie políticas de latência do jogador.

Uma política de latência do jogador impede que o Amazon GameLift Servers coloque uma sessão de jogo solicitada em qualquer lugar em que os jogadores da solicitação experimentem latência acima do valor máximo. As políticas de latência do jogador também podem impedir que o Amazon GameLift Servers combine solicitações de sessões de jogo com jogadores de maior latência.

**dica**  
Para gerenciar regras específicas de latência, como exigir latência semelhante em todos os jogadores de um grupo, você pode usar o [Amazon GameLift Servers FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-intro.html) para criar regras de criação de partidas com base na latência.

Por exemplo, considere essa fila com um tempo limite de cinco minutos e as seguintes políticas de latência do jogador:

1. Passe 120 segundos procurando um local onde todas as latências do jogador sejam inferiores a 50 milissegundos.

1. Passe 120 segundos procurando um local onde todas as latências do jogador sejam inferiores a 100 milissegundos.

1. Passe o tempo restante da fila até o tempo limite procurando um local onde todas as latências do jogador sejam inferiores a 200 milissegundos.

![\[Uma captura de tela do console que ilustra o exemplo de políticas de latência que diminuem gradualmente.\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/images/queue-latency-policy.png)


# Construir uma fila para instâncias Spot
<a name="spot-tasks"></a>

Você pode obter economias potencialmente significativas nos custos de hospedagem usando frotas Spot. Para obter mais detalhes sobre as frotas spot e como usá-las, consulte [Instâncias sob demanda versus instâncias spot](gamelift-compute.md#gamelift-compute-spot). 

Se sua solução de hospedagem de jogos incluir frotas Spot, você deverá usar uma fila de colocação de sessão de jogo. O Amazon GameLift Servers usa filas para pesquisar em vários recursos de hospedagem de jogos e selecionar o melhor disponível para hospedar uma nova sessão de jogo. Com as frotas Spot, as filas são particularmente importantes para minimizar os custos de hospedagem e evitar possíveis interrupções no Spot. Este tópico ajuda você a configurar uma fila resiliente que pode continuar hospedando jogos para jogadores mesmo em caso de interrupções, lentidão e interrupções. Você pode personalizar como a fila prioriza os recursos de hospedagem disponíveis com base em vários fatores, incluindo o custo da hospedagem.

Você está usando FlexMatch para criação de partidas? É possível utilizar uma fila frotas Spot para fazer colocações de criação de partidas para suas partidas.

## Tarefas de implementação para frotas Spot
<a name="spot-tasks-queue"></a>

Ao criar ou atualizar sua solução de hospedagem de jogos para usar frotas Spot, conclua as tarefas a seguir. Para obter orientações mais sobre como criar uma fila que otimize a disponibilidade e a resiliência do Spot, consulte [Reduza os custos de hospedagem de jogos com frotas Spot](fleets-spot.md).

1. **Escolha e crie um conjunto de destinos de frota para a fila de sessões de jogo.**

   Comece decidindo onde você quer que sua fila coloque as sessões de jogo. Uma fila pode pesquisar em várias frotas para encontrar a melhor colocação possível. Cada frota pode tem um tipo instância, mas pode ter várias localizações geográficas. Filas com frotas que oferecem variedade tanto na localização quanto no tipo de instância têm maior probabilidade de obter colocações bem-sucedidas. Veja essas melhores práticas para criar uma fila eficiente e resiliente otimizada para Spot.

1. **Crie sua fila de sessões de jogo otimizada para Spot.** 

   Crie uma fila e configure-a para suas frotas Spot. Consulte [Criar uma fila de sessões de jogo](queues-creating.md) para receber ajuda sobre como criar e configurar a nova fila. Você pode usar o Amazon GameLift Servers console ou a AWS CLI para criar ou editar uma fila.
   + Adicione os destinos da frota a partir da Etapa 1. 
   + Priorize o pedido de destino conforme apropriado. Por padrão, o Amazon GameLift Servers prioriza por custo antes do destino, portanto, a ordem de destino é usada somente quando os menores custos entre os destinos são iguais.
   + Se você quiser priorizar o custo de hospedagem do jogo antes da latência do jogador, forneça uma prioridade de colocação personalizada. Consulte [Priorize o posicionamento de sessões de jogo](queues-design-priority.md).

1. **Atualize outros componentes em sua solução para usar a nova fila.**

   Quando sua solução usa uma fila otimizada para Spot para iniciar novas sessões de jogo, a fila evita automaticamente colocar sessões de jogo com frotas com alta probabilidade de interrupção. Em vez disso, ele pesquisa todas as frotas viáveis em busca de recursos que correspondam às suas prioridades definidas, incluindo latência do jogador, custo de hospedagem e ordem de destino. 
   + Se você não estiver usando FlexMatch – Atualize seu serviço de backend para especificar a nova fila otimizada para Spot nas solicitações de sessão de jogo. O serviço de backend faz solicitações de API ao Amazon GameLift Servers em nome do seu cliente de jogo (usando o `StartGameSessionPlacement()`), e cada solicitação deve especificar um nome de fila. Para receber ajuda sobre como implantar posicionamentos de sessões de jogo no seu jogo, consulte [Criar sessões de jogos](gamelift-sdk-client-api.md#gamelift-sdk-client-api-create).
   + Se você estiver usando FlexMatch – Atualize sua configuração de criação de partidas para enviar solicitações de sessão de jogo para a nova fila otimizada para Spot. Quando o sistema de criação de partidas forma uma partida de jogadores, ele envia uma solicitação de colocação da sessão de jogo para a fila designada para iniciar uma nova sessão de jogo para a partida. Somente configurações de criação de partidas com o modo FlexMatch definido como “Gerenciado” podem designar uma fila de colocação. Você pode atualizar uma configuração de matchmaking usando a AWS CLI ou Amazon GameLift Servers o console ([consulte Editar uma configuração de matchmaking](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-create-configuration-edit.html)).

1. **Revise o desempenho das frotas spot e das filas.** 

   Visualize Amazon GameLift Servers métricas no Amazon GameLift Servers console ou com CloudWatch a Amazon para analisar o desempenho. Para saber mais sobre métricas do Amazon GameLift Servers, consulte [Monitore Amazon GameLift Servers com a Amazon CloudWatch](monitoring-cloudwatch.md). As principais métricas incluem:
   + Taxa de interrupção: use as métricas `InstanceInterruptions` e `GameSessionInterruptions` para acompanhar a quantidade e a frequência das interrupções relacionadas a instâncias spot e sessões de jogos. As sessões de jogo em instâncias recuperadas têm um status de `TERMINATED` e uma razão de status de `INTERRUPTED`.
   + Eficácia da fila: acompanhe as taxas de sucesso de posicionamento, tempo médio de espera e profundidade da fila, para verificar se o uso de frotas spot não tem impacto no desempenho da fila.
   + Uso da frota: monitore dados sobre instâncias, sessões de jogos e sessões de jogadores. O uso de frotas sob demanda pode ser um indicador de que as filas estão evitando posicionamentos em suas frotas spot para evitar interrupções.

## Melhores práticas para filas com frotas Spot
<a name="queues-design-spot"></a>

 Use as seguintes melhores práticas ao criar frotas e filas para instâncias Spot. 
+ **Expanda a cobertura geográfica da sua fila.** Mesmo que seus jogadores estejam agrupados em um único Região da AWS, adicione locais adjacentes à sua frota Spot. Essa abordagem melhora a capacidade da fila de manter a capacidade durante desacelerações regionais, interrupções e interrupções pontuais. As frotas em vários locais funcionam com instâncias spot e sob demanda.
+ **Diversifique a cobertura do tipo de instância da sua fila.** O Amazon GameLift Servers avalia a viabilidade do Spot com base no tipo de instância, portanto, ter frotas Spot com vários tipos de instância reduz a chance de que várias frotas Spot sejam inviáveis ao mesmo tempo. Inclua pelo menos duas frotas Spot com tipos de instâncias diferentes em cada local. 
**nota**  
O preço é baseado nas instâncias que você usa, não no número de frotas. Executar cinco frotas com 10 instâncias cada é o mesmo que executar uma frota com 50 instâncias de custo similar. Os preços variam de acordo com o tipo, tamanho e localização da instância. 

  Dicas para agrupar tipos de instâncias Spot: 
  + Use tipos de instância na mesma família, como `m6g.medium`, `m6g.large` e `m6g.xlarge`. Tipos de instância maiores custam mais, mas também podem hospedar mais sessões de jogo por vez.
  + Selecione tipos de instâncias amplamente disponíveis. Normalmente, famílias de gerações mais antigas (como C5, M5 e R5) e tamanhos comuns (como .large, .xlarge e .2xlarge) têm melhor disponibilidade.
  + Verifique o histórico de preços de 30 a 90 dias no console do Amazon GameLift Servers. Procure tipos de instância com padrões de disponibilidade consistentes.
  + Use o console Amazon GameLift Servers, ferramenta de criação de frota, para explorar a cobertura de localização para tipos de instância.
+ **Adicione frotas sob demanda para obter capacidade de backup.** A hospedagem de jogos pode mudar para frotas sob demanda sempre que as frotas Spot não estiverem disponíveis. Coloque pelo menos uma frota sob demanda em cada local para manter a baixa latência de jogadores. Adicione o ajuste de escala automático às frotas sob demanda de backup, para que você possa mantê-las em escala vertical reduzida até que elas sejam necessárias.
+ **Atribua aliases a todos os destinos da frota.** Crie aliases para cada um dos destinos da sua fila. Os aliases tornam tudo mais fácil e eficiente sempre que você precisa substituir frotas. 
+ **Aplique uma estratégia de priorização de filas.** Você pode personalizar como uma fila prioriza onde colocar as sessões de jogo (veja [Priorize o posicionamento de sessões de jogo](queues-design-priority.md) para obter mais detalhes). Para filas otimizadas para Spot, a priorização por custo garante que frotas Spot de baixo custo sejam usadas sempre que possível. 

  Você também pode priorizar determinadas frotas especificando um pedido de destino. Por exemplo, alguns usuários designam um conjunto de frotas primárias para uso regular e também um conjunto de frotas secundárias como backup. Nesse cenário, defina a ordem de destino da fila para listar primeiro as frotas primárias. Em seguida, configure a ordem prioritária da fila com o destino seguido pelo custo.

# Personalizações dos recursos de hospedagem
<a name="fleets-design"></a>

Esta seção fornece opções avançadas para configurar e gerenciar sua infraestrutura de Amazon GameLift Servers para atender aos requisitos específicos de desempenho, custo e operação. Em particular, os tópicos desta seção descrevem como você pode personalizar seus recursos de hospedagem gerenciada pelo Amazon GameLift Servers para melhor se adequar ao seu jogo e aos seus jogadores. 

Algumas das decisões que você desejará considerar: 
+ Onde implantar recursos de hospedagem para seus jogadores? A latência da jogabilidade é um fator importante na seleção dos locais geográficos da frota, mas há outros fatores que variam de acordo com o local, incluindo disponibilidade e custo do tipo de recurso.
+ Quais tipos de EC2 instância oferecem melhor suporte ao seu jogo? Escolha entre os tipos de instância disponíveis que usam a melhor combinação de arquitetura de computação, memória, armazenamento e capacidade de rede. 
+ Qual o tamanho do tipo de instância que você precisa? Escolha o tamanho do tipo de instância com base nos requisitos de recursos (memória e CPU) do software do servidor de jogos e em outros fatores. 
+ A frota deve usar instâncias spot ou sob demanda? Considere se você pode aproveitar a precificação mais baixa das instâncias spot e se o Amazon GameLift Servers reduz suficientemente a chance de interrupções spot nas suas sessões de jogos.
+ Como você quer que o software de servidor de jogos seja executado em cada instância da frota? A configuração do tempo de execução informa ao Amazon GameLift Servers qual software de servidor deve ser executado e como fazê-lo.
+ Para frotas de contêineres, a configuração padrão funciona para o seu jogo? O Amazon GameLift Servers faz grande parte do trabalho para você otimizar as configurações da frota de contêineres, mas você pode personalizar a maioria das configurações.

# Escolher recursos de computação para uma frota gerenciada
<a name="gamelift-compute"></a>

Para hospedagem gerenciada pelo Amazon GameLift Servers, incluindo EC2 gerenciado e contêineres gerenciados, o serviço implanta seus servidores de jogos em frotas de recursos de computação no Nuvem AWS. Ao criar uma frota gerenciada, convém configurar os recursos de hospedagem da forma mais adequada ao seu jogo. Este tópico discute os principais pontos de decisão ao escolher e configurar suas frotas de hospedagem de jogos.

**nota**  
Se você estiver criando uma solução híbrida com frotas gerenciadas pelo Amazon GameLift Servers e Anywhere, use esses tópicos para projetar frotas gerenciadas para complementar seus próprios recursos autogerenciados. Consulte [Implante frotas de hospedagem para o Amazon GameLift Servers](fleets-intro.md).

**Topics**
+ [Localizações geográficas](#gamelift-compute-location)
+ [Sistemas operacionais](#gamelift-compute-os)
+ [Tipos de instância](#gamelift-compute-instance)
+ [Instâncias sob demanda versus instâncias spot](#gamelift-compute-spot)
+ [Cotas de serviço](#gamelift-service-limits)

## Localizações geográficas
<a name="gamelift-compute-location"></a>

Considere onde você planeja implantar seus servidores de jogos. Em geral, o conveniente é colocar seus servidores de jogo o mais próximo possível dos seus jogadores para oferecer a melhor experiência possível. Para hospedagem Amazon GameLift Servers gerenciada, você pode optar por colocar servidores de jogos em qualquer uma das Zonas Locais Regiões da AWS e suportadas. Se você estiver criando uma solução híbrida, considere como a implantação gerenciada de frotas pode complementar as localizações de suas frotas autogerenciadas do Amazon GameLift Servers Anywhere.

Para a maioria dos cenários de desenvolvimento e teste, a implantação em um único local faz sentido. À medida que você se prepara para o lançamento e depois, há muitos motivos para implantar em várias localizações geográficas. Isso inclui apoiar um grupo amplo de jogadores e melhorar a resiliência e a confiabilidade geral da hospedagem de jogos. Vários locais também podem melhorar a experiência do jogador, acelerando a colocação das sessões de jogo e permitindo mais opções ao otimizar as colocações em termos de latência e custo.

Para obter uma lista de locais que são compatíveis com o Amazon GameLift Servers e mais informações sobre locais para todos os tipos de frota, consulte o [Locais de serviço do Amazon GameLift Servers](gamelift-regions.md).

Frotas multilocais

Uma única frota gerenciada pode implantar recursos em vários locais. Você pode definir a capacidade para cada local individualmente em uma frota multilocal.

Vantagens de usar uma frota multilocal: 
+ Implantação e gerenciamento simplificados da frota – Você fornece o software do servidor de jogos e a configuração da frota e o Amazon GameLift Servers o implanta em instâncias de frota em vários locais (crie uma vez, implante em qualquer lugar). Em uma frota de produção, você pode visualizar e gerenciar todos os locais em uma frota em vez de precisar gerenciar várias frotas, cada uma localizada em uma região diferente.
+ Disponibilidade da Zona Local — Se você quiser usar uma Zona Local, deverá criar uma frota de vários locais com uma localização Região da AWS residencial e Zonas Locais como locais remotos. As Zonas Locais são extensões Regiões da AWS que podem oferecer latência ainda menor para áreas e clientes que precisam dela. Você pode adicionar uma zona local a qualquer frota multilocal; não é necessário incluir a Região da AWS principal da zona local.
+ Compatibilidade com filas de sessões de jogos – Você pode criar filas de colocação de sessões de jogos com uma ou mais frotas multilocais. Essa abordagem oferece flexibilidade à fila ao priorizar e escolher locais para hospedar uma nova sessão de jogo.
+ Utilização eficiente de recursos — Com o ajuste de escala automático ativado, o Amazon GameLift Servers pode otimizar melhor o dimensionamento da capacidade em todos os locais de uma frota.

Dicas para usar frotas multilocais: 
+ Verifique as cotas sobre o número de locais Região da AWS por frota. [Cotas de serviço do Amazon GameLift Servers](https://docs.aws.amazon.com/general/latest/gr/gamelift.html#limits_gamelift)
+ Nem todos os tipos de instâncias estão disponíveis em todas as localizações. Dependendo dos locais escolhidos, você pode ter opções limitadas de tipo de instância. O console do Amazon GameLift Servers fornece ferramentas úteis para ajudar você a encontrar o equilíbrio certo entre locais e tipos de instância. 
+ Considere usar [Sinalizadores de ping UDP](reference-udp-ping-beacons.md) para coletar dados de latência do jogador para todas as localizações da sua frota. O Amazon GameLift Serverspode usar esses dados para otimizar as sessões de jogo para baixa latência e impedir que jogadores participem de sessões com latência inaceitavelmente alta. Esses endpoints especiais aceitam mensagens UDP em vez de pings ICMP tradicionais, fornecendo medições de latência precisas para ajudar você a selecionar os locais ideais da frota.

## Sistemas operacionais
<a name="gamelift-compute-os"></a>

Todas as instâncias em uma frota gerenciada são implantadas com uma imagem de máquina da Amazon (AMI) que fornece um ambiente de runtime completo para seu software de servidor de jogos. Para frotas EC2 gerenciadas, você especifica o sistema operacional da compilação do servidor de jogos ao fazer o upload da compilação para o Amazon GameLift Servers. Para frotas de contêineres gerenciadas, você especifica o sistema operacional na definição do grupo de contêineres. Para obter mais informações sobre as versões mais recentes da AMI, consulte [Versões da Amazon GameLift Servers AMI](reference-ec2-ami-version-history.md).

As versões da AMI são atualizadas regularmente. Quando você cria uma nova frota, o Amazon GameLift Servers atribui a versão mais recente disponível da AMI que você selecionou para sua compilação de jogo. Todas as instâncias implantadas nessa frota usam a mesma versão. Para manter sua versão da AMI atualizada com as atualizações mais recentes de segurança e software, você precisa substituir regularmente suas frotas. Uma prática recomendada é substituir suas frotas gerenciadas a cada 30 dias para manter o ambiente de runtime para seus servidores de jogos. Para obter orientações, consulte [Melhores práticas de segurança do Amazon GameLift Servers](security-best-practices.md).

## Tipos de instância
<a name="gamelift-compute-instance"></a>

O tipo de instância de uma frota gerenciada determina o tipo de hardware que é implantado para todas as instâncias da frota, e os tipos de instância geralmente estão disponíveis em vários tamanhos. Toda a frota gerenciada pelo Amazon GameLift Servers usa instâncias do Amazon EC2 e oferece suporte a uma ampla variedade de tipos de instância que oferecem combinações diferentes de capacidade de computação, memória, armazenamento e recursos de rede. A disponibilidade dos tipos de instância varia de acordo com os locais que você seleciona. 

O console do Amazon GameLift Servers fornece ferramentas úteis para ajudar você a encontrar os tipos de instância certos para sua compilação de jogos e suas localizações de implantação. Para frotas de contêineres gerenciados, o console também oferece orientação sobre os requisitos de memória e energia da CPU do seu jogo.

Ao escolher entre os tipos de instância disponíveis para seu jogo, considere:
+ A arquitetura computacional do seu servidor de jogos: x64 ou Arm (AWS Graviton).
**nota**  
As instâncias do Arm exigem um servidor desenvolvido para um AMI do Linux. O Server SDK 5.1.1 ou mais recente é necessário para C\$1\$1 e C\$1. O Server SDK 5.0 ou mais recente é necessário para o Go. Essas instâncias não oferecem out-of-the-box suporte para a instalação do Mono no Amazon Linux 2023 (AL2023) ou no Amazon Linux 2 (AL2). 
+ Os requisitos de computação, memória e armazenamento da versão do seu servidor de jogos. 
+ O tamanho do seu tipo de instância. Além de atender aos requisitos dos executáveis do software do servidor de jogos, tamanhos maiores de tipos de instância podem executar vários and/or contêineres de processos de servidor de jogos em cada instância. Os fatores a serem considerados incluem o custo (é mais barato executar algumas instâncias grandes ou muitas instâncias pequenas). Considere também como a capacidade da sessão de jogo pode ser afetada pela adição ou remoção de instâncias durante eventos de escalonamento da frota ou ao encerrar instâncias não íntegras. Se cada instância executar vários processos do servidor de jogos simultaneamente, adicionar ou remover uma instância pode afetar significativamente a capacidade de hospedagem do jogo. 

Para obter mais informações sobre os tipos de instância, veja [Tipos de instância do Amazon EC2](https://aws.amazon.com/ec2/instance-types/).

## Instâncias sob demanda versus instâncias spot
<a name="gamelift-compute-spot"></a>

As instâncias sob demanda e as instâncias spot do Amazon EC2 oferecem o mesmo hardware e desempenho, mas diferem em disponibilidade e custo.

**Instâncias sob demanda**  
Você poderá adquirir uma instância sob demanda quando precisar e mantê-la pelo tempo que desejar. As instâncias sob demanda têm um custo fixo, o que significa que você paga somente pelo tempo que usá-las. Não há compromissos de longo prazo.

**Instâncias spot**  
As instâncias spot podem oferecer uma alternativa econômica às instâncias sob demanda, utilizando a capacidade de computação não AWS utilizada. Os preços das Instâncias Spot flutuam com base na oferta e na demanda de cada tipo de instância em cada local. AWS pode recuperar instâncias spot com uma notificação de dois minutos sempre que precisar recuperar a capacidade, e as sessões de jogo em execução ativa em uma instância recuperada são interrompidas. 

O Amazon GameLift Servers oferece várias ferramentas para ajudar a reduzir a probabilidade de interrupções pontuais em suas sessões de jogo. Um algoritmo de viabilidade spot rastreia os dados históricos do tipo de instância para prever quando o risco de interrupção atinge um ponto crítico e evita colocar novas sessões de jogo em instâncias spot desse tipo. Se ocorrer uma interrupção, seus servidores de jogos podem usar a notificação para encerrar corretamente uma sessão de jogo para os jogadores..

A hospedagem de jogos com frotas Spot deve usar uma fila para a colocação da sessão de jogo. Uma fila é capaz de priorizar as colocações das sessões de jogo com base na viabilidade, no custo e em outros fatores da frota Spot. Consulte estes tópicos para obter mais informações sobre como aproveitar as vantagens do Spot para hospedar seu servidor de jogos: 
+ [Reduza os custos de hospedagem de jogos com frotas Spot](fleets-spot.md)
+ [Construir uma fila para instâncias Spot](spot-tasks.md)

## Cotas de serviço
<a name="gamelift-service-limits"></a>

Você pode visualizar as Service Quotas padrão para o Amazon GameLift Servers e o status atual da cota para sua Conta da AWS usando as seguintes ferramentas:
+ Para obter informações sobre service quotas para o Amazon GameLift Servers, consulte [Endpoints e cotas do Amazon GameLift Servers](https://docs.aws.amazon.com/general/latest/gr/gamelift.html) na *Referência geral da AWS*.
+ Para obter uma lista dos tipos de instância disponíveis por local para sua conta, abra a página de [Service quotas](https://console.aws.amazon.com/gamelift/service-quotas) do console Amazon GameLift Servers. Essa página também exibe o uso atual da sua conta para cada tipo de instância em cada local.
+ Para obter uma lista das cotas atuais da sua conta para tipos de instância por região, execute o comando AWS Command Line Interface [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/describe-ec2-instance-limits.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/describe-ec2-instance-limits.html)(AWS CLI). Esse comando retorna o número de instâncias ativas que você tem na sua região padrão (ou em outra região especificada).

Ao se preparar para lançar seu jogo, preencha um questionário de lançamento no [Amazon GameLift Serversconsole](https://console.aws.amazon.com/gamelift/). A equipe do Amazon GameLift Servers usa o questionário de lançamento para determinar as cotas e limites corretos para seu jogo.

# Personalizar uma frota de contêineres do Amazon GameLift Servers
<a name="containers-design-fleet"></a>

Os tópicos desta seção descrevem alguns dos recursos opcionais para contêineres gerenciados pelo Amazon GameLift Servers. Você pode optar por usar qualquer um ou todos esses recursos.

**Topics**
+ [Definir limites de recursos](#containers-design-fleet-limits)
+ [Compreenda a alocação de memória da frota de contêineres](#containers-design-fleet-memory-allocation)
+ [Configurando o NVMe Drive Access](#containers-design-fleet-nvme)
+ [Designar contêineres essenciais](#containers-design-fleet-essential)
+ [Configurar conexões de rede](#containers-custom-network)
+ [Configurar verificações de saúde para contêineres](#containers-design-fleet-health)
+ [Definir dependências de contêiner](#containers-design-fleet-dependencies)
+ [Configurar uma frota de contêineres](#containers-design-fleet-config)

## Definir limites de recursos
<a name="containers-design-fleet-limits"></a>

Para cada grupo de contêineres, você pode determinar de quanta memória e capacidade de processamento o grupo de contêineres precisa para executar seu software. O Amazon GameLift Servers depende dessas informações para gerenciar recursos em todo o grupo de contêineres. Ele também usa essas informações para calcular quantos grupos de contêineres de servidores de jogos uma imagem da frota pode conter. Você também pode definir limites para contêineres individuais.

Você pode definir um limite máximo de memória e capacidade de computação para um grupo de contêineres. Por padrão, esses recursos são compartilhados por todos os contêineres do grupo. Você pode personalizar ainda mais o gerenciamento de recursos definindo limites para contêineres individuais. 

**Definir limites opcionais para contêineres individuais**  
Definir limites de recursos específicos para contêineres permite que você exerça maior controle sobre como contêineres individuais podem usar os recursos do grupo. Se você não definir limites específicos para contêineres, todos os contêineres do grupo compartilharão os recursos do grupo. O compartilhamento oferece maior flexibilidade para usar os recursos onde eles são necessários. Também aumenta o potencial de os processos competirem entre si e resultarem em falhas no contêiner.  
Defina qualquer uma das propriedades de `ContainerDefinition` a seguir para qualquer contêiner.  
+ `MemoryHardLimitMebibytes`— Defina um limite máximo de memória para o contêiner. Se o contêiner exceder esse limite, isso resultará em uma reinicialização.
+ Limite de `Vcpu` — Reserve uma quantidade mínima de recursos de vCPU para uso exclusivo do contêiner. O contêiner sempre tem o valor reservado disponível. Ele pode exceder esse mínimo a qualquer momento, se houver recursos adicionais disponíveis. (1024 unidades de CPU equivalem a 1 vCPU.)

**Definir limites totais de recursos para um grupo de contêineres**  
Se você definir limites para contêineres individuais, talvez seja necessário modificar a quantidade de recursos de memória e vCPU que o grupo de contêineres precisa. O objetivo é alocar recursos suficientes para otimizar o desempenho do servidor de jogos. O Amazon GameLift Servers usa esses limites para calcular como agrupar grupos de contêineres de servidores de jogos em uma instância de frota. Você também os utilizará ao escolher um tipo de instância para uma frota de contêineres.  
Calcule a memória total e a vCPU necessárias para um grupo de contêineres. Considere o seguinte:  
+ Quais são todos os processos que são executados em todos os contêineres do grupo de contêineres? Some os recursos necessários para esses processos. Anote quaisquer limites específicos do contêiner.
+ Quantos processos simultâneos de servidor de jogos você planeja executar em cada grupo de contêineres? Você determina isso na imagem do contêiner do seu servidor de jogos. 
Com base em sua estimativa dos requisitos do grupo de contêineres, defina as seguintes propriedades de `ContainerGroupDefinition`:   
+ `TotalMemoryLimitMebibytes`— Definir um limite máximo de memória para o grupo de contêineres. Todos os contêineres do grupo compartilham a memória alocada. Se você definir limites de contêineres individuais, o limite total de memória deverá ser igual ou maior que o limite máximo de memória específico do contêiner.
+ `TotalVcpuLimit`— Definir um limite máximo de vCPU para o grupo de contêineres. Todos os contêineres do grupo compartilham os recursos de CPU alocados. Se você definir limites de contêineres individuais, o limite total de CPU deverá ser igual ou maior que a soma de todos os limites de CPU específicos dos contêineres. Como prática recomendada, considere definir esse valor para dobrar a soma dos limites de CPU do contêiner.

**Exemplo de cenário**  
Digamos que estamos definindo um grupo de contêineres de servidores de jogos com os três contêineres a seguir:   
+ O contêiner A é o nosso contêiner de servidor de jogos. Estimamos os requisitos de recursos para um servidor de jogos em 512 MiB e 1024 de CPU. Planejamos que o contêiner execute 1 processo de servidor. Como esse contêiner executa nosso software mais crítico, não definimos limite de memória ou limite de reserva de vCPU.
+ O contêiner B é um contêiner de suporte com requisitos de recursos estimados em 1024 MiB e 1536 de CPU. Definimos um limite de memória de 2048 MiB e um limite de reserva de CPU de 1024 de CPU.
+ O contêiner C é outro contêiner de suporte. Definimos um limite de memória absoluto de 512 MiB e um limite de reserva de CPU de 512 de CPU.
Usando essas informações, definimos os seguintes limites totais para o grupo de contêineres:  
+ Limite total de memória: 7680 MiB. Esse valor excede o limite máximo de memória (1024 MiB).
+ Limite total de CPU: 13312 CPU. Esse valor excede a soma do limite de CPU (1024\$1512 CPU).

## Compreenda a alocação de memória da frota de contêineres
<a name="containers-design-fleet-memory-allocation"></a>

Quando Amazon GameLift Servers implanta grupos de contêineres em uma instância de frota, nem toda a memória da instância está disponível para seus contêineres. Amazon GameLift Serversreserva uma parte da memória da instância para o sistema operacional, o agente do Amazon ECS e outros serviços de suporte. A quantidade de memória reservada varia com base na memória total do tipo de instância. Entender essa sobrecarga ajuda você a configurar suas definições de grupo de contêineres para utilizar totalmente os recursos disponíveis.

### Fórmula de sobrecarga de memória
<a name="containers-design-fleet-memory-formula"></a>

Amazon GameLift Serverscalcula a memória disponível para seus grupos de contêineres usando as seguintes etapas:

1. **Determine a porcentagem do buffer de memória.** Amazon GameLift Serversreserva uma porcentagem da memória total da instância com base nos seguintes níveis:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/containers-design-fleet.html)

1. **Calcule a memória disponível.** Subtraia a memória reservada da memória total da instância:

   `AvailableMemory = InstanceMemory - round(InstanceMemory × BufferPercentage)`

1. **Subtraia a memória do grupo de contêineres por instância.** Se sua frota usa um grupo de contêineres por instância, subtraia-o `TotalMemoryLimitMebibytes` da memória disponível. Um grupo de contêineres por instância é executado em cada instância da frota.

   `AvailableMemory = AvailableMemory - PerInstanceCGD.TotalMemoryLimitMebibytes`

1. **Conta a sobrecarga do roteador de log.** Se o registro estiver habilitado para a frota, Amazon GameLift Servers reserva 50 MiB adicionais por grupo de contêineres do servidor de jogos para o roteador de log.

1. **Calcule grupos máximos de contêineres de servidores de jogos.** O número máximo de grupos de contêineres de servidores de jogos que cabem na instância por memória é:

   `MaxGroupsByMemory = floor(AvailableMemory / (GameServerCGD.TotalMemoryLimitMebibytes + LogRouterMemory))`

   Onde `LogRouterMemory` é 50 MiB se o registro estiver ativado ou 0 se o registro estiver desativado.

**nota**  
A memória é apenas um fator que determina quantos grupos de contêineres de servidores de jogos cabem em uma instância. Amazon GameLift Serverstambém considera a capacidade da vCPU e as portas de conexão disponíveis e usa o mínimo dos três cálculos.

### Exemplo de cálculo de memória
<a name="containers-design-fleet-memory-example"></a>

Considere uma frota usando uma `c5.xlarge` instância (8.192 MiB de memória total) com o registro ativado:

1. A memória da instância é de 8.192 MiB, que se enquadra no nível de 5.000 a 9.999 (buffer de 6%)

1. Memória reservada = redonda (8.192 × 0,06) = 492 MiB

1. Memória disponível = 8.192 - 492 = 7.700 MiB

1. Se estiver usando um grupo de contêineres por instância com `TotalMemoryLimitMebibytes` 512: Memória disponível = 7.700 - 512 = 7.188 MiB

1. Se cada grupo de contêineres do servidor `TotalMemoryLimitMebibytes` de jogo tiver 1.024: MaxGroupsByMemory = floor (7.188/(1.024 \$1 50)) = floor (7.188/1.074) = 6

### Memória disponível por tipo de instância
<a name="containers-design-fleet-memory-reference"></a>

A tabela a seguir mostra a memória total e a memória disponível (depois do Amazon GameLift Servers buffer) para os tipos de instância mais usados. Use esses valores como ponto de partida ao configurar suas definições de grupo de contêineres. A coluna *Memória disponível* mostra a memória disponível para todos os grupos de contêineres na instância, antes de subtrair qualquer grupo de contêineres por instância ou sobrecarga do roteador de log.


| Tipo de instância | Memória total (MiB) | Porcentagem de buffer | Memória disponível (MiB) | 
| --- | --- | --- | --- | 
| c5.large | 4.096 | 8% | 3.768 | 
| c5.xlarge | 8,192 | 6% | 7.700 | 
| c5.2xlarge | 16.384 | 5% | 15.565 | 
| c5.4xlarge | 32.768 | 5% | 31.130 | 
| c5.9xlarge | 73.728 | 5% | 70.042 | 
| c5.12xlarge | 98.304 | 4% | 94.372 | 
| c5.18xlarge | 147.456 | 4% | 141.558 | 
| c5.24xlarge | 196.608 | 4% | 188.744 | 
| m5.large | 8,192 | 6% | 7.700 | 
| m5.xlarge | 16.384 | 5% | 15.565 | 
| m5.2xlarge | 32.768 | 5% | 31.130 | 
| m5.4xlarge | 65.536 | 5% | 62.259 | 
| m5.8xlarge | 131.072 | 4% | 125.829 | 
| m5.12xlarge | 196.608 | 4% | 188.744 | 
| r5.large | 16.384 | 5% | 15.565 | 
| r5.xlarge | 32.768 | 5% | 31.130 | 
| r5.2xlarge | 65.536 | 5% | 62.259 | 
| r5.4xlarge | 131.072 | 4% | 125.829 | 
| c6i.large | 4.096 | 8% | 3.768 | 
| c6i.xlarge | 8,192 | 6% | 7.700 | 
| c6i.2xlarge | 16.384 | 5% | 15.565 | 
| c6i.4xlarge | 32.768 | 5% | 31.130 | 
| c6i.8xlarge | 65.536 | 5% | 62.259 | 
| c7i.large | 4.096 | 8% | 3.768 | 
| c7i.xlarge | 8,192 | 6% | 7.700 | 
| c7i.2xlarge | 16.384 | 5% | 15.565 | 
| c7i.4xlarge | 32.768 | 5% | 31.130 | 
| c7i.8xlarge | 65.536 | 5% | 62.259 | 
| m7i.large | 8,192 | 6% | 7.700 | 
| m7i.xlarge | 16.384 | 5% | 15.565 | 
| m7i.2xlarge | 32.768 | 5% | 31.130 | 
| m7i.4xlarge | 65.536 | 5% | 62.259 | 
| m7i.8xlarge | 131.072 | 4% | 125.829 | 
| m7i.12xlarge | 196.608 | 4% | 188.744 | 
| r7i.large | 16.384 | 5% | 15.565 | 
| r7i.xlarge | 32.768 | 5% | 31.130 | 
| r7i.2xlarge | 65.536 | 5% | 62.259 | 
| r7i.4xlarge | 131.072 | 4% | 125.829 | 

Por exemplo, tipos não listados aqui, você pode calcular a memória disponível usando a fórmula descrita acima. Consulte a [documentação dos tipos de instância do Amazon EC2](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-type-specifications.html) para ver a memória total do tipo de instância escolhido.

## Configurando o NVMe Drive Access
<a name="containers-design-fleet-nvme"></a>

Em instâncias do tipo d, a NVMe unidade é montada automaticamente no `/data` diretório durante a inicialização do host. Para permitir que os contêineres acessem o armazenamento SSD, defina a seguinte `ContainerGroupDefinition` propriedade`MountPoints`:
+ `InstancePath`— Defina como referência `/data` à NVMe unidade montada automaticamente na instância host.
+ `AccessLevel`— Escolha o nível de acesso apropriado para as necessidades do seu contêiner (por exemplo, READ\$1ONLY ou READ\$1WRITE).
+ `ContainerPath`— (Opcional) Especifique o caminho em que o caminho da instância será montado dentro do contêiner. Se não for especificado, o padrão é o caminho da instância.

Para obter mais informações sobre pontos de montagem, consulte [ContainerMountPoint](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ContainerMountPoint.html)a Amazon GameLift Servers API Reference.

## Designar contêineres essenciais
<a name="containers-design-fleet-essential"></a>

Para um grupo de contêineres por instância, designe cada contêiner como essencial ou não essencial. Os grupos de contêineres por instância devem ter pelo menos um contêiner de suporte essencial. O contêiner essencial faz o trabalho crítico do grupo de contêineres. Espera-se que o contêiner essencial esteja sempre funcionando. Se falhar, todo o grupo de contêineres será reiniciado. 

Defina a propriedade `Essential` de `ContainerDefinition` como verdadeira ou falsa para cada contêiner.

## Configurar conexões de rede
<a name="containers-custom-network"></a>

Você pode personalizar o acesso à rede para permitir que o tráfego externo se conecte a qualquer contêiner em uma frota de contêineres. Por exemplo, você deve estabelecer conexões de rede com o contêiner que executa os processos de seu servidor de jogos, para que os clientes do jogo possam entrar e jogar seu jogo. Clientes de jogos se conectam aos servidores de jogos usando portas e endereços IP.

Em uma frota de contêineres, a conexão entre cliente e servidor não é direta. Internamente, um processo em um contêiner escuta em uma *porta de contêiner*. Externamente, o tráfego de entrada se conecta a uma instância de frota usando uma *porta de conexão*. O Amazon GameLift Servers mantém os mapeamentos entre as portas internas do contêiner e as portas de conexão externas, para que o tráfego de entrada seja roteado para o processo correto na instância. 

O Amazon GameLift Servers fornece uma camada extra de controle para suas conexões de rede. Cada frota de contêineres tem uma configuração de *permissões de entrada*, que permite controlar o acesso a cada porta de conexão externa. Por exemplo, você pode remover as permissões de todas as portas de conexão para desligar todo o acesso aos contêineres da frota.

Você pode atualizar as permissões de entrada, as portas de conexão e as portas de contêineres de uma frota.

**Atenção**  
Se você fornecer um produto personalizado InstanceConnectionPortRange ou InstanceInboundPermissions, não Amazon GameLift Servers gerenciará mais nenhum valor para sua frota. Você deve definir os dois campos para evitar um comportamento indefinido.

**Configurar intervalos de portas do contêiner**  
Configure os intervalos de portas do contêiner como parte da definição de cada contêiner. Esse é um parâmetro obrigatório para a definição de um grupo de contêineres. Você precisa configurar portas suficientes para acomodar todos os processos em execução simultânea que precisam de acesso externo. Alguns contêineres não precisarão de portas.  
Seu contêiner de servidor de jogos, que executa seus servidores de jogos, precisa de uma porta para cada processo de servidor de jogos em execução simultânea. O processo do servidor do jogo escuta na porta atribuída e a reporta ao Amazon GameLift Servers.

**Configurar intervalos de portas de conexão**  
Configure sua frota de contêineres com um conjunto de portas de conexão. As portas de conexão fornecem acesso externo às instâncias da frota que estão executando seus contêineres. O Amazon GameLift Servers atribui portas de conexão e as mapeia para portas de contêiner conforme necessário.  
Por padrão, o Amazon GameLift Servers calcula o número de portas necessárias para todos os grupos de contêineres e define um intervalo de portas para acomodá-los. É altamente recomendável usar valores calculados pelo Amazon GameLift Servers, que são atualizados quando você implanta atualizações em uma definição de grupo de contêineres. Se você precisar personalizar os intervalos de portas de conexão, use as orientações a seguir.  
Ao criar uma frota de contêineres, defina um intervalo de portas de conexão (consulte [ ContainerFleet: InstanceConnectionPortRange](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ContainerFleet.html)). Certifique-se de que o intervalo tenha portas suficientes para mapear para cada porta de contêiner definida em todos os contêineres nos dois grupos de contêineres da frota. Para calcular as portas de conexão mínimas necessárias, use a seguinte fórmula:   
`[Total number of container ports defined for containers in the game server container group] * [Number of game server container groups per instance] + [Total number of container ports defined for containers in the per-instance container group]`  
Como prática recomendada, dobre o número mínimo de portas de conexão.   
O número de portas de conexão pode potencialmente limitar o número de grupos de contêineres de servidores de jogos por instância. Se uma frota tiver apenas portas de conexão suficientes para um grupo de contêineres de servidores de jogos por instância, o Amazon GameLift Servers implantará somente um grupo de contêineres de servidores de jogos, mesmo que as instâncias tenham capacidade computacional suficiente para vários grupos de contêineres de servidores de jogos.

**Configurar permissões de entrada**  
As permissões de entrada controlam o acesso externo a uma frota de contêineres especificando quais portas de conexão devem ser abertas para o tráfego de entrada. Você pode usar essa configuração para ativar e desativar o acesso à rede de uma frota conforme necessário.   
Por padrão, o Amazon GameLift Servers calcula o número de portas necessárias para todos os grupos de contêineres e define um intervalo de portas para acomodá-los. É altamente recomendável usar valores calculados pelo Amazon GameLift Servers, que são atualizados quando você implanta atualizações em uma definição de grupo de contêineres. Se você precisar personalizar os intervalos de portas de conexão, use as orientações a seguir.  
Ao criar uma frota de contêineres, defina um conjunto de permissões de entrada (consulte [ ContainerFleet: InstanceInboundPermissions](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ContainerFleet.html)). As portas de permissão de entrada devem corresponder aos intervalos de portas de conexão da frota.   
Como as portas de contêiner são selecionadas aleatoriamente a partir do InstanceConnectionPortRange, para garantir que as conexões de sessão possam ser feitas, todas as portas de entrada InstanceConnectionPortRange devem ser cobertas por portas em InstanceInboundPermissions

**Exemplo de cenário**  
Este exemplo ilustra como definir as três propriedades de conexão.  
+ O grupo de contêineres de servidores de jogos da nossa frota tem 1 contêiner, que executa 1 processo de servidor de jogos. 

  Na definição do grupo de contêineres do servidor de jogos, definimos o parâmetro `PortConfiguration` para esse contêiner da seguinte forma:

  ```
  "PortConfiguration": {
    "ContainerPortRanges": [ { "FromPort": 10, "ToPort": 20, "Protocol": "TCP"} ]  }
  ```
+ Nossa frota também tem um grupo de contêineres por instância com 1 contêiner. Ela tem 1 processo que precisa de acesso à rede. Na definição do grupo de contêineres por instância, definimos o parâmetro `PortConfiguration` para esse contêiner da seguinte forma:

  ```
  "PortConfiguration": {
    "ContainerPortRanges": [ { "FromPort": 25, "ToPort": 25, "Protocol": "TCP"} ]  }
  ```
+ Nossa frota é configurada com 20 grupos de contêineres de servidores de jogos por instância da frota. Com essas informações, podemos usar a fórmula para calcular o número de portas de conexão necessárias: 
  + Mínimo: **21 portas** [1 porta de contêiner de servidor de jogos \$1 20 grupos de contêineres de servidores de jogos por instância \$1 1 porta de contêiner por instância]
  + Melhor prática: **42 portas** [portas mínimas\$1 2]

  Ao criar a frota de contêineres, definimos o parâmetro `InstanceConnectionPortRange` da seguinte forma:

  ```
  "InstanceConnectionPortRange": { "FromPort": 1010, "ToPort": 1071 }
  ```
+ Queremos permitir o acesso a todas as portas de conexão disponíveis. Ao criar a frota de contêineres, definimos o parâmetro `InstanceInboundPermissions` da seguinte forma: 

  ```
  "InstanceInboundPermissions": [ 
    {"FromPort": 1010, "ToPort": 1071, "IpRange": "10.24.34.0/23", "Protocol": "TCP"} ]
  ```

## Configurar verificações de saúde para contêineres
<a name="containers-design-fleet-health"></a>

Um contêiner é reiniciado automaticamente se ocorrer uma falha terminal e parar de funcionar. Se um contêiner for considerado essencial, ele solicitará que todo o grupo de contêineres seja reiniciado. 

Todos os contêineres do servidor de jogos são automaticamente considerados essenciais. Os contêineres de suporte podem ser designados como essenciais, mas precisam ter um mecanismo para relatar a integridade. Você também pode definir verificações de integridade para contêineres de suporte não essenciais.

Você pode definir critérios personalizados adicionais para medir a integridade do contêiner e usar uma verificação de integridade para testar esses critérios. Para configurar uma verificação de integridade do contêiner, você pode defini-la em uma imagem de contêiner do Docker ou em sua definição de contêiner. Se você definir uma verificação de integridade na definição do contêiner, ela substituirá todas as configurações na imagem do contêiner.

Defina as propriedades de `SupportContainerDefinition` a seguir para uma verificação de integridade de contêiner: 
+ `Command` — Forneça um comando que verifique algum aspecto da integridade do contêiner. Você decide quais critérios usar para medir a integridade. O comando deve resultar em um valor de saída de 1 (não íntegro) ou 0 (íntegro). 
+ `StartPeriod` — Especifique um atraso inicial antes que as falhas na verificação de integridade comecem a ser contadas. Esse atraso dá ao contêiner tempo para inicializar seus processos.
+ `Interval` — Decida com que frequência executar o comando de verificação de integridade. Com que rapidez você deseja detectar e resolver uma falha no contêiner?
+ `Timeout` — Decida quanto tempo esperar pelo sucesso ou pela falha antes de tentar novamente o comando de verificação de integridade. Quanto tempo o comando de verificação de integridade deve levar para ser concluído?
+ `Retries` — Quantas vezes o comando de verificação de integridade deve ser repetido antes de registrar uma falha?

## Definir dependências de contêiner
<a name="containers-design-fleet-dependencies"></a>

Em cada grupo de contêineres, você pode definir dependências entre contêineres com base no status do contêiner. Uma dependência afeta quando o contêiner dependente pode ser iniciado ou encerrado com base no status de outro contêiner. 

Um caso de uso importante para dependências é criar sequências de startup e desligamento para o grupo de contêineres. 

Por exemplo, você pode querer que o contêiner A inicialize primeiro e seja concluído com êxito antes do início dos contêineres B e C. Para conseguir isso, primeiro crie uma dependência para o contêiner B no contêiner A, com a condição de que o contêiner A seja concluído com êxito. Em seguida, crie uma dependência para o contêiner C no contêiner A com a mesma condição. As sequências de startup ocorrem na ordem inversa do desligamento.

## Configurar uma frota de contêineres
<a name="containers-design-fleet-config"></a>

Ao criar uma frota de contêineres, considere os seguintes pontos de decisão. A maioria desses pontos depende da arquitetura e da configuração do contêiner.

**Decida onde você deseja implantar sua frota**  
Em geral, você deseja implantar suas frotas geograficamente perto de seus jogadores para minimizar a latência. Você pode implantar sua frota de contêineres em qualquer uma Região da AWS que Amazon GameLift Servers ofereça suporte. Se você quiser implantar o mesmo servidor de jogo em outras localizações geográficas, você pode adicionar locais remotos à frota, incluindo Zonas Regiões da AWS Locais. Para uma frota multilocal, você pode ajustar a capacidade de forma independente em cada local da frota. Para obter mais informações sobre localizações de frotas que recebem suporte, consulte [Locais de serviço do Amazon GameLift Servers](gamelift-regions.md).  
Considere utilizar [Sinalizadores de ping UDP](reference-udp-ping-beacons.md) para coletar dados de latência de rede em várias localizações geográficas para prever a latência entre os dispositivos dos jogadores e possíveis locais da frota. Esses endpoints especiais aceitam mensagens UDP em vez de pings ICMP tradicionais, fornecendo medições de latência precisas para ajudar você a selecionar os locais ideais da frota.

**Escolha um tipo e tamanho de instância para sua frota**  
O Amazon GameLift Servers oferece suporte para uma ampla variedade de tipos de instâncias do Amazon EC2, todas disponíveis para uso com uma frota de contêineres. A disponibilidade e o preço do tipo de instância variam de acordo com o local. Você pode ver uma lista dos tipos de instância compatíveis, filtrados por localização, no console do Amazon GameLift Servers (em **Recursos, Instância e service quotas**).   
Ao escolher um tipo de instância, primeiro considere a família de instâncias. As famílias de instância oferecem combinações variadas de capacidades de rede, CPU, memória e armazenamento. Obtenha mais informações sobre [famílias de instâncias do EC2](https://aws.amazon.com/ec2/instance-types/). Em cada família, você tem uma variedade de tamanhos de instância para escolher. Considere os seguintes problemas ao selecionar um tamanho de instância:   
+ Qual é o tamanho mínimo de instância compatível com sua workload? Use essas informações para eliminar qualquer tipo de instância que seja muito pequeno.
+ Quais tamanhos de tipo de instância são adequados para sua arquitetura de contêiner? O ideal é escolher um tamanho que possa acomodar várias cópias do seu grupo de contêineres de servidores de jogos com o mínimo de espaço desperdiçado.
+ Qual granularidade de escala faz sentido para seu jogo? A capacidade da frota de escalar envolve adicionar ou remover instâncias, e cada instância representa a capacidade de hospedar um número específico de sessões de jogo. Considere a capacidade que você deseja adicionar ou remover com cada instância. Se a demanda dos jogadores variar em milhares de minuto a minuto, talvez faça sentido usar instâncias muito grandes que possam hospedar centenas ou milhares de sessões de jogo. Por outro lado, você pode preferir um controle de escalabilidade mais refinado com tipos de instância menores.
+ Há economia de custos disponível com base no tamanho? Você pode descobrir que o custo de certos tipos de instância varia de acordo com o local devido à disponibilidade.

**Definir outras configurações opcionais da frota**  
É possível usar os seguintes recursos opcionais ao configurar uma frota de contêineres:   
+ Configure seus servidores de jogos para acessar outros AWS recursos. Consulte [Conecte seu servidor de jogos Amazon GameLift Servers hospedado a outros AWS recursos](gamelift-sdk-server-resources.md).
+ Impeça que sessões de jogos com jogadores ativos sejam encerradas prematuramente durante um evento de redução de escala.
+ Limite o número de sessões de jogo que um indivíduo pode criar na frota dentro de um período de tempo limitado.

# Reduza os custos de hospedagem de jogos com frotas Spot
<a name="fleets-spot"></a>

Ao hospedar servidores de jogos multijogador usando hospedagem gerenciada pelo Amazon GameLift Servers, as instâncias spot podem fornecer uma alternativa econômica às instâncias sob demanda. O modelo de preços spot oferece o mesmo hardware e desempenho do On-Demand, mas com economias de custo potencialmente significativas (até 70-90%). No entanto, eles vêm com uma limitação: quando AWS precisa recuperar a capacidade, ele pode recuperar essas instâncias com uma notificação de interrupção de dois minutos. 

O Amazon GameLift Servers reduz o risco de interrupções na hospedagem do servidor de jogos. O Amazon GameLift Servers prevê a probabilidade de interrupções nos tipos de instância Spot e evita colocar sessões de jogo em qualquer instância em risco. Se ocorrer uma interrupção rara, a notificação permite que você encerre normalmente uma sessão de jogo para os jogadores.

## Como o Amazon GameLift Servers funciona com frotas Spot
<a name="spot-fleet-howitworks"></a>

Quando você configura frotas Spot para hospedagem de jogos, o Amazon GameLift Servers avalia continuamente os tipos e locais de instância da sua frota Spot para verificar a viabilidade da hospedagem de jogos. 
+ O algoritmo de viabilidade Spot analisa os padrões recentes de disponibilidade e as taxas históricas de interrupção dos tipos de instância Spot por local.
+ Com base nessa análise, o Amazon GameLift Servers identifica os tipos de instância Spot e os locais em que há um potencial inaceitável de interrupção da sessão de jogo. Ele realiza as seguintes ações: 
  + Isso marca a combinação do tipo e da localização da instância como temporariamente inviável.
  + Ele remove qualquer localização inviável da frota Spot da consideração ao realizar novas sessões de jogo. Como resultado, as sessões de jogo são colocadas apenas em locais da frota Spot que têm uma alta probabilidade de hospedagem ininterrupta de servidores de jogos.
  + Ele esgota a localização da frota Spot das instâncias existentes, mesmo que a AWS não as recupere, então você não está pagando por instâncias que não podem ser usadas para hospedagem de jogos. Se a proteção da sessão de jogo estiver ativada, as instâncias serão encerradas somente após a conclusão das sessões ativas do jogo.
+ O Amazon GameLift Servers reavalia continuamente os tipos e locais de instância da sua frota Spot para verificar a viabilidade da hospedagem de jogos. Quando um tipo de instância anteriormente inviável se torna viável novamente com base em dados históricos atualizados, você pode aumentar a escala verticalmente da frota Spot novamente e o Amazon GameLift Servers retomará a realização de sessões de jogo com ela.

## Considerações sobre design
<a name="spot-fleet-design"></a>

Ao projetar sua solução para usar frotas Spot, considere os seguintes problemas:
+ **Avalie a duração da sessão de jogo** – A duração média de suas sessões de jogo pode afetar o desempenho do Spot em seu jogo. Com sessões de jogo mais curtas, a resposta mais rápida mantém as sessões de jogo em execução em tipos de instância viáveis com base nos dados históricos mais recentes. Sessões de jogo mais longas continuam sendo executadas em tipos de instância sem avaliar dados recentes de viabilidade, correndo um risco maior de interrupção ao longo do tempo.
+ **Avalie a disponibilidade do tipo de instância** — Nem todo local da frota oferece todos os tipos de instância como spot. Ao escolher um tipo de instância para sua frota spot, use a ferramenta de criação de frota do console do Amazon GameLift Servers para ajudar a encontrar os tipos de instância spot nos locais de que você precisa. Com essa ferramenta, você pode selecionar os locais da sua frota e, em seguida, visualizar a disponibilidade do tipo de instância nesses locais.
+ **Crie frotas Spot em vários locais** — Você pode criar frotas Spot com vários locais. Uma única frota spot com vários locais implanta instâncias com o mesmo tipo de instância em várias Zonas Regiões da AWS Locais. O algoritmo de viabilidade do Spot avalia a viabilidade com base no tipo e na localização da instância. Se a localização de uma frota Spot for avaliada como inviável, ela não afetará outras localizações na frota, que ainda podem ser usadas para sediar sessões de jogo.
+ **Crie filas com a diversidade de frotas Spot** — Se você estiver usando frotas Spot para hospedagem de jogos, precisará configurar uma fila de colocação da sessão de jogo. Para cada nova solicitação de sessão de jogo, a fila procura os recursos de hospedagem de jogos disponíveis e seleciona a melhor opção possível. Com as frotas spot, você quer uma fila que possa pesquisar em várias frotas que variam em locais e tipos de instância, e você quer incluir pelo menos uma frota sob demanda como capacidade de backup. Uma fila de várias frotas bem projetada que oferece diversas opções de colocação é altamente resistente a interrupções, lentidões e interrupções. Para obter orientação adicional sobre como criar uma fila para o Spot, consulte [Construir uma fila para instâncias Spot](spot-tasks.md).
+ **Lide com as interrupções com elegância** — Configure seu servidor de jogo para minimizar o impacto do jogador no caso de uma interrupção no Spot. Ao AWS recuperar uma instância spot, Amazon GameLift Servers passa a notificação de encerramento para todos os processos afetados do servidor usando a função de retorno de chamada do SDK do servidor. `onProcessTerminate()` Seu jogo precisa implementar esse retorno de chamada para encerrar a sessão de jogo normalmente. Para obter mais informações, consulte [Responder a uma notificação de desligamento do processo do servidor](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate).
**nota**  
AWS faz todos os esforços para fornecer a notificação antes de recuperar uma instância, mas é possível que ela AWS recupere a Instância Spot antes que o aviso chegue. Você também deve preparar o servidor de jogos para lidar com interrupções inesperadas.
+ **Configure o ajuste de escala automático para suas frotas de backup para manter o serviço durante uma interrupção Spot.** O ajuste de escala automático de rastreamento de metas mantém um buffer de capacidade e escala automaticamente de acordo com a demanda. Com o ajuste de escala automático, as frotas de backup (spot ou sob demanda) começarão a aumentar a capacidade sempre que começarem a receber mais solicitações de sessão de jogo. 

  Para substituir rapidamente a capacidade perdida quando uma frota spot se torna inviável, um mecanismo de escala personalizado pode usar as métricas de fila e frota disponíveis para iniciar um aumento horizontal de escala das frotas de backup. Detecte quando as frotas Spot se tornam inviáveis com métricas como `FirstChoiceOutOfCapacity`, e. `FirstChoiceNotViable` `PercentAvailableGameSessions` Estime as necessidades de capacidade de reposição analisando dados métricos de `PlacementsStarted` recentes. Depois de escalar as frotas de backup para lidar com a demanda imediata, o ajuste de escala automático normal pode assumir o controle.
+ **Integração com FlexMatch** — Se sua solução usa um combinador FlexMatch, não há requisitos especiais para frotas Spot. Você pode configurar um combinador para usar uma fila com frotas Spot. O Amazon GameLift Servers prioriza automaticamente as colocações de partidas em frotas Spot e sob demanda, inclusive ao organizar novas sessões de jogo e ao preencher vagas vazias de jogadores em sessões de jogo existentes.

# Otimize a configuração de runtime do servidor de jogos no Amazon GameLift Servers gerenciado
<a name="fleets-multiprocess"></a>

Defina uma configuração de runtime de uma frota EC2 gerenciada para executar vários processos de servidor de jogos por instância. Isso usa os recursos de hospedagem com mais eficiência.

## Como uma frota gerencia vários processos
<a name="fleets-multiprocess-howitworks"></a>

O Amazon GameLift Servers usa a configuração de runtime de uma frota para determinar o tipo e o número de processos a serem executados em cada instância. Uma configuração de runtime contém pelo menos uma configuração de processo do servidor que representa um executável do servidor de jogos. É possível definir configurações adicionais do processo do servidor para executar outros tipos de processos relacionados ao seu jogo. Cada configuração do processo do servidor contém as seguintes informações:
+ O nome do arquivo e o caminho de um executável na compilação do seu jogo.
+ (Opcional) Parâmetros a serem passados para o processo na inicialização
+ O número de processos a serem executados simultaneamente.

Quando uma instância na frota é ativada, ela inicia o conjunto de processos do servidor definido na configuração do runtime.​ Com vários processos, o Amazon GameLift Servers escalona a inicialização de cada processo. Os processos do servidor têm uma vida útil limitada. Ao final, o Amazon GameLift Servers lança inicia novos processos para manter o número e o tipo de processos do servidor definidos na configuração do runtime.

É possível alterar a configuração de runtime a qualquer momento adicionando, alterando ou removendo as configurações de processo do servidor. Cada instância verifica regularmente se há atualizações na configuração de runtime da frota, para implementar as alterações. Veja a seguir como o Amazon GameLift Servers adota as alterações de configuração de runtime:

1. A instância envia uma solicitação ao Amazon GameLift Servers para obter a versão mais recente da configuração de runtime.

1. A instância compara os processos ativos com a configuração de runtime mais recente e, em seguida, faz o seguinte:
   + Se a configuração atualizada do runtime remover um tipo de processo de servidor, os processos de servidor ativos desse tipo continuarão em execução até concluírem.​ A instância não substitui esses processos do servidor.
   + Se a configuração atualizada do runtime diminuir o número de processos simultâneos para um tipo de processo de servidor, os processos de servidor em excesso desse tipo continuarão em execução até terminarem. A instância não substitui esses processos excessivos do servidor.
   + Se a configuração atualizada do runtime adicionar um novo tipo de processo de servidor ou aumentar os processos simultâneos para um tipo existente, a instância iniciará novos processos de servidor, até o limite do Amazon GameLift Servers. Nesse caso, a instância inicia novos processos de servidor quando os processos existentes são concluídos.

## Otimize uma frota para vários processos
<a name="fleets-multiprocess-changes"></a>

Para usar vários processos em uma frota, faça o seguinte:
+ [Crie uma compilação](gamelift-build-intro.md) que contenha os executáveis do servidor de jogos a serem implantados em uma frota e, em seguida, carregue a compilação no Amazon GameLift Servers. Todos os servidores de jogos em uma compilação devem ser executados na mesma plataforma e usar o Server SDK do Amazon GameLift Servers.
+ Crie uma configuração de runtime com uma ou mais configurações de processo de servidor e vários processos simultâneos.
+ Integre clientes de jogos com a versão do AWS SDK 2016-08-04 ou posterior.

Para otimizar o desempenho da frota, é recomendável fazer o seguinte:
+ Processe cenários de desligamento do processo de servidor para que o Amazon GameLift Servers possa reciclar processos de maneira eficiente. Por exemplo:
  + Adicione um procedimento de encerramento ao código do servidor de jogos que chama a API de servidor de `ProcessEnding()`.
  + Implemente a função de retorno de chamada `OnProcessTerminate()` no código do servidor de jogos para processar as solicitações de encerramento do Amazon GameLift Servers.
+ Garanta que o Amazon GameLift Servers desligue e reinicie processos de servidor não íntegros. Relate o status de integridade de volta ao Amazon GameLift Servers, implementando a função de retorno de chamada `OnHealthCheck()` no código do servidor de jogos. O Amazon GameLift Servers desliga automaticamente processos de servidor reconhecidamente não íntegros por três relatórios consecutivos. Se você não implementar `OnHealthCheck()`, então o Amazon GameLift Servers assumirá que um processo de servidor está íntegro, a menos que o processo não responda a uma comunicação.

## Escolha o número de processos por instância
<a name="fleets-multiprocess-number"></a>

Ao decidir em relação ao número de processos simultâneos a serem executados em uma instância, lembre-se do seguinte:
+ O Amazon GameLift Servers limita cada instância a um [número máximo de processos simultâneos](https://docs.aws.amazon.com/general/latest/gr/gamelift.html#limits_gamelift). A soma de todos os processos simultâneos das configurações de processos do servidor de uma frota não pode exceder essa cota.
+ Para manter níveis de desempenho aceitáveis, o tipo de instância do Amazon EC2 pode limitar o número de processos que podem ser executados simultaneamente. Teste diferentes configurações para o jogo a fim de encontrar o número certo de processos para o tipo de instância preferido.
+ O Amazon GameLift Servers não executa mais processos simultâneos do que o número total configurado. Isso significa que a transição da configuração de runtime anterior para a nova configuração pode ocorrer gradualmente.

# Trabalhar com o Amazon GameLift Servers Agent
<a name="integration-dev-iteration-agent"></a>

O Amazon GameLift Servers Agent supervisiona a execução dos processos do servidor de jogos nas frotas do Amazon GameLift Servers. Implantado em cada computação de uma frota, o Agent fornece gerenciamento automatizado de processos, gerenciamento de hospedagem e registro em log para a computação. Para usar o Agent, a compilação de servidor de jogos precisa estar integrada ao o SDK 5.x ou posterior do servidor para Amazon GameLift Servers. 

O Amazon GameLift Servers Agent está disponível externamente para uso com frotas do Amazon GameLift Servers que não são gerenciadas no EC2. (As frotas gerenciadas do EC2 lidam com as tarefas do Agent automaticamente.) É possível operar frotas do Amazon GameLift Servers, inclusive frotas do Anywhere, com ou sem o Agent. Sem o Agent, será necessário uma solução alternativa para realizar as tarefas necessárias. 

Ao ser implantado em uma computação, o Amazon GameLift Servers Agent deve ser iniciado antes de qualquer processo do servidor de jogos. No início, o Agent realiza as seguintes tarefas:
+ Registra a computação com uma frota do Amazon GameLift Servers Anywhere usando a API [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).
+ Chama a API [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html) para buscar um token de autorização e armazená-lo para uso pelos processos do servidor que estão sendo executados na computação.
+ Define a variável de ambiente do URL do WebSocket para a computação e estabelece uma conexão WebSocket com o serviço do Amazon GameLift Servers.
+ Solicita a versão mais recente da configuração de tempo de execução da frota ao serviço do Amazon GameLift Servers. 
+ Inicia e interrompe os processos do servidor de acordo com as instruções de configuração de tempo de execução.

O código-fonte e as instruções de compilação do Amazon GameLift Servers Agent estão disponíveis no GitHub do [Amazon GameLift Servers Agent](https://github.com/aws/amazon-gamelift-agent).

## Sobre o Agent
<a name="gamelift-agent-usage"></a>

O Amazon GameLift Servers Agent foi projetado para executar as seguintes tarefas para as frotas:

**Gerenciamento de processos**
+ Inicia novos processos do servidor conforme definido nas instruções de tempo de execução. O Agent pode usar uma configuração de tempo de execução personalizada que é implantada com o Agent. Como alternativa, é possível fornecer uma `RuntimeConfiguration` como parte da definição da frota. Essa abordagem tem a vantagem de permitir a modificação da configuração de tempo de execução da frota a qualquer momento. O Agent solicita periodicamente configurações de tempo de execução atualizadas do serviço do Amazon GameLift Servers.
+ Monitora as ativações dos processos do servidor e encerra os processos quando eles não são ativados a tempo.
+ Envia heartbeats para o Amazon GameLift Servers. Se o Agent não enviar heartbeats, a computação poderá ser marcada como obsoleta.
+ Reporta ao Amazon GameLift Servers no término de um processo do servidor. O Amazon GameLift Servers usa essas informações para monitorar a disponibilidade do servidor de jogos para o posicionamento de sessões de jogos.
+ Emite eventos de frota para processos de servidor, incluindo: 
  + `SERVER_PROCESS_INVALID_PATH`: os parâmetros de inicialização do processo do servidor de jogos foram configurados incorretamente.
  + `SERVER_PROCESS_TERMINATED_UNHEALTHY`: o processo do servidor de jogos não relatou uma verificação de integridade válida dentro de 3 minutos após a ativação e, portanto, foi encerrado.
  + `SERVER_PROCESS_FORCE_TERMINATED`: o processo do servidor de jogos não foi encerrado corretamente após o envio de `OnProcessTerminate()` dentro de 30 segundos.
  + `SERVER_PROCESS_CRASHED`: um processo do servidor de jogos travou por algum motivo.

**Gerenciamento de computação**
+ Recebe mensagens do serviço do Amazon GameLift Servers para encerrar a computação.
+ Solicita que a computação seja encerrada pelo Amazon GameLift Servers.

**Registro em log de**
+ Faz upload de logs em um bucket do Amazon S3 em sua conta da AWS.

# Resumir uma designação de frota do Amazon GameLift Servers com um alias
<a name="aliases-intro"></a>

Um Amazon GameLift Servers *alias* é usado para resumir o destino de uma hospedagem. Os destinos de hospedagem indicam ao Amazon GameLift Servers onde procurar recursos disponíveis para hospedar uma nova sessão de jogo para os jogadores. Os aliases são úteis nos seguintes cenários: 
+ Se seu jogo não usa filas de várias frotas para posicionamento de sessões de jogo, ele solicita novas sessões de jogo especificando um Amazon GameLift Servers ID de frota. Durante o ciclo de vida de um jogo, você substituirá a frota várias vezes para atualizar a compilação de um servidor, atualizar o hardware e o sistema operacional de hospedagem ou resolver problemas de desempenho. Use um alias para resumir o ID da frota, permitindo que você alterne facilmente o tráfego de jogadores de uma frota existente para a nova. 
+ Se você deseja fazer algo além de criar uma sessão de jogo quando um cliente de jogo faz uma solicitação. Por exemplo, talvez você queira direcionar jogadores que estão usando um out-of-date cliente para um site de upgrade.

Um alias deve especificar uma estratégia de roteamento. Existem dois tipos. Uma estratégia de roteamento *simples* direciona o tráfego do jogador para um ID de frota especificado, que você pode atualizar para redirecionar o tráfego. Uma estratégia de roteamento de *terminal* envia uma mensagem de volta para o cliente em vez de criar uma sessão de jogo. É possível alterar a estratégia de roteamento de um alias a qualquer momento.

Se você usa uma fila para posicionamento de uma sessão de jogo, não é necessário um alias para redirecionar o tráfego ao substituir uma frota. Com uma fila, você pode simplesmente adicionar a nova frota e remover a frota antiga. Essa ação não é visível para os jogadores, porque as novas solicitações de sessão de jogo são atendidas automaticamente usando a nova frota. Isso não afeta as sessões de jogo existentes. Você pode identificar destinos de filas usando um ID de frota ou um alias. 



**Topics**
+ [Criar um alias da Amazon GameLift Servers](aliases-creating.md)

# Criar um alias da Amazon GameLift Servers
<a name="aliases-creating"></a>

Este tópico descreve como criar um alias do Amazon GameLift Servers para uso com o posicionamento de sessões de jogos. 

**Como criar um alias**

Use o console do Amazon GameLift Servers ou a AWS Command Line Interface (AWS CLI) para criar um alias. 

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

No [console do Amazon GameLift Servers](https://console.aws.amazon.com/gamelift/), use o painel de navegação para abrir a página **Aliases**.

1.  Escolha **Criar alias**.

1. Insira um **Nome** de alias. Recomendamos incluir características significativas no nome do alias para facilitar a visualização de uma lista de aliases.

1. Insira uma **Descrição** do alias conforme necessário.

1. Escolha uma **Estratégia de roteamento** para o alias.

   1. Se você escolher uma estratégia de roteamento **simples**, selecione um ID de frota na lista para associar a esse alias. A lista inclui todas as frotas na Região da AWS atualmente selecionada. É necessário criar um alias na mesma região da frota.

   1. Se você escolher uma estratégia de roteamento **Terminal**, insira um valor de string que deseja que o Amazon GameLift Servers retorne a um cliente de jogo em resposta a uma solicitação de sessão de jogo. Uma solicitação com um alias de terminal gera uma exceção com a mensagem incorporada.

1. (Opcional) Adicione **tags** ao recurso de alias. Cada tag consiste de uma chave e um valor opcional, que podem ser definidos. Atribua tags aos recursos da AWS que você deseja categorizar de maneiras úteis, como por finalidade, proprietário ou ambiente. Escolha **Adicionar nova tag** para cada tag a ser adicionada. 

1. Quando estiver pronto para implantar a nova frota, escolha **Criar**.

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

Use o comando [https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-alias.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-alias.html) para criar um alias. O Amazon GameLift Servers cria o recurso de frota no seu padrão atual Região da AWS (ou você pode adicionar uma tag --region para especificar uma Região da AWS diferente).

No mínimo, inclua um nome de alias e uma estratégia de roteamento. Para uma estratégia de roteamento simples, especifique o ID de uma frota na mesma região do alias. Para uma estratégia de roteamento de terminal, forneça uma string de mensagens.

------