Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Come posso creare e utilizzare AMI personalizzate in Amazon ECS?
Desidero configurare e utilizzare un Amazon Machine Image (AMI) personalizzato basato su CentOS, SUSE Enterprise Server o RHEL in un cluster Amazon Elastic Container Service (Amazon ECS).
Breve descrizione
Per creare un'AMI personalizzata da utilizzare con Amazon ECS, procedi come segue:
- Crea un'AMI.
- Installa Docker per il tuo sistema operativo.
- Installa il pacchetto ecs-init.
- (Facoltativo) Installa l'Agente AWS Systems Manager (Agente SSM) per ECS.
- Attiva il servizio ECS e verifica che l'agente del container ECS sia attivo.
- Pulisci l'immagine per un uso futuro.
- Crea una nuova immagine Amazon Elastic Compute Cloud (Amazon EC2).
- Avvia un'istanza di container Amazon ECS Linux, quindi aggiungi quanto necessario in UserData durante l'esecuzione dell'istanza per configurare il file ecs.config.
Risoluzione
Crea un'AMI
Un'AMI può essere creata in tre modi:
- Per creare un'AMI personalizzata basata sull'AMI ottimizzata per Amazon Linux ECS, segui le indicazioni in ECS-optimized AMI Build Recipes con Hashicorp Packer per creare l'immagine.
- Utilizza EC2 Image Builder per creare e gestire più facilmente la manutenzione delle immagini.
- Avvia un'istanza Amazon EC2, quindi configurala per includere i componenti richiesti per ECS. Per creare un'AMI con requisiti ECS integrati che si basi sull'AMI che hai scelto per l'AMI ECS, consulta Come faccio a lanciare un'istanza EC2 da un'AMI personalizzata?Dopo l'esecuzione dell'istanza, consulta Connessione all'istanza Linux tramite un client SSH.
Installa Docker
Per installare Docker per il sistema operativo e l'architettura di sistema in uso, consulta le istruzioni in Install Docker Engine (Installazione di Docker Engine) sul sito web Docker.
Installa il pacchetto ecs-int
1. Esegui questo comando per scaricare il pacchetto Amazon ecs-int per ** CentOS**, SUSE Enterprise Server o RHEL:
Nota: sostituisci region con la Regione AWS in cui hai avviato l'istanza.
Per CentOS 7/8 x86_64, 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
Per CentOS 7/8 aarch64 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. Esegui uno di questi comandi per installare il pacchetto rpm scaricato per l'istanza:
Per i pacchetti rpm per CentOS 7/8 e RHEL 7:
$ sudo yum install -y ./amazon-ecs-init.rpm
Per i pacchetti rpm per SUSE Enterprise Server 15:
$ sudo zypper install -y --allow-unsigned-rpm ./amazon-ecs-init.rpm
(Facoltativo) Installa l'Agente SSM per ECS
Per utilizzare la funzionalità Amazon ECS Exec per il debugging, devi installare l'Agente SSM per Amazon ECS.
1. Esegui questo comando per scaricare ed estrarre i file binari dell'Agente SSM:
$ mkdir -p ssm-binaries && cd ssm-binaries
2. Esegui uno di questi comandi per CentOS, SUSE Enterprise Server o RHEL:
Nota: sostituisci region con la Regione in cui hai avviato l'istanza.
Per CentOS 7/8 x86_64, 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
Per CentOS 7/8 aarch64 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. Esegui questo comando per estrarre i file dell'agente:
$ tar -xzvf amazon-ssm-agent.tar.gz
4. Ottieni la versione dell'Agente SSM, quindi crea una directory in /var/lib/ecs/deps/execute-command/bin/. Assegna un nome alla directory con la versione dell'Agente SSM. Di seguito è riportato un esempio di comando per ottenere la versione dell'Agente SSM:
$ ./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. Esegui questi comandi per copiare i file binari dell'Agente SSM nella directory:
$ 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. Esegui questo comando per copiare i certificati TLS per l'Agente SSM:
$ 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
Attiva il servizio ECS e verifica che l'agente del container ECS sia attivo
1. Per attivare il servizio ECS, esegui questo comando:
$ sudo systemctl enable --now ecs
2. Esegui questo comando per verificare che il servizio ECS sia attivato e che l'agente del contenitore ECS sia attivo:
$ sudo systemctl status ecs $ sudo docker ps
Gli output sono simili ai seguenti:
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
Pulisci l'immagine
1. Per pulire l'immagine per un uso futuro, interrompi il pacchetto ecs-init e i processi Docker eseguendo questo comando:
$ sudo systemctl stop ecs $ sudo systemctl stop docker
-
Rimuovi tutti i file di registro dall'istanza corrente per impedirne la conservazione durante il salvataggio dell'immagine. Usa lo script di esempio in Security best practice per EC2 Image Builder per ripulire i vari file dall'istanza.
-
Per ripulire i dati specifici di ECS, esegui i seguenti comandi:
$ sudo rm -rf /var/log/ecs/* $ sudo rm /var/lib/ecs/data/agent.db
Crea una nuova immagine Amazon EC2
Esegui questo comando per creare una nuova immagine utilizzando l'immagine configurata nel passaggio precedente:
$ aws ec2 create-image --description "My ECS Image" --instance-id i-012345678910 --name Custom-ECS-Image --reboot
L'output è simile al seguente:
{ "ImageId": "ami-01234567890101" }
Avvia un'istanza
Per avviare un'istanza, consulta Avvio di un'istanza di container Linux di Amazon ECS.
Con la nuova AMI, esegui questo comando per verificare che UserData contenga il comando per scrivere nel file ecs.config:
Nota: sostituisci ** il tuo_cluster_name** con il nome del tuo cluster.
#!/bin/bash echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
- Argomenti
- Containers
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata un anno fa
AWS UFFICIALEAggiornata 8 mesi fa