Serve aiuto per la configurazione della CDN

Beh, ho fatto il salto e ho iniziato la migrazione dei miei upload. Condivido solo alcune suggerimenti e domande emerse dal mio percorso da principiante, che potrebbero essere utili ad altri o fungere da feedback. Mentre la configurazione del bucket S3 è ben documentata, lo spazio CDN sembra esserlo molto meno. Ecco alcuni esempi:

  • Ci è voluto un po’ (a me, che non sono un programmatore) per capire che esistono due modalità di utilizzo di una CDN. Una è per gli upload e l’altra, separata, è per le “risorse” (assets), come ad esempio CSS e elementi grafici per il design del sito?
  • La configurazione delle CDN per entrambi i tipi potrebbe trarre beneficio da una documentazione o guida più chiara. Push o pull? Accesso limitato al bucket? La guida allo storage di oggetti sembra dare per scontato che tutti sappiano come impostarlo.
  • Per me è stato anche un po’ confuso l’overlap tra le impostazioni dell’interfaccia di amministrazione e le variabili d’ambiente. Si possono fare entrambe le cose, ma si consiglia di usare le variabili d’ambiente. Concentrandomi solo sugli upload per ora, ho scoperto di aver bisogno solo di un sottoinsieme delle variabili d’ambiente indicate nella guida allo storage di oggetti? (Volevo evitare di abilitare la CDN per le risorse perché non sapevo come configurarla, ovvero se usare push o pull).
  • Non mi è chiaro come abilitare il dominio personalizzato per la CDN. Il CNAME lo capisco, ma come abilitare l’SSL? Dovrei far funzionare il certificato Let’s Encrypt in qualche modo con la CDN di AWS?
  • Lo script migrate_to_s3 è fallito ed è uscito suggerendo di riprovare con il tracciamento attivo. L’ho eseguito più volte e ho anche rigenerato manualmente alcuni post. Alla fine si è completato con un allegro “Done!” e sembra che ora tutti gli upload siano caricati tramite la CDN.
  • Quello che non mi aspettavo era che tutti gli upload rimanessero anche sulla macchina Discourse. È questo il comportamento previsto? Mi aspettavo che la migrazione includesse anche l’eliminazione delle copie locali tramite il job rake? O accadrà in seguito tramite un processo di pulizia dei file obsoleti?

Sono contento di aver fatto il salto (non sono così codardo, dopo tutto). Il sito funziona ancora bene, ma ci sono ancora alcune cose da risolvere:

  • accesso limitato al bucket (sì/no)
  • rimozione degli upload ancora presenti sul server per poter lavorare con backup più piccoli
  • certificato SSL per il dominio personalizzato della CDN
  • come configurare una CDN push (o era pull?) per le risorse? Serve solo a migliorare la velocità del sito?

Il vantaggio di averle come variabili d’ambiente è che esistono anche prima di ripristinare il sito. Quindi, se hai tutta la configurazione S3 nel tuo file YML e hai i backup su S3, per ripristinare il sito ti serve solo il file YML. Ti basta ricostruire il container ed eseguire un ripristino da riga di comando.

Un altro vantaggio dell’uso delle variabili d’ambiente è che queste impostazioni sono poi nascoste all’interfaccia utente, quindi un amministratore (che non ha accesso al filesystem) non può vederle. (E anche, non può modificarle). Ma questo può essere negativo perché non puoi vederle o modificarle dall’interfaccia utente se vuoi. :man_shrugging:

Basta fare pull. Niente di complicato.