

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

# Opzioni di archiviazione per le attività di Amazon ECS
<a name="using_data_volumes"></a>

Amazon ECS ti offre opzioni di archiviazione easy-to-use dei dati flessibili, convenienti e a seconda delle tue esigenze. Amazon ECS supporta le seguenti opzioni di volume di dati per i container:


| Volume di dati | Capacità supportata | Sistemi operativi supportati | Persistenza di archiviazione | Casi d’uso | 
| --- | --- | --- | --- | --- | 
| Amazon Elastic Block Store (Amazon EBS) | Fargate, Amazon EC2, Istanze gestite da Amazon ECS | Linux, Windows (solo su Amazon EC2) | Può essere mantenuto se collegato a un'attività autonoma. Effimero se associato a un'attività gestita da un servizio. | I volumi Amazon EBS forniscono un'archiviazione a blocchi conveniente, durevole e ad alte prestazioni per carichi di lavoro containerizzati a uso intensivo di dati. I casi d'uso più comuni includono carichi di lavoro transazionali come database, desktop virtuali e volumi root, nonché carichi di lavoro ad alta intensità di throughput come l'elaborazione dei log e i carichi di lavoro ETL. Per ulteriori informazioni, consulta [Usare i volumi Amazon EBS con Amazon ECS](ebs-volumes.md). | 
| Amazon Elastic File System (Amazon EFS) | Fargate, Amazon EC2, Istanze gestite da Amazon ECS | Linux | Persistente | I volumi di Amazon EFS offrono uno spazio di archiviazione di file condiviso, semplice, scalabile e persistente da utilizzare con i processi Amazon ECS che aumentano e si riducono automaticamente con l'aggiunta e la rimozione di file. I volumi Amazon EFS supportano la concorrenza e sono utili per le applicazioni containerizzate che scalano orizzontalmente e richiedono funzionalità di storage come bassa latenza, throughput elevato e coerenza. read-after-write I casi d'uso più comuni includono carichi di lavoro come analisi dei dati, elaborazione multimediale, gestione dei contenuti e server Web. Per ulteriori informazioni, consulta [Usare i volumi Amazon EFS con Amazon ECS](efs-volumes.md). | 
| File server Amazon FSx per Windows | Amazon EC2 | Windows | Persistente | FSx i volumi per Windows File Server forniscono file server Windows completamente gestiti che puoi utilizzare per eseguire il provisioning delle attività Windows che richiedono uno storage di file persistente, distribuito, condiviso e statico. I casi d'uso più comuni includono le applicazioni.NET che potrebbero richiedere cartelle locali come archiviazione persistente per salvare gli output delle applicazioni. Amazon FSx for Windows File Server offre una cartella locale nel contenitore che consente la lettura e la scrittura di più contenitori sullo stesso file system supportato da una condivisione SMB. Per ulteriori informazioni, consulta [Utilizzo FSx per volumi Windows File Server con Amazon ECS](wfsx-volumes.md). | 
| Amazon FSx per NetApp ONTAP | Amazon EC2 | Linux | Persistente | I volumi Amazon FSx for NetApp ONTAP forniscono file system NetApp ONTAP completamente gestiti che puoi utilizzare per eseguire il provisioning di attività Linux che richiedono uno storage di file condiviso persistente, ad alte prestazioni e ricco di funzionalità. Amazon FSx for NetApp ONTAP supporta i protocolli NFS e SMB e fornisce funzionalità di livello aziendale come istantanee, clonazione e deduplicazione dei dati. I casi d'uso più comuni includono carichi di lavoro di elaborazione ad alte prestazioni, repository di contenuti e applicazioni che richiedono uno storage condiviso conforme a POSIX. Per ulteriori informazioni, consulta [Montaggio dei file system Amazon FSx for NetApp ONTAP dai contenitori Amazon ECS.](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/mount-ontap-ecs-containers.html) | 
| Volumi Docker | Amazon EC2 | Windows, Linux | Persistente | I volumi Docker sono una funzionalità del runtime del container Docker che consente ai container di mantenere i dati in modo persistente montando una directory dal file system dell'host. I driver del volume docker (detti anche plugin) vengono utilizzati per integrare i volumi dei container ai sistemi di archiviazione esterni. I volumi Docker possono essere gestiti da driver di terzi o dal driver integrato local. I casi d'uso comuni dei volumi Docker includono la fornitura di volumi di dati persistenti o la condivisione di volumi in posizioni diverse su container diversi sulla stessa istanza di container. Per ulteriori informazioni, consulta [Utilizzo dei volumi Docker con Amazon ECS](docker-volumes.md). | 
| Montaggi vincolati | Fargate, Amazon EC2, Istanze gestite da Amazon ECS | Windows, Linux | Effimero | I montaggi Bind sono costituiti da un file o una directory sull'host, ad esempio un'istanza AWS Fargate Amazon EC2, montata su un contenitore. I casi d'uso più comuni per i montaggi vincolati includono la condivisione di un volume da un container di origine con altri container nella stessa attività, o il montaggio di un volume host o di un volume vuoto in uno o più container. Per ulteriori informazioni, consulta [Utilizzo di montaggio vincolato con Amazon ECS](bind-mounts.md). | 

# Usare i volumi Amazon EBS con Amazon ECS
<a name="ebs-volumes"></a>

I volumi Amazon Elastic Block Store (Amazon EBS) forniscono un'archiviazione a blocchi ad alta disponibilità, conveniente, durevole e ad alte prestazioni per carichi di lavoro a uso intensivo di dati. I volumi Amazon EBS possono essere utilizzati con le attività di Amazon ECS per applicazioni con throughput elevato e transazioni intensive. Per ulteriori informazioni sui volumi Amazon EBS, consultare [Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) nella *Guida per l'utente di Amazon EBS*.

I volumi Amazon EBS collegati alle attività di Amazon ECS sono gestiti da Amazon ECS per tuo conto. Durante l'avvio di un'attività autonoma, è possibile fornire la configurazione che verrà utilizzata per collegare un volume EBS all'attività. Durante la creazione o l'aggiornamento del servizio, puoi fornire la configurazione che verrà utilizzata per allegare un volume EBS per attività a ciascuna attività gestita dal servizio Amazon ECS. È possibile configurare nuovi volumi vuoti per gli allegati oppure utilizzare snapshot per caricare dati da volumi esistenti.

**Nota**  
Quando si utilizzano gli snapshot per configurare i volumi, è possibile specificare un intervallo `volumeInitializationRate`, in MiB/s, in corrispondenza del quale i dati vengono recuperati dallo snapshot per creare volumi completamente inizializzati in un periodo di tempo prevedibile. Per ulteriori informazioni sull'inizializzazione dei volumi, consultare [Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) nella *Guida per l'utente di Amazon EBS*. Per ulteriori informazioni sulla configurazione dei volumi Amazon EBS, consultare [Rimanda la configurazione del volume all'ora di avvio nella definizione di un'attività di Amazon ECS](specify-ebs-config.md) e [Specificare la configurazione del volume Amazon EBS nell'implementazione di Amazon ECS](configure-ebs-volume.md).

La configurazione del volume viene posticipata al momento dell'avvio utilizzando il parametro `configuredAtLaunch` nella definizione dell'attività. Fornendo la configurazione del volume al momento dell'avvio anziché nella definizione dell'attività, è possibile creare definizioni delle attività che non sono limitate a un tipo di volume di dati specifico o a impostazioni specifiche del volume EBS. È quindi possibile riutilizzare le definizioni delle attività in diversi ambienti di runtime. Ad esempio, è possibile fornire un maggiore throughput durante l'implementazione per i carichi di lavoro di produzione rispetto agli ambienti pre-produzione.

 I volumi Amazon EBS collegati alle attività possono essere crittografati con AWS Key Management Service (AWS KMS) chiavi per proteggere i dati. Per ulteriori informazioni, consultare [Crittografia dei dati archiviati nei volumi Amazon EBS allegati alle attività Amazon ECS](ebs-kms-encryption.md).

Per monitorare le prestazioni del volume, puoi anche utilizzare i CloudWatch parametri di Amazon. Per ulteriori informazioni sulle metriche di Amazon ECS per i volumi Amazon EBS, consultare [Metriche di Amazon ECS CloudWatch](available-metrics.md) e [Amazon ECS Container Insights metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html).

Il collegamento di un volume Amazon EBS a un'attività è supportato in tutte le aziende commerciali e nelle [Regioni AWS](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#region) in Cina, che supportano Amazon ECS.

## Sistemi operativi e capacità supportati
<a name="ebs-volumes-configuration"></a>

La tabella seguente fornisce il sistema operativo e le configurazioni di capacità supportate.


| Capacity | Linux  | Windows | 
| --- | --- | --- | 
| Fargate |  I volumi Amazon EBS sono supportati nella versione della piattaforma 1.4.0 o successiva (Linux). Per ulteriori informazioni, consulta [Versioni della piattaforma Fargate per Amazon ECS](platform-fargate.md). | Non supportata | 
| EC2 | I volumi Amazon EBS sono supportati per le attività ospitate su istanze Nitro basate con Amazon Machine Images () ottimizzato per Amazon ECS. AMIs Per ulteriori informazioni sui tipi di istanza, consultare [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) nella Guida dell'utente di Amazon EC2. I volumi Amazon EBS sono supportati su AMI `20231219` ottimizzate per ECS o versioni successive. Per ulteriori informazioni, consulta [Retrieving Amazon ECS-Optimized AMI metadata](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/retrieve-ecs-optimized_AMI.html). | Attività ospitate su istanze Nitro basate con Amazon Machine Images AMIs () ottimizzate per Amazon ECS. Per ulteriori informazioni sui tipi di istanza, consultare [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) nella Guida dell'utente di Amazon EC2. I volumi Amazon EBS sono supportati su AMI `20241017` ottimizzate per ECS o versioni successive. Per ulteriori informazioni, consultare [Retrieving Amazon ECS-Optimized Windows AMI metadata](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/retrieve-ecs-optimized_windows_AMI.html). | 
| Istanze gestite da Amazon ECS | I volumi Amazon EBS sono supportati per le attività ospitate su Istanze gestite da Amazon ECS su Linux. | Non supportata | 

## Considerazioni
<a name="ebs-volume-considerations"></a>

 Quando si usano i volumi Amazon EBS, si tenga presente quanto segue:
+ Non è possibile configurare i volumi Amazon EBS per il collegamento alle attività Fargate Amazon ECS nella zona di disponibilità `use1-az3`.
+ Il tipo di volume Amazon EBS magnetico (`standard`) non è supportato per le attività ospitate su Fargate. Per ulteriori informazioni sui tipi di volume Amazon EBS, consultare [Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) nella *Guida per l'utente di Amazon EC2*.
+ Un ruolo IAM dell'infrastruttura di Amazon ECS è necessario quando si crea un servizio o un'attività autonoma che consiste nella configurazione di un volume al momento dell'implementazione. È possibile allegare la policy IAM `AmazonECSInfrastructureRolePolicyForVolumes` gestita da AWS al ruolo, oppure è possibile utilizzare la policy gestita come guida per creare e allegare la policy con autorizzazioni che soddisfino le esigenze specifiche. Per ulteriori informazioni, consulta [Ruolo IAM dell’infrastruttura Amazon ECS](infrastructure_IAM_role.md).
+ È possibile allegare al massimo un volume Amazon EBS a ciascuna attività Amazon ECS e deve trattarsi di un nuovo volume. Non è possibile collegare un volume Amazon EBS esistente a un'attività. Tuttavia, è possibile configurare un nuovo volume Amazon EBS al momento dell'implementazione utilizzando lo snapshot di un volume esistente.
+ Per utilizzare i volumi Amazon EBS con i servizi Amazon ECS, il comando dell'implementazione deve essere `ECS`. Quando si utilizza questo controller di blue/green distribuzione sono supportate sia le strategie di rolling che quelle di distribuzione.
+ Affinché un contenitore della tua attività possa scrivere sul volume Amazon EBS montato, deve disporre delle autorizzazioni di file system appropriate. Quando specifichi un utente non root nella definizione del contenitore, Amazon ECS configura automaticamente il volume con autorizzazioni basate sul gruppo che consentono all'utente specificato di leggere e scrivere sul volume. Se non viene specificato alcun utente, il contenitore funziona come root e ha pieno accesso al volume.
+ Amazon ECS allega automaticamente i tag riservati `AmazonECSCreated` e `AmazonECSManaged` a un volume Amazon EBS. Se si rimuovono questi tag dal volume, Amazon ECS non sarà in grado di gestire il volume per conto dell'utente. Per ulteriori informazioni sulla menzione di volumi Amazon EBS, consultare [Tagging Amazon EBS volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specify-ebs-config.html#ebs-volume-tagging). Per ulteriori informazioni sull'etichettare le risorse di Amazon ECS, consultare [Tagging your Amazon ECS resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html).
+ Il provisioning di volumi da uno snapshot di un volume Amazon EBS che contiene partizioni non è supportato.
+ I volumi collegati alle attività gestite da un servizio non vengono conservati e vengono sempre eliminati al termine della stessa.
+ Non è possibile configurare i volumi Amazon EBS per il collegamento alle attività di Amazon ECS che vengono eseguite su AWS Outposts.

# Comportamento degli utenti non root
<a name="ebs-non-root-behavior"></a>

Quando specifichi un utente non root nella definizione del contenitore, Amazon ECS configura automaticamente il volume Amazon EBS con autorizzazioni basate sul gruppo che consentono all'utente specificato di leggere e scrivere sul volume. Il volume è montato con le seguenti caratteristiche:
+ Il volume è di proprietà dell'utente root e del gruppo root.
+ Le autorizzazioni di gruppo sono impostate per consentire l'accesso in lettura e scrittura.
+ L'utente non root viene aggiunto al gruppo appropriato per accedere al volume.

Segui queste best practice quando usi volumi Amazon EBS con contenitori non root:
+ Usa user IDs (UIDs) e group IDs (GIDs) coerenti tra le immagini del contenitore per garantire autorizzazioni coerenti.
+ Precrea le directory dei punti di montaggio nell'immagine del contenitore e imposta la proprietà e le autorizzazioni appropriate.
+ Testa i tuoi contenitori con volumi Amazon EBS in un ambiente di sviluppo per confermare che le autorizzazioni del file system funzionino come previsto.
+ Se più contenitori per la stessa attività condividono un volume, assicurati che utilizzino un volume compatibile UIDs/GIDs o installino il volume con aspettative di accesso coerenti.

# Rimanda la configurazione del volume all'ora di avvio nella definizione di un'attività di Amazon ECS
<a name="specify-ebs-config"></a>

Per configurare un volume Amazon EBS per gli allegati dell'attività, è necessario specificare il punto di montaggio nella definizione di attività e dare un nome al volume. È inoltre necessario impostare `configuredAtLaunch` su `true` perché i volumi Amazon EBS non possono essere configurati per l'allegato nella definizione dell'attività. Invece, i volumi Amazon EBS sono configurati per l'allegato durante l'implementazione.

Per registrare la definizione dell'attività utilizzando AWS Command Line Interface (AWS CLI), salvate il modello come file JSON, quindi passate il file come input per il `[register-task-definition](https://docs.aws.amazon.com/cli/latest/reference/ecs/register-task-definition.html)` comando. 

Per creare e registrare una definizione di attività utilizzando il Console di gestione AWS, vedere[Creazione di una definizione di attività di Amazon ECS attraverso la nuova console](create-task-definition.md).

La definizione di attività seguente illustra la sintassi degli oggetti `mountPoints` e `volumes` nella definizione di attività. Per ulteriori informazioni sui parametri per la definizione di attività, consultare [Parametri di definizione di attività Amazon ECS per Fargate](task_definition_parameters.md). Per utilizzare questo comando, sostituire `user input placeholders` con le proprie informazioni.

## Linux
<a name="linux-example"></a>

```
{
    "family": "mytaskdef",
    "containerDefinitions": [
        {
            "name": "nginx",
            "image": "public.ecr.aws/nginx/nginx:latest",
            "networkMode": "awsvpc",
           "portMappings": [
                {
                    "name": "nginx-80-tcp",
                    "containerPort": 80,
                    "hostPort": 80,
                    "protocol": "tcp",
                    "appProtocol": "http"
                }
            ],
            "mountPoints": [
                {
                    "sourceVolume": "myEBSVolume",
                    "containerPath": "/mount/ebs",
                    "readOnly": true
                }
            ]
        }
    ],
    "volumes": [
        {
            "name": "myEBSVolume",
            "configuredAtLaunch": true
        }
    ],
    "requiresCompatibilities": [
        "FARGATE", "EC2"
    ],
    "cpu": "1024",
    "memory": "3072",
    "networkMode": "awsvpc"
}
```

## Windows
<a name="windows-example"></a>

```
{
    "family": "mytaskdef",
     "memory": "4096",
     "cpu": "2048",
    "family": "windows-simple-iis-2019-core",
    "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole",
    "runtimePlatform": {"operatingSystemFamily": "WINDOWS_SERVER_2019_CORE"},
    "requiresCompatibilities": ["EC2"]
    "containerDefinitions": [
        {
             "command": ["New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p>'; C:\\ServiceMonitor.exe w3svc"],
            "entryPoint": [
                "powershell",
                "-Command"
            ],
            "essential": true,
            "cpu": 2048,
            "memory": 4096,
            "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019",
            "name": "sample_windows_app",
            "portMappings": [
                {
                    "hostPort": 443,
                    "containerPort": 80,
                    "protocol": "tcp"
                }
            ],
            "mountPoints": [
                {
                    "sourceVolume": "myEBSVolume",
                    "containerPath": "drive:\ebs",
                    "readOnly": true
                }
            ]
        }
    ],
    "volumes": [
        {
            "name": "myEBSVolume",
            "configuredAtLaunch": true
        }
    ],
    "requiresCompatibilities": [
        "FARGATE", "EC2"
    ],
    "cpu": "1024",
    "memory": "3072",
    "networkMode": "awsvpc"
}
```

`mountPoints`  
Tipo: array di oggetti  
Obbligatorio: no  
I punti di montaggio per i volumi di dati nel container. Questo parametro è mappato ai `Volumes` nella creazione container dell'API Docker e l'opzione `--volume` per docker run.  
I container Windows possono montare intere directory sulla stessa unità di `$env:ProgramData`. I container Windows non possono montare le directory su un'unità diversa e i punti di montaggio non possono essere utilizzati tra le unità. È necessario specificare i punti di montaggio per collegare un volume Amazon EBS direttamente a un'attività Amazon ECS.    
`sourceVolume`  
Tipo: String  
Obbligatorio: sì, quando si utilizzano `mountPoints`  
Il nome del volume da montare.  
`containerPath`  
Tipo: String  
Obbligatorio: sì, quando si utilizzano `mountPoints`  
Il percorso nel container in cui verrà montato il volume.  
`readOnly`  
Tipo: Booleano  
Obbligatorio: no  
Se il valore è `true`, il container avrà accesso in sola lettura al volume. Se il valore è `false`, il container avrà accesso in scrittura al volume. Il valore predefinito è `false`.  
Per le attività su istanze EC2 che eseguono il sistema operativo Windows, lasciare il valore predefinito di `false`.

`name`  
▬Tipo: stringa  
Obbligatorio: no  
Nome del volume. Il nome può contenere un massimo di 255 lettere (maiuscole e minuscole), numeri, trattini (`-`) e trattini bassi (`_`). Nel parametro `sourceVolume` dell'oggetto `mountPoints` della definizione del container viene fatto riferimento a questo nome.

`configuredAtLaunch`  
Tipo: Booleano  
Obbligatorio: sì, quando vuoi collegare un volume EBS direttamente a un'attività.  
Specificare se un volume è configurabile all'avvio. Se impostato su `true`, è possibile configurare il volume quando si esegue un'attività autonoma o quando si crea o si aggiorna un servizio. Se impostato su `false`, non sarà possibile fornire un'altra configurazione di volume nella definizione dell'attività. Questo parametro deve essere fornito e impostato su `true` per configurare un volume Amazon EBS da allegare a un'attività.

# Crittografia dei dati archiviati nei volumi Amazon EBS allegati alle attività Amazon ECS
<a name="ebs-kms-encryption"></a>

Puoi usare AWS Key Management Service (AWS KMS) per creare e gestire chiavi crittografiche che proteggono i tuoi dati. I volumi Amazon EBS vengono crittografati a riposo utilizzando AWS KMS keys. I seguenti tipi di dati sono crittografati:
+ Dati archiviati quando inattivi sul volume
+ I/O del disco
+ Snapshot creati dal volume
+ Nuovi volumi creati da snapshot crittografati

I volumi Amazon EBS collegati alle attività possono essere crittografati utilizzando un Chiave gestita da AWS predefinito con un alias `alias/aws/ebs` o una chiave simmetrica gestita dal cliente specificata nella configurazione del volume. Chiavi gestite da AWS I valori predefiniti sono unici Account AWS per ciascun utente Regione AWS e vengono creati automaticamente. Per creare una chiave simmetrica gestita dal cliente, seguire le fasi descritte in [Creazione delle chiavi KMS per la crittografia simmetrica](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) nella *Guida per gli sviluppatori di AWS KMS *.

Puoi configurare la crittografia Amazon EBS per impostazione predefinita in modo che tutti i nuovi volumi creati e collegati a un'attività in una determinata operazione Regione AWS vengano crittografati utilizzando la chiave KMS specificata per il tuo account. Per ulteriori informazioni sulla crittografia di Amazon EBS e la crittografia per impostazione predefinita, consultare [Amazon EBS encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) nella *Guida per l'utente di Amazon EBS*.

## Comportamento di Istanze gestite da Amazon ECS
<a name="managed-instances"></a>

È possibile crittografare i volumi Amazon EBS abilitando la crittografia, utilizzando la crittografia per impostazione predefinita o abilitando la crittografia al momento della creazione di un volume che si desidera crittografare. Per informazioni su come abilitare la crittografia per impostazione predefinita (a livello di account), consultare [Encryption by default](https://docs.aws.amazon.com/ebs/latest/userguide/encryption-by-default.html) nella *Guida per l'utente di Amazon EBS*.

È possibile configurare qualsiasi combinazione di questi tasti. L'ordine di precedenza delle chiavi KMS è il seguente:

1. La chiave KMS specificata nella configurazione del volume. Quando si specifica una chiave KMS nella configurazione del volume, questa sostituisce l'impostazione predefinita di Amazon EBS e qualsiasi chiave KMS specificata a livello di account.

1. La chiave KMS specificata a livello di account. Quando si specifica una chiave KMS per la crittografia a livello di cluster dello storage gestito di Amazon ECS, questa sostituisce la crittografia predefinita di Amazon EBS ma non sostituisce alcuna chiave KMS specificata nella configurazione del volume.

1. Crittografia predefinita di Amazon EBS. La crittografia predefinita si applica quando non si specifica né una chiave KMS a livello di account né una chiave nella configurazione del volume. Se abiliti la crittografia Amazon EBS per impostazione predefinita, l'impostazione predefinita è la chiave KMS che specifichi per la crittografia per impostazione predefinita. Altrimenti, l'impostazione predefinita è Chiave gestita da AWS con l'alias `alias/aws/ebs`.
**Nota**  
Se si imposta `encrypted` a `false` nella configurazione del volume, non si specifica alcuna chiave KMS a livello di account e si abilita la crittografia Amazon EBS per impostazione predefinita, il volume verrà comunque crittografato con la chiave specificata per la crittografia Amazon EBS per impostazione predefinita.

## Comportamento di Istanze non gestite da Amazon ECS
<a name="non-managed-instances"></a>

È possibile anche configurare la crittografia a livello di cluster di Amazon ECS per l'archiviazione gestita da Amazon ECS quando si crea o aggiorna un cluster. La crittografia a livello di cluster ha effetto a livello di attività e può essere utilizzata per crittografare i volumi di Amazon EBS collegati a ciascuna attività in esecuzione in un cluster specifico utilizzando la chiave KMS specificata. Per ulteriori informazioni sulla configurazione della crittografia a livello di cluster per ogni attività, consulta il riferimento [ManagedStorageConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ManagedStorageConfiguration.html)alle *API di Amazon ECS.*

È possibile configurare qualsiasi combinazione di questi tasti. L'ordine di precedenza delle chiavi KMS è il seguente:

1. La chiave KMS specificata nella configurazione del volume. Quando si specifica una chiave KMS nella configurazione del volume, questa sostituisce l'impostazione predefinita di Amazon EBS e qualsiasi chiave KMS specificata a livello di cluster.

1. La chiave KMS specificata a livello di cluster. Quando si specifica una chiave KMS per la crittografia a livello di cluster dello storage gestito di Amazon ECS, questa sostituisce la crittografia predefinita di Amazon EBS ma non sostituisce alcuna chiave KMS specificata nella configurazione del volume.

1. Crittografia predefinita di Amazon EBS. La crittografia predefinita si applica quando non si specifica né una chiave KMS a livello di cluster né una chiave nella configurazione del volume. Se abiliti la crittografia Amazon EBS per impostazione predefinita, l'impostazione predefinita è la chiave KMS che specifichi per la crittografia per impostazione predefinita. Altrimenti, l'impostazione predefinita è Chiave gestita da AWS con l'alias. `alias/aws/ebs`
**Nota**  
Se si imposta `encrypted` a `false` nella configurazione del volume, non specifichi alcuna chiave KMS a livello di cluster e abiliti la crittografia Amazon EBS per impostazione predefinita, il volume verrà comunque crittografato con la chiave specificata per la crittografia Amazon EBS per impostazione predefinita.

## Policy delle chiavi KMS gestite dal cliente
<a name="ebs-kms-encryption-policy"></a>

Per crittografare un volume EBS collegato all'attività utilizzando una chiave gestita dal cliente, è necessario configurare la policy della chiave KMS per garantire che il ruolo IAM utilizzato per la configurazione del volume disponga delle autorizzazioni necessarie per utilizzare la chiave. La policy della chiave deve includere le autorizzazioni `kms:CreateGrant` e `kms:GenerateDataKey*`. Le autorizzazioni `kms:ReEncryptTo` e `kms:ReEncryptFrom` sono necessarie per crittografare i volumi creati utilizzando gli snapshot. Se desideri configurare e crittografare solo nuovi volumi vuoti da allegare, puoi escludere le autorizzazioni `kms:ReEncryptTo` e `kms:ReEncryptFrom`. 

Il seguente frammento di codice JSON mostra le dichiarazioni della policy della chiave che puoi allegare alla policy della chiave KMS. L'utilizzo di queste istruzioni consentirà ad Amazon ECS di utilizzare la chiave per crittografare il volume EBS. Per usare gli esempi di dichiarazioni della policy, sostituire `user input placeholders` con le proprie informazioni. Come sempre, configurare solo le autorizzazioni necessarie.

```
{
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::111122223333:role/ecsInfrastructureRole" },
      "Action": "kms:DescribeKey",
      "Resource":"*"
    },
    {
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::111122223333:role/ecsInfrastructureRole" },
      "Action": [
      "kms:GenerateDataKey*",
      "kms:ReEncryptTo",
      "kms:ReEncryptFrom"
      ],
      "Resource":"*",
      "Condition": {
        "StringEquals": {
          "kms:CallerAccount": "aws_account_id",
          "kms:ViaService": "ec2.region.amazonaws.com"
        },
        "ForAnyValue:StringEquals": {
          "kms:EncryptionContextKeys": "aws:ebs:id"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::111122223333:role/ecsInfrastructureRole" },
      "Action": "kms:CreateGrant",
      "Resource":"*",
      "Condition": {
        "StringEquals": {
          "kms:CallerAccount": "aws_account_id",
          "kms:ViaService": "ec2.region.amazonaws.com"
        },
        "ForAnyValue:StringEquals": {
          "kms:EncryptionContextKeys": "aws:ebs:id"
        },
        "Bool": {
          "kms:GrantIsForAWSResource": true
        }
      }
    }
```

Per maggiori informazioni sulle autorizzazioni e le policy della chiave, consultare [Key policies in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) e [permissions AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) nella *Guida per sviluppatori di AWS KMS *. Per la risoluzione dei problemi degli allegati dei volumi EBS relativi alle autorizzazioni chiave, consultare [Risoluzione dei problemi relativi ai volumi di Amazon EBS collegati alle attività di Amazon ECS](troubleshoot-ebs-volumes.md).

# Specificare la configurazione del volume Amazon EBS nell'implementazione di Amazon ECS
<a name="configure-ebs-volume"></a>

Dopo aver registrato una definizione di attività con il parametro `configuredAtLaunch` impostato su `true`, puoi configurare un volume Amazon EBS durante l'implementazione quando esegui un'attività autonoma o quando crei o aggiorni un servizio. Per ulteriori informazioni su come posticipare la configurazione del volume all'ora di avvio utilizzando il parametro `configuredAtLaunch`, consultare [Rimanda la configurazione del volume all'ora di avvio nella definizione di un'attività di Amazon ECS](specify-ebs-config.md).

Per configurare un volume, puoi utilizzare Amazon ECS APIs oppure puoi passare un file JSON come input per i seguenti comandi: AWS CLI 
+ `[run-task](https://docs.aws.amazon.com/cli/latest/reference/ecs/run-task.html)` per eseguire un'attività ECS autonoma.
+ `[start-task](https://docs.aws.amazon.com/cli/latest/reference/ecs/start-task.html)` per eseguire un'attività ECS autonoma in un'istanza di container specifica. Questo comando non è applicabile alle attività di Fargate.
+ `[create-service](https://docs.aws.amazon.com/cli/latest/reference/ecs/create-service.html)` per creare un nuovo servizio ECS.
+ `[update-service](https://docs.aws.amazon.com/cli/latest/reference/ecs/update-service.html)` per aggiornare un servizio esistente.

**Nota**  
Affinché un contenitore della tua attività possa scrivere sul volume Amazon EBS montato, deve disporre delle autorizzazioni di file system appropriate. Quando specifichi un utente non root nella definizione del contenitore, Amazon ECS configura automaticamente il volume con autorizzazioni basate sul gruppo che consentono all'utente specificato di leggere e scrivere sul volume. Se non viene specificato alcun utente, il contenitore funziona come root e ha pieno accesso al volume.

 È possibile anche configurare un volume Amazon EBS utilizzando Console di gestione AWS. Per ulteriori informazioni, consultare [Esecuzione di un'applicazione come attività Amazon ECS](standalone-task-create.md), [Creazione di un'implementazione di aggiornamenti continui di Amazon ECS](create-service-console-v2.md) e [Aggiornamento di un servizio Amazon ECS](update-service-console-v2.md).

Il seguente frammento di codice JSON mostra tutti i parametri di un volume Amazon EBS che può essere configurato al momento dell'implementazione. Per utilizzare questi parametri per la configurazione del volume, sostituire `user input placeholders` con le proprie informazioni. Per ulteriori informazioni sui parametri di configurazione, consultare [Volume configurations](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service_definition_parameters.html#sd-volumeConfigurations).

```
"volumeConfigurations": [
        {
            "name": "ebs-volume", 
            "managedEBSVolume": {
                "encrypted": true, 
                "kmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", 
                "volumeType": "gp3", 
                "sizeInGiB": 10, 
                "snapshotId": "snap-12345", 
                "volumeInitializationRate":100,
                "iops": 3000, 
                "throughput": 125, 
                "tagSpecifications": [
                    {
                        "resourceType": "volume", 
                        "tags": [
                            {
                                "key": "key1", 
                                "value": "value1"
                            }
                        ], 
                        "propagateTags": "NONE"
                    }
                ], 
                "roleArn": "arn:aws:iam::1111222333:role/ecsInfrastructureRole", 
                 "terminationPolicy": {
                    "deleteOnTermination": true//can't be configured for service-managed tasks, always true 
                },
                "filesystemType": "ext4"
            }
        }
    ]
```

**Importante**  
Assicurarsi che `volumeName`, specificato nella configurazione, sia uguale a `volumeName`, specificato nella definizione dell'attività.

Per informazioni sulla verifica dello stato del volume dell'allegato, consultare [Risoluzione dei problemi relativi ai volumi di Amazon EBS collegati alle attività di Amazon ECS](troubleshoot-ebs-volumes.md). Per informazioni sul ruolo dell'infrastruttura Amazon ECS AWS Identity and Access Management (IAM) necessario per l'allegato del volume EBS, consulta. [Ruolo IAM dell’infrastruttura Amazon ECS](infrastructure_IAM_role.md)

Di seguito sono riportati alcuni frammenti di esempio JSON che mostrano la configurazione dei volumi Amazon EBS. Questi esempi possono essere utilizzati salvando gli snippet in file JSON e passando i file come parametri (utilizzando il parametro) per i `--cli-input-json file://filename` comandi. AWS CLI Sostituisci `user input placeholders` con le informazioni appropriate.

## Configurare un volume per un'attività autonoma
<a name="ebs-run-task"></a>

Il seguente frammento mostra la sintassi per configurare i volumi di Amazon EBS per l'allegato a un'attività autonoma. Il seguente frammento di codice JSON mostra la sintassi per la configurazione delle impostazioni `volumeType`, `sizeInGiB`, `encrypted` e `kmsKeyId`. La configurazione specificata nel file JSON viene utilizzata per creare e allegare un volume EBS all'attività autonoma.

```
{
   "cluster": "mycluster",
   "taskDefinition": "mytaskdef",
   "volumeConfigurations": [
        {
            "name": "datadir",
            "managedEBSVolume": {
                "volumeType": "gp3",
                "sizeInGiB": 100,
                "roleArn":"arn:aws:iam::1111222333:role/ecsInfrastructureRole",
                "encrypted": true,
                "kmsKeyId": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
            }
        }
   ]
}
```

## Configurare un volume al momento della creazione del servizio
<a name="ebs-create-service"></a>

Il seguente frammento mostra la sintassi per configurare i volumi di Amazon EBS per l'allegato alle attività gestite da un servizio. I volumi provengono dallo snapshot specificato utilizzando il parametro `snapshotId` a una velocità di 200 MiB/s. La configurazione specificata nel file JSON viene utilizzata per creare e allegare un volume EBS a ogni attività gestita da un servizio.

```
{
   "cluster": "mycluster",
   "taskDefinition": "mytaskdef",
   "serviceName": "mysvc",
   "desiredCount": 2,
   "volumeConfigurations": [
        {
            "name": "myEbsVolume",
            "managedEBSVolume": {
              "roleArn":"arn:aws:iam::1111222333:role/ecsInfrastructureRole",
              "snapshotId": "snap-12345",
              "volumeInitializationRate": 200
            }
        }
   ]
}
```

## Configura un volume al momento dell'aggiornamento del servizio
<a name="ebs-update-service"></a>

Il seguente frammento di codice JSON mostra la sintassi per l'aggiornamento di un servizio che in precedenza non aveva volumi Amazon EBS configurati per il collegamento alle attività. È necessario fornire l'ARN di una revisione della definizione dell'attività con `configuredAtLaunch` impostato su `true`. Il seguente frammento di codice JSON mostra la sintassi per la configurazione delle impostazioni `volumeType`, `sizeInGiB`, `throughput`, `iops` e `filesystemType`. Questa configurazione viene utilizzata per creare e allegare un volume EBS a ogni attività gestita da un servizio.

```
{
   "cluster": "mycluster",
   "taskDefinition": "mytaskdef",
   "service": "mysvc",
   "desiredCount": 2,
   "volumeConfigurations": [
        {
            "name": "myEbsVolume",
            "managedEBSVolume": {
              "roleArn":"arn:aws:iam::1111222333:role/ecsInfrastructureRole",
               "volumeType": "gp3",
                "sizeInGiB": 100,
                 "iops": 3000, 
                "throughput": 125, 
                "filesystemType": "ext4"
            }
        }
   ]
}
```

### Configurare un servizio per non utilizzare più i volumi Amazon EBS
<a name="ebs-service-disable-ebs"></a>

Il seguente frammento di codice JSON mostra la sintassi per aggiornare un servizio in modo che non utilizzi più i volumi Amazon EBS. È necessario fornire l'ARN di una definizione di attività con `configuredAtLaunch` impostato su `false` o una definizione di attività senza il parametro `configuredAtLaunch`. È inoltre necessario fornire un oggetto `volumeConfigurations` vuoto.

```
{
   "cluster": "mycluster",
   "taskDefinition": "mytaskdef",
   "service": "mysvc",
   "desiredCount": 2,
   "volumeConfigurations": []
}
```

## Policy di terminazione per i volumi di Amazon EBS
<a name="ebs-volume-termination-policy"></a>

Quando si termina un'attività Amazon ECS, questo utilizza il valore `deleteOnTermination` per determinare se il volume Amazon EBS associato all'attività terminata deve essere eliminato. Per impostazione predefinita, i volumi EBS collegati alle attività vengono eliminati quando l'attività viene terminata. Per le attività autonome, è possibile modificare questa impostazione per preservare il volume al termine dell'attività.

**Nota**  
I volumi collegati alle attività gestite da un servizio non vengono conservati e vengono sempre eliminati al termine della stessa.

## Tag volumi Amazon EBS
<a name="ebs-volume-tagging"></a>

È possibile etichettare i volumi Amazon EBS utilizzando l'oggetto `tagSpecifications`. Utilizzando l'oggetto, è possibile fornire tag personalizzati e impostare la propagazione dei tag dalla definizione dell'attività o dal servizio, a seconda che il volume sia collegato a un'attività autonoma o a un'attività in un servizio. Il numero massimo di tag che è possibile collegare a un volume è pari a 50.

**Importante**  
Amazon ECS allega automaticamente i tag `AmazonECSManaged` e `AmazonECSCreated` riservati a un volume Amazon EBS. Ciò significa che è possibile controllare l'allegato di un massimo di 48 tag aggiuntivi a un volume. Questi tag aggiuntivi possono essere tag definiti dall'utente, gestiti da ECS o propagati.

Se si desidera aggiungere tag gestiti da Amazon ECS al proprio volume, è necessario impostare `enableECSManagedTags` su `true` nella propria chiamata `UpdateService`, `CreateService`, `RunTask` o `StartTask`. Se si attivano i tag gestiti da Amazon ECS, quest'ultimo etichetterà automaticamente il volume con informazioni su cluster e servizi (`aws:ecs:clusterName` e `aws:ecs:serviceName`). Per ulteriori informazioni sull'etichettare le risorse di Amazon ECS, consultare [Tagging your Amazon ECS resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html).

Il seguente frammento di codice JSON mostra la sintassi per etichettare ogni volume Amazon EBS collegato a ciascuna attività in un servizio con un tag definito dall'utente. Per utilizzare questo esempio per la creazione di un servizio, sostituisci `user input placeholders` con le tue informazioni.

```
{
   "cluster": "mycluster",
   "taskDefinition": "mytaskdef",
   "serviceName": "mysvc",
   "desiredCount": 2,
   "enableECSManagedTags": true,
   "volumeConfigurations": [
        {
            "name": "datadir",
            "managedEBSVolume": {
                "volumeType": "gp3",
                "sizeInGiB": 100,
                 "tagSpecifications": [
                    {
                        "resourceType": "volume", 
                        "tags": [
                            {
                                "key": "key1", 
                                "value": "value1"
                            }
                        ], 
                        "propagateTags": "NONE"
                    }
                ],
                "roleArn":"arn:aws:iam:1111222333:role/ecsInfrastructureRole",
                "encrypted": true,
                "kmsKeyId": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
            }
        }
   ]
}
```

**Importante**  
È necessario specificare un tipo di risorsa `volume` per etichettare i volumi Amazon EBS.

# Prestazioni dei volumi Amazon EBS per le attività on-demand di Fargate
<a name="ebs-fargate-performance-limits"></a>

Il volume, gli IOPS e il throughput di base di Amazon EBS disponibili per un'attività on demand di Fargate dipendono dal numero totale di unità CPU richieste per l'attività. Se si richiede 0,25, 0,5 o 1 unità CPU virtuale (vCPU) per l'attività Fargate, consigliamo di configurare un volume SSD per uso generico (`gp2` o`gp3`) o un volume Unità disco rigido (HDD) (`st1` o `sc1`). Se si richiede più di 1 vCPU per l'attività Fargate, i seguenti limiti di prestazioni di base si applicano a un volume Amazon EBS collegato all'attività. È possibile ottenere temporaneamente prestazioni EBS superiori ai seguenti limiti. Consigliamo, tuttavia, di pianificare il carico di lavoro in base a questi limiti.


| Unità CPU richieste (in v) CPUs | IOPS di base di Amazon EBS (16 KiB I/O) | Throughput di base di Amazon EBS (in, MiBps 128 KB di I/O) | Larghezza di banda della rete di base (in Mbps) | 
| --- | --- | --- | --- | 
| 2 | 3.000 | 75 | 360 | 
| 4 | 5.000 | 120 | 1.150 | 
| 8 | 10.000 | 250 | 2.300 | 
| 16 | 15.000 | 500 | 4.500 | 

**Nota**  
 Quando si configura un volume Amazon EBS per il collegamento a un'attività Fargate, il limite di prestazioni di Amazon EBS per l'attività Fargate viene condiviso tra l'archivio temporaneo dell'attività e il volume allegato.

# Prestazioni dei volumi Amazon EBS per le attività EC2
<a name="ebs-fargate-performance-limits-ec2"></a>

Amazon EBS fornisce i tipi di volume, che presentano caratteristiche di prestazioni e prezzi diversi, consentendo di definire le prestazioni e i costi di archiviazione in base alle esigenze imposte dalle proprie applicazioni. Per informazioni sulle prestazioni, inclusi IOPS per volume e throughput per volume, consultare [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) nella *Guida per l'utente di Amazon Elastic Block Store*.

# Prestazioni dei volumi Amazon EBS per le attività di istanze gestite da Amazon ECS
<a name="ebs-managed-instances-performance"></a>

Amazon EBS fornisce i tipi di volume, che presentano caratteristiche di prestazioni e prezzi diversi, consentendo di definire le prestazioni e i costi di archiviazione in base alle esigenze imposte dalle proprie applicazioni. Per informazioni sulle prestazioni, inclusi IOPS per volume e throughput per volume, consultare [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) nella *Guida per l'utente di Amazon Elastic Block Store*.

# Risoluzione dei problemi relativi ai volumi di Amazon EBS collegati alle attività di Amazon ECS
<a name="troubleshoot-ebs-volumes"></a>

Potrebbe essere necessario risolvere i problemi o verificare il collegamento dei volumi Amazon EBS alle attività di Amazon ECS.

## Verificare lo stato di collegamento dei volumi
<a name="troubleshoot-ebs-volumes-location"></a>

Puoi utilizzare il Console di gestione AWS per visualizzare lo stato dell'allegato di un volume Amazon EBS a un'attività Amazon ECS. Se l'attività inizia e l'allegato fallisce, verrà visualizzato anche un motivo dello stato che si può utilizzare per risolvere il problema. Il volume creato verrà eliminato e l'operazione verrà interrotta. Per ulteriori informazioni sui motivi di stato, consultare [Motivi dello stato dell'allegato del volume Amazon EBS alle attività di Amazon ECS](troubleshoot-ebs-volumes-scenarios.md).

**Per visualizzare lo stato degli allegati di un volume e il motivo dello stato utilizzando la console**

1. [Apri la console nella versione 2. https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/v2)

1. Nella pagina **Cluster**, scegliere il cluster in cui è in esecuzione l'attività. Viene visualizzata la pagina dei dettagli del cluster.

1. Nella pagina dettagli del cluster, scegliere la scheda **Attività**.

1. Scegliere l'attività per la quale si desidera visualizzare lo stato degli allegati del volume. Potrebbe essere necessario utilizzare **Filtra lo stato desiderato** e scegliere **Arrestato** se l'attività che si desidera esaminare è stata interrotta.

1. Nella pagina dettagli dell'attività, scegliere la scheda **Volumi**. Sarà possibile visualizzare lo stato degli allegati del volume Amazon EBS in **Stato degli allegati**. Se il volume non riesce a collegarsi all'attività, è possibile scegliere lo stato in **Stato degli allegati** per visualizzare la causa dell'errore.

Puoi anche visualizzare lo stato degli allegati al volume di un'attività e il motivo dello stato associato utilizzando l'[DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html)API.

## Errori di servizio e attività
<a name="service-task-failures"></a>

È possibile che si verifichino errori di servizio o attività non specifici dei volumi Amazon EBS che possono influire sull'allegato del volume. Per ulteriori informazioni, consultare la pagina
+ [Messaggi di evento relativi ai servizi](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-event-messages.html)
+ [Codici di errore dell'attività arrestata](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/stopped-task-error-codes.html)
+ [Motivi di errore dell'API](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html)

# Il contenitore non può scrivere sul volume Amazon EBS
<a name="troubleshoot-non-root-container"></a>

Utente non root senza autorizzazioni adeguate  
Quando specifichi un utente non root nella definizione del contenitore, Amazon ECS configura automaticamente il volume con autorizzazioni basate sul gruppo per consentire l'accesso in scrittura. Tuttavia, se continui a riscontrare problemi di autorizzazione:  
+ Verifica che il `user` parametro sia specificato correttamente nella definizione del contenitore utilizzando il formato `uid:gid` (ad esempio,`1001:1001`).
+ Assicurati che l'immagine del contenitore non prevalga sulle autorizzazioni dell'utente dopo il montaggio del volume.
+ Verifica che l'applicazione sia in esecuzione con l'ID utente previsto esaminando i log del contenitore o utilizzando Amazon ECS Exec per ispezionare il contenitore in esecuzione.

Utente root con problemi di autorizzazione  
Se non è specificato alcun utente nella definizione del contenitore, il contenitore funziona come root e dovrebbe avere pieno accesso al volume. Se riscontri problemi:  
+ Verifica che il volume sia montato correttamente controllando i punti di montaggio all'interno del contenitore.
+ Assicurati che il volume non sia configurato come di sola lettura nella configurazione del punto di montaggio.

Attività in più contenitori con utenti diversi  
Nelle attività con più contenitori eseguiti come utenti diversi, Amazon ECS gestisce automaticamente le autorizzazioni di gruppo per consentire a tutti gli utenti specificati di scrivere sul volume. Se i contenitori non sono in grado di scrivere:  
+ Verifica che tutti i contenitori che richiedono l'accesso in scrittura abbiano il `user` parametro configurato correttamente.
+ Verificate che il volume sia montato in tutti i contenitori che devono accedervi.

Per ulteriori informazioni sulla configurazione degli utenti nelle definizioni dei container, consulta [Parametri di definizione delle attività di Amazon ECS per Fargate](https://docs.aws.amazon.com/./task_definition_parameters.html). 

# Motivi dello stato dell'allegato del volume Amazon EBS alle attività di Amazon ECS
<a name="troubleshoot-ebs-volumes-scenarios"></a>

Utilizza il seguente riferimento per risolvere i problemi che potresti riscontrare sotto forma di motivi di stato Console di gestione AWS durante la configurazione dei volumi Amazon EBS da allegare alle attività di Amazon ECS. Per ulteriori informazioni sulla localizzazione di questi motivi di stato nella console, consultare [Verificare lo stato di collegamento dei volumi](troubleshoot-ebs-volumes.md#troubleshoot-ebs-volumes-location).

ECS non è stato in grado di assumere il ruolo dell'infrastruttura ECS configurato 'arn:aws:iam: ::role/ '. *111122223333* *ecsInfrastructureRole* Verificare che il ruolo passato abbia un rapporto di fiducia adeguato con Amazon ECS  
Questo motivo dello stato viene visualizzato nei seguenti scenari.  
+  Fornire un ruolo IAM senza la necessaria policy di attendibilità allegata. Amazon ECS non può accedere al ruolo IAM dell'infrastruttura Amazon ECS che è stato fornito se il ruolo non dispone della policy di attendibilità necessaria. L'attività può rimanere bloccata nello stato `DEPROVISIONING`. Per ulteriori informazioni sulla policy di attendibilità necessaria, consultare [Ruolo IAM dell’infrastruttura Amazon ECS](infrastructure_IAM_role.md).
+ L'utente IAM non è autorizzato a trasferire il ruolo dell'infrastruttura Amazon ECS ad Amazon ECS. L'attività può rimanere bloccata nello stato `DEPROVISIONING`. Per evitare questo problema, è possibile allegare l'autorizzazione `PassRole` al proprio utente. Per ulteriori informazioni, consultare [Ruolo IAM dell’infrastruttura Amazon ECS](infrastructure_IAM_role.md).
+ Il ruolo IAM non dispone delle autorizzazioni necessarie per gli allegati del volume Amazon EBS. L'attività può rimanere bloccata nello stato `DEPROVISIONING`. Per ulteriori informazioni sulle autorizzazioni specifiche necessarie per collegare i volumi Amazon EBS alle attività, consultare [Ruolo IAM dell’infrastruttura Amazon ECS](infrastructure_IAM_role.md).
È possibile anche visualizzare questo messaggio di errore a causa di un ritardo nella propagazione dei ruoli. Se il problema non si risolve riprovando a utilizzare il ruolo dopo aver atteso qualche minuto, è possibile che tu abbia configurato erroneamente la policy di attendibilità per il ruolo.

ECS non è riuscito a configurare il volume EBS. Incontro IdempotentParameterMismatch «; «Il token client che hai fornito è associato a una risorsa che è già stata eliminata. Utilizzare un token client diverso.”  
I seguenti scenari AWS KMS chiave possono portare alla `IdempotentParameterMismatch` visualizzazione di un messaggio:  
+ Specificare un ARN, un ID o un alias della chiave KMS che non è valido. In questo scenario, l'attività potrebbe sembrare avviata correttamente, ma alla fine non riesce perché AWS autentica la chiave KMS in modo asincrono. Per ulteriori informazioni, consultare [Amazon EBS encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) nella *Guida per l'utente di Amazon EC2*.
+ Fornire una chiave gestita dal cliente priva delle autorizzazioni che consentono al ruolo IAM dell'infrastruttura Amazon ECS di utilizzare la chiave per la crittografia. Per evitare problemi di autorizzazione relativi alle policy chiave, consulta la policy AWS KMS chiave di esempio in [Data encryption for Amazon EBS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-kms-encryption) Volumes.
Puoi configurare Amazon EventBridge per inviare eventi di volume Amazon EBS e eventi di modifica dello stato delle attività di Amazon ECS a una destinazione, ad esempio gruppi Amazon CloudWatch . È quindi possibile utilizzare questi eventi per identificare lo specifico problema relativo alla chiave gestita dal cliente che ha interessato l'allegato del volume. Per ulteriori informazioni, consultare la pagina  
+  [Come posso creare un gruppo di CloudWatch log da utilizzare come destinazione per una EventBridge regola?](https://repost.aws/knowledge-center/cloudwatch-log-group-eventbridge) su AWS Re:post.
+ [Task state change events](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html#ecs_task_events).
+ [ EventBridge Eventi Amazon per Amazon EBS nella Guida](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-cloud-watch-events.html) per l'*utente di Amazon EBS.*

ECS è scaduto durante la configurazione dell'allegato del volume EBS all'attività.  
I seguenti scenari di formato del file system generano questo messaggio.  
+ Il formato del file system specificato durante la configurazione non è compatibile con il [sistema operativo dell'attività](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RuntimePlatform.html).
+ Configurare un volume Amazon EBS da creare da uno snapshot e il formato del file system dello snapshot non è compatibile con il sistema operativo dell'attività. Per i volumi creati da una snapshot, è necessario specificare lo stesso tipo di file system utilizzato dal volume al momento della creazione della snapshot.
È possibile utilizzare i log degli agenti container di Amazon ECS per risolvere il problema di questo messaggio per le attività EC2. Per ulteriori informazioni, consultare [Amazon ECS log file locations](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/logs.html) e [Amazon ECS log collector](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-logs-collector.html).

# Usare i volumi Amazon EFS con Amazon ECS
<a name="efs-volumes"></a>

Amazon Elastic File System (Amazon EFS) offre archiviazione file semplice e scalabile da utilizzare con i processi Amazon ECS. Con Amazon EFS, la capacità di storage è elastica. La capacità di storage aumenta e si riduce automaticamente quando si aggiungono e si rimuovono i file. Le tue applicazioni possono disporre dello storage di cui hanno bisogno nel momento in cui ne hanno bisogno.

Puoi utilizzare i file system Amazon EFS con Amazon ECS per esportare i dati del file system all'interno del tuo parco istanze di container. In questo modo, le tue attività hanno accesso allo stesso storage persistente, indipendentemente dall'istanza in cui si trovano. Inoltre, per utilizzare il file system, le tue definizioni di attività devono fare riferimento ai montaggi di volume inerenti l'istanza di container.

Per un tutorial, vedere [Configurazione dei file system Amazon EFS per Amazon ECS utilizzando la console](tutorial-efs-volumes.md).

## Considerazioni
<a name="efs-volume-considerations"></a>

 Quando usi i volumi Amazon EFS, tieni presente quanto segue:
+ Per le attività che utilizzano EC2, il supporto del file system Amazon EFS è stato aggiunto come anteprima pubblica con l'AMI ottimizzata per Amazon ECS versione `20191212` con l'agente del container versione 1.35.0. Tuttavia, il supporto del file system Amazon EFS è entrato nella disponibilità generale con l'AMI ottimizzata per Amazon ECS versione `20200319` con l'agente del container versione 1.38.0, che conteneva il punto di accesso Amazon EFS e le funzionalità di autorizzazione IAM. Per utilizzare queste funzionalità, ti consigliamo di utilizzare la versione AMI ottimizzata per Amazon ECS `20200319` o versioni successive. Per ulteriori informazioni, consulta [Linux ottimizzato per Amazon ECS AMIs](ecs-optimized_AMI.md).
**Nota**  
Se crei la tua AMI, è necessario utilizzare l'agente del container 1.38.0 o versione successiva, `ecs-init` versione 1.38.0-1 o successiva ed emettere i seguenti comandi sull'istanza Amazon EC2 per abilitare il plug-in del volume Amazon ECS. I comandi dipendono dal fatto che si stia usando Amazon Linux 2 o Amazon Linux come immagine di base.  
Amazon Linux 2  

  ```
  yum install amazon-efs-utils
  systemctl enable --now amazon-ecs-volume-plugin
  ```
Amazon Linux  

  ```
  yum install amazon-efs-utils
  sudo shutdown -r now
  ```
+ Per le attività ospitate su Fargate, i file system Amazon EFS sono supportati sulla versione della piattaforma 1.4.0 o successiva (Linux). Per ulteriori informazioni, consulta [Versioni della piattaforma Fargate per Amazon ECS](platform-fargate.md).
+ Quando utilizzi volumi Amazon EFS per attività ospitate su Fargate, Fargate crea un container supervisor responsabile della gestione del volume Amazon EFS. Il container supervisor utilizza una piccola quantità di memoria e di CPU dell'attività. Il container supervisor è visibile quando si sottopone a query l'endpoint dei metadati dell'attività versione 4. Inoltre, è visibile in CloudWatch Container Insights come nome del contenitore. `aws-fargate-supervisor` Per ulteriori informazioni durante l'utilizzo di EC2, consultare [Versione 4 degli endpoint dei metadati delle attività di Amazon ECS](task-metadata-endpoint-v4.md). Per ulteriori informazioni durante l'utilizzo di Fargate, consultare [Endpoint metadati delle attività Amazon ECS versione 4 per le attività su Fargate](task-metadata-endpoint-v4-fargate.md).
+ L'utilizzo di volumi Amazon EFS o la specifica di una `EFSVolumeConfiguration` non sono supportati su istanze esterne.
+ L'utilizzo dei volumi Amazon EFS è supportato per le attività che utilizzano istanze gestite da Amazon ECS.
+ Consigliamo di impostare il parametro `ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION` nel file di configurazione dell'agente su un valore inferiore a quello predefinito (circa 1 ora). Questa modifica aiuta a prevenire la scadenza delle credenziali di montaggio EFS e consente la pulizia dei supporti che non sono in uso.  Per ulteriori informazioni, consulta [Configurazione dell'agente del container Amazon ECS](ecs-agent-config.md).

## Utilizzo dei punti di accesso Amazon EFS
<a name="efs-volume-accesspoints"></a>

I punti di accesso Amazon EFS sono punti di accesso specifici dell'applicazione in un file system EFS per la gestione dell'accesso dell'applicazione ai set di dati condivisi. Per ulteriori informazioni sui punti di accesso Amazon EFS e su come controllare l'accesso a tali punti, consulta [Working with Amazon EFS Access Points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) (Utilizzo dei punti di accesso Amazon EFS) nella *Guida per l'utente di Amazon Elastic File System*.

I punti di accesso possono applicare un’identità utente, inclusi i gruppi dell’utente POSIX, per tutte le richieste al file system effettuate tramite il punto di accesso. I punti di accesso possono inoltre applicare una directory root diversa per il file system. In questo modo i client possono accedere solo ai dati nella directory specificata o nelle relative sottodirectory.

**Nota**  
Quando crei un punto di accesso EFS, è necessario specificare un percorso nel file system da utilizzare come directory root. Quando si fa riferimento al file system EFS con un ID punto di accesso nella definizione di attività Amazon ECS, la directory root deve essere omessa o impostata su `/` in modo da forzare il percorso impostato sul punto di accesso EFS.

Puoi utilizzare un ruolo IAM del processo Amazon ECS per imporre che applicazioni specifiche utilizzino un punto di accesso specifico. Combinando le policy IAM con i punti di accesso, puoi fornire accesso sicuro a set di dati specifici per le applicazioni. Per ulteriori informazioni su come utilizzare i ruoli IAM dell'attività, consulta [Ruolo IAM dell'attività Amazon ECS](task-iam-roles.md).

# Best practice per l'utilizzo di volumi Amazon EFS con Amazon ECS
<a name="efs-best-practices"></a>

Prendere nota dei seguenti consigli di best practice quando si utilizza Amazon EFS con Amazon ECS.

## Sicurezza e controlli di accesso per i volumi Amazon EFS
<a name="storage-efs-security"></a>

Amazon EFS offre funzionalità di controllo degli accessi che è possibile utilizzare per garantire che i dati archiviati in un file system Amazon EFS siano sicuri e accessibili solo dalle applicazioni che ne hanno bisogno. È possibile proteggere i dati abilitando la crittografia dei dati memorizzati su disco e in transito. Per ulteriori informazioni, consulta [Crittografia dati in Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/encryption.html) nella *Amazon Elastic File System User Guide*.

Oltre alla crittografia dei dati, è possibile anche utilizzare Amazon EFS per limitare l'accesso a un file system. Esistono tre modi per implementare il controllo degli accessi in EFS.
+ **Gruppi di sicurezza**: con gli obiettivi di montaggio di Amazon EFS, è possibile configurare un gruppo di sicurezza utilizzato per consentire e negare il traffico di rete. È possibile configurare il gruppo di sicurezza collegato ad Amazon EFS per consentire il traffico NFS (porta 2049) dal gruppo di sicurezza collegato alle istanze Amazon ECS o, quando si utilizza la modalità di rete `awsvpc`, l'attività di Amazon ECS.
+ **IAM**: è possibile limitare l'accesso a un file system Amazon EFS utilizzando IAM. Una volta configurate, le attività di Amazon ECS richiedono un ruolo IAM per l'accesso al file system per montare un file system EFS. Per ulteriori informazioni, consultare [Using IAM to control file system data access](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html) nella *Guida per l'utente di Amazon Elastic File System*.

  Le policy IAM possono inoltre applicare condizioni predefinite, ad esempio richiedere a un client di utilizzare TLS durante la connessione a un file system Amazon EFS. Per ulteriori informazioni, consultare [Amazon EFS condition keys for clients](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#efs-condition-keys-for-nfs), nella *Guida per l'utente di Amazon Elastic File System*.
+ **Punti di accesso Amazon EFS**: i punti di accesso di Amazon EFS sono punti di accesso specifici dell'applicazione in un file system Amazon EFS. È possibile utilizzare i punti di accesso per applicare un'identità utente, inclusi i gruppi dell'utente POSIX, per tutte le richieste al file system effettuate tramite il punto di accesso. I punti di accesso possono inoltre applicare una directory root diversa per il file system. In questo modo i client possono accedere solo ai dati nella directory specificata o nelle relative sottodirectory.

### Policy IAM
<a name="storage-efs-security-iam"></a>

È possibile utilizzare le policy IAM per controllare l'accesso al file system Amazon EFS.

È possibile specificare le seguenti operazioni per i client in un file system utilizzando una policy del file system.


| Azione | Description | 
| --- | --- | 
|  `elasticfilesystem:ClientMount`  |  Fornisce un accesso in sola lettura a un file system.  | 
|  `elasticfilesystem:ClientWrite`  |  Fornisce le autorizzazioni di scrittura su un file system.  | 
|  `elasticfilesystem:ClientRootAccess`  |  Fornisce la possibilità di utilizzare l'utente root quando si accede a un file system.  | 

È necessario specificare ogni azione in una policy. Le policy possono essere definite nei seguenti modi:
+ Basata su client: collega la policy al ruolo dell'attività

  Impostare l'opzione **Autorizzazione IAM** quando si crea la definizione dell'attività. 
+ Basata sulle risorse: collega la policy al file system Amazon EFS

  Se la policy basata sulle risorse non esiste, per impostazione predefinita al momento della creazione del file system l'accesso è concesso a tutti i principali (\$1). 

Quando si imposta l'opzione **Autorizzazione IAM**, uniamo la policy associata al ruolo dell'attività e quella basata sulle risorse Amazon EFS. L'opzione **Autorizzazione IAM** trasmette l'identità dell'attività (il ruolo dell'attività) con la policy ad Amazon EFS. Ciò consente alla policy basata sulle risorse di Amazon EFS di avere un contesto per l'utente o il ruolo IAM specificato nella policy. Se non imposti l'opzione, la policy a livello di risorsa di Amazon EFS identifica l'utente IAM come “anonimo”.

Prendi in considerazione l'implementazione di tutti e tre i controlli di accesso su un file system Amazon EFS per la massima sicurezza. Ad esempio, puoi configurare il gruppo di sicurezza collegato a un punto di montaggio Amazon EFS per consentire solo il traffico NFS in ingresso da un gruppo di sicurezza associato all'istanza di container o all'attività Amazon ECS. Inoltre, è possibile configurare Amazon EFS per richiedere un ruolo IAM per accedere al file system, anche se la connessione proviene da un gruppo di sicurezza consentito. Infine, è possibile utilizzare i punti di accesso di Amazon EFS per applicare le autorizzazioni utente POSIX e specificare le directory root per le applicazioni.

Il seguente frammento di definizione delle attività mostra come montare un file system Amazon EFS utilizzando un punto di accesso.

```
"volumes": [
    {
      "efsVolumeConfiguration": {
        "fileSystemId": "fs-1234",
        "authorizationConfig": {
          "accessPointId": "fsap-1234",
          "iam": "ENABLED"
        },
        "transitEncryption": "ENABLED",
        "rootDirectory": ""
      },
      "name": "my-filesystem"
    }
]
```

## Prestazioni di volume Amazon EFS
<a name="storage-efs-performance"></a>

Amazon EFS offre due modalità di prestazioni: i I/O. General Purpose is suitable for latency-sensitive applications such as content management systems and CI/CD tools. In contrast, Max I/O file system General Purpose e Max sono adatti per carichi di lavoro come analisi dei dati, elaborazione multimediale e apprendimento automatico. Questi carichi di lavoro devono eseguire operazioni parallele da centinaia o addirittura migliaia di container e richiedono il throughput aggregato e gli IOPS più elevati possibili. Per ulteriori informazioni, consultare [Amazon EFS performance modes](https://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes) nella *Guida per l'utente di Amazon Elastic File System*.

Alcuni carichi di lavoro sensibili alla latenza richiedono sia i I/O livelli più alti forniti dalla modalità Max I/O Performance sia la latenza più bassa fornita dalla modalità a prestazioni General Purpose. Per questo tipo di carico di lavoro, consigliamo di creare più file system in modalità prestazionale per uso generico. In questo modo, è possibile distribuire il carico di lavoro dell'applicazione su tutti questi file system, purché il carico di lavoro e le applicazioni possano supportarlo.

## Throughput dei volumi Amazon EFS
<a name="storage-efs-performance-throughput"></a>

Tutti i file system Amazon EFS hanno un throughput misurato associato determinato dalla quantità di throughput assegnato per i file system che utilizzano *Throughput assegnato* o dalla quantità di dati archiviati nella classe di archiviazione EFS Standard o a zona unica per i file system che utilizzano *Throughput di bursting*. Per ulteriori informazioni, consultare [Understanding metered throughput](https://docs.aws.amazon.com/efs/latest/ug/performance.html#read-write-throughput) nella *Guida per l'utente di Amazon Elastic File System*.

La modalità di throughput predefinita per i file system Amazon EFS è la modalità bursting. Con la modalità bursting, il throughput disponibile per un file system aumenta o diminuisce man mano che quest'ultimo cresce. Poiché i carichi di lavoro basati su file in genere registrano picchi, richiedendo livelli di throughput elevati per certi periodi di tempo e livelli di throughput inferiori per il resto, Amazon EFS è progettato per consentire livelli di throughput elevati per certi periodi di tempo. Inoltre, poiché molti carichi di lavoro richiedono un elevato livello di lettura, le operazioni di lettura vengono misurate con un rapporto 1:3 rispetto ad altre operazioni NFS (come la scrittura). 

Tutti i file system Amazon EFS offrono prestazioni di base costanti di 50 MB/s per ogni TB di storage Amazon EFS Standard o Amazon EFS One Zone. Tutti i file system (indipendentemente dalle dimensioni) possono arrivare a 100 MB/s. File systems with more than 1TB of EFS Standard or EFS One Zone storage can burst to 100 MB/s for each TB. Because read operations are metered at a 1:3 ratio, you can drive up to 300 MiBs/s per ogni TIB di velocità di lettura. Man mano che aggiungi dati al file system, il throughput massimo disponibile per il file system scala in modo lineare e automatico con l'archivio nella classe di archiviazione Amazon EFS Standard. Se è necessaria una quantità maggiore di throughput rispetto a quella che si può ottenere con la quantità di dati archiviati, è possibile configurare il Throughput assegnato sulla quantità specifica richiesta dal carico di lavoro.

Il throughput del file system è condiviso tra tutte le istanze di Amazon EC2 connesse a un file system. Ad esempio, un file system da 1 TB in grado di raggiungere il 100% MB/s del throughput può generare 100 unità MB/s da una singola istanza di Amazon EC2, ognuna con una velocità di 10 MB/s. Per ulteriori informazioni, consulta [Amazon EFS performance](https://docs.aws.amazon.com/efs/latest/ug/performance.html) nella *Guida per l'utente di Amazon Elastic File System*.

## Ottimizzazione dei costi per i volumi di Amazon EFS
<a name="storage-efs-costopt"></a>

Amazon EFS semplifica la scalabilità dell'archiviazione. I file system di Amazon EFS crescono automaticamente man mano che aggiungi più dati. Specialmente con la modalità *Throughput di bursting* di Amazon EFS, il throughput su Amazon EFS scala mentre le dimensioni del file system nella classe di archiviazione Standard aumentano. Per migliorare il throughput senza pagare costi aggiuntivi per il throughput assegnato su un file system EFS, è possibile condividere un file system Amazon EFS con più applicazioni. Utilizzando i punti di accesso Amazon EFS, puoi implementare l'isolamento dell'archiviazione nei file system Amazon EFS condivisi. In questo modo, anche se le applicazioni condividono ancora lo stesso file system, possono accedere ai dati solo con l'autorizzazione.

Man mano che i dati crescono, Amazon EFS ti aiuta a spostare automaticamente i file a cui si accede raramente in una classe di archiviazione inferiore. La classe di archiviazione Accesso Infrequente Amazon EFS Standard (IA) riduce i costi di archiviazione per i file ai quali non viene effettuato l'accesso ogni giorno. Ciò avviene senza sacrificare disponibilità elevata, durabilità elevata, elasticità e accesso al file system POSIX disponibili tramite Amazon EFS. Per ulteriori informazioni, consultare [EFS storage classes](https://docs.aws.amazon.com/efs/latest/ug/features.html) nella *Guida per l'utente di Amazon Elastic File System*.

Prendi in considerazione l'utilizzo delle policy del ciclo di vita di Amazon EFS per risparmiare automaticamente denaro spostando i file a cui si accede raramente nell'archivio di Amazon EFS IA. Per ulteriori informazioni, consulta [Amazon EFS lifecycle management](https://docs.aws.amazon.com/efs/latest/ug/lifecycle-management-efs.html) nella *Guida per l'utente di Amazon Elastic File System*.

Quando si crea un file system Amazon EFS, è possibile scegliere se Amazon EFS replica i dati su più zone di disponibilità (Standard) o se li archivia in modo ridondante all'interno di un'unica zona di disponibilità. La classe di archiviazione Amazon EFS a zona unica può ridurre i costi di archiviazione di un margine significativo rispetto alle classi di archiviazione Amazon EFS Standard. Prendere in considerazione l'utilizzo della classe di archiviazione Amazon EFS a zona unica per carichi di lavoro che non richiedono resilienza Multi-AZ. È possibile ridurre ulteriormente il costo dell'archiviazione Amazon EFS a zona unica spostando i file a cui si accede raramente su Accesso infrequente a zona unica Amazon EFS. Per ulteriori informazioni, consulta la sezione [Amazon EFS Infrequent Access](https://aws.amazon.com/efs/features/infrequent-access/).

## Protezione dei dati dei volumi Amazon EFS
<a name="storage-efs-dataprotection"></a>

Amazon EFS archivia i dati in modo ridondante su più zone di disponibilità per file system utilizzando classi di archiviazione standard. Se si selezionano le classi di archiviazione Amazon EFS a zona unica, i dati vengono archiviati in modo ridondante all'interno di una singola zona di disponibilità. Inoltre, Amazon EFS è progettato per fornire il 99,999999999% (11 volte 9) di durabilità in un determinato anno.

Come per qualsiasi ambiente, è consigliabile disporre di un backup e creare protezioni contro l'eliminazione accidentale. Per i dati di Amazon EFS, tale best practice include un backup funzionante e regolarmente testato utilizzando AWS Backup. I file system che utilizzano le classi di archiviazione Amazon EFS a zona unica sono configurati per eseguire automaticamente il backup dei file per impostazione predefinita al momento della creazione del file system, a meno che non si scelga di disabilitare questa funzionalità. Per ulteriori informazioni, consultare [Backing up EFS file systems](https://docs.aws.amazon.com/efs/latest/ug/awsbackup.html) della *Guida per l'utente di Amazon Elastic File System*.

# Specificare di un file system Amazon EFS nella definizione di un'attività Amazon ECS
<a name="specify-efs-config"></a>

Per utilizzare i volumi del file system Amazon EFS per i container, è necessario specificare le configurazioni di volume e punto di montaggio nella definizione di attività. Il seguente frammento JSON della definizione di attività illustra la sintassi degli oggetti `volumes` e `mountPoints` per un container.

```
{
    "containerDefinitions": [
        {
            "name": "container-using-efs",
            "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
            "entryPoint": [
                "sh",
                "-c"
            ],
            "command": [
                "ls -la /mount/efs"
            ],
            "mountPoints": [
                {
                    "sourceVolume": "myEfsVolume",
                    "containerPath": "/mount/efs",
                    "readOnly": true
                }
            ]
        }
    ],
    "volumes": [
        {
            "name": "myEfsVolume",
            "efsVolumeConfiguration": {
                "fileSystemId": "fs-1234",
                "rootDirectory": "/path/to/my/data",
                "transitEncryption": "ENABLED",
                "transitEncryptionPort": integer,
                "authorizationConfig": {
                    "accessPointId": "fsap-1234",
                    "iam": "ENABLED"
                }
            }
        }
    ]
}
```

`efsVolumeConfiguration`  
Tipo: oggetto  
Obbligatorio: no  
Questo parametro viene specificato quando si utilizzano volumi Amazon EFS.    
`fileSystemId`  
Tipo: stringa  
Obbligatorio: sì  
L'ID del file system Amazon EFS da utilizzare.  
`rootDirectory`  
▬Tipo: stringa  
Obbligatorio: no  
La directory all'interno del file system Amazon EFS da montare come directory principale all'interno dell'host. Se questo parametro viene omesso, viene utilizzata la radice del volume Amazon EFS. La specifica di `/` avrà lo stesso effetto dell'omissione di questo parametro.  
Se un punto di accesso EFS è specificato in `authorizationConfig`, il parametro della directory root deve essere omesso o impostato su `/` per applicare il percorso impostato sul punto di accesso EFS.  
`transitEncryption`  
Tipo: String  
Valori validi: `ENABLED` \$1 `DISABLED`  
Obbligatorio: no  
Specifica se abilitare o meno la crittografia per i dati Amazon EFS in transito tra l'host Amazon ECS e il server Amazon EFS. Se si utilizza l'autorizzazione IAM di Amazon EFS, è necessario abilitare la crittografia di transito. Se questo parametro viene omesso, viene utilizzato il comportamento predefinito di `DISABLED`. Per ulteriori informazioni, consulta [Encrypting Data in Transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) nella *Guida per l'utente di Amazon Elastic File System*.  
`transitEncryptionPort`  
Tipo: Integer  
Obbligatorio: no  
La porta da utilizzare per l'invio di dati crittografati tra l'host Amazon ECS e il server Amazon EFS. Se non si specifica una porta di crittografia di transito, verrà utilizzata la strategia di selezione della porta utilizzata dall'helper per il montaggio di Amazon EFS. Per ulteriori informazioni, consulta [Assistente per il montaggio di EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) nella *Guida per l'utente di Amazon Elastic File System*.  
`authorizationConfig`  
Tipo: oggetto  
Obbligatorio: no  
I dettagli di configurazione dell'autorizzazione per il file system Amazon EFS.    
`accessPointId`  
▬Tipo: stringa  
Obbligatorio: no  
L'ID del punto di accesso da utilizzare. Se viene specificato un punto di accesso, il valore della directory root specificato in `efsVolumeConfiguration` deve essere omesso o impostato su `/` per applicare il percorso impostato sul punto di accesso EFS. Se si utilizza un punto di accesso, la crittografia di transito deve essere abilitata in `EFSVolumeConfiguration`. Per ulteriori informazioni, consulta [Utilizzo dei punti di accesso Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) nella *Guida per l'utente di Amazon Elastic File System*.  
`iam`  
Tipo: String  
Valori validi: `ENABLED` \$1 `DISABLED`  
Obbligatorio: no  
 Specifica se utilizzare o meno il ruolo IAM dell'attività Amazon ECS riportato in una definizione di attività durante il montaggio del file system Amazon EFS. Se abilitato, la crittografia di transito deve essere abilitata nella casella `EFSVolumeConfiguration`. Se questo parametro viene omesso, viene utilizzato il comportamento predefinito di `DISABLED`. Per ulteriori informazioni consulta [Ruoli IAM per le attività](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html).

# Configurazione dei file system Amazon EFS per Amazon ECS utilizzando la console
<a name="tutorial-efs-volumes"></a>

Informazioni su come utilizzare i file system Amazon Elastic File System (Amazon EFS) con Amazon ECS.

## Fase 1: Creazione di un cluster Amazon ECS
<a name="efs-create-cluster"></a>

Utilizza la procedura seguente per creare un cluster Amazon ECS. 

**Creazione di un nuovo cluster (console Amazon ECS)**

Prima di iniziare, assegna l'autorizzazione IAM appropriata. Per ulteriori informazioni, consulta [Esempi di cluster Amazon ECS](security_iam_id-based-policy-examples.md#IAM_cluster_policies).

1. Apri la console nella [https://console.aws.amazon.com/ecs/versione 2](https://console.aws.amazon.com/ecs/v2).

1. Seleziona la Regione da utilizzare nella barra di navigazione.

1. Nel pannello di navigazione scegli **Cluster**.

1. Nella pagina **Clusters** (Cluster), scegli **Create cluster** (Crea cluster).

1. In **Configurazione del cluster**, per **Nome cluster**, inserisci `EFS-tutorial` come nome del cluster.

1. (Facoltativo) Per modificare il VPC e le sottoreti in cui vengono avviati i processi e i servizi, in **Networking** (Reti), esegui una qualunque di queste operazioni:
   + Per rimuovere una sottorete, in **Subnets** (Sottoreti), scegli **X** per ogni sottorete da rimuovere.
   + Per passare a un VPC diverso da quello **di default**, in **VPC**, scegli un **VPC** esistente, poi in **Subnets** (Sottoreti), seleziona ciascuna sottorete.

1.  Per aggiungere istanze Amazon EC2 al cluster, espandi **Infrastruttura** e seleziona **Istanze Amazon EC2**. Successivamente, configura il gruppo Auto Scaling che funge da provider di capacità:

   1. Per creare un gruppo Auto Scaling, da **Auto Scaling group (ASG)** (Gruppo di Auto Scaling (ASG)), seleziona **Create new group** (Crea nuovo gruppo) e quindi fornisci i seguenti dettagli sul gruppo:
     + Per **Sistema operativo/architettura**, seleziona Amazon Linux 2.
     + In **EC2 instance type (Tipo di istanza EC2)**, selezionare `t2.micro`.

        In **SSH key pair** (Coppia di chiavi SSH), scegli la coppia che dimostra la tua identità quando ti connetti all'istanza.
     + In **Capacità**, inserisci `1`.

1. Scegli **Create** (Crea).

## Fase 2: creazione di un gruppo di sicurezza per le istanze Amazon EC2 e il file system Amazon EFS
<a name="efs-security-group"></a>

In questa fase, crea un gruppo di sicurezza per le istanze Amazon EC2 che consenta il traffico di rete in entrata sulla porta 80 e per il file system Amazon EFS che consenta l'accesso in entrata dalle istanze di container. 

Crea un gruppo di sicurezza per le istanze Amazon EC2 con le seguenti opzioni:
+ **Nome gruppo di sicurezza**: immetti un nome univoco per il gruppo di sicurezza.
+ **VPC**: il VPC identificato in precedenza per il cluster.
+ **Regola in entrata**
  + **Tipo**: **HTTP**
  + **Origine**: **0.0.0.0/0**.

Crea un gruppo di sicurezza per il file system Amazon EFS con le seguenti opzioni:
+ **Nome gruppo di sicurezza**: immetti un nome univoco per il gruppo di sicurezza. Ad esempio, `EFS-access-for-sg-dc025fa2`.
+ **VPC**: il VPC identificato in precedenza per il cluster.
+ **Regola in entrata**
  + **Tipo**: **NFS**
  + **Origine**: **personalizzato** con l'ID del gruppo di sicurezza creato per le istanze.

Per informazioni sulla creazione di un gruppo di sicurezza, consultare [Create a security group for your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-security-group.html) nella *Guida per l'utente di Amazon EC2*.

## Fase 3: Creazione di un file system Amazon EFS
<a name="efs-create-filesystem"></a>

In questa fase, viene creato un file system Amazon EFS.

**Come creare un file system Amazon EFS per i processi di Amazon ECS**

1. Apri la console Amazon Elastic File System all'indirizzo [https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/).

1. Scegliere **Create file system (Crea file system)**.

1. Inserisci un nome per il file system, quindi scegli il VPC in cui sono ospitate le istanze di container. Di default, ciascuna sottorete nel VPC specificato riceve un target di montaggio che utilizza il gruppo di sicurezza predefinito per tale VPC. Quindi, scegli **Personalizza**.
**Nota**  
Questo tutorial dà per scontato che il file system Amazon EFS, il cluster Amazon ECS, le istanze di container e i processi si trovano nello stesso VPC. Per ulteriori informazioni sul montaggio di un file system da un VPC diverso, consultare [Walkthrough: Mount a file system from a different VPC](https://docs.aws.amazon.com/efs/latest/ug/efs-different-vpc.html) nella *Guida per l'utente di Amazon EFS*.

1. Nella pagina **Impostazioni del file system**, configura le impostazioni facoltative, quindi in **Impostazioni delle prestazioni**, scegli **Ottimizzazione** come modalità di throughput per il file system. Dopo aver configurato le impostazioni, seleziona **Avanti**.

   1. (Opzionale) Aggiungi tag al tuo file system. Ad esempio, puoi specificare un nome di file system univoco inserendolo nella colonna **Value** (Valore) accanto alla chiave **Name** (Nome).

   1. (Facoltativo) Abilita la gestione del ciclo di vita per risparmiare denaro in storage con accessi non frequenti. Per ulteriori informazioni, consulta [Gestione del ciclo di vita EFS](https://docs.aws.amazon.com/efs/latest/ug/lifecycle-management-efs.html) nella *Amazon Elastic File System User Guide*.

   1. (Facoltativo) Abilita la crittografia. Seleziona la casella di controllo per abilitare la crittografia del file system Amazon EFS inattivo.

1. Nella pagina **Accesso di rete**, in **Target di montaggio**, sostituisci la configurazione del gruppo di sicurezza esistente per ogni zona di disponibilità con il gruppo di sicurezza creato per il file system in [Fase 2: creazione di un gruppo di sicurezza per le istanze Amazon EC2 e il file system Amazon EFS](#efs-security-group), quindi scegli **Avanti**.

1.  Non è necessario configurare la **Policy del file system** per questo tutorial, quindi puoi saltare la sezione scegliendo **Avanti**.

1. Esamina le opzioni del file system e scegli **Crea** per completare il processo.

1. Dalla schermata **File system**, registra **ID del file system**. Nel passaggio successivo, si farà riferimento a questo valore nella definizione di attività di Amazon ECS.

## Fase 4: Aggiunta di contenuti al file system Amazon EFS
<a name="efs-add-content"></a>

In questa fase, monti il file system Amazon EFS su un'istanza Amazon EC2 e aggiungi contenuto. Questo è per scopi di test in questo tutorial, per illustrare la natura persistente dei dati. Quando si utilizza questa funzione è necessario disporre della propria applicazione o di un altro metodo di scrittura dei dati nel file system Amazon EFS.

**Come creare un'istanza di Amazon EC2 e montare il file system Amazon EFS**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Scegliere **Launch Instance (Avvia istanza)**.

1. In **Immagini di applicazioni e sistema operativo (Amazon Machine Image)**, seleziona **AMI (HVM) di Amazon Linux 2**.

1. In **Tipo di istanza**, mantieni il tipo di istanza predefinito `t2.micro`.

1.  In **Coppia di chiavi (registrazione)**, seleziona una coppia di chiavi per l'accesso SSH all'istanza.

1. In **Impostazioni di rete**, seleziona il VPC specificato per il file system Amazon EFS e il cluster Amazon ECS. Seleziona una sottorete e il gruppo di sicurezza dell'istanza creato in [Fase 2: creazione di un gruppo di sicurezza per le istanze Amazon EC2 e il file system Amazon EFS](#efs-security-group). Configura il gruppo di sicurezza dell'istanza. Assicurati che l'opzione **Assegna automaticamente IP pubblico** sia abilitata.

1. In **Configura storage**, scegli il pulsante **Modifica** per i file system, quindi scegli **EFS**. Seleziona il file system creato in [Fase 3: Creazione di un file system Amazon EFS](#efs-create-filesystem). Puoi modificare facoltativamente il punto di montaggio o lasciare il valore predefinito.
**Importante**  
Devi selezionare una sottorete prima di poter aggiungere un file system all'istanza.

1. Deseleziona l'opzione **Crea e allega automaticamente i gruppi di sicurezza**. Lascia selezionata l'altra casella di controllo. Scegli **Add shared file system** (Aggiungi file system condiviso).

1. In **Dettagli avanzati**, assicurati che lo script dati utente venga popolato automaticamente con le fasi di montaggio del file system Amazon EFS.

1.  In **Riepilogo**, assicurati che **Numero di istanze** sia **1**. Scegliere **Launch Instance (Avvia istanza)**.

1. Nella pagina **Avvia un'istanza**, scegli **Visualizza tutte le istanze** per visualizzare lo stato delle istanze. Inizialmente, **Stato dell'istanza** è `PENDING`. Quando lo stato cambia in `RUNNING` e l'istanza supera tutti i controlli di stato, l'istanza è pronta per l'uso.

Ora, connettiti all'istanza Amazon EC2 e aggiungi contenuti al file system Amazon EFS.

**Come connettersi all'istanza Amazon EC2 e aggiungere contenuti al file system Amazon EFS**

1. Esegui l'SSH sull'istanza Amazon EC2 creata. Per ulteriori informazioni, consultare [Connect to your Linux instance using SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html) nella *Guida per l'utente di Amazon EC2*.

1. Dalla finestra del terminale, esegui il comando **df -T** per verificare che il file system Amazon EFS sia montato. Nel seguente output, abbiamo evidenziato il montaggio del file system Amazon EFS.

   ```
   $ df -T
   Filesystem     Type            1K-blocks    Used        Available Use% Mounted on
   devtmpfs       devtmpfs           485468       0           485468   0% /dev
   tmpfs          tmpfs              503480       0           503480   0% /dev/shm
   tmpfs          tmpfs              503480     424           503056   1% /run
   tmpfs          tmpfs              503480       0           503480   0% /sys/fs/cgroup
   /dev/xvda1     xfs               8376300 1310952          7065348  16% /
   127.0.0.1:/    nfs4     9007199254739968       0 9007199254739968   0% /mnt/efs/fs1
   tmpfs          tmpfs              100700       0           100700   0% /run/user/1000
   ```

1. Passa alla directory in cui è montato il file system Amazon EFS. Nell'esempio precedente è `/mnt/efs/fs1`.

1. Crea un file denominato `index.html` con i seguenti contenuti:

   ```
   <html>
       <body>
           <h1>It Works!</h1>
           <p>You are using an Amazon EFS file system for persistent container storage.</p>
       </body>
   </html>
   ```

## Fase 5: creazione di una definizione di attività
<a name="efs-task-def"></a>

La seguente definizione di attività crea un volume di dati denominato `efs-html`. Il container `nginx` monta il volume di dati host nella radice NGINX, `/usr/share/nginx/html`.

**Per creare una nuova definizione di attività utilizzando la console Amazon ECS**

1. Apri la console nella [https://console.aws.amazon.com/ecs/versione 2](https://console.aws.amazon.com/ecs/v2).

1. Nel pannello di navigazione, scegli **Task Definitions** (Definizioni di processo).

1. Scegli **Create new task definition** (Crea nuova definizione di attività), **Create new task definition with JSON** (Crea nuova definizione di attività con JSON).

1. Nella casella dell'editor JSON, copia e incolla il seguente testo JSON, sostituendo `fileSystemId` con l'ID del file system Amazon EFS.

   ```
   {
       "containerDefinitions": [
           {
               "memory": 128,
               "portMappings": [
                   {
                       "hostPort": 80,
                       "containerPort": 80,
                       "protocol": "tcp"
                   }
               ],
               "essential": true,
               "mountPoints": [
                   {
                       "containerPath": "/usr/share/nginx/html",
                       "sourceVolume": "efs-html"
                   }
               ],
               "name": "nginx",
               "image": "public.ecr.aws/docker/library/nginx:latest"
           }
       ],
       "volumes": [
           {
               "name": "efs-html",
               "efsVolumeConfiguration": {
                   "fileSystemId": "fs-1324abcd",
                   "transitEncryption": "ENABLED"
               }
           }
       ],
       "family": "efs-tutorial",
       "executionRoleArn":"arn:aws:iam::111122223333:role/ecsTaskExecutionRole"
   }
   ```
**Nota**  
Il ruolo IAM di esecuzione delle attività di Amazon ECS non richiede autorizzazioni specifiche relative ad Amazon EFS per montare un file system di Amazon EFS. Per impostazione predefinita, se non esiste una policy basata sulle risorse di Amazon EFS, l'accesso è concesso a tutti i principali (\$1) al momento della creazione del file system.  
Il ruolo dell'attività di Amazon ECS è richiesto solo se “Autorizzazione EFS IAM” è abilitata nella definizione dell'attività di Amazon ECS. Se abilitata, l'identità del ruolo dell'attività deve avere accesso al file system di Amazon EFS nella policy basata sulle risorse di Amazon EFS e l'accesso anonimo deve essere disabilitato.

1. Scegli **Create** (Crea).

## Fase 6: Esecuzione di un processo e visualizzazione dei risultati
<a name="efs-run-task"></a>

Ora che il file system Amazon EFS è stato creato e che è presente del contenuto Web per il container NGINX da servire, è possibile eseguire un processo utilizzando la definizione di attività creata. I server Web NGINX gestiscono la pagina HTML semplice. Se aggiorni il contenuto del tuo file system Amazon EFS, le modifiche vengono propagate a qualsiasi container in cui è montato lo stesso file system.

L'attività viene eseguita nella sottorete definita per il cluster.

**Esecuzione di un processo e visualizzazione dei risultati attraverso la console**

1. Apri la console nella [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Nella pagina **Cluster**, seleziona il cluster per eseguire il processo autonomo contenuto.

   Determina la risorsa da cui avviare il servizio.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonECS/latest/developerguide/tutorial-efs-volumes.html)

1. (Facoltativo) Scegli come viene distribuita l'attività pianificata nell'infrastruttura cluster. Espandi **Compute configuration** (Configurazione di calcolo), quindi effettua le seguenti operazioni:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonECS/latest/developerguide/tutorial-efs-volumes.html)

1. Per **Tipo di applicazione**, scegli **Processo**.

1. Per **Definizione di attività**, seleziona la definizione dell'attività `efs-tutorial` che hai creato in precedenza.

1. Per **Attività desiderate**, inserisci `1`.

1. Scegli **Create** (Crea).

1. Nella pagina **Cluster**, seleziona **Infrastruttura**.

1. In **Istanze di container**, seleziona l'istanza di container a cui effettuare la connessione.

1. Nella pagina **Istanza di container**, nella sezione **Reti**, registra l'**IP pubblico** per l'istanza.

1. Apri un browser e inserisci l'indirizzo IP pubblico. Dovresti visualizzare un messaggio simile al seguente:

   ```
   It works!
   You are using an Amazon EFS file system for persistent container storage.
   ```
**Nota**  
In caso contrario, assicurati che il gruppo di sicurezza per l'istanza di container consenta il traffico di rete in entrata sulla porta 80 e che il gruppo di sicurezza per il file system consenta l'accesso in entrata dall'istanza di container.

# Utilizzo FSx per volumi Windows File Server con Amazon ECS
<a name="wfsx-volumes"></a>

FSx per Windows File Server fornisce file server Windows completamente gestiti, supportati da un file system Windows. Quando si utilizza FSx for Windows File Server insieme a ECS, è possibile effettuare il provisioning delle attività di Windows con uno storage di file statico persistente, distribuito, condiviso. Per ulteriori informazioni, consulta [What Is FSx for Windows File Server?](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) .

**Nota**  
Le istanze EC2 che utilizzano l'AMI Windows Server 2016 Full ottimizzata FSx per Amazon ECS non supportano i volumi di attività ECS di Windows File Server.  
Non è possibile utilizzarlo FSx per i volumi di Windows File Server in un contenitore Windows nella configurazione Fargate. Invece, è possibile [modificare i container per montarli all'avvio](https://aws.amazon.com/blogs/containers/use-smb-storage-with-windows-containers-on-aws-fargate/).

È possibile utilizzare Windows File Server FSx per distribuire carichi di lavoro Windows che richiedono l'accesso allo storage esterno condiviso, allo storage regionale ad alta disponibilità o allo storage ad alto throughput. Puoi montare uno o più FSx volumi del file system Windows File Server in un contenitore Amazon ECS eseguito su un'istanza Amazon ECS Windows. Puoi condividere FSx i volumi del file system Windows File Server tra più contenitori Amazon ECS all'interno di una singola attività Amazon ECS.

Per abilitare l'uso di FSx per Windows File Server con ECS, includi l'ID del file system FSx per Windows File Server e le informazioni correlate in una definizione di attività. Ciò viene riportato nel frammento JSON della definizione di attività di esempio di seguito riportato. Per poter creare ed eseguire una definizione di attività, è necessario quanto riportato di seguito.
+ Un'istanza EC2 Windows per ECS unita a un dominio valido. Può essere ospitata da un [AWS Directory Service for Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html), Active Directory on-premises o Active Directory autogestito su Amazon EC2.
+ Un parametro Gestione dei segreti AWS segreto o Systems Manager che contiene le credenziali utilizzate per aggiungere il dominio Active Directory e collegare il file system FSx per Windows File Server. I valori delle credenziali sono le credenziali di nome e password immesse durante la creazione di Active Directory.

Per un tutorial correlato, consulta [Scopri come configurare FSx i file system Windows File Server per Amazon ECS](tutorial-wfsx-volumes.md).

## Considerazioni
<a name="wfsx-volume-considerations"></a>

Quando si utilizza FSx per volumi Windows File Server, si consideri quanto segue:
+ I volumi FSx for Windows File Server sono supportati nativamente con Amazon ECS su istanze Windows Amazon EC2: Amazon ECS gestisce automaticamente il montaggio tramite la configurazione della definizione delle attività.

  Sulle istanze Amazon EC2 Linux, Amazon ECS non può montare automaticamente i volumi FSx for Windows File Server tramite le definizioni delle attività. Tuttavia, puoi montare manualmente una condivisione di file FSx for Windows File Server su un'istanza Linux EC2 a livello di host e poi montare in associazione quel percorso nei tuoi contenitori Amazon ECS. Per ulteriori informazioni, consulta [Montaggio di condivisioni di FSx file Amazon da Linux](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/map-shares-linux.html).
**Importante**  
Si tratta di una configurazione autogestita. Per indicazioni sul montaggio e la manutenzione delle FSx condivisioni di file Windows File Server su Linux, consulta la [FSx documentazione relativa a Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/).
**Importante**  
Quando si utilizza una condivisione FSx for Windows File Server montata manualmente su istanze Linux EC2, Amazon FSx ECS e per Windows File Server funzionano in modo indipendente: Amazon ECS non monitora il montaggio FSx di Amazon e per Windows File Server non tiene traccia del FSx posizionamento delle attività o degli eventi del ciclo di vita di Amazon ECS. Sei responsabile di garantire la raggiungibilità della rete tra le tue istanze di container Amazon ECS e il FSx file system Amazon, implementare i controlli dello stato del montaggio e gestire la logica di riconnessione per tollerare gli eventi di failover.
+ FSx per Windows File Server con Amazon ECS non supporta AWS Fargate.
+ FSx per Windows File Server con Amazon ECS non è supportato su Amazon ECS Managed Instances.
+ FSx per Windows File Server con Amazon ECS con modalità `awsvpc` di rete richiede una versione `1.54.0` o successiva dell'agente contenitore.
+ Il numero massimo di lettere di unità che possono essere utilizzate per un processo Amazon ECS è 23. A ogni attività con un volume FSx per Windows File Server viene assegnata una lettera di unità.
+ Per impostazione predefinita, il tempo di pulizia delle risorse dell'attività è di tre ore dopo la fine dell'attività. Anche se non viene utilizzata da alcuna attività, una mappatura di file creata da un'attività persiste per 3 ore. Il tempo di pulizia di default può essere configurato utilizzando la variabile di ambiente `ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION` di Amazon ECS. Per ulteriori informazioni, consulta [Configurazione dell'agente del container Amazon ECS](ecs-agent-config.md).
+ Le attività in genere vengono eseguite solo nello stesso VPC del file system FSx per Windows File Server. Tuttavia, è possibile avere il supporto cross-VPC se esiste una connettività di rete consolidata tra il VPC del cluster Amazon ECS e il file system FSx per Windows File Server tramite peering VPC.
+ Puoi controllare l'accesso a un file system FSx for Windows File Server a livello di rete configurando i gruppi di sicurezza VPC. Solo le attività ospitate su istanze EC2 unite al dominio Active Directory con gruppi di sicurezza Active Directory correttamente configurati possono accedere alla condivisione di file per Windows File Server. FSx Se i gruppi di sicurezza non sono configurati correttamente, Amazon ECS non riuscirà a eseguire l'avvio dell'attività e sarà restituito il seguente messaggio di errore: `unable to mount file system fs-id`. 
+ FSx for Windows File Server è integrato con AWS Identity and Access Management (IAM) per controllare le azioni che gli utenti e i gruppi IAM possono eseguire su risorse specifiche FSx per Windows File Server. Con l'autorizzazione del client, i clienti possono definire ruoli IAM che consentono o negano l'accesso a file system specifici FSx per Windows File Server, richiedono facoltativamente l'accesso in sola lettura e facoltativamente consentono o impediscono l'accesso root al file system da parte del client. Per ulteriori informazioni, consulta la sezione [Sicurezza](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/security.html) nella Amazon FSx Windows User Guide.

# Procedure consigliate FSx per l'utilizzo per Windows File Server con Amazon ECS
<a name="wfsx-best-practices"></a>

Prendi nota delle seguenti best practice consigliate quando utilizzi FSx Windows File Server con Amazon ECS.

## Controlli di sicurezza e accesso FSx per Windows File Server
<a name="wfsx-security-access-controls"></a>

FSx per Windows File Server offre le seguenti funzionalità di controllo dell'accesso che è possibile utilizzare per garantire che i dati archiviati in un file system FSx per Windows File Server siano sicuri e accessibili solo dalle applicazioni che ne hanno bisogno.

### Crittografia dei dati FSx per volumi Windows File Server
<a name="storage-fsx-security-encryption"></a>

FSx per Windows File Server supporta due forme di crittografia per i file system. Si tratta della crittografia dei dati in transito e di quella dei dati a riposo. La crittografia dei dati in transito è supportata sulle condivisioni di file mappate su un'istanza di container che supporta il protocollo SMB 3.0 o successivo. La crittografia dei dati inattivi viene abilitata automaticamente durante la creazione di un FSx file system Amazon. Amazon crittografa FSx automaticamente i dati in transito utilizzando la crittografia SMB quando accedi al tuo file system senza che tu debba modificare le tue applicazioni. Per ulteriori informazioni, consulta la sezione [Crittografia dei dati FSx in Amazon](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption.html) *nella Guida FSx per l'utente di Amazon per Windows File Server*.

### Usa Windows ACLs per il controllo degli accessi a livello di cartella
<a name="storage-fsx-security-access"></a>

L'istanza Windows Amazon EC2 accede alle condivisioni di FSx file Amazon utilizzando le credenziali di Active Directory. Utilizza elenchi di controllo degli accessi standard di Windows (ACLs) per un controllo granulare degli accessi a livello di file e cartella. È possibile creare più credenziali, ognuna per una cartella specifica all'interno della condivisione associata a un'attività specifica.

Nell'esempio seguente, l'attività ha accesso alla cartella `App01` utilizzando le credenziali salvate in Secrets Manager. Il nome della risorsa Amazon (ARN) è `1234`.

```
"rootDirectory": "\\path\\to\\my\\data\App01",
"credentialsParameter": "arn-1234",
"domain": "corp.fullyqualified.com",
```

In un altro esempio, un'attività ha accesso alla cartella `App02` utilizzando le credenziali salvate in Secrets Manager. Il suo ARN è `6789`.

```
"rootDirectory": "\\path\\to\\my\\data\App02",
"credentialsParameter": "arn-6789",
"domain": "corp.fullyqualified.com",
```

# Specificare un file system FSx per Windows File Server in una definizione di attività Amazon ECS
<a name="specify-wfsx-config"></a>

Per utilizzarli FSx per i volumi del file system Windows File Server per i contenitori, specifica le configurazioni del volume e del punto di montaggio nella definizione dell'attività. Il seguente frammento JSON della definizione di attività illustra la sintassi degli oggetti `volumes` e `mountPoints` per un container.

```
{
    "containerDefinitions": [
        {
            "entryPoint": [
                "powershell",
                "-Command"
            ],
            "portMappings": [],
            "command": ["New-Item -Path C:\\fsx-windows-dir\\index.html -ItemType file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>It Works!</h2> <p>You are using Amazon FSx for Windows File Server file system for persistent container storage.</p>' -Force"],
            "cpu": 512,
            "memory": 256,
            "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019",
            "essential": false,
            "name": "container1",
            "mountPoints": [
                {
                    "sourceVolume": "fsx-windows-dir",
                    "containerPath": "C:\\fsx-windows-dir",
                    "readOnly": false
                }
            ]
        },
        {
            "entryPoint": [
                "powershell",
                "-Command"
            ],
            "portMappings": [
                {
                    "hostPort": 443,
                    "protocol": "tcp",
                    "containerPort": 80
                }
            ],
            "command": ["Remove-Item -Recurse C:\\inetpub\\wwwroot\\* -Force; Start-Sleep -Seconds 120; Move-Item -Path C:\\fsx-windows-dir\\index.html -Destination C:\\inetpub\\wwwroot\\index.html -Force; C:\\ServiceMonitor.exe w3svc"],
            "mountPoints": [
                {
                    "sourceVolume": "fsx-windows-dir",
                    "containerPath": "C:\\fsx-windows-dir",
                    "readOnly": false
                }
            ],
            "cpu": 512,
            "memory": 256,
            "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019",
            "essential": true,
            "name": "container2"
        }
    ],
    "family": "fsx-windows",
    "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole",
    "volumes": [
        {
            "name": "fsx-windows-dir",
            "fsxWindowsFileServerVolumeConfiguration": {
                "fileSystemId": "fs-0eeb5730b2EXAMPLE",
                "authorizationConfig": {
                    "domain": "example.com",
                    "credentialsParameter": "arn:arn-1234"
                },
                "rootDirectory": "share"
            }
        }
    ]
}
```

`FSxWindowsFileServerVolumeConfiguration`  
Tipo: oggetto  
Obbligatorio: no  
Questo parametro viene specificato quando si utilizza FSx il file system [Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) per l'archiviazione delle attività.    
`fileSystemId`  
Tipo: stringa  
Obbligatorio: sì  
L' FSx ID del file system Windows File Server da utilizzare.  
`rootDirectory`  
Tipo: stringa  
Obbligatorio: sì  
La directory all'interno del FSx file system Windows File Server da montare come directory principale all'interno dell'host.  
`authorizationConfig`    
`credentialsParameter`  
Tipo: stringa  
Obbligatorio: sì  
Le opzioni delle credenziali di autorizzazione:  
+ L'Amazon Resource Name (ARN) di un segreto di [Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html).
+ Amazon Resource Name (ARN) di un parametro di [Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/integration-ps-secretsmanager.html).  
`domain`  
Tipo: stringa  
Obbligatorio: sì  
Un nome di dominio completo ospitato da una directory [AWS Directory Service for Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) (AWS Managed Microsoft AD) o da una directory EC2 Active autonoma.

## Metodi per l'archiviazione delle FSx credenziali del volume Windows File Server
<a name="creds"></a>

Esistono due metodi diversi per archiviare le credenziali da utilizzare con il parametro delle credenziali.
+ **Gestione dei segreti AWS segreto**

  Questa credenziale può essere creata nella Gestione dei segreti AWS console utilizzando la categoria *segreta Altro tipo*. Si aggiunge una riga per ogni key/value coppia username/admin e una *password* password/.
+ **Parametro di Systems Manager**

  Queste credenziali possono essere create nella console dei parametri di Systems Manager immettendo del testo nel modulo illustrato nel frammento di codice di esempio seguente.

  ```
  {
    "username": "admin",
    "password": "password"
  }
  ```

`credentialsParameter` nel parametro `FSxWindowsFileServerVolumeConfiguration` della definizione di attività conterrà l'ARN del segreto o l'ARN del parametro di Systems Manager. Per ulteriori informazioni, consulta [Cos'è AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) nella *Guida per l'utente di Secrets Manager* e [Archivio parametri di Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) nella *Guida per l'utente di Systems Manager*.

# Scopri come configurare FSx i file system Windows File Server per Amazon ECS
<a name="tutorial-wfsx-volumes"></a>

Scopri come avviare un'istanza Windows ottimizzata per Amazon ECS che ospita un file system FSx per Windows File Server e contenitori in grado di accedere al file system. A tale scopo, è innanzitutto necessario creare un Microsoft Active Directory Directory Service AWS gestito. Quindi, creare un file system FSx per Windows File Server e un cluster con un'istanza Amazon EC2 e una definizione di attività. Si configura la definizione delle attività per i contenitori in modo che utilizzino il file system FSx per Windows File Server. Infine, esegui il test del file system.

Occorrono dai 20 ai 45 minuti ogni volta che si avvia o si elimina il file system Active Directory o il file system FSx per Windows File Server. Considera almeno 90 minuti per completare il tutorial oppure completalo in più sessioni.

## Prerequisiti per il tutorial
<a name="wfsx-prerequisites"></a>
+ Un utente amministratore. Per informazioni, consulta [Configurazione per l'uso di Amazon ECS](get-set-up-for-amazon-ecs.md).
+ (Facoltativo) Una coppia di chiavi `PEM` per la connessione all'istanza Windows di EC2 tramite l'accesso RDP. Per informazioni sulla creazione di coppie di chiavi, consultare [Amazon EC2 key pairs and Amazon EC2 instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) nella *Guida per l'utente di Amazon EC2*.
+ Un VPC con almeno una sottorete pubblica e una sottorete privata e un gruppo di sicurezza. È possibile utilizzare il VPC di default. Non è necessario un gateway o un dispositivo NAT. Directory Service non supporta Network Address Translation (NAT) con Active Directory. Affinché ciò funzioni, Active Directory, il file system FSx per Windows File Server, il cluster ECS e l'istanza EC2 devono trovarsi all'interno del VPC. Per ulteriori informazioni su VPCs Active Directory, consulta [Creazione di un VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) [e Prerequisiti per la creazione di un Microsoft AWS AD gestito](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started.html#ms_ad_getting_started_prereqs).
+ Le autorizzazioni IAM ecsInstanceRole e ecsTaskExecution Role sono associate al tuo account. Questi ruoli collegati ai servizi consentono ai servizi di effettuare chiamate API e accedere a container, segreti, directory e server di file per tuo conto.

## Fase 1: Creazione dei ruoli di accesso IAM
<a name="iam-roles"></a>

**Crea un cluster con la Console di gestione AWS.**

1. Verifica se ne possiedi uno ecsInstanceRole e scopri come puoi crearne uno se non ne hai uno. [Ruolo IAM delle istanze di container Amazon ECS](instance_IAM_role.md)

1. Consigliamo di personalizzare le policy dei ruoli per ottenere autorizzazioni minime in un ambiente di produzione effettivo. Per completare questo tutorial, verifica che la seguente politica AWS gestita sia allegata al tuoecsInstanceRole. Collega la policy, se non è già collegata.
   + EC2ContainerServiceforEC2Ruolo di Amazon
   + Amazon SSMManaged InstanceCore
   + Amazon SSMDirectory ServiceAccess

   Per allegare politiche AWS gestite.

   1. Aprire la [console IAM](https://console.aws.amazon.com//iam/).

   1. Nel pannello di navigazione, selezionare **Ruoli**.

   1. Scegli un **ruolo gestito da AWS **.

   1. Scegli **Autorizzazioni, Collega policy**.

   1. Per limitare le policy disponibili da collegare, utilizza **Filtro**.

   1. Seleziona la policy appropriata, quindi scegli **Collega policy**.

1. Verifica se hai un ecsTaskExecution ruolo e scopri come puoi crearne uno se non ne hai uno. [Ruolo IAM di esecuzione di attività Amazon ECS](task_execution_IAM_role.md)

   Consigliamo di personalizzare le policy dei ruoli per ottenere autorizzazioni minime in un ambiente di produzione effettivo. Per completare questo tutorial, verifica che le seguenti politiche AWS gestite siano allegate al tuo ecsTaskExecution ruolo. Collega le policy, se non sono già collegate. Utilizza la procedura indicata nella sezione precedente per allegare le politiche AWS gestite.
   + SecretsManagerReadWrite
   + Amazon FSx ReadOnlyAccess
   + Amazon SSMRead OnlyAccess
   + Amazon ECSTask ExecutionRolePolicy

## Fase 2: Creazione di Windows Active Directory (AD)
<a name="wfsx-create-ads"></a>

1. Segui i passaggi descritti in [Creazione di AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started.html#ms_ad_getting_started_create_directory) nella AWS *Directory Service Administration Guide*. Utilizza il VPC designato per questo tutorial. Nella fase 3 della *creazione di AWS Managed Microsoft AD*, salva il nome utente e la password di amministratore da utilizzare nel passaggio successivo. Annotare inoltre il nome completo della directory DNS per le operazioni successive. È possibile completare la fase seguente durante la creazione di Active Directory.

1. Crea un segreto di AWS Secrets Manager da utilizzare nei passaggi seguenti. Per ulteriori informazioni, consulta Guida [introduttiva a Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html#get-started) nella *Guida per l'utente di AWS Secrets Manager*.

   1. Apri la [console Secrets Manager](https://console.aws.amazon.com//secretsmanager/).

   1. Fai clic su **Archivia un nuovo segreto**.

   1. Seleziona **Altro tipo di segreti**.

   1. Per **Chiave/valore segreto**, nella prima riga, crea una chiave **username** con valore **admin**. Fai clic su **\$1 Aggiungi riga**.

   1. Nella nuova riga, crea una chiave **password**. Per ulteriori informazioni, digitate la password inserita nel passaggio 3 di *Create Your AWS Managed AD Directory*.

   1. Fai clic sul pulsante **Successivo**.

   1. Specifica un nome e una descrizione per il segreto. Fare clic su **Avanti**.

   1. Fare clic su **Avanti**. Fai clic su **Archivia**.

   1. Dall'elenco nella pagina **Segreti**, seleziona il segreto appena creato.

   1. Salva l'ARN del nuovo segreto per utilizzarlo nelle fasi seguenti.

   1. Durante la creazione di Active Directory, è possibile procedere alla fase successiva.

## Fase 3: Verifica e aggiornamento del gruppo di sicurezza
<a name="wfsx-sg"></a>

In questa fase è possibile verificare e aggiornare le regole per il gruppo di sicurezza in uso. Pertanto è possibile utilizzare il gruppo di sicurezza di default creato per il VPC.

**Verifica e aggiorna il gruppo di sicurezza.**

È necessario creare o modificare il gruppo di sicurezza per inviare dati da e verso le porte, descritti in [Amazon VPC Security Groups](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/limit-access-security-groups.html#fsx-vpc-security-groups) nella Guida *FSx per l'utente di Windows File Server*. A tale scopo, è possibile creare la regola in ingresso del gruppo di sicurezza visualizzata nella prima riga della tabella di regole in entrata riportata di seguito. Questa regola consente il traffico in ingresso dalle interfacce di rete (e le relative istanze associate) assegnate al gruppo di sicurezza. Tutte le risorse cloud create si trovano all'interno dello stesso VPC e collegate allo stesso gruppo di sicurezza. Pertanto, questa regola consente l'invio di traffico da e verso il file system FSx per Windows File Server, Active Directory e l'istanza ECS, se necessario. Le altre regole in entrata consentono al traffico di servire il sito Web e l'accesso RDP per la connessione all'istanza ECS.

Nella tabella seguente vengono illustrate le regole in entrata del gruppo di sicurezza necessarie per questo tutorial.


| Tipo | Protocollo | Intervallo porte | Origine | 
| --- | --- | --- | --- | 
|  Tutto il traffico  |  Tutti  |  Tutti  |  *sg-securitygroup*  | 
|  HTTPS  |  TCP  |  443  |  0.0.0.0/0  | 
|  RDP  |  TCP  |  3389  |  indirizzo IP del laptop  | 

Nella tabella seguente vengono illustrate le regole in uscita del gruppo di sicurezza necessarie per questo tutorial.


| Tipo | Protocollo | Intervallo porte | Destinazione | 
| --- | --- | --- | --- | 
|  Tutto il traffico  |  Tutti  |  Tutti  |  0.0.0.0/0  | 

1. Apri la [Console EC2](https://console.aws.amazon.com//ec2/) e seleziona **Gruppi di sicurezza** dal menu sulla sinistra.

1. Dall'elenco dei gruppi di sicurezza ora visualizzati, seleziona la casella di controllo a sinistra del gruppo di sicurezza utilizzato per questo tutorial.

   Vengono visualizzati i dettagli del gruppo di sicurezza.

1. Modifica le regole in ingresso e in uscita selezionando le schede **Inbound rules** (Regole in entrata) o **Outbound rules** (Regole in uscita) e scegliendo l'opzione **Edit inbound rules** (Modifica regole in entrata) o **Edit outbound rules** (Modifica regole in uscita). Modifica le regole in base a quelle visualizzate nelle tabelle precedenti. Dopo aver creato l'istanza EC2 più avanti in questa esercitazione, modificare l'origine RDP della regola in ingresso con l'indirizzo IP pubblico dell'istanza EC2 come descritto in [Connect to your Windows instance using RDP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html) nella *Guida per l'utente di Amazon EC2*.

## Passaggio 4: creare un file system FSx per Windows File Server
<a name="wfsx-create-fsx"></a>

Dopo aver verificato e aggiornato il gruppo di sicurezza e aver creato Active Directory e aver raggiunto lo stato attivo, crea il file system FSx per Windows File Server nello stesso VPC di Active Directory. Utilizza i passaggi seguenti per creare un file system FSx per Windows File Server per le tue attività Windows.

**Creare il tuo primo file system.**

1. Apri la [ FSx console Amazon](https://console.aws.amazon.com//fsx/).

1. Nel pannello di controllo, scegli **Crea file system** per avviare la procedura guidata di creazione del file system.

1. Nella pagina **Seleziona il tipo di file system**, scegli **FSx Windows File Server**, quindi scegli **Avanti**. Viene visualizzata la pagina **Crea file system**.

1. Nella sezione **Dettagli file system**, specifica un nome per il file system. La denominazione dei file system ne semplifica la ricerca e la gestione. Puoi utilizzare fino a 256 caratteri Unicode. I caratteri consentiti sono lettere, numeri, spazi e caratteri speciali segno più (\$1), segno meno (-), segno uguale (=), punto (.), trattino basso (\$1), due punti (:) e barra (/).

1. Per **Tipo di implementazione**, scegli **Single-AZ** per implementare un file system distribuito in una zona di disponibilità singola. *Single-AZ 2* è l'ultima generazione di file system a zona di disponibilità singola e supporta l'archiviazione SSD e HDD.

1. Per **Tipo di archiviazione**, scegli **HDD**.

1. In **Capacità di archiviazione**, specifica la capacità di archiviazione minima. 

1. Mantieni **Capacità di velocità effettiva** sul valore di default.

1. Nella sezione **Rete e sicurezza**, scegli lo stesso Amazon VPC che hai scelto per la tua Directory Service directory.

1. Per **Gruppi di sicurezza VPC**, scegli il gruppo di sicurezza verificato in *Fase 3: Verifica e aggiornamento del gruppo di sicurezza*.

1. Per **Autenticazione Windows**, scegli **AWS Managed Microsoft Active Directory**, quindi seleziona la tua directory Directory Service dall'elenco.

1. Per **Crittografia**, mantieni l'impostazione di default **Chiave di crittografia** su **aws/fsx (default)**.

1. Mantieni le impostazioni di default per **Preferenze di manutenzione**.

1. Fai clic sul pulsante **Successivo**.

1. Rivedi la configurazione del file system riportata nella pagina **Crea file system**. Come riferimento, prendi nota delle impostazioni del file system che è possibile modificare dopo la sua creazione. Scegliere **Create file system (Crea file system)**. 

1. Prendi nota dell'ID file system. Sarà utile in una fase successiva.

   Puoi passare ai passaggi successivi per creare un cluster e un'istanza EC2 durante la creazione del file system FSx per Windows File Server.

## Fase 5: Creazione di un cluster Amazon ECS
<a name="wfsx-create-cluster"></a>

**Creazione di un cluster tramite la console Amazon ECS**

1. [Apri la console nella versione 2https://console.aws.amazon.com/ecs/.](https://console.aws.amazon.com/ecs/v2)

1. Seleziona la Regione da utilizzare nella barra di navigazione.

1. Nel pannello di navigazione scegli **Cluster**.

1. Nella pagina **Clusters** (Cluster), scegli **Create cluster** (Crea cluster).

1. In **Configurazione del cluster**, per **Nome cluster**, inserisci **windows-fsx-cluster**.

1. Espandi **l'infrastruttura**, cancella AWS Fargate (senza server) e seleziona le istanze **Amazon EC2**.

   1. Per creare un gruppo Auto Scaling, da **Auto Scaling group (ASG)** (Gruppo di Auto Scaling (ASG)), seleziona **Create new group** (Crea nuovo gruppo) e quindi fornisci i seguenti dettagli sul gruppo:
     + Per **Sistema operativo/architettura**, scegli **Windows Server 2019 Core**.
     + In **Tipo di istanza EC2**, scegli t2.medium o t2.micro.

1. Scegli **Create** (Crea).

## Fase 6: creazione di un'istanza Amazon EC2 ottimizzata per Amazon ECS
<a name="wfsx-create-instance"></a>

Creazione di un'istanza di container Windows di Amazon ECS

**Creazione di un'istanza Amazon ECS**

1. Usa il comando `aws ssm get-parameters` per recuperare il nome dell'AMI per la regione che ospita il VPC. Per ulteriori informazioni, consulta [Retrieving Amazon ECS-Optimized AMI metadata](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/retrieve-ecs-optimized_windows_AMI.html).

1. Utilizza la console di Amazon EC2 per avviare l'istanza.

   1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

   1. Seleziona la Regione da utilizzare nella barra di navigazione.

   1. Da **Pannello di controllo EC2**, scegli **Avvia istanza**.

   1. Per **Name (Nome)**, inserisci un nome univoco.

   1. Per **Immagini di applicazioni e sistema operativo (Amazon Machine Image)**, nel campo **cerca**, inserisci il nome dell'AMI recuperata.

   1. In **Tipo di istanza**, scegli t2.medium o t2.micro.

   1. Per **Key pair (login)** (Coppia di chiavi [accesso]), scegli una coppia di chiavi. Se non specifici una coppia di chiavi, 

   1. In **Impostazioni di rete**, per **VPC** e **Sottorete**, scegli il VPC e una sottorete pubblica.

   1. In **Network settings** (Impostazioni di rete), per **Security group** (Gruppo di sicurezza), scegli un gruppo di sicurezza esistente o creane uno nuovo. Assicurati che il gruppo di sicurezza scelto disponga delle regole in entrata e in uscita definite in [Prerequisiti per il tutorial](#wfsx-prerequisites)

   1. In **Network settings** (Impostazioni di rete), per **Auto-assign Public IP** (Assegna automaticamente un IP pubblico), seleziona **Enable** (Abilita). 

   1. Espandi **Dettagli avanzati** e in **Directory aggiunta dominio**, seleziona l'ID dell'Active Directory creata. Questo dominio si unisce all'AD quando viene avviata l'istanza EC2.

   1. In **Dettagli avanzati**, per il **profilo dell'istanza IAM**, scegli. **ecsInstanceRole**

   1. Configura la tua istanza di container Amazon ECS con i seguenti dati utente. In **Dettagli avanzati**, incolla lo script seguente nel campo **Dati utente**, sostituendolo *cluster\$1name* con il nome del cluster.

      ```
      <powershell>
      Initialize-ECSAgent -Cluster windows-fsx-cluster -EnableTaskIAMRole
      </powershell>
      ```

   1. Quando sei pronto, seleziona il campo di conferma e scegli **Launch Instances** (Avvia istanze). 

   1. Una pagina di conferma indicherà che l'istanza si sta avviando. Scegliere **View Instances (Visualizza istanze)** per chiudere la pagina di conferma e tornare alla console.

1. Apri la console nella [https://console.aws.amazon.com/ecs/versione 2](https://console.aws.amazon.com/ecs/v2).

1. Nel riquadro di navigazione, scegli **Cluster**, quindi scegli. **windows-fsx-cluster**

1. Scegli la scheda **Infrastruttura** e verifica che l'istanza sia stata registrata nel **windows-fsx-cluster**cluster.

## Fase 7: Registrazione di una definizione di attività di Windows
<a name="register_windows_task_def"></a>

Prima di eseguire i container Windows nel cluster Amazon ECS, devi registrare una definizione di attività. Il seguente esempio di definizione di attività mostra una pagina Web semplice. L'attività avvia due contenitori che hanno accesso al FSx file system. Il primo container scrive un file HTML nel file system. Il secondo container scarica il file HTML dal file system e serve la pagina Web.

1. [Apri la console nella versione 2https://console.aws.amazon.com/ecs/.](https://console.aws.amazon.com/ecs/v2)

1. Nel pannello di navigazione, scegli **Task Definitions** (Definizioni di processo).

1. Scegli **Create new task definition** (Crea nuova definizione di attività), **Create new task definition with JSON** (Crea nuova definizione di attività con JSON).

1. **Nella casella dell'editor JSON, sostituisci i valori per il tuo ruolo di esecuzione delle attività e i dettagli sul tuo FSx file system, quindi scegli Salva.**

   ```
   {
       "containerDefinitions": [
           {
               "entryPoint": [
                   "powershell",
                   "-Command"
               ],
               "portMappings": [],
               "command": ["New-Item -Path C:\\fsx-windows-dir\\index.html -ItemType file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>It Works!</h2> <p>You are using Amazon FSx for Windows File Server file system for persistent container storage.</p>' -Force"],
               "cpu": 512,
               "memory": 256,
               "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019",
               "essential": false,
               "name": "container1",
               "mountPoints": [
                   {
                       "sourceVolume": "fsx-windows-dir",
                       "containerPath": "C:\\fsx-windows-dir",
                       "readOnly": false
                   }
               ]
           },
           {
               "entryPoint": [
                   "powershell",
                   "-Command"
               ],
               "portMappings": [
                   {
                       "hostPort": 443,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ],
               "command": ["Remove-Item -Recurse C:\\inetpub\\wwwroot\\* -Force; Start-Sleep -Seconds 120; Move-Item -Path C:\\fsx-windows-dir\\index.html -Destination C:\\inetpub\\wwwroot\\index.html -Force; C:\\ServiceMonitor.exe w3svc"],
               "mountPoints": [
                   {
                       "sourceVolume": "fsx-windows-dir",
                       "containerPath": "C:\\fsx-windows-dir",
                       "readOnly": false
                   }
               ],
               "cpu": 512,
               "memory": 256,
               "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019",
               "essential": true,
               "name": "container2"
           }
       ],
       "family": "fsx-windows",
       "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole",
       "volumes": [
           {
               "name": "fsx-windows-dir",
               "fsxWindowsFileServerVolumeConfiguration": {
                   "fileSystemId": "fs-0eeb5730b2EXAMPLE",
                   "authorizationConfig": {
                       "domain": "example.com",
                       "credentialsParameter": "arn:arn-1234"
                   },
                   "rootDirectory": "share"
               }
           }
       ]
   }
   ```

## Fase 8: Esecuzione di un processo e visualizzazione dei risultati
<a name="wfsx-run-task"></a>

Prima di eseguire l'operazione, verificate che lo stato del file system FSx per Windows File Server sia **Disponibile**. Una volta disponibile, è possibile eseguire un processo utilizzando la definizione di attività creata. Il processo inizia creando container che mescolano un file HTML utilizzando il file system. Dopo il mescolamento, un server Web serve la pagina HTML semplice.

**Nota**  
Potresti non essere in grado di connetterti al sito Web da una VPN.

**Esegui un'attività e visualizza i risultati tramite la console Amazon ECS.**

1. Apri la console nella [https://console.aws.amazon.com/ecs/versione 2](https://console.aws.amazon.com/ecs/v2).

1. Nel riquadro di navigazione, scegli **Cluster**, quindi scegli. **windows-fsx-cluster**

1. Seleziona la scheda **Attività**, quindi **Esegui nuova attività**.

1. In **Tipo di avvio**, selezionare **EC2**.

1. In Configurazione dell'implementazione, per **Definizione dell'attività**, scegli **fsx-windows**, quindi scegli **Crea**.

1. Quando lo stato dell'attività è **IN ESECUZIONE**, scegli l'ID attività.

1. In **Container**, quando lo stato di container1 è **ARRESTATO**, seleziona container2 per visualizzarne i dettagli.

1.  In **Dettagli del container per container2**, seleziona **Associazioni di rete** e fai clic sull'indirizzo IP esterno associato al container. Si aprirà il browser e sarà visualizzato il seguente messaggio.

   ```
   Amazon ECS Sample App
   It Works! 
   You are using Amazon FSx for Windows File Server file system for persistent container storage.
   ```
**Nota**  
Possono essere necessari alcuni minuti per visualizzare il messaggio. Se dopo qualche minuto non viene visualizzato il messaggio, assicurati che non stai utilizzando una VPN e che il gruppo di sicurezza per l'istanza di container consenta il traffico di rete in entrata sulla porta 443.

## Fase 9: Pulizia
<a name="wfsx-cleanup"></a>

**Nota**  
Sono necessari dai 20 ai 45 minuti per eliminare il file system FSx per Windows File Server o l'AD. È necessario attendere il completamento delle operazioni di eliminazione del file system FSx for Windows File Server prima di iniziare le operazioni di eliminazione di AD.

**Elimina FSx per il file system Windows File Server.**

1. Apri la [ FSx console Amazon](https://console.aws.amazon.com//fsx/)

1. Scegli il pulsante di opzione a sinistra del file system FSx per Windows File Server che hai appena creato.

1. Scegli **Azioni**.

1. Seleziona **Elimina file system**.

**Elimina l'AD.**

1. Apri la [Directory Service console](https://console.aws.amazon.com//directoryservicev2/).

1. Scegli il pulsante di opzione a sinistra dell'AD appena creato.

1. Scegli **Azioni**.

1. Seleziona **Elimina directory**.

**Elimina il cluster.**

1. Apri la console alla [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Nel riquadro di navigazione, scegli **Cluster**, quindi scegli. **windows-fsx-cluster**

1. Scegli **Delete cluster (Elimina cluster)**.

1. Inserisci la frase, quindi scegli **Elimina**.

**Termina l'istanza EC2.**

1. Aprire la [console di Amazon EC2](https://console.aws.amazon.com//ec2/).

1. Nel menu a sinistra, seleziona **Istanze**.

1. Seleziona la casella a sinistra dell'istanza EC2 creata.

1. Fai clic su **Stato istanza**, **Termina istanza**.

**Elimina il segreto.**

1. Apri la [console Secrets Manager](https://console.aws.amazon.com//secretsmanager/).

1. Seleziona il segreto creato per questa procedura.

1. Fai clic su **Operazioni**.

1. Seleziona **Elimina segreto**.

# Utilizzo dei volumi Docker con Amazon ECS
<a name="docker-volumes"></a>

Quando utilizzi i volumi Docker, puoi usare il driver `local` integrato o un driver di volumi di terze parti. I volumi Docker sono gestiti da Docker e viene creata una directory in `/var/lib/docker/volumes` sull'istanza di container che contiene i dati del volume.

Per usare i volumi Docker, specifica `dockerVolumeConfiguration` nella definizione di attività. Per ulteriori informazioni, consultare [Volumes](https://docs.docker.com/engine/storage/volumes/) nella documentazione di Docker.

Alcuni casi d’uso comune per i volumi Docker sono i seguenti:
+ Offrire volumi di dati persistenti per l’utilizzo con i container
+ Condividere un volume di dati definito in diverse posizioni su differenti container nella stessa istanza di container
+ Definire un volume di dati vuoto, non persistente e montarlo su più container all’interno della stessa attività
+ Per fornire un volume di dati per l’attività gestita da un driver di terze parti

## Considerazioni sull'utilizzo dei volumi Docker
<a name="docker-volume-considerations"></a>

Quando usi volumi Docker, tieni presenti le considerazioni seguenti:
+ I volumi Docker sono supportati solo se si utilizza il tipo di avvio EC2 o istanze esterne.
+ I container Windows supportano solo l'uso del driver `local`.
+ Se viene utilizzato un driver di terze parti, assicurati che sia installato e attivo sull'istanza di container prima dell'avvio dell'agente del container. Se il driver di terze parti non è attivo prima dell'avvio dell'agente, puoi riavviare l'agente del container utilizzando uno dei seguenti comandi:
  + Per l'AMI Amazon Linux 2 ottimizzata per Amazon ECS:

    ```
    sudo systemctl restart ecs
    ```
  + Per l'AMI Amazon Linux ottimizzata per Amazon ECS:

    ```
    sudo stop ecs && sudo start ecs
    ```

Per informazioni su come specificare un volume Docker in una definizione dell'attività, consultare [Specifica un volume Docker in una definizione dell'attività Amazon ECS](specify-volume-config.md).

# Specifica un volume Docker in una definizione dell'attività Amazon ECS
<a name="specify-volume-config"></a>

Prima che i container possano utilizzare i volumi di dati, è necessario specificare le configurazioni del punto di montaggio e del volume nella definizione di attività. Questa sezione descrive la configurazione del volume per un container. Per le attività che usano un volume Docker, specifica `dockerVolumeConfiguration`. Per le attività che usano un volume host di montaggio vincolato, specifica `host` e facoltativamente `sourcePath`.

Il seguente JSON della definizione di attività illustra la sintassi degli oggetti `volumes` e `mountPoints` per un container.

```
{
    "containerDefinitions": [
        {
            "mountPoints": [
                {
                    "sourceVolume": "string",
                    "containerPath": "/path/to/mount_volume",
                    "readOnly": boolean
                }
            ]
        }
    ],
    "volumes": [
        {
            "name": "string",
            "dockerVolumeConfiguration": {
                "scope": "string",
                "autoprovision": boolean,
                "driver": "string",
                "driverOpts": {
                    "key": "value"
                },
                "labels": {
                    "key": "value"
                }
            }
        }
    ]
}
```

`name`  
▬Tipo: stringa  
Obbligatorio: no  
Nome del volume. Il nome può contenere un massimo di 255 lettere (maiuscole e minuscole), numeri, trattini (`-`) e trattini bassi (`_`). Nel parametro `sourceVolume` dell'oggetto `mountPoints` della definizione del container viene fatto riferimento a questo nome.

`dockerVolumeConfiguration`  
Tipo: oggetto [DockerVolumeConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DockerVolumeConfiguration.html)  
Obbligatorio: no  
Questo parametro viene specificato quando si utilizzano volumi docker. I volumi Docker sono supportati solo se i processi vengono eseguiti su istanze EC2. I container Windows supportano solo l’uso del driver `local`. Per utilizzare i montaggi vincolati, specifica invece un `host`.    
`scope`  
Tipo: String  
Valori validi: `task` \$1 `shared`  
Obbligatorio: no  
L'ambito del volume Docker che determina il suo ciclo di vita. I volumi Docker che rientrano nell'ambito `task` vengono automaticamente assegnati all'avvio del processo e distrutti quando il processo viene arrestato. I volumi Docker che vengono definiti come `shared` vengono mantenuti dopo l'arresto del processo.  
`autoprovision`  
Tipo: Booleano  
Valore predefinito: `false`  
Obbligatorio: no  
Se questo valore è `true`, viene creato il volume Docker, se non è già presente. Questo campo è utilizzato solo se `scope` è `shared`. Se `scope` è `task`, questo parametro deve essere omesso.  
`driver`  
▬Tipo: stringa  
Obbligatorio: no  
Il driver del volume Docker da utilizzare. Il valore del driver deve corrispondere al nome del driver fornito da Docker perché questo nome è utilizzato per il posizionamento dell'attività. Se il driver è stato installato utilizzando la CLI del plugin Docker, utilizzare `docker plugin ls` per richiamare il nome del driver dall'istanza di container. Se il driver è stato installato utilizzando un altro metodo, utilizzare il rilevamento del plugin Docker per richiamare il nome del driver.  
`driverOpts`  
▬Tipo: stringa  
Obbligatorio: no  
Una mappa delle opzioni specifiche del driver Docker da inviare. Questo parametro fa riferimento a `DriverOpts` nella sezione Crea un volume di Docker.  
`labels`  
▬Tipo: stringa  
Obbligatorio: no  
Metadati personalizzati da aggiungere al volume Docker.

`mountPoints`  
Tipo: array di oggetti  
Obbligatorio: no  
I punti di montaggio per i volumi di dati nel container. Questo parametro è mappato ai `Volumes` nella creazione container dell'API Docker e l'opzione `--volume` per docker run.  
I container Windows possono montare intere directory sulla stessa unità di `$env:ProgramData`. I container Windows non possono montare le directory su un'unità diversa e i punti di montaggio non possono essere utilizzati tra le unità. È necessario specificare i punti di montaggio per collegare un volume Amazon EBS direttamente a un'attività Amazon ECS.    
`sourceVolume`  
Tipo: String  
Obbligatorio: sì, quando si utilizzano `mountPoints`  
Il nome del volume da montare.  
`containerPath`  
Tipo: String  
Obbligatorio: sì, quando si utilizzano `mountPoints`  
Il percorso nel container in cui verrà montato il volume.  
`readOnly`  
Tipo: Booleano  
Obbligatorio: no  
Se il valore è `true`, il container avrà accesso in sola lettura al volume. Se il valore è `false`, il container avrà accesso in scrittura al volume. Il valore predefinito è `false`.  
Per le attività su istanze EC2 che eseguono il sistema operativo Windows, lasciare il valore predefinito di `false`.

# Esempi di volumi Docker per Amazon ECS
<a name="docker-volume-examples"></a>

Gli esempi seguenti mostrano come fornire uno storage temporaneo per un contenitore e come fornire un volume condiviso per più contenitori e come fornire uno storage persistente NFS per un contenitore.

**Fornire un archivio temporaneo per un container utilizzando un volume Docker**

In questo esempio, un container utilizza un volume di dati vuoto che viene smaltito al termine dell'attività. Ad esempio, potresti avere un container che deve accedere alla posizione di storage di alcuni file temporanei durante un'attività. Questa attività può essere eseguita utilizzando un volume Docker.

1. Nella sezione `volumes` della definizione di attività, definisci un volume di dati con i valori `name` e `DockerVolumeConfiguration`. In questo esempio, specifichiamo l'ambito come `task` in modo che il volume venga eliminato dopo l'arresto dell'attività e venga utilizzato il driver `local` incorporato.

   ```
   "volumes": [
       {
           "name": "scratch",
           "dockerVolumeConfiguration" : {
               "scope": "task",
               "driver": "local",
               "labels": {
                   "scratch": "space"
               }
           }
       }
   ]
   ```

1. Nella sezione `containerDefinitions`, definisci un container con valori `mountPoints` che faccia riferimento al nome del volume definito e al valore `containerPath` per montare il volume sul container.

   ```
   "containerDefinitions": [
       {
           "name": "container-1",
           "mountPoints": [
               {
                 "sourceVolume": "scratch",
                 "containerPath": "/var/scratch"
               }
           ]
       }
   ]
   ```

**Fornire un archivio persistente per più container utilizzando un volume Docker**

In questo esempio, desideri un volume condiviso per più container da utilizzare e che persista dopo l'interruzione di qualsiasi singola attività che lo utilizza. Il driver `local` integrato è in uso. Per questo motivo, il volume è ancora legato al ciclo di vita dell'istanza di container.

1. Nella sezione `volumes` della definizione di attività, definisci un volume di dati con i valori `name` e `DockerVolumeConfiguration`. In questo esempio, specificare un ambito `shared` in modo che il volume persista, imposta il provisioning automatico su `true`. In questo modo il volume viene creato per l'uso. Quindi, utilizza anche il driver `local` integrato.

   ```
   "volumes": [
       {
           "name": "database",
           "dockerVolumeConfiguration" : {
               "scope": "shared",
               "autoprovision": true,
               "driver": "local",
               "labels": {
                   "database": "database_name"
               }
           }
       }
   ]
   ```

1. Nella sezione `containerDefinitions`, definisci un container con valori `mountPoints` che faccia riferimento al nome del volume definito e al valore `containerPath` per montare il volume sul container.

   ```
   "containerDefinitions": [
       {
           "name": "container-1",
           "mountPoints": [
           {
             "sourceVolume": "database",
             "containerPath": "/var/database"
           }
         ]
       },
       {
         "name": "container-2",
         "mountPoints": [
           {
             "sourceVolume": "database",
             "containerPath": "/var/database"
           }
         ]
       }
     ]
   ```

**Fornire lo spazio di archiviazione persistente per un container utilizzando un volume Docker**

 In questo esempio, un container utilizza un volume di dati NFS che viene montato automaticamente all'avvio dell'attività e viene smontato al termine. Questo utilizza il driver `local` integrato in Docker. Un esempio di caso d'uso potrebbe essere quello in cui hai un'archiviazione NFS locale e hai la necessità di accedervi attraverso un'attività ECS Anywhere. Ciò può essere ottenuto utilizzando un volume Docker con opzione driver NFS.

1. Nella sezione `volumes` della definizione di attività, definisci un volume di dati con i valori `name` e `DockerVolumeConfiguration`. In questo esempio, specifica un ambito `task` in modo che il volume venga smontato al termine dell'attività. Usa il driver `local` e configura le `driverOpts` con le opzioni `type`, `device` e `o` di conseguenza. Sostituisci `NFS_SERVER` con l'endpoint del server NFS.

   ```
   "volumes": [
          {
              "name": "NFS",
              "dockerVolumeConfiguration" : {
                  "scope": "task",
                  "driver": "local",
                  "driverOpts": {
                      "type": "nfs",
                      "device": "$NFS_SERVER:/mnt/nfs",
                      "o": "addr=$NFS_SERVER"
                  }
              }
          }
      ]
   ```

1. Nella sezione `containerDefinitions`, definisci un container con valori di `mountPoints` che facciano riferimento al nome del volume definito e al valore di `containerPath` per montare il volume sul container.

   ```
   "containerDefinitions": [
          {
              "name": "container-1",
              "mountPoints": [
                  {
                    "sourceVolume": "NFS",
                    "containerPath": "/var/nfsmount"
                  }
              ]
          }
      ]
   ```

# Utilizzo di montaggio vincolato con Amazon ECS
<a name="bind-mounts"></a>

Con i montaggi vincolati, un file o una directory su un host, ad esempio un'istanza Amazon EC2, sono montati in un container. I montaggi vincolati sono supportati per le attività ospitate su istanze Fargate o Amazon EC2. I montaggi vincolati sono legati al ciclo di vita del container che li utilizza. Una volta arrestati tutti i container che utilizzano un montaggio vincolato, ad esempio quando viene arrestata un'attività, i dati vengono rimossi. Per le attività ospitate su istanze Amazon EC2, i dati possono essere legati al ciclo di vita dell'istanza Amazon EC2 host specificando un `host` e un valore `sourcePath` facoltativo nella definizione di attività. Per ulteriori informazioni, consultare [Bind mounts](https://docs.docker.com/engine/storage/bind-mounts/) nella documentazione Docker.

I seguenti sono casi d'uso comune dei montaggi vincolati.
+ Per fornire un volume di dati vuoto da montare in uno o più container.
+ Per fornire un volume di dati host in uno o più container.
+ Per condividere un volume di dati da un container di origine con altri container nello stesso processo.
+ Per esporre un percorso e il relativo contenuto da un Dockerfile a uno o più container.

## Considerazioni su quando utilizzare i montaggi vincolati
<a name="bind-mount-considerations"></a>

Quando usi i montaggi vincolati, tieni presente le seguenti considerazioni.
+ Per impostazione predefinita, le attività ospitate AWS Fargate utilizzando una versione della piattaforma `1.4.0` o successiva (Linux) `1.0.0` o successiva (Windows) ricevono un minimo di 20 GiB di storage temporaneo per i bind mount. Puoi aumentare la quantità totale di archiviazione temporanea fino a un massimo di 200 GiB, specificando il parametro `ephemeralStorage` nella definizione di attività.
+ Per esporre i file da un Dockerfile a un volume di dati quando viene eseguito un processo, il piano dati di Amazon ECS cerca una direttiva `VOLUME`. Se il percorso assoluto specificato nella direttiva `VOLUME` è lo stesso presente nel `containerPath` specificato nella definizione di attività, i dati nel percorso della direttiva `VOLUME` vengono copiati sul volume di dati. Nell'esempio Dockerfile seguente, un file denominato `examplefile` nella directory `/var/log/exported` viene scritto sull'host e quindi montato all'interno del container.

  ```
  FROM public.ecr.aws/amazonlinux/amazonlinux:latest
  RUN mkdir -p /var/log/exported
  RUN touch /var/log/exported/examplefile
  VOLUME ["/var/log/exported"]
  ```

  Di default, le autorizzazioni dei volumi sono impostate su `0755` e il proprietario è `root`. Queste autorizzazioni possono essere personalizzate nel Dockerfile. L'esempio seguente definisce il proprietario della directory come `node`.

  ```
  FROM public.ecr.aws/amazonlinux/amazonlinux:latest
  RUN yum install -y shadow-utils && yum clean all
  RUN useradd node
  RUN mkdir -p /var/log/exported && chown node:node /var/log/exported
  RUN touch /var/log/exported/examplefile
  USER node
  VOLUME ["/var/log/exported"]
  ```
+ Per le attività ospitate su istanze Amazon EC2, quando non sono specificati i valori `host` e `sourcePath`, il daemon Docker gestisce il montaggio vincolato per tuo conto. Quando nessun container fa riferimento a questo montaggio vincolato, viene alla fine eliminato dal servizio di pulizia dell'attività dell'agente del container Amazon ECS. Per impostazione predefinita, ciò avviene tre ore dopo la chiusura del container. Tuttavia, puoi configurare questa durata con la variabile dell'agente `ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION`. Per ulteriori informazioni, consulta [Configurazione dell'agente del container Amazon ECS](ecs-agent-config.md). Se è necessario che questi dati vengano conservati oltre il ciclo di vita del container, specifica un valore `sourcePath` per il montaggio vincolato.
+ Per le attività ospitate su Amazon ECS Managed Instances, parti del filesystem root sono di sola lettura. Read/write i bind mount devono utilizzare directory scrivibili, ad esempio per dati persistenti o temporanei. `/var` `/tmp` Il tentativo di creare read/write bind mount su altre directory comporta l'impossibilità di avviare l'attività con un errore simile al seguente:

  ```
  error creating empty volume: error while creating volume path '/path': mkdir /path: read-only file system
  ```

  I bind mount di sola lettura (configurati nel `mountPoints` parametro) possono puntare `"readOnly": true` a qualsiasi directory accessibile sull'host.

  Per visualizzare un elenco completo di percorsi scrivibili, puoi eseguire un'attività su un'istanza gestita di Amazon ECS e utilizzarla per ispezionare la tabella di montaggio dell'istanza. Crea una definizione di attività con le seguenti impostazioni per accedere al filesystem host:

  ```
  {
      "pidMode": "host",
      "containerDefinitions": [{
          "privileged": true,
          ...
      }]
  }
  ```

  Quindi esegui i seguenti comandi dall'interno del contenitore:

  ```
  # List writable mounts
  cat /proc/1/root/proc/1/mounts | awk '$4 ~ /^rw,/ || $4 == "rw" {print $2}' | sort
  
  # List read-only mounts
  cat /proc/1/root/proc/1/mounts | awk '$4 ~ /^ro,/ || $4 == "ro" {print $2}' | sort
  ```
**Importante**  
L'`privileged`impostazione concede al contenitore funzionalità estese sull'host, equivalenti all'accesso root. In questo esempio, viene utilizzata per ispezionare la tabella di montaggio dell'host a fini diagnostici. Per ulteriori informazioni, consulta [Evitare l'esecuzione di container con privilegi (Amazon EC2)](security-tasks-containers.md#security-tasks-containers-recommendations-avoid-privileged-containers).

  Per ulteriori informazioni sull'esecuzione interattiva dei comandi nei contenitori, vedere. [Monitora i container Amazon ECS con ECS Exec](ecs-exec.md)

# Specificare un montaggio vincolato in una definizione dell'attività Amazon ECS
<a name="specify-bind-mount-config"></a>

Per le attività Amazon ECS ospitate sull'istanza Fargate oppure sulle istanze Amazon EC2, il seguente frammento JSON della definizione di attività illustra la sintassi degli oggetti `volumes`, `mountPoints` e `ephemeralStorage` per una definizione di attività.

```
{
   "family": "",
   ...
   "containerDefinitions" : [
      {
         "mountPoints" : [
            {
               "containerPath" : "/path/to/mount_volume",
               "sourceVolume" : "string"
            }
          ],
          "name" : "string"
       }
    ],
    ...
    "volumes" : [
       {
          "name" : "string"
       }
    ],
    "ephemeralStorage": {
	   "sizeInGiB": integer
    }
}
```

Per le attività Amazon ECS ospitate su istanze Amazon EC2, puoi utilizzare il parametro `host` opzionale e un `sourcePath` quando specifichi i dettagli del volume dell'attività. Quando viene specificato, lega il montaggio vincolato al ciclo di vita dell'attività anziché al container.

```
"volumes" : [
    {
        "host" : {
            "sourcePath" : "string"
        },
        "name" : "string"
    }
]
```

Di seguito sono riportate descrizioni più dettagliate per ogni parametro di definizione di attività.

`name`  
▬Tipo: stringa  
Obbligatorio: no  
Nome del volume. Il nome può contenere un massimo di 255 lettere (maiuscole e minuscole), numeri, trattini (`-`) e trattini bassi (`_`). Nel parametro `sourceVolume` dell'oggetto `mountPoints` della definizione del container viene fatto riferimento a questo nome.

`host`  
Obbligatorio: no  
Il parametro `host` viene utilizzato per legare il ciclo di vita del montaggio vincolato all'istanza host di Amazon EC2 anziché al processo, dove invece è archiviato. Se il parametro `host` è vuoto, il daemon Docker assegna un percorso host per il tuo volume di dati, ma non è garantito che i dati vengano mantenuti dopo che viene interrotta l'esecuzione del container a essi associato.  
I container Windows possono montare intere directory sulla stessa unità di `$env:ProgramData`.  
Il `sourcePath` parametro è supportato solo quando si utilizzano attività ospitate su istanze Amazon EC2 o Amazon ECS Managed Instances.  
`sourcePath`  
▬Tipo: stringa  
Obbligatorio: no  
Quando viene utilizzato il parametro `host`, specifica un `sourcePath` per dichiarare il percorso sull'istanza Amazon EC2 dell'host presentata al container. Se questo parametro è vuoto, il daemon Docker assegna automaticamente un percorso host. Se il parametro `host` contiene una posizione del file `sourcePath`, il volume di dati rimane nella posizione specificata sull'istanza Amazon EC2 dell'host finché non viene eliminato manualmente. Se il valore `sourcePath` non esiste nell'istanza Amazon EC2 dell'host, viene creato automaticamente dal daemon Docker. Se la posizione è presente, i contenuti della cartella del percorso di origine vengono esportati.

`mountPoints`  
Tipo: array di oggetti  
Obbligatorio: no  
I punti di montaggio per i volumi di dati nel container. Questo parametro è mappato ai `Volumes` nella creazione container dell'API Docker e l'opzione `--volume` per docker run.  
I container Windows possono montare intere directory sulla stessa unità di `$env:ProgramData`. I container Windows non possono montare le directory su un'unità diversa e i punti di montaggio non possono essere utilizzati tra le unità. È necessario specificare i punti di montaggio per collegare un volume Amazon EBS direttamente a un'attività Amazon ECS.    
`sourceVolume`  
Tipo: String  
Obbligatorio: sì, quando si utilizzano `mountPoints`  
Il nome del volume da montare.  
`containerPath`  
Tipo: String  
Obbligatorio: sì, quando si utilizzano `mountPoints`  
Il percorso nel container in cui verrà montato il volume.  
`readOnly`  
Tipo: Booleano  
Obbligatorio: no  
Se il valore è `true`, il container avrà accesso in sola lettura al volume. Se il valore è `false`, il container avrà accesso in scrittura al volume. Il valore predefinito è `false`.  
Per le attività su istanze EC2 che eseguono il sistema operativo Windows, lasciare il valore predefinito di `false`.

`ephemeralStorage`  
Tipo: oggetto  
Obbligatorio: no  
La quantità di archiviazione temporanea da allocare per il processo. Questo parametro viene utilizzato per espandere la quantità totale di storage temporaneo disponibile, oltre la quantità predefinita, per le attività ospitate AWS Fargate utilizzando una versione della piattaforma `1.4.0` o successiva (Linux) o successiva (Windows). `1.0.0`  
È possibile utilizzare la CLI di Copilot CloudFormation, l' AWS SDK o la CLI per specificare lo storage temporaneo per un bind mount.

# Esempi di montaggio vincolato per Amazon ECS
<a name="bind-mount-examples"></a>

Gli esempi seguenti riguardano i casi d'uso comuni per l'utilizzo di un montaggio vincolato per i container.

**Come allocare una maggiore quantità di spazio di archiviazione temporanea per un processo Fargate**

Per le attività Amazon ECS ospitate su Fargate che utilizzano la versione della piattaforma `1.4.0` o successiva (Linux) o `1.0.0` o successiva (Windows), è possibile allocare più della quantità predefinita di storage temporaneo per i container nell'attività da utilizzare. Questo esempio può essere incorporato negli altri esempi per allocare più spazio di archiviazione temporanea per i processi Fargate.
+ Nella definizione di attività, definisci un oggetto `ephemeralStorage`. La `sizeInGiB` deve essere un numero intero compreso tra i valori di `21` e `200` ed è espresso in GiB.

  ```
  "ephemeralStorage": {
      "sizeInGiB": integer
  }
  ```

**Come fornire un volume di dati vuoto per uno o più container**

In alcuni casi, si può fornire ai container in un processo un po' di spazio scratch. Ad esempio, potresti avere due container di database che devono accedere alla stessa posizione di storage dei file temporanei durante un'attività. Questo può essere ottenuto utilizzando un montaggio vincolato.

1. Nella sezione `volumes` della definizione di attività, definisci un montaggio vincolato con il nome `database_scratch`.

   ```
     "volumes": [
       {
         "name": "database_scratch"
       }
     ]
   ```

1. Nella sezione `containerDefinitions`, crea le definizioni di container del database. in modo che montino il volume.

   ```
   "containerDefinitions": [
       {
         "name": "database1",
         "image": "my-repo/database",
         "cpu": 100,
         "memory": 100,
         "essential": true,
         "mountPoints": [
           {
             "sourceVolume": "database_scratch",
             "containerPath": "/var/scratch"
           }
         ]
       },
       {
         "name": "database2",
         "image": "my-repo/database",
         "cpu": 100,
         "memory": 100,
         "essential": true,
         "mountPoints": [
           {
             "sourceVolume": "database_scratch",
             "containerPath": "/var/scratch"
           }
         ]
       }
     ]
   ```

**Come utilizzare un percorso e il relativo contenuto in un Dockerfile in un container**

In questo esempio, hai un Dockerfile che scrive i dati che si desidera montare all'interno di un container. Questo esempio funziona per le attività ospitate su istanze di Fargate o Amazon EC2.

1. Crea un Dockerfile. L'esempio seguente utilizza l'immagine del container Amazon Linux 2 e crea un file denominato `examplefile` nella directory `/var/log/exported` che vogliamo montare all'interno del container. La direttiva `VOLUME` dovrebbe specificare un percorso assoluto.

   ```
   FROM public.ecr.aws/amazonlinux/amazonlinux:latest
   RUN mkdir -p /var/log/exported
   RUN touch /var/log/exported/examplefile
   VOLUME ["/var/log/exported"]
   ```

   Di default, le autorizzazioni dei volumi sono impostate su `0755` e il proprietario è `root`. Queste autorizzazioni possono essere modificate nel Dockerfile. Nell'esempio seguente il proprietario della directory `/var/log/exported`è impostato su `node`.

   ```
   FROM public.ecr.aws/amazonlinux/amazonlinux:latest
   RUN yum install -y shadow-utils && yum clean all
   RUN useradd node
   RUN mkdir -p /var/log/exported && chown node:node /var/log/exported					    
   USER node
   RUN touch /var/log/exported/examplefile
   VOLUME ["/var/log/exported"]
   ```

1. Nella sezione `volumes` della definizione di attività, definire un volume con il nome `application_logs`.

   ```
     "volumes": [
       {
         "name": "application_logs"
       }
     ]
   ```

1. Nella sezione `containerDefinitions`, crea le definizioni di container dell'applicazione. in modo che montino lo storage. Il valore `containerPath` deve corrispondere al percorso assoluto specificato nella direttiva `VOLUME` dal Dockerfile.

   ```
     "containerDefinitions": [
       {
         "name": "application1",
         "image": "my-repo/application",
         "cpu": 100,
         "memory": 100,
         "essential": true,
         "mountPoints": [
           {
             "sourceVolume": "application_logs",
             "containerPath": "/var/log/exported"
           }
         ]
       },
       {
         "name": "application2",
         "image": "my-repo/application",
         "cpu": 100,
         "memory": 100,
         "essential": true,
         "mountPoints": [
           {
             "sourceVolume": "application_logs",
             "containerPath": "/var/log/exported"
           }
         ]
       }
     ]
   ```

**Come fornire un volume di dati vuoto per un container legato al ciclo di vita dell'istanza host di Amazon EC2**

Per le attività ospitate su istanze Amazon EC2, puoi utilizzare i montaggi vincolati e avere i dati legati al ciclo di vita dell'istanza host di Amazon EC2. Puoi farlo utilizzando il parametro `host` e specificando un valore `sourcePath`. Tutti i file esistenti nel `sourcePath` vengono presentati ai container con il valore `containerPath`. Qualsiasi file scritto con il valore `containerPath` viene scritto con il valore `sourcePath`sull'istanza host di Amazon EC2.
**Importante**  
Amazon ECS non sincronizza il tuo spazio di archiviazione tra le istanze Amazon EC2. I processi che utilizzano archiviazione persistente possono essere posizionati su qualsiasi istanza Amazon EC2 nel cluster che abbia capacità disponibile. [Se le tue attività richiedono uno storage persistente dopo l'arresto e il riavvio, specifica sempre la stessa istanza Amazon EC2 al momento dell'avvio dell'attività con il comando start-task. AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/ecs/start-task.html) Puoi utilizzare anche volumi Amazon EFS per l'archiviazione persistente. Per ulteriori informazioni, consulta [Usare i volumi Amazon EFS con Amazon ECS](efs-volumes.md).

1. Nella sezione `volumes` della definizione di attività, definisci un montaggio vincolato con i valori `name` e `sourcePath`. Nell'esempio seguente, l'istanza host di Amazon EC2 contiene dati in `/ecs/webdata` che desideri montare all'interno del container.

   ```
     "volumes": [
       {
         "name": "webdata",
         "host": {
           "sourcePath": "/ecs/webdata"
         }
       }
     ]
   ```

1. Nella sezione `containerDefinitions`, definisci un container con i valori `mountPoints` che faccia riferimento al nome del montaggio vincolato definito e al valore `containerPath` per montare il montaggio vincolato sul container.

   ```
     "containerDefinitions": [
       {
         "name": "web",
         "image": "public.ecr.aws/docker/library/nginx:latest",
         "cpu": 99,
         "memory": 100,
         "portMappings": [
           {
             "containerPort": 80,
             "hostPort": 80
           }
         ],
         "essential": true,
         "mountPoints": [
           {
             "sourceVolume": "webdata",
             "containerPath": "/usr/share/nginx/html"
           }
         ]
       }
     ]
   ```

**Per montare un volume definito su più container in diverse posizioni**

Puoi definire un volume di dati in una definizione di attività e montarlo in posizioni diverse su container diversi. Ad esempio, il container host ha una cartella di dati del sito Web in `/data/webroot`. Si potrebbe voler montare il volume di dati in sola lettura su due server Web diversi che hanno radici di documenti diverse.

1. Nella sezione `volumes` della definizione di attività, definisci un volume di dati con il nome `webroot` e il percorso di origine `/data/webroot`.

   ```
     "volumes": [
       {
         "name": "webroot",
         "host": {
           "sourcePath": "/data/webroot"
         }
       }
     ]
   ```

1. Nella sezione `containerDefinitions`, definisci un container per ciascun server Web con i valori `mountPoints` che associano il volume `webroot` al valore `containerPath` puntando alla radice documento per tale container.

   ```
     "containerDefinitions": [
       {
         "name": "web-server-1",
         "image": "my-repo/ubuntu-apache",
         "cpu": 100,
         "memory": 100,
         "portMappings": [
           {
             "containerPort": 80,
             "hostPort": 80
           }
         ],
         "essential": true,
         "mountPoints": [
           {
             "sourceVolume": "webroot",
             "containerPath": "/var/www/html",
             "readOnly": true
           }
         ]
       },
       {
         "name": "web-server-2",
         "image": "my-repo/sles11-apache",
         "cpu": 100,
         "memory": 100,
         "portMappings": [
           {
             "containerPort": 8080,
             "hostPort": 8080
           }
         ],
         "essential": true,
         "mountPoints": [
           {
             "sourceVolume": "webroot",
             "containerPath": "/srv/www/htdocs",
             "readOnly": true
           }
         ]
       }
     ]
   ```

**Per montare i volumi da un altro container mediante `volumesFrom`**

Per le attività ospitate su istanze Amazon EC2, puoi definire uno o più volumi su un container e quindi utilizzare il parametro `volumesFrom` in un'altra definizione del container (all'interno della stessa attività) per montare tutti i volumi da `sourceContainer` sui relativi punti di montaggio definiti originariamente. Il parametro `volumesFrom` si applica ai volumi configurati nella definizione di attività e a quelli integrati nell'immagine con un Dockerfile.

1. (Opzionale) Per condividere un volume incorporato in un'immagine, usa l'istruzione `VOLUME` nel Dockerfile. Il seguente Dockerfile di esempio utilizza un'immagine `httpd` e quindi aggiunge un volume e lo monta su `dockerfile_volume` nella radice del documento Apache. È la cartella utilizzata dal server Web `httpd`.

   ```
   FROM httpd
   VOLUME ["/usr/local/apache2/htdocs/dockerfile_volume"]
   ```

   Puoi creare un'immagine con questo Dockerfile ed eseguirne il push a un repository, ad esempio Docker Hub, e utilizzarla nella definizione di attività. L'immagine `my-repo/httpd_dockerfile_volume` di esempio utilizzata nelle seguenti fasi è stata creata con il Dockerfile precedente.

1. Crea una definizione di attività che definisca gli altri volumi e punti di montaggio per i container. In questa sezione `volumes` di esempio, devi creare un volume vuoto denominato `empty`, gestito dal daemon Docker. Esiste anche un volume host definito che viene chiamato `host_etc`. Esporta la cartella `/etc` sull'istanza di container dell'host.

   ```
   {
     "family": "test-volumes-from",
     "volumes": [
       {
         "name": "empty",
         "host": {}
       },
       {
         "name": "host_etc",
         "host": {
           "sourcePath": "/etc"
         }
       }
     ],
   ```

   Nella sezione delle definizioni del container, crea un container che monti i volumi definiti in precedenza. In questo esempio, il container `web` monta i volumi `empty` e `host_etc`. Questo è il container che utilizza l'immagine creata con un volume nel Dockerfile.

   ```
   "containerDefinitions": [
       {
         "name": "web",
         "image": "my-repo/httpd_dockerfile_volume",
         "cpu": 100,
         "memory": 500,
         "portMappings": [
           {
             "containerPort": 80,
             "hostPort": 80
           }
         ],
         "mountPoints": [
           {
             "sourceVolume": "empty",
             "containerPath": "/usr/local/apache2/htdocs/empty_volume"
           },
           {
             "sourceVolume": "host_etc",
             "containerPath": "/usr/local/apache2/htdocs/host_etc"
           }
         ],
         "essential": true
       },
   ```

   Crea un altro container che utilizzi `volumesFrom` per montare tutti i volumi associati al container `web`. Tutti i volumi sul container `web` sono montati anche sul container `busybox`. È incluso il volume specificato nel Dockerfile utilizzato per creare l'immagine `my-repo/httpd_dockerfile_volume`.

   ```
       {
         "name": "busybox",
         "image": "busybox",
         "volumesFrom": [
           {
             "sourceContainer": "web"
           }
         ],
         "cpu": 100,
         "memory": 500,
         "entryPoint": [
           "sh",
           "-c"
         ],
         "command": [
           "echo $(date) > /usr/local/apache2/htdocs/empty_volume/date && echo $(date) > /usr/local/apache2/htdocs/host_etc/date && echo $(date) > /usr/local/apache2/htdocs/dockerfile_volume/date"
         ],
         "essential": false
       }
     ]
   }
   ```

   Quando questa attività viene eseguita, i volumi vengono montati dai due container e il `command` nel container `busybox` scrive la data e l'ora su un file. Questo file è chiamato `date` in ciascuna cartella dei volumi. che diventano quindi visibili sul sito Web visualizzato dal container `web`.
**Nota**  
Il container `busybox` esegue un comando rapido e poi si chiude, quindi deve essere impostato come `"essential": false` nella definizione del container. In caso contrario, l'intera attività viene interrotta quando si chiude.