Criar uma frota EC2 gerenciada pelo Amazon GameLift Servers
Este tópico descreve como criar uma frota do EC2 gerenciada do Amazon GameLift Servers. 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 recursos de computação globalmente em Regiões da AWS e Zonas Locais compatíveis com o Amazon GameLift Servers.
Ao criar um novo recurso gerenciado de frota do EC2, você inicia imediatamente a primeira fase da criação da frota. A criação gerenciada da frota passa por várias fases à medida que o Amazon GameLift Servers provisiona uma instância do EC2, instala um ambiente de runtime e seu servidor de jogos na instância e começa a lançar servidores de jogos. Dependendo do ambiente de runtime exigido pela criação do seu servidor de jogos, o Amazon GameLift Servers implanta a versão mais recente da imagem de máquina da Amazon (AMI) no momento da criação da frota (e todas as instâncias futuras da frota usarão a mesma versão). Você pode monitorar o status de uma frota no console ou utilizando o AWS Command Line Interface (AWS CLI). Quando uma frota está pronta para hospedar sessões de jogo, o status muda para ACTIVE. Para obter mais informações sobre a criação de frotas gerenciadas, consulte esses tópicos:
nota
Uma prática recomendada é substituir suas frotas a cada 30 dias para manter um ambiente de runtime seguro e atualizado para seus servidores de jogos hospedados. Isso requer a criação de uma nova frota e a migração do tráfego de jogadores para ela. Para obter mais orientações, consulte Melhores práticas de segurança do Amazon GameLift Servers.
Como criar uma frota EC2 gerenciada
Use o console do Amazon GameLift Servers ou a AWS Command Line Interface (AWS CLI) para criar uma frota EC2 gerenciada.
- Console
-
No console do Amazon GameLift Servers
, use o painel de navegação para abrir a página EC2 Gerenciado, Frotas. Escolha Criar frota gerenciada pelo EC2 para iniciar o fluxo de trabalho de criação da frota. - Etapa 1 Definir detalhes da frota de EC2 gerenciado
-
Para uma configuração mínima da frota:
-
Forneça o nome da frota.
-
Escolha Tipo binário: Compilar. Escolha uma compilação na lista de compilações de servidor cujo upload você tenha feito para o Amazon GameLift Servers anteriormente.
-
Ignore as seções Detalhes adicionais e Tags para usar as configurações padrão.
-
Preencha a seção Detalhes da frota:
-
Insira o Nome de uma frota. Os nomes das frotas são apenas descritivos, úteis para classificar ou filtrar uma lista de frotas. Eles não precisam ser exclusivos.
-
Forneça uma breve Descrição da frota para incluir qualquer informação personalizada que você queira capturar sobre a frota.
-
Selecione Tipo binário, Compilar e use a lista em cascata para escolher uma compilação do servidor de jogos cujo upload você tenha feito anteriormente para o Amazon GameLift Servers.
-
-
Defina Detalhes adicionais conforme necessário.
-
Se o executável do servidor de jogos precisar acessar outros recursos da AWS em sua conta, especifique um Perfil da 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 agente do CloudWatch), consulte Conecte seu servidor de jogos hospedado pelo Amazon GameLift Servers a outros recursos da AWS. 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
PassRoledo IAM (consulte Exemplos de permissão do IAM para o Amazon GameLift Servers). -
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 Servers 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.
-
O Amazon GameLift Servers emite dados métricos para cada frota individual. Se você quiser combinar dados métricos de várias frotas especifique um nome de Grupo de métricas. Use o mesmo nome de grupo de métricas para todas as frotas para o qual deseja combinar as métricas. Use o CloudWatch para visualizar os dados agregados do grupo métrico.
-
-
Adicione tags ao recurso da frota. Cada tag consiste de uma chave e um valor opcional, que podem ser definidos. Atribua tags aos recursos da AWS que você deseja categorizar, como por finalidade, proprietário ou ambiente. Escolha Adicionar nova tag para cada tag a ser adicionada.
-
Escolha Avançar para continuar o fluxo de trabalho.
-
- Etapa 2 Definir detalhes da instância
-
Nessa etapa, selecione o tipo de recursos de hardware a serem usados por seu servidor de jogos e especifique 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. Todas as instâncias do EC2 em uma frota devem ser do mesmo tipo. Nem todos os tipos de instâncias estão disponíveis em todas as localizações.
Para uma configuração mínima da frota:
-
Comece com a implantação somente no local de origem. Não é necessário adicionar locais remotos para o desenvolvimento e os testes iniciais.
-
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. Você pode otimizar o uso do hardware posteriormente.
-
Em Implantação de instâncias, especifique os locais e o tipo da frota.
-
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 Servers.
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 Servers para hospedagem gerenciada. Analise também as cotas do Amazon GameLift Servers em locais por frota.
-
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.
-
-
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 Servers, consulte a referência da API para EC2InstanceType ( CreateFleet()).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++ 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).
-
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.
-
Crie uma configuração de Runtime para instruir o Amazon GameLift Servers 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.
-
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.exeou/local/game/MyGame/server.exe. -
Insira os Parâmetros de inicialização opcionais para passar ao executável do jogo. Exemplo: :
+sv_port 33435 +start_lobby. -
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 Servers 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.
-
-
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.
-
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.
-
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 Servers encerra uma ativação de sessão de jogo se ultrapassar esse valor.
-
-
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 (como0.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.
-
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.
-
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 Servers não encerrará as instâncias protegidas da frota se elas estiverem hospedando sessões de jogo ativas.
-
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.
-
-
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 Servers), 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.
-
Binário de servidor de jogos: para implantar uma atualização na compilação de servidores de jogos, é necessário criar uma nova 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 Servers inicia imediatamente o processo de ativação da frota, atribuindo um ID exclusivo e colocando a frota no 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 Serversimplanta 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 obter mais informações, consulte Escalar capacidade de hospedagem de jogos com o Amazon GameLift Servers.
-
- AWS CLI
-
Use o comando
create-fleetpara criar uma frota do tipo computacional EC2. O Amazon GameLift Servers cria o recurso de frota na padrão atual Região da AWS (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 Servers 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-2e 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 Servers 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-2e implanta instâncias na região de origem e em um localsa-east-1remoto. -
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 Servers 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. O Amazon GameLift Servers então inicia o processo de ativação da frota e configura os status de frota e de localização para Nova. 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:
-