Что ж, я решился и начал миграцию своих загрузок. Хочу поделиться своим опытом новичка: некоторые предложения и вопросы, которые могут помочь другим или послужить обратной связью. Если настройка S3-бакета хорошо документирована, то в отношении CDN информации гораздо меньше. Вот примеры:
- Мне (не программисту) потребовалось некоторое время, чтобы понять, что существует два режима работы с CDN. Один предназначен для загрузок, а другой — отдельно для «активов», таких как CSS и визуальные элементы дизайна сайта.
- Настройка CDN для любого из этих типов могла бы выиграть от дополнительной документации или руководства. Push или pull? Ограниченный доступ к бакету? Руководство по объектным хранилищам, похоже, предполагает, что все уже знают, как это настроить.
- Меня также немного сбило с толку пересечение настроек в админ-панели и переменных окружения. Можно использовать и то, и другое, но рекомендуется использовать переменные окружения. Сосредоточившись пока только на загрузках, я обнаружил, что мне нужен лишь поднабор переменных окружения из руководства по объектным хранилищам? (Я хотел избежать включения CDN для активов, так как не знал, как его настроить (push или pull)).
- Для меня также не очевидно, как включить пользовательский домен для CDN. С CNAME я разобрался, но как включить SSL? Нужно ли как-то настроить сертификат Let’s Encrypt для работы с AWS CDN?
- Скрипт migrate_to_s3 завершил работу с ошибкой и предложил повторить запуск с трассировкой. Я запускал его несколько раз, а также вручную пересоздавал посты. В конце концов он завершил работу с радостным сообщением «Done!», и похоже, что теперь все загрузки загружаются через CDN.
- Я не ожидал, что все загрузки останутся и на машине с Discourse. Это ожидаемое поведение? Я думал, что миграция означает, что задача rake также удалит локальные копии? Или это произойдет позже в рамках процесса очистки устаревших файлов?
Я рад, что решился (я всё-таки не из робких). Сайт продолжает работать нормально, но есть несколько открытых вопросов:
- ограниченный доступ к бакету (да/нет)
- удаление загрузок, которые всё ещё находятся на сервере, чтобы я мог работать с меньшими резервными копиями
- SSL-сертификат для пользовательского домена CDN
- как настроить CDN с push (или, может, pull?) для активов CDN? Это просто увеличит скорость сайта?