

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

# Personalizza una flotta di Amazon GameLift Servers container
<a name="containers-design-fleet"></a>

Gli argomenti di questa sezione descrivono alcune delle funzionalità opzionali per i contenitori Amazon GameLift Servers gestiti. Puoi scegliere di utilizzare una o tutte queste funzionalità.

**Topics**
+ [Imposta i limiti delle risorse](#containers-design-fleet-limits)
+ [Comprendi l'allocazione della memoria della flotta di container](#containers-design-fleet-memory-allocation)
+ [Configurazione NVMe di Drive Access](#containers-design-fleet-nvme)
+ [Designare contenitori essenziali](#containers-design-fleet-essential)
+ [Configurare le connessioni di rete](#containers-custom-network)
+ [Imposta i controlli sanitari per i container](#containers-design-fleet-health)
+ [Imposta le dipendenze del container](#containers-design-fleet-dependencies)
+ [Configura una flotta di container](#containers-design-fleet-config)

## Imposta i limiti delle risorse
<a name="containers-design-fleet-limits"></a>

Per ogni gruppo di contenitori, puoi determinare la quantità di memoria e potenza di calcolo di cui il gruppo di contenitori ha bisogno per eseguire il software. Amazon GameLift Serverssi basa su queste informazioni per gestire le risorse all'interno del gruppo di contenitori. Inoltre, utilizza queste informazioni per calcolare quanti gruppi di container di server di gioco può contenere un'immagine della flotta. Puoi anche impostare limiti per singoli contenitori.

È possibile impostare un limite massimo di memoria e potenza di calcolo per un gruppo di contenitori. Per impostazione predefinita, queste risorse sono condivise da tutti i contenitori del gruppo. È possibile personalizzare ulteriormente la gestione delle risorse impostando limiti per i singoli contenitori. 

**Imposta limiti opzionali per i singoli contenitori**  
L'impostazione di limiti di risorse specifici per i contenitori consente di esercitare un maggiore controllo su come i singoli contenitori possono utilizzare le risorse del gruppo. Se non imposti limiti specifici del contenitore, tutti i contenitori del gruppo condividono le risorse del gruppo. La condivisione offre una maggiore flessibilità nell'utilizzo delle risorse laddove sono necessarie. Inoltre, aumenta la possibilità che i processi competano tra loro e causino il fallimento dei container.  
Imposta una delle seguenti `ContainerDefinition` proprietà per qualsiasi contenitore.  
+ `MemoryHardLimitMebibytes`— Imposta un limite massimo di memoria per il contenitore. Se il contenitore supera questo limite, si verifica un riavvio.
+ `Vcpu`limit: riserva una quantità minima di risorse vCPU per l'uso esclusivo del contenitore. Il contenitore ha sempre a disposizione la quantità riservata. Può superare questo minimo in qualsiasi momento, se sono disponibili risorse aggiuntive. (1024 unità CPU equivalgono a 1 vCPU.)

**Imposta i limiti totali delle risorse per un gruppo di contenitori**  
Se si impostano limiti per singoli contenitori, potrebbe essere necessario modificare la quantità di memoria e di risorse vCPU necessarie al gruppo di contenitori. L'obiettivo è allocare risorse sufficienti per ottimizzare le prestazioni del server di gioco. Amazon GameLift Serversutilizza questi limiti per calcolare come impacchettare i gruppi di container dei server di gioco su un'istanza di fleet. Li utilizzerai anche per scegliere un tipo di istanza per una flotta di container.  
Calcola la memoria totale e la vCPU necessarie per un gruppo di contenitori. Considera i seguenti aspetti:  
+ Quali sono tutti i processi che vengono eseguiti su tutti i contenitori del gruppo di contenitori? Somma le risorse necessarie per questi processi. Prendi nota di eventuali limiti specifici del contenitore.
+ Quanti processi simultanei dei server di gioco intendi eseguire in ciascun gruppo di container? Lo determini nell'immagine del contenitore del server di gioco. 
In base alla stima dei requisiti del gruppo di contenitori, imposta le seguenti `ContainerGroupDefinition` proprietà:   
+ `TotalMemoryLimitMebibytes`— Imposta un limite massimo di memoria per il gruppo di contenitori. Tutti i contenitori del gruppo condividono la memoria allocata. Se si impostano limiti per singoli contenitori, il limite di memoria totale deve essere uguale o superiore al limite di memoria specifico del contenitore più elevato.
+ `TotalVcpuLimit`— Imposta un limite massimo di vCPU per il gruppo di contenitori. Tutti i contenitori del gruppo condividono le risorse CPU allocate. Se imposti limiti dei singoli contenitori, il limite totale della CPU deve essere uguale o superiore alla somma di tutti i limiti della CPU specifici del contenitore. Come procedura ottimale, valuta la possibilità di impostare questo valore per raddoppiare la somma dei limiti della CPU del contenitore.

**Scenario di esempio**  
Supponiamo di definire un gruppo di contenitori di server di gioco con i seguenti tre contenitori:   
+ Il contenitore A è il nostro contenitore per server di gioco. Stimiamo i requisiti di risorse per un server di gioco a 512 MiB e 1024 CPU. Prevediamo che il contenitore esegua 1 processo server. Poiché questo contenitore esegue il nostro software più importante, non abbiamo impostato alcun limite di memoria o limite di riserva per vCPU.
+ Il contenitore B è un contenitore di supporto con requisiti di risorse stimati in 1024 MiB e 1536 CPU. Abbiamo impostato un limite di memoria di 2048 MiB e un limite di riserva della CPU di 1024 CPU.
+ Il contenitore C è un altro contenitore di supporto. Abbiamo impostato un limite di memoria rigida di 512 MiB e un limite di riserva della CPU di 512 CPU.
Utilizzando queste informazioni, impostiamo i seguenti limiti totali per il gruppo di contenitori:  
+ Limite di memoria totale: 7680 MiB. Questo valore supera il limite di memoria massimo (1024 MiB).
+ Limite totale della CPU: 13312 CPU. Questo valore supera la somma del limite della CPU (1024\+512 CPU).

## Comprendi l'allocazione della memoria della flotta di container
<a name="containers-design-fleet-memory-allocation"></a>

Quando si Amazon GameLift Servers distribuiscono gruppi di container su un'istanza del parco istanze, non tutta la memoria dell'istanza è disponibile per i container. Amazon GameLift Serversriserva una parte della memoria dell'istanza per il sistema operativo, l'agente Amazon ECS e altri servizi di supporto. La quantità di memoria riservata varia in base alla memoria totale del tipo di istanza. La comprensione di questo sovraccarico consente di configurare le definizioni dei gruppi di contenitori per utilizzare appieno le risorse disponibili.

### Formula di sovraccarico di memoria
<a name="containers-design-fleet-memory-formula"></a>

Amazon GameLift Serverscalcola la memoria disponibile per i gruppi di contenitori utilizzando i seguenti passaggi:

1. **Determina la percentuale del buffer di memoria.** Amazon GameLift Serversriserva una percentuale della memoria totale dell'istanza in base ai seguenti livelli:    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/gameliftservers/latest/developerguide/containers-design-fleet.html)

1. **Calcola la memoria disponibile.** Sottrai la memoria riservata dalla memoria totale dell'istanza:

   `AvailableMemory = InstanceMemory - round(InstanceMemory × BufferPercentage)`

1. **Sottrai la memoria del gruppo di contenitori per istanza.** Se il tuo parco veicoli utilizza un gruppo di container per istanza, sottrai tale numero dalla memoria disponibile. `TotalMemoryLimitMebibytes` Un gruppo di container per istanza viene eseguito su ogni istanza del parco veicoli.

   `AvailableMemory = AvailableMemory - PerInstanceCGD.TotalMemoryLimitMebibytes`

1. **Account per il sovraccarico del router di log.** Se la registrazione è abilitata per la flotta, Amazon GameLift Servers riserva altri 50 MiB per gruppo di container di server di gioco per il log router.

1. **Calcola il numero massimo di gruppi di contenitori di server di gioco.** Il numero massimo di gruppi di contenitori di server di gioco che rientrano nell'istanza in base alla memoria è:

   `MaxGroupsByMemory = floor(AvailableMemory / (GameServerCGD.TotalMemoryLimitMebibytes + LogRouterMemory))`

   `LogRouterMemory`Dov'è 50 MiB se la registrazione è abilitata o 0 se la registrazione è disabilitata.

**Nota**  
La memoria è solo uno dei fattori che determinano il numero di gruppi di contenitori di server di gioco contenuti in un'istanza. Amazon GameLift Serversconsidera anche la capacità della vCPU e le porte di connessione disponibili e utilizza il minimo di tutti e tre i calcoli.

### Esempio di calcolo della memoria
<a name="containers-design-fleet-memory-example"></a>

Prendi in considerazione una flotta che utilizza un'`c5.xlarge`istanza (8.192 MiB di memoria totale) con la registrazione abilitata:

1. La memoria dell'istanza è di 8.192 MiB, che rientra nel livello 5.000-9.999 (buffer al 6%)

1. Memoria riservata = rotonda (8.192 × 0,06) = 492 MiB

1. Memoria disponibile = 8.192 - 492 = 7.700 MiB

1. Se si utilizza un gruppo di contenitori per istanza con `TotalMemoryLimitMebibytes` 512: memoria disponibile = 7.700 - 512 = 7.188 MiB

1. Se ogni gruppo di container di server `TotalMemoryLimitMebibytes` di gioco ha 1.024: MaxGroupsByMemory = floor (7.188/(1.024 \+ 50)) = floor (7.188/1.074) = 6

### Memoria disponibile per tipo di istanza
<a name="containers-design-fleet-memory-reference"></a>

La tabella seguente mostra la memoria totale e la memoria disponibile (dopo il Amazon GameLift Servers buffer) per i tipi di istanza di uso comune. Utilizzate questi valori come punto di partenza per configurare le definizioni dei gruppi di contenitori. La colonna *Memoria disponibile* mostra la memoria disponibile per tutti i gruppi di contenitori sull'istanza, prima di sottrarre qualsiasi sovraccarico del gruppo di contenitori o del router di registro per istanza.


| Tipo di istanza | Memoria totale (MiB) | Percentuale del buffer | Memoria disponibile (MiB) | 
| --- | --- | --- | --- | 
| c5.large | 4,096 | 8% | 3.768 | 
| c5.xlarge | 8,192 | 6% | 7.700 | 
| c5.2xlarge | 16,384 | 5% | 15.565 | 
| c5.4xlarge | 32,768 | 5% | 31.130 | 
| c5.9xlarge | 73,728 | 5% | 70.042 | 
| c5.12xlarge | 98.304 | 4% | 94.372 | 
| c5.18xlarge | 147.456 | 4% | 141.558 | 
| c5.24xlarge | 196.608 | 4% | 188,744 | 
| m5.large | 8,192 | 6% | 7.700 | 
| m5.xlarge | 16,384 | 5% | 15.565 | 
| m5.2xlarge | 32,768 | 5% | 31.130 | 
| m5.4xlarge | 65.536 | 5% | 62.259 | 
| m5.8xlarge | 131.072 | 4% | 125.829 | 
| m5.12xlarge | 196.608 | 4% | 188,744 | 
| r5.large | 16,384 | 5% | 15.565 | 
| r5.xlarge | 32,768 | 5% | 31.130 | 
| r5.2xlarge | 65.536 | 5% | 62.259 | 
| r5.4xlarge | 131.072 | 4% | 125.829 | 
| c6i.large | 4,096 | 8% | 3.768 | 
| c6i.xlarge | 8,192 | 6% | 7.700 | 
| c6i.2xlarge | 16,384 | 5% | 15.565 | 
| c6i.4xlarge | 32,768 | 5% | 31.130 | 
| c6i.8xlarge | 65.536 | 5% | 62.259 | 
| c7i.large | 4,096 | 8% | 3.768 | 
| c7i.xlarge | 8,192 | 6% | 7.700 | 
| c7i.2xlarge | 16,384 | 5% | 15.565 | 
| c7i.4xlarge | 32,768 | 5% | 31.130 | 
| c7i.8xlarge | 65.536 | 5% | 62.259 | 
| m7i.large | 8,192 | 6% | 7.700 | 
| m7i.xlarge | 16,384 | 5% | 15.565 | 
| m7i.2xlarge | 32,768 | 5% | 31.130 | 
| m7i.4xlarge | 65.536 | 5% | 62.259 | 
| m7i.8xlarge | 131.072 | 4% | 125.829 | 
| m7i.12xlarge | 196.608 | 4% | 188,744 | 
| r7i.large | 16,384 | 5% | 15.565 | 
| r7i.xlarge | 32,768 | 5% | 31.130 | 
| r7i.2xlarge | 65.536 | 5% | 62.259 | 
| r7i.4xlarge | 131.072 | 4% | 125.829 | 

Per i tipi di esempio non elencati qui, puoi calcolare la memoria disponibile utilizzando la formula sopra descritta. Consulta la [documentazione sui tipi di istanze Amazon EC2](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-type-specifications.html) per la memoria totale del tipo di istanza scelto.

## Configurazione NVMe di Drive Access
<a name="containers-design-fleet-nvme"></a>

Nelle istanze di tipo d, l' NVMe unità viene montata automaticamente `/data` nella directory durante l'avvio dell'host. Per consentire ai contenitori di accedere allo storage SSD, imposta la seguente proprietà: `ContainerGroupDefinition` `MountPoints`
+ `InstancePath`— Impostato su per `/data` fare riferimento all' NVMe unità montata automaticamente sull'istanza host.
+ `AccessLevel`— Scegliete il livello di accesso appropriato per le esigenze del contenitore (ad esempio, READ\_ONLY o READ\_WRITE).
+ `ContainerPath`— (Facoltativo) Specificate il percorso in cui verrà montato il percorso dell'istanza all'interno del contenitore. Se non viene specificato, il valore predefinito è il percorso dell'istanza.

Per ulteriori informazioni sui punti di montaggio, consulta [ContainerMountPoint](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ContainerMountPoint.html)Amazon GameLift Servers API Reference.

## Designare contenitori essenziali
<a name="containers-design-fleet-essential"></a>

Per un gruppo di contenitori per istanza, designa ogni contenitore come essenziale o non essenziale. I gruppi di contenitori per istanza devono avere almeno un contenitore di supporto essenziale. Il contenitore essenziale svolge il lavoro fondamentale del gruppo di contenitori. Si prevede che il contenitore essenziale sia sempre in esecuzione. Se fallisce, l'intero gruppo di contenitori si riavvia. 

Imposta la `ContainerDefinition` proprietà su `Essential` true o false per ogni contenitore.

## Configurare le connessioni di rete
<a name="containers-custom-network"></a>

Puoi personalizzare l'accesso alla rete per consentire al traffico esterno di connettersi a qualsiasi container di una flotta di container. Ad esempio, devi stabilire connessioni di rete al contenitore che esegue i processi del server di gioco, in modo che i client di gioco possano unirsi e giocare al gioco. I client di gioco si connettono ai server di gioco utilizzando porte e indirizzi IP.

In una flotta di container, la connessione tra client e server non è diretta. Internamente, un processo in un container ascolta su una porta *container*. *Esternamente, il traffico in entrata si connette a un'istanza della flotta utilizzando una porta di connessione.* Amazon GameLift Serversmantiene le mappature tra le porte container interne e le porte di connessione rivolte verso l'esterno, in modo che il traffico in entrata venga indirizzato al processo corretto sull'istanza. Per recuperare le mappature correnti delle porte per uno specifico gruppo di contenitori, chiamate l'operazione. [DescribeContainerGroupPortMappings](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeContainerGroupPortMappings.html) Per ulteriori informazioni sulla visualizzazione delle mappature delle porte, vedere. [Visualizza le mappature delle porte del contenitore](containers-remote-access.md#containers-remote-access-port-mappings)

Amazon GameLift Serversfornisce un ulteriore livello di controllo per le connessioni di rete. Ogni flotta di container dispone di un'impostazione *delle autorizzazioni in entrata*, che consente di controllare l'accesso a ciascuna porta di connessione rivolta verso l'esterno. Ad esempio, è possibile rimuovere le autorizzazioni per tutte le porte di connessione per impedire l'accesso ai container della flotta.

Puoi aggiornare le autorizzazioni in entrata, le porte di connessione e le porte container di una flotta.

**avvertimento**  
Se fornisci un servizio personalizzato InstanceConnectionPortRange o InstanceInboundPermissions non Amazon GameLift Servers gestirai più nessuno dei due valori per la tua flotta. È necessario impostare entrambi i campi per evitare comportamenti indefiniti.

**Imposta gli intervalli di porte del contenitore**  
Configura gli intervalli di porte del contenitore come parte della definizione di ogni contenitore. Questo è un parametro obbligatorio per la definizione di un gruppo di contenitori. È necessario configurare un numero sufficiente di porte per ospitare tutti i processi in esecuzione simultanea che richiedono l'accesso esterno. Alcuni contenitori non avranno bisogno di porte.  
Il contenitore del server di gioco, che gestisce i server di gioco, necessita di una porta per ogni processo del server di gioco in esecuzione contemporaneamente. Il processo del server di gioco ascolta sulla porta assegnata e lo segnala a. Amazon GameLift Servers

**Imposta gli intervalli delle porte di connessione**  
Configura la tua flotta di container con un set di porte di connessione. Le porte di connessione forniscono l'accesso esterno alle istanze del parco istanze che eseguono i container. Amazon GameLift Serversassegna le porte di connessione e le mappa alle porte dei container in base alle esigenze.  
Per impostazione predefinita, Amazon GameLift Servers calcola il numero di porte necessarie per tutti i gruppi di container e imposta un intervallo di porte per soddisfarle. Ti consigliamo vivamente di utilizzare valori Amazon GameLift Servers calcolati, che vengono aggiornati quando distribuisci gli aggiornamenti a una definizione di gruppo di contenitori. Se è necessario personalizzare gli intervalli di porte di connessione, utilizzare le seguenti indicazioni.  
Quando crei una flotta di container, definisci un intervallo di porte di connessione (vedi [ ContainerFleet: InstanceConnectionPortRange](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ContainerFleet.html)). Assicurati che l'intervallo contenga un numero sufficiente di porte da mappare a ogni porta container definita in tutti i container di entrambi i gruppi di container della flotta. Per calcolare le porte di connessione minime necessarie, utilizza la seguente formula:   
`[Total number of container ports defined for containers in the game server container group] * [Number of game server container groups per instance] + [Total number of container ports defined for containers in the per-instance container group]`  
È consigliabile raddoppiare il numero minimo di porte di connessione.   
Il numero di porte di connessione può potenzialmente limitare il numero di gruppi di contenitori di server di gioco per istanza. Se una flotta dispone di un numero sufficiente di porte di connessione per un gruppo di container di server di gioco per istanza, Amazon GameLift Servers implementerà un solo gruppo di contenitori di server di gioco, anche se le istanze dispongono di una potenza di calcolo sufficiente per più gruppi di contenitori di server di gioco.

**Imposta le autorizzazioni in entrata**  
Le autorizzazioni in entrata controllano l'accesso esterno a una flotta di container specificando quali porte di connessione aprire per il traffico in entrata. Puoi utilizzare questa impostazione per attivare e disattivare l'accesso alla rete di una flotta in base alle esigenze.   
Per impostazione predefinita, Amazon GameLift Servers calcola il numero di porte necessarie per tutti i gruppi di container e imposta un intervallo di porte per soddisfarle. Ti consigliamo vivamente di utilizzare valori Amazon GameLift Servers calcolati, che vengono aggiornati quando distribuisci gli aggiornamenti a una definizione di gruppo di contenitori. Se è necessario personalizzare gli intervalli di porte di connessione, utilizzare le seguenti indicazioni.  
Quando crei una flotta di container, definisci un set di autorizzazioni in entrata (vedi [ ContainerFleet: InstanceInboundPermissions](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ContainerFleet.html)). Le porte di autorizzazione in entrata devono corrispondere agli intervalli di porte di connessione della flotta.   
Poiché le porte container vengono selezionate casualmente tra le InstanceConnectionPortRange, per garantire che le connessioni di sessione possano essere effettuate, tutte le porte in entrata InstanceConnectionPortRange devono essere coperte da porte in InstanceInboundPermissions

**Scenario di esempio**  
Questo esempio illustra come impostare tutte e tre le proprietà della connessione di rete.  
+ Il gruppo di container di server di gioco della nostra flotta ha 1 contenitore, che esegue 1 processo di server di gioco. 

  Nella definizione del gruppo di contenitori del server di gioco, impostiamo il `PortConfiguration` parametro per questo contenitore come segue:

  ```
  "PortConfiguration": {
    "ContainerPortRanges": [ { "FromPort": 10, "ToPort": 20, "Protocol": "TCP"} ]  }
  ```
+ La nostra flotta dispone anche di un gruppo di container per istanza con 1 container. Ha 1 processo che richiede l'accesso alla rete. Nella definizione del contenitore per istanza, impostiamo il `PortConfiguration` parametro per questo contenitore come segue:

  ```
  "PortConfiguration": {
    "ContainerPortRanges": [ { "FromPort": 25, "ToPort": 25, "Protocol": "TCP"} ]  }
  ```
+ La nostra flotta è configurata con 20 gruppi di container di server di gioco per istanza di flotta. Alla luce di queste informazioni, possiamo usare la formula per calcolare il numero di porte di connessione di cui abbiamo bisogno: 
  + Minimo: **21 porte** [1 porta contenitore per server di gioco \* 20 gruppi di contenitori di server di gioco per istanza \+ 1 porta container per istanza]
  + Migliore pratica: **42 porte [porte** minime\* 2]

  Durante la creazione della flotta di container, impostiamo il `InstanceConnectionPortRange` parametro come segue:

  ```
  "InstanceConnectionPortRange": { "FromPort": 1010, "ToPort": 1071 }
  ```
+ Vogliamo consentire l'accesso a tutte le porte di connessione disponibili. Durante la creazione della flotta di container, impostiamo il `InstanceInboundPermissions` parametro come segue: 

  ```
  "InstanceInboundPermissions": [ 
    {"FromPort": 1010, "ToPort": 1071, "IpRange": "10.24.34.0/23", "Protocol": "TCP"} ]
  ```

## Imposta i controlli sanitari per i container
<a name="containers-design-fleet-health"></a>

Un contenitore si riavvia automaticamente se si verifica un errore del terminale e smette di funzionare. Se un contenitore è considerato essenziale, richiede il riavvio dell'intero gruppo di contenitori. 

Tutti i contenitori del server di gioco vengono automaticamente considerati essenziali. I container di supporto possono essere considerati essenziali, ma devono disporre di un meccanismo per segnalare lo stato. Puoi impostare controlli di integrità anche per i contenitori di supporto non essenziali.

È possibile definire criteri personalizzati aggiuntivi per misurare lo stato dei contenitori e utilizzare un controllo dello stato per verificare tali criteri. Per impostare un controllo dello stato del contenitore, puoi definirlo in un'immagine del contenitore Docker o nella definizione del contenitore. Se imposti un controllo dello stato nella definizione del contenitore, questo sovrascrive qualsiasi impostazione nell'immagine del contenitore.

Imposta le seguenti `SupportContainerDefinition` proprietà per il controllo dello stato del contenitore: 
+ `Command`— Fornisci un comando che controlli alcuni aspetti dello stato del contenitore. Siete voi a decidere quali criteri utilizzare per misurare lo stato di salute. Il comando deve restituire un valore di uscita pari a 1 (non salutare) o 0 (sano). 
+ `StartPeriod`— Specificare un ritardo iniziale prima che gli errori del controllo sanitario inizino a contare. Questo ritardo dà al contenitore il tempo di avviare i propri processi.
+ `Interval`— Decidi con che frequenza eseguire il comando health check. Con quale rapidità desiderate rilevare e risolvere un guasto del contenitore?
+ `Timeout`— Decidi per quanto tempo attendere l'esito positivo o negativo prima di riprovare il comando health check. Quanto tempo deve impiegare per il completamento del comando di controllo dello stato di salute?
+ `Retries`— Quante volte è necessario riprovare il comando health check prima di registrare un errore?

## Imposta le dipendenze del container
<a name="containers-design-fleet-dependencies"></a>

All'interno di ogni gruppo di contenitori è possibile impostare le dipendenze tra i contenitori in base allo stato del contenitore. Una dipendenza influisce sul momento in cui il contenitore dipendente può avviarsi o chiudersi in base allo stato di un altro contenitore. 

Un caso d'uso chiave per le dipendenze consiste nella creazione di sequenze di avvio e chiusura per il gruppo di contenitori. 

Ad esempio, potresti volere che il contenitore A venga avviato per primo e venga completato correttamente prima dell'avvio dei contenitori B e C. A tale scopo, create innanzitutto una dipendenza per il contenitore B dal contenitore A, a condizione che il contenitore A venga completato correttamente. Quindi crea una dipendenza per il contenitore C sul contenitore A con la stessa condizione. Le sequenze di avvio si verificano in ordine inverso rispetto all'arresto.

## Configura una flotta di container
<a name="containers-design-fleet-config"></a>

Quando crei una flotta di container, prendi in considerazione i seguenti punti decisionali. La maggior parte di questi punti dipende dall'architettura e dalla configurazione del container.

**Decidi dove vuoi distribuire la tua flotta**  
In generale, vuoi schierare le tue flotte geograficamente vicino ai giocatori per ridurre al minimo la latenza. Puoi distribuire la tua flotta di container su qualsiasi dispositivo che supporti. Regione AWS Amazon GameLift Servers Se desideri distribuire lo stesso server di gioco in altre località geografiche, puoi aggiungere località remote alla flotta, tra cui Regioni AWS Local Zones. Per una flotta con più sedi, puoi regolare la capacità in modo indipendente in ogni sede del parco veicoli. Per ulteriori informazioni sulle sedi del parco veicoli supportate, consulta[Amazon GameLift Serverssedi di assistenza](gamelift-regions.md).  
Prendi in considerazione l'idea [UDP ping beacon](reference-udp-ping-beacons.md) di raccogliere dati sulla latenza di rete in varie aree geografiche per anticipare la latenza tra i dispositivi dei giocatori e le potenziali sedi del parco veicoli. Questi endpoint speciali accettano messaggi UDP anziché i tradizionali ping ICMP, fornendo misurazioni accurate della latenza per aiutare a selezionare le posizioni ottimali del parco.

**Scegli un tipo e una dimensione di istanza per il tuo parco istanze**  
Amazon GameLift Serverssupporta un'ampia gamma di tipi di istanze Amazon EC2, tutte disponibili per l'uso con una flotta di container. La disponibilità e il prezzo del tipo di istanza variano in base alla località. È possibile visualizzare un elenco dei tipi di istanze supportati, filtrati per posizione, nella Amazon GameLift Servers console (in **Risorse, Istanze e quote di servizio**).   
Quando scegli un tipo di istanza, considera innanzitutto la famiglia di istanze. Le famiglie di istanze offrono varie combinazioni di CPU, memoria, archiviazione e funzionalità di rete. Ottieni maggiori informazioni sulle [famiglie di istanze EC2](https://aws.amazon.com/ec2/instance-types/). All'interno di ogni famiglia hai una gamma di dimensioni di istanze tra cui scegliere. Considerate i seguenti aspetti quando selezionate la dimensione di un'istanza:   
+ Qual è la dimensione minima dell'istanza in grado di supportare il tuo carico di lavoro? Utilizza queste informazioni per eliminare i tipi di istanza troppo piccoli.
+ Quali sono le dimensioni dei tipi di istanza più adatte alla tua architettura di container? Idealmente, dovresti scegliere una dimensione che possa ospitare più copie del gruppo di contenitori del tuo server di gioco con uno spreco minimo di spazio.
+ Quale granularità di scalabilità è utile per il tuo gioco? La capacità di Scale Fleet prevede l'aggiunta o la rimozione di istanze e ogni istanza rappresenta la capacità di ospitare un numero specifico di sessioni di gioco. Considera quanta capacità desideri aggiungere o rimuovere con ogni istanza. Se la domanda dei giocatori varia di migliaia di minuti in minuto, potrebbe essere opportuno utilizzare istanze molto grandi in grado di ospitare centinaia o migliaia di sessioni di gioco. Al contrario, potresti preferire un controllo di ridimensionamento più preciso con tipi di istanze più piccoli.
+ Sono disponibili risparmi sui costi in base alle dimensioni? Potresti scoprire che il costo di alcuni tipi di istanze varia in base alla località a causa della disponibilità.

**Imposta altre impostazioni opzionali del parco veicoli**  
Puoi utilizzare le seguenti funzionalità opzionali durante la configurazione di una flotta di container:   
+ Configura i server di gioco per accedere ad altre AWS risorse. Per informazioni, consulta [Connect il server di gioco Amazon GameLift Servers ospitato ad altre AWS risorse](gamelift-sdk-server-resources.md).
+ Proteggi le sessioni di gioco con giocatori attivi dalle interruzioni premature durante un evento a scala ridotta.
+ Limita il numero di sessioni di gioco che un individuo può creare sulla flotta entro un periodo di tempo limitato.