Comunique-se com outros recursos AWS de suas frotas - Amazon GameLift

Comunique-se com outros recursos AWS de suas frotas

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

Alguns exemplos de cenários incluem:

  • Use um agente do Amazon CloudWatch para coletar métricas, logs e rastreamentos de frotas do EC2 gerenciadas e frotas do Anywhere.

  • Enviar dados de log da instância para 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 oferece suporte aos seguintes métodos para estabelecer acesso:

Acesse recursos AWS com um perfil do IAM

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:

Crie o perfil do IAM

Nesta etapa, você cria um perfil do IAM, com um conjunto de permissões para controlar o acesso aos seus recursos AWS e uma política de confiança que concede ao Amazon GameLift direitos de usar as 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. 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

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

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

Chame AWS Security Token Service (AWS STS) AssumeRole com a função do ARN.

Chame AWS Security Token Service (AWS STS) AssumeRole com a função do ARN.

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.

No código do servidor de jogos, que já deve estar integrado ao SDK 5.x do servidor Amazon GameLift, chame GetFleetRoleCredentials (C++) (C#) (Unreal) (Go) para recuperar um conjunto de credenciais temporárias. Quando as credenciais expirarem, você poderá atualizá-las com outra chamada para GetFleetRoleCredentials.

Para aplicativos 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 gera um perfil de credenciais para cada instância da frota. As credenciais estão disponíveis para uso por todos os aplicativos na instância. O Amazon GameLift 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 atendente do CloudWatch para coletar métricas para instâncias da frota do Amazon GameLift

Se você quiser usar um atendente do Amazon CloudWatch para coletar métricas, registros e rastreamentos de suas frotas do Amazon GameLift, 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 arquivo config.json do atendente do CloudWatch.

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

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

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

No código do aplicativo, antes de acessar um recurso AWS, o aplicativo deve chamar a operação da API AWS Security Token Service (AWS STS) AssumeRole e especificar o ARN da função. Essa operação retorna um conjunto de credenciais temporárias que autoriza o aplicação a acessar o recurso AWS. Para obter mais informações, consulte Usar credenciais temporárias com recursos da AWS no Guia do usuário do IAM.

Associe uma frota ao perfil do IAM

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. Quando você configura a nova frota, defina os seguintes parâmetros:

  • instanceroLearn – defina esse parâmetro como o ARN do perfil do IAM.

  • InstanceRoleCredentialsProvider – Para solicitar que o Amazon GameLift gere um arquivo de credenciais compartilhado para cada instância da frota, defina esse parâmetro como SHARED_CREDENTIAL_FILE.

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

Acesse os recursos AWS com o emparelhamento de VPC

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

O Amazon GameLift simplifica o processo de configuração de conexões de emparelhamento da VPC 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 Emparelhamento de VPC para o Amazon GameLift.