Registro de una instancia externa en un clúster de Amazon ECS
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.
- AWS Management Console
-
Abra la consola en https://console.aws.amazon.com/ecs/v2
. -
En la barra de navegación, seleccione la región a utilizar.
-
En el panel de navegación, seleccione Clusters (Clústeres).
-
En la página Clusters (Clústeres), elija el clúster en el que desea registrar la instancia externa.
-
En la página de Cluster :
name
(Clúster; nombre), elija la pestaña Infrastructure (Infraestructura). -
En la página Register external instances (Registrar instancias externas), complete los pasos siguientes.
-
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.
-
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.
-
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.
-
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.
-
Elija Close.
-
- AWS CLI for Linux operating systems
-
-
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 unActivationCode
. 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.aws ssm create-activation --iam-role
ecsAnywhereRole
| tee ssm-activation.json -
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"
-
(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.
-
Descargue e instale GnuPG. Para obtener más información sobre GNUpg, consulte el sitio web de GnuPG
. Para sistemas Linux, instale gpg
utilizando el administrador de paquetes de su versión de Linux. -
Recupere la clave pública PGP de Amazon ECS.
gpg --keyserver hkp://keys.gnupg.net:80 --recv BCE9D9A42D51784F
-
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"
-
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
-
-
Ejecute 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.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
-
Detenga el agente de contenedor de Amazon ECS.
sudo systemctl stop ecs.service
-
Edite el archivo
/etc/ecs/ecs.config
y, en la líneaECS_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. -
Elimine los datos existentes del agente de Amazon ECS.
sudo rm /var/lib/ecs/data/agent.db
-
Inicie el agente de contenedor de Amazon ECS.
sudo systemctl start ecs.service
-
- AWS CLI for Windows operating systems
-
-
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 unActivationCode
. 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.aws ssm create-activation --iam-role
ecsAnywhereRole
| tee ssm-activation.json -
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”
-
(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.",... ----
-
Ejecute 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
-
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
-
Detenga el agente de contenedor de Amazon ECS.
Stop-Service AmazonECS
-
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)
-
Elimine los datos existentes del agente de Amazon ECS.
Remove-Item -Recurse -Force $env:ProgramData\Amazon\ECS\data\*
-
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.