Crie definições de grupos de contêineres para uma frota de GameLift contêineres da Amazon - Amazon GameLift

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á.

Crie definições de grupos de contêineres para uma frota de GameLift contêineres da Amazon

Esta documentação é para um recurso que está em versão prévia pública. Está sujeita a alteração.

Uma definição de grupo de contêineres descreve como implantar seus aplicativos de servidor de jogos em contêineres em uma frota de contêineres. É um plano que identifica o conjunto de contêineres a serem executados na frota e como operá-los. Ao criar uma frota de contêineres, você especifica as definições do grupo de contêineres a serem implantadas na frota. Para obter mais informações sobre grupos de contêineres, consultecomponentes da frota de contêineres.

Antes de começar

Complete as seguintes tarefas:

  • Crie uma arquitetura de contêiner para hospedar seus servidores de jogos. Consulte Projete uma frota de GameLift contêineres da Amazon.

  • Planeje as definições de contêineres a serem incluídas no grupo de contêineres. Se você estiver usando a AWS CLI, crie sua definição de contêiner em um arquivo JSON.

  • Envie as imagens finais do contêiner para um registro do Amazon Elastic Container Registry (Amazon ECR) no Região da AWS mesmo local em que você planeja criar o grupo de contêineres. A Amazon GameLift armazena um instantâneo de cada imagem no momento em que você cria a definição do grupo de contêineres e usa a cópia ao implantar em uma frota de contêineres. Consulte Prepare uma imagem de contêiner com seu software de servidor de jogos.

  • Verifique se seu AWS usuário tem permissões do IAM para acessar o repositório Amazon ECR. Consulte Gerenciar permissões de usuário para a Amazon GameLift. No mínimo, você precisa de permissões para as seguintes ações:

    • ecr:DescribeImages

    • ecr:BatchGetImage

    • ecr:GetDownloadUrlForLayer

Clonar uma definição de grupo de contêineres

Você pode usar o GameLift console da Amazon para clonar uma definição de grupo de contêineres existente.

Para clonar um grupo de contêineres
  1. No GameLift console da Amazon, vá para o painel de navegação esquerdo e escolha Grupos de contêineres.

  2. Na página de listagem de grupos de contêineres, selecione o grupo de contêineres existente que você deseja clonar. Depois de selecionar um grupo de contêineres, o botão Clonar fica ativo.

  3. Escolha Clonar. Essa ação abre o assistente de criação de grupos de contêineres com configurações pré-preenchidas.

  4. Insira um novo nome para o grupo de contêineres clonados. O grupo de contêineres na mesma região deve ter nomes exclusivos.

  5. Percorra o grupo de contêineres e as páginas de definição de contêineres, revise e crie o novo grupo de contêineres.

Criar uma definição de grupo de contêineres de réplica

Um grupo de contêineres de réplicas gerencia seu software de servidor de jogos. Um grupo de contêineres de réplica tem pelo menos um contêiner que executa o Amazon GameLift Agent e os processos do seu servidor de jogos. O grupo pode ter contêineres “auxiliares” adicionais para executar o software de suporte.

Este tópico descreve como criar uma definição de grupo de contêineres usando o GameLift console da Amazon ou as ferramentas de AWS CLI. Para obter informações mais detalhadas sobre como definir configurações de grupos de contêineres, consulte. Projete uma frota de GameLift contêineres da Amazon

Console

No GameLift console da Amazon, selecione Região da AWS onde você deseja criar o grupo de contêineres.

Abra a barra de navegação esquerda do console e escolha Grupos de contêineres. Na página Grupos de contêineres, escolha Criar grupo de contêineres.

Etapa 1: Defina os detalhes do grupo.
  1. Insira um nome de definição de grupo de contêineres. Esse nome deve ser exclusivo para a região Conta da AWS e. No console, as definições de grupo são listadas por nome, portanto, pode ser útil atribuir rótulos significativos.

  2. Selecione a estratégia de agendamento da réplica.

  3. Em Limite total de memória, insira a memória máxima disponível para o grupo de contêineres. Para obter ajuda no cálculo desse valor, consulteDefina limites de recursos.

  4. Em Limite total de CPU, insira a potência máxima de computação disponível para o grupo de contêineres. Para obter ajuda no cálculo desse valor, consulteDefina limites de recursos.

Etapa 2: adicionar definições de contêiner.

