IT
Accedi Crea un account

Come installare MinIO su Saplo: il tuo S3 privato per i progetti

MinIO è uno storage a oggetti compatibile con l'API di Amazon S3, che puoi installare sul tuo Box. Le stesse librerie, lo stesso protocollo, zero costi per trasferimenti e conservazione nel cloud pubblico.

Grzegorz Kalmus ·

Amazon S3 è comodo, finché non arriva il conto per il trasferimento dei dati, perché è proprio il trasferimento, e non l'archiviazione in sé, a poter generare le spese più impreviste. MinIO è un object storage open source che parla la stessa lingua di S3, cioè usa la stessa API, quindi la libreria boto3 o aws-sdk, che hai già nel tuo progetto, funziona senza modificare nemmeno una riga di codice, a parte l'indirizzo dell'endpoint. La differenza è che installi MinIO sul tuo Box, una sola volta, e paghi solo per il Box, senza una fattura separata per ogni gigabyte di trasferimento. Ecco, passo dopo passo, come installare MinIO su Saplo.

Perché MinIO invece di Amazon S3

Amazon S3 ha due caratteristiche che, in pratica, penalizzano soprattutto i progetti in crescita:

  • il conto per il trasferimento di dati in uscita - archiviare i file costa poco, ma ogni file scaricato, ogni immagine mostrata a un utente, viene conteggiato separatamente e, con un traffico elevato, può dominare la fattura,
  • un addebito dipendente dal numero di operazioni - elencare i file, scrivere, leggere: ogni azione ha una tariffa propria, quindi è difficile prevedere in anticipo il costo.

MinIO implementa lo stesso protocollo S3, quindi passare da uno all'altro di solito significa cambiare l'indirizzo dell'endpoint e le chiavi di accesso, non riscrivere il codice dell'applicazione. Lo esegui sul tuo Box, paghi solo per il Box indipendentemente da quante volte un file viene scaricato, e i dati restano fisicamente sulla tua infrastruttura.

Requisiti

Per installare MinIO su Saplo, ti servono:

  • un Box con Docker attivo (il motore lo avvia automaticamente durante l'installazione dal catalogo, è necessario il nesting in un container, che Saplo offre per impostazione predefinita),
  • almeno 512 MB di RAM liberi su Box e 5 GB di spazio su disco per i dati, mentre la quantità finale dipende da quanti file intendi conservare,
  • un Dominio o un sottodominio *.saploapp.pl incluso nel prezzo di ogni piano, sotto al quale verrà ospitata la console amministrativa.

MinIO espone due interfacce diverse, che vale la pena distinguere subito. La prima è la console web, cioè il Pannello con il browser dei file, la creazione dei bucket e la gestione delle chiavi di accesso, pubblicata sotto un dominio come ogni altra applicazione del catalogo. La seconda è la stessa API S3, cioè l'endpoint a cui il codice dell'applicazione si connette tramite boto3 o una libreria simile. Il motore assegna all'applicazione una sola porta per il dominio pubblico, quindi l'API S3 funziona esclusivamente all'interno di Box, in loopback, e non è visibile dall'esterno.

Installazione passo dopo passo

  1. Nel Pannello Saplo apri il Catalogo delle applicazioni e seleziona MinIO (categoria "Server").
  2. Scegli il Box su cui installarlo e il dominio o sottodominio sotto cui sarà disponibile la console amministrativa.
  3. Conferma l'installazione. Il motore crea un container Docker con l'immagine ufficiale minio/minio, prepara un volume separato per i dati, genera un account amministratore casuale e espone la console sotto il dominio indicato tramite nginx con SSL gratuito.
  4. Il motore verifica che il container sia effettivamente avviato prima di considerare completata l'installazione, quindi se l'immagine non si avvia vedrai un errore invece di un dominio morto.
  5. Al termine, nel Catalogo delle applicazioni sul Box troverai il file MINIO-SETUP.txt con login e password generata per la console.

Prima configurazione

MinIO, proprio come Directus o Vaultwarden, genera automaticamente un account amministratore durante l'installazione, invece di richiederlo nella procedura guidata.

  1. Accedi alla console usando i dati del file MINIO-SETUP.txt e cambia la password in Identity -> Users, prima di fare qualsiasi altra cosa.
  2. Crea il primo bucket nella scheda Buckets -> Create Bucket, ad esempio uno dedicato ai file degli utenti e uno ai backup.
  3. In Identity -> Service Accounts genera le chiavi di accesso (Access Key e Secret Key) per l'applicazione che deve leggere e scrivere file. Non usare l'account amministratore nel codice dell'applicazione.
  4. L'endpoint API S3 è attivo soltanto sul loopback di Box e non è esposto pubblicamente. Se l'applicazione che usa MinIO è in esecuzione sullo stesso Box, si connette tramite http://127.0.0.1 sulla porta assegnata. L'accesso dall'esterno di Box, ad esempio dal tuo computer o da un altro server, richiede un tunnel SSH disponibile per Box L e superiori, oppure un addon di porta TCP dal catalogo degli addon.

MinIO su Saplo rispetto ad Amazon S3

Amazon S3 MinIO su Saplo
Costo archiviazione più trasferimento più operazioni, fatturate separatamente inclusi nel prezzo del piano Saplo, senza costi aggiuntivi per il trasferimento
Dove si trovano i dati infrastruttura di Amazon il tuo Box
Compatibilità API standard S3 stesso protocollo, stesse librerie (boto3 e altre)
Accesso all'API dall'esterno del server endpoint pubblico immediatamente disponibile richiede un tunnel SSH (Box L+) o una porta TCP aggiuntiva
Chi amministra Amazon Tu, ma senza dover impostare manualmente il server

Domande frequenti

Devo modificare il codice dell'applicazione per passare da S3 a MinIO? Di solito no. MinIO implementa lo stesso protocollo S3, quindi devi cambiare l'indirizzo dell'endpoint, la chiave di accesso e il secret nella configurazione dell'applicazione. Il resto del codice che usa boto3 o una libreria simile funziona senza modifiche.

Perché l'API S3 non è accessibile immediatamente dall'esterno di Box? Il motore Saplo espone tramite un dominio pubblico esattamente una porta per applicazione e, nel caso di MinIO, si tratta della console web. L'API S3 resta sul loopback, quindi le applicazioni in esecuzione sullo stesso Box si connettono direttamente, mentre l'accesso dall'esterno di Box richiede un tunnel SSH o un add-on per una porta TCP.

Posso avere più di un bucket? Sì, il numero di bucket non è limitato da MinIO. L'unico limite è lo spazio disponibile sul disco di Box.

Come proteggo l'accesso ai file se l'applicazione si connette dall'esterno di Box? Genera una chiave di accesso separata per ogni applicazione in Identity -> Service Accounts e limitane le autorizzazioni con una policy per uno specifico bucket, invece di usare un account amministratore. Per la connessione dall'esterno di Box usa un tunnel SSH (Box L o superiore) oppure acquista un add-on per una porta TCP personalizzata.

I dati in MinIO vengono sottoposti automaticamente a backup? Dipende dal piano Box acquistato. Il backup funziona a livello dell'intero Box, come per le altre applicazioni nel Catalogo delle applicazioni, e non è una funzione separata di MinIO.

Se hai domande sull'installazione di MinIO sul tuo Box o sul collegamento alla tua applicazione, scrivici. Ti aiuteremo con la configurazione iniziale.

  • #Backup
  • #MinIO
  • #Guida
  • #Archiviazione file
  • #S3