Necesito ayuda para configurar CDN

Bueno, di el salto y procedí a migrar mis subidas. Solo para compartir, desde mi experiencia de principiante, algunas sugerencias y preguntas que podrían ayudar a otros o servir como retroalimentación. Mientras que la configuración del bucket S3 está bien documentada, el espacio de CDN parece tener mucha menos. Por ejemplo:

  • Me llevó un tiempo (a alguien que no programa) darse cuenta de que existen dos modos de usar una CDN. Uno es para las subidas y el otro, separado, es para los “assets”, supongo que para CSS y elementos visuales del diseño del sitio.
  • Configurar CDNs para cualquiera de los dos tipos podría beneficiarse de documentación o guía. ¿Push o pull? ¿Acceso restringido al bucket? La guía de almacenamiento de objetos parece asumir que todos saben cómo configurarlo.
  • Para mí también fue un poco confusa la superposición entre la configuración en la interfaz de administración de usuario y las variables de entorno. Se pueden hacer ambas, pero se recomienda esta última. Centrándome solo en las subidas por ahora, descubrí que solo necesitaba un subconjunto de las variables de entorno de la guía de almacenamiento de objetos (quería evitar habilitar la CDN de assets porque no sabía cómo configurarla, ya sea push o pull).
  • Tampoco me quedó claro cómo habilitar el dominio personalizado para la CDN. Entiendo lo del CNAME, pero ¿cómo habilito el SSL? ¿Debería conseguir que el certificado de Let’s Encrypt funcione con la CDN de AWS de alguna manera?
  • El script migrate_to_s3 falló y terminó con una sugerencia para volver a ejecutarlo con un rastreo. Lo iteré un par de veces y también reprocesé publicaciones manualmente. Al final, completó con un alegre “¡Hecho!” y parece que todas las subidas ahora se cargan a través de la CDN.
  • Lo que no esperaba era que todas las subidas también permanecieran en la máquina de Discourse. ¿Es ese el comportamiento previsto? Esperaría que la migración implicara que el trabajo de rake también eliminara las copias locales. ¿O eso ocurrirá más tarde mediante algún proceso de limpieza de archivos obsoletos?

Me alegra haber dado el salto (no soy tan cobarde después de todo). El sitio sigue funcionando bien, pero aún hay algunos puntos pendientes:

  • Acceso restringido al bucket (sí/no)
  • Eliminar las subidas que aún residen en el servidor para poder trabajar con copias de seguridad más pequeñas
  • Certificado SSL para el dominio personalizado de la CDN
  • Cómo configurar una CDN push (¿o era pull?) para la CDN de assets. ¿Eso solo mejora la velocidad del sitio?

Lo bueno de tenerlas como variables de entorno es que existen incluso antes de restaurar tu sitio. Así que, si tienes toda tu configuración de S3 en tu archivo YML y tienes copias de seguridad en S3, lo único que necesitas para restaurar tu sitio es el archivo YML. Solo reconstruyes el contenedor y ejecutas una restauración desde la línea de comandos.

Otra ventaja de usar variables de entorno es que esas configuraciones quedan ocultas para la interfaz de usuario, por lo que un administrador (que no tiene acceso al sistema de archivos) no puede verlas (y tampoco puede modificarlas). Pero esto también puede ser un inconveniente, ya que no podrás verlas ni cambiarlas desde la interfaz si lo necesitas. :man_shrugging:

Simplemente haz pull. Nada complicado.