Criar uma frota EC2 gerenciada do Amazon GameLift - Amazon GameLift

Criar uma frota EC2 gerenciada do Amazon GameLift

Este tópico descreve como criar uma frota EC2 gerenciada do Amazon GameLift. As frotas gerenciadas usam instâncias de computação do Amazon Elastic Compute Cloud (Amazon EC2) que são otimizadas para hospedagem de jogos com vários jogadores. Você pode criar frotas gerenciadas que implantam computações globalmente em Regiões da AWS e Zonas Locais compatíveis com o Amazon GameLift.

Ao criar uma frota EC2 gerenciada, o processo de criação da frota começa imediatamente. Uma frota gerenciada passa por várias fases à medida que o Amazon GameLift prepara a compilação do servidor de jogos, implanta instâncias EC2 com a compilação instalada e inicia servidores de jogos em cada instância. É possível monitorar o status da frota no console ou usando a AWS Command Line Interface (AWS CLI). Uma frota está pronta para hospedar sessões de jogo quando seu status atinge ACTIVE. Para obter mais informações sobre a criação de frotas gerenciadas, consulte os seguintes tópicos:

Como criar uma frota EC2 gerenciada

Use o console do Amazon GameLift ou a AWS Command Line Interface (AWS CLI) para criar uma frota EC2 gerenciada.

Console

No console do Amazon GameLift, use o painel de navegação para abrir a página Frotas. Escolha Criar frota para iniciar o fluxo de trabalho de criação da frota.

Etapa 1 Escolha o tipo de computação

Selecione a opção EC2 gerenciado e escolha Avançar.

Etapa 2 Defina os detalhes da frota

Nesta etapa, especifique algumas configurações para toda a frota.

Para uma configuração mínima da frota:
  • Forneça o nome da frota.

  • Escolha um tipo binário e especifique uma compilação ou script carregado.

  • Ignore as seções sobre detalhes e tags adicionais.

  1. Preencha a seção Detalhes da frota:

    1. Insira o Nome de uma frota. Recomendamos usar um padrão de nomenclatura de frota que facilite a identificação dos tipos de frota ao visualizar listas de frotas.

    2. Forneça uma breve Descrição da frota.

    3. Para o tipo binário, selecione Compilar para indicar que você está implantando uma compilação de servidor de jogos personalizada ou selecione Script se estiver implantando servidores em tempo real nessa frota. Selecione uma compilação ou um script carregado na lista suspensa.

  2. (Opcional) Defina detalhes adicionais conforme necessário.

    1. Se o executável do servidor de jogos precisar acessar outros recursos da AWS em sua conta, especifique um perfil de instância do IAM com as permissões necessárias. Para obter mais informações, incluindo como autorizar outras aplicações do lado do servidor (como o atendente do CloudWatch), consulte Comunique-se com outros recursos AWS de suas frotas. Essa configuração não pode ser alterada após a criação da frota.

      É necessário criar o perfil antes de criar uma frota que o utilize. Além disso, para criar uma frota com um perfil de instância, o usuário da AWS precisa ter permissão PassRole do IAM (consulte Exemplos de permissões do IAM do Amazon GameLift).

    2. Ative a opção Gerar um certificado TLS para configurar a autenticação e a criptografia do jogo. Os clientes do jogo usam esse certificado para autenticar um servidor de jogos ao se conectar e criptografar toda a comunicação entre cliente e servidor. Para cada instância em uma frota habilitada para TLS, o Amazon GameLift também cria uma nova entrada DNS com o certificado. Essa configuração não pode ser alterada após a criação da frota.

    3. Se você quiser combinar dados métricos dessa frota e de outras, especifique um nome de Grupo métrico. Use o mesmo nome do grupo métrico para todas as frotas que deseja combinar. Visualize as métricas do grupo de métricas para ver os dados agregados.

  3. (Opcional) Adicione tags ao recurso da frota. Cada tag consiste em uma chave e um valor opcional, ambos definidos por você. 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.

  4. Escolha Avançar para continuar o fluxo de trabalho.

Etapa 3 Defina detalhes da instância

Nesta etapa, especifique o tipo de recursos de hospedagem a serem usados e onde você deseja implantá-los. Ao escolher vários locais, é possível implantar o servidor de jogos em uma localização geográfica mais ampla, o que o coloca mais perto dos jogadores e minimiza a latência. Nem todos os tipos de instâncias EC2 estão disponíveis em todas as localizações.

