Come faccio a montare un file system Amazon EFS su un container Amazon ECS o su un'attività in esecuzione su Fargate?

5 minuti di lettura
0

Voglio montare un file system Amazon Elastic File System (Amazon EFS) su un container Amazon Elastic Container Service (Amazon ECS) o su un'attività in esecuzione su AWS Fargate.

Breve descrizione

Per montare un file system Amazon EFS su un container o un'attività Fargate, è necessario creare innanzitutto una definizione dell'attività. La definizione dell'attività deve essere resa disponibile per i container dell’attività in tutte le zone di disponibilità della regione AWS. In questo modo, le attività Fargate utilizzeranno Amazon EFS per montare automaticamente il file system sulle attività specificate nella definizione dell'attività.

Importante: La seguente risoluzione si applica alla versione 1.4.0 o successiva della piattaforma Fargate, che ha un’archiviazione persistente definibile a livello di attività e container in Amazon ECS. Le versioni 1.3.0 o precedenti della piattaforma Fargate non supportano l’archiviazione persistente con Amazon EFS.

Prima di completare i passaggi della sezione Risoluzione, è necessario disporre di:

Risoluzione

Crea e configura un file system Amazon EFS

1.    Crea un file system Amazon EFS e annota l'ID EFS e l'ID del gruppo di sicurezza.

Nota: Il file system Amazon EFS, il cluster Amazon ECS e le attività Fargate devono essere tutti nello stesso VPC.

2.    Per consentire le connessioni in entrata sulla porta 2049 (Network File System o NFS) dal gruppo di sicurezza associato all'attività o al servizio Fargate, modifica le regole del gruppo di sicurezza del file system EFS.

3.    Aggiorna il gruppo di sicurezza del servizio Amazon ECS per consentire le connessioni in uscita sulla porta 2049 verso il gruppo di sicurezza del file system Amazon EFS.

Crea una definizione di attività

1.    Apri la console Amazon ECS.

2.    Nel pannello di navigazione, seleziona Definizioni delle attività, quindi Crea nuova definizione di attività.

3.    Nella sezione Seleziona compatibilità con il tipo di avvio, seleziona FARGATE e quindi Passaggio successivo.

4.    Nella sezione Configura definizioni di attività e container, in Nome definizione di attività inserisci un nome per la definizione dell'attività.

5.    Nella sezione Volumi, seleziona Aggiungi volume.

6.    In Nome, inserisci un nome per il volume.

7.    In Tipo di volume, inserisci EFS.

8.    In ID del file system, inserisci l'ID del file system Amazon EFS.

Nota: È possibile specificare opzioni personalizzate per la directory principale, la crittografia in transito e l'autorizzazione IAM EFS. Oppure è possibile accettare l'impostazione predefinita, dove “/” è la directory principale.

9.    Seleziona Aggiungi.

10.    Nella sezione Definizione di container, seleziona Aggiungi container.

11.    Nella sezione ARCHIVIAZIONE E REGISTRAZIONE, sottosezione Punti di montaggio, seleziona il volume creato per Volume di origine nel passaggio 5.

12.    In Percorso container, seleziona il percorso del container.

13.    (Facoltativo) Nella sezione AMBIENTE, in Punto di ingresso, inserisci il punto di ingresso.

14.    In Comando, inserisci il comando [df ,-h] per visualizzare il file system montato.

Nota: È possibile utilizzare il punto di ingresso e il comando per verificare se il file system Amazon EFS è stato montato correttamente. Per impostazione predefinita, il container viene chiuso dopo che il comando df -h è stato eseguito correttamente. L'esempio di definizione dell'attività JSON nel passaggio 16 utilizza un ciclo while infinito per mantenere l'attività in esecuzione.

15.    Seleziona Aggiungi.

16.    Compila i campi rimasti della procedura guidata per la definizione dell’attività e seleziona Crea.

Nell'esempio seguente, la definizione dell'attività crea un volume di dati denominato efs-test. Il container nginx monta il volume di dati host nel percorso Any_Container_Path.

{
    "family": "sample-fargate-test",
    "networkMode": "awsvpc",
    "executionRoleArn": "arn:aws:iam::1234567890:role/ecsTaskExecutionRole",
    "containerDefinitions": [
        {
            "name": "fargate-app",
            "image": "nginx",
            "portMappings": [
                {
                    "containerPort": 80,
                    "hostPort": 80,
                    "protocol": "tcp"
                }
            ],
            "essential": true,
            "entryPoint": [
                "sh",
		"-c"
            ],
            "command": [
                "df -h && while true; do echo \"RUNNING\"; done"
            ],
            "mountPoints": [
                {
                    "sourceVolume": "efs-test",
                    "containerPath": "Any_Container_Path"
                }
            ],
            "logConfiguration": {
              "logDriver": "awslogs",
              "options": {
                "awslogs-group": "AWS_LOG_GROUP_PATH",
                "awslogs-region": "AWS_REGION",
                "awslogs-stream-prefix": "AWS_STREAM_PREFIX"
              }
            }
        }
    ],

    "volumes": [
        {
            "name": "efs-test",
            "efsVolumeConfiguration": {
                "fileSystemId": "fs-123xx4x5"
            }
        }
    ],

    "requiresCompatibilities": [
           "FARGATE"
       ],

    "cpu": "256",
    "memory": "512"
}

Nota: Sostituisci fileSystemId, logConfiguration, ContainerPath e altri valori segnaposto con valori per la configurazione personalizzata. Inoltre, conferma che la definizione dell'attività abbia un ruolo di esecuzione Amazon Resource Name (ARN) per supportare il driver di registro awslogs.

Esegui un'attività Fargate e controlla i registri delle attività

1.    Esegui un'attività Fargate utilizzando la definizione dell'attività creata in precedenza.

Importante: Assicurati di eseguire l’attività sulla piattaforma Fargate versione 1.4.0.

2.    Per verificare che il file system Amazon EFS sia stato montato correttamente sul container Fargate, controlla i registri delle attività.

L'output di df-h è simile al seguente:

2020-10-27 15:15:35
Filesystem 1K-blocks Used Available Use% Mounted on

2020-10-27 15:15:35
overlay 30832548 9859324 19383976 34% /

2020-10-27 15:15:35
tmpfs 65536 0 65536 0% /dev

2020-10-27 15:15:35
shm 2018788 0 2018788 0% /dev/shm

2020-10-27 15:15:35
tmpfs 2018788 0 2018788 0% /sys/fs/cgroup

2020-10-27 15:15:35
fs-xxxxxxxx.efs.us-east-1.amazonaws.com:/ 9007199254739968 0 9007199254739968 0% /Any_Container_Path

2020-10-27 15:15:35
/dev/xvdcz 30832548 9859324 19383976 34% /etc/hosts

2020-10-27 15:15:35
tmpfs 2018788 0 2018788 0% /proc/acpi

2020-10-27 15:15:35
tmpfs 2018788 0 2018788 0% /sys/firmware

2020-10-27 15:15:35
tmpfs 2018788 0 2018788 0% /proc/scsi

RUNNING

Informazioni correlate

Sicurezza in Amazon EFS

Tutorial: Utilizzo dei file system Amazon EFS con Amazon ECS utilizzando la console classica

AWS UFFICIALE
AWS UFFICIALEAggiornata 3 anni fa