Tipo di avvio EC2 e Fargate a confronto
Confrontare la gestione autonoma delle istanze container EC2 con l'utilizzo di Fargate per eseguire container serverless e comprendere i compromessi in termini di costi
Tipo di avvio EC2 e Fargate a confronto è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Due modi per eseguire le attività ECS
ECS offre due tipi di avvio che definiscono dove vengono eseguiti i container: il tipo di avvio EC2 esegue i container su istanze EC2 che Lei configura e gestisce all'interno del cluster; il tipo di avvio Fargate è un motore di calcolo serverless in cui AWS gestisce interamente i server sottostanti. La definizione dell'attività e la configurazione del servizio sono quasi identiche in entrambi i casi; la differenza principale riguarda la responsabilità della gestione dell'infrastruttura e il modello di costo.
Tipo di avvio EC2: controllo completo
Con il tipo di avvio EC2, si registrano le istanze EC2 come istanze container nel cluster utilizzando l'agente ECS Container (preinstallato nelle AMI ottimizzate per ECS). È possibile scegliere i tipi di istanza, controllare le impostazioni a livello di sistema operativo, applicare baseline di sicurezza personalizzate e utilizzare le Spot Instance per ridurre i costi. ECS distribuisce le attività tra le istanze registrate in base a strategie di posizionamento bin-packing o spread. Lei è responsabile dell'applicazione delle patch, del dimensionamento e della manutenzione della flotta EC2 sottostante.
# Launch an ECS-optimised EC2 instance that joins the cluster
# User data for ECS container agent
#!/bin/bash
echo ECS_CLUSTER=MyAppCluster >> /etc/ecs/ecs.config
echo ECS_ENABLE_CONTAINER_METADATA=true >> /etc/ecs/ecs.configFargate: container serverless
Con Fargate, specificate CPU e memoria per ogni attività e AWS fornisce in modo trasparente le risorse di calcolo sottostanti. Non ci sono istanze EC2 da registrare, aggiornare o scalare: AWS gestisce tutto. Le attività ottengono un kernel isolato (tramite microVM Firecracker), che offre un isolamento di sicurezza più efficace rispetto alle istanze container EC2, dove più attività condividono lo stesso host. Fargate richiede la modalità di rete awsvpc, il che significa che ogni attività riceve una propria ENI e un proprio indirizzo IP VPC.
aws ecs run-task \
--cluster 'MyAppCluster' \
--task-definition 'myapp-task:5' \
--launch-type FARGATE \
--network-configuration '{
"awsvpcConfiguration": {
"subnets": ["subnet-aaa111"],
"securityGroups": ["sg-xyz"],
"assignPublicIp": "ENABLED"
}
}'Confronto dei modelli di costo
I modelli di costo sono fondamentalmente diversi. Tipo di avvio EC2: si paga per le istanze EC2 sottostanti, indipendentemente dal fatto che siano in esecuzione delle attività, ma è possibile usare Reserved Instances o Savings Plans per ottenere sconti e Spot Instances per risparmiare fino al 90% sui carichi di lavoro interrompibili. Fargate: si paga solo per i vCPU e la memoria consumati da ogni attività, al secondo, senza costi per le risorse inattive tra un'attività e l'altra. Per carichi di lavoro con picchi o batch, Fargate è spesso più economico; per carichi di lavoro che mantengono costantemente un'elevata utilizzazione, EC2 con Reserved Instances può risultare più conveniente.
Fargate Spot per risparmiare sui costi
Fargate Spot offre risorse di calcolo Fargate a prezzi notevolmente ridotti (fino al 70% di sconto), in cambio della possibilità che le attività vengano interrotte quando AWS deve recuperare capacità. Fargate Spot è ideale per l'elaborazione batch, le pipeline CI/CD e gli ambienti di sviluppo e staging. Configurate una strategia del provider di capacità per combinare Fargate (on demand) e Fargate Spot: usate base=1 su Fargate per garantire almeno un'attività, quindi impostate valori weight per distribuire la capacità rimanente tra entrambi.
aws ecs create-service \
--cluster 'MyAppCluster' \
--service-name 'BatchService' \
--task-definition 'batch-task:1' \
--desired-count 10 \
--capacity-provider-strategy \
'capacityProvider=FARGATE,weight=1,base=1' \
'capacityProvider=FARGATE_SPOT,weight=4'Quando scegliere il tipo di avvio EC2
Scegliete il tipo di avvio EC2 quando avete bisogno di: istanze con GPU (Fargate offre un supporto limitato per le GPU), tipi di istanza specifici non disponibili in Fargate, configurazioni personalizzate del sistema operativo (ottimizzazione del kernel, driver personalizzati), prestazioni di rete che richiedono gruppi di posizionamento o funzionalità di rete avanzate, container Windows (EC2 supporta i container Windows Server; Fargate supporta Windows, ma con alcune limitazioni) oppure quando eseguite carichi di lavoro con un'utilizzazione costantemente elevata, per i quali le Reserved Instances EC2 offrono un vantaggio economico significativo rispetto alla fatturazione al secondo di Fargate.
Quando scegliere Fargate
Scegliete Fargate quando desiderate: eliminare il sovraccarico di gestione di EC2 (nessun aggiornamento del sistema operativo e nessuno scaling del cluster), pagare solo ciò che utilizzate al secondo, eseguire carichi di lavoro con picchi o batch che non giustificano capacità EC2 inattiva, ottenere un isolamento più efficace delle attività tramite le microVM Firecracker oppure accelerare lo sviluppo concentrandovi esclusivamente sul codice dell'applicazione. Fargate è la scelta predefinita consigliata per i nuovi carichi di lavoro ECS nell'esame SAA-C03, salvo che non venga specificato un requisito particolare per EC2.
Provider di capacità ECS
I provider di capacità astraggono il livello di calcolo dai servizi ECS. Per EC2, un provider di capacità è collegato a un Auto Scaling Group: ECS esegue automaticamente lo scaling dell'ASG quando non è possibile posizionare le attività a causa di capacità insufficiente. Per Fargate, FARGATE e FARGATE_SPOT sono provider di capacità integrati. Definire una strategia del provider di capacità per un servizio consente di combinare capacità on demand e Spot/Fargate Spot, offrendo un controllo dettagliato del compromesso tra costi e disponibilità per ogni carico di lavoro.
Confronto del sovraccarico operativo
Il sovraccarico operativo varia significativamente tra i tipi di avvio. Il tipo di avvio EC2 richiede: selezione e aggiornamento delle AMI, configurazione dell'Auto Scaling di EC2, aggiornamento del sistema operativo tramite SSM o script personalizzati, gestione della capacità delle istanze container e rafforzamento della sicurezza a livello di istanza. Fargate elimina tutti questi aspetti: AWS gestisce l'aggiornamento della piattaforma Fargate, non ci sono istanze da gestire né capacità del cluster da pianificare. Tuttavia, Fargate offre una flessibilità minore per la personalizzazione a livello di sistema operativo e l'ottimizzazione delle prestazioni di rete.
Dimensionamento di CPU e memoria delle attività Fargate
Le definizioni delle attività Fargate devono specificare CPU e memoria scegliendo da un insieme fisso di combinazioni. Valori di CPU: 256, 512, 1024, 2048, 4096, 8192, 16384 (in unità vCPU, dove 1024 = 1 vCPU). La memoria deve rientrare negli intervalli consentiti per ciascun valore di CPU: ad esempio, 256 CPU consente da 512 a 2048 MB di memoria. I container all'interno dell'attività condividono il limite massimo di CPU e memoria dell'attività. È importante dimensionare correttamente le risorse: Fargate fattura esattamente ciò che specificate, quindi il sovradimensionamento comporta uno spreco di denaro senza alcun effettivo vantaggio in termini di prestazioni quando i carichi di lavoro sono vincolati dalla CPU.
# Valid Fargate combinations
# 256 CPU (.25 vCPU): 512, 1024, or 2048 MB
# 512 CPU (.5 vCPU): 1024 to 4096 MB
# 1024 CPU (1 vCPU): 2048 to 8192 MB
# 2048 CPU (2 vCPU): 4096 to 16384 MB
# 4096 CPU (4 vCPU): 8192 to 30720 MBECS Exec per il debugging
ECS Exec consente di aprire una sessione shell interattiva direttamente in un container in esecuzione (sia EC2 sia Fargate), senza SSH o bastion host. Utilizza Session Manager di AWS Systems Manager come componente sottostante. Abilitatelo sul servizio e usate la CLI execute-command per avviare una sessione bash. È uno strumento prezioso per eseguire il debugging dei problemi di produzione nei container. Il ruolo dell'attività deve disporre dell'autorizzazione ssmmessages:CreateControlChannel e delle autorizzazioni SSM correlate.
aws ecs execute-command \
--cluster 'MyAppCluster' \
--task 'abc123def456' \
--container 'myapp' \
--interactive \
--command '/bin/bash'Verifica rapida
Verificate la vostra comprensione dei concetti di AWS Solutions Architect (SAA-C03) trattati in questa lezione.
Riepilogo della lezione
In questa lezione avete appreso che: il tipo di avvio EC2 offre il pieno controllo sui tipi di istanza e sulla configurazione del sistema operativo, al costo di dover gestire l'infrastruttura sottostante; è ideale per GPU, hardware specializzato o carichi di lavoro con un'utilizzazione costantemente elevata; Fargate elimina la gestione dell'infrastruttura grazie alla fatturazione delle attività al secondo e al forte isolamento garantito da Firecracker; è ideale per la maggior parte dei carichi di lavoro web/API e per i processi batch; infine, Fargate Spot riduce i costi fino al 70% per i carichi di lavoro che tollerano le interruzioni. Nella prossima lezione esploreremo Amazon ECR per archiviare e recuperare le immagini dei container.
Domande Frequenti
La lezione «Tipo di avvio EC2 e Fargate a confronto» è gratuita?
Sì — il testo completo di «Tipo di avvio EC2 e Fargate a confronto» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Cosa imparerò in «Tipo di avvio EC2 e Fargate a confronto»?
Confrontare la gestione autonoma delle istanze container EC2 con l'utilizzo di Fargate per eseguire container serverless e comprendere i compromessi in termini di costi Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?
Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Tipo di avvio EC2 e Fargate a confronto»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?
Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Cluster ECS, definizioni dei task e servizi
- Tipo di avvio EC2 e Fargate a confronto
- ECR: archiviazione e recupero delle immagini dei container
- Auto Scaling e bilanciamento del carico dei servizi ECS