Para uma configuração mínima da frota:
  • Não adicione locais remotos.

  • Defina o tipo de frota como “Sob demanda”. As frotas spot exigem trabalho adicional de configuração.

  • Defina o tipo de instância como “c5.large”. Esse tipo de instância comumente usado está disponível em todas as Regiões da AWS.

  1. Em Implantação de instâncias, especifique os locais e o tipo da frota.

    1. Selecione um ou mais Locais adicionais nos quais você deseja implantar instâncias de frota. Esses locais remotos são adicionados ao local de origem da frota (que é pré-selecionado), que é a Região da AWS onde você está criando essa frota. Você pode selecionar locais remotos de todas as Regiões da AWS e Zonas Locais compatíveis com o Amazon GameLift.

      Para saber mais sobre os locais compatíveis, incluindo como usar uma Região da AWS que não está habilitada por padrão, consulte Locais de serviço do Amazon GameLift para hospedagem gerenciada. Analise também as cotas do Amazon GameLift em locais por frota.

    2. Escolha usar instâncias Sob demanda ou Spot para essa frota. Para obter informações sobre tipos de frotas, consulte Instâncias sob demanda versus instâncias spot.

  2. Escolha uma configuração de instância do Amazon EC2 que atenda às suas necessidades e esteja disponível em todos os locais selecionados. Essa lista é filtrada com base no local atual e nas seleções do tipo de frota. É possível filtrá-la ainda mais por outros fatores, como a família e a arquitetura do tipo de instância. Após criar a frota, não será possível alterar o tipo de instância.

    Alguns locais têm opções limitadas de tipo de instância. Se o tipo de instância de sua preferência não estiver disponível para todos os locais, escolha o valor da disponibilidade do local para ver os detalhes completos. Para acomodar todos os locais, talvez seja necessário criar frotas separadas com diferentes tipos de instância.

    Para obter mais informações sobre a escolha de um tipo de instância, consulte Tipos de instância. Para saber mais sobre as arquiteturas Arm do Amazon EC2, consulte Processador Graviton da AWS e Tipos de instância do Amazon EC2. Para obter uma lista completa dos tipos de instância compatíveis com o Amazon GameLift, consulte a referência da API para EC2InstanceType (CreateFleet()).

    nota

    As instâncias do Graviton Arm exigem um servidor Amazon GameLift construído no sistema operacional Linux. O Server SDK 5.1.1 ou mais recente é necessário para C++ e C#. O Server SDK 5.0 ou mais recente é necessário para o Go. Essas instâncias não oferecem suporte imediato para a instalação do Mono no Amazon Linux 2023 (AL2023) ou no Amazon Linux 2 (AL2).

  3. Escolha Avançar para continuar o fluxo de trabalho.

Etapa 4 Configure o tempo de execução

Nesta etapa, descreva como você deseja que cada instância da frota execute o software do servidor de jogos. Defina um item de linha de processo do servidor separado para cada executável a ser executado em uma instância e decida quantos processos de cada servidor serão executados simultaneamente. Abra portas em cada instância para permitir que os jogadores se conectem diretamente aos servidores de jogos. Você pode atualizar essas configurações da frota a qualquer momento.

