

# Clústeres de Amazon ECS para instancias externas
<a name="ecs-anywhere"></a>

Amazon ECS Anywhere admite el registro de una *instancia externa*, por ejemplo, un servidor ubicado en las instalaciones o una máquina virtual (VM), en el clúster de Amazon ECS. Las instancias externas se han optimizado para que puedan ejecutar aplicaciones que generen tráfico o datos del proceso salientes. Si la aplicación requiere tráfico entrante, la falta de compatibilidad con Elastic Load Balancing hace que la ejecución de estas cargas de trabajo sea menos eficiente. Amazon ECS ha agregado un nuevo tipo de lanzamiento `EXTERNAL` que se puede utilizar para crear servicios o ejecutar tareas en las instancias externas.

## Sistemas operativos y arquitecturas de sistemas compatibles
<a name="ecs-anywhere-supported-os"></a>

La siguiente lista contiene los sistemas operativos compatibles: Se admiten las arquitecturas de CPU `x86_64` y `ARM64`.
+ Amazon Linux 2023
+ Ubuntu 20, Ubuntu 22, Ubuntu 24
+ RHEL 9: Debe asegurarse de que Docker esté instalado antes de ejecutar el [script de instalación ECS Anywhere](https://github.com/aws/amazon-ecs-agent/blob/master/scripts/ecs-anywhere-install.sh). Para obtener más información, consulte [Instalar motor de Docker en RHEL](https://docs.docker.com/engine/install/rhel/) en la documentación de Docker.

A partir del 7 de agosto de 2026, Amazon ECS Anywhere ya no admitirá los siguientes sistemas operativos:
+ 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 2022, Windows Server 2019, Windows Server 2016, Windows Server 20H2

## Consideraciones
<a name="ecs-anywhere-considerations"></a>

Antes de comenzar a utilizar instancias externas, tenga en cuenta lo siguiente.
+ Puede registrar una instancia externa en un clúster a la vez. Para obtener instrucciones sobre cómo registrar una instancia externa con un clúster diferente, consulte [Anulación del registro de una instancia externa de Amazon ECS](ecs-anywhere-deregistration.md).
+ Sus instancias externas requieren un rol de IAM que les permita comunicarse con las API de AWS. Para obtener más información, consulte [Rol de IAM de Amazon ECS Anywhere](iam-role-ecsanywhere.md).
+ Las instancias externas no deben tener una cadena de credenciales de instancia preconfigurada definida localmente, ya que interferiría con el script de registro.
+ Para enviar registros de contenedor a CloudWatch Logs, asegúrese de crear y especificar un rol de IAM de ejecución de tareas en la definición de tareas. 
+ Cuando una instancia externa se registra en un clúster, el atributo `ecs.capability.external` se asocia a la instancia. Este atributo identifica la instancia como una instancia externa. Puede agregar atributos personalizados a las instancias externas para utilizarlos como delimitación de ubicación de tareas. Para obtener más información, consulte [Custom attributes (Atributos personalizados)](task-placement-constraints.md#ecs-custom-attributes).
+ Puede agregar etiquetas de recursos a la instancia externa. Para obtener más información, consulte [Adición de etiquetas a instancias de contenedor externas de Amazon ECS](instance-details-tags-external.md).
+ ECS Exec se admite en instancias externas. Para obtener más información, consulte [Supervisión de los contenedores de Amazon ECS con ECS Exec](ecs-exec.md).
+ A continuación, se incluyen consideraciones adicionales específicas de las redes con las instancias externas. Para obtener más información, consulte [Red](#ecs-anywhere-networking).
  + No se admite el equilibrio de carga del servicio.
  + No se admite la detección de servicios.
  + Las tareas que se ejecutan en instancias externas deben utilizar los modos de red `bridge`, `host`, o `none`. No se admite el modo de red `awsvpc`.
  + Existen dominios de servicio de Amazon ECS en cada región de AWS. Se debe permitir que estos dominios de servicio envíen tráfico a las instancias externas.
  + El SSM Agent que se instaló en la instancia externa mantiene las credenciales de IAM que se rotan cada 30 minutos mediante una huella digital de hardware. Si la instancia externa pierde la conexión con AWS, SSM Agent actualiza automáticamente las credenciales después de que se restablece la conexión. Para obtener más información, consulte [Validación de servidores ubicados en las instalaciones y máquinas virtuales mediante una huella digital de hardware](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-technical-details.html#fingerprint-validation) en la *Guía del usuario de AWS Systems Manager*.
  + Puede poner en marcha tareas de Linux en instancias externas en una configuración de solo IPv6 siempre que las instancias estén en subredes de solo IPv6. Para obtener más información, consulte [Uso de VPC en modo de solo IPv6](task-networking.md#networking-ipv6-only).
+ No se admite la API `UpdateContainerAgent`. Para obtener instrucciones sobre cómo actualizar SSM Agent o el agente de Amazon ECS en las instancias externas, consulte [Actualización del agente de AWS Systems Manager y del agente de contenedor de Amazon ECS en una instancia externa](ecs-anywhere-updates.md).
+ No se admiten los proveedores de capacidad de Amazon ECS. Para crear un servicio o ejecutar una tarea independiente en las instancias externas, utilice el tipo de lanzamiento `EXTERNAL`.
+ No se admite SELinux.
+ No se admite la utilización de volúmenes de Amazon EFS ni la especificación de un `EFSVolumeConfiguration`.
+ No se admite la integración con App Mesh.
+ Si utiliza la consola para crear una definición de tareas de instancia externa, debe crear la definición de tareas con el editor JSON de la consola.
+ Cuando utilice una AMI no optimizada para Amazon ECS, ejecute los siguientes comandos en la instancia de contenedor externa para configurar reglas que utilicen los roles de IAM en las tareas. Para obtener más información, consulte [Configuración adicional de las instancias externas](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
  ```

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

Las instancias externas de Amazon ECS se han optimizado para que puedan ejecutar aplicaciones que generen tráfico o datos del proceso salientes. Si la aplicación requiere tráfico entrante, como un servicio web, la falta de compatibilidad con Elastic Load Balancing hace que la ejecución de estas cargas de trabajo sea menos eficiente porque no se admite la ubicación de estas cargas de trabajo detrás de un balanceador de carga.

A continuación, se incluyen consideraciones adicionales específicas de las redes con las instancias externas. 
+ No se admite el equilibrio de carga del servicio.
+ No se admite la detección de servicios.
+ Las tareas de Linux que se ejecutan en instancias externas deben utilizar los modos de red `bridge`, `host`, o `none`. No se admite el modo de red `awsvpc`. 

  Para obtener más información sobre cada modo de red, consulte [Opciones de red de tareas de Amazon ECS para instancias de EC2](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html).
+ Puede poner en marcha tareas de Linux en instancias externas en una configuración de solo IPv6 siempre que las instancias estén en subredes de solo IPv6. Para obtener más información, consulte [Uso de VPC en modo de solo IPv6](task-networking.md#networking-ipv6-only).
+ Existen dominios de servicio de Amazon ECS en cada región y se les debe permitir enviar tráfico a las instancias externas.
+ El SSM Agent que se instaló en la instancia externa mantiene las credenciales de IAM que se rotan cada 30 minutos mediante una huella digital de hardware. Si la instancia externa pierde la conexión con AWS, SSM Agent actualiza automáticamente las credenciales después de que se restablece la conexión. Para obtener más información, consulte [Validación de servidores ubicados en las instalaciones y máquinas virtuales mediante una huella digital de hardware](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-technical-details.html#fingerprint-validation) en la *Guía del usuario de AWS Systems Manager*.

Los siguientes dominios se utilizan para la comunicación entre el servicio de Amazon ECS y el agente de Amazon ECS instalado en la instancia externa. Asegúrese de que se permita el tráfico y de que la resolución DNS funcione. En cada punto de enlace, la *región* representa el identificador de región de una región de AWS compatible con Amazon ECS, como `us-east-2` para la región EE. UU. Este (Ohio). Deben permitirse los puntos de enlace de todas las regiones que utilice. Para los puntos de enlace `ecs-a` y `ecs-t`, debe incluir un asterisco (por ejemplo, `ecs-a-*`).
+ `ecs-a-*.region.amazonaws.com`: este punto de enlace se utiliza cuando se administran tareas.
+ `ecs-t-*.region.amazonaws.com`: este punto de enlace se utiliza para administrar las métricas de tareas y de contenedor.
+ `ecs.region.amazonaws.com`: es el punto de enlace de servicio para Amazon ECS.
+ `ssm.region.amazonaws.com ` — se trata del punto de conexión para AWS Systems Manager.
+ `ec2messages.region.amazonaws.com`: este es el punto de conexión AWS Systems Manager utiliza para comunicarse entre el agente de Systems Manager y el servicio de Systems Manager en la nube.
+ `ssmmessages.region.amazonaws.com`: este punto de conexión necesario para crear y eliminar los canales de sesión con el servicio Session Manager en la nube.
+ Si las tareas requieren comunicación con cualquier otro servicio de AWS, asegúrese de que esos puntos de enlace de servicio se permitan. Las aplicaciones de ejemplo incluyen la utilización de Amazon ECR para extraer imágenes de contenedor o de CloudWatch para CloudWatch Logs. Para obtener más información, consulte [Puntos de enlace de servicio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) en la *Referencia general de AWS*.

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

**importante**  
Windows ha dejado de ser compatible con Amazon ECS Anywhere. Esta sección ya no es aplicable.

Para utilizar Amazon FSx for Windows File Server con las instancias externas de Amazon ECS debe establecer una conexión entre el centro de datos en las instalaciones y la Nube de AWS. Para obtener más información acerca de las opciones para conectar su red a VPC, consulte [Opciones de conectividad de Amazon Virtual Private Cloud](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/introduction.html).

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

**importante**  
Windows ha dejado de ser compatible con Amazon ECS Anywhere. Esta sección ya no es aplicable.

Los siguientes casos de uso eran compatibles con ECS Anywhere cuando Windows era un sistema operativo compatible.
+ El Active Directory se encuentra en la Nube de AWS: para esta configuración, cree una conexión de entre la red en las instalaciones y la Nube de AWS mediante una conexión de AWS Direct Connect. Para obtener información acerca de cómo crear la conexión, consulte[Opciones de conectividad de Amazon Virtual Private Cloud](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/introduction.html). Cree un Active Directory en la Nube de AWS. Para obtener información acerca de cómo empezar a usar AWS Directory Service, consulte [Configuración de AWS Directory Service](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/setting_up.html) en la *Guía de administración de AWS Directory Service*. A continuación, puede unir las instancias externas al dominio mediante la conexión de AWS Direct Connect. Para obtener información acerca de cómo trabajar con gMSA con Amazon ECS, consulte [Obtenga información sobre cómo utilizar gMSA para contenedores de EC2 para Windows en Amazon ECS.](windows-gmsa.md).
+ El Active Directory se encuentra en el centro de datos en las instalaciones. - Para esta configuración, debe unir las instancias externas a Active Directory en las instalaciones. A continuación, se utilizan las credenciales disponibles localmente cuando ejecuta las tareas de Amazon ECS.

# Creación de un clúster de Amazon ECS para cargas de trabajo de instancias externas
<a name="create-cluster-console-v2-ecs-anywhere"></a>

Cree un clúster para definir la infraestructura en la que se ejecutan sus tareas y servicios.

Antes de comenzar, asegúrese de haber seguido los pasos que se detallan en [Configuración para utilizar Amazon ECS](get-set-up-for-amazon-ecs.md) y de asignar el permiso de IAM adecuado. Para obtener más información, consulte [Ejemplos de clústeres de Amazon ECS](security_iam_id-based-policy-examples.md#IAM_cluster_policies). La consola de Amazon ECS ofrece una forma sencilla de crear los recursos que necesita un clúster de Amazon ECS mediante la creación de una pila de CloudFormation. 

Para simplificar al máximo el proceso de creación del clúster, la consola cuenta con selecciones predeterminadas para muchas de las opciones que describimos a continuación. También hay paneles de ayuda disponibles para la mayoría de las secciones de la consola, que proporcionan más contexto. 

Puede modificar las siguientes opciones:
+ Agregue un espacio de nombres al clúster.

  Un espacio de nombres permite que los servicios que cree en el clúster puedan conectarse a los demás servicios del espacio de nombres sin configuración adicional. Para obtener más información, consulte [Interconexión de los servicios de Amazon ECS](interconnecting-services.md).
+ Configurar el clúster para instancias externas
+ Asigne una clave AWS KMS para el almacenamiento administrado. Para obtener información acerca de la creación de una clave, consulte [Creación de una clave KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) en la *Guía del usuario de AWS Key Management Service*.
+ Agregue etiquetas que le permitan identificar el clúster.

**Para crear un nuevo clúster (consola de Amazon ECS)**

1. Abra la consola en [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. En la barra de navegación, seleccione la región a utilizar.

1. En el panel de navegación, seleccione **Clusters (Clústeres)**.

1. En la página **Clusters** (Clústeres), elija **Create Cluster** (Crear clúster).

1. En **Configuraciones del clúster**, configure lo siguiente:
   + En **Nombre del clúster**, escriba un nombre único.

     El nombre puede contener hasta 255 letras (minúsculas y mayúsculas), números y guiones.
   + (Opcional) Para que el espacio de nombre utilizado en Service Connect sea diferente del nombre del clúster, en **Espacio de nombre**, escriba un nombre único.

1. (Opcional) Utilice Información de contenedores, amplíe **Supervisión** y, a continuación, seleccione una de las siguientes opciones:
   + Para usar Información de contenedores con observabilidad mejorada, como se recomienda, elija **Información de contenedores con observabilidad mejorada**.
   + Para usar Información de contenedores, seleccione **Información de contenedores**.

1. (Opcional) Para usar ECS Exec para depurar tareas en el clúster, amplíe la **configuración de solución de problemas** y, a continuación, configure lo siguiente:
   + Seleccione **Activar ECS Exec.**
   + (Opcional) En el caso de **la clave AWS KMS de ECS Exec**, introduzca el ARN de la clave AWS KMS que desee utilizar para cifrar los datos de la sesión de ECS Exec.
   + (Opcional) Para el **registro de ECS Exec**, elija el destino del registro:
     + Para enviar registros a CloudWatch Logs, elija **Amazon CloudWatch**.
     + Para enviar registros a Amazon S3, elija **Amazon S3**.
     + Para deshabilitar el registro, elija **Ninguno**.

1. (Opcional) Cifre los datos en el almacenamiento administrado. En **Cifrado**, para **Almacenamiento administrado**, introduzca el ARN de la clave AWS KMS que desea utilizar para cifrar los datos del almacenamiento administrado.

1. (Opcional) Para ayudar a identificar el clúster, expanda **Tags** (Etiquetas) y, a continuación, configure sus etiquetas.

   [Agregar una etiqueta] Elija **Agregar etiqueta** y haga lo siguiente:
   + En **Key (Clave)**, escriba el nombre de la clave.
   + En **Valor**, escriba el valor de la clave.

1. Seleccione **Crear**.

## Siguientes pasos
<a name="cluster-next-steps-ecs-anywhere"></a>

Debe registrar las instancias en el clúster. Para obtener más información, consulte [Registro de una instancia externa en un clúster de Amazon ECS](ecs-anywhere-registration.md).

Cree una definición de tarea para el tipo de lanzamiento externo. Para obtener más información, consulte [Creación de una definición de tareas de Amazon ECS mediante la consola](create-task-definition.md)

Ponga en marcha sus aplicaciones como tareas independientes o como parte de un servicio. Para obtener más información, consulte los siguientes temas:
+ [Ejecución de una aplicación como tarea de Amazon ECS](standalone-task-create.md)
+ [Creación de una implementación de actualización continua de Amazon ECS](create-service-console-v2.md)

# Registro de una instancia externa en un clúster de Amazon ECS
<a name="ecs-anywhere-registration"></a>

Para cada instancia externa que registre en un clúster de Amazon ECS, debe tener instalados SSM Agent, el agente contenedor de Amazon ECS y Docker. Para registrar la instancia externa en un clúster de Amazon ECS, primero debe registrarse como instancia administrada AWS Systems Manager. El script de instalación se puede crear con unos pocos clics desde la consola de Amazon ECS. El script de instalación incluye una clave de activación de Systems Manager y comandos para instalar cada uno de los agentes requeridos y Docker. El script de instalación se debe ejecutar en el servidor ubicado en las instalaciones o en la máquina virtual para completar los pasos de instalación y registro.

**nota**  
Antes de registrar la instancia externa Linux en el clúster, cree el archivo `/etc/ecs/ecs.config` en la instancia externa y agregue los parámetros de configuración del agente de contenedor que desee. No se puede hacer después de registrar la instancia externa en un clúster. Para obtener más información, consulte [Configuración del agente de contenedor de Amazon ECS](ecs-agent-config.md).

------
#### [ Consola de administración de AWS ]

1. Abra la consola en [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. En la barra de navegación, seleccione la región a utilizar.

1. En el panel de navegación, seleccione **Clusters (Clústeres)**.

1. En la página **Clusters** (Clústeres), elija el clúster en el que desea registrar la instancia externa.

1. En la página de **Cluster : *name*** (Clúster; nombre), elija la pestaña **Infrastructure** (Infraestructura).

1. En la página **Register external instances** (Registrar instancias externas), complete los pasos siguientes.

   1. En **Activation key duration (in days)** (Duración de la clave de activación [en días]), ingrese el número de días durante los que la clave de activación permanece activa. Una vez transcurrido el número de días ingresado, la clave ya no funciona al registrar una instancia externa.

   1. En **Number of instances** (Número de instancias), ingrese el número de instancias externas que desea registrar en el clúster con la clave de activación.

   1. En **Instance role** (Rol de instancia), elija el rol de IAM que desea asociar a las instancias externas. Si aún no se ha creado un rol, elija **Create new role** (Crear nuevo rol) para que Amazon ECS cree un rol en su nombre. Para obtener más información acerca de los permisos de IAM que se requieren para las instancias externas, consulte [Rol de IAM de Amazon ECS Anywhere](iam-role-ecsanywhere.md).

   1.  Copie el comando de registro. Este comando se debe ejecutar en cada instancia externa que desee registrar en el clúster.
**importante**  
La parte Bash del script debe ejecutarse como raíz. Si el comando no se ejecuta como raíz, se genera un error.

   1. Seleccione **Cerrar**.

------
#### [ AWS CLI for Linux operating systems ]

1. Cree un par de activación de Systems Manager. Esto se utiliza para la activación de instancias administradas de Systems Manager. El resultado incluye un `ActivationId` y un `ActivationCode`. Los utilizará en un paso posterior. Asegúrese de especificar el rol de IAM de ECS Anywhere que creó. Para obtener más información, consulte [Rol de IAM de Amazon ECS Anywhere](iam-role-ecsanywhere.md).

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

1. Descargue el script de instalación en el servidor ubicado en las instalaciones o en la máquina virtual (VM).

   ```
   curl --proto "https" -o "/tmp/ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh"
   ```

1. (Opcional) En el servidor ubicado en las instalaciones o en la máquina virtual (VM), siga estos pasos para comprobar el script de instalación mediante el archivo SIGNATURE de script.

   1. Descargue e instale GnuPG. Para obtener más información sobre GNUpg, consulte el [sitio web de GnuPG](https://www.gnupg.org). Para sistemas Linux, instale `gpg` utilizando el administrador de paquetes de su versión de Linux.

   1. Recupere la clave pública PGP de Amazon ECS.

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

   1. Descargue la firma del script de instalación. La firma es una firma PGP separada en formato ASCII que se almacena en un archivo con la extensión `.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 el archivo del script de instalación mediante la clave.

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

      El resultado esperado es el siguiente.

      ```
      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. Use el script de instalación en el servidor ubicado en las instalaciones o en la máquina virtual (VM). Especifique el nombre del clúster, la región y el ID de activación de Systems Manager, y el código de activación del primer paso.

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

   Para un servidor en las instalaciones o una máquina virtual (VM) que tenga el controlador NVIDIA instalado para las cargas de trabajo de la GPU, debe agregar el indicador `--enable-gpu` del script de instalación. Cuando se especifica este indicador, el script de instalación verifica que el controlador NVIDIA se está ejecutando y, a continuación, agrega las variables de configuración necesarias para ejecutar las tareas de Amazon ECS. Para obtener más información acerca de cómo ejecutar cargas de trabajo de GPU y especificar los requisitos de GPU en una definición de tarea, consulte [Especificación de GPU en una definición de tareas de 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
   ```

Siga estos pasos para registrar una instancia externa existente en otro clúster.

**Para registrar una instancia externa existente en un clúster diferente**

1. Detenga el agente de contenedor de Amazon ECS.

   ```
   sudo systemctl stop ecs.service
   ```

1. Edite el archivo `/etc/ecs/ecs.config` y, en la línea `ECS_CLUSTER`, asegúrese de que el nombre del clúster coincida con el nombre del clúster con el que se va a registrar la instancia externa.

1. Elimine los datos existentes del agente de Amazon ECS.

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

1. Inicie el agente de contenedor de Amazon ECS.

   ```
   sudo systemctl start ecs.service
   ```

------
#### [ AWS CLI for Windows operating systems ]

1. Cree un par de activación de Systems Manager. Esto se utiliza para la activación de instancias administradas de Systems Manager. El resultado incluye un `ActivationId` y un `ActivationCode`. Los utilizará en un paso posterior. Asegúrese de especificar el rol de IAM de ECS Anywhere que creó. Para obtener más información, consulte [Rol de IAM de Amazon ECS Anywhere](iam-role-ecsanywhere.md).

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

1. Descargue el script de instalación en el servidor ubicado en las instalaciones o en la máquina virtual (VM).

   ```
   Invoke-RestMethod -URI "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install.ps1" -OutFile “ecs-anywhere-install.ps1”
   ```

1. (Opcional) Amazon firma el script de Powershell y, por lo tanto, Windows realiza automáticamente la validación del certificado en el mismo. No es necesario realizar ninguna validación manual.

   Para verificar manualmente el certificado, haga clic con el botón derecho en el archivo, vaya a las propiedades y utilice la pestaña Firmas digitales para obtener más detalles.

   Esta opción solo está disponible cuando el host tiene el certificado en el almacén de certificados.

   La verificación debería devolver información similar a la siguiente:

   ```
   # 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. Use el script de instalación en el servidor ubicado en las instalaciones o en la máquina virtual (VM). Especifique el nombre del clúster, la región y el ID de activación de Systems Manager, y el código de activación del primer paso.

   ```
   .\ecs-anywhere-install.ps1 -Region $Region -Cluster $Cluster -ActivationID $ActivationID -ActivationCode $ActivationCode
   ```

1. Verifique que el agente de contenedor de Amazon ECS se esté ejecutando.

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

Siga estos pasos para registrar una instancia externa existente en otro clúster.

**Para registrar una instancia externa existente en un clúster diferente**

1. Detenga el agente de contenedor de Amazon ECS.

   ```
   Stop-Service AmazonECS
   ```

1. Modifique el parámetro `ECS_CLUSTER` de modo que el nombre del clúster coincida con el nombre del clúster con el que se va a registrar la instancia externa.

   ```
   [Environment]::SetEnvironmentVariable("ECS_CLUSTER", $ECSCluster, [System.EnvironmentVariableTarget]::Machine)
   ```

1. Elimine los datos existentes del agente de Amazon ECS.

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

1. Inicie el agente de contenedor de Amazon ECS.

   ```
   Start-Service AmazonECS
   ```

------

La AWS CLI se puede utilizar para crear una activación de Systems Manager antes de ejecutar el script de instalación a fin de completar el proceso de registro de instancias externas.

# Anulación del registro de una instancia externa de Amazon ECS
<a name="ecs-anywhere-deregistration"></a>

Le recomendamos que, una vez que termine de utilizar una instancia, anule el registro de la instancia tanto en Amazon ECS como en AWS Systems Manager. Una vez anulado el registro, la instancia externa ya no puede aceptar nuevas tareas.

Si tiene tareas en ejecución en la instancia de contenedor cuando se anula el registro, estas tareas siguen en ejecución hasta que se detengan por otros medios. Sin embargo, Amazon ECS deja de monitorearlas y de considerarlas. Si estas tareas de la instancia externa forman parte de un servicio de Amazon ECS, el programador de servicio inicia otra copia de esa tarea, en una instancia de contenedor distinta, de ser posible.

Después de anular el registro de la instancia, limpie los recursos de AWS de la instancia. A continuación, puede registrarla en un clúster nuevo.

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

------
#### [ Consola de administración de AWS ]

1. Abra la consola en [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. En la barra de navegación, elija la región en la que se encuentra registrada la instancia externa.

1. En el panel de navegación, elija **Clusters** (Clústeres) y seleccione el clúster que aloja la instancia externa.

1. En la página de **Cluster : *name*** (Clúster; nombre), elija la pestaña **Infrastructure** (Infraestructura).

1. En **Container instances** (Instancias de contenedor), seleccione el ID de instancia externa cuyo registro desea cancelar. Se lo redirigirá a la página de detalles de la instancia de contenedor.

1. En la página **Container Instance : *id***, seleccione **Deregister**.

1. Revise el mensaje de anulación del registro. Seleccione **Deregister from AWS Systems Manager** (Anular registro de Systems Manager) para anular el registro de la instancia externa como instancia administrada de Systems Manager. Elija **Anular registro**.
**nota**  
Puede anular el registro de la instancia externa como instancia administrada de Systems Manager desde la consola de Systems Manager. Para obtener instrucciones, consulte [Anulación del registro de nodos administrados en un entorno híbrido y multinube](https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-manager-deregister-hybrid-nodes.html) en la *Guía del usuario de AWS Systems Manager*.

1. Después de anular el registro de la instancia, limpie los recursos de AWS del servidor en las instalaciones o de la VM.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/ecs-anywhere-deregistration.html)

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

1. Necesita el ID de la instancia y el ARN de la instancia de contenedor para anular el registro de la instancia de contenedor. Si no tiene estos valores, ejecute los siguientes comandos

   Ejecute el siguiente comando para obtener el ID de la instancia.

   Utilice el ID de la instancia (`instanceID`) para obtener el ARN (`containerInstanceARN`) de la instancia de contenedor.

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

   Use los siguientes comandos.

   Utilice el `containerInstanceArn` como parámetro en el comando para anular el registro de la instancia (`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.  Ejecute el siguiente comando para vaciar la instancia.

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

1. Cuando la instancia de contenedor termine de vaciarse, ejecute el siguiente comando para anular el registro de la instancia.

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

1. Ejecute el siguiente comando para eliminar las instancias de contenedor desde SSM.

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

1. Después de anular el registro de la instancia, limpie los recursos de AWS del servidor en las instalaciones o de la VM.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/ecs-anywhere-deregistration.html)

------

# Actualización del agente de AWS Systems Manager y del agente de contenedor de Amazon ECS en una instancia externa
<a name="ecs-anywhere-updates"></a>

El servidor ubicado en las instalaciones o la VM deben poner en marcha el agente de AWS Systems Manager (SSM Agent) y el agente de contenedor de Amazon ECS al poner en marcha cargas de trabajo de Amazon ECS. AWS lanza nuevas versiones de estos agentes cuando se agregan o actualizan funciones. Si las instancias externas utilizan una versión anterior de cualquiera de los agentes, puede actualizarlas mediante estos procedimientos.

## Actualización de SSM Agent en una instancia externa
<a name="ecs-anywhere-updates-ssmagent"></a>

AWS Systems Manager recomienda automatizar el proceso de actualización de SSM Agent en las instancias. Proporcionan varios métodos para automatizar las actualizaciones. Para obtener más información, consulte [Automatización de actualizaciones para SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-automatic-updates.html) en la *Guía del usuario de AWS Systems Manager*.

## Actualización del agente de Amazon ECS en una instancia externa
<a name="ecs-anywhere-updates-ecsagent"></a>

En las instancias externas, el agente de contenedor de Amazon ECS se actualiza mediante la actualización del paquete `ecs-init`. La actualización del agente de Amazon ECS no interrumpe las tareas o servicios en ejecución. Amazon ECS proporciona el paquete `ecs-init` y el archivo SIGNATURE en un bucket de Amazon S3 en cada región. A partir de la versión `1.52.1-1` de `ecs-init`, Amazon ECS proporciona paquetes `ecs-init` independientes para su utilización en función del sistema operativo y la arquitectura del sistema que utilice la instancia externa. 

Utilice la siguiente tabla para determinar qué paquete `ecs-init` debe descargar en función del sistema operativo y la arquitectura del sistema que utiliza su instancia externa.

**nota**  
Para determinar qué sistema operativo y arquitectura del sistema utiliza la instancia externa, utilice los siguientes comandos.  

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


| Sistemas operativos (arquitectura) | Paquete 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 estos pasos para actualizar el agente de Amazon ECS. 

**Para actualizar el agente de Amazon ECS**

1. Confirme la versión del agente de Amazon ECS que está ejecutando.

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

1. Descargue el paquete `ecs-init` correspondiente a su sistema operativo y arquitectura del sistema. Amazon ECS proporciona el archivo del paquete `ecs-init` en un bucket de Amazon S3 en cada región. Asegúrese de sustituir el identificador *<region>* del comando por el nombre de la región (por ejemplo, `us-west-2`) geográficamente más cercana.

   **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 la validez del archivo del paquete `ecs-init` mediante la firma PGP.

   1. Descargue e instale GnuPG. Para obtener más información sobre GNUpg, consulte el [sitio web de GnuPG](https://www.gnupg.org). Para sistemas Linux, instale `gpg` utilizando el administrador de paquetes de su versión de Linux.

   1. Recupere la clave pública PGP de Amazon ECS.

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

   1. Descargue la firma del paquete `ecs-init`. La firma es una firma PGP separada en formato ASCII que se almacena en un archivo con la extensión `.asc`. Amazon ECS proporciona el archivo SIGNATURE en un bucket de Amazon S3 en cada región. Asegúrese de sustituir el identificador *<region>* del comando por el nombre de la región (por ejemplo, `us-west-2`) geográficamente más cercana.

      **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 el archivo del paquete `ecs-init` mediante la clave.

      **Para los paquetes `rpm`**

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

      **Para los paquetes `deb`**

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

      El resultado esperado es el siguiente.

      ```
      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 el paquete `ecs-init`.

   **Para el paquete `rpm` en CentOS 7, CentOS 8 y RHEL 7**

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

   **Para el paquete `rpm` en SUSE Enterprise Server 15**

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

   **Para el paquete `deb`**

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

1. Reinicie el servicio `ecs`.

   ```
   sudo systemctl restart ecs
   ```

1. Verifique que se haya actualizado la versión del agente de Amazon ECS.

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