Crie uma definição de grupo de contêineres para uma frota de contêineres do Amazon GameLift Servers
Uma definição de grupo de contêineres descreve como implantar as aplicações de servidor de jogos em contêineres em uma frota de contêineres. É um plano que informa ao Amazon GameLift Servers sobre quais imagens de contêiner devem ser implantadas na frota e como executá-las. Ao criar uma frota de contêineres, você especifica as definições de grupo de contêineres devem ser implantadas na frota. Para obter mais informações sobre grupos de contêineres, consulte Componentes da frota de contêineres.
Antes de começar
Dicas sobre o que fazer antes de começar a criar uma definição de grupo de contêineres:
-
Finalize suas imagens do contêiner e as envie para um repositório do Amazon Elastic Container Registry (Amazon ECR) no mesmo Região da AWS em que planeja criar o grupo de contêineres. O Amazon GameLift Serverscaptura um instantâneo de cada imagem no momento em que você cria a definição do grupo de contêineres e usa o instantâneo ao implantar em uma frota de contêineres. Consulte Criar uma imagem de contêiner para o Amazon GameLift Servers.
-
Crie suas definições de contêiner como arquivos JSON. Uma definição de grupo de contêineres pode conter uma ou mais definições do contêiner. Você pode usar os arquivos JSON se criar uma definição de grupo de contêineres usando o AWS CLIFor Amazon GameLift Servers.
-
Verifique se seu usuário do AWS tem permissões do IAM para acessar o repositório do Amazon ECR. Consulte Exemplos de permissão do IAM para o Amazon GameLift Servers.
Selecione uma definição de grupo de contêineres do servidor de jogos.
Um grupo de contêineres de servidores de jogos executa seu software de servidor de jogos. Um grupo de contêineres de servidores de jogos tem um contêiner de servidor de jogos, que executa o executável do servidor de jogos. Ele também pode ter um ou mais contêineres de suporte para executar software adicional para dar suporte ao seu servidor de jogos. (Às vezes, esses são chamados de contêineres “auxiliares”.)
Este tópico descreve como criar uma definição simples de grupo de contêineres de servidores de jogos usando o console Amazon GameLift Servers ou as ferramentas da AWS CLI. Para obter informações mais detalhadas sobre recursos opcionais, consulte Personalizar uma frota de contêineres do Amazon GameLift Servers.
Você pode alterar a maioria das definições de grupos de contêineres e definições de contêineres depois de criá-las. Se você fizer alterações na definição de um contêiner, o Amazon GameLift Servers captura um novo instantâneo das imagens atualizadas do contêiner.
Para criar uma definição simples de grupo de contêineres do servidor de jogos:
As instruções a seguir descrevem como criar uma definição de grupo de contêineres com os parâmetros mínimos necessários e usando os valores padrão do Amazon GameLift Servers.
- Console
-
No console do Amazon GameLift Servers, selecione a Região da AWS onde você deseja criar o grupo de contêineres.
Abra a barra de navegação esquerda do console e escolha Contêineres gerenciados: Definições de grupos. Na página de definição de grupos de contêineres, escolha Criar definição de grupo.
Etapa 1: Definir detalhes da definição do grupo de contêineres
-
Insira um nome de definição de grupo de contêineres. O nome do alias deve ser exclusivo para a Conta da AWS e região.
-
Selecione o tipo de grupo de contêineres do servidor de jogos.
-
Para o Limite total de memória, insira o máximo de recursos de memória a serem disponibilizados para todos os contêineres no grupo de contêineres. Para obter ajuda no cálculo desse valor, consulte Definir limites de recursos.
-
Para o Limite total de vCPU, insira o máximo de poder de processamento a ser disponibilizado para todos os contêineres no grupo de contêineres. Para obter ajuda no cálculo desse valor, consulte Definir limites de recursos.
Etapa 2: Adicionar definições de contêiner
No mínimo, um grupo de contêineres de servidores de jogos tem um contêiner de servidor de jogos. No console, a primeira definição de contêiner que você cria é o contêiner do servidor de jogos. Esta etapa descreve como definir as configurações mínimas necessárias para uma definição de contêiner de servidor de jogos.
-
Insira um Nome de definição do contêiner. Cada contêiner definido para o grupo deve ter um valor de nome exclusivo.
-
Crie um link para uma imagem de contêiner com a versão do servidor de jogos. Insira o URI da imagem do Amazon ECR para uma imagem de contêiner em um repositório público ou privado. É possível usar qualquer um dos seguintes formatos:
Somente URI da imagem: [Conta da AWS].dkr.ecr.[Região da AWS].amazonaws.com/[repository
ID]
URI da imagem + resumo: [Conta da AWS].dkr.ecr.[Região da AWS].amazonaws.com/[repository
ID]@[digest]
URI da imagem + marcação: [Conta da AWS].dkr.ecr.[Região da AWS].amazonaws.com/[repository
ID]:[tag]
-
Especifique a versão do SDK do servidor do Amazon GameLift Servers que a construção do servidor do jogo usa. Para uma frota de contêineres, esse valor deve ser 5.2.0 ou superior.
-
Em Intervalo de portas do contêiner interno, defina o protocolo e defina um intervalo de portas. O tamanho do intervalo deve ser maior que o número de processos simultâneos do servidor de jogos que serão executados nesse contêiner. Se o contêiner do servidor do jogo executar apenas um processo de servidor por contêiner, esse intervalo de portas precisará apenas de algumas portas. Consulte mais detalhes em Configurar conexões de rede.
-
Adicione mais contêineres conforme necessário para executar software de suporte adicional. Contêineres adicionais são automaticamente designados como contêineres de suporte. Um grupo de contêineres de servidores de jogos pode ter somente um contêiner de servidor de jogos e até oito contêineres de suporte. Forneça as seguintes configurações mínimas obrigatórias:
Etapa 3: Configurar dependências
-
Se sua definição de grupo de contêineres tiver mais de um contêiner, você poderá, opcionalmente, definir dependências entre os contêineres. Para obter mais informações, consulte Definir dependências de contêiner.
Etapa 3: revisar e criar
Revise todas as configurações de definição do seu grupo de contêineres. Use Editar para fazer alterações em qualquer seção, incluindo cada uma das suas definições de contêiner para o grupo.
-
Quando terminar de revisar, escolha Create (Criar).
Se sua solicitação for bem-sucedida, o console exibirá a página de detalhes do novo recurso de definição de grupo de contêineres. Inicialmente, o status é COPYING, pois o Amazon GameLift Servers começa a tirar instantâneos de todas as imagens de contêineres do grupo. Quando essa fase for concluída, o status da definição do grupo de contêineres será alterado para READY. Uma definição de grupo de contêineres deve estar no status READY antes que você possa criar uma frota de contêineres com ela.
- AWS CLI
-
Ao usar a AWS CLI para criar uma definição de grupo de contêineres, mantenha suas configurações de definição de contêiner em um arquivo de JSON separado. Você pode referenciar o arquivo no comando da CLI. Consulte Criar um arquivo JSON de definição de contêiner para obter exemplos de esquemas.
- Crie uma definição de grupo de contêineres
-
Para criar uma nova definição de grupo de contêineres, use o comando da create-container-group-definition CLI. Para obter mais informações sobre este comando, consulte create-container-signing-config na referência de comandos da AWS CLI.
Este exemplo ilustra uma solicitação para a definição de um grupo de contêineres de servidores de jogos. Ele pressupõe que você tenha criado um arquivo JSON com as definições de contêiner desse grupo.
aws gamelift create-container-group-definition \
--name MyAdventureGameContainerGroup \
--operating-system AMAZON_LINUX_2023 \
--container-group-type GAME_SERVER \
--total-memory-limit-mebibytes 4096 \
--total-vcpu-limit 1 \
--game-server-container-definition file://MyAdventureGameContainers.json
Criar um arquivo JSON de definição de contêiner
Ao criar uma definição de grupo de contêineres, você também define os contêineres para o grupo. Uma definição de contêiner especifica o repositório Amazon ECR onde a imagem do contêiner é armazenada e configurações opcionais para portas de rede, limites de uso de CPU e memória e outras configurações. Recomendamos criar um único arquivo JSON com as configurações de todos os contêineres em um grupo de contêineres. A manutenção de um arquivo é útil para armazenar, compartilhar e rastrear versões dessas configurações críticas. Se você usar a AWS CLI para criar suas definições de grupo de contêineres, poderá referenciar o arquivo no comando.
Para criar um arquivo de definição de contêiner
Crie e abra um novo arquivo .JSON. Por exemplo:
[~/work/glc]$ vim SimpleServer.json
Crie uma definição de contêiner separada para cada um dos contêineres do grupo. Copie o conteúdo de exemplo a seguir e modifique-o conforme necessário para seus contêineres. Para obter detalhes sobre a sintaxe de uma definição de contêiner, consulte ContainerDefinitionInput na Referência da API do Amazon GameLift Servers.
Salve o arquivo localmente para que você possa consultá-lo em um comando da AWS CLI.
Este exemplo descreve o contêiner essencial para seu grupo de contêineres de servidores de jogos. O contêiner de réplica essencial inclui seu aplicativo de servidor de jogos, o Amazon GameLift Servers Agent, e pode incluir outro software de suporte para sua hospedagem de jogos. A definição deve incluir um nome, URI de imagem e uma configuração de porta. Este exemplo também define alguns limites de recursos específicos do contêiner.
{
"ContainerName": "MyAdventureGameServer",
"ImageUri": "111122223333.dkr.ecr.us-east-1.amazonaws.com/gl-containers:myadventuregame-server",
"PortConfiguration": {
"ContainerPortRanges": [
{
"FromPort": 2000,
"Protocol": "TCP",
"ToPort": 2010
}
]
},
"ServerSdkVersion": "5.2.0"
}