Defina o contêiner com seu aplicativo de servidor de jogos e o Amazon GameLift Agent. Este é o seu recipiente de réplica essencial.

  1. Forneça um nome de definição de contêiner. Cada contêiner definido para o grupo deve ter um valor de nome exclusivo.

  2. Identifique o URI da imagem do Amazon ECR da imagem do contêiner. Insira 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 + tag: [Conta da AWS].dkr.ecr.[Região da AWS].amazonaws.com/[repository ID]:[tag]

  3. Para o contêiner Essential, Sim é selecionado automaticamente para a primeira definição do contêiner. Se você adicionar outra definição de contêiner, poderá ativar ou desativar essa configuração para cada definição. Para obter mais detalhes, consulte Designe recipientes essenciais.

  4. Defina um ou mais intervalos de portas internas do contêiner. Esse contêiner hospeda seus servidores de jogos, então defina um intervalo com portas suficientes para que cada processo do servidor seja executado no grupo de contêineres. Para obter mais detalhes, consulte Configurar conexões de rede.

  5. As configurações opcionais Overrides e as variáveis Environment permitem que você especifique valores a serem passados para o contêiner na inicialização. Os valores definidos aqui substituem todas as configurações que já estão na imagem do contêiner.

  6. Defina limites de contêiner opcionais para gerenciar a alocação de recursos para esse contêiner. Para obter mais detalhes, consulte Defina limites de recursos.

  7. Defina recipientes adicionais não essenciais conforme necessário:

    • Forneça um nome de definição de contêiner e um URI de imagem ECR. Os contêineres não essenciais não devem executar o Amazon GameLift Agent.

    • Defina um intervalo de portas de contêiner interno somente se os contêineres tiverem processos que precisem de acesso à rede.

    • Opcionalmente, configure uma verificação de saúde para o contêiner. Quando um contêiner não essencial falha em uma verificação de integridade, ele solicita a reinicialização somente do contêiner com falha.

    • Opcionalmente, defina substituições, variáveis de ambiente e limites de alocação de recursos conforme necessário.

Etapa 3: configurar dependências.

Se você tiver mais de um contêiner na definição do grupo de contêineres, poderá definir dependências entre eles. Use dependências para configurar sequências de inicialização e desligamento com base na condição do contêiner. Para obter mais detalhes, consulte Definir dependências de contêineres.

  1. Identifique o nome do contêiner ao qual você deseja adicionar uma dependência. Esse contêiner não inicia até que a condição de dependência seja satisfeita.

  2. Identifique o nome e a condição do contêiner de dependência. Esse contêiner deve atender às condições antes que o contêiner dependente possa ser iniciado.

  3. Defina dependências adicionais conforme necessário. Você pode criar várias dependências para qualquer contêiner. Evite criar dependências circulares.

Etapa 4: revise e crie.
  1. Revise todas as configurações de definição do grupo de contêineres. Você não pode alterar a configuração de uma definição de grupo de contêineres após sua criação. Use Editar para fazer alterações em qualquer seção, incluindo cada uma das definições de contêiner para o grupo.

  2. Quando terminar de revisar, escolha 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. InicialmenteCOPYING, o status é: a Amazon GameLift começa a tirar fotos 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 paraREADY. Uma definição de grupo de contêineres deve estar em READY status 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 separado. JSON Você pode referenciar o arquivo no comando da CLI. Consulte Criar um JSON arquivo de definição de contêiner para obter exemplos de esquemas.

Criar uma definição de grupo de contêineres

Para criar uma nova definição de grupo de contêineres, use o create-container-group-definition comando CLI. Para obter mais informações sobre esse comando, consulte create-container-group-definitionna Referência de Comandos da AWS CLI.

exemplo : Grupo de contêineres de réplica

Este exemplo ilustra uma solicitação para a definição de um grupo de contêineres de réplica. A estrutura de comando para criar definições de réplicas e grupos de daemons é essencialmente idêntica. Detalhes específicos de cada tipo de grupo são descritos nas definições de contêineres individuais.

Este exemplo 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 \ --scheduling-strategy REPLICA \ --total-memory-limit 4096 \ --total-cpu-limit 1024 \ --container-definitions file://SimpleServer.json

Criar um JSON arquivo 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 JSON arquivo 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 uma definição de contêiner
  1. Crie e abra um novo .JSON arquivo. Por exemplo: .

    [~/work/glc]$ vim SimpleServer.json
  2. 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 ContainerDefinitionInputa Amazon GameLift API Reference.

  3. 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 réplica. O contêiner de réplica essencial inclui seu aplicativo de servidor de jogos, o Amazon GameLift 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": "SimpleServer", "ImageUri": "111122223333.dkr.ecr.us-east-1.amazonaws.com/gl-containers:complex-server", "Essential": true, "Cpu": 256, "MemoryLimits": { "HardLimit": 128 }, "PortConfiguration": { "ContainerPortRanges": [ { "FromPort": 2000, "Protocol": "TCP", "ToPort": 2100 } ] } } ]