Registro de uma instância externa para um cluster do Amazon ECS - Amazon Elastic Container Service

Registro de uma instância externa para um cluster do Amazon ECS

Cada instância externa registrada em um cluster do Amazon ECS deve ter o SSM Agent, o agente de contêiner do Amazon ECS e o Docker instalados. Para registrar a instância externa em um cluster do Amazon ECS, ela deve primeiro ser registrada como uma instância gerenciada do AWS Systems Manager. É possível criar o script de instalação com alguns cliques no console do Amazon ECS. O script de instalação inclui uma chave de ativação do Systems Manager e comandos para instalar cada um dos agentes necessários e o Docker. O script de instalação deve ser executado no servidor on-premises ou na VM para concluir as etapas de instalação e registro.

nota

Antes de registrar sua instância externa do Linux com o cluster, crie o arquivo /etc/ecs/ecs.config na instância externa e adicione todos os parâmetros de configuração do agente de contêiner desejados. Isso não pode ser feito depois do registro da instância externa em um cluster. Para ter mais informações, consulte Configuração do agente de contêiner do Amazon ECS.

AWS Management Console
  1. Abra o console em https://console.aws.amazon.com/ecs/v2.

  2. Na barra de navegação, selecione a Região a ser usada.

  3. No painel de navegação, escolha Clusters.

  4. Na página Clusters, escolha o cluster no qual a instância externa será registrada.

  5. Na página Cluster : name, escolha a guia Infrastructure (Infraestrutura).

  6. Na página Register external instances (Registrar instâncias externas), execute as etapas a seguir.

    1. Em Activation key duration (in days) (Duração da chave de ativação (em dias)), insira o número de dias durante os quais a chave de ativação permanece ativa. Depois da decorrência número de dias que você inseriu, a chave não funcionará mais ao ser registrada uma instância externa.

    2. Em Number of instances (Número de instâncias), insira o número de instâncias externas que você quer registrar no cluster com a chave de ativação.

    3. Em Instance role (Função da instância), escolha a função do IAM a ser associada às instâncias externas. Se uma função ainda não tiver sido criada, escolha Create new role (Criar nova função) para que o Amazon ECS crie uma função em seu nome. Para obter mais informações sobre quais permissões do IAM são necessárias para instâncias externas, consulte Perfil do IAM para o Amazon ECS Anywhere.

    4. Copie o comando de registro. Esse comando deve ser executado em cada instância externa que você quer registrar no cluster.

      Importante

      A parte bash do script deve ser executada como raiz. Se o comando não for executado como root, será retornado um erro.

    5. Escolha Fechar.

AWS CLI for Linux operating systems
  1. Crie um par de ativação do Systems Manager. Isso é usado para a ativação de instâncias gerenciadas do Systems Manager. A saída inclui um ActivationId e um ActivationCode. Eles serão usados em uma etapa posterior. Especifique a função do IAM do ECS Anywhere que você criou. Para ter mais informações, consulte Perfil do IAM para o Amazon ECS Anywhere.

    aws ssm create-activation --iam-role ecsAnywhereRole | tee ssm-activation.json
  2. No servidor on-premises ou na máquina virtual (VM), baixe o script de instalação.

    curl --proto "https" -o "/tmp/ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh"
  3. (Opcional) No servidor on-premises ou na máquina virtual (VM), use as etapas a seguir para verificar o script de instalação usando o arquivo de assinatura de script.

    1. Baixe e instale GnuPG. Para obter mais informações sobre a GNUpg, consulte o site da GnuPG. Para sistemas Linux, instale gpg usando o gerenciador de pacotes no seu tipo de Linux.

    2. Recuperar a chave pública PGP do Amazon ECS.

      gpg --keyserver hkp://keys.gnupg.net:80 --recv BCE9D9A42D51784F
    3. Baixe a assinatura do script de instalação. Ela consiste em uma assinatura PGP desvinculada ascii armazenada em um arquivo com a extensão .asc.

      curl --proto "https" -o "/tmp/ecs-anywhere-install.sh.asc" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh.asc"
    4. Verifique o arquivo de script de instalação usando a chave.

      gpg --verify /tmp/ecs-anywhere-install.sh.asc /tmp/ecs-anywhere-install.sh

      A saída esperada é mostrada a seguir.

      gpg: Signature made Tue 25 May 2021 07:16:29 PM UTC gpg: using RSA key 50DECCC4710E61AF gpg: Good signature from "Amazon ECS <ecs-security@amazon.com>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: F34C 3DDA E729 26B0 79BE AEC6 BCE9 D9A4 2D51 784F Subkey fingerprint: D64B B6F9 0CF3 77E9 B5FB 346F 50DE CCC4 710E 61AF
  4. No servidor on-premises ou na máquina virtual (VM), execute o script de instalação. Especifique o nome do cluster, a região e o ID de ativação do Systems Manager e o código de ativação a partir da primeira etapa.

    sudo bash /tmp/ecs-anywhere-install.sh \ --region $REGION \ --cluster $CLUSTER_NAME \ --activation-id $ACTIVATION_ID \ --activation-code $ACTIVATION_CODE

    Para um servidor on-premises ou máquina virtual (VM) que tenha o driver NVIDIA instalado para workloads de GPU, você deve adicionar o sinalizador --enable-gpu ao script de instalação. Quando esse sinalizador é especificado, o script de instalação verifica se o driver NVIDIA está sendo executado e, em seguida, adiciona as variáveis de configuração necessárias para executar suas tarefas do Amazon ECS. Para obter mais informações sobre como executar workloads de GPU e especificar requisitos de GPU em uma definição de tarefa, consulte Especificar GPUs em uma definição de tarefa do Amazon ECS.

    sudo bash /tmp/ecs-anywhere-install.sh \ --region $REGION \ --cluster $CLUSTER_NAME \ --activation-id $ACTIVATION_ID \ --activation-code $ACTIVATION_CODE \ --enable-gpu

Use as etapas a seguir para registrar uma instância externa existente em um cluster diferente.

Para registrar uma instância externa existente em um cluster diferente
  1. Interrompa o agente de contêiner do Amazon ECS.

    sudo systemctl stop ecs.service
  2. Edite o arquivo /etc/ecs/ecs.config e, na linha ECS_CLUSTER, verifique se o nome do cluster corresponde ao nome do cluster no qual a instância externa será registrada.

  3. Remova os dados do agente do Amazon ECS existente.

    sudo rm /var/lib/ecs/data/agent.db
  4. Inicie o agente de contêiner do Amazon ECS.

    sudo systemctl start ecs.service
AWS CLI for Windows operating systems
  1. Crie um par de ativação do Systems Manager. Isso é usado para a ativação de instâncias gerenciadas do Systems Manager. A saída inclui um ActivationId e um ActivationCode. Eles serão usados em uma etapa posterior. Especifique a função do IAM do ECS Anywhere que você criou. Para ter mais informações, consulte Perfil do IAM para o Amazon ECS Anywhere.

    aws ssm create-activation --iam-role ecsAnywhereRole | tee ssm-activation.json
  2. No servidor on-premises ou na máquina virtual (VM), baixe o script de instalação.

    Invoke-RestMethod -URI "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install.ps1" -OutFile “ecs-anywhere-install.ps1”
  3. (Opcional) O script do PowerShell é assinado pela Amazon e, portanto, o Windows executa automaticamente a validação do certificado no mesmo. Não há necessidade de realizar nenhuma validação manual.

    Para verificar manualmente o certificado, clique com o botão direito do mouse no arquivo, navegue até propriedades e use a guia Digital Signatures (Assinaturas digitais) para obter mais detalhes.

    Essa opção só está disponível quando o host tiver o certificado no armazenamento de certificados.

    Essa verificação deve retornar informações semelhante às seguintes:

    # Verification (PowerShell) Get-AuthenticodeSignature -FilePath .\ecs-anywhere-install.ps1 SignerCertificate Status Path ----------------- ------ ---- EXAMPLECERTIFICATE Valid ecs-anywhere-install.ps1 ... Subject : CN="Amazon Web Services, Inc.",... ----
  4. No servidor on-premises ou na máquina virtual (VM), execute o script de instalação. Especifique o nome do cluster, a região e o ID de ativação do Systems Manager e o código de ativação a partir da primeira etapa.

    .\ecs-anywhere-install.ps1 -Region $Region -Cluster $Cluster -ActivationID $ActivationID -ActivationCode $ActivationCode
  5. Verifique se o agente de contêiner do Amazon ECS está em execução.

    Get-Service AmazonECS Status Name DisplayName ------ ---- ----------- Running AmazonECS Amazon ECS

Use as etapas a seguir para registrar uma instância externa existente em um cluster diferente.

Para registrar uma instância externa existente em um cluster diferente
  1. Interrompa o agente de contêiner do Amazon ECS.

    Stop-Service AmazonECS
  2. Modifique o parâmetro ECS_CLUSTER para que o nome do cluster corresponda ao nome do cluster no qual a instância externa será registrada.

    [Environment]::SetEnvironmentVariable("ECS_CLUSTER", $ECSCluster, [System.EnvironmentVariableTarget]::Machine)
  3. Remova os dados do agente do Amazon ECS existente.

    Remove-Item -Recurse -Force $env:ProgramData\Amazon\ECS\data\*
  4. Inicie o agente de contêiner do Amazon ECS.

    Start-Service AmazonECS

A AWS CLI pode ser usada para criar uma ativação do Systems Manager antes da execução do script de instalação para a conclusão do processo de registro da instância externa.