

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

# Personalizzalo in base alla tua soluzione di hosting di giochi
<a name="customize-solution-intro"></a>

Con una soluzione di hosting di giochi di base, utilizza i seguenti argomenti per personalizzarla e migliorarla per migliorare l'esperienza del giocatore, ottimizzare i costi e aggiungere funzionalità avanzate. Questa sezione descrive varie opzioni di personalizzazione organizzate in base al componente su cui influiscono principalmente. Scegli le personalizzazioni più adatte ai requisiti di gioco e alla base di giocatori.

**Argomenti**
+ [Personalizzazioni della build del server di gioco](customize-game-server-builds.md)
  + [Connect il server di gioco Amazon GameLift Servers ospitato ad altre AWS risorse](gamelift-sdk-server-resources.md)
  + [Consenti al tuo server di gioco di accedere ai dati Amazon GameLift Servers della flotta](gamelift-sdk-server-fleetinfo.md)
  + [Configurare il peering VPC per Amazon GameLift Servers](vpc-peering.md)
+ [Sessioni dei giocatori e personalizzazioni del matchmaking](customize-player-sessions-matchmaking.md)
  + [Genera giocatore IDs](player-sessions-player-identifiers.md)
  + [Aggiungi FlexMatch matchmaking a Amazon GameLift Servers](gamelift-match-intro.md)
+ [Personalizzazioni del posizionamento delle sessioni di gioco](customize-game-session-placement.md)
  + [Personalizza una coda di sessioni di gioco](queues-design.md)
  + [Dare la priorità al posizionamento delle sessioni di gioco](queues-design-priority.md)
  + [Crea una coda per le istanze Spot](spot-tasks.md)
+ [Personalizzazioni delle risorse di hosting](fleets-design.md)
  + [Scegli le risorse di elaborazione per una flotta gestita](gamelift-compute.md)
  + [Personalizza una flotta di Amazon GameLift Servers container](containers-design-fleet.md)
  + [Riduci i costi di hosting dei giochi con le flotte Spot](fleets-spot.md)
  + [Ottimizza la configurazione del runtime del server di gioco su server gestiti Amazon GameLift Servers](fleets-multiprocess.md)
  + [Collabora con l'Amazon GameLift Serversagente](integration-dev-iteration-agent.md)
  + [Designazione astratta e Amazon GameLift Servers della flotta con un alias](aliases-intro.md)

# Personalizzazioni della build del server di gioco
<a name="customize-game-server-builds"></a>

Le personalizzazioni della build dei server di gioco offrono l'opportunità di migliorare le funzionalità del server di gioco, incluso l'utilizzo di altri AWS servizi. Queste personalizzazioni estendono le funzionalità del server di gioco oltre l'hosting di base per supportare funzionalità e integrazioni avanzate.

# Connect il server di gioco Amazon GameLift Servers ospitato ad altre AWS risorse
<a name="gamelift-sdk-server-resources"></a>

Quando crei una build di server di gioco da distribuire su Amazon GameLift Servers flotte, potresti volere che le applicazioni della build di gioco comunichino direttamente e in modo sicuro con altre AWS risorse di tua proprietà. Poiché Amazon GameLift Servers gestisce le tue flotte di giochi che ospitano giochi, devi concedere un accesso Amazon GameLift Servers limitato a queste risorse e servizi.

Alcuni scenari di esempio includono: 
+ Utilizza un CloudWatch agente Amazon per raccogliere metriche, log e tracce dalle flotte EC2 e dalle flotte Anywhere gestite.
+ Invia i dati di log dell'istanza ad Amazon CloudWatch Logs.
+ Ottieni file di gioco archiviati in un bucket Amazon Simple Storage Service (Amazon S3).
+ Leggi e scrivi dati di gioco (come modalità di gioco o inventario) archiviati in un database Amazon DynamoDB o in un altro servizio di archiviazione dati.
+ Invia segnali direttamente a un'istanza utilizzando Amazon Simple Queue Service (Amazon SQS).
+ Accedi a risorse personalizzate distribuite e in esecuzione su Amazon Elastic Compute Cloud (Amazon EC2).

Amazon GameLift Serverssupporta questi metodi per stabilire l'accesso:
+ [Accedi alle AWS risorse con un ruolo IAM](#gamelift-sdk-server-resources-roles)
+ [Accedi alle AWS risorse con il peering VPC](#gamelift-sdk-server-resources-vpc)

## Accedi alle AWS risorse con un ruolo IAM
<a name="gamelift-sdk-server-resources-roles"></a>

Utilizza un ruolo IAM per specificare chi può accedere alle tue risorse e impostare limiti a tale accesso. Le parti fidate possono «assumere» un ruolo e ottenere credenziali di sicurezza temporanee che le autorizzano a interagire con le risorse. Quando le parti effettuano richieste API relative alla risorsa, devono includere le credenziali.

Per configurare l'accesso controllato da un ruolo IAM, esegui le seguenti attività: 

1. [Crea il ruolo IAM](#gamelift-sdk-server-resources-roles-create)

1. [Modifica le applicazioni per acquisire credenziali](#gamelift-sdk-server-resources-roles-apps)

1. [Associa una flotta al ruolo IAM](#gamelift-sdk-server-resources-roles-fleet)

### Crea il ruolo IAM
<a name="gamelift-sdk-server-resources-roles-create"></a>

In questo passaggio, crei un ruolo IAM, con una serie di autorizzazioni per controllare l'accesso alle AWS risorse e una politica di fiducia che concede Amazon GameLift Servers i diritti di utilizzo delle autorizzazioni del ruolo.

Per istruzioni su come configurare il ruolo IAM, consulta. [Configurare un ruolo di servizio IAM per Amazon GameLift Servers](setting-up-role.md) Quando crei la politica delle autorizzazioni, scegli i servizi, le risorse e le azioni specifici con cui le tue applicazioni devono lavorare. Come procedura ottimale, limita il più possibile l'ambito delle autorizzazioni. 

Dopo aver creato il ruolo, prendi nota dell'Amazon Resource Name (ARN) del ruolo. È necessario il ruolo ARN durante la creazione della flotta.

### Modifica le applicazioni per acquisire credenziali
<a name="gamelift-sdk-server-resources-roles-apps"></a>

In questo passaggio, configuri le tue applicazioni per acquisire credenziali di sicurezza per il ruolo IAM e utilizzarle quando interagisci con le tue risorse. AWS Consulta la tabella seguente per determinare come modificare le applicazioni in base (1) al tipo di applicazione e (2) alla versione SDK del server con cui il gioco comunica. Amazon GameLift Servers


|  | Applicazioni per server di gioco | Altre applicazioni | 
| --- | --- | --- | 
|  **Utilizzo della versione 5.x dell'SDK del server**  |  Richiama il metodo SDK del server `GetFleetRoleCredentials()` dal codice del server di gioco.  |  Aggiungi codice all'applicazione per estrarre le credenziali da un file condiviso sull'istanza fleet.  | 
|  **Utilizzando la versione 4 o precedente dell'SDK del server**  |   Chiama AWS Security Token Service (AWS STS) `[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)` con il ruolo ARN.  |  Chiama AWS Security Token Service (AWS STS) `[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)` con il ruolo ARN.  | 

**Nota**  
Per le flotte di container, `FleetRoleArn` le credenziali vengono inserite in ogni contenitore. Le tue applicazioni possono utilizzare il provider di AWS credenziali predefinito per accedere a queste credenziali. Puoi comunque chiamare`GetFleetRoleCredentials()`, il che restituisce le stesse credenziali. Queste credenziali del ruolo della flotta sono accessibili solo all'interno dei container.

Per i giochi integrati con il server SDK 5.x, questo diagramma illustra come le applicazioni della build di gioco distribuita possono acquisire le credenziali per il ruolo IAM.

![\[Gli eseguibili di gioco chiamano. GetFleetRoleCredentials() Altri file utilizzano credenziali condivise memorizzate localmente.\]](http://docs.aws.amazon.com/it_it/gameliftservers/latest/developerguide/images/instance-role-creds_vsd.png)


#### Chiamata `GetFleetRoleCredentials()` (server SDK 5.x)
<a name="gamelift-sdk-server-resources-roles-apps-sdk5"></a>

Nel codice del server di gioco, che dovrebbe già essere integrato con il Amazon GameLift Servers server SDK 5.x, chiama `GetFleetRoleCredentials` ([C\$1\$1) (C\$1](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-getfleetrolecredentials)[) ([Unreal](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-getfleetrolecredentials)) ([Go](integration-server-sdk-go-actions.md#integration-server-sdk-go-getfleetrolecredentials)](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-getfleetrolecredentials)) per recuperare un set di credenziali temporanee. Quando le credenziali scadono, puoi aggiornarle con un'altra chiamata a. `GetFleetRoleCredentials`

#### Usa credenziali condivise (server SDK 5.x)
<a name="gamelift-sdk-server-resources-roles-apps-sdk5-shared"></a>

Per le applicazioni non server distribuite con build di server di gioco utilizzando server SDK 5.x, aggiungi codice per ottenere e utilizzare le credenziali archiviate in un file condiviso. Amazon GameLift Serversgenera un profilo di credenziali per ogni istanza del parco istanze. Le credenziali sono disponibili per l'uso da parte di tutte le applicazioni sull'istanza. Amazon GameLift Serversaggiorna continuamente le credenziali temporanee.

È necessario configurare una flotta per generare il file di credenziali condivise durante la creazione della flotta.

In ogni applicazione che deve utilizzare il file di credenziali condivise, specifica la posizione del file e il nome del profilo, come segue: 

Windows:

```
[credentials]
shared_credential_profile= "FleetRoleCredentials"
shared_credential_file= "C:\\Credentials\\credentials"
```

Linux:

```
[credentials]
shared_credential_profile= "FleetRoleCredentials"
shared_credential_file= "/local/credentials/credentials"
```

**Esempio: configura un CloudWatch agente per raccogliere le metriche per le istanze del parco istanze Amazon GameLift Servers**

Se desideri utilizzare un CloudWatch agente Amazon per raccogliere metriche, log e tracce dalle tue Amazon GameLift Servers flotte, utilizza questo metodo per autorizzare l'agente a inviare i dati al tuo account. In questo scenario, procedi nel seguente modo:

1. Recuperate o scrivete il `config.json` file CloudWatch dell'agente.

1. Aggiornate il `common-config.toml` file per consentire all'agente di identificare il nome del file delle credenziali e il nome del profilo, come descritto sopra.

1. Configura lo script di installazione della build del server di gioco per installare e avviare l' CloudWatch agente.

#### Usa `AssumeRole()` (server SDK 4)
<a name="gamelift-sdk-server-resources-roles-apps-sdk4"></a>

Aggiungi codice alle tue applicazioni per assumere il ruolo IAM e ottenere le credenziali per interagire con le tue AWS risorse. Qualsiasi applicazione eseguita su un'istanza del Amazon GameLift Servers parco istanze con server SDK 4 o versioni precedenti può assumere il ruolo IAM. 

Nel codice dell'applicazione, prima di accedere a una AWS risorsa, l'applicazione deve chiamare l'operazione `[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)` API AWS Security Token Service (AWS STS) e specificare il ruolo ARN. Questa operazione restituisce un set di credenziali temporanee che autorizzano l'applicazione ad accedere alla risorsa. AWS Per ulteriori informazioni, consulta [Using temporary credenziali with AWS resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) nella *IAM* User Guide.

### Associa una flotta al ruolo IAM
<a name="gamelift-sdk-server-resources-roles-fleet"></a>

Dopo aver creato il ruolo IAM e aggiornato le applicazioni nella build del server di gioco per ottenere e utilizzare le credenziali di accesso, puoi implementare una flotta. Quando configuri la nuova flotta, imposta i seguenti parametri.

Per le flotte di container:
+  [FleetRoleArn](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateContainerFleet.html#gameliftservers-CreateContainerFleet-request-FleetRoleArn)— Imposta questo parametro sull'ARN del ruolo IAM.

Per altri tipi di flotta:
+  [ InstanceRoleArn](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_FleetAttributes.html#gamelift-Type-FleetAttributes-InstanceRoleArn)— Imposta questo parametro sull'ARN del ruolo IAM.
+  [ InstanceRoleCredentialsProvider](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_FleetAttributes.html#gamelift-Type-FleetAttributes-InstanceRoleCredentialsProvider)— Amazon GameLift Servers Per richiedere la generazione di un file di credenziali condiviso per ogni istanza della flotta, imposta questo parametro su. `SHARED_CREDENTIAL_FILE`

È necessario impostare questi valori quando si crea la flotta. Non possono essere aggiornati in seguito.

## Accedi alle AWS risorse con il peering VPC
<a name="gamelift-sdk-server-resources-vpc"></a>

Puoi utilizzare il peering di Amazon Virtual Private Cloud (Amazon VPC) per comunicare tra applicazioni in esecuzione su un'Amazon GameLift Serversistanza e un'altra risorsa. AWS Un VPC è una rete privata virtuale definita dall'utente che include un insieme di risorse gestite tramite. Account AWS Ogni parco istanze Amazon GameLift Servers ha il proprio VPC. Con il peering VPC, puoi stabilire una connessione di rete diretta tra il VPC per la tua flotta e per le altre risorse. AWS 

Amazon GameLift Servers ottimizza il processo di configurazione delle connessioni VPC in peering per i server di gioco. Gestisce le richieste di peering, aggiorna le tabelle di routing e configura le connessioni in base alle esigenze. Per istruzioni su come configurare il peering VPC per i tuoi server di gioco, consulta. [Configurare il peering VPC per Amazon GameLift Servers](vpc-peering.md)

**Nota**  
Il peering VPC non è supportato per le flotte di container.

# Consenti al tuo server di gioco di accedere ai dati Amazon GameLift Servers della flotta
<a name="gamelift-sdk-server-fleetinfo"></a>

In alcune situazioni la build o Amazon GameLift Servers Realtime lo script del gioco personalizzato potrebbero richiedere informazioni sulla flotta. Amazon GameLift Servers Ad esempio, la build o lo script del gioco potrebbero includere codice per:
+ Monitora l'attività in base ai dati della flotta.
+ Aggiusta le metriche per tracciare l'attività in base ai dati della flotta. (Molti giochi utilizzano questi dati per LiveOps le attività.)
+ Fornisci dati pertinenti ai servizi di gioco personalizzati, ad esempio per il matchmaking, la scalabilità aggiuntiva della capacità o i test.

Le informazioni sulla flotta sono disponibili come file JSON su ogni istanza nelle seguenti posizioni:
+ Windows: `C:\GameMetadata\gamelift-metadata.json`
+ Linux: `/local/gamemetadata/gamelift-metadata.json`

Il `gamelift-metadata.json` file include gli [attributi di una risorsa del Amazon GameLift Servers parco veicoli](https://docs.aws.amazon.com/gamelift/latest/apireference/API_FleetAttributes.html).

File JSON di esempio:

```
{
    "buildArn":"arn:aws:gamelift:us-west-2:123456789012:build/build-1111aaaa-22bb-33cc-44dd-5555eeee66ff",
    "buildId":"build-1111aaaa-22bb-33cc-44dd-5555eeee66ff",
    "fleetArn":"arn:aws:gamelift:us-west-2:123456789012:fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
    "fleetDescription":"Test fleet for Really Fun Game v0.8",
    "fleetId":"fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
    "name":"ReallyFunGameTestFleet08",
    "fleetType":"ON_DEMAND",
    "instanceRoleArn":"arn:aws:iam::123456789012:role/S3AccessForGameLift",
    "instanceType":"c5.large",
    "serverLaunchPath":"/local/game/reallyfungame.exe"
}
```

# Configurare il peering VPC per Amazon GameLift Servers
<a name="vpc-peering"></a>

Questo argomento fornisce una panoramica su come impostare una connessione VPC in peering tra il server di gioco Amazon GameLift Servers in hosting e le altre risorse non Amazon GameLift Servers. Utilizza le connessioni peering Amazon Virtual Private Cloud (VPC) per consentire ai server di gioco di comunicare direttamente e privatamente con le altre AWS risorse, come un servizio Web o un repository. Puoi stabilire il peering VPC con qualsiasi risorsa in esecuzione AWS e gestita da un AWS account a cui hai accesso.

**Nota**  
Peering VPC è una caratteristica avanzata. Per maggiori informazioni sulle opzioni preferite per consentire ai server di gioco di comunicare direttamente e privatamente con le altre AWS risorse, consulta. [Connect il server di gioco Amazon GameLift Servers ospitato ad altre AWS risorse](gamelift-sdk-server-resources.md)

Se conosci già il peering di Amazon VPCs e VPC, tieni presente che la configurazione del peering con i server di Amazon GameLift Servers gioco è leggermente diversa. Non hai accesso al VPC che contiene i tuoi server di gioco, poiché è controllato dal Amazon GameLift Servers servizio, quindi non puoi richiedere direttamente il peering VPC. Al contrario, prima preautorizzi il VPC con le risorse non Amazon GameLift Servers in modo da accettare una richiesta di peering dal servizio Amazon GameLift Servers. Successivamente attivi Amazon GameLift Servers per richiedere il peering VPC appena autorizzato. Amazon GameLift Servers gestisce le attività di creazione della connessione peering, impostazione delle tabelle di routing e configurazione della connessione.

## Configurazione del peering VPC per un parco istanze esistente
<a name="vpc-peering-existing"></a>

1. 

**Ottieni gli ID e le credenziali dell'account. AWS**

   Sono necessari un ID e le credenziali di accesso per i seguenti account. AWS Puoi trovare l' AWS account IDs accedendo [Console di gestione AWS](https://console.aws.amazon.com/)e visualizzando le impostazioni dell'account. Per ottenere le credenziali, andare alla console IAM.
   + AWS account che usi per gestire i tuoi server di Amazon GameLift Servers gioco.
   + AWS account che usi per gestire le tue Amazon GameLift Servers risorse diverse. 

   Se utilizzi lo stesso account Amazon GameLift Servers e non utilizzi Amazon GameLift Servers risorse, ti servono ID e credenziali solo per quell'account.

1. 

**Ottenimento di identificatori per ogni VPC.**

   Ottieni le seguenti informazioni per VPCs consentirne il peering: 
   + VPC per i tuoi server di Amazon GameLift Servers gioco: questo è l'ID Amazon GameLift Servers della tua flotta. I tuoi server di gioco sono distribuiti in Amazon GameLift Servers su un parco istanze EC2. Un parco istanze viene automaticamente posizionato nel proprio VPC, gestito dal servizio Amazon GameLift Servers. Non hai accesso diretto al VPC, quindi è identificato dall'ID della flotta. 
   + VPC per le tue Amazon GameLift Servers AWS risorse diverse: puoi stabilire un peering VPC con tutte le risorse in esecuzione AWS e gestite da un AWS account a cui hai accesso. Se non hai ancora creato un VPC per queste risorse, consulta la [Guida introduttiva ad Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/getting-started-ipv4.html). Dopo aver creato un VPC, puoi trovare l'ID VPC accedendo a [Console di gestione AWS](https://console.aws.amazon.com/)Amazon VPC e visualizzando il tuo. VPCs
**Nota**  
Quando si configura un peering, entrambi VPCs devono esistere nella stessa regione. Il VPC per i server di gioco del parco istanze Amazon GameLift Servers si trova nella stessa regione del parco istanze.

1. 

**Autorizza un peering VPC.**

   In questa fase pre-autorizzi una richiesta futura di Amazon GameLift Servers per eseguire il peering del VPC con i server di gioco con il VPC per risorse non Amazon GameLift Servers. Questa operazione aggiorna il gruppo di sicurezza per il VPC.

   Per autorizzare il peering VPC, chiama il service [ CreateVpcPeeringAuthorizationAPI (](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateVpcPeeringAuthorization.html)) o usa il comando CLI AWS . `create-vpc-peering-authorization` Effettua questa chiamata utilizzando l'account che gestisce le risorse non Amazon GameLift Servers. Identificare le informazioni che seguono:
   + ID VPC peer: è per il VPC che non dispone di risorse. Amazon GameLift Servers
   + Amazon GameLift Servers AWS ID account: questo è l'account che usi per gestire la tua flotta. Amazon GameLift Servers 

   Una volta autorizzato un peering VPC, l'autorizzazione rimane valida per 24 ore a meno che non venga revocata. È possibile gestire le autorizzazioni peer VPC utilizzando le operazioni descritte di seguito:
   + [DescribeVpcPeeringAuthorizations()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeVpcPeeringAuthorizations.html) (AWS CLI`describe-vpc-peering-authorizations`).
   + [DeleteVpcPeeringAuthorization()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DeleteVpcPeeringAuthorization.html) (AWS CLI`delete-vpc-peering-authorization`).

1. 

**Richiedi una connessione peering.**

   Con un'autorizzazione valida, è possibile richiedere che Amazon GameLift Servers stabilisca una connessione peering.

   Per richiedere un peering VPC, chiama il service API [CreateVpcPeeringConnection()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateVpcPeeringConnection.html) o usa il comando AWS CLI. `create-vpc-peering-connection` Effettua questa chiamata utilizzando l'account che gestisce i server di gioco Amazon GameLift Servers. Utilizza le seguenti informazioni per identificare i due VPCs che desideri eseguire il peering:
   + ID VPC peer AWS e ID account: questo è il VPC per le tue non Amazon GameLift Servers risorse e l'account che usi per gestirle. L'ID VPC deve corrispondere all'ID di un'autorizzazione peering valida. 
   + Fleet ID: identifica il VPC per i Amazon GameLift Servers tuoi server di gioco.

1. 

**Monitora lo stato della connessione peering.**

   Richiedere una connessione peer VPC è un'operazione asincrona. Per monitorare lo stato di una richiesta di peer e gestire i casi di successo o di errore, utilizzare una delle seguenti opzioni:
   + Effettuare continuamente il polling con `DescribeVpcPeeringConnections()`. Questa operazione recupera il record di connessione peer VPC, tra cui lo stato della richiesta. Se una connessione peer viene creata correttamente, il record di connessione contiene anche un blocco CIDR di indirizzi IP privati assegnato al VPC.
   + Gestisci gli eventi della flotta associati alle connessioni di peering VPC con [DescribeFleetEvents()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetEvents.html), inclusi gli eventi di successo e di fallimento. 

Una volta stabilita la connessione peering, puoi gestirla utilizzando le seguenti operazioni:
+ [DescribeVpcPeeringConnections()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeVpcPeeringConnections.html) (AWS CLI`describe-vpc-peering-connections`).
+ [DeleteVpcPeeringConnection()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DeleteVpcPeeringConnection.html) (AWS CLI`delete-vpc-peering-connection`).

## Per configurare il peering VPC con un nuovo parco istanze
<a name="fleets-creating-aws-cli-vpc"></a>

Puoi creare un nuovo parco istanze Amazon GameLift Servers e richiedere contemporaneamente una connessione peering VPC. 

1. 

**Ottieni gli ID e le credenziali dell' AWS account.**

   Sono necessari un ID e le credenziali di accesso per i due account seguenti. AWS Puoi trovare l' AWS account IDs accedendo [Console di gestione AWS](https://console.aws.amazon.com/)e visualizzando le impostazioni dell'account. Per ottenere le credenziali, andare alla console IAM.
   + AWS account che usi per gestire i tuoi server di Amazon GameLift Servers gioco.
   + AWS account che usi per gestire le tue Amazon GameLift Servers risorse diverse. 

   Se utilizzi lo stesso account Amazon GameLift Servers e non utilizzi Amazon GameLift Servers risorse, ti servono ID e credenziali solo per quell'account.

1. 

**Ottieni l'ID VPC per le tue risorse diverse. Amazon GameLift Servers AWS**

   Se non hai ancora creato un VPC per queste risorse, fallo ora (vedi [Guida introduttiva ad Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/getting-started-ipv4.html)). Assicurati di creare il nuovo VPC nella stessa regione in cui prevedi di creare il nuovo parco istanze. Se le tue Amazon GameLift Servers risorse non sono gestite con un AWS account o un user/user gruppo diverso da quello con cui utilizziAmazon GameLift Servers, dovrai utilizzare queste credenziali dell'account quando richiedi l'autorizzazione nel passaggio successivo. 

   Dopo aver creato un VPC, puoi individuare l'ID VPC nella console Amazon VPC visualizzando il tuo. VPCs

1. 

**Autorizzazione di un VPC in peering con risorse non Amazon GameLift Servers.**

   Quando Amazon GameLift Servers crea il nuovo parco istanze e il VPC corrispondente, invia anche una richiesta di peering con il VPC per le risorse non Amazon GameLift Servers. Devi preautorizzare la richiesta. Questa fase aggiorna il gruppo di sicurezza per il VPC.

   Utilizzando le credenziali dell'account che gestiscono le tue Amazon GameLift Servers risorse diverse, chiama l'API del servizio [ CreateVpcPeeringAuthorization()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateVpcPeeringAuthorization.html) o usa il comando AWS `create-vpc-peering-authorization` CLI. Identificare le informazioni che seguono:
   + Peer VPC ID: ID del VPC con le tue risorse non disponibili. Amazon GameLift Servers
   + Amazon GameLift Servers AWS ID account: ID dell'account che utilizzi per gestire la tua flotta. Amazon GameLift Servers 

   Una volta autorizzato un peering VPC, l'autorizzazione rimane valida per 24 ore a meno che non venga revocata. È possibile gestire le autorizzazioni peer VPC utilizzando le operazioni descritte di seguito:
   + [DescribeVpcPeeringAuthorizations()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeVpcPeeringAuthorizations.html) (AWS CLI`describe-vpc-peering-authorizations`).
   + [DeleteVpcPeeringAuthorization()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DeleteVpcPeeringAuthorization.html) (AWS CLI`delete-vpc-peering-authorization`).

1. Segui le istruzioni per [creare una nuova flotta utilizzando la AWS CLI](fleets-creating.md). Includere i seguenti parametri aggiuntivi:
   + *peer-vpc-aws-account-id* — ID dell'account che usi per gestire il VPC con le tue non Amazon GameLift Servers risorse.
   + *peer-vpc-id*— ID del VPC con il tuo account non registrato. Amazon GameLift Servers

Una chiamata effettuata correttamente a [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-fleet.html) con i parametri di peering VPC genera un nuovo parco istanze e una nuova richiesta di peering VPC. Lo stato del parco istanze è impostato su **New (Nuovo)** e il processo di attivazione del parco istanze viene avviato. Lo stato della richiesta di connessione peering è impostato su **initiating-request**. È possibile monitorare l'esito positivo o negativo della richiesta di peering chiamando. [describe-vpc-peering-connections](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-vpc-peering-connections.html)

Quando richiedi un nuovo parco istanze e una connessione peering VPC, entrambe le operazioni possono riuscire correttamente o generare un errore. Se un parco istanze genera un errore durante il processo di creazione, la connessione VPC in peering non verrà stabilita. Analogamente, se una connessione peering VPC non riesce per qualsiasi motivo, il nuovo parco istanze non potrà passare dallo stato **Activating (In attivazione)** allo stato **Active (Attivo)**.

**Nota**  
La nuova connessione peering VPC non viene completata finché il parco istanze non è pronto per l'attivazione. Ciò significa che la connessione non è disponibile e non può essere utilizzata durante il processo di installazione della build del server di gioco.

Nell'esempio seguente viene creato un nuovo parco istanze e una connessione peering tra un VPC prestabilito e il VPC per il nuovo parco istanze. Il VPC prestabilito viene identificato in modo univoco dalla combinazione del tuo ID non Amazon GameLift Servers AWS account e dell'ID VPC. 

```
$ AWS gamelift create-fleet
    --name "My_Fleet_1"
    --description "The sample test fleet"
    --ec2-instance-type "c5.large"
    --fleet-type "ON_DEMAND"
    --build-id "build-1111aaaa-22bb-33cc-44dd-5555eeee66ff"
    --runtime-configuration "GameSessionActivationTimeoutSeconds=300,
                             MaxConcurrentGameSessionActivations=2,
                             ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe,
                                               Parameters=+sv_port 33435 +start_lobby,
                                               ConcurrentExecutions=10}]"
    --new-game-session-protection-policy "FullProtection"
    --resource-creation-limit-policy "NewGameSessionsPerCreator=3,
                                      PolicyPeriodInMinutes=15"
    --ec2-inbound-permissions "FromPort=33435,ToPort=33435,IpRange=0.0.0.0/0,Protocol=UDP" 
                              "FromPort=33235,ToPort=33235,IpRange=0.0.0.0/0,Protocol=UDP"
    --metric-groups  "EMEAfleets"
    --peer-vpc-aws-account-id "111122223333"
    --peer-vpc-id "vpc-a11a11a"
```

*Versione copiabile:*

```
AWS gamelift create-fleet --name "My_Fleet_1" --description "The sample test fleet" --fleet-type "ON_DEMAND" --metric-groups "EMEAfleets" --build-id "build-1111aaaa-22bb-33cc-44dd-5555eeee66ff" --ec2-instance-type "c5.large" --runtime-configuration "GameSessionActivationTimeoutSeconds=300,MaxConcurrentGameSessionActivations=2,ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe,Parameters=+sv_port 33435 +start_lobby,ConcurrentExecutions=10}]" --new-game-session-protection-policy "FullProtection" --resource-creation-limit-policy "NewGameSessionsPerCreator=3,PolicyPeriodInMinutes=15" --ec2-inbound-permissions "FromPort=33435,ToPort=33435,IpRange=0.0.0.0/0,Protocol=UDP" "FromPort=33235,ToPort=33235,IpRange=0.0.0.0/0,Protocol=UDP" --peer-vpc-aws-account-id "111122223333" --peer-vpc-id "vpc-a11a11a"
```

## Risoluzione dei problemi di peering VPC
<a name="vpc-peering-troubleshooting"></a>

Se hai problemi a stabilire una connessione peering VPC per i tuoi server di gioco Amazon GameLift Servers, considera le seguenti cause principali comuni: 
+ Non è stata trovata alcuna autorizzazione per la connessione richiesta: 
  + Controlla lo stato di un'autorizzazione VPC per il VPC non Amazon GameLift Servers. Potrebbe non esistere o essere scaduto.
  + Controlla le regioni delle due regioni che VPCs stai cercando di peerizzare. Se non si trovano nella stessa regione, non possono essere sottoposti al peering. 
+ I blocchi CIDR (vedi [Configurazioni di connessione peering VPC non](https://docs.aws.amazon.com/vpc/latest/peering/invalid-peering-configurations.html#overlapping-cidr) valide) dei due blocchi si sovrappongono. VPCs I blocchi IPv4 CIDR assegnati al peered non possono sovrapporsi. VPCs Il blocco CIDR del VPC per la Amazon GameLift Servers tua flotta viene assegnato automaticamente e non può essere modificato, quindi dovrai modificare il blocco CIDR del VPC per le tue risorse diverse. Amazon GameLift Servers Per risolvere il problema: 
  + Cerca questo blocco CIDR per il parco istanze Amazon GameLift Servers chiamando `DescribeVpcPeeringConnections()`.
  + Vai alla console Amazon VPC, trova il VPC per le risorse non Amazon GameLift Servers e modifica il blocco CIDR in modo che non si sovrapponga.
+ Il nuovo parco istanze non è attivato (quando si richiede il peering VPC con un nuovo parco istanze). Se il nuovo parco istanze non è riuscito a passare allo stato **Attivo** non vi è alcun VPC da sottoporre al peering, pertanto la connessione peering non può avere esito positivo.

# Sessioni dei giocatori e personalizzazioni del matchmaking
<a name="customize-player-sessions-matchmaking"></a>

Le personalizzazioni delle sessioni dei giocatori e del matchmaking ti danno l'opportunità di sviluppare sofisticati flussi di lavoro di gestione dei giocatori, incluso un sistema di matchmaking ricco di sfumature che ti aiuta a offrire esperienze multigiocatore equilibrate e coinvolgenti.

# Genera giocatore IDs
<a name="player-sessions-player-identifiers"></a>

Amazon GameLift Serversutilizza una sessione giocatore per rappresentare un giocatore connesso a una sessione di gioco. Amazon GameLift Serverscrea una sessione di gioco ogni volta che un giocatore si connette a una sessione di gioco utilizzando un client di gioco integrato conAmazon GameLift Servers. Quando un giocatore lascia una partita, la sessione del giocatore termina. Amazon GameLift Serversnon riutilizza le sessioni dei giocatori.

**Importante**  
Quando usi il FlexMatch matchmaking, se crei una nuova richiesta di matchmaking contenente un ID giocatore già incluso in una richiesta di matchmaking attiva esistente, la richiesta esistente viene automaticamente annullata. Tuttavia, non viene inviato un `MatchmakingCancelled` evento per la richiesta annullata. Per monitorare lo stato delle richieste di matchmaking esistenti, usa [DescribeMatchmaking](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeMatchmaking.html)per controllare lo stato della richiesta a intervalli non frequenti (30-60 secondi). La richiesta annullata mostrerà lo stato di con il motivo. `CANCELLED` `Cancelled due to duplicate player`

Il seguente esempio di codice genera casualmente un giocatore unico: IDs

```
bool includeBrackets = false;
bool includeDashes = true;
string playerId = AZ::Uuid::CreateRandom().ToString<string>(includeBrackets, includeDashes);
```

Per ulteriori informazioni sulle sessioni con i giocatori, consulta. [Sessioni di gioco e di gioco nella Amazon GameLift Servers console](gamelift-console-game-player-sessions-metrics.md)

# Aggiungi FlexMatch matchmaking a Amazon GameLift Servers
<a name="gamelift-match-intro"></a>

Utilizzalo Amazon GameLift Servers FlexMatch per aggiungere funzionalità di matchmaking tra giocatori ai giochi Amazon GameLift Servers ospitati. Puoi utilizzarlo FlexMatch con server di gioco personalizzati o Amazon GameLift ServersRealtime. 

FlexMatch associa il servizio di abbinamento a un motore di regole personalizzabili. Progetti come abbinare i giocatori in base agli attributi dei giocatori e alle modalità di gioco più adatte al tuo gioco. FlexMatchgestisce le fasi di valutazione dei giocatori che stanno cercando una partita, organizza le partite con una o più squadre e avvia le sessioni di gioco per ospitare le partite. 

Per utilizzare il FlexMatch servizio completo, è necessario che le risorse di hosting siano configurate con code. Amazon GameLift Serversutilizza le code per individuare le migliori sedi di hosting possibili per i giochi in diverse regioni e tipi di computer. In particolare, le Amazon GameLift Servers code possono utilizzare i dati di latenza, se forniti dai client di gioco, per organizzare le sessioni di gioco in modo che i giocatori abbiano la latenza più bassa possibile durante il gioco.

[Per ulteriori informazioni su FlexMatch come includere assistenza dettagliata sull'integrazione del matchmaking nei tuoi giochi, consulta questi argomenti della Guida per gli sviluppatori: Amazon GameLift ServersFlexMatch](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/)
+ [Come funziona Amazon GameLift ServersFlexMatch](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-intro.html)
+ [FlexMatchfasi di integrazione](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-tasks.html)

# Personalizzazioni del posizionamento delle sessioni di gioco
<a name="customize-game-session-placement"></a>

Le personalizzazioni del posizionamento delle sessioni di gioco ti danno l'opportunità di perfezionare il tuo sistema di posizionamento per offrire alla tua base di giocatori la migliore esperienza di gioco possibile. Puoi ottimizzare il posizionamento in base alla compatibilità e alle preferenze dei giocatori, nonché per considerazioni operative come l'efficienza dei costi, la distribuzione geografica e la resilienza contro le interruzioni del servizio.

# Personalizza una coda di sessioni di gioco
<a name="queues-design"></a>

Questo argomento descrive come personalizzare le code delle sessioni di gioco per prendere le migliori decisioni possibili sul posizionamento delle sessioni di gioco. Per ulteriori informazioni sulle code delle sessioni di gioco e sul loro funzionamento, consulta. [Configura il posizionamento delle sessioni di gioco](queues-intro.md)

Queste Amazon GameLift Servers funzionalità richiedono code:
+ [Abbinamento con FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-tasks.html)
+ [Crea una coda per le istanze Spot](spot-tasks.md)

**Topics**
+ [Definire l'ambito di una coda](queues-design-scope.md)
+ [Crea una coda con più sedi](queues-design-multiregion.md)
+ [Valuta le metriche della coda](queues-design-metrics.md)

# Definire l'ambito di una coda
<a name="queues-design-scope"></a>

La popolazione di giocatori del tuo gioco potrebbe avere gruppi di giocatori che non dovrebbero giocare insieme. Ad esempio, se pubblichi il gioco in due lingue, ogni lingua dovrebbe avere i propri server di gioco.

Per impostare il posizionamento delle sessioni di gioco in base al numero di giocatori, crea una coda separata per ogni segmento di giocatori. Analizza ogni coda per posizionare i giocatori nei server di gioco corretti. Alcuni metodi comuni per definire l'ambito delle code includono:
+ **Per località geografiche.** Quando distribuisci i tuoi server di gioco in più aree geografiche, potresti creare code per i giocatori in ogni località per ridurre la latenza dei giocatori.
+ **Tramite build o varianti dello script.** Se hai più di una variante del tuo server di gioco, potresti supportare gruppi di giocatori che non possono giocare nelle stesse sessioni di gioco. Ad esempio, le build o gli script dei server di gioco potrebbero supportare lingue o tipi di dispositivi diversi.
+ **Per tipi di eventi.** Puoi creare una coda speciale per gestire le partite per i partecipanti a tornei o altri eventi speciali. 

## Progetta code multiple
<a name="queues-design-players"></a>

A seconda del gioco e dei giocatori, potresti voler creare più di una coda per le sessioni di gioco. Quando il servizio client di gioco richiede una nuova sessione di gioco, specifica quale coda di sessione di gioco utilizzare. Per aiutarti a determinare se utilizzare più code, considera:
+ Varianti del tuo server di gioco. Puoi creare una coda separata per ogni variante del tuo server di gioco. Tutte le flotte in coda devono utilizzare server di gioco compatibili. Questo perché i giocatori che utilizzano la coda per partecipare alle partite devono poter giocare su qualsiasi server di gioco della coda.
+ Gruppi di giocatori diversi. Puoi personalizzare Amazon GameLift Servers il posizionamento delle sessioni di gioco in base al gruppo di giocatori. Ad esempio, potresti aver bisogno di code personalizzate per determinate modalità di gioco che richiedono un tipo di istanza o una configurazione di runtime speciali. Oppure, potresti aver bisogno di una coda speciale per gestire i piazzamenti per un torneo o un altro evento.
+ Metriche della coda delle sessioni di gioco. Puoi impostare le code in base a come desideri raccogliere le metriche di posizionamento delle sessioni di gioco. Per ulteriori informazioni, consulta [Parametri Amazon GameLift Servers per code](monitoring-cloudwatch.md#gamelift-metrics-queue).

# Crea una coda con più sedi
<a name="queues-design-multiregion"></a>

Consigliamo una progettazione con più posizioni per tutte le code. Questo design può migliorare la velocità di posizionamento e la resilienza dell'hosting. È necessario un design multi-location per utilizzare i dati di latenza dei giocatori per coinvolgere i giocatori in sessioni di gioco con una latenza minima. Se stai creando code con più sedi che utilizzano flotte di istanze Spot, segui le istruzioni riportate in. [Riduci i costi di hosting dei giochi con le flotte Spot](fleets-spot.md)

Un modo per creare una coda con più sedi consiste nell'aggiungere un parco veicoli con [più](gamelift-regions.md#gamelift-regions-hosting) sedi a una coda. In questo modo, la coda può collocare sessioni di gioco in qualsiasi postazione della flotta. Puoi anche aggiungere altre flotte con configurazioni diverse o ubicazioni principali per ridondarle. Se utilizzi una flotta di istanze Spot con più sedi, segui le best practice e includi una flotta di istanze On-Demand con le stesse sedi.

L'esempio seguente illustra il processo di progettazione di una coda di base con più sedi. In questo esempio, utilizziamo due flotte: una flotta di istanze Spot e una flotta di istanze On-Demand. Ogni flotta ha le seguenti località Regioni AWS di collocamento:`us-east-1`, `us-east-2``ca-central-1`, e. `us-west-2`

**Per creare una coda di base con più sedi con flotte con più sedi**

1. Scegli una posizione in cui creare la coda. È possibile ridurre al minimo la latenza delle richieste posizionando la coda in una posizione vicina a dove è stato distribuito il servizio client. In questo esempio, creiamo la coda in. `us-east-1`

1. Crea una nuova coda e aggiungi le tue flotte con più sedi come destinazioni di coda. L’ordine di destinazione determina come Amazon GameLift Servers posiziona le sessioni di gioco. In questo esempio, elenchiamo prima il parco istanze Spot e poi il parco istanze On-Demand.

1. Definisci l'ordine di priorità di posizionamento delle sessioni di gioco della coda. Questo ordine determina dove la coda cerca per primo un server di gioco disponibile. In questo esempio, utilizziamo l'ordine di priorità predefinito.

1. Definire l'ordine delle ubicazioni. Se non definisci l'ordine delle località, Amazon GameLift Servers utilizza le posizioni in ordine alfabetico.

![\[Una schermata della console che illustra le posizioni e l'ordine di destinazione della coda di esempio.\]](http://docs.aws.amazon.com/it_it/gameliftservers/latest/developerguide/images/queue-multi-location-1.png)


![\[Una schermata della console che illustra la priorità di posizionamento e l'ordine delle posizioni della coda di esempio.\]](http://docs.aws.amazon.com/it_it/gameliftservers/latest/developerguide/images/queue-multi-location-2.png)


# Valuta le metriche della coda
<a name="queues-design-metrics"></a>

I parametri consentono di valutare le prestazioni delle code. È possibile visualizzare le metriche relative alle code in [Amazon GameLift Servers console ](https://console.aws.amazon.com/gamelift) o in Amazon CloudWatch. Per un elenco e le descrizioni delle metriche delle code, consulta. [Parametri Amazon GameLift Servers per code](monitoring-cloudwatch.md#gamelift-metrics-queue)

Le metriche della coda possono fornire informazioni su quanto segue:
+ **Prestazioni complessive della coda: le** metriche della coda indicano il successo con cui una coda risponde alle richieste di posizionamento. Queste metriche possono anche aiutarti a identificare quando e perché i posizionamenti falliscono. Per le code con flotte ridimensionate manualmente, le `QueueDepth` metriche `AverageWaitTime` e possono indicare quando è necessario regolare la capacità di una coda.
+ **FleetIQ prestazioni dell'algoritmo**: per le richieste di posizionamento utilizzando il FleetIQ algoritmo, le metriche mostrano la frequenza con cui l'algoritmo trova il posizionamento ideale nella sessione di gioco. Il posizionamento può dare la priorità all'utilizzo di risorse con la latenza di giocatore più bassa o di risorse con il costo più basso. Esistono anche metriche di errore che identificano i motivi più comuni Amazon GameLift Servers non riesco a trovare un posizionamento ideale. Per ulteriori informazioni sui parametri, consulta [Monitora Amazon GameLift Servers con Amazon CloudWatch](monitoring-cloudwatch.md).
+ **Posizionamenti specifici per località**: per le code con più sedi, le metriche mostrano i posizionamenti riusciti per località. Per le code che utilizzano il FleetIQ algoritmo, questi dati forniscono informazioni utili su dove avviene l'attività dei giocatori.

Quando si valutano le metriche per FleetIQ prestazioni dell'algoritmo, considera i seguenti suggerimenti:
+ Per tenere traccia del tasso di ricerca del posizionamento ideale da parte della coda, utilizza la `PlacementsSucceeded` metrica in combinazione con FleetIQ metriche per la latenza più bassa e il prezzo più basso.
+ Per aumentare il tasso di ricerca del posizionamento ideale da parte di una coda, esamina le seguenti metriche di errore:
  + Se il valore `FirstChoiceOutOfCapacity` è elevato, modifica la scalabilità della capacità per le flotte della coda.
  + Se la metrica `FirstChoiceNotViable` di errore è alta, dai un'occhiata alle flotte delle tue istanze Spot. Le flotte di istanze Spot sono considerate inutilizzabili quando il tasso di interruzione per un particolare tipo di istanza è troppo elevato. Per risolvere questo problema, modifica la coda per utilizzare flotte di istanze Spot con diversi tipi di istanze. Ti consigliamo di includere flotte di istanze Spot con diversi tipi di istanze in ogni sede.

# Dare la priorità al posizionamento delle sessioni di gioco
<a name="queues-design-priority"></a>

Amazon GameLift Serversutilizza un algoritmo per determinare come dare priorità alle destinazioni di una coda e determinare dove collocare una nuova sessione di gioco. L'algoritmo si basa su un insieme ordinato di criteri. Puoi utilizzare l’ordine di priorità predefinito oppure puoi personalizzare l’ordine. È possibile modificare l'ordine di priorità di una coda in qualsiasi momento. 

**Ordine di priorità predefinito**

1. **Latenza**: se la richiesta di posizionamento della sessione di gioco include dati di latenza specifici per località per i giocatori, Amazon GameLift Servers calcola la latenza media dei giocatori in ogni località e tenta di piazzare una sessione di gioco in una località della flotta con la media più bassa.

1. **Costo**: se una richiesta non include dati sulla latenza o se più flotte hanno la stessa latenza, valuta il costo di hosting di ciascuna flotta. Amazon GameLift Servers Il costo di hosting di una flotta varia in base al tipo di flotta (Spot o On-Demand), al tipo di istanza e alla posizione. 

1. **Destinazione**: se più flotte hanno latenza e costi uguali, assegna la Amazon GameLift Servers priorità alle flotte in base all'ordine di destinazione indicato nella configurazione della coda.

1. **Ubicazione**: per le code con flotte con più sedi, se tutti gli altri criteri sono uguali, assegna la Amazon GameLift Servers priorità alle posizioni della flotta in base all'ordine alfabetico.

## Personalizza il modo in cui una coda assegna la priorità ai posizionamenti delle sessioni di gioco
<a name="queues-design-priority-custom"></a>

Puoi scegliere di personalizzare il modo in cui una coda assegna la priorità ai criteri di posizionamento. La coda applica la priorità personalizzata a tutte le richieste di posizionamento delle sessioni di gioco che riceve. 

**Nota**  
Se crei una configurazione di priorità personalizzata e non includi tutti e quattro i criteri, aggiunge Amazon GameLift Servers automaticamente i criteri mancanti nell'ordine predefinito.

**Per personalizzare la configurazione della priorità di una coda**

Usa la [Amazon GameLift Serversconsole](https://console.aws.amazon.com/gamelift/) o AWS Command Line Interface (AWS CLI) per creare una configurazione di priorità personalizzata. 

------
#### [ Console ]

Nella [Amazon GameLift Serversconsole](https://console.aws.amazon.com/gamelift/), è possibile personalizzare le priorità di una coda quando si crea una nuova coda o si aggiorna una coda esistente. Seleziona una AWS regione in cui lavorare.

Apri la barra di navigazione a sinistra della console e scegli **Code.** **Nella pagina Code, seleziona una coda esistente e scegli Modifica.**

1. Vai alla sezione Priorità del **posizionamento della sessione di gioco**. Trascina e rilascia ogni criterio di priorità per creare l'ordine desiderato. 

1. Vai alla sezione **Ordine di ubicazione**. Aggiungi tutte le sedi a cui desideri dare la priorità. Questo elenco è utile quando la coda ha flotte con più sedi. È necessario specificare almeno una posizione. Alle posizioni specificate qui viene data priorità per prime, seguite da tutte le altre posizioni nelle destinazioni della coda.

1. Scegli **Save changes** (Salva modifiche).

------
#### [ AWS CLI ]

Utilizzate il [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/update-game-session-queue.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/update-game-session-queue.html)comando con l'`--priority-configuration`opzione per personalizzare l'ordine di priorità di una coda. Amazon GameLift Serversaggiorna una coda nella AWS regione predefinita corrente oppure puoi aggiungere un `--region` tag per specificare una regione diversa AWS .

La seguente richiesta di esempio aggiunge o aggiorna la configurazione di priorità per una coda specificata

```
aws gamelift update-game-session-queue \ 
    --name "example-queue-with-priority"
    --priority-configuration PriorityOrder="COST','LOCATION","DESTINATION",LocationOrder="us-east-1","us-east-2","ca-central-1","us-west-2" \
```

------

## Dai priorità ai posizionamenti in base alla latenza del giocatore
<a name="queues-design-priority-custom-latency"></a>

Se vuoi offrire ai tuoi giocatori la migliore esperienza di gioco possibile e garantire una latenza minima, procedi nel seguente modo durante la configurazione del sistema di posizionamento delle sessioni di gioco: 
+ Imposta la coda per dare priorità alla latenza quando scegli dove collocare le sessioni di gioco. Per impostazione predefinita, la latenza è in cima all'elenco delle priorità. Puoi anche personalizzare la configurazione delle priorità della coda e scegliere dove mettere la latenza in ordine di priorità. 
+ Imposta le politiche di latenza dei giocatori per la tua coda. Le politiche di latenza ti consentono di impostare limiti rigidi sulla quantità di latenza da consentire nel posizionamento di una sessione di gioco. Se non Amazon GameLift Servers riesci a completare una sessione di gioco senza superare i limiti, la richiesta di posizionamento scadrà e avrà esito negativo. Puoi impostare un'unica politica di latenza oppure puoi creare una serie di politiche che riducono gradualmente il limite di latenza nel tempo. Con una serie di policy, puoi specificare limiti di latenza iniziale molto bassi e comunque soddisfare i giocatori con latenze più elevate dopo un breve periodo di tempo. Per i dettagli sulla creazione di politiche di latenza, consulta. [Crea una politica di latenza dei giocatori](queues-design-latency.md) 
+ Quando effettui richieste di posizionamento delle sessioni di gioco (vedi [StartGameSessionPlacement](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_StartGameSessionPlacement.html)), includi i dati sulla latenza per ogni giocatore. I dati sulla latenza dei giocatori includono un valore per ogni possibile posizione in cui potrebbe essere tenuta una sessione di gioco. Ad esempio, per una coda che colloca le sessioni di gioco in Regioni AWS us-east-2 e ca-central-1, i dati di latenza potrebbero essere simili ai seguenti: 

  ```
  "PlayerLatencies": [ 
      { "LatencyInMilliseconds": 100, "PlayerId": "player1", "RegionIdentifier": "us-east-2" },
      { "LatencyInMilliseconds": 100, "PlayerId": "player1", "RegionIdentifier": "ca-central-1" },
      { "LatencyInMilliseconds": 150, "PlayerId": "player2", "RegionIdentifier": "us-east-2" },
      { "LatencyInMilliseconds": 150, "PlayerId": "player2", "RegionIdentifier": "ca-central-1" }
    ]
  ```

  Per ottenere misurazioni accurate della latenza, utilizzate i beacon ping UDP. Amazon GameLift Servers Questi endpoint consentono di misurare l'effettiva latenza della rete UDP tra i dispositivi dei giocatori e ciascuna delle potenziali sedi di hosting, con conseguenti decisioni di posizionamento più accurate rispetto all'utilizzo dei ping ICMP. Per ulteriori informazioni sull'utilizzo dei beacon ping UDP per misurare la latenza, fare riferimento a. [UDP ping beacon](reference-udp-ping-beacons.md)

## Assegna priorità ai posizionamenti in base alla posizione
<a name="queues-design-priority-custom-location"></a>

Puoi configurare una coda per posizionare le sessioni di gioco in base a un elenco di posizioni geografiche con priorità. La posizione è uno dei criteri che determinano il modo in cui una coda sceglie dove collocare una nuova sessione di gioco. Per impostazione predefinita, la posizione ha la priorità al quarto posto, dopo latenza, costo e destinazione.

Per quanto riguarda il posizionamento della sessione di gioco, destinazione e luogo hanno significati leggermente diversi:
+ La *destinazione* si riferisce a una flotta specifica e include tutte le risorse di hosting della flotta, ovunque siano dispiegate. Quando stabilisci le priorità in base alla destinazione, Amazon GameLift Servers potresti effettuare un posizionamento in qualsiasi località della flotta. Le flotte gestite da più sedi e le flotte Anywhere possono disporre di risorse di hosting distribuite in una o più sedi.
+ *La posizione* si riferisce a una posizione geografica specifica in cui vengono distribuite le risorse di hosting di una flotta. Una flotta può avere più sedi Regioni AWS, tra cui Local Zones o sedi personalizzate (per una flotta Anywhere). Una flotta gestita da un'unica sede ha un'unica sede ed è sempre una Regione AWS. Una flotta gestita da più sedi ha una regione di origine e può avere sedi remote. Una flotta Anywhere ha una o più sedi personalizzate.

Quando assegna la priorità ai posizionamenti in base alla località, Amazon GameLift Servers cerca tutte le destinazioni in coda che includono la posizione prioritaria e cerca in esse una risorsa di hosting disponibile. Se ci sono più destinazioni con la posizione prioritaria, Amazon GameLift Servers passa ai criteri di priorità successivi (costo, latenza, destinazione).

Esistono diversi modi per influenzare il modo in cui viene assegnata la priorità alle posizioni di una coda 
+ Configura il modo in cui la coda gestisce tutte le richieste di posizionamento delle sessioni di gioco:
  + **Aggiungi una configurazione prioritaria alla coda.** La configurazione prioritaria di una coda include un elenco ordinato di posizioni. È possibile specificare una o più posizioni a cui dare la priorità. Questo elenco non esclude alcuna località, indica semplicemente Amazon GameLift Servers dove cercare prima una risorsa di hosting disponibile. Un uso comune di un elenco di sedi ordinato è quando si desidera incanalare la maggior parte del traffico verso una o più località geografiche specifiche e utilizzare posizioni aggiuntive come capacità di backup. Aggiungi una configurazione prioritaria [UpdateGameSessionQueue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_UpdateGameSessionQueue.html)chiamando.
  + **Aggiungi una configurazione di filtro alla coda.** Una configurazione di filtro è un elenco di elementi consentiti per la coda. Indica Amazon GameLift Servers di ignorare tutte le posizioni che non sono nell'elenco quando si cerca una risorsa di hosting disponibile. Esistono due usi comuni per la configurazione di un filtro. Innanzitutto, per le flotte con più sedi, potresti utilizzare un filtro per escludere alcune sedi della flotta. In secondo luogo, potresti voler impedire temporaneamente i posizionamenti in una determinata località; ad esempio, una località potrebbe presentare problemi transitori. Poiché è possibile aggiornare la configurazione dei filtri di una coda in qualsiasi momento, è possibile aggiungere e rimuovere facilmente le posizioni in base alle esigenze. Aggiungi una configurazione di filtro [UpdateGameSessionQueue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_UpdateGameSessionQueue.html)chiamando.
+ Utilizza istruzioni speciali per le richieste di collocamento individuali:
  + **Includi un elenco di priorità prioritarie in una richiesta di posizionamento per una sessione di gioco.** Puoi fornire un elenco alternativo di sedi con priorità per qualsiasi [StartGameSessionPlacement](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_StartGameSessionPlacement.html)richiesta. Questo elenco sostituisce efficacemente la prioritizzazione configurata della coda per le posizioni solo per quella richiesta. Non ha alcun impatto su altre richieste. Questa funzionalità di override ha alcuni requisiti:
    + Usa un elenco di override solo con una coda che ha una configurazione di priorità impostata `LOCATION` come prima priorità.
    + Non includere i dati sulla latenza dei giocatori nella stessa richiesta di posizionamento. L'inclusione dei dati sulla latenza crea conflitti quando si assegnano priorità a posizioni che Amazon GameLift Servers non possono essere risolte.
    + Decidi come procedere se non riesce Amazon GameLift Servers a trovare una risorsa disponibile nell'elenco delle eccezioni di priorità. Scegli se tornare alle altre posizioni della coda o limitare i posizionamenti all'elenco delle eccezioni. Per impostazione predefinita, Amazon GameLift Servers torna indietro per tentare di posizionarlo nelle altre posizioni della coda.
    + Aggiorna la configurazione dei filtri della coda in base alle esigenze, ad esempio aggiungendo posizioni nell'elenco delle sostituzioni. L'elenco delle eccezioni non invalida l'elenco dei filtri. 

# Crea una politica di latenza dei giocatori
<a name="queues-design-latency"></a>

Se le tue richieste di posizionamento includono dati sulla latenza dei giocatori, Amazon GameLift Servers trova le sessioni di gioco nelle località con la latenza media più bassa per tutti i giocatori. Il posizionamento delle sessioni di gioco in base alla latenza media dei giocatori Amazon GameLift Servers impedisce di collocare la maggior parte dei giocatori in partite con latenza elevata. Tuttavia, posiziona Amazon GameLift Servers ancora i giocatori con una latenza estrema. Per soddisfare questi giocatori, crea delle politiche sulla latenza dei giocatori.

Una politica di latenza dei giocatori Amazon GameLift Servers impedisce di collocare una sessione di gioco richiesta in qualsiasi punto in cui i giocatori inclusi nella richiesta potrebbero riscontrare una latenza superiore al valore massimo. Le politiche di latenza dei giocatori possono anche Amazon GameLift Servers impedire di abbinare le richieste di sessione di gioco ai giocatori con latenza più elevata.

**Suggerimento**  
Per gestire regole specifiche sulla latenza, ad esempio richiedere una latenza simile per tutti i giocatori di un gruppo, puoi utilizzare la funzione [https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-intro.html](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-intro.html)per creare regole di matchmaking basate sulla latenza.

Ad esempio, considera questa coda con un timeout di 5 minuti e le seguenti politiche di latenza dei giocatori:

1. Dedica 120 secondi alla ricerca di una posizione in cui tutte le latenze dei giocatori siano inferiori a 50 millisecondi.

1. Dedica 120 secondi alla ricerca di una posizione in cui tutte le latenze dei giocatori siano inferiori a 100 millisecondi.

1. Trascorri il tempo di coda rimanente fino al timeout cercando una posizione in cui tutte le latenze dei giocatori siano inferiori a 200 millisecondi.

![\[Una schermata della console che illustra alcuni esempi di politiche di latenza che si allentano gradualmente.\]](http://docs.aws.amazon.com/it_it/gameliftservers/latest/developerguide/images/queue-latency-policy.png)


# Crea una coda per le istanze Spot
<a name="spot-tasks"></a>

È possibile ottenere risparmi potenzialmente significativi sui costi di hosting utilizzando le flotte Spot. Per ulteriori dettagli sulle flotte Spot e su come utilizzarle, consulta. [On-Demand Instances versus Spot Instances](gamelift-compute.md#gamelift-compute-spot) 

Se la tua soluzione di hosting di giochi include flotte Spot, devi utilizzare una coda per il posizionamento delle sessioni di gioco. Amazon GameLift Serversutilizza le code per cercare tra più risorse di hosting di giochi e selezionare quella migliore disponibile per ospitare una nuova sessione di gioco. Con le flotte Spot, le code sono particolarmente importanti per ridurre al minimo i costi di hosting ed evitare possibili interruzioni Spot. Questo argomento ti aiuta a configurare una coda resiliente che possa continuare a ospitare partite per i giocatori anche in caso di interruzioni, rallentamenti e interruzioni. Puoi personalizzare il modo in cui la coda assegna la priorità alle risorse di hosting disponibili in base a diversi fattori, tra cui i costi di hosting.

Utilizzi FlexMatch per l'abbinamento? Puoi utilizzare una coda con le flotte Spot per stabilire i piazzamenti delle sessioni di gioco per le tue partite.

## Attività di implementazione per le flotte Spot
<a name="spot-tasks-queue"></a>

Quando crei o aggiorni la tua soluzione di hosting di giochi per utilizzare le flotte Spot, completa le seguenti attività. Per indicazioni più dettagliate su come creare una coda che ottimizzi la disponibilità e la resilienza di Spot, consulta. [Riduci i costi di hosting dei giochi con le flotte Spot](fleets-spot.md)

1. **Scegli e crea una serie di destinazioni della flotta per la coda delle sessioni di gioco.**

   Inizia decidendo dove vuoi che la coda collochi le sessioni di gioco. Una coda può cercare tra più flotte per trovare il miglior posizionamento possibile. Ogni flotta ha un tipo di istanza ma può avere più posizioni geografiche. Le code con flotte che offrono varietà sia in termini di ubicazione che di tipo di istanza hanno maggiori probabilità di ottenere posizionamenti di successo. Consulta queste best practice per progettare una coda efficace e resiliente ottimizzata per SPOT.

1. **Crea la tua coda di sessioni di gioco ottimizzata per SPOT.** 

   Crea una coda e configurala per le tue flotte Spot. Consultare [Crea una coda per le sessioni di gioco](queues-creating.md) per assistenza con la creazione e la configurazione della nuova coda. È possibile utilizzare la Amazon GameLift Servers console o la AWS CLI per creare o modificare una coda.
   + Aggiungi le destinazioni della flotta dalla Fase 1. 
   + Assegna la priorità all'ordine di destinazione in base alle esigenze. Per impostazione predefinita, Amazon GameLift Servers assegna la priorità in base al costo prima della destinazione, quindi l'ordine di destinazione viene utilizzato solo quando i costi più bassi tra le destinazioni sono uguali.
   + Se desideri dare priorità ai costi di hosting dei giochi prima della latenza dei giocatori, fornisci una priorità di posizionamento personalizzata. Per informazioni, consulta [Dare la priorità al posizionamento delle sessioni di gioco](queues-design-priority.md).

1. **Aggiorna gli altri componenti della soluzione per utilizzare la nuova coda.**

   Quando la soluzione utilizza una coda ottimizzata per SPOT per avviare nuove sessioni di gioco, la coda evita automaticamente di effettuare sessioni di gioco con flotte ad alta probabilità di interruzione. Cerca invece in tutte le flotte valide le risorse che corrispondono alle priorità definite, tra cui la latenza dei giocatori, i costi di hosting e l'ordine di destinazione. 
   + Se non lo utilizziFlexMatch, aggiorna il servizio di backend per specificare la nuova coda ottimizzata per SPOT nelle richieste di sessione di gioco. Il servizio di backend invia richieste API per Amazon GameLift Servers conto del tuo client di gioco (utilizzando`StartGameSessionPlacement()`) e ogni richiesta deve specificare un nome di coda. Per assistenza con l'implementazione dei posizionamenti della sessione di gioco nel client di gioco, consultare [Crea sessioni di gioco](gamelift-sdk-client-api.md#gamelift-sdk-client-api-create).
   + Se lo utilizziFlexMatch: aggiorna la configurazione del matchmaking per inviare le richieste di sessioni di gioco alla nuova coda ottimizzata per SPOT. Quando il sistema di matchmaking crea una partita tra giocatori, invia una richiesta di posizionamento della sessione di gioco alla coda designata per iniziare una nuova sessione di gioco per la partita. Solo le configurazioni di matchmaking con FlexMatch modalità impostata su «Gestita» possono designare una coda di posizionamento. Puoi aggiornare una configurazione di matchmaking utilizzando la AWS CLI o Amazon GameLift Servers la console ([vedi Modificare una configurazione di matchmaking](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-create-configuration-edit.html)).

1. **Controlla le prestazioni delle tue flotte e delle tue code Spot.** 

   Visualizza le Amazon GameLift Servers metriche nella Amazon GameLift Servers console o con Amazon CloudWatch per esaminare le prestazioni. Per ulteriori informazioni sui parametri Amazon GameLift Servers, consulta [Monitora Amazon GameLift Servers con Amazon CloudWatch](monitoring-cloudwatch.md). I parametri chiave includono:
   + Frequenza di interruzione: utilizza le `GameSessionInterruptions` metriche `InstanceInterruptions` and per tenere traccia del numero e della frequenza delle interruzioni relative a SPOT per istanze e sessioni di gioco. Le sessioni di gioco sulle istanze recuperate hanno uno stato e un motivo dello stato pari a. `TERMINATED` `INTERRUPTED`
   + Efficacia della coda: monitora le percentuali di successo del posizionamento, il tempo medio di attesa e la profondità della coda per verificare che le flotte Spot non influiscano sulle prestazioni in coda.
   + Utilizzo della flotta: monitora i dati sulle istanze, sulle sessioni di gioco e sulle sessioni dei giocatori. L'utilizzo delle flotte On-Demand può essere un indicatore del fatto che le code impediscono il collocamento nelle flotte Spot per evitare interruzioni.

## Best practices for queues with Spot fleets
<a name="queues-design-spot"></a>

 Utilizza le seguenti best practice per creare flotte e code per le istanze Spot. 
+ **Espandi la copertura geografica della coda.** Anche se i tuoi giocatori sono raggruppati in un unico gruppo Regione AWS, aggiungi località adiacenti alla tua flotta Spot. Questo approccio migliora la capacità della coda di mantenere la capacità durante i rallentamenti regionali, le interruzioni e le interruzioni Spot. Le flotte con più sedi funzionano sia con istanze Spot che On-Demand.
+ **Diversificate la copertura dei tipi di istanze della coda.** Amazon GameLift Serversvaluta la fattibilità di Spot in base al tipo di istanza, quindi disporre di flotte Spot con una varietà di tipi di istanze riduce la possibilità che più flotte Spot non siano utilizzabili contemporaneamente. Includi almeno due flotte Spot con tipi di istanze diversi per ogni sede. 
**Nota**  
I prezzi si basano sulle istanze utilizzate, non sul numero di flotte. Gestire cinque flotte con 10 istanze ciascuna equivale a gestire una flotta con 50 istanze a costi simili. I prezzi variano in base al tipo, alle dimensioni e all'ubicazione dell'istanza. 

  Suggerimenti per raggruppare i tipi di istanze Spot: 
  + Utilizza tipi di istanze della stessa famiglia, ad esempio `m6g.medium``m6g.large`, e`m6g.xlarge`. I tipi di istanze più grandi costano di più, ma possono anche ospitare più sessioni di gioco contemporaneamente.
  + Seleziona tipi di istanze ampiamente disponibili. In genere, le famiglie di vecchia generazione (come C5, M5 e R5) e le dimensioni comuni (come .large, .xlarge e .2xlarge) hanno una disponibilità migliore.
  + Controlla la cronologia dei prezzi di 30-90 giorni nella console. Amazon GameLift Servers Cerca tipi di istanze con modelli di disponibilità coerenti.
  + Usa la Amazon GameLift Servers console, lo strumento per la creazione del parco veicoli, per esplorare la copertura delle località, ad esempio i tipi di esempio.
+ **Aggiungi flotte On-Demand per aumentare la capacità di backup.** L'hosting di giochi può passare alle flotte On-Demand ogni volta che le flotte Spot non sono disponibili. Metti almeno una flotta On-Demand in ogni sede per mantenere bassa la latenza dei giocatori. Aggiungi l'auto-scaling alle tue flotte di backup On-Demand, in modo da poterle mantenere ridimensionate fino a quando non saranno necessarie.
+ **Assegna alias a tutte le destinazioni della flotta.** Crea alias per ciascuna destinazione della coda. Gli alias rendono più semplice ed efficiente ogni volta che è necessario sostituire le flotte. 
+ **Applica una strategia di prioritizzazione delle code.** Puoi personalizzare il modo in cui una coda assegna la priorità a dove collocare le sessioni di gioco (vedi per maggiori dettagli). [Dare la priorità al posizionamento delle sessioni di gioco](queues-design-priority.md) Per le code ottimizzate per Spot, l'assegnazione delle priorità in base al costo garantisce l'utilizzo di flotte Spot a basso costo ogni volta che è possibile. 

  Puoi anche dare priorità a determinate flotte specificando un ordine di destinazione. Ad esempio, alcuni utenti designano un set di flotte primarie per l'uso regolare e anche un set di flotte secondarie come backup. In questo scenario, imposta l'ordine di destinazione della coda in modo da elencare per prime le flotte primarie. Quindi configura l'ordine di priorità della coda con la destinazione seguita dal costo.

# Personalizzazioni delle risorse di hosting
<a name="fleets-design"></a>

Questa sezione fornisce opzioni avanzate per la configurazione e la gestione Amazon GameLift Servers dell'infrastruttura per soddisfare requisiti specifici in termini di prestazioni, costi e operativi. In particolare, gli argomenti di questa sezione descrivono come personalizzare le risorse di hosting Amazon GameLift Servers gestito per adattarle al meglio al gioco e ai giocatori. 

Alcune delle decisioni da prendere in considerazione: 
+ Dove distribuire le risorse di hosting per i tuoi giocatori? La latenza di gioco è un fattore importante nella selezione delle posizioni geografiche della flotta, ma ci sono altri fattori che variano in base alla località, tra cui il tipo di risorsa, la disponibilità e il costo.
+ Quali tipi di EC2 istanze supporteranno al meglio il tuo gioco? Scegli tra i tipi di istanze disponibili che utilizzano la migliore combinazione di architettura di calcolo, memoria, archiviazione e capacità di rete. 
+ Di che dimensione del tipo di istanza hai bisogno? Scegli la dimensione del tipo di istanza in base ai requisiti di risorse (memoria e CPU) del software del server di gioco e ad altri fattori. 
+ La tua flotta dovrebbe utilizzare istanze On-Demand o Spot? Valuta se puoi trarre vantaggio dai prezzi Spot più bassi e se riduci Amazon GameLift Servers sufficientemente la possibilità che Spot interrompa le tue sessioni di gioco.
+ Come vuoi che funzioni il software del tuo server di gioco su ogni istanza del parco istanze? La configurazione di runtime indica Amazon GameLift Servers quale software server eseguire e come.
+ Per le flotte di container, la configurazione predefinita funziona per il tuo gioco? Amazon GameLift Serverssvolge gran parte del lavoro per voi per ottimizzare le configurazioni della flotta di container, ma potete personalizzare la maggior parte delle impostazioni di configurazione.

# Scegli le risorse di elaborazione per una flotta gestita
<a name="gamelift-compute"></a>

Per l'hosting Amazon GameLift Servers gestito, inclusi EC2 gestito e container gestiti, il servizio distribuisce i server di gioco su flotte di risorse informatiche in. Cloud AWS Quando crei una flotta gestita, desideri configurare le risorse di hosting per adattarle al meglio al tuo gioco. Questo argomento illustra i punti decisionali chiave nella scelta e nella configurazione delle flotte di hosting dei giochi.

**Nota**  
Se stai creando una soluzione ibrida con Anywhere e flotte Amazon GameLift Servers gestite, utilizza questi argomenti per progettare flotte gestite da integrare alle tue risorse autogestite. Per informazioni, consulta [Implementa flotte di hosting per Amazon GameLift Servers](fleets-intro.md).

**Topics**
+ [Posizioni geografiche](#gamelift-compute-location)
+ [Sistemi operativi](#gamelift-compute-os)
+ [Tipi di istanza](#gamelift-compute-instance)
+ [On-Demand Instances versus Spot Instances](#gamelift-compute-spot)
+ [Service Quotas](#gamelift-service-limits)

## Posizioni geografiche
<a name="gamelift-compute-location"></a>

Valuta dove intendi installare i tuoi server di gioco. In generale, vuoi mettere i server di gioco il più vicino possibile ai giocatori per offrire la migliore esperienza di gioco possibile. Per l'hosting Amazon GameLift Servers gestito, puoi scegliere di collocare i server di gioco in una qualsiasi delle Local Zone supportate Regioni AWS e nelle Local Zone. Se stai creando una soluzione ibrida, considera in che modo l'implementazione gestita della flotta può integrare le sedi delle tue flotte Amazon GameLift Servers Anywhere autogestite.

Per la maggior parte degli scenari di sviluppo e test, l'implementazione in un'unica sede ha senso. Mentre ci si prepara al lancio e in seguito, ci sono molti motivi per implementare l'implementazione in più aree geografiche. Questi includono il supporto di un ampio gruppo di giocatori e il miglioramento della resilienza e dell'affidabilità complessive dell'hosting di giochi. Inoltre, più sedi possono migliorare l'esperienza dei giocatori, velocizzando il posizionamento delle sessioni di gioco e offrendo più scelte per ottimizzare i posizionamenti in termini di latenza e costi.

Per un elenco delle sedi supportate da Amazon GameLift Servers e ulteriori informazioni sulle sedi per tutti i tipi di flotta, consulta. [Amazon GameLift Serverssedi di assistenza](gamelift-regions.md)

Flotte con più sedi

Una singola flotta gestita può distribuire risorse in più sedi. È possibile impostare manualmente la capacità per ogni singola sede in un parco veicoli con più sedi.

Vantaggi dell'utilizzo di una flotta con più sedi: 
+ Implementazione e gestione semplificate della flotta: fornisci il software del server di gioco e la configurazione del parco macchine e Amazon GameLift Servers li distribuisci sulle istanze del parco istanze in più sedi (crea una sola volta, distribuisci ovunque). In una flotta di produzione, puoi visualizzare e gestire tutte le sedi di una flotta anziché dover gestire più flotte, ognuna situata in una regione diversa.
+ Disponibilità delle zone locali: se si desidera utilizzare una zona locale, è necessario creare un parco veicoli con più sedi con una Regione AWS sede principale e Local Zones come postazioni remote. Le Local Zones sono estensioni in Regioni AWS grado di offrire una latenza ancora inferiore alle aree e ai clienti che ne hanno bisogno. È possibile aggiungere una zona locale a qualsiasi parco macchine con più sedi; non è necessario includere la zona principale della zona locale. Regione AWS
+ Compatibilità con le code per le sessioni di gioco: puoi creare code per il posizionamento delle sessioni di gioco con una o più flotte multiple. Questo approccio offre flessibilità alla coda nell'assegnazione delle priorità e nella scelta delle località in cui ospitare una nuova sessione di gioco.
+ Utilizzo efficiente delle risorse: con l'auto-scaling attivatoAmazon GameLift Servers, è possibile ottimizzare meglio la scalabilità della capacità in tutte le sedi di una flotta.

Suggerimenti per l'utilizzo di flotte con più sedi: 
+ Verifica le quote relative al numero di sedi per flotta. Regione AWS Vedere [Quote di servizio Amazon GameLift Servers](https://docs.aws.amazon.com/general/latest/gr/gamelift.html#limits_gamelift).
+ Non tutti i tipi di istanze sono disponibili in tutte le località. A seconda delle sedi scelte, potresti avere opzioni di tipo di istanza limitate. La Amazon GameLift Servers console fornisce strumenti utili per aiutarti a trovare il giusto equilibrio tra posizioni e tipi di istanze. 
+ Prendi in considerazione l'idea [UDP ping beacon](reference-udp-ping-beacons.md) di utilizzarla per raccogliere i dati sulla latenza dei giocatori per tutte le sedi della tua flotta. Amazon GameLift Serverspuò utilizzare questi dati per ottimizzare le sessioni di gioco in modo da ridurre la latenza e impedire ai giocatori di partecipare a sessioni con una latenza inaccettabilmente elevata. 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.

## Sistemi operativi
<a name="gamelift-compute-os"></a>

Tutte le istanze di una flotta gestita vengono distribuite con un'Amazon Machine Image (AMI) che fornisce un ambiente di runtime completo per il software del server di gioco. Per le flotte EC2 gestite, specifichi il sistema operativo della build del server di gioco quando carichi la build su. Amazon GameLift Servers Per le flotte di container gestite, specifichi il sistema operativo nella definizione del gruppo di contenitori. Per ulteriori informazioni sulle versioni AMI più recenti, vedere[Amazon GameLift ServersVersioni AMI](reference-ec2-ami-version-history.md).

Le versioni AMI vengono aggiornate regolarmente. Quando crei una nuova flotta, Amazon GameLift Servers assegna l'ultima versione disponibile dell'AMI che hai selezionato per la build del gioco. Tutte le istanze distribuite in quella flotta utilizzano la stessa versione. Per mantenere la versione dell'AMI aggiornata con gli ultimi aggiornamenti di sicurezza e software, devi sostituire regolarmente le tue flotte. Come best practice, consigliamo di sostituire le flotte gestite ogni 30 giorni per mantenere l'ambiente di runtime dei server di gioco. Per le linee guida, consulta [Best practice relative alla sicurezza di Amazon GameLift Servers](security-best-practices.md).

## Tipi di istanza
<a name="gamelift-compute-instance"></a>

Il tipo di istanze di un parco istanze gestito determina il tipo di hardware da distribuire per tutte le istanze del parco istanze e i tipi di istanze sono generalmente disponibili in varie dimensioni. Tutte le flotte Amazon GameLift Servers gestite utilizzano istanze Amazon EC2 e supportano un'ampia gamma di tipi di istanze che offrono diverse combinazioni di potenza di calcolo, memoria, storage e funzionalità di rete. La disponibilità dei tipi di istanze varia a seconda delle posizioni scelte. 

La Amazon GameLift Servers console fornisce strumenti utili per aiutarti a trovare i tipi di istanza giusti per la build del gioco e le posizioni di distribuzione. Per le flotte di container gestite, la console offre anche indicazioni sui requisiti di alimentazione e memoria della CPU del gioco.

Quando scegli tra i tipi di istanze disponibili per il tuo gioco, considera:
+ L'architettura di calcolo del tuo server di gioco: x64 o Arm (AWS Graviton).
**Nota**  
Le istanze Graviton Arm richiedono una build del server per un'AMI Linux. Per C\$1\$1 e C\$1 è richiesto Server SDK 5.1.1 o versione successiva. Per Go è richiesto Server SDK 5.0 o versione successiva. Queste istanze non forniscono out-of-the-box supporto per l'installazione di Mono su Amazon Linux 2023 (AL2023) o Amazon Linux 2 (AL2). 
+ I requisiti di elaborazione, memoria e archiviazione della build del tuo server di gioco. 
+ La dimensione del tipo di istanza. Oltre a soddisfare i requisiti degli eseguibili del software del server di gioco, istanze di dimensioni maggiori possono eseguire più and/or contenitori di processi del server di gioco su ciascuna istanza. I fattori da considerare includono i costi (è più economico eseguire alcune istanze di grandi dimensioni o molte istanze piccole). Considera anche in che modo la capacità della sessione di gioco potrebbe essere influenzata dall'aggiunta o dalla rimozione di istanze durante gli eventi di ridimensionamento della flotta o quando si chiudono istanze non funzionanti. Se ogni istanza esegue più processi del server di gioco contemporaneamente, l'aggiunta o la rimozione di un'istanza può influire in modo significativo sulla capacità di hosting del gioco. 

Per ulteriori informazioni su questi tipi di istanze, consulta [Tipi di istanze Amazon EC2](https://aws.amazon.com/ec2/instance-types/).

## On-Demand Instances versus Spot Instances
<a name="gamelift-compute-spot"></a>

Le istanze On-Demand di Amazon EC2 e le istanze Spot offrono lo stesso hardware e le stesse prestazioni, ma differiscono in termini di disponibilità e costi.

**Istanze on demand**  
Puoi acquistare un'istanza on demand quando ne hai bisogno e conservarla per tutto il tempo che desideri. Le istanze on demand hanno un costo fisso, il che significa che paghi solo per il tempo in cui le utilizzi. Non ci sono impegni a lungo termine.

**Spot Instances**  
Le istanze Spot possono offrire un'alternativa conveniente alle istanze on demand utilizzando la capacità di elaborazione inutilizzata. AWS I prezzi delle istanze Spot variano in base alla domanda e all'offerta per ogni tipo di istanza in ogni sede. AWS può recuperare le istanze Spot con una notifica di due minuti ogni volta che ha bisogno di ripristinare la capacità e le sessioni di gioco in esecuzione attiva su un'istanza recuperata vengono interrotte. 

Amazon GameLift Serversoffre diversi strumenti per ridurre la probabilità di interruzioni delle sessioni di gioco tramite Spot. Un algoritmo di viabilità spot tiene traccia dei dati storici sul tipo di istanza per anticipare quando il rischio di interruzione raggiunge un punto critico ed evita di collocare nuove sessioni di gioco su istanze Spot di quel tipo. Se si verifica un'interruzione, i server di gioco possono utilizzare la notifica per terminare correttamente una sessione di gioco per i giocatori.

L'hosting di giochi con flotte Spot deve utilizzare una coda per il posizionamento delle sessioni di gioco. Una coda è in grado di dare priorità ai posizionamenti delle sessioni di gioco in base alla redditività della flotta Spot, ai costi e ad altri fattori. Consulta questi argomenti per ulteriori informazioni su come sfruttare Spot per l'hosting dei tuoi server di gioco: 
+ [Riduci i costi di hosting dei giochi con le flotte Spot](fleets-spot.md)
+ [Crea una coda per le istanze Spot](spot-tasks.md)

## Service Quotas
<a name="gamelift-service-limits"></a>

Puoi visualizzare le quote di servizio predefinite Amazon GameLift Servers e lo stato attuale delle quote Account AWS utilizzando i seguenti strumenti:
+ Per informazioni generali sulle quote di servizio perAmazon GameLift Servers, consulta [Amazon GameLift Serversendpoint e quote](https://docs.aws.amazon.com/general/latest/gr/gamelift.html) in. *Riferimenti generali di AWS*
+ Per un elenco dei tipi di istanze disponibili per ubicazione per il tuo account, apri la pagina delle [quote di servizio](https://console.aws.amazon.com/gamelift/service-quotas) della console. Amazon GameLift Servers Questa pagina mostra anche l'uso corrente del tuo account per ogni tipo di istanza in ogni sede.
+ Per un elenco delle quote correnti del tuo account, per esempio i tipi di istanza per regione, esegui il comando AWS Command Line Interface [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/describe-ec2-instance-limits.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/describe-ec2-instance-limits.html)(AWS CLI). Questo comando restituisce il numero di istanze attive presenti nella regione predefinita (o in un'altra regione specificata).

[Mentre ti prepari a lanciare il gioco, compila un questionario di lancio nella console. Amazon GameLift Servers](https://console.aws.amazon.com/gamelift/) Il Amazon GameLift Servers team utilizza il questionario di lancio per determinare le quote e i limiti corretti per il gioco.

# 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 i 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 contenitore](#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\$1512 CPU).

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

Quando Amazon GameLift Servers distribuisci gruppi di container su un'istanza della flotta, non tutta la memoria dell'istanza è disponibile per i contenitori. 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 è composto da 1.024: MaxGroupsByMemory = floor (7.188/(1.024 \$1 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, è possibile 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\$1ONLY o READ\$1WRITE).
+ `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 i 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. 

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 della flotta 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 \$1 20 gruppi di contenitori di server di gioco per istanza \$1 1 porta container per istanza]
  + Migliore pratica: **42 porte [porte** minime\$1 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 contenitore
<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.

# Riduci i costi di hosting dei giochi con le flotte Spot
<a name="fleets-spot"></a>

Quando si ospitano server di gioco multiplayer utilizzando l'hosting Amazon GameLift Servers gestito, le istanze Spot possono fornire un'alternativa conveniente alle istanze On-Demand. Il modello di prezzo Spot offre lo stesso hardware e le stesse prestazioni di On-Demand, ma con risparmi sui costi potenzialmente significativi (fino al 70-90%). Tuttavia, presentano un limite: quando è AWS necessario ripristinare la capacità, può recuperare queste istanze con una notifica di interruzione di due minuti. 

Amazon GameLift Serversriduce il rischio di interruzioni per l'hosting di server di gioco. Amazon GameLift Serversprevede la probabilità di interruzioni sui tipi di istanze Spot ed evita di mettere a rischio le sessioni di gioco su eventuali istanze. Se si verifica un'interruzione rara, la notifica ti consente di terminare senza problemi una sessione di gioco per i giocatori.

## Come Amazon GameLift Servers funziona con le flotte Spot
<a name="spot-fleet-howitworks"></a>

Quando configuri le flotte Spot per l'hosting di giochi, valuta Amazon GameLift Servers continuamente i tipi e le sedi delle istanze della flotta Spot per verificarne la fattibilità. 
+ L'algoritmo di fattibilità di Spot analizza i modelli di disponibilità recenti e i tassi di interruzione storici dei tipi di istanze Spot in base alla posizione.
+ Sulla base di questa analisi, Amazon GameLift Servers identifica i tipi di istanze Spot e le posizioni in cui esiste un potenziale inaccettabile di interruzione della sessione di gioco. Intraprende le seguenti azioni: 
  + Contrassegna la combinazione di tipo e posizione dell'istanza come temporaneamente non valida.
  + Quando si effettuano nuove sessioni di gioco, non viene presa in considerazione alcuna postazione della flotta Spot non utilizzabile. Di conseguenza, le sessioni di gioco vengono collocate solo nelle sedi della flotta Spot che hanno un'alta probabilità di ospitare server di gioco ininterrotti.
  + Prosciuga le istanze esistenti dal parco istanze Spot, anche se AWS non le recupera, quindi non pagherai per istanze che non possono essere utilizzate per l'hosting di giochi. Se la protezione delle sessioni di gioco è attivata, le istanze vengono chiuse solo dopo il completamento delle sessioni di gioco attive.
+ Amazon GameLift Serversrivaluta continuamente i tipi di istanze e le ubicazioni della flotta Spot per garantire la fattibilità dell'hosting dei giochi. Quando un tipo di istanza precedentemente non utilizzabile diventa nuovamente utilizzabile sulla base di dati storici aggiornati, puoi ampliare nuovamente la flotta Spot e Amazon GameLift Servers riprendere a utilizzare tale istanza per le sessioni di gioco.

## Considerazioni di natura progettuale
<a name="spot-fleet-design"></a>

Quando progetti la tua soluzione per utilizzare le flotte Spot, considera i seguenti aspetti:
+ **Valuta la durata della sessione di gioco**: la durata media delle sessioni di gioco può influire sull'efficacia di Spot per il gioco. Con sessioni di gioco più brevi, una maggiore rapidità di risposta consente alle sessioni di gioco di funzionare su tipi di istanze valide sulla base dei dati storici più recenti. Le sessioni di gioco più lunghe continuano a essere eseguite su tipi di istanze senza valutare i dati di fattibilità recenti, con un rischio maggiore di interruzione nel tempo.
+ **Valuta la disponibilità dei tipi di istanze**: non tutte le sedi del parco istanze offrono tutti i tipi di istanze come Spot. Quando scegli un tipo di istanza per il tuo parco istanze Spot, utilizza lo strumento di creazione del parco istanze su Amazon GameLift Servers console per aiutarti a trovare i tipi di istanze Spot nelle località di cui hai bisogno. Con questo strumento, puoi selezionare le sedi del tuo parco veicoli e quindi visualizzare la disponibilità dei tipi di istanza in tali sedi.
+ **Crea flotte Spot con più sedi**: puoi creare flotte Spot con più sedi. Un'unica flotta Spot multisede distribuisce istanze dello stesso tipo in più Local Regioni AWS Zones. L'algoritmo di fattibilità Spot valuta la fattibilità in base al tipo e alla posizione dell'istanza. Se l'ubicazione di una flotta Spot viene valutata come non praticabile, ciò non influisce sulle altre postazioni del parco veicoli, che possono comunque essere utilizzate per ospitare sessioni di gioco.
+ **Crea code con la diversità della flotta Spot**: se utilizzi le flotte Spot per l'hosting dei giochi, devi impostare una coda per il posizionamento delle sessioni di gioco. Per ogni nuova richiesta di sessione di gioco, la coda cerca le risorse disponibili per l'hosting dei giochi e seleziona l'opzione migliore possibile. Con le flotte Spot, desideri una coda in grado di effettuare ricerche tra più flotte che variano in base alla località e al tipo di istanza e desideri includere almeno una flotta On-Demand come capacità di backup. Una coda multi-flotta ben progettata che offre diverse opzioni di posizionamento è altamente resiliente contro interruzioni, rallentamenti e interruzioni. Per ulteriori indicazioni sulla progettazione di una coda per Spot, consulta. [Crea una coda per le istanze Spot](spot-tasks.md)
+ **Gestisci le interruzioni con garbo: configura il tuo server di gioco in modo** da ridurre al minimo l'impatto sui giocatori in caso di interruzione di Spot. Quando AWS recupera un'istanza Spot, Amazon GameLift Servers trasmette la notifica di interruzione a tutti i processi del server interessati utilizzando la funzione di callback dell'SDK del server. `onProcessTerminate()` Il gioco deve implementare questo callback per terminare correttamente la sessione di gioco. Per ulteriori informazioni, consulta [Rispondi a una notifica di chiusura del processo del server](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate).
**Nota**  
AWS compie ogni sforzo per fornire la notifica prima di recuperare un'istanza, ma è possibile che AWS recuperi l'istanza Spot prima che arrivi l'avviso. Dovresti anche preparare il tuo server di gioco per gestire interruzioni impreviste.
+ **Configura l'auto-scaling per le tue flotte di backup per mantenere il servizio durante un'interruzione Spot.** L'auto-scaling con tracciamento del target mantiene un buffer di capacità e si ridimensiona automaticamente in base alla domanda. Con l'auto-scaling, le flotte di backup (Spot o On-Demand) inizieranno ad aumentare la capacità ogni volta che iniziano a ricevere più richieste di sessioni di gioco. 

  Per sostituire rapidamente la capacità persa quando una flotta Spot diventa inutilizzabile, un meccanismo di scalabilità personalizzato può utilizzare le metriche disponibili relative alla coda e alla flotta per avviare una rapida scalabilità delle flotte di backup. Rileva quando le flotte Spot diventano inutilizzabili con metriche come, e. `FirstChoiceOutOfCapacity` `FirstChoiceNotViable` `PercentAvailableGameSessions` Stima le esigenze di capacità sostitutiva analizzando i dati metrici recenti. `PlacementsStarted` Dopo aver ridimensionato le flotte di backup per gestire la domanda immediata, può prendere il sopravvento l'auto-scaling normale.
+ **Integrazione con FlexMatch**: se la tua soluzione utilizza un FlexMatch matchmaker, non ci sono requisiti speciali per le flotte Spot. Puoi configurare un matchmaker per utilizzare una coda con le flotte Spot. Amazon GameLift Serversassegna automaticamente la priorità ai piazzamenti delle partite tra le flotte Spot e On-Demand, anche quando si effettuano nuove sessioni di gioco e quando si riempiono gli slot vuoti nelle sessioni di gioco esistenti.

# Ottimizza la configurazione del runtime del server di gioco su server gestiti Amazon GameLift Servers
<a name="fleets-multiprocess"></a>

Puoi configurare la configurazione di runtime di una flotta EC2 gestita per eseguire più processi del server di gioco per istanza. Questo utilizza le risorse di hosting in modo più efficiente.

## In che modo un parco istanze gestisce più processi
<a name="fleets-multiprocess-howitworks"></a>

Amazon GameLift Serversutilizza la configurazione di runtime di una flotta per determinare il tipo e il numero di processi da eseguire su ciascuna istanza. Una configurazione di runtime contiene almeno una configurazione del processo del server che rappresenta un eseguibile del server di gioco. Puoi definire configurazioni aggiuntive dei processi del server per eseguire altri tipi di processi relativi al tuo gioco. Ogni configurazione di processo server contiene le seguenti informazioni:
+ Il nome e il percorso del file eseguibile della build di gioco.
+ Parametri (facoltativi) da passare al processo all'avvio.
+ Il numero di processi da eseguire contemporaneamente.

Quando un'istanza del parco istanze si attiva, avvia il set di processi del server definiti nella configurazione di runtime. Con più processi, l'avvio di ogni processo viene Amazon GameLift Servers scaglionato. I processi server hanno una durata limitata. Al termine, Amazon GameLift Servers avvia nuovi processi per mantenere il numero e il tipo di processi del server definiti nella configurazione di runtime.

Puoi modificare una configurazione di runtime in qualsiasi momento aggiungendo, modificando o rimuovendo le configurazioni del processo del server. Ogni istanza verifica regolarmente la presenza di aggiornamenti alla configurazione di runtime del parco macchine per implementare le modifiche. Ecco come Amazon GameLift Servers adotta le modifiche alla configurazione di runtime:

1. L'istanza invia una richiesta Amazon GameLift Servers per la versione più recente della configurazione di runtime.

1. L'istanza confronta i processi attivi con l'ultima configurazione di runtime e quindi esegue le seguenti operazioni:
   + Se la configurazione di runtime aggiornata rimuove un tipo di processo del server, i processi server attivi di questo tipo continuano a funzionare fino al termine. L'istanza non sostituisce questi processi del server.
   + Se la configurazione di runtime aggiornata riduce il numero di processi simultanei per un tipo di processo server, i processi server in eccesso di questo tipo continuano a funzionare fino al termine. L'istanza non sostituisce questi processi server in eccesso.
   + Se la configurazione di runtime aggiornata aggiunge un nuovo tipo di processo del server o aumenta i processi concorrenti per un tipo esistente, l'istanza avvia nuovi processi del server, fino al Amazon GameLift Servers massimo. In questo caso, l'istanza avvia nuovi processi del server al termine dei processi esistenti.

## Ottimizza una flotta per più processi
<a name="fleets-multiprocess-changes"></a>

Per utilizzare più processi su una flotta, procedi come segue:
+ [Crea una build](gamelift-build-intro.md) che contenga gli eseguibili del server di gioco che desideri distribuire in una flotta, quindi carica la build su. Amazon GameLift Servers Tutti i server di gioco di una build devono funzionare sulla stessa piattaforma e utilizzare l'SDK del server per. Amazon GameLift Servers
+ Creare una configurazione di runtime con una o più configurazioni di processo del server e più processi simultanei.
+ Integra i client di gioco con la versione AWS SDK 2016-08-04 o successiva.

Per ottimizzare le prestazioni della flotta, ti consigliamo di fare quanto segue:
+ Gestisci gli scenari di arresto dei processi del server in modo da Amazon GameLift Servers poter riciclare i processi in modo efficiente. Esempio:
  + Aggiungi una procedura di spegnimento al codice del server di gioco che richiami l'API del server. `ProcessEnding()`
  + Implementa la funzione di callback `OnProcessTerminate()` nel codice del server di gioco per gestire le richieste di terminazione da. Amazon GameLift Servers
+ Assicurati che ciò Amazon GameLift Servers chiuda e riavvii i processi del server non integri. Riporta lo stato di salute a Amazon GameLift Servers implementando la funzione di `OnHealthCheck()` callback nel codice del server di gioco. Amazon GameLift Serverschiude automaticamente i processi del server segnalati come non integri per tre segnalazioni consecutive. Se non si esegue l'implementazione`OnHealthCheck()`, si Amazon GameLift Servers presume che un processo server sia integro, a meno che il processo non risponda a una comunicazione.

## Scegli il numero di processi per istanza
<a name="fleets-multiprocess-number"></a>

Quando decidi il numero di processi simultanei da eseguire su un'istanza, tieni presente quanto segue:
+ Amazon GameLift Servers limita ogni istanza a un [numero massimo di processi simultanei](https://docs.aws.amazon.com/general/latest/gr/gamelift.html#limits_gamelift). La somma di tutti i processi simultanei per le configurazioni dei processi del server di una flotta non può superare questa quota.
+ Per mantenere livelli di prestazioni accettabili, il tipo di istanza Amazon EC2 potrebbe limitare il numero di processi che possono essere eseguiti contemporaneamente. Prova diverse configurazioni per il tuo gioco per trovare il numero giusto di processi per il tuo tipo di istanza preferito.
+ Amazon GameLift Serversnon esegue più processi simultanei rispetto al numero totale configurato. Ciò significa che la transizione dalla precedente configurazione di runtime alla nuova configurazione potrebbe avvenire gradualmente.

# Collabora con l'Amazon GameLift Serversagente
<a name="integration-dev-iteration-agent"></a>

L'Amazon GameLift Serversagente supervisiona l'esecuzione dei processi dei server di gioco sulle vostre Amazon GameLift Servers flotte. L'agente viene distribuito su ogni computer di una flotta e fornisce la gestione automatizzata dei processi, la gestione dell'hosting e la registrazione per l'elaborazione. Per utilizzare l'Agent, è necessario che la build del server di gioco sia integrata con l'SDK del server per Amazon GameLift Servers la versione 5.x o successiva. 

L'Amazon GameLift Serversagente è disponibile esternamente per l'uso con Amazon GameLift Servers flotte che non sono flotte gestite. EC2 ( EC2 Le flotte gestite gestiscono automaticamente le attività dell'agente.) Puoi scegliere di gestire Amazon GameLift Servers flotte, incluse le flotte Anywhere, con o senza l'agente. Senza l'agente, è necessario fornire una soluzione alternativa per il completamento delle attività richieste. 

Quando viene distribuito su un computer, l'Amazon GameLift Serversagente deve essere avviato prima dell'avvio di qualsiasi processo del server di gioco. All'avvio, l'agente completa le seguenti attività:
+ Registra l'elaborazione con una flotta Amazon GameLift Servers Anywhere utilizzando l'API. [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)
+ Richiama l'[GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html)API per recuperare un token di autorizzazione e lo archivia per l'utilizzo da parte dei processi del server in esecuzione sul computer.
+ Imposta la variabile di ambiente WebSocket URL per il calcolo e stabilisce una WebSocket connessione al servizio. Amazon GameLift Servers
+ Richiede al servizio la versione più recente della configurazione di runtime della Amazon GameLift Servers flotta. 
+ Avvia e arresta i processi del server in base alle istruzioni di configurazione del runtime.

Il codice sorgente e le istruzioni di compilazione per l'Amazon GameLift Serversagente sono disponibili nell'[Amazon GameLift Serversagente](https://github.com/aws/amazon-gamelift-agent) GitHub.

## Informazioni sull'agente
<a name="gamelift-agent-usage"></a>

L'Amazon GameLift Serversagente è progettato per gestire le seguenti attività per le vostre flotte:

**Gestione dei processi**
+ Avvia nuovi processi del server come definito nelle istruzioni di runtime. L'agente potrebbe utilizzare una configurazione di runtime personalizzata distribuita con l'agente. In alternativa, puoi fornire una `RuntimeConfiguration` come parte della definizione del tuo parco veicoli. Questo approccio ha il vantaggio di poter modificare la configurazione di runtime della flotta in qualsiasi momento. L'agente richiede periodicamente configurazioni di runtime aggiornate dal Amazon GameLift Servers servizio.
+ Monitora le attivazioni dei processi del server e termina i processi quando non si attivano in tempo.
+ Invia battiti cardiaci a. Amazon GameLift Servers Se l'agente non riesce a inviare battiti cardiaci, il computer potrebbe essere contrassegnato come obsoleto.
+ Indica Amazon GameLift Servers quando termina un processo del server. Amazon GameLift Serversutilizza queste informazioni per monitorare la disponibilità del server di gioco per il posizionamento delle sessioni di gioco.
+ Emette eventi di flotta per i processi del server, tra cui: 
  + `SERVER_PROCESS_INVALID_PATH`: I parametri di avvio del processo del server di gioco non erano configurati correttamente.
  + `SERVER_PROCESS_TERMINATED_UNHEALTHY`: Il processo del server di gioco non ha segnalato un controllo sanitario valido entro 3 minuti dall'attivazione ed è stato quindi interrotto.
  + `SERVER_PROCESS_FORCE_TERMINATED`: il processo del server di gioco non è terminato correttamente dopo l'`OnProcessTerminate()`invio entro 30 secondi.
  + `SERVER_PROCESS_CRASHED`: Un processo del server di gioco si è bloccato per qualche motivo.

**Gestione del calcolo**
+ Riceve messaggi dal Amazon GameLift Servers servizio per arrestare l'elaborazione.
+ Richiede l'interruzione del calcolo da. Amazon GameLift Servers

**Registrazione di log**
+ Carica i log in un bucket Amazon S3 nel tuo account. AWS 

# Designazione astratta e Amazon GameLift Servers della flotta con un alias
<a name="aliases-intro"></a>

Un Amazon GameLift Servers *alias* viene utilizzato per astrarre una destinazione di hosting. Le destinazioni di hosting indicano Amazon GameLift Servers dove cercare le risorse disponibili per ospitare una nuova sessione di gioco per i giocatori. Gli alias sono utili nei seguenti scenari: 
+ Se il gioco non utilizza code con più flotte per il posizionamento delle sessioni di gioco, richiede nuove sessioni di gioco specificando un ID flotta. Amazon GameLift Servers Nel corso di una partita, sostituirai la flotta più volte, per aggiornare una build del server, aggiornare l'hardware e il sistema operativo di hosting o risolvere problemi di prestazioni. Usa un alias per estrarre l'ID della flotta in modo da poter trasferire senza problemi il traffico dei giocatori da un parco giocatori esistente a quello nuovo. 
+ Se vuoi fare qualcosa di diverso, basta creare una nuova sessione di gioco quando un client di gioco ne richiede una. Ad esempio, potresti voler indirizzare i giocatori che utilizzano un out-of-date client verso un sito Web di aggiornamento.

Un alias deve specificare una strategia di routing. Esistono due tipi. Una *semplice* strategia di routing indirizza il traffico dei giocatori verso un ID flotta specifico, che puoi aggiornare per reindirizzare il traffico. Una strategia di routing del *terminale* invia un messaggio al client invece di creare una nuova sessione di gioco. Puoi modificare la strategia di routing di un alias in qualsiasi momento.

Se utilizzi una coda per il posizionamento delle sessioni di gioco, non hai bisogno di un alias per reindirizzare il traffico quando sostituisci una flotta. Con una coda, puoi semplicemente aggiungere la nuova flotta e rimuovere quella vecchia. Questa azione non è visibile ai giocatori, perché le nuove richieste di sessioni di gioco vengono soddisfatte automaticamente utilizzando la nuova flotta. Non ha alcun impatto sulle sessioni di gioco esistenti. Puoi identificare le destinazioni delle code utilizzando un ID flotta o un alias. 



**Topics**
+ [Crea un Amazon GameLift Servers alias](aliases-creating.md)

# Crea un Amazon GameLift Servers alias
<a name="aliases-creating"></a>

Questo argomento descrive come creare un Amazon GameLift Servers alias da utilizzare per il posizionamento delle sessioni di gioco. 

**Per creare un alias**

Usa uno dei Amazon GameLift Servers console o AWS Command Line Interface (AWS CLI) per creare un alias. 

------
#### [ Console ]

Nella [Amazon GameLift Servers console](https://console.aws.amazon.com/gamelift/), usa il pannello di navigazione per aprire la pagina **Alias**.

1.  Scegli **Crea alias**.

1. **Inserisci un nome alias.** Ti consigliamo di includere caratteristiche significative nel nome dell'alias per facilitare la visualizzazione di un elenco di alias.

1. **Inserisci una descrizione dell'alias, se necessario.**

1. Scegliete una **strategia di routing** per l'alias.

   1. Se scegli una strategia di routing **semplice**, seleziona un ID flotta dall'elenco da associare a questo alias. L'elenco include tutte le flotte attualmente selezionate. Regione AWSÈ necessario creare un alias nella stessa regione della flotta.

   1. Se scegli una strategia di routing del **terminale**, inserisci il valore di stringa che desideri Amazon GameLift Servers per tornare a un client di gioco in risposta a una richiesta di sessione di gioco. Una richiesta con un alias di terminale genera un'eccezione con il messaggio incorporato.

1. (Facoltativo) Aggiungi **tag** alla risorsa alias. Ogni tag è composto da una chiave e da un valore opzionale, entrambi personalizzabili. Assegna tag alle AWS risorse che desideri classificare in modi utili, ad esempio per scopo, proprietario o ambiente. Scegli **Aggiungi nuovo tag** per ogni tag che desideri aggiungere. 

1. Quando sei pronto per implementare la nuova flotta, scegli **Crea**.

------
#### [ AWS CLI ]

Usa il [https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-alias.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-alias.html)comando per creare un alias.Amazon GameLift Servers crea la risorsa alias con l'impostazione predefinita corrente Regione AWS (oppure puoi aggiungere un tag --region per specificarne uno diverso). Regione AWS

Come minimo, includi un nome alias e una strategia di routing. Per una strategia di routing semplice, specifica l'ID di una flotta nella stessa regione dell'alias. Per una strategia di routing dei terminali, fornisci una stringa di messaggi.

------