

# Clusters do Amazon ECS para instâncias externas
<a name="ecs-anywhere"></a>

O Amazon ECS Anywhere fornece suporte para registrar uma *Instância externa*, como um servidor on-premises ou uma máquina virtual (VM), no cluster do Amazon ECS. As instâncias externas são otimizadas para executar aplicações que geram tráfego de saída ou dados de processo. Se sua aplicação exigir tráfego de entrada, a falta de suporte do Elastic Load Balancing torna a execução dessas workloads menos eficiente. O Amazon ECS adicionou um novo tipo de inicialização `EXTERNAL` que você pode usar para criar serviços ou executar tarefas nas instâncias externas.

## Sistemas operacionais e arquiteturas de sistema compatíveis
<a name="ecs-anywhere-supported-os"></a>

A seguir, apresentamos a lista de sistemas operacionais compatíveis. As arquiteturas de CPU `x86_64` e `ARM64` são compatíveis.
+ Amazon Linux 2023
+ Ubuntu 20, Ubuntu 22, Ubuntu 24
+ RHEL 9: é preciso garantir que o Docker esteja instalado antes da execução do [script de instalação do ECS Anywhere.](https://github.com/aws/amazon-ecs-agent/blob/master/scripts/ecs-anywhere-install.sh) Para obter mais informações, consulte [Install Docker Engine on RHEL](https://docs.docker.com/engine/install/rhel/) na documentação do Docker.

A partir de 7 de agosto de 2026, o Amazon ECS Anywhere não será mais compatível com os seguintes sistemas operacionais:
+ Amazon Linux 2
+ CentOS Stream 9
+ RHEL 7, RHEL 8
+ Fedora 32, Fedora 33, Fedora 40
+ openSUSE Tumbleweed
+ Ubuntu 18
+ Debian 9, Debian 10, Debian 11, Debian 12
+ SUSE Enterprise Server 15
+ Windows Server 2.022, Windows Server 2.019, Windows Server 2.016, Windows Server 20H2

## Considerações
<a name="ecs-anywhere-considerations"></a>

Antes de começar a usar instâncias externas, esteja ciente das seguintes considerações.
+ É possível registrar uma instância externa em um cluster de cada vez. Para obter instruções sobre como registrar uma instância externa em um cluster diferente, consulte [Cancelamento do registro de uma instância externa do Amazon ECS](ecs-anywhere-deregistration.md).
+ As instâncias externas exigem uma função do IAM que permita que elas se comuniquem com APIs da AWS. Para obter mais informações, consulte [Perfil do IAM para o Amazon ECS Anywhere](iam-role-ecsanywhere.md).
+ As instâncias externas não devem ter uma cadeia de credenciais de instânciaa pré-configurada definida localmente, pois isso interferirá com o script de registro.
+ Para enviar logs de contêiner para o CloudWatch Logs, crie e especifique uma função do IAM de execução de tarefa na definição de tarefa. 
+ Quando uma instância externa é registrada em um cluster, o atributo `ecs.capability.external` é associado à instância. Esse atributo identifica a instância como uma instância externa. É possível adicionar atributos personalizados às instâncias externas para usar como uma restrição de posicionamento de tarefas. Para obter mais informações, consulte [Atributos personalizados](task-placement-constraints.md#ecs-custom-attributes).
+ É possível adicionar etiquetas de recurso à instância externa. Para obter mais informações, consulte [Adicionar tags a instâncias de contêiner externas para o Amazon ECS](instance-details-tags-external.md).
+ Há suporte para o ECS Exec em instâncias externas. Para obter mais informações, consulte [Monitoramento de contêineres do Amazon ECS com o ECS Exec](ecs-exec.md).
+ Veja a seguir considerações adicionais que são específicas para as redes com instâncias externas. Para obter mais informações, consulte [Redes](#ecs-anywhere-networking).
  + O balanceamento de carga do serviço não é compatível.
  + A descoberta de serviço não é compatível.
  + Tarefas executadas em instâncias externas devem usar os modos de rede `bridge`, `host` ou `none`. O modo de rede `awsvpc` não é compatível.
  + Há domínios de serviço do Amazon ECS em cada região da AWS. Esses domínios de serviço devem ter permissão para enviar tráfego para as instâncias externas.
  + O SSM Agent instalado na instância externa mantém as credenciais do IAM que são alternadas a cada 30 minutos com o uso de uma impressão digital de hardware. Se a instância externa perder conexão com a AWS, o SSM Agent atualiza automaticamente as credenciais após a conexão ser restabelecida. Para obter mais informações, consulte [Validar servidores on-premises e máquinas virtuais usando uma impressão digital de hardware](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-technical-details.html#fingerprint-validation) no *Guia do usuário do AWS Systems Manager*.
  + Você pode executar tarefas do Linux em instâncias externas em uma configuração somente IPv6, desde que as instâncias estejam em sub-redes somente IPv6. Para obter mais informações, consulte [Usar uma VPC no modo somente IPv6](task-networking.md#networking-ipv6-only).
+ A API `UpdateContainerAgent` não é compatível. Para obter instruções sobre como atualizar o SSM Agent ou o agente do Amazon ECS nas instâncias externas, consulte [Atualização do agente do AWS Systems Manager e o agente de contêiner do Amazon ECS em uma instância externa](ecs-anywhere-updates.md).
+ Provedores de capacidade do Amazon ECS não são compatíveis. Para criar um serviço ou executar uma tarefa autônoma nas instâncias externas, use o tipo de inicialização `EXTERNAL`.
+ SELinux não é compatível.
+ Usar volumes do Amazon EFS ou especificar um `EFSVolumeConfiguration` não é compatível.
+ A integração com o App Mesh não é compatível.
+ Se você usar o console para criar uma definição de tarefa de instância externa, deverá criar a definição da tarefa com o editor JSON do console.
+ Ao usar uma AMI não otimizada para o Amazon ECS, execute os comandos a seguir na instância de contêiner externa para configurar regras para usar perfis do IAM em tarefas. Para obter mais informações, consulte [Configuração adicional para instância externa](task-iam-roles.md#enable_task_iam_roles).

  ```
  $ sysctl -w net.ipv4.conf.all.route_localnet=1
  $ iptables -t nat -A PREROUTING -p tcp -d 169.254.170.2 --dport 80 -j DNAT --to-destination 127.0.0.1:51679
  $ iptables -t nat -A OUTPUT -d 169.254.170.2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 51679
  ```

### Redes
<a name="ecs-anywhere-networking"></a>

As instâncias externas do Amazon ECS são otimizadas para executar aplicações que geram tráfego de saída ou dados de processo. Se sua aplicação exigir tráfego de entrada, como um serviço da Web, a falta de suporte do Elastic Load Balancing torna a execução dessas workloads menos eficiente porque não há suporte para colocar essas workloads atrás de um balanceador de carga.

Veja a seguir considerações adicionais que são específicas para as redes com instâncias externas. 
+ O balanceamento de carga do serviço não é compatível.
+ A descoberta de serviço não é compatível.
+ Tarefas do Linux executadas em instâncias externas devem usar os modos de rede `bridge`, `host` ou `none`. O modo de rede `awsvpc` não é compatível. 

  Para obter mais informações sobre cada modo de rede, consulte [Opções de rede de tarefas do Amazon ECS para o EC2](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html).
+ Você pode executar tarefas do Linux em instâncias externas em uma configuração somente IPv6, desde que as instâncias estejam em sub-redes somente IPv6. Para obter mais informações, consulte [Usar uma VPC no modo somente IPv6](task-networking.md#networking-ipv6-only).
+ Há domínios de serviço do Amazon ECS em cada região e você deve ter permissão para enviar tráfego para as instâncias externas.
+ O SSM Agent instalado na instância externa mantém as credenciais do IAM que são alternadas a cada 30 minutos com o uso de uma impressão digital de hardware. Se a instância externa perder conexão com a AWS, o SSM Agent atualiza automaticamente as credenciais após a conexão ser restabelecida. Para obter mais informações, consulte [Validar servidores on-premises e máquinas virtuais usando uma impressão digital de hardware](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-technical-details.html#fingerprint-validation) no *Guia do usuário do AWS Systems Manager*.

Os domínios a seguir são usados para comunicação entre o serviço do Amazon ECS e o agente do Amazon ECS instalado na instância externa. Certifique-se de que o tráfego seja permitido e que a resolução DNS funcione. Para cada endpoint, *região* representa o identificador da região da AWS com suporte do Amazon ECS, como `us-east-2`, para a região Leste dos EUA (Ohio). Os endpoints de todas as regiões que você usa devem ser permitidos. Para os endpoints `ecs-a` e `ecs-t`, você deve incluir um asterisco (por exemplo, `ecs-a-*`).
+ `ecs-a-*.region.amazonaws.com`: este endpoint é usado quando são gerenciadas tarefas.
+ `ecs-t-*.region.amazonaws.com`: este endpoint é usado para gerenciar métricas de tarefas e contêineres.
+ `ecs.region.amazonaws.com`: este é um endpoint de serviço do Amazon ECS.
+ `ssm.region.amazonaws.com ` — este é um endpoint de serviço para o AWS Systems Manager.
+ `ec2messages.region.amazonaws.com`: este é o endpoint de serviço que o AWS Systems Manager usa para se comunicar entre o agente Systems Manager e o serviço Systems Manager na nuvem.
+ `ssmmessages.region.amazonaws.com`: este é o endpoint de serviço necessário para criar e excluir canais de sessão com o serviço Session Manager na nuvem.
+ Se as tarefas requerem comunicação com quaisquer outros serviços da AWS, certifique-se de que esses endpoints sejam permitidos. Exemplos da aplicações incluem o uso do Amazon ECR para extrair imagens de contêiner ou o uso do CloudWatch para CloudWatch Logs. Para obter mais informações, consulte [Endpoints de serviço](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) na *Referência geral da AWS*.

### Amazon FSx for Windows File Server com ECS Anywhere
<a name="ecs-anywhere-fsx"></a>

**Importante**  
O suporte do Windows para o Amazon ECS Anywhere foi descontinuado. Esta seção não é mais aplicável.

Para usar o Amazon FSx for Windows File Server com instâncias externas do Amazon ECS, você deve estabelecer uma conexão do entre seu data center on-premises e o Nuvem AWS. Para obter mais informações sobre as opções para conexão de sua rede a sua VPC, consulte [Opções de conectividade do Amazon Virtual Private Cloud](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/introduction.html).

### gMSA com ECS Anywhere
<a name="ecs-anywhere-gmsa"></a>

**Importante**  
O suporte do Windows para o Amazon ECS Anywhere foi descontinuado. Esta seção não é mais aplicável.

Os seguintes casos de uso eram compatíveis com o ECS Anywhere quando o Windows era um sistema operacional compatível.
+ O Active Directory está na Nuvem AWS: para essa configuração, você cria uma conexão da entre sua rede on-premises e a Nuvem AWS usando uma conexão AWS Direct Connect. Para obter informações sobre como criar a conexão, consulte [Opções de conectividade da Amazon Virtual Private Cloud](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/introduction.html). Você cria um Active Directory na Nuvem AWS. Para obter informações sobre como começar a usar o AWS Directory Service, consulte [Configuração do AWS Directory Service](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/setting_up.html) no *Guia de administração do AWS Directory Service*. Em seguida, você pode associar suas instâncias externas ao domínio usando a conexão AWS Direct Connect. Para obter informações sobre como trabalhar com o gMSA com o Amazon ECS, consulte [Saiba como usar gMSAs para contêineres do Windows do Amazon EC2 para o Amazon ECS](windows-gmsa.md).
+ O Active Directory está no data center on-premises. - Para essa configuração, você une suas instâncias externas ao Active Directory on-premises. Em seguida, você usa as credenciais disponíveis localmente ao executar as tarefas do Amazon ECS.

# Criar um cluster do Amazon ECS para workloads de instâncias externas
<a name="create-cluster-console-v2-ecs-anywhere"></a>

Crie um cluster para definir a infraestrutura na qual suas tarefas e serviços são executados.

Antes de começar, é necessário concluir as etapas em [Configuração para usar o Amazon ECS](get-set-up-for-amazon-ecs.md) e atribuir a permissão adequada do IAM. Para obter mais informações, consulte [Exemplos de clusters do Amazon ECS](security_iam_id-based-policy-examples.md#IAM_cluster_policies). O console do Amazon ECS fornece uma maneira simples de criar os recursos necessários para um cluster do Amazon ECS criando uma pilha do CloudFormation. 

Para tornar o processo de criação do cluster o mais fácil possível, o console tem seleções padrão para muitas opções, que descrevemos abaixo. Também há painéis de ajuda disponíveis para a maioria das seções do console, que fornecem mais contexto. 

É possível modificar as opções a seguir:
+ Adicione um namespace ao cluster.

  Um namespace permite que os serviços que você cria no cluster possam se conectar a outros serviços no namespace sem configuração adicional. Para obter mais informações, consulte [Interconexão de serviços do Amazon ECS](interconnecting-services.md).
+ Configurar o cluster para instâncias externas
+ Atribua uma chave do AWS KMS ao seu armazenamento gerenciado. Para obter informações sobre como criar uma chave, consulte [Criar uma chave do KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) no *Guia do usuário do AWS Key Management Service*.
+ Adicione tags para ajudar a identificar seu cluster.

**Para criar um novo cluster (console do Amazon ECS)**

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 **Create Cluster** (Criar cluster).

1. Em **Configuração de cluster**, configure o seguinte:
   + Em **Nome do cluster**, insira um nome exclusivo.

     O nome pode conter até 255 letras (minúsculas e maiúsculas), números e hifens.
   + (Opcional) Para que o namespace usado para o Service Connect seja diferente do nome do cluster, em **Namespace**, insira um nome exclusivo.

1. (Opcional) Utilize o Container Insights, expanda **Monitoramento** e escolha uma destas opções:
   + Para usar o Container Insights com observabilidade aprimorada (recomendado), escolha **Container Insights com observabilidade aprimorada**.
   + Para usar o Container Insights, escolha **Container Insights**.

1. (Opcional) Para usar o ECS Exec para depurar tarefas no cluster, expanda **Configuração de solução de problemas** e, em seguida, configure o seguinte:
   + Selecione **Ativar o ECS Exec**.
   + (Opcional) Em **Chave do AWS KMS para ECS Exec**, insira o ARN da chave do AWS KMS que você deseja usar para criptografar os dados da sessão do ECS Exec.
   + (Opcional) Para **Registro em log do ECS Exec**, escolha o destino do log:
     + Para enviar logs para o CloudWatch Logs, escolha **Amazon CloudWatch**.
     + Para enviar logs para o Amazon S3, escolha **Amazon S3**.
     + Para desativar o registro em log, escolha **Nenhum**.

1. (Opcional) Criptografe os dados no armazenamento gerenciado. Em **Criptografia**, em **Armazenamento gerenciado**, insira o ARN da chave do AWS KMS que você deseja usar para criptografar os dados do armazenamento gerenciado.

1. (Opcional) Para ajudar a identificar seu cluster, expanda **Tags** (Etiquetas) e configure suas etiquetas.

   [Adicionar uma tag] Selecione **Add tag** (Adicionar tag) e faça o seguinte:
   + Em **Key (Chave)**, insira o nome da chave.
   + Em **Valor** insira o valor da chave.

1. Selecione **Create** (Criar).

## Próximas etapas
<a name="cluster-next-steps-ecs-anywhere"></a>

Você deve registrar as instâncias no cluster. Para obter mais informações, consulte [Registro de uma instância externa para um cluster do Amazon ECS](ecs-anywhere-registration.md).

Crie uma definição de tarefa para o tipo de execução externa. Para obter mais informações, consulte . [Criar uma definição de tarefa do Amazon ECS usando o console](create-task-definition.md)

Execute suas aplicações como tarefas autônomas ou como parte de um serviço. Para saber mais, consulte:
+ [Execução de uma aplicação como uma tarefa do Amazon ECS](standalone-task-create.md)
+ [Criação de uma implantação de atualização contínua do Amazon ECS](create-service-console-v2.md)

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

# Cancelamento do registro de uma instância externa do Amazon ECS
<a name="ecs-anywhere-deregistration"></a>

Recomendamos que você cancele o registro da instância no Amazon ECS e no AWS Systems Manager quando concluir o uso de uma instância externa. Depois do cancelamento do registro, a instância externa não poderá mais aceitar novas tarefas.

Se você tiver tarefas em execução na instância de contêiner quando cancelar o registro, estas tarefas permanecerão em execução até serem interrompidas por outros meios. Contudo, essas tarefas não serão mais monitoradas ou gerenciadas pelo Amazon ECS. Se essas tarefas da instância externa fizerem parte de um serviço do Amazon ECS, o programador de serviços iniciará uma nova cópia das tarefas em uma instância diferente, se possível.

Após cancelar o registro da instância, limpe os recursos da AWS restantes na instância. Depois, você pode registrá-la em um novo cluster.

## Procedimento
<a name="ecs-anywhere-deregistration-procedure"></a>

------
#### [ 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, escolha a região em que sua instância externa está registrada.

1. No painel de navegação, escolha **Clusters** e selecione o cluster que hospeda a instância externa.

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

1. Em **Container instances** (Instâncias de contêiner), selecione o ID da instância externa para cancelar o registro. Você será redirecionado para a página de detalhes da instância do contêiner.

1. Na página **Container Instance : *id***, escolha **Deregister**.

1. Revise a mensagem de cancelamento do registro. Selecione **Cancelar o registro no AWS Systems Manager** para também cancelar o registro da instância externa como uma instância gerenciada no Systems Manager. Escolha **Cancelar registro**.
**nota**  
É possível cancelar o registro da instância externa como uma instância gerenciada do Systems Manager no console do Systems Manager. Para obter instruções, consulte [Cancelar o registro de nós gerenciados em um ambiente híbrido e multinuvem](https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-manager-deregister-hybrid-nodes.html) no *Guia do usuário do AWS Systems Manager*.

1. Após cancelar o registro da instância, limpe os recursos da AWS no servidor on-premises ou na VM.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/ecs-anywhere-deregistration.html)

------
#### [ AWS CLI ]

1. Você precisa do ID da instância e do ARN da instância de contêiner para cancelar o registro da instância de contêiner. Se você não tiver esses valores, execute os comandos a seguir

   Execute o comando a seguir para obter o ID da instância.

   Você usa o ID da instância (`instanceID`) para obter o ARN (`containerInstanceARN`) da instância de contêiner.

   ```
   instanceId=$(aws ssm describe-instance-information --region "{{ region }}" | jq ".InstanceInformationList[] |select(.IPAddress==\"{{ IPv4 Address }}\") | .InstanceId" | tr -d'"'
   ```

   Execute os seguintes comandos.

   Você usa o `containerInstanceArn` como parâmetro no comando para cancelar o registro da instância (`deregister-container-instance`).

   ```
   instances=$(aws ecs list-container-instances --cluster "{{ cluster }}" --region "{{ region }}" | jq -c '.containerInstanceArns')
   containerInstanceArn=$(aws ecs describe-container-instances --cluster "{{ cluster }}" --region "{{ region }}" --container-instances $instances | jq ".containerInstances[] | select(.ec2InstanceId==\"{{ instanceId }}\") | .containerInstanceArn" | tr -d '"')
   ```

1.  Execute o comando a seguir para drenar a instância.

   ```
   aws ecs update-container-instances-state --cluster "{{ cluster }}" --region "{{ region }}" --container-instances "{{ containerInstanceArn }}" --status DRAINING
   ```

1. Depois que a instância de contêiner terminar de ser drenada, execute o comando a seguir para cancelar o registro da instância.

   ```
   aws ecs deregister-container-instance --cluster "{{ cluster }}" --region "{{ region }}" --container-instance "{{ containerInstanceArn }}"
   ```

1. Execute o comando a seguir para remover instâncias de contêiner do SSM.

   ```
   aws ssm deregister-managed-instance --region "{{ region }}" --instance-id "{{ instanceId }}"
   ```

1. Após cancelar o registro da instância, limpe os recursos da AWS no servidor on-premises ou na VM.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/ecs-anywhere-deregistration.html)

------

# Atualização do agente do AWS Systems Manager e o agente de contêiner do Amazon ECS em uma instância externa
<a name="ecs-anywhere-updates"></a>

O servidor on-premises ou a VM deve executar o agente do AWS Systems Manager (SSM Agent) e o agente de contêiner do Amazon ECS ao executar workloads do Amazon ECS. A AWS lança novas versões desses agentes quando qualquer recurso é adicionado ou atualizado. Se as instâncias externas estiverem usando uma versão anterior de qualquer agente, será possível atualizá-las usando os procedimentos a seguir.

## Atualizar o SSM Agent em uma instância externa
<a name="ecs-anywhere-updates-ssmagent"></a>

O AWS Systems Manager recomenda que você automatize o processo de atualização do SSM Agent nas instâncias. São fornecidos vários métodos para automatizar as atualizações. Para obter mais informações, consulte [Automatizar atualizações no SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-automatic-updates.html) no *Guia do usuário do AWS Systems Manager*.

## Atualizar o agente do Amazon ECS em uma instância externa
<a name="ecs-anywhere-updates-ecsagent"></a>

Nas instâncias externas, o agente de contêiner do Amazon ECS é atualizado por meio do upgrade do pacote `ecs-init`. A atualização do agente de contêiner do Amazon ECS não interrompe a execução de tarefas ou serviços. O Amazon ECS fornece o pacote `ecs-init` e o arquivo de assinatura em um bucket do Amazon S3 em cada região. Começando com a versão `1.52.1-1` do código `ecs-init`, o Amazon ECS fornece pacotes `ecs-init` separados que dependem do sistema operacional e da arquitetura de sistema que a instância externa usa. 

Use a tabela a seguir para determinar o pacote `ecs-init` que você deve baixar com base no sistema operacional e na arquitetura de sistema que a instância externa usa.

**nota**  
É possível determinar o sistema operacional e a arquitetura de sistema que a instância externa usa por meio dos comandos a seguir.  

```
cat /etc/os-release
uname -m
```


| Sistemas operacionais (arquitetura) | Pacote ecs-init | 
| --- | --- | 
|  CentOS 7 (x86\$164) CentOS 8 (x86\$164) CentOS Stream 9 (x86\$164) SUSE Enterprise Server 15 (x86\$164) RHEL 7 (x86\$164) RHEL 8 (x86\$164)  |  `amazon-ecs-init-latest.x86_64.rpm`  | 
|  CentOS 7 (aarch64) CentOS 8 (aarch64) CentOS Stream 9 (aarch64) RHEL 7 (aarch64)  |  `amazon-ecs-init-latest.aarch64.rpm`  | 
|  Debian 9 (x86\$164) Debian 10 (x86\$164) Debian 11 (x86\$164) Debian 12 (x86\$164) Ubuntu 18 (x86\$164) Ubuntu 20 (x86\$164) Ubuntu 22 (x86\$164) Ubuntu 24 (x86\$164)  |  `amazon-ecs-init-latest.amd64.deb`  | 
|  Debian 9 (aarch64) Debian 10 (aarch64) Debian 11 (aarch64) Debian 12 (aarch64) Ubuntu 18 (aarch64) Ubuntu 20 (aarch64) Ubuntu 22 (aarch64) Ubuntu 24 (aarch64)  |  `amazon-ecs-init-latest.arm64.deb`  | 

Siga estas etapas para atualizar o agente do Amazon ECS. 

**Para atualizar o agente do Amazon ECS**

1. Confirme a versão do agente do Amazon ECS que você está executando.

   ```
   curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool
   ```

1. Baixe o pacote `ecs-init` para seu sistema operacional e arquitetura de sistema. O Amazon ECS fornece o arquivo de pacote `ecs-init` em um bucket do Amazon S3 em cada região. Substitua o identificador *<region>* no comando pelo nome da região (por exemplo, `us-west-2`) mais próxima de você geograficamente.

   **amazon-ecs-init-latest.x86\$164.rpm**

   ```
   curl -o amazon-ecs-init.rpm https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.x86_64.rpm
   ```

   **amazon-ecs-init-latest.aarch64.rpm**

   ```
   curl -o amazon-ecs-init.rpm https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.aarch64.rpm
   ```

   **amazon-ecs-init-latest.amd64.deb**

   ```
   curl -o amazon-ecs-init.deb https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.amd64.deb
   ```

   **amazon-ecs-init-latest.arm64.deb**

   ```
   curl -o amazon-ecs-init.deb https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.arm64.deb
   ```

1. (Opcional) Verifique a validade do arquivo de pacote `ecs-init` usando a assinatura PGP.

   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 pacote `ecs-init`. Ela consiste em uma assinatura PGP desvinculada ASCII armazenada em um arquivo com a extensão `.asc`. O Amazon ECS fornece o arquivo de assinatura em um bucket do Amazon S3 em cada região. Substitua o identificador *<region>* no comando pelo nome da região (por exemplo, `us-west-2`) mais próxima de você geograficamente.

      **amazon-ecs-init-latest.x86\$164.rpm**

      ```
      curl -o amazon-ecs-init.rpm.asc https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.x86_64.rpm.asc
      ```

      **amazon-ecs-init-latest.aarch64.rpm**

      ```
      curl -o amazon-ecs-init.rpm.asc https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.aarch64.rpm.asc
      ```

      **amazon-ecs-init-latest.amd64.deb**

      ```
      curl -o amazon-ecs-init.deb.asc https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.amd64.deb.asc
      ```

      **amazon-ecs-init-latest.arm64.deb**

      ```
      curl -o amazon-ecs-init.deb.asc https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.arm64.deb.asc
      ```

   1. Verifique o arquivo de pacote `ecs-init` usando a chave.

      **Para os pacotes `rpm`**

      ```
      gpg --verify amazon-ecs-init.rpm.asc ./amazon-ecs-init.rpm
      ```

      **Para os pacotes `deb`**

      ```
      gpg --verify amazon-ecs-init.deb.asc ./amazon-ecs-init.deb
      ```

      A saída esperada é mostrada a seguir.

      ```
      gpg: Signature made Fri 14 May 2021 09:31:36 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. Instale o pacote `ecs-init`.

   **Para o pacote `rpm` no CentOS 7, CentOS 8 e RHEL 7**

   ```
   sudo yum install -y ./amazon-ecs-init.rpm
   ```

   **Para o pacote `rpm` no SUSE Enterprise Server 15**

   ```
   sudo zypper install -y --allow-unsigned-rpm ./amazon-ecs-init.rpm
   ```

   **Para o pacotes `deb`**

   ```
   sudo dpkg -i ./amazon-ecs-init.deb
   ```

1. Reinicie o serviço `ecs`.

   ```
   sudo systemctl restart ecs
   ```

1. Verifique se a versão do agente do Amazon ECS foi atualizada.

   ```
   curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool
   ```