Differenze nella definizione delle ECS attività di Amazon 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 ECS attività di Amazon 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à

Le attività che utilizzano il tipo di avvio Fargate non supportano tutti i parametri di definizione delle ECS attività di Amazon 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 attiviAWS Fargate, il valore non può essere inferiore a 1 vCPU.

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 AWS Management Console campo Richiede compatibilità, specificare. FARGATE

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

  • In Amazon ECSAPI, specifica la requiresCompatibilities bandiera.

Sistemi operativi e architetture

Quando si configura una definizione di attività e container per AWS Fargate, è necessario specificare il sistema operativo eseguito dal container. Sono supportati i seguenti sistemi operativi 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'CPUarchitettura corrisponde, puoi eseguire contenitori da qualsiasi immagine di contenitore Linux su qualsiasi sistema operativo.

  • Windows Server 2019 Full

  • Windows Server 2019 Core

  • Windows Server 2022 Full

  • Windows Server 2022 Core

Quando esegui contenitori Windows suAWS Fargate, devi avere l'architettura X86_64CPU.

Quando esegui contenitori Linux suAWS Fargate, puoi utilizzare l'architettura X86_64 o l'CPUarchitettura per le ARM64 tue applicazioni basate. ARM Per ulteriori informazioni, consulta Definizioni delle ECS attività di Amazon per carichi di ARM lavoro a 64 bit.

Attività e memoria CPU

Le definizioni delle ECS attività di Amazon AWS Fargate richiedono una specifica CPU e una memoria a livello di attività. Sebbene sia anche possibile specificare CPU e memorizzare a livello di contenitore per le attività di Fargate, questa operazione è facoltativa. Per la maggior parte dei casi d'uso è necessario specificare queste risorse solo a livello di processo. La tabella seguente mostra le combinazioni valide di livello di attività e memoriaCPU. È 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 CPU i valori nel JSON file come stringa in CPU unità o virtual CPUs (vCPUs). Ad esempio, è possibile specificare un CPU valore 1024 in CPU unità o 1 vCPU invCPUs.

CPUvalore

Valore memoria

Sistemi operativi supportati per AWS Fargate

256 (.25 v) CPU

512 MiB, 1 GB, 2 GB

Linux

512 (0,5 v) CPU

1 GB, 2 GB, 3 GB, 4 GB

Linux

1024 (1 v) CPU

2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB

Linux, Windows

2048 (2 v) CPU

Tra 4 GB e 16 GB in incrementi di 1 GB

Linux, Windows

4096 (4 v) CPU

Tra 8 GB e 30 GB in incrementi di 1 GB

Linux, Windows

8192 (8 v) CPU

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 (16 v) CPU

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à

ECSLe attività di Amazon AWS Fargate richiedono la modalità di awsvpc 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'attività Fargate in una sottorete pubblica possa estrarre le immagini dei container, è necessario assegnare un indirizzo IP pubblico all'interfaccia di rete elastica dell'operazione, con un percorso verso Internet o un NAT gateway in grado di instradare le richieste a Internet. Affinché un'attività Fargate in una sottorete privata richiami le immagini dei container, è necessario un NAT gateway nella sottorete per indirizzare le richieste a Internet. Quando ospiti le immagini dei tuoi container in AmazonECR, puoi configurare Amazon ECR per utilizzare un VPC endpoint di interfaccia. In questo caso, l'IPv4indirizzo privato dell'attività viene utilizzato per l'acquisizione dell'immagine. Per ulteriori informazioni sugli endpoint ECR dell'interfaccia Amazon, consulta Amazon ECR interface VPC endpoints (AWS PrivateLink) nella Amazon Elastic Container Registry User Guide.

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

Le definizioni delle ECS attività di Amazon per i contenitori Linux AWS Fargate supportano il ulimits parametro per definire i limiti di risorse da impostare per un contenitore.

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

ECSLe attività Amazon ospitate su Fargate utilizzano i valori limite di risorse predefiniti impostati dal sistema operativo ad eccezione del parametro del limite di nofile risorse. 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 attuale dei tuoi ECS cluster, servizi e attività Amazon. Inoltre, puoi automatizzare le operazioni per rispondere a questi eventi. Per ulteriori informazioni, consulta Automatizza le risposte agli ECS errori di Amazon 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à in AWS Management Console e descrivendo l'attività alla fine. AWS CLI SDKs Ad esempio, è possibile utilizzare i timestamp per valutare il tempo impiegato dall'attività per scaricare le immagini del contenitore e decidere se ottimizzare le dimensioni dell'immagine del contenitore o utilizzare gli indici Seekable. OCI Per ulteriori informazioni sulle pratiche delle immagini di container, consulta Le migliori pratiche per le immagini dei ECS container Amazon.

Registrazione dell'applicazione

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

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 ECS log di Amazon a CloudWatch

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

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

Archiviazione di attività

Per ECS le attività Amazon ospitate su Fargate, sono supportati i seguenti tipi di storage:

Lazy loading delle immagini dei container utilizzando Seekable OCI () SOCI

ECSLe attività Amazon su Fargate che utilizzano la versione della piattaforma Linux 1.4.0 possono utilizzare Seekable OCI (SOCI) per avviare le attività più velocemente. Al contrarioSOCI, i container impiegano solo pochi secondi per recuperare l'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 ECS un'attività Amazon, Fargate rileva automaticamente se esiste un SOCI indice per un'immagine nell'operazione e avvia il contenitore senza attendere che l'intera immagine venga scaricata.

Per i contenitori che funzionano senza SOCI indici, le immagini dei contenitori vengono scaricate completamente prima dell'avvio del contenitore. Questo comportamento è lo stesso su tutte le altre versioni della piattaforma di Fargate e sulle istanze Amazon ECS ottimizzate per AMI Amazon. EC2

OCIIndici ricercabili

Seekable OCI (SOCI) è una tecnologia open source sviluppata da Seekable AWS che può avviare i container più velocemente caricando pigramente l'immagine del contenitore. SOCIfunziona creando un indice (SOCIIndice) dei file all'interno di un'immagine contenitore 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'SOCIindice deve essere memorizzato come artefatto nello stesso archivio dell'immagine all'interno del registro del contenitore. È necessario utilizzare solo SOCI indici provenienti da fonti attendibili, poiché l'indice è la fonte autorevole per il contenuto dell'immagine. Per ulteriori informazioni, consulta Introduzione a Seekable OCI for lazy loading container images.

Considerazioni

Se desiderate che Fargate utilizzi un SOCI indice per caricare pigramente le immagini dei container in un'attività, considerate quanto segue:

  • 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.

  • Sono supportate le attività eseguite sulla X86_64 nostra ARM64 CPU architettura.

  • Le immagini dei contenitori nella definizione dell'attività devono avere SOCI indici nello stesso registro di contenitori 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 ECR privati di Amazon.

  • Sono supportate solo le immagini di container che utilizzano la compressione gzip o non sono compresse. Le immagini di container che utilizzano la compressione zstd non sono supportate.

  • Consigliamo di provare il caricamento lento con immagini di container con dimensioni della compressione superiori a 250 MiB. È 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 del contenitore venga caricata lentamente, elimina l'SOCIindice dal registro dei contenitori. 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 SOCI indice (un file di metadati) creato e archiviato nel repository di immagini del contenitore insieme all'immagine del contenitore. Per creare e inviare un SOCI indice puoi usare lo strumento open source CLIsoci-snapshotter su. GitHub In alternativa, puoi implementare Index Builder. CloudFormation AWS SOCI Si tratta di una soluzione serverless che crea e invia automaticamente un SOCI indice quando un'immagine del contenitore viene inviata ad Amazon. ECR Per ulteriori informazioni sulla soluzione e sui passaggi di installazione, consulta CloudFormation AWS SOCIIndex Builder on. GitHub CloudFormation AWS SOCIIndex Builder è un modo per automatizzare le fasi inizialiSOCI, 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'SOCIindice possa essere creato per un'immagine, l'immagine deve esistere nell'archivio immagini sul computer in esecuzionecontainerd. soci-snapshotter Se l'immagine è nell'archivio di immagini Docker, non può essere trovata.

Verificare che un'attività abbia utilizzato il caricamento lento

Per verificare che un'attività sia stata caricata senza problemiSOCI, controllate l'endpoint dei metadati dell'operazione dall'interno dell'operazione. 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 if SOCI is used.