Differenze nella definizione delle attività di Amazon ECS per il tipo di lancio di Fargate - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Differenze nella definizione delle attività di Amazon ECS per il tipo di lancio di Fargate

Per utilizzare Fargate, è necessario configurare la definizione dell'attività in modo da utilizzare il tipo di avvio Fargate. Ci sono altre considerazioni sull'utilizzo di Fargate.

Parametri di definizione di attività

I processi che utilizzano il tipo di avvio Fargate non supportano tutti i parametri di definizione dei processi di Amazon ECS disponibili. Alcuni parametri non sono supportati, mentre altri si comportano diversamente con i processi Fargate.

I parametri di definizione dei processi seguenti non sono validi nei processi Fargate:

  • disableNetworking

  • dnsSearchDomains

  • dnsServers

  • dockerSecurityOptions

  • extraHosts

  • gpu

  • ipcMode

  • links

  • placementConstraints

  • privileged

  • maxSwap

  • swappiness

I seguenti parametri di definizione dei processi sono validi in Fargate, ma hanno delle limitazioni da considerare:

  • linuxParameters: quando si indicano opzioni specifiche di Linux che vengono applicate al container, in capabilities l'unica capacità che puoi aggiungere è CAP_SYS_PTRACE. I parametri devices, sharedMemorySize e tmpfs non sono supportati. Per ulteriori informazioni, consulta Parametri Linux.

  • volumes: I processi Fargate supportano solo volumi host di montaggi vincolati, quindi il parametro dockerVolumeConfiguration non è supportato. Per ulteriori informazioni, consulta Volumi.

  • cpu- Per i contenitori Windows su AWS Fargate, il valore non può essere inferiore a 1 vCPU.

  • networkConfiguration- Le attività Fargate utilizzano sempre la modalità di awsvpc rete.

Per assicurarti che la definizione di attività sia valida per l'utilizzo con Fargate, puoi specificare quanto riportato di seguito quando registri la definizione di attività:

  • Nel campo Richiede compatibilità AWS Management Console, specificare. FARGATE

  • Nel AWS CLI, specificare l'opzione. --requires-compatibilities

  • Nell'API Amazon ECS, specifica il flag requiresCompatibilities.

Sistemi operativi e architetture

Quando si configura una definizione di task e container per AWS Fargate, è necessario specificare il sistema operativo utilizzato dal contenitore. I seguenti sistemi operativi sono supportati per AWS Fargate:

  • Amazon Linux 2

    Nota

    I contenitori Linux utilizzano solo il kernel e la configurazione del kernel del sistema operativo host. Ad esempio, la configurazione del kernel include i controlli di sistema sysctl. Un'immagine di container Linux può essere creata a partire da un'immagine di base che contiene i file e i programmi di qualsiasi distribuzione Linux. Se l'architettura della CPU corrisponde, puoi eseguire i container da qualsiasi immagine di container Linux e su qualsiasi sistema operativo.

  • Windows Server 2019 Full

  • Windows Server 2019 Core

  • Windows Server 2022 Full

  • Windows Server 2022 Core

Quando si eseguono contenitori Windows su AWS Fargate, è necessario disporre dell'architettura della CPU X86_64.

Quando esegui contenitori Linux su AWS Fargate, è possibile utilizzare l'architettura della CPU X86_64 o l' ARM64 architettura per le applicazioni basate su ARM. Per ulteriori informazioni, consulta Definizioni delle attività di Amazon ECS per carichi di lavoro ARM a 64 bit.

CPU e memoria del processo

