Существует две основные стратегии борьбы с скачками трафика: увеличение пропускной способности и снижение затрат.
Увеличение емкости означает автоматическое масштабирование, которое очень взволновало всех, когда впервые появились общедоступные облака. В самом простом смысле это загрузит больше веб-серверов для вас в зависимости от нагрузки и добавит их в балансировщик нагрузки, но, поскольку управление может быть затруднено, есть и более автоматические решения, такие как Elastic Beanstalk.
Проблема с автоматическим расширением емкости заключается в том, что его автоматическое расширение счета - 10x нормальный трафик означает, что 10x серверов означает 10x денег, которые вы должны заплатить. Вот почему, несмотря на полезную стратегию, я думаю, вы всегда должны начинать с того, чтобы узнать, сколько вы можете обмануть.
Под читом я подразумеваю кеш, который основывается на идее, что большую часть времени вы можете дать пользователям немного устаревшие данные, а они не заметят, и это может сэкономить вам огромное количество времени. Представьте, что у вас есть страница, с которой вы решаете, что все в порядке, если она устарела на пять секунд и получает 20 запросов в секунду. Без кеширования вы выполняете этот расчет 1200 раз в минуту, тогда как при кешировании - только 12. Вы можете увидеть, как это может иметь огромное значение.
Существует, конечно, много типов кэширования, и успешный сайт будет использовать несколько из них. Но для вашего случая есть два довольно хороших и простых варианта.
Первое - сделать сайт полностью статичным. Это предполагает, что вы можете сделать это, но если вы можете, тогда у вас просто есть Nginx, обслуживающий html напрямую, и он может обслуживать тонны запросов без пота.
Если вам нужен какой-то уровень динамичности, тогда неплохое выполнение кэширования на всю страницу является хорошим вариантом. У Nginx есть некоторые возможности сделать это, но мне очень нравится Varnish из-за его гибкости.
Какой бы вариант или опции вы не использовали, убедитесь, что вы выполняете нагрузочное тестирование, чтобы убедиться, что вы его правильно настроили; иногда исправление одного пятна обнажает новое узкое место.