Amazon (EFS) Elastic File System per condivisioni su EC2
da Massimo Della Rovere · pubblicato il 3 settembre, 2016 · modificato il 4 settembre, 2016

Amazon EFS (Elastic File System) è un servizio di storage che permette la gestione e la condivisione di un’intero file system tra più istanze EC2. Ho letto molte volte, su diversi forum, che alcuni utenti chiedevano la possibilità di condividere una risorsa EBS su diverse istanze EC2. Ecco, finalmente questo servizio è la risposta definitiva.

Introduzione

Il servizio di Amazon EFS è veramente facile da usare e devo dire che dopo due mesi di utilizzo mi pare molto più performante di quello sperato. Il funzionamento si basa su pochi passaggi di configurazione: si crea un nuovo file system nella regione geografica desiderata e si eseguono le istruzioni riportante nella console per montarlo su una directory a nostra scelta tramite NFS e presente in una o più istanze EC2.

Amazon EFS

Il servizio di Elastic File System era proprio l’anello mancante dei servizi di storage che Amazon già metteva a disposizione. Infatti abbiamo Amazon S3 con cui possiamo gestire la memorizzazione di oggetti, Amazon EBS per lo storage a blocchi che si può utilizzare come se fossero dei dischi interni del nostro server e infine Amazon Glacier per il backup e la memorizzazioni di dati che non necessitano di lettura frequente.

Caratteristiche

Qui di seguito vi riporto le caratteristiche principali del servizio che riguardano sia gli aspetti tecnici che i benefici automatici del servizio stesso:

  • File system completamente gestito per EC2.
  • Fornisce una semantica standard di filesystem.
  • Lavora con le API standard dei sistemi operativi.
  • Condivisione attraverso migliaia di istanze.
  • Cresce in maniera elastica scalando petabyte.
  • Utilizza dischi SSD per la memorizzazione.
  • Adatto per una vasta gamma di carichi di lavoro.
  • Alta disponibilità e durabilità del dato.
  • File system basato su NFS v4.
  • Ridimensionamento automatico in base al numero dei file aggiunti.
  • Non è necessario impostare spazio disco o performance.
  • Si paga solo per lo spazio utilizzato e non si necessita di costi iniziali.
  • Il file system può crescere sulla scala dei petabyte.
  • Il Throughput e i IOPS scalano automaticamente.
  • Basse latenze garantite su qualsiasi dimensione FS.
  • Supporto per migliaia di connessioni simultanee NFS.

NB: Per utilizzare e configurare il servizio di Amazon EFS sui nostri server, siano essi Linux o Windows,  non si necessita di nessun software particolare, infatti basta attivare i moduli o i pacchetti NFS già presenti nei repository dei sistemi operativi.

Configurazione

Adesso che abbiamo visto le caratteristiche generali del servizio possiamo passare alla dimostrazione pratica e vedere come configurare il servizio tramite la management console. Quindi, come sempre, scegliamo la nostra regione geografica e selezioniamo il servizio di Amazon EFS. Se è la prima volta dovreste ottenere questa schermata:

Amazon EFS

Come potete vedere la configurazione e l’utilizzo consiste in tre semplici passi: creare una configurazione di file system, impostare i permessi di accesso e collegare il tutto alle istanze EC2 che ne hanno la necessità. Nella fase di creazione dovremmo indicare le seguenti opzioni: il nome della VPC (Virtual Private Network) che conterrà le istanze autorizzate, i punti di mount NFS che dovranno essere disponibili nelle varie zone di disponibilità, i tag che descrivono il file system e il tipo di performance richiesta.

Per le zone di disponibilità vi consiglio di impostarne almeno due, in modo da avere sempre attiva una funzione di alta disponibilità, infatti il file system viene sincronizzato in tempo reale su tutte le zone configurate e in questo modo è in grado di servire anche istanze che operano in diverse zone con una bassa latenza e delle buone performance di accesso. Invece per l’opzione che riguarda le performance vi consiglio di lasciare la configurazione “General Purpose” in quanto la MAX I/O è dedicata a chi deve fra girare non centinaia di istanze in condivisione ma qualche migliaio.

Amazon EFSPer controllare i permessi di accessi collegati ad ogni zona di disponibilità potete usare i classici security group che avete configurato in ambiente EC2 e decidere i parametri di rete che sono autorizzati all’accesso NFS da parte di istanze EC2. Tra le porte TCP che vengono elencate in modo predefinito trovate anche quella dedicata ad NFS.

Mount NFS su EC2

Una volta che abbiamo confermato la configurazione del nuovo file system e atteso il tempo necessario alla sua preparazione, possiamo collegare il tutto alle nostre istanze e procedere ai test necessari. Ovviamente bisogna prestare attenzione e collegare il mount point della zona corrispondente alla istanza, come ad esempio NFS in zona A con istanza in Zona A, in caso contrario le performance potrebbero peggiorare.

Amazon EFS

Quindi, eseguiamo una connessione alla nostra istanza, ad esempio tramite SSH e verifichiamo che sia attivo il servizio NFS. In caso contrario procediamo ad installare e configurare il client NFS disponibile con il sistema operativo usato, nel mio caso con l’utilizzo di Ubuntu 16.04 ho dovuto semplicemente eseguire il comando:

sudo apt install nfs-common

Per eseguire il mount definitivo è possibile verificare il comando corretto andando nella configurazione generale del nostro file system e selezionando l’opzione “EC2 mount instructions”, poi in base ai casi di utilizzo, possiamo eseguirlo dalla linea comandi del sistema operativo o inserirlo negli script di avvio. Un esempio di comando è:

sudo mkdir efs
sudo mount -t nfs4 -o nfsvers=4.1 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).fs-91ded.efs.eu-west-1.amazonaws.com:/ efs

Tutorial Video

Se volete approfondire l’argomento sul servizio di Amazon EFS potete vedere il nostro video tutorial che abbiamo creato e pubblicato su Youtube (canale cloud-aws) grazie alla collaborazione e all’aiuto di Danilo Poccia di Amazon Web Service Italia.

2 Commenti

  1. Ciao Massimo, guardando il video di Danilo ho visto che il servizio di Amazon EFS è in versione BETA e solo disponibile per una zona geografica. Pensi che sia azzardato metterlo in produzione o è meglio aspettare la versione definitiva?

  2. Il servizio EFS era in beta al momento che abbiamo girato il video ma adesso è uscito dalla beta, almeno da tre mesi, quindi puoi utilizzarlo senza nessun timore anche in ambiente di produzione.

condividi