Рекомендации по инфраструктуре хостинга Discourse

Я размещаю Discourse на экземпляре EC2, и согласно историческим данным CDN, ожидается, что размер сообщества составит в среднем около 20,03 миллиона запросов в месяц. Мне нужны рекомендации по количеству и размеру необходимых экземпляров, а также по необходимости использования автоматического масштабирования.

Хм, запустить Discourse на одной машине возможно, используя один или два контейнера Docker, но я не припоминаю ничего о распределении нагрузки на несколько инстансов. Обычно рекомендуют масштабировать вертикально: использовать инстансы с большим количеством процессоров и оперативной памяти. Для загружаемых файлов можно использовать локальное или облачное хранилище.

Однако такой уровень трафика — всего одна-две запроса в секунду, что, на мой взгляд, не так уж много.

Обычная практика — начинать с небольшого инстанса и изменять его размер по мере необходимости, ориентируясь на использование памяти и нагрузку на процессор. Если у вас много денег, можно сразу начать с более мощного инстанса.

Приносим извинения, но лимит составляет 20 миллионов запросов в месяц. Текущий веб-сайт использует автоматическое масштабирование с 7 экземплярами t3a.medium и 1 экземпляром t3a.large. Мы планируем миграцию этого сайта на платформу Discourse. Прошу предложить рекомендации по количеству и размеру необходимых экземпляров, а также по необходимости использования автоматического масштабирования.

Сложно заранее предположить, что именно вам понадобится. Мне известен сайт с 3,5 млн просмотров страниц в месяц, работающий на виртуальной машине с 8 ГБ ОЗУ и 4 ядрами процессора. Вы можете использовать это как ориентир. Этот сайт сам обслуживает изображения, что (не так) легко реализовать при использовании нескольких экземпляров; скорее всего, ваши ресурсы будут размещены в S3, а для сайта и ведра S3 будут использоваться CDN.

Вероятность того, что «запрос» и «просмотр страницы» — это одно и то же, невелика.

Необходимость масштабирования зависит от характера вашего трафика. Если вам требовалось масштабирование раньше, то, вероятно, оно понадобится и с Discourse. Если ваш трафик довольно стабилен и масштабирование вам не требуется, то простое решение — одна мощная виртуальная машина, а также, возможно, RDS и, возможно, Elasticache. Кроме того, всё зависит от того, какие инструменты и методы предпочитает ваша команда, от вашего бюджета и других факторов.

Если один большой экземпляр EC2, на котором размещен Discourse, выйдет из строя, весь сайт перестанет работать. Пожалуйста, предоставьте решение этой проблемы. Мы планируем использовать RDS для базы данных и ElastiCache.

Затем используйте ECS или любое другое ваше любимое решение с балансировщиком нагрузки.