Preciso de ajuda para configurar CDN

Bem, dei o salto e migrei meus uploads. Apenas para compartilhar, a partir da minha jornada de iniciante, algumas sugestões e perguntas que podem ajudar outros ou servir como feedback. Embora a configuração do bucket S3 seja bem documentada, o espaço da CDN parece ser muito menos. Exemplos:

  • Levei um tempo (sendo eu um não-programador) para perceber que existem dois modos de usar uma CDN. Um é para uploads e o outro, separado, é para ‘ativos’ (assets), como eu imagino para CSS e elementos visuais do design do site?
  • A configuração de CDNs para qualquer um dos tipos poderia se beneficiar de alguma documentação ou orientação. Push ou pull? Acesso restrito ao bucket? O guia de armazenamento de objetos parece assumir que todos sabem como configurá-lo.
  • Para mim, também foi um pouco confusa a sobreposição entre as configurações de Admin da interface e as variáveis de ambiente. É possível fazer ambos, mas a segunda opção é recomendada. Focando apenas nos uploads por enquanto, percebi que precisei apenas de um subconjunto das variáveis de ambiente do guia de armazenamento de objetos? (Queria evitar ativar a CDN de ativos porque não sabia como configurá-la (push/pull).
  • Para mim, também não está claro como ativar o domínio personalizado para a CDN. Entendo o CNAME, mas como ativar o SSL? Devo obter o certificado Let’s Encrypt para funcionar com a CDN da AWS de alguma forma?
  • O script migrate_to_s3 falhou e foi encerrado com uma sugestão para repeti-lo com um rastreamento (trace). Tentei algumas vezes, além de recriar os posts manualmente. Por fim, ele concluiu com um animado “Done!” e parece que todos os uploads agora são carregados via CDN.
  • O que eu não esperava era que todos os uploads também permanecessem na máquina do Discourse. Esse é o comportamento pretendido? Eu esperaria que a migração significasse que o job rake também deletaria as cópias locais? Ou isso acontecerá mais tarde através de algum processo de limpeza de arquivos obsoletos?

Fico feliz por ter dado o salto (não sou tão covarde assim). O site ainda está funcionando bem, mas ainda há alguns itens em aberto:

  • acesso restrito ao bucket (sim/não)
  • remover os uploads que ainda residem no servidor para que eu possa trabalhar com backups menores
  • certificado SSL para o domínio personalizado da CDN
  • como configurar uma CDN push (ou era pull?) para a CDN de ativos? Isso apenas aumenta a velocidade do site?

A vantagem de usá-las como variáveis de ambiente (ENV) é que elas já existem antes mesmo de você restaurar seu site. Então, se você tiver toda a configuração do S3 no seu arquivo YML e tiver backups no S3, tudo o que precisa para restaurar o site é o arquivo YML. Basta reconstruir o container e executar um restore via linha de comando.

Outra vantagem de usar variáveis de ambiente é que essas configurações ficam ocultas na interface do usuário (UX), de modo que um administrador (que não tem acesso ao sistema de arquivos) não consegue vê-las (e, portanto, não consegue alterá-las). Mas isso pode ser ruim, pois você não consegue ver ou alterar essas configurações pela UX se quiser. :man_shrugging:

Basta puxar. Nada complicado.