Definizioni delle attività di Amazon ECS per AWS Fargate richiedono di specificare CPU e memoria a livello di attività. Sebbene per i processi Fargate sia possibile specificare CPU e memoria anche a livello di container, si tratta di un'opzione facoltativa. Per la maggior parte dei casi d'uso è necessario specificare queste risorse solo a livello di processo. La tabella seguente illustra le combinazioni valide di CPU e memoria a livello di attività. È possibile specificare i valori di memoria nella definizione dell'attività come stringa in MiB o GB. Ad esempio, è possibile specificare un valore di memoria 3072 in MiB o 3 GB in GB. È possibile specificare i valori della CPU nel file JSON come stringa in unità CPU o in modalità virtuale CPUs (vCPUs). Ad esempio, è possibile specificare un valore di CPU come 1024 in unità CPU o 1 vCPU in vCPUs.

Valore CPU Valore memoria Sistemi operativi supportati per AWS Fargate
256 (0,25 vCPU) 512 MiB, 1 GB, 2 GB Linux
512 (0,5 vCPU) 1 GB, 2 GB, 3 GB, 4 GB Linux
1024 (1 vCPU) 2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB Linux, Windows
2048 (2 vCPU) Tra 4 GB e 16 GB in incrementi di 1 GB Linux, Windows
4096 (4 vCPU) Tra 8 GB e 30 GB in incrementi di 1 GB Linux, Windows
8192 (8 vCPU)
Nota

Questa opzione richiede la piattaforma Linux 1.4.0 o successiva.

Tra 16 GB e 60 GB in incrementi di 4 GB Linux
16384 (16vCPU)
Nota

Questa opzione richiede la piattaforma Linux 1.4.0 o successiva.

Tra 32 GB e 120 GB in incrementi di 8 GB Linux

Reti di attività

Attività Amazon ECS per AWS Fargate richiedono la modalità awsvpc di rete, che fornisce a ogni attività un'interfaccia di rete elastica. Quando esegui un'attività o crei un servizio con questa modalità di rete, è necessario specificare una o più sottoreti per collegare l'interfaccia di rete e uno o più gruppi di sicurezza da applicare all'interfaccia di rete.

Se usi sottoreti pubbliche, decidi se fornire un indirizzo IP pubblico per l'interfaccia di rete. Affinché un processo Fargate in una sottorete pubblica estragga le immagini del container, è necessario che un indirizzo IP pubblico sia assegnato all'interfaccia di rete elastica del processo con un routing a Internet o a un gateway NAT in grado di instradare le richieste a Internet. Affinché un processo Fargate in una sottorete privata estragga le immagini del container, è necessario un gateway NAT nella sottorete per instradare le richieste a Internet. Quando ospiti le immagini del container in Amazon ECR, puoi configurare Amazon ECR per utilizzare un endpoint VPC dell'interfaccia. In questo caso, l' IPv4 indirizzo privato dell'attività viene utilizzato per il pull dell'immagine. Per ulteriori informazioni sugli endpoint di interfaccia Amazon ECR, consulta Endpoint VPC dell'interfaccia Amazon ECR (AWS PrivateLink) nella Guida per l'utente di Amazon Elastic Container Registry.

Di seguito è riportato un esempio della networkConfiguration sezione relativa a un servizio Fargate:

"networkConfiguration": { "awsvpcConfiguration": { "assignPublicIp": "ENABLED", "securityGroups": [ "sg-12345678" ], "subnets": [ "subnet-12345678" ] } }

Limiti delle risorse dei processi

Definizioni delle attività di Amazon ECS per contenitori Linux su AWS Fargate supporta il ulimits parametro per definire i limiti di risorse da impostare per un contenitore.

Definizioni delle attività di Amazon ECS per Windows su AWS Fargate non supportano il ulimits parametro per definire i limiti di risorse da impostare per un contenitore.

I processi di Amazon ECS ospitati su Fargate utilizzano i valori del limite di risorse predefinito impostato dal sistema operativo, ad eccezione del parametro del limite di risorse nofile. Il limite di risorse nofile imposta una restrizione sul numero di file aperti che un container può utilizzare. Su Fargate, il limite flessibile nofile predefinito è 65535 mentre il limite rigido è 65535. Puoi impostare i valori di entrambi i limiti fino a 1048576.

Di seguito è riportato uno snippet di definizione di attività di esempio che mostra come definire unnofilelimite che è stato raddoppiato:

"ulimits": [ { "name": "nofile", "softLimit": 2048, "hardLimit": 8192 } ]

Per ulteriori informazioni sugli altri limiti di risorse che possono essere modificati, consulta Limiti delle risorse.

Registrazione

Registrazione degli eventi

Amazon ECS registra le azioni eseguite. EventBridge Puoi utilizzare Amazon ECS Events per EventBridge ricevere notifiche quasi in tempo reale sullo stato corrente dei tuoi cluster, servizi e attività Amazon ECS. Inoltre, puoi automatizzare le operazioni per rispondere a questi eventi. Per ulteriori informazioni, consulta Automatizza le risposte agli errori di Amazon ECS utilizzando EventBridge.

Registrazione del ciclo di vita delle attività

Le attività eseguite su Fargate pubblicano i timestamp per monitorare l'attività attraverso gli stati del ciclo di vita. Puoi visualizzare i timestamp nei dettagli dell'attività nel e descrivendo l'attività nella AWS Management Console e. AWS CLI SDKs Ad esempio, puoi utilizzare i timestamp per valutare il tempo impiegato dall'attività per scaricare le immagini di container e decidere se ottimizzare le dimensioni dell'immagine o utilizzare gli indici Seekable OCI. Per ulteriori informazioni sulle pratiche delle immagini di container, consulta Le migliori pratiche per le immagini dei container Amazon ECS.

Registrazione dell'applicazione

Definizioni delle attività di Amazon ECS per AWS Fargate supportano i driver awslogssplunk, e awsfirelens log per la configurazione del registro.

Il driver di awslogs registro configura le attività di Fargate per inviare informazioni di registro ad Amazon CloudWatch Logs. È riportato di seguito un frammento di una definizione di attività in cui è configurato il driver di log awslogs:

"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group" : "/ecs/fargate-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }

Per ulteriori informazioni sull'utilizzo del driver di awslogs registro in una definizione di attività per inviare i log dei contenitori a Logs, consulta. CloudWatch Invia i log di Amazon ECS a CloudWatch

Per ulteriori informazioni sul driver di log awsfirelens, consulta Inviare i log di Amazon ECS a un servizio o AWSAWS Partner.

Per ulteriori informazioni su come utilizzare il driver di log splunk, consulta splunkdriver di registro.

Archiviazione dei processi

Per i processi Amazon ECS ospitati su Fargate, sono supportati i seguenti tipi di archiviazione:

Caricamento lento delle immagini di container utilizzando Seekable OCI (SOCI)

Le attività di Amazon ECS su Fargate che utilizzano la versione della piattaforma Linux 1.4.0 possono utilizzare Seekable OCI (SOCI) per avviare le attività più velocemente. Con SOCI, i container trascorrono solo pochi secondi sul recupero dell'immagine prima di avviarsi, lasciando così il tempo necessario per la configurazione dell'ambiente e la creazione di istanze dell'applicazione mentre l'immagine viene scaricata in background. Questo processo si chiama caricamento lento. Quando Fargate avvia un'attività Amazon ECS, rileva automaticamente se esiste un indice SOCI per un'immagine nell'operazione e avvia il container senza attendere che l'intera immagine venga scaricata.

Per i container che funzionano senza indici SOCI, le immagini di container vengono scaricate completamente prima dell'avvio di quest'ultimo. Questo comportamento è lo stesso su tutte le altre versioni della piattaforma di Fargate e sull'AMI ottimizzata per Amazon ECS sulle istanze Amazon. EC2

Indici Seekable OCI

Seekable OCI (SOCI) è una tecnologia open source sviluppata da Seekable OCI AWS che può avviare i container più velocemente caricando pigramente l'immagine del contenitore. SOCI funziona creando un indice (indice SOCI) dei file all'interno di un'immagine di container esistente. Questo indice aiuta ad avviare i container più velocemente, offrendo la possibilità di estrarre un singolo file da un'immagine di container prima di scaricare l'intera immagine. L'indice SOCI deve essere archiviato come artefatto nello stesso repository dell'immagine all'interno del registro dei container. Devi utilizzare solo indici SOCI provenienti da fonti attendibili, poiché l'indice è la fonte autorevole per il contenuto dell'immagine. Per ulteriori informazioni, consulta Introduzione a Seekable OCI per il caricamento lento delle immagini di container.

Considerazioni

Se desideri che Fargate utilizzi un indice SOCI per caricare lentamente le immagini di container in un'attività, considera le seguenti informazioni:

  • Solo le attività eseguite sulla versione della piattaforma Linux 1.4.0 possono utilizzare gli indici SOCI. Le attività che eseguono i container Windows su Fargate non sono supportate.

  • Attività eseguite su X86_64 oppure ARM64 L'architettura della CPU è supportata.

  • Le immagini di container nella definizione delle attività devono avere indici SOCI nello stesso registro di container dell'immagine.

  • Le immagini di container nella definizione delle attività devono essere archiviate in un registro di immagini compatibile. Di seguito sono elencati i registri compatibili:

    • Registri privati Amazon ECR.

  • Solo immagini di contenitori che utilizzano gzip Sono supportate la compressione o non sono compresse. Immagini del contenitore che utilizzano zstd la compressione non è supportata.

  • Ti consigliamo di provare il caricamento lento con immagini del contenitore maggiori di 250 MiB di dimensioni compresse. È meno probabile che si verifichi una riduzione del tempo necessario per caricare immagini più piccole.

  • Poiché il caricamento lento può modificare il tempo di avvio delle attività, potrebbe essere necessario modificare diversi timeout, ad esempio il periodo di tolleranza del controllo dell'integrità per Elastic Load Balancing.

  • Se vuoi evitare che un'immagine di container venga caricata lentamente, elimina l'indice SOCI dal registro di container. Se l'immagine di container inclusa nell'operazione non soddisfa una delle considerazioni, tale immagine viene scaricata con il metodo predefinito.

Creazione di un indice Seekable OCI

Affinché un'immagine del contenitore venga caricata lentamente, è necessario un indice SOCI (un file di metadati) creato e archiviato nel repository di immagini del contenitore insieme all'immagine del contenitore. Per creare e inviare un indice SOCI puoi utilizzare lo strumento CLI soci-snapshotter open source. GitHub In alternativa, puoi implementare SOCI Index Builder. CloudFormation AWS Si tratta di una soluzione serverless che crea e invia automaticamente un indice SOCI quando un'immagine del contenitore viene inviata ad Amazon ECR. Per ulteriori informazioni sulla soluzione e sui passaggi di installazione, consulta CloudFormation AWS SOCI Index Builder su. GitHub CloudFormation AWS SOCI Index Builder è un modo per automatizzare l'avvio a usare SOCI, mentre lo strumento open source soci offre una maggiore flessibilità nella generazione di indici e la capacità di integrare la generazione di indici nelle pipeline di integrazione continua e distribuzione continua (CI/CD).

Nota

Affinché l'indice SOCI possa essere creato per un'immagine, l'immagine deve esistere in containerd archivio di immagini sul computer in esecuzionesoci-snapshotter. Se l'immagine si trova in Docker archivio immagini, l'immagine non può essere trovata.

Verificare che un'attività abbia utilizzato il caricamento lento

Per verificare che sia stato utilizzato il caricamento lento per un'attività tramite SOCI, controlla l'endpoint dei metadati dell'operazione dall'interno dell'attività. Quando esegui query sulla versione 4 dell'endpoint metadati delle attività, viene visualizzato un campo Snapshotter nel percorso predefinito per il container da cui esegui la query. Inoltre, vengono visualizzati campi Snapshotter per ogni container nel percorso /task. Il valore predefinito per questo campo èoverlayfs, e questo campo è impostato su soci se viene utilizzato SOCI.