Para uma configuração mínima da frota:
  • Defina um único item de linha de processo do servidor para o executável do servidor de jogos. Se o servidor de jogos exigir que outros processos estejam em execução, crie também uma definição para cada um deles.

  • Use o número padrão de processos simultâneos (1) para cada item de linha.

  • Ignore as configurações de ativação da sessão de jogo.

  • Especifique um número de porta única.

  • Ignore as configurações de recursos da sessão de jogo.

  1. Crie uma configuração de tempo de execução para instruir o Amazon GameLift sobre como executar os processos de servidor em cada instância da frota. Você pode alterar a configuração de tempo de execução de uma frota a qualquer momento após a implantação.

    1. Insira o Caminho de inicialização para um arquivo executável na compilação. Em instâncias do Windows, os executáveis do servidor de jogo são criados no caminho C:\game. Em instâncias do Linux, os servidores de jogos são criados para /local/game. Exemplos: C:\game\MyGame\server.exe, /local/game/MyGame/server.exe ou MyRealtimeLaunchScript.js.

    2. Insira os Parâmetros de inicialização opcionais para passar ao executável do jogo. Exemplo: +sv_port 33435 +start_lobby.

    3. Especifique o número de Processos simultâneos a serem executados em cada instância. Para um executável de servidor de jogos, cada processo pode hospedar uma sessão de jogo, então os processos simultâneos determinam o número de sessões de jogo que a instância pode hospedar simultaneamente.

      Analise as cotas do Amazon GameLift nos processos do servidor por instância. Essas cotas se aplicam ao total de processos simultâneos para todas as configurações. Se você configurar a frota para excedê-las, ela não poderá ser ativada.

  2. Use os padrões de Ativação da sessão de jogo ou personalize-os para o jogo. Se a configuração do tempo de execução exigir vários processos simultâneos do servidor de jogos por instância, essas configurações determinarão a rapidez com que novas sessões de jogo podem ser iniciadas.

    1. Defina a Ativação máxima da sessão de jogos simultâneos para limitar o número de servidores de jogos em uma instância que estão preparando uma nova sessão de jogo. Essa configuração é útil quando a inicialização de várias novas sessões de jogo consome muitos recursos e pode afetar o desempenho de outras sessões de jogo em execução.

    2. Defina o Novo tempo limite de ativação para refletir a quantidade máxima de tempo que uma nova sessão de jogo deve levar para concluir a ativação e apresentar um relatório pronto para hospedar jogadores. O Amazon GameLift encerra a ativação de uma sessão de jogo se exceder esse valor.

  3. Abra as Configurações de portas do EC2 para permitir que o tráfego de entrada acesse os processos do servidor na frota. Essas configurações não são necessárias para criar uma frota, mas é necessário defini-las antes que os jogadores possam se conectar às sessões de jogo na frota.

    Para cada configuração de porta, escolha o Tipo de protocolo de transferência de dados a ser usado para comunicação entre o cliente do jogo e o servidor do jogo. Forneça um intervalo de portas (no formato nnnnn[-nnnnn]) e um intervalo de endereços IP usando a notação CIDR (como 0.0.0.0/0, que permite acesso a qualquer pessoa).

    Se você precisar definir vários intervalos não consecutivos, crie várias configurações de porta.

  4. Especifique as Configurações de recursos para a sessão de jogo opcionais. Você pode atualizar essas configurações a qualquer momento após a implantação.

    1. Ative ou desative a política de proteção de escalabilidade do jogo para todas as instâncias da frota. Durante um evento de redução vertical de escala, o Amazon GameLift não encerrará as instâncias protegidas da frota se elas estiverem hospedando sessões de jogo ativas.

    2. Defina um Limite de criação de recursos máximo se quiser restringir o número de sessões de jogo que um jogador pode criar durante um período de tempo especificado.

  5. Escolha Avançar para continuar o fluxo de trabalho.

Etapa 5 Revise e crie

Revise as configurações antes de criar a frota. Embora algumas configurações possam ser atualizadas posteriormente (consulte Atualizar uma configuração de frota do Amazon GameLift), alterações nas configurações a seguir não são permitidas após a criação da frota:

  • Tipo de computação: não é possível converter uma frota EC2 gerenciada em uma frota Anywhere.

  • Compilação ou script: para implantar uma atualização na compilação ou no script do servidor de jogos, é necessário criar uma frota.

  • Opções adicionais, incluindo perfil de instância e geração de certificado TLS.

  • Detalhes da instância, incluindo tipo de frota (spot ou sob demanda) e tipo de instância EC2.

Quando estiver pronto para implantar a nova frota, escolha Criar. O Amazon GameLift inicia imediatamente o processo de ativação da frota, atribuindo um ID exclusivo e colocando a frota em status NEW. Acompanhe o progresso da frota na página Frotas. Visualize a página de detalhes da frota e acesse a guia Eventos.

Você pode ajustar a capacidade de hospedagem de uma frota após ela atingir o status ACTIVE. O Amazon GameLift implanta inicialmente uma frota com uma única instância em cada local da frota, e você ajusta a capacidade adicionando instâncias a cada local. Para ter mais informações, consulte Escalar capacidade de hospedagem de jogos com o Amazon GameLift.

AWS CLI

Use o comando create-fleet para criar uma frota do tipo de computação EC2. O Amazon GameLift cria o recurso de frota na Região da AWS padrão atual (ou você pode adicionar uma tag --region para especificar uma Região da AWS diferente).

Criar uma frota gerenciada mínima

O exemplo de solicitação a seguir cria uma frota com as configurações mínimas necessárias para implantar uma frota com servidores de jogos em execução aos quais os clientes do jogo podem se conectar. A nova frota tem as seguintes características:

  • Ela especifica uma compilação de servidor de jogos, que foi enviada para o Amazon GameLift e está com o status READY.

  • Utiliza instâncias sob demanda c5.large com um sistema operacional que corresponde à compilação de jogo selecionada.

  • Ela define a Região da AWS principal da frota como us-west-2 e implanta instâncias somente nessa região.

  • Com base na configuração do tempo de execução, cada computação da frota executa um processo de servidor de jogos, o que significa que cada computação pode hospedar somente uma sessão de jogo por vez. O tempo limite de ativação da sessão de jogo é definido como o valor padrão de 300 segundos, e não há limite para o número de ativações simultâneas.

  • Os jogadores podem se conectar aos servidores de jogos usando uma configuração de porta única de 33435.

  • Todos os outros recursos estão desativados ou usam as configurações padrão.

aws gamelift create-fleet \ --name MinimalFleet123 \ --description "A basic test fleet" \ --region us-west-2 \ --ec2-instance-type c5.large \ --fleet-type ON_DEMAND \ --build-id build-1111aaaa-22bb-33cc-44dd-5555eeee66ff \ --runtime-configuration "ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe, ConcurrentExecutions=10}]" \ --ec2-inbound-permissions "FromPort=33435,ToPort=33435,IpRange=0.0.0.0/0,Protocol=UDP"

Criar uma frota gerenciada totalmente configurada

O exemplo de solicitação a seguir cria uma frota de produção com configurações para todos os recursos opcionais. A nova frota tem as seguintes características:

  • Ela especifica uma compilação de servidor de jogos, que foi enviada para o Amazon GameLift e está com o status READY.

  • Utiliza instâncias sob demanda c5.large com o sistema operacional que corresponde à compilação de jogo selecionada.

  • Define a Região da AWS principal da frota como us-west-2 e implanta instâncias na região de origem e em um local sa-east-1 remoto.

  • Com base na configuração do tempo de execução:

    • Cada computador da frota executa 10 processos de servidor de jogos com os mesmos parâmetros de inicialização, o que significa que cada computação pode hospedar até 10 sessões de jogo simultaneamente.

    • Em cada computação, somente duas sessões de jogo podem ser ativadas ao mesmo tempo. A ativação das sessões de jogo deve estar pronta para hospedar jogadores em um prazo de 300 segundos (5 minutos) ou ser encerrada.

  • Os jogadores podem se conectar aos servidores de jogos usando uma porta no seguinte intervalo: 33435 to 33535.

  • Gera um certificado TLS para comunicação criptografada entre o cliente e o servidor do jogo.

  • Todas as sessões de jogo na frota têm a proteção de sessão de jogo ativada.

  • Jogadores individuais são limitados a criar três sessões de jogo dentro de um período de 15 minutos.

  • As métricas dessa frota estão incluídas no grupo de métricas AMERfleets, que (neste exemplo) agrega métricas para um grupo de frotas nas Américas do Norte, Central e do Sul.

aws gamelift create-fleet \ --name ProdFleet123 \ --description "A fully configured prod fleet" \ --ec2-instance-type c5.large \ --region us-west-2 \ --locations "Location=sa-east-1" \ --fleet-type ON_DEMAND \ --build-id build-1111aaaa-22bb-33cc-44dd-5555eeee66ff \ --certificate-configuration "CertificateType=GENERATED" \ --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=33535,IpRange=0.0.0.0/0,Protocol=UDP" \ --metric-groups "AMERfleets"

Se a solicitação create-fleet for bem-sucedida, o Amazon GameLift retornará um conjunto de atributos da frota dentre os quais estão as definições de configuração solicitadas por você e um novo ID de frota. Em seguida, o Amazon GameLift inicia o processo de ativação da frota e define o status da frota e o status da localização como Novo. Você pode acompanhar o status da frota e visualizar outras informações da frota usando estes comandos da CLI:

É possível alterar a capacidade da frota e outras definições de configuração, conforme necessário, usando estes comandos: