Come posso proteggere la mia istanza di container Amazon ECS con best practice e tecniche di rafforzamento?

7 minuti di lettura
0

Le mie istanze Amazon Elastic Container Service (Amazon ECS) o le istanze Amazon Elastic Compute Cloud (Amazon EC2) sottostanti incontrano problemi quali terminazioni impreviste, riavvii, problemi di dimensionamento o perdita di dati. Desidero proteggere la mia istanza di container Amazon ECS.

Breve descrizione

Se utilizzi il tipo di avvio Amazon EC2 in Amazon ECS, i problemi delle istanze EC2 come terminazioni, riavvii o problemi di prestazioni influiscono sul container. Per risolvere questi problemi, implementa le best practice per proteggere le tue istanze di container Amazon ECS e risolvere i problemi di manutenzione, dimensionamento e risoluzione dei problemi di Amazon EC2.

Risoluzione

Nota: se si verificano errori durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Proteggi le tue istanze di container Amazon ECS

Limita l'accesso dell'utente root dell'account AWS

Non utilizzare l'account root a meno che non sia necessario, ad esempio per modificare le impostazioni dell'account o modificare la password dell'utente root. Utilizza invece i ruoli e le policy di AWS Identity and Access Management (IAM) per configurare un accesso che rispetti il principale del privilegio minimo. Inoltre, configura l'autenticazione a più fattori (MFA) per l'account root.

Implementa il rafforzamento della sicurezza

Utilizza i gruppi di sicurezza per limitare il traffico in entrata e in uscita solo agli indirizzi IP e alle porte richiesti. Applica le patch e aggiorna regolarmente le tue istanze di container Amazon ECS. Puoi anche utilizzare Amazon Inspector per identificare le vulnerabilità.

Utilizza la crittografia per i dati sensibili in transito, come HTTPS, e inattivi, come i volumi Amazon Elastic Block Storage (Amazon EBS). Per ulteriori informazioni, consulta Protezione dell'infrastruttura.

Utilizza AWS Systems Manager per semplificare l'applicazione di patch e la manutenzione delle istanze di container Amazon ECS. Utilizza l'agente AWS Systems Manager (agente SSM) preinstallato su AMI (Amazon Machine Image) ottimizzate per Amazon ECS per implementare flussi di lavoro di gestione delle patch automatizzati. In ciò rientrano le finestre di manutenzione programmata e le strategie di sostituzione delle istanze. Per ulteriori informazioni, consulta Automate patching by replacing Amazon ECS container instances ( Automatizza l'applicazione delle patch sostituendo le istanze di container Amazon ECS).

Attiva la registrazione e il monitoraggio

Configura AWS CloudTrail per registrare le attività delle API. È consigliabile configurare allarmi di Amazon CloudWatch per avvisarti di valori elevati per CpuUtilization, DiskReadOps, DiskWriteOps, NetworkIn o NetworkOut.

Per monitorare le prestazioni dell'istanza di container e l'utilizzo delle risorse, attiva Container Insights.

Imposta una strategia di backup e ripristino

Utilizza snapshot di Amazon EBS o crea AMI come parte di un piano di ripristino di emergenza. Per ulteriori informazioni, consulta Backup e ripristino di Amazon EC2 utilizzando Backup AWS.

Importante: se elimini un volume EBS, puoi ripristinarlo solo se hai creato uno snapshot Amazon EBS o un backup AMI.

Per raccogliere ed esportare metadati, log delle istanze e dati delle applicazioni, utilizza SSH per connetterti alla tua istanza. Quindi esegui il seguente comando AWS CLI describe-instances per esportare i metadati dell'istanza:

aws ec2 describe-instances \
--instance-ids i-abcdxyz\
-- query "Reservations[].Instances[]" \
-- output text > file.txt

Per esportare i log delle istanze, esegui il seguente comando get-console-output:

aws ec2 get-console-output --instance-id i-abcdxyz --output text

Nota: nei comandi precedenti, sostituisci i-abcdxyz con l'ID della tua istanza.

Risolvi i problemi relativi alle istanze EC2

Risolvi i problemi relativi a terminazioni e riavvii imprevisti

Utilizza il draining gestito delle istanze di Amazon ECS per assicurarti che i carichi di lavoro si interrompano correttamente e passino a istanze stabili durante le interruzioni spot o eventi simili.

Per sicurezza e prestazioni, Amazon EC2 pianifica regolarmente eventi di manutenzione ordinaria per le tue istanze, come arresti e avvii, riavvii e ritiri. Puoi utilizzare Dashboard AWS Health per tenere traccia di questi eventi che possono richiedere diversi minuti per essere completati. Per informazioni sulle azioni che è possibile intraprendere dopo gli eventi di manutenzione ordinaria, consulta Azioni consigliate per le istanze Amazon EC2 interessate da eventi pianificati.

Se si verifica la chiusura di un'istanza spot, consulta Perché Amazon EC2 ha interrotto la mia istanza spot?

Amazon EC2 potrebbe terminare la tua istanza come parte della manutenzione programmata. Per gestire questo tipo di terminazione delle istanze, è consigliabile utilizzare gli hook del ciclo di vita di Amazon EC2 Auto Scaling.

Risolvi i problemi relativi all'utilizzo elevato delle risorse

Per verificare l'utilizzo elevato della CPU o della memoria, esamina i log dell'applicazione e le metriche CpuUtilization, NetworkIn, NetworkOut, DiskReadOps e DiskWriteOps di CloudWatch per la tua istanza. Inoltre, controlla la metrica MemoryUtilized di Container Insights.

Se la tua configurazione non soddisfa le esigenze di risorse delle tue istanze, aumenta verticalmente le tue istanze.

Oppure utilizza i provider di capacità Amazon ECS per dimensionare e ottimizzare dinamicamente le risorse di calcolo del tuo cluster. Per creare un provider di capacità, utilizza la console Amazon ECS. Oppure esegui un comando create-capacity-provider simile all'esempio seguente:

aws ecs create-capacity-provider --name "example-capacity=provider" --auto-scaling-group-provider "autoScalingGroupArn=arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup,managedScaling={status=ENABLED,targetCapacity=100,minimumScalingStepSize=1,maximumScalingStepSize=100},managedTerminationProtection=ENABLED"

Risolvi i problemi di spazio su disco insufficiente

Lo spazio di archiviazione primario dell'istanza EC2 che esegue le attività Amazon ECS può esaurirsi per i seguenti motivi:

  • Log dell'applicazione
  • Spazio di archiviazione eccessivo dell’immagine del container
  • File temporanei creati eseguendo istanze di container

Tieni presente che ogni file o directory utilizza un inode indipendentemente dalla sua dimensione. Di conseguenza, se hai più file di piccole dimensioni, potresti superare la tua quota di inode. Se superi la tua quota di inode, non puoi creare nuovi file anche in presenza di spazio su disco disponibile.

Utilizza le configurazioni di Amazon ECS per automatizzare la pulizia di attività e immagini e rimuovere le attività interrotte e le immagini Docker inutilizzate. Inoltre, utilizza la variabile ECS_RESERVED_MEMORY per assicurarti che le attività non consumino tutta la memoria disponibile.

Per ripulire automaticamente le immagini vecchie o inutilizzate nei tuoi repository, utilizza le policy del ciclo di vita di Amazon Elastic Container Registry (Amazon ECR). Per ripulire oggetti inutilizzati come immagini, istanze di container, volumi e reti, utilizza i comandi prune di Docker. Per ulteriori informazioni, consulta Prune unused Docker objects (Elimina gli oggetti Docker inutilizzati) sul sito web di Docker Docs.

Per visualizzare lo spazio su disco utilizzato da tutti i file system montati, esegui il seguente comando:

df -h

Per visualizzare lo spazio su disco utilizzato da un file system specifico, esegui il seguente comando:

df -h /

Nota: il comando precedente mostra i dati solo per il file system root.

Potrebbero verificarsi problemi relativi alle risorse perché hai pochi inode disponibili. Per verificare l'utilizzo degli inode, esegui il seguente comando:

df -i

Per visualizzare lo spazio su disco totale utilizzato da una directory specifica, esegui il seguente comando:

du -sh /path/to/directory

Nota: sostituisci directory con il nome della tua directory.

Per elencare le directory o i file più grandi dell'applicazione, esegui il seguente comando:

du -ah /path/to/directory | sort -rh | head -n 10

Nota: il comando precedente elenca i primi 10 file o directory più grandi. Sostituisci 10 con il numero di file e directory di grandi dimensioni che desideri visualizzare e directory con il nome della tua directory.

Per controllare la dimensione di ogni sottodirectory nella tua directory, esegui il seguente comando:

du -h --max-depth=1

Per ottimizzare la capacità disponibile, utilizza Parco istanze spot o i provider di capacità per le tue istanze EC2. Per ulteriori informazioni, consulta Powering your Amazon ECS clusters with Spot Fleet (Potenziamento dei cluster Amazon ECS con un parco istanze spot).

Informazioni correlate

Tolleranza e isolamento degli errori

In che modo posso risolvere i problemi di connessione alla mia istanza Linux Amazon EC2 tramite SSH?

Crittografia di Amazon EBS

Best practice per Amazon EC2

Best practice di Amazon ECS

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 mesi fa