Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
¿Cómo puedo crear y utilizar AMI personalizadas en Amazon ECS?
Quiero configurar y usar una imagen de máquina de Amazon (AMI) personalizada basada en CentOS, SUSE Enterprise Server o RHEL en un clúster de Amazon Elastic Container Service (Amazon ECS).
Breve descripción
Para crear una AMI personalizada y usarla con Amazon ECS, siga estos pasos:
- Cree una AMI.
- Instale Docker para su sistema operativo.
- Instale el paquete ecs-init.
- (Opcional) Instale AWS Systems Manager Agent (SSM Agent) para ECS.
- Active el servicio de ECS y confirme que el agente de contenedor de ECS esté activo.
- Limpie la imagen para usarla en el futuro.
- Cree una nueva imagen de Amazon Elastic Compute Cloud (Amazon EC2).
- Inicie una instancia de contenedor de Amazon ECS Linux y añada los datos de usuario necesarios al ejecutarla para configurar el archivo ecs.config.
Resolución
Creación de una AMI
Existen tres opciones para crear una AMI:
- Para crear una AMI personalizada basada en la AMI optimizada para Amazon Linux ECS, utilice las recetas de compilación de AMI optimizadas para ECS con Hashicorp Packer para crear la imagen.
- Utilice EC2 Image Builder para crear y gestionar el mantenimiento de las imágenes.
- Inicie una instancia de Amazon EC2 y, a continuación, configúrela para que incluya los componentes necesarios para ECS. Para crear una AMI que integre los requisitos de ECS basándose en la AMI que usted desee, consulte ¿Cómo puedo iniciar una instancia de EC2 desde una imagen de máquina de Amazon (AMI) personalizada? Una vez ejecutada la instancia, consulte Cómo conectarse a una instancia de Linux mediante un cliente de SSH.
Instalación de Docker
Para instalar la versión de Docker adecuada para el sistema operativo y la arquitectura del sistema, consulte las instrucciones Instalación del motor de Docker en el sitio web de Docker.
Instalación del paquete ecs-int
1. Ejecute el siguiente comando para descargar el paquete ecs-int de Amazon para CentOS, SUSE Enterprise Server o RHEL:
Nota: Sustituya la región existente por la región de AWS en la que haya iniciado la instancia.
Para x86_64 CentOS 7/8, SUSE Enterprise Server 15 o RHEL 7:
$ curl -o amazon-ecs-init.rpm https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.x86_64.rpm
Para aarch64 CentOS 7/8 o RHEL 7:
$ curl -o amazon-ecs-init.rpm https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.aarch64.rpm
2. Ejecute uno de los siguientes comandos para instalar el paquete rpm que haya descargado para la instancia:
Para paquetes rpm de CentOS 7/8 y RHEL 7:
$ sudo yum install -y ./amazon-ecs-init.rpm
Para paquetes rpm de SUSE Enterprise Server 15:
$ sudo zypper install -y --allow-unsigned-rpm ./amazon-ecs-init.rpm
(Opcional) Instale SSM Agent para ECS
Para utilizar la característica Amazon ECS Exec para for depurar, debe instalar SSM Agent para Amazon ECS.
1. Ejecute el siguiente comando para descargar y extraer los archivos binarios de SSM Agent:
$ mkdir -p ssm-binaries && cd ssm-binaries
2. Ejecute uno de los siguientes comandos para CentOS, SUSE Enterprise Server o RHEL:
Nota: Sustituya la región existente por la región en la que haya iniciado la instancia.
Para x86_64 CentOS 7/8, SUSE Enterprise Server 15 o RHEL 7:
$ curl -o amazon-ssm-agent.tar.gz https://amazon-ssm-<region>.s3.<region>.amazonaws.com/latest/linux_amd64/amazon-ssm-agent-binaries.tar.gz
Para aarch64 CentOS 7/8 o RHEL 7:
$ curl -o amazon-ssm-agent.tar.gz https://amazon-ssm-<region>.s3.<region>.amazonaws.com/latest/linux_arm64/amazon-ssm-agent-binaries.tar.gz
3. Ejecute el siguiente comando para extraer los archivos del agente:
$ tar -xzvf amazon-ssm-agent.tar.gz
4. Obtenga la versión de SSM Agent y, a continuación, cree un directorio en /var/lib/ecs/deps/execute-command/bin/. Asigne un nombre al directorio con la versión de SSM Agent. A continuación tiene un ejemplo de comando para obtener la versión de SSM Agent:
$ ./amazon-ssm-agent -version SSM Agent version: 3.2.286.0 $ export SSM_VERSION=3.2.286.0 $ sudo mkdir -p /var/lib/ecs/deps/execute-command/bin/$SSM_VERSION
5. Ejecute los siguientes comandos para copiar los archivos binarios de SSM Agent al directorio:
$ sudo cp amazon-ssm-agent /var/lib/ecs/deps/execute-command/bin/$SSM_VERSION/amazon-ssm-agent $ sudo cp ssm-agent-worker /var/lib/ecs/deps/execute-command/bin/$SSM_VERSION/ssm-agent-worker $ sudo cp ssm-session-worker /var/lib/ecs/deps/execute-command/bin/$SSM_VERSION/ssm-session-worker
6. Ejecute el siguiente comando para copiar los certificados TLS de SSM Agent:
$ sudo mkdir -p /var/lib/ecs/deps/execute-command/certs $ sudo cp /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /var/lib/ecs/deps/execute-command/certs/tls-ca-bundle.pem $ sudo chmod 400 /var/lib/ecs/deps/execute-command/certs/tls-ca-bundle.pem
Activación del servicio de ECS y confirmación de que el agente de contenedor de ECS está activo
1. Para activar el servicio de ECS, ejecute el siguiente comando:
$ sudo systemctl enable --now ecs
2. Ejecute el siguiente comando para confirmar que el servicio de ECS está activado y que el agente de contenedor de ECS está activo:
$ sudo systemctl status ecs $ sudo docker ps
Los resultados tienen un aspecto similar al siguiente:
ecs.service - Amazon Elastic Container Service - container agent Loaded: loaded (/lib/systemd/system/ecs.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-02-22 08:39:02 UTC; 11min ago (...)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 108cfb8a10d2 amazon/amazon-ecs-agent:latest "/agent" 9 minutes ago Up 9 minutes (healthy) ecs-agent
Limpieza de la imagen
1. Para limpiar la imagen para usarla en el futuro, ejecute el siguiente comando para detener el paquete ecs-init y los procesos de Docker:
$ sudo systemctl stop ecs $ sudo systemctl stop docker
2. Elimine todos los archivos de registro de la instancia actual para evitar que se mantengan al guardar la imagen. Utilice el script de ejemplo que figura en Prácticas de seguridad recomendadas para el generador de imágenes de EC2 para limpiar los diferentes archivos de la instancia.
3. Para limpiar los datos específicos de ECS, ejecute los siguientes comandos:
$ sudo rm -rf /var/log/ecs/* $ sudo rm /var/lib/ecs/data/agent.db
Creación de una nueva imagen de Amazon EC2
Ejecute el siguiente comando para usar la imagen configurada en el paso anterior y crear una nueva imagen:
$ aws ec2 create-image --description "My ECS Image" --instance-id i-012345678910 --name Custom-ECS-Image --reboot
El resultado es similar al siguiente:
{ "ImageId": "ami-01234567890101" }
Inicio de una instancia
Para iniciar una instancia, consulte Inicio de una instancia de contenedor de Amazon ECS Linux.
Con la nueva AMI, ejecute el siguiente comando para confirmar que los datos de usuario contienen el comando necesario para escribir en el archivo ecs.config:
**Nota:**Sustituya your_cluster_name por el correspondiente nombre del clúster.
#!/bin/bash echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
- Temas
- Containers
- Etiquetas
- Amazon Elastic Container Service
- Idioma
- Español

Contenido relevante
- preguntada hace un año
- preguntada hace 3 meses
- preguntada hace 4 meses
- preguntada hace 3 meses
OFICIAL DE AWSActualizada hace un año
OFICIAL DE AWSActualizada hace un año