

# Registro de uma instância externa para um cluster do Amazon ECS
<a name="ecs-anywhere-registration"></a>

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 obter mais informações, consulte [Configuração do agente de contêiner do Amazon ECS](ecs-agent-config.md).

------
#### [ Console de gerenciamento da AWS ]

1. Abra o console em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

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

1. No painel de navegação, escolha **Clusters**.

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

1. Na página **Cluster : {{name}}**, escolha a guia **Infrastructure** (Infraestrutura).

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

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

   1. 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](iam-role-ecsanywhere.md).

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

   1. 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 obter mais informações, consulte [Perfil do IAM para o Amazon ECS Anywhere](iam-role-ecsanywhere.md).

   ```
   aws ssm create-activation --iam-role {{ecsAnywhereRole}} | tee ssm-activation.json
   ```

1. 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"
   ```

1. (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](https://www.gnupg.org). Para sistemas Linux, instale `gpg` usando o gerenciador de pacotes no seu tipo de Linux.

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

      ```
      gpg --keyserver hkp://keys.gnupg.net:80 --recv BCE9D9A42D51784F
      ```

   1. 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"
      ```

   1. 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
      ```

1. 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](ecs-gpu-specifying.md).

   ```
   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
   ```

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

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

   ```
   sudo rm /var/lib/ecs/data/agent.db
   ```

1. 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 obter mais informações, consulte [Perfil do IAM para o Amazon ECS Anywhere](iam-role-ecsanywhere.md).

   ```
   aws ssm create-activation --iam-role {{ecsAnywhereRole}} | tee ssm-activation.json
   ```

1. 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”
   ```

1. (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.",...
   
   ----
   ```

1. 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}}
   ```

1. 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
   ```

1. 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)
   ```

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

   ```
   Remove-Item -Recurse -Force $env:ProgramData\Amazon\ECS\data\*
   ```

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