Aqui vou relatar um problema que passei com um cliente que possui mais de 10.000 usuário ativos no Moodle e que passou por um upgrade.
A moodledata é a pasta de arquivos que são enviados ou criados pela interface do Moodle. Uma vez que é um diretório, ele pode ter um nome diferente e localizado em qualquer parte do servidor.
A moodledata tende a ser uma pasta com muitos arquivos e crescer consideravelmente quando o Moodle possui grande número de alunos. E isso requer mais e mais espaço em disco.
Então, o que se pode fazer?
Comecei a fazer testes e colocar a pasta moodledata em uma partição montada no S3 da Amazon usando o s3fs e o resultado foi péssimo. Moodle ficou extremamente lento e impossível de navegar.
Eu achei muito estranho porque várias pessoas haviam dito "coloca no S3 e seja feliz" e eu o fiz e não fique nada feliz. Então comecei a tentar descobrir o porque desta lentidão.
Mais o que aconteceu?
O que acontece é que a moodledata possui todos os arquivos estáticos do Moodle, seu cache, imagens, fotos de usuários, upload e muito mais. E estes arquivos, principalmente os arquivos de cache precisam ser acessados inúmeras vezes quando a página é montada. Então se o acesso aos arquivos é lento, isso reflete diretamente na lentidão do Moodle.
Então tentei aumentar o cache do s3fs e isso gerou duplicidade dos arquivos e mesmo assim o tempo de resposta não mudou muita coisa. E esta solução se mostrou simplesmente um fracasso.
Então percebi, mais uma vês, que muita gente simplesmente "joga" as informações na internet sem sequer testar e analisar os resultados.
(PS.: Estamos reformulando nosso site e ele se encontra fora do ar)
Caro Eduardo, parabéns pelo post. Simples, direto e funcional.
Agora estou com outra dúvida. Seu artigo é de 2015 e não me lembro como era o CloudFront da AWS há 2 anos atrás. Você já considerou em colocar a pasta moodledata no CloudFront? Tem notícia de alguém que tenha feito?
Como CloudFront é um CDN optimizado para acesso de arquivos de websites penso que talvez seja uma solução interessante.
agraço.s
Veja: https://github.com/EduardoKrausME/moodledata-to-AWS
Eu já tinha visto estes arquivos postados no github.
No entanto, como se trata de envio para o S3 e você teve uma experiência muito ruim com o moodledata no S3 foi o motivo do meu comentário/pergunta.
Você está usando esta solução atualmente em algum projeto em produção? Está lhe satisfazendo?
Grande abraço.
Este processo aqui descreve problema de usar os arquivos no S3 como live. O plug-in que coloquei leva apenas os arquivos para o S3 e não faz leitura dos arquivos.
Olá Eduardo, ótimo artigo.
Com este plugin que você apresentou, você resolveu o problema da velocidade? E habilitou o Transfer acceleration para isso?
Abraço
Lucas
Transfer acceleration não ajuda em nada
Oi Eduardo, obrigado pelo artigo e pelo plugin.
Dei uma olhada no plugin, mas não entendi se com ele a velocidade de upload no S3 fica resolvida. Você acabou usando o plugin para o EBS SSD no final das contas?
Abraços!
Olá Eduardo, parabéns pelo artigo!
Gostaria de saber se você tentou habilitar a Aceleração de rede integrada (Amazon S3 Transfer Acceleration https://aws.amazon.com/pt/s3/faqs/#s3ta) e se isso resolveria a situação.
Abraços
Da uma olhada em https://github.com/EduardoKrausME/moodledata-to-AWS
Olá, Eduardo, muito bom seu artigo, eu também já havia ouvido falar do S3 para armazenamento do moodledata, admito que quase fiz essa cagada, rsrs, a minha sorte foi que pesquisei algumas opiniões de pessoas que já fizeram isso e para minha sorte fui informado que não era uma boa escolha, por isso resolvi desistir dessa opção, na época o EBS ainda está em fase de teses e não havia opção de criar uma instância aqui no BR, apenas nos EUA tem instâncias disponíveis, mas isso é apenas uma questão de tempo. Obrigado por compartilhar suas experiências Eduardo.
Obrigado pelo comentário.