

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

# Architettura Beanstalk Cluster
<a name="beanstalk-cluster-concepts"></a>

Beanstalk Cluster utilizza gli stessi concetti di applicazione, versione dell'applicazione, ambiente e opzioni di configurazione Elastic Beanstalk di Beanstalk Standard. Beanstalk Standard è il tipo di ambiente. EC2-based Beanstalk Cluster utilizza un livello di elaborazione e una superficie di configurazione diversi. Questo argomento descrive le differenze per aspetto e identifica il tipo di ambiente applicabile.

## Modello di calcolo
<a name="beanstalk-cluster-compute"></a>

In Beanstalk Standard, Elastic Beanstalk lancia le istanze Amazon Elastic Compute Cloud (Amazon EC2) in un gruppo Auto Scaling dedicato all'ambiente. L'applicazione viene eseguita direttamente su tali istanze. In un ambiente Beanstalk Cluster, Elastic Beanstalk esegue invece l'applicazione come immagine contenitore su un cluster Amazon EKS che può essere condivisa dai tuoi ambienti Beanstalk Cluster. Elastic Beanstalk crea e gestisce il cluster. Elastic Beanstalk pianifica l'applicazione sul cluster. Elastic Beanstalk isola ogni ambiente del cluster e riconcilia il numero di repliche delle applicazioni in modo che corrispondano ai valori configurati. Non si crea un cluster, si sceglie su quale cluster viene eseguito un ambiente o si seleziona la relativa versione di Kubernetes.

Diversi ambienti possono essere eseguiti sullo stesso cluster Amazon EKS. Elastic Beanstalk inserisce un ambiente nel cluster che serve le sottoreti VPC configurate. Crea un cluster la prima volta che queste sottoreti vengono utilizzate; vedi. [Raggruppamento degli ambienti](#beanstalk-cluster-clusters-sharing) Amazon EKS Auto Mode fornisce la capacità dei nodi. Aggiunge e rimuove nodi per adattarli ai contenitori pianificati. Poiché il cluster può essere condiviso e la capacità dei nodi è gestita da Amazon EKS, il conteggio delle istanze non viene configurato tramite il `aws:autoscaling:asg` namespace. Invece, il numero di repliche delle applicazioni viene impostato con le `max-replica` opzioni `min-replica` and nel namespace. `aws:elasticbeanstalk:eks:environment:autoscaling` Per i limiti della replica e i trigger che modificano il conteggio delle repliche, vedere. [Scalabilità degli ambienti Beanstalk Cluster](configuring-cluster-scaling.md)

Elastic Beanstalk risolve la configurazione dell'ambiente in base alle impostazioni delle opzioni fornite e applica la configurazione risolta quando crea o aggiorna l'ambiente. Quando la stessa opzione di configurazione viene fornita più di una volta, vince l'ultima occorrenza. Per modificare la configurazione, aggiorna le impostazioni delle opzioni.

## Differenze rispetto a Beanstalk Standard
<a name="beanstalk-cluster-differences"></a>

La tabella seguente riassume le differenze rivolte ai clienti tra Beanstalk Standard e un ambiente Beanstalk Cluster. Ogni riga rimanda all'argomento che tratta in modo approfondito il concetto di Elastic Beanstalk.


| Aspetto | Beanstalk Standard | Ambiente Beanstalk Cluster | 
| --- | --- | --- | 
| Calcolo | Istanze Amazon EC2 dedicate in un gruppo Auto Scaling configurato tramite i namespace. aws:autoscaling:\* | Contenitori pianificati su un cluster Amazon EKS che possono essere condivisi dai tuoi ambienti Beanstalk Cluster. Elastic Beanstalk isola ogni ambiente del cluster. I nodi sono forniti da Amazon EKS Auto Mode. | 
| Dimensionamento | Istanze Amazon EC2 aggiunte e rimosse da un gruppo Auto Scaling, con trigger e azioni pianificate configurati tramite i namespace. aws:autoscaling:\* Consulta [Ridimensionamento automatico delle istanze dell'ambiente Elastic Beanstalk](using-features.managing.as.md). | Repliche di applicazioni aggiunte e rimosse entro i max-replica limiti min-replica e in base alla CPU, alla memoria, a una pianificazione o a una metrica riportata dal tuo endpoint. Consulta [Scalabilità degli ambienti Beanstalk Cluster](configuring-cluster-scaling.md). | 
| Artefatto di distribuzione | Un pacchetto di sorgenti che Elastic Beanstalk esegue su un'AMI di piattaforma (stack di soluzioni). Consulta [Piattaforme supportate da Elastic Beanstalk](concepts.platforms.md). | Un'immagine del contenitore in Amazon Elastic Container Registry (Amazon ECR). L'immagine viene fornita direttamente o viene fornita la fonte per la compilazione di Elastic Beanstalk in un'immagine. Consulta [Creazione di immagini di container per ambienti Beanstalk Cluster](beanstalk-cluster-app-versions.md). | 
| Concetto di piattaforma | Uno stack di soluzioni gestite (sistema operativo, server Web e runtime del linguaggio su un'AMI). Consulta [Piattaforme supportate da Elastic Beanstalk](concepts.platforms.md). | Nessuno stack di soluzioni o AMI. Il runtime è definito dall'immagine del contenitore e dalla versione del cluster creata da Elastic Beanstalk. | 
| Policy di distribuzione | All-at-oncedistribuzioni, continue o immutabili configurate tramite il namespace. aws:elasticbeanstalk:command | Un aggiornamento progressivo (impostazione predefinita) o tutto in una volta, configurato con l'strategyopzione nel namespace. aws:elasticbeanstalk:eks:environment:deployment Il valore dell'opzione per tutto in una volta è. Recreate | 
| Namespace di configurazione | Namespace classici come e. aws:autoscaling:\* aws:elasticbeanstalk:environment Consulta [Opzioni di configurazione](command-options.md). | I namespace. aws:elasticbeanstalk:eks:\* Non si applica nessuno dei classici namespace di calcolo. | 
| Integrità | Segnalato dall'host manager e dal load balancer su ogni istanza. | Per-instance lo stato di salute non viene segnalato. Con un Application Load Balancer, l'integrità include le metriche del load balancer valutate da Elastic Beanstalk. Conload-balancer-type=None, tale valutazione del tasso di richiesta, del tasso di errore e della latenza non si applica. Consulta [Monitoraggio degli ambienti Beanstalk Cluster](monitoring-cluster-environments.md). | 

## Customer-provided e risorse gestite dal servizio
<a name="beanstalk-cluster-resources"></a>

Elastic Beanstalk crea e gestisce il cluster Amazon EKS che esegue un ambiente Beanstalk Cluster. I ruoli del cluster e del nodo AWS Identity and Access Management (IAM) richiesti da Amazon EKS sono forniti dal cliente. Ti consigliamo di utilizzare i nomi dei ruoli e le politiche AWS gestite descritti in[Autorizzazioni per Beanstalk Cluster](beanstalk-cluster-permissions.md), poiché Elastic Beanstalk richiede che ogni ambiente di un cluster fornisca gli stessi ruoli. È inoltre possibile fornire un ruolo applicativo per l'applicazione in esecuzione tramite Amazon EKS Pod Identity. Il ruolo dell'applicazione viene selezionato nella console Elastic Beanstalk durante la creazione dell'ambiente. Per il modello di responsabilità IAM completo e la procedura del ruolo dell'applicazione, vedere. [Autorizzazioni per Beanstalk Cluster](beanstalk-cluster-permissions.md)

Le sottoreti VPC per l'ambiente sono opzionali. Quando le sottoreti vengono omesse, Elastic Beanstalk utilizza le sottoreti pubbliche del VPC predefinito. Il set di sottoreti determina quale cluster esegue l'ambiente. Per l'assegnazione dei cluster e l'infrastruttura gestita da Elastic Beanstalk, vedere. [Raggruppamento degli ambienti](#beanstalk-cluster-clusters-sharing)

Elastic Beanstalk gestisce l'applicazione sul cluster creato dal servizio. Distribuisce l'immagine del contenitore e applica aggiornamenti continui tramite il namespace. `aws:elasticbeanstalk:eks:environment:deployment` Riconcilia il numero in esecuzione di repliche delle applicazioni con i limiti e della `min-replica` configurazione. `max-replica` Segnala lo stato di integrità a livello di ambiente tramite gli stati di integrità descritti in. [Monitoraggio degli ambienti Beanstalk Cluster](monitoring-cluster-environments.md) Elastic Beanstalk tiene traccia di ogni cluster a cui assegna gli ambienti come gestito dai servizi.

**Importante**  
Elastic Beanstalk assegna gli ambienti solo ai cluster che corrispondono alla configurazione gestita dai servizi prevista. Se l'infrastruttura non corrisponde più a quella configurazione, Elastic Beanstalk smette di selezionare il cluster per i nuovi ambienti. Le modifiche all'ambiente vengono apportate tramite le operazioni e la configurazione di Elastic Beanstalk.

## Requisiti e limitazioni delle applicazioni
<a name="beanstalk-cluster-when-to-use"></a>

Un ambiente Beanstalk Cluster richiede un'applicazione che può essere eseguita come immagine contenitore e come una o più repliche identiche e intercambiabili. Un sistema di bilanciamento del carico è opzionale. Quando un load balancer è configurato, distribuisce le richieste tra le repliche delle applicazioni. Un servizio Web o un'API senza stato le cui repliche non hanno uno stato locale che deve sopravvivere a un riavvio soddisfa questo requisito. La porta di richiesta, le richieste di CPU e memoria, il numero di repliche delle applicazioni e il comportamento di distribuzione sono configurati tramite le opzioni. `aws:elasticbeanstalk:eks:*` Elastic Beanstalk fornisce la capacità del cluster tramite Amazon EKS Auto Mode.

Verifica i seguenti requisiti e limitazioni dell'applicazione prima di creare un ambiente Beanstalk Cluster:
+ L'archiviazione locale non è persistente. Ogni copia dell'applicazione dispone di una memoria temporanea che viene persa al riavvio della copia. Un'applicazione che scrive caricamenti, memorizza nella cache o file di lavoro sul disco locale e richiede che sopravvivano al riavvio è incompatibile senza una memoria permanente esterna.
+ Le richieste vengono distribuite tra le repliche dell'applicazione.
+ Elastic Beanstalk crea un'immagine del contenitore dal sorgente per i linguaggi supportati. Puoi anche fornire un Dockerfile o un'immagine precompilata. Consulta [Creazione di immagini di container per ambienti Beanstalk Cluster](beanstalk-cluster-app-versions.md).

## Esempio di configurazione
<a name="beanstalk-cluster-example"></a>

La AWS CLI richiesta seguente imposta la porta della richiesta, la richiesta di memoria, il numero di repliche in esecuzione e il comportamento di distribuzione per un ambiente Beanstalk Cluster. Le impostazioni utilizzano i namespace. `aws:elasticbeanstalk:eks:*`

```
$ aws elasticbeanstalk update-environment \
    --environment-name my-cluster-env \
    --option-settings \
        Namespace=aws:elasticbeanstalk:eks:environment,OptionName=service-port,Value=8080 \
        Namespace=aws:elasticbeanstalk:eks:environment,OptionName=memory,Value=1Gi \
        Namespace=aws:elasticbeanstalk:eks:environment,OptionName=load-balancer-type,Value=ALB \
        Namespace=aws:elasticbeanstalk:eks:environment:autoscaling,OptionName=min-replica,Value=3 \
        Namespace=aws:elasticbeanstalk:eks:environment:autoscaling,OptionName=max-replica,Value=3 \
        Namespace=aws:elasticbeanstalk:eks:environment:deployment,OptionName=strategy,Value=RollingUpdate \
        Namespace=aws:elasticbeanstalk:eks:environment:deployment:strategy:rolling,OptionName=max-surge,Value=25% \
        Namespace=aws:elasticbeanstalk:eks:environment:deployment:strategy:rolling,OptionName=max-unavailable,Value=0
```

L'`strategy`opzione accetta `RollingUpdate` o`Recreate`, che la console mostra come aggiornamento continuo e come tutto in una volta. Con`RollingUpdate`, limita il `max-surge` numero di repliche aggiuntive che Elastic Beanstalk avvia durante una distribuzione. L'`max-unavailable`opzione limita il numero di repliche esistenti che rimuove alla volta. Ogni opzione accetta un conteggio o una percentuale. Il `memory` valore utilizza la notazione quantitativa di Kubernetes, ad esempio o. `1Gi` `512Mi` Per il set completo di opzioni, consulta. [Opzioni di configurazione per ambienti Beanstalk Cluster](command-options-general-eks.md)

## Raggruppamento degli ambienti
<a name="beanstalk-cluster-clusters-sharing"></a>

Elastic Beanstalk raggruppa gli ambienti Beanstalk Cluster in cluster in base alle sottoreti VPC che utilizzano:
+ Gli ambienti nello stesso AWS account che utilizzano lo stesso set di sottoreti vengono eseguiti sullo stesso cluster. * *
+ Un ambiente che utilizza un diverso set di sottoreti viene eseguito su un cluster diverso. * *

Il primo ambiente creato con un determinato set di sottoreti fa sì che Elastic Beanstalk crei un cluster per esso, il che richiede circa dieci minuti. Elastic Beanstalk lo riporta negli eventi dell'ambiente:

```
INFO  Creating CloudFormation stack for cluster infrastructure. This is a one-time operation and generally takes about 10 minutes. stack='beanstalk-cluster-{{uuid}}'
INFO  Starting cluster assignment. environment='my-cluster-env'
INFO  Successfully completed cluster assignment. environment='my-cluster-env' clusterArn='arn:aws:eks:us-east-1:{{111122223333}}:cluster/beanstalk-cluster-{{uuid}}'
```

Elastic Beanstalk colloca ambienti successivi che utilizzano le stesse sottoreti su quel cluster esistente. I loro eventi riportano l'assegnazione senza il messaggio di creazione dello stack. Elastic Beanstalk nomina sia il cluster che lo stack che lo crea. AWS CloudFormation `beanstalk-cluster-{{uuid}}`

L'ordine in cui Elastic Beanstalk considera le sottoreti non ha importanza; le stesse sottoreti in un ordine diverso sono lo stesso set. Solo il set di sottoreti seleziona il cluster. Quando un cluster è già registrato per il set di subnet, le impostazioni dei ruoli del cluster e del nodo fornite devono corrispondere ai ruoli registrati per quel cluster. Elastic Beanstalk rifiuta le impostazioni di ruolo in conflitto; gli ARN con ruoli diversi non selezionano un cluster diverso. Fornisci anche il ruolo di osservabilità ed Elastic Beanstalk lo convalida rispetto al cluster nello stesso modo. Il ruolo applicativo opzionale appartiene all'ambiente e può differire da un ambiente all'altro. Configuralo con la procedura di creazione dell'ambiente in. [Configura un ruolo dell'applicazione](beanstalk-cluster-permissions.md#beanstalk-cluster-permissions-application-role)

Elastic Beanstalk non limita il numero di ambienti che condividono un cluster. Amazon EKS Auto Mode aggiunge nodi per adattarsi ai contenitori pianificati nel cluster. La condivisione del cluster non aggiunge un limite di scalabilità specifico dell'ambiente. Ogni ambiente rimane soggetto ai limiti di replica o scalabilità automatica configurati, alle quote di servizio applicabili e alla capacità disponibile. Per eseguire un ambiente su un cluster separato, crealo con un diverso set di sottoreti.

**Importante**  
Non è possibile modificare le sottoreti o i ruoli di cluster, nodo e osservabilità di un ambiente Beanstalk Cluster esistente. Elastic Beanstalk rifiuta tale aggiornamento anziché spostare l'ambiente in un cluster diverso e segnala: per `Changes to EKS cluster configuration (subnets and IAM roles) are not currently supported for an existing environment. Please revert these option settings to continue.` spostare un'applicazione in sottoreti o ruoli diversi, crea un nuovo ambiente con le impostazioni desiderate, quindi scambia i due CNAME di ambiente. Consulta [Blue/Green implementazioni con Elastic Beanstalk](using-features.CNAMESwap.md). Decidi quali sottoreti e ruoli del cluster utilizza un ambiente quando lo crei. Consulta [Guida introduttiva a Beanstalk Cluster](beanstalk-cluster-getting-started.md).

## Isolamento tra ambienti che condividono l'elaborazione
<a name="beanstalk-cluster-isolation-pointer"></a>

Le sottoreti sono il confine principale tra gli ambienti. Poiché il set di sottoreti seleziona il cluster, assegnando a un gruppo di ambienti le proprie sottoreti si ottengono il proprio cluster, i propri nodi e la propria rete. All'interno di un singolo cluster, Elastic Beanstalk isola il traffico di rete tra gli ambienti Beanstalk Cluster per impostazione predefinita e le opzioni nel `aws:elasticbeanstalk:eks:environment` namespace consentono di consentire ad ambienti specifici di comunicare o di collocare un ambiente su nodi dedicati.

Per conoscere il confine offerto da ciascuna scelta, le opzioni che lo ampliano e ciò che un cluster condiviso non separa, consulta. [Multi-tenancy per ambienti Beanstalk Cluster](beanstalk-cluster-multi-tenancy.md)

## Configurazione dell'infrastruttura gestita
<a name="beanstalk-cluster-clusters-config"></a>

Elastic Beanstalk crea ogni cluster con una configurazione fissa che non si sceglie:


| Impostazione | Cosa configura Elastic Beanstalk | 
| --- | --- | 
| Versione di Kubernetes | Elastic Beanstalk seleziona la versione al momento della creazione del cluster. Elastic Beanstalk crea un nuovo cluster con la versione Kubernetes più recente supportata. Un ambiente su un cluster esistente esegue la versione già presente nel cluster. Tale versione rimane fissa per tutta la durata del cluster. | 
| Capacità del nodo | Amazon EKS Auto Mode, che aggiunge e rimuove nodi per adattarli ai contenitori pianificati nel cluster. Node-capacity la configurazione è gestita da un servizio. | 
| accesso all'infrastruttura del cluster | Service-managed. Configura l'ambiente tramite l'API Elastic Beanstalk, la console Elastic Beanstalk o Elastic Beanstalk. AWS CLI | 
| Componenti aggiuntivi del cluster | Elastic Beanstalk installa e blocca i componenti aggiuntivi su cui si basa il tuo ambiente. Quando Elastic Beanstalk introduce una nuova versione aggiuntiva aggiunta, applica l'aggiornamento al cluster durante una successiva creazione o aggiornamento dell'ambiente. Non sei tu a pianificare o applicare l'aggiornamento da solo. | 

Poiché Elastic Beanstalk li imposta da solo, è possibile configurare * l'applicazione * tramite le `aws:elasticbeanstalk:eks:*` opzioni anziché configurare il cluster. Consulta [Opzioni di configurazione per ambienti Beanstalk Cluster](command-options-general-eks.md).

## Deriva della configurazione del cluster
<a name="beanstalk-cluster-clusters-drift"></a>

Elastic Beanstalk gestisce un cluster creato solo finché tale cluster corrisponde alla configurazione gestita dai servizi prevista. Se l'infrastruttura non corrisponde più a quella configurazione, Elastic Beanstalk rileva una deviazione della configurazione, sospende la manutenzione del cluster e segnala un evento ambientale:

```
ERROR  Cluster drift detected for environment 'my-cluster-env'. {{what changed}}. Service will skip cluster maintenance for this environment.
```

Mentre un cluster è in fase di deriva:
+ Elastic Beanstalk non inserisce nuovi ambienti su di esso.
+ Elastic Beanstalk non lo mantiene più, inclusi gli aggiornamenti delle versioni dei componenti aggiuntivi gestiti dal servizio.
+ Gli aggiornamenti agli ambienti già in esecuzione su di esso non riescono.

Drift è recuperabile. Per ripristinare, ripristina la modifica che l'ha provocata, in modo che il cluster corrisponda nuovamente alla configurazione prevista da Elastic Beanstalk. L'evento drift nomina ciò che è cambiato, indicando cosa ripristinare. Elastic Beanstalk rivaluta il cluster alla successiva operazione di ambiente e riprende a gestirlo quando la configurazione corrisponde. Riprova l'operazione che non è riuscita.

Se non riesci a ripristinare la configurazione prevista, contatta l' AWS assistenza.

Per evitare deviazioni, apporta modifiche all'ambiente tramite le operazioni e le opzioni di configurazione di Elastic Beanstalk anziché modificando direttamente il cluster. Consulta [Opzioni di configurazione per ambienti Beanstalk Cluster](command-options-general-eks.md).

## Eliminazione del cluster
<a name="beanstalk-cluster-clusters-lifecycle"></a>

Elastic Beanstalk pianifica l'eliminazione del cluster tre ore dopo la chiusura dell'ultimo ambiente. Se si crea un altro ambiente con le stesse sottoreti durante questo intervallo, Elastic Beanstalk annulla la pulizia in sospeso e riutilizza il cluster esistente.

**Per verificare l'eliminazione dell'infrastruttura gestita dal servizio**

1. Prima di terminare l'ultimo ambiente, registra l'ARN del cluster tramite Elastic Beanstalk. Per l'infrastruttura Cluster creata dal servizio, il CloudFormation modello imposta il nome del cluster sul nome dello stack. Il nome dopo la barra finale dell'ARN del cluster identifica quindi lo stack per la verifica dell'eliminazione in sola lettura in questa procedura:

   ```
   $ aws elasticbeanstalk describe-environment-resources \
       --environment-name my-cluster-env \
       --query 'EnvironmentResources.Cluster.Name'
   ```

   Il comando restituisce l'ARN del cluster. Il nome dello stack è la parte dell'ARN dopo la barra finale.
**Importante**  
Il nome dello stack derivato è solo per il CloudFormation waiter di sola lettura e descrive le operazioni mostrate di seguito. Non passarlo a`delete-stack`, né a nessun'altra operazione`update-stack`, che modifichi l'infrastruttura gestita dal servizio.

   Registra l'ARN del cluster e il nome dello stack derivato; li utilizzi per i passaggi di verifica in sola lettura che seguono.

1. Termina l'ambiente e verifica che funzioni `Terminated` seguendo i passaggi indicati. [Terminazione di un ambiente Elastic Beanstalk](using-features.terminating.md) La pulizia del cluster inizia separatamente dopo l'intervallo di riutilizzo di tre ore; la terminazione dell'ambiente non attende l'eliminazione del cluster.

1. Dopo tre ore, utilizza un responsabile IAM con l'autorizzazione per descrivere lo stack creato dal servizio. Il CloudFormation cameriere utilizza descrizioni dello stack in sola lettura ogni 30 secondi per un massimo di 60 minuti e riesce quando lo stack non esiste più:

   ```
   $ aws cloudformation wait stack-delete-complete \
       --stack-name {{cluster-stack-name}}
   ```

   Il cameriere ha successo quando la pila non esiste più. Se fallisce, lo stack esiste ancora dopo la scadenza; usa `aws cloudformation describe-stacks` and `aws cloudformation describe-stack-events` per controllare lo stato dello stack e gli eventuali eventi. `DELETE_FAILED`

1. Se il cameriere segnala che lo stack esiste ancora dopo la scadenza, determina se un altro ambiente ha riutilizzato il cluster. Elenca gli ambienti Beanstalk Cluster attivi nell'account e nella regione:

   ```
   $ aws elasticbeanstalk describe-environments \
       --query "Environments[?Tier.Name=='Cluster' && Tier.Type=='EKS'].EnvironmentName"
   ```

   Per ogni ambiente elencato, leggi l'ARN del relativo cluster:

   ```
   $ aws elasticbeanstalk describe-environment-resources \
       --environment-name {{environment-name}} \
       --query 'EnvironmentResources.Cluster.Name'
   ```

   Un ambiente il cui ARN del cluster corrisponde all'ARN del cluster registrato significa che l'eliminazione è stata annullata per il riutilizzo. Se nessun ambiente corrisponde, utilizza lo stato dello stack e gli eventi per diagnosticare le risorse conservate`DELETE_FAILED`. Non eliminare o modificare manualmente uno stack gestito dal servizio. Contatta l' AWS assistenza se lo stack rimane dopo la scadenza senza un ambiente attivo o un errore risolvibile. CloudFormation 