Aggiornamento dei parametri del servizio Amazon ECS - 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à.

Aggiornamento dei parametri del servizio Amazon ECS

Dopo aver creato un servizio, a volte potrebbe essere necessario aggiornare i parametri del servizio, ad esempio il numero di attività.

Quando il service scheduler avvia nuove attività, determina il posizionamento delle attività nel cluster con la seguente logica.

  • Determina quali istanze di container nel cluster possono supportare la definizione delle attività del servizio. Ad esempio, hanno la CPU, la memoria, le porte e gli attributi di istanza del contenitore richiesti.

  • Per impostazione predefinita, il service scheduler tenta di bilanciare le attività tra le zone di disponibilità in questo modo, anche se è possibile scegliere una strategia di posizionamento diversa.

    • Ordina le istanze di container valide in base al minor numero di attività in esecuzione per questo servizio nella stessa zona di disponibilità dell'istanza. Ad esempio, se nella zona A è presente un'attività del servizio in esecuzione e nelle zone B e C nessuna, le istanze di container valide nella zona B o C sono considerate ottimali per il posizionamento.

    • Posizionare la nuova attività del servizio in un'istanza di container valida in una zona di disponibilità ottimale (in base alle fasi precedenti), favorendo le istanze di container con il minor numero di attività in esecuzione per questo servizio.

Quando il service scheduler interrompe l'esecuzione delle attività, tenta di mantenere l'equilibrio tra le zone di disponibilità del cluster utilizzando la seguente logica:

  • Ordina le istanze del contenitore in base al maggior numero di attività in esecuzione per questo servizio nella stessa zona di disponibilità dell'istanza. Ad esempio, se nella zona A è presente un'attività del servizio in esecuzione e nelle zone B e C ne sono presenti due, le istanze di container nella zona B o C sono considerate ottimali per l'arresto.

  • Arrestare l'attività del servizio in un'istanza di container in una zona di disponibilità ottimale (in base alle fasi precedenti), favorendo le istanze di container con il maggior numero di attività in esecuzione per questo servizio.

Utilizza l'elenco per determinare se è possibile modificare il parametro del servizio.

Ribilanciamento della zona di disponibilità

Indica se utilizzare il ribilanciamento della zona di disponibilità per il servizio.

È possibile modificare questo parametro per le distribuzioni in sequenza.

Strategia del fornitore di capacità

I dettagli di una strategia di un provider di capacità. È possibile impostare un provider di capacità quando si crea un cluster, si esegue un'attività o si aggiorna un servizio.

Quando si utilizza Fargate, i fornitori di capacità sono FARGATE o. FARGATE_SPOT

Quando utilizzi Amazon EC2, i fornitori di capacità sono gruppi di Auto Scaling.

Puoi cambiare fornitore di capacità per distribuzioni continue e implementazioni blu/verdi.

L'elenco seguente fornisce le transizioni valide:

  • Aggiorna il tipo di lancio Fargate a un provider di capacità di gruppo Auto Scaling.

  • Aggiorna il tipo di EC2 lancio di Amazon a un provider di capacità Fargate.

  • Aggiorna il provider di capacità Fargate a un fornitore di capacità di gruppo Auto Scaling.

  • Aggiorna il fornitore EC2 di capacità Amazon a un fornitore di capacità Fargate.

  • Aggiornate il gruppo Auto Scaling o il provider di capacità Fargate al tipo di avvio. Quando si utilizza la CLI o l'API, si passa un elenco vuoto nel capacityProviderStrategy parametro.

Cluster

Non è possibile modificare il nome del cluster.

Configurazione della distribuzione

La configurazione di distribuzione include gli CloudWatch allarmi e l'interruttore automatico utilizzati per rilevare i guasti e la configurazione richiesta.

L'interruttore di distribuzione determina se una distribuzione del servizio avrà esito negativo se il servizio non riesce a raggiungere uno stato stazionario. Se si utilizza l'interruttore automatico di distribuzione, la distribuzione di un servizio passerà a uno stato di errore e interromperà l'avvio di nuove attività. Se si utilizza l'opzione di rollback, quando la distribuzione di un servizio fallisce, il servizio viene ripristinato all'ultima distribuzione completata correttamente.

Quando aggiorni un servizio che utilizza Amazon ECS circuit breaker, Amazon ECS crea una distribuzione e una revisione del servizio. Queste risorse consentono di visualizzare informazioni dettagliate sulla cronologia dei servizi. Per ulteriori informazioni, consulta Visualizza la cronologia dei servizi utilizzando le distribuzioni di servizi Amazon ECS.

Il pianificatore del servizio utilizza i parametri di percentuale minima di attività integre e di percentuale massima (nella configurazione di implementazione del servizio) per determinare la strategia di distribuzione.

Se un servizio utilizza il tipo di distribuzione rolling update (ECS), la percentuale minima di integrità rappresenta un limite inferiore al numero di attività di un servizio che devono rimanere nello RUNNING stato durante una distribuzione, come percentuale del numero di attività desiderato (arrotondato al numero intero più vicino). Il parametro si applica anche quando tutte le istanze del contenitore sono nello DRAINING stato se il servizio contiene attività che utilizzano il tipo di EC2 avvio. Utilizza questo parametro per eseguire l'implementazione senza impiegare capacità aggiuntiva del cluster. Ad esempio, se il servizio ha un numero desiderato di quattro attività e una percentuale minima di attività integre del 50%, lo scheduler può arrestare due attività esistenti per liberare capacità del cluster prima di avviare due nuove attività. Il servizio considera le attività idonee per i servizi che non utilizzano un sistema di bilanciamento del carico se si trovano nello RUNNING stato. Il servizio considera integre le attività per i servizi che utilizzano un sistema di bilanciamento del carico se si trovano RUNNING nello stato in cui si trovano e vengono segnalate come integre dal sistema di bilanciamento del carico. Il valore predefinito per la percentuale minima di integrità è 100%.

Se un servizio utilizza il tipo di distribuzione rolling update (ECS), il parametro della percentuale massima rappresenta un limite massimo al numero di attività di un servizio consentite STOPPING nello statoPENDING, o durante una distribuzioneRUNNING, come percentuale del numero desiderato di attività (arrotondato per difetto al numero intero più vicino). Il parametro si applica anche quando tutte le istanze del contenitore sono nello DRAINING stato se il servizio contiene attività che utilizzano il tipo di EC2 avvio. Utilizza questo parametro per definire le dimensioni del batch di implementazione. Ad esempio, se il servizio ha un numero desiderato di quattro attività e un valore percentuale massimo del 200%, lo scheduler può avviare quattro nuove attività prima di arrestare le quattro precedenti, a condizione che le risorse del cluster necessarie per questa operazione siano disponibili. Il valore predefinito per la percentuale massima è 200%.

Quando il pianificatore del servizio sostituisce un'attività durante un aggiornamento, se il servizio utilizza un load balancer, rimuove prima l'attività da tale sistema e attende la fine delle connessioni. Quindi, viene emesso l'equivalente del comando docker stop ai container in esecuzione nell'attività. Questo determina un segnale SIGTERM e un timeout della durata di 30 secondi, dopo il quale viene inviato un segnale SIGKILL e i container vengono forzatamente arrestati. Se il container gestisce il segnale SIGTERM normalmente ed esce entro 30 secondi dalla ricezione, non viene inviato un segnale SIGKILL. Il pianificatore del servizio avvia e arresta le attività secondo quanto definito dalle impostazioni di percentuale minima di attività integre e percentuale massima.

Il pianificatore di servizi sostituisce inoltre le attività ritenute non integre dopo l'esito negativo di un controllo dell'integrità del container o di un sistema di bilanciamento del carico del gruppo di destinazione. Questa sostituzione dipende dai parametri di definizione del servizio maximumPercent e desiredCount. Se un'attività è contrassegnata come non integra, il pianificatore di servizi avvierà innanzitutto un'attività di sostituzione. Quindi, accade quanto segue.

  • Se lo stato di integrità dell'attività sostitutiva è pari aHEALTHY, l'utilità di pianificazione del servizio interrompe l'attività non integra

  • Se lo stato di integrità dell'attività di sostituzione è UNHEALTHY, il pianificatore interromperà l'attività di sostituzione non integra o l'attività esistente non integra per far sì che il numero totale delle attività sia pari a desiredCount.

Se il parametro maximumPercent impedisce al pianificatore di avviare un'attività di sostituzione, il pianificatore interromperà un'attività non integra alla volta, in modo casuale, per liberare spazio, e poi avvierà un'attività di sostituzione. Il processo di avvio e arresto continua fino a quando tutte le attività non integre vengono sostituite con attività integre. Dopo aver sostituito tutte le attività non integre e aver avviato solo quelle integre, se il numero totale delle attività supera desiredCount, le attività integre vengono interrotte casualmente fino a quando il numero totale delle attività è pari a desiredCount. Per ulteriori informazioni sui parametri maximumPercent e desiredCount, consulta Parametri di definizione del servizio.

Numero di attività desiderato

Il numero di istanze dell'attività da inserire e mantenere in esecuzione nel servizio.

Se desideri interrompere temporaneamente il servizio, imposta questo valore su 0. Quindi, quando sei pronto per avviare il servizio, aggiorna il servizio con il valore originale.

È possibile modificare questo parametro per le distribuzioni in sequenza e le distribuzioni blu/verdi.

Abilita i tag gestiti

Determina se attivare i tag gestiti di Amazon ECS per le attività del servizio.

Solo le attività avviate dopo l'aggiornamento rifletteranno l'aggiornamento. Per aggiornare i tag di tutte le attività, utilizza l'opzione di distribuzione forzata.

È possibile modificare questo parametro per le distribuzioni in sequenza e le distribuzioni blu/verdi.

Abilita ECS Exec

Determina se viene utilizzato Amazon ECS Exec.

Se non desideri sovrascrivere il valore impostato al momento della creazione del servizio, puoi impostarlo su null durante l'esecuzione di questa azione.

È possibile modificare questo parametro per le distribuzioni in sequenza.

Periodo di grazia per il controllo sanitario

Periodo di tempo, in secondi, durante il quale lo scheduler del servizio Amazon ECS ignora i controlli non corretti di Elastic Load Balancing, VPC Lattice e dello stato dei container dopo il primo avvio di un'attività. Se non si specifica un valore del periodo di tolleranza per il controllo dello stato di salute, viene utilizzato il valore predefinito di. 0 Se non si utilizza nessuno dei controlli sanitari, non healthCheckGracePeriodSeconds viene utilizzato.

Se le attività del servizio impiegano un po' di tempo per iniziare e rispondere ai controlli sanitari, puoi specificare un periodo di tolleranza per il controllo sanitario fino a 2.147.483.647 secondi (circa 69 anni). durante i quali il pianificatore del servizio Amazon ECS ignora lo stato di questi controlli. Questo periodo di tolleranza può evitare che il pianificatore del servizio contrassegni le attività come non integre e le interrompa prima che abbiano il tempo di iniziare.

È possibile modificare questo parametro per le distribuzioni in sequenza e le distribuzioni blu/verdi.

Sistemi di load balancer

È necessario utilizzare un ruolo collegato al servizio quando si aggiorna un sistema di bilanciamento del carico.

Un elenco di oggetti del load balancer Elastic Load Balancing. Contiene il nome del load balancer, il nome del container e la porta del container a cui accedere dal load balancer. Il nome del contenitore è quello che appare in una definizione del contenitore.

Amazon ECS non aggiorna automaticamente i gruppi di sicurezza associati ai sistemi di bilanciamento del carico Elastic Load Balancing o alle istanze di container di Amazon ECS.

Quando aggiungi, aggiorni o rimuovi una configurazione del load balancer, Amazon ECS avvia nuove attività con la configurazione Elastic Load Balancing aggiornata, quindi interrompe le vecchie attività quando le nuove attività sono in esecuzione.

Per i servizi che utilizzano aggiornamenti continui, puoi aggiungere, aggiornare o rimuovere i gruppi target Elastic Load Balancing. È possibile eseguire l'aggiornamento da un singolo gruppo target a più gruppi target e da più gruppi target a un unico gruppo target.

Per i servizi che utilizzano distribuzioni blu/verdi, puoi aggiornare i gruppi target di Elastic Load Balancing utilizzando through. CreateDeployment CodeDeploy Tieni presente che i gruppi target multipli non sono supportati per le distribuzioni blu/verdi. Per ulteriori informazioni, consulta Registrare più gruppi target con un servizio.

Per i servizi che utilizzano il controller di distribuzione esterno, è possibile aggiungere, aggiornare o rimuovere i sistemi di bilanciamento del carico utilizzando. CreateTaskSet Tieni presente che non sono supportati più gruppi di destinazione per le distribuzioni esterne. Per ulteriori informazioni, consulta Registrare più gruppi target con un servizio.

Passa un elenco vuoto per rimuovere i sistemi di bilanciamento del carico.

È possibile modificare questo parametro per le distribuzioni in sequenza.

Configurazione della rete

La configurazione della rete di servizio.

È possibile modificare questo parametro per le distribuzioni in sequenza.

Vincoli di posizionamento

Una serie di oggetti con vincoli di posizionamento delle attività per aggiornare il servizio da utilizzare. Se non viene specificato alcun valore, i vincoli di posizionamento esistenti per il servizio rimarranno invariati. Se questo valore viene specificato, sostituirà tutti i vincoli di posizionamento esistenti definiti per il servizio. Per rimuovere tutti i vincoli di posizionamento esistenti, specificate un array vuoto.

Puoi specificare un massimo di 10 vincoli per ogni attività. Questo limite include i vincoli nella definizione di attività e quelli specificati in fase di runtime.

È possibile modificare questo parametro per le distribuzioni in sequenza e le distribuzioni blu/verdi.

Strategia di posizionamento

La strategia di posizionamento delle attività si riferisce all'aggiornamento del servizio da utilizzare. Se non viene specificato alcun valore, la strategia di posizionamento esistente per il servizio rimarrà invariata. Se questo valore viene specificato, sostituirà la strategia di posizionamento esistente definita per il servizio. Per rimuovere una strategia di posizionamento esistente, specificate un oggetto vuoto.

È possibile modificare questo parametro per le distribuzioni in sequenza e le distribuzioni blu/verdi.

Versione della piattaforma

La versione della piattaforma Fargate su cui funziona il tuo servizio.

Un servizio che utilizza una versione della piattaforma Linux non può essere aggiornato per utilizzare una versione della piattaforma Windows e viceversa.

È possibile modificare questo parametro per le distribuzioni continue.

Propaga i tag

Determina se propagare i tag dalla definizione dell'attività o dal servizio all'attività. Se non viene specificato alcun valore, i tag non vengono propagati.

Solo le attività avviate dopo l'aggiornamento rifletteranno l'aggiornamento. Per aggiornare i tag su tutte le attività, imposta forceNewDeployment sutrue, in modo che Amazon ECS avvii nuove attività con i tag aggiornati.

Puoi modificare questo parametro per le distribuzioni continue e le distribuzioni blu/verdi.

Configurazione Service Connect

La configurazione per Amazon ECS Service Connect. Questo parametro determina il modo in cui il servizio si connette ad altri servizi all'interno dell'applicazione.

È possibile modificare questo parametro per le distribuzioni in sequenza.

Registri di servizio

È necessario utilizzare un ruolo collegato al servizio quando si aggiornano i registri dei servizi.

I dettagli dei registri di rilevamento dei servizi da assegnare a questo servizio. Per ulteriori informazioni, consulta Individuazione dei servizi.

Quando aggiungi, aggiorni o rimuovi la configurazione dei registri di servizio, Amazon ECS avvia nuove attività con la configurazione aggiornata dei registri di servizio, quindi interrompe le vecchie attività quando le nuove attività sono in esecuzione.

Passa un elenco vuoto per rimuovere i registri di servizio.

È possibile modificare questo parametro per le distribuzioni in sequenza.

Definizione dell'attività

La definizione e la revisione dell'attività da utilizzare per il servizio.

Se si modificano le porte utilizzate dai container in una definizione di attività, potrebbe essere necessario aggiornare i gruppi di sicurezza per le istanze del contenitore in modo che funzionino con le porte aggiornate.

Se aggiorni la definizione di attività per il servizio, il nome e la porta del container specificati nella configurazione del sistema di bilanciamento del carico devono rimanere nella definizione di attività.

Il comportamento di estrazione dell'immagine del contenitore è diverso a seconda dei tipi di avvio. Per ulteriori informazioni, consultare uno dei seguenti argomenti:

È possibile modificare questo parametro per le distribuzioni in sequenza.

Configurazione del volume

I dettagli del volume che eraconfiguredAtLaunch. Se impostato su true, questo parametro configura l'allegato del task Amazon EBS durante la distribuzione. Puoi configurare dimensioni, VolumeType, IOPS, throughput, snapshot e crittografia in Configuration. ServiceManaged EBSVolume Il name volume deve corrispondere a quello indicato nella definizione dell'attività. name Se impostato su null, non viene attivata alcuna nuova distribuzione. Altrimenti, se questa configurazione è diversa da quella esistente, attiva una nuova distribuzione.

È possibile modificare questo parametro per le distribuzioni in sequenza.

Configurazione VPC Lattice

La configurazione VPC Lattice per il tuo servizio. Questo definisce il modo in cui il servizio si integra con VPC service-to-service Lattice per la comunicazione.

È possibile modificare questo parametro per le distribuzioni in sequenza.

AWS CDK considerazioni

AWS CDK Non tiene traccia degli stati delle risorse. Non sa se stai creando o aggiornando un servizio. I clienti devono utilizzare la botola di fuga per accedere direttamente al costrutto ecs Service L1.

Per informazioni sugli escape hatch, consulta Personalizza i costrutti della AWS Construct Library nella Guida per sviluppatori v2.AWS Cloud Development Kit (AWS CDK)

Per migrare il servizio esistente al costrutto, procedi come segueecs.Service:

  1. Utilizzate la botola di fuga per accedere al costrutto L1. Service

  2. Impostate manualmente le seguenti proprietà nel costrutto L1. Service

    Se il tuo servizio utilizza la EC2 capacità di Amazon:

    • daemon?

    • placementConstraints?

    • placementStrategies?

    • Se utilizzi la modalità awsvpc di rete, devi impostare i securityGroups? costrutti vpcSubnets? e.

    Se il tuo servizio utilizza Fargate:

    • FargatePlatformVersion

    • I vpcSubnets? e i securityGroups? costrutti.

  3. Imposta launchType come segue:

    const cfnEcsService = service.node.findChild('Service') as ecs.CfnService; cfnEcsService.launchType = "FARGATE";

Per migrare da un tipo di avvio a un provider di capacità, procedi come segue:

  1. Utilizzate la porta di fuga per accedere al costrutto Service L1.

  2. Aggiungete il costrutto. capacityProviderStrategies?

  3. Distribuire il servizio.