

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

# Tutorial: Configura un parco istanze EC2 per avviare istanze on demand utilizzando le prenotazioni della capacità obiettivo
<a name="ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough"></a>

Questo tutorial illustra tutti i passaggi da eseguire in modo che il parco istanze EC2 avvii le istanze on demand sulle prenotazioni della capacità `targeted`.

Verrà illustrato come configurare un parco istanze per utilizzare prima le prenotazioni della capacità on demand `targeted` all'avvio delle istanze on demand. Verrà inoltre illustrato come configurare il parco istanze in modo che, quando la capacità on demand obiettivo totale supera il numero di prenotazioni della capacità inutilizzate disponibili, il parco istanze utilizzi la strategia di allocazione specificata per selezionare i pool di istanze in cui avviare la capacità obiettivo rimanente.

**Configurazione del parco istanze EC2**

In questo tutorial, il parco istanze è configurato come indicato di seguito:
+ Capacità obiettivo: 10 istanze on demand
+ Prenotazioni della capacità `targeted` inutilizzate totali: 6 (meno della capacità obiettivo on demand del parco istanze di 10 istanze on demand)
+ Numero di prenotazioni della capacità per pool: 2 (`us-east-1a` e `us-east-1b`)
+ Numero di prenotazioni della capacità per pool: 3
+ Strategia di allocazione on demand: `lowest-price`. (Quando il numero di prenotazioni della capacità inutilizzate è inferiore alla capacità obiettivo on demand, il parco istanze determina i pool in cui avviare la capacità on demand rimanente in base alla strategia di allocazione on demand.)

  Tenere presente che è anche possibile utilizzare la strategia di allocazione `prioritized` invece della strategia di allocazione `lowest-price`.

**Per avviare istanze on demand in prenotazioni della capacità `targeted` è necessario eseguire una serie di passaggi, come indicato di seguito:**
+ [Fase 1: creazione di prenotazioni della capacità](#ec2-fleet-odcr-step1)
+ [Fase 2: creazione di un gruppo di risorse di prenotazione della capacità](#ec2-fleet-odcr-step2)
+ [Fase 3: aggiunta delle prenotazioni della capacità al gruppo di risorse di prenotazione della capacità](#ec2-fleet-odcr-step3)
+ [(Facoltativo) Fase 4: visualizzazione delle prenotazioni delle capacità nel gruppo di risorse](#ec2-fleet-odcr-step4)
+ [Fase 5: creazione di un modello di avvio che specifichi che la prenotazione della capacità è destinata a un gruppo di risorse specifico](#ec2-fleet-odcr-step5)
+ [(Facoltativo) Fase 6: descrizione del modello di avvio](#ec2-fleet-odcr-step6)
+ [Fase 7: creazione di un parco istanze EC2](#ec2-fleet-odcr-step7)
+ [(Facoltativo) Fase 8: visualizzazione del numero di prenotazioni delle capacità non utilizzate rimanenti](#ec2-fleet-odcr-step8)

## Fase 1: creazione di prenotazioni della capacità
<a name="ec2-fleet-odcr-step1"></a>

Usa il [create-capacity-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-capacity-reservation.html)comando per creare le prenotazioni di capacità, tre per `us-east-1a` e altre tre per. `us-east-1b` Ad eccezione della zona di disponibilità, gli altri attributi delle prenotazioni della capacità sono identici.

**3 prenotazioni della capacità in `us-east-1a`**

```
aws ec2 create-capacity-reservation \
    --availability-zone us-east-1a \
    --instance-type c5.xlarge \
    --instance-platform Linux/UNIX \
    --instance-count 3 \
    --instance-match-criteria targeted
```

Esempio di ID prenotazione della capacità risultante

```
cr-1234567890abcdef1
```

**3 prenotazioni della capacità in `us-east-1b`**

```
aws ec2 create-capacity-reservation \
    --availability-zone us-east-1b \
    --instance-type c5.xlarge \
    --instance-platform Linux/UNIX \
    --instance-count 3 \
    --instance-match-criteria targeted
```

Esempio di ID prenotazione della capacità risultante

```
cr-54321abcdef567890
```

## Fase 2: creazione di un gruppo di risorse di prenotazione della capacità
<a name="ec2-fleet-odcr-step2"></a>

Utilizzare il servizio `resource-groups` e il comando [create-group](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/create-group.html) per creare un gruppo di risorse prenotazioni della capacità. In questo esempio, il gruppo di risorse è denominato `my-cr-group`. Per informazioni sul motivo per cui è necessario creare un gruppo di risorse, consulta [Utilizza le prenotazioni della capacità per prenotare la capacità on demand nel parco istanze EC2](ec2-fleet-on-demand-capacity-reservations.md).

```
aws resource-groups create-group \
    --name {{my-cr-group}} \
    --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'
```

## Fase 3: aggiunta delle prenotazioni della capacità al gruppo di risorse di prenotazione della capacità
<a name="ec2-fleet-odcr-step3"></a>

Utilizzare il servizio `resource-groups` e il comando [group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/group-resources.html) per aggiungere le prenotazioni della capacità create nella fase 1 al gruppo di risorse prenotazioni della capacità. Tieni presente che è necessario fare riferimento alle prenotazioni di capacità su richiesta tramite loroARNs.

```
aws resource-groups group-resources \
    --group {{my-cr-group}} \
    --resource-arns \
      arn:aws:ec2:{{us-east-1}}:{{123456789012}}:capacity-reservation/{{cr-1234567890abcdef1}} \
      arn:aws:ec2:{{us-east-1}}:{{123456789012}}:capacity-reservation/{{cr-54321abcdef567890}}
```

Output di esempio

```
{
   "Failed": [], 
   "Succeeded": [ 
   "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", 
   "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" 
   ] 
}
```

## (Facoltativo) Fase 4: visualizzazione delle prenotazioni delle capacità nel gruppo di risorse
<a name="ec2-fleet-odcr-step4"></a>

Utilizza il `resource-groups` servizio e il [list-group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/list-group-resources.html)comando per descrivere facoltativamente il gruppo di risorse per visualizzarne le prenotazioni di capacità.

```
aws resource-groups list-group-resources --group {{my-cr-group}}
```

Output di esempio

```
{
    "ResourceIdentifiers": [
        {
            "ResourceType": "AWS::EC2::CapacityReservation",
            "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1"
        },
        {
            "ResourceType": "AWS::EC2::CapacityReservation",
            "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890"
        }
    ]
}
```

## Fase 5: creazione di un modello di avvio che specifichi che la prenotazione della capacità è destinata a un gruppo di risorse specifico
<a name="ec2-fleet-odcr-step5"></a>

Utilizzate il [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html)comando per creare un modello di avvio in cui specificare le prenotazioni di capacità da utilizzare. In questo esempio, il parco istanze utilizza le prenotazioni della capacità `targeted` che sono state aggiunte a un gruppo di risorse. Pertanto, i dati del modello di avvio specificano che la prenotazione della capacità è destinata a un gruppo di risorse specifico. In questo esempio, il modello di avvio è denominato `my-launch-template`. 

```
aws ec2 create-launch-template \
    --launch-template-name {{my-launch-template}} \
    --launch-template-data \
        '{"ImageId": "ami-{{0123456789example}}",
          "CapacityReservationSpecification": 
            {"CapacityReservationTarget": 
                { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:{{us-east-1}}:{{123456789012}}:group/{{my-cr-group}}" }
            }
        }'
```

## (Facoltativo) Fase 6: descrizione del modello di avvio
<a name="ec2-fleet-odcr-step6"></a>

Utilizzate il [describe-launch-template-versions](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-launch-template-versions.html)comando per descrivere facoltativamente il modello di lancio per visualizzarne la configurazione.

```
aws ec2 describe-launch-template-versions --launch-template-name {{my-launch-template}}
```

Output di esempio

```
{
    "LaunchTemplateVersions": [
        {
            "LaunchTemplateId": "lt-01234567890example",
            "LaunchTemplateName": "my-launch-template",
            "VersionNumber": 1,
            "CreateTime": "2021-01-19T20:50:19.000Z",
            "CreatedBy": "arn:aws:iam::123456789012:user/Admin",
            "DefaultVersion": true,
            "LaunchTemplateData": {
                "ImageId": "ami-0947d2ba12ee1ff75",
                "CapacityReservationSpecification": {
                    "CapacityReservationTarget": {
                        "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group"
                    }
                }
            }
        }
    ]
}
```

## Fase 7: creazione di un parco istanze EC2
<a name="ec2-fleet-odcr-step7"></a>

Creare un parco istanze EC2 che specifichi le informazioni di configurazione per le istanze che avvierà. La seguente configurazione del parco istanze EC2 mostra solo le configurazioni pertinenti per questo esempio. Il modello di avvio `my-launch-template` è il modello di avvio creato al passaggio 5. Esistono due pool di istanze, entrambi con lo stesso tipo di istanza (`c5.xlarge`) ma con diverse zone di disponibilità (`us-east-1a` e `us-east-1b`). Il prezzo dei pool di istanze è lo stesso perché la determinazione dei prezzi è definita per la Regione, non per la zona di disponibilità. La capacità obiettivo totale è 10 e il tipo di capacità obiettivo predefinito è `on-demand`. La strategia di allocazione on demand è `lowest-price`. La strategia di utilizzo per la prenotazione della capacità è `use-capacity-reservations-first`.

**Nota**  
Il tipo di parco istanze deve essere `instant`. Altri tipi di parchi istanze non supportano `use-capacity-reservations-first`.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "{{my-launch-template}}",
                "Version": "1"
            },
            "Overrides": [
               {
                   "InstanceType": "{{c5.xlarge}}",
                   "AvailabilityZone": "{{us-east-1a}}"
               },
               {
                    "InstanceType": "{{c5.xlarge}}",
                    "AvailabilityZone": "{{us-east-1b}}"
               }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": {{10}},
        "DefaultTargetCapacityType": "{{on-demand}}"
    },
    "OnDemandOptions": {
        "AllocationStrategy": "{{lowest-price}}",
        "CapacityReservationOptions": {
             "UsageStrategy": "use-capacity-reservations-first"
         }
    },
    "Type": "instant"
}
```

Dopo aver creato il parco istanze `instant` utilizzando la configurazione precedente, vengono avviate le seguenti 10 istanze per soddisfare la capacità obiettivo:
+ Le prenotazioni della capacità vengono prima utilizzate per avviare 6 istanze on demand nel modo seguente:
  + 3 istanze on demand vengono avviate in 3 prenotazioni della capacità `c5.xlarge` `targeted` in `us-east-1a`
  + 3 istanze on demand vengono avviate in 3 prenotazioni della capacità `c5.xlarge` `targeted` in `us-east-1b`
+ Per soddisfare la capacità obiettivo, vengono avviate 4 istanze on demand aggiuntive nella capacità on demand in base alla strategia di allocazione on demand che in questo esempio è `lowest-price`. Tuttavia, poiché i pool hanno lo stesso prezzo (poiché il prezzo è per Regione e non per zona di disponibilità), il parco istanze avvia le restanti 4 istanze on demand in uno dei pool.

## (Facoltativo) Fase 8: visualizzazione del numero di prenotazioni delle capacità non utilizzate rimanenti
<a name="ec2-fleet-odcr-step8"></a>

Dopo il lancio della flotta, puoi facoltativamente eseguire l'operazione [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html)per vedere quante prenotazioni di capacità non utilizzate sono rimaste. In questo esempio, dovresti vedere la seguente risposta, che mostra che tutti i Prenotazioni di capacità del pool sono stati utilizzati.

```
{ "CapacityReservationId":  "cr-111",
     "InstanceType":  "c5.xlarge",  
     "AvailableInstanceCount":  0
}

 { "CapacityReservationId":  "cr-222",
     "InstanceType":  "c5.xlarge", 
     "AvailableInstanceCount":  0
}
```