Всем привет!
У меня есть форум Discourse на Droplet от DigitalOcean.
Размер диска — 160 ГБ (сейчас свободно 45 ГБ). Мой сайт занимает много места за счёт загрузок (40 ГБ). Что лучше выбрать для переноса загрузок? Есть какие-то предложения? S3, Spaces от DigitalOcean? Что ещё?
Спасибо.
Привет @Saiano,
На мой взгляд, это просто вопрос личных предпочтений.
Когда вы в последний раз выполняли команду ./launcher cleanup? Это должно освободить для вас немного места.
Посмотрите статью Использование объектного хранилища для загрузки файлов (S3 и аналоги). Если вы умеете настраивать AWS, это наиболее поддерживаемое и надёжное решение. У Spaces несколько раз возникали технические проблемы, но, возможно, они уже их решили.
На прошлой неделе я перенёс одного пользователя на Spaces и bunny.net, и всё прошло гладко.
Я настроил бакет S3 для загрузки файлов и резервных копий, всё работает отлично. CDN я пока не создавал. Может ли это стать проблемой? Есть какие-то предложения? Стоит ли переносить старые файлы на S3 с помощью rake?
Я настроил CloudFront в AWS. Похоже, всё работает нормально.
Проверю в ближайшие несколько дней.
Остаётся сделать следующее:
Остановить доску Discourse — создать снимок в DO
Отредактировать файл yml
Пересобрать и протестировать
Затем:
./launcher enter app
rake uploads:migrate_to_s3
rake posts:rebake
Сколько времени займёт загрузка 37 ГБ и пересборка всех постов?
Время выполнения зависит от множества факторов. Скорее всего, S3 без проблем примет вашу загрузку со скоростью, с которой ваш сервер может её отправить, за вычетом некоторых накладных расходов. При подключении 1 Гбит/с это, вероятно, займёт около 5 минут.
Пересборка и последующие задачи, скорее всего, потребуют большей части времени. Длительность этого процесса может сильно варьироваться в зависимости от количества постов на вашем экземпляре, объёма и типа контента в постах, а также тактовой частоты процессора вашего сервера. Время выполнения результирующих задач также будет зависеть от тех же факторов, а также от количества доступных ядер процессора.
Как я понимаю (если я ошибаюсь, пожалуйста, поправьте), процесс миграции на S3 и пересборки таков, что существующие загрузки не удаляются до тех пор, пока они не будут отвязаны от постов (после того, как пересборка обработает соответствующий пост). Таким образом, экземпляр может продолжать использоваться без потери доступности загрузок во время миграции и пересборки.
Если вы работаете на виртуальном сервере с одним доступным ядром, возможно, стоит рассмотреть возможность временного повышения количества ядер на время пересборки, а затем снижения после её завершения. На одном ядре процесс займёт значительно больше времени, и производительность Discourse может серьёзно пострадать в этот период.
Скорее всего, я переведу доску в режим только для чтения во время загрузки данных в S3.