Что / где / как масштабировать, зависит от ваших проблем. Поскольку вас несколько раз ударили, и вы знаете, что это сервер API, вам необходимо определить, что на самом деле является причиной проблемы.
Это время поиска БД?
Объем запросов, которые веб-сервер просто не может обработать, даже если они недолговечны?
Запросы API слишком долго обрабатываются? (независимо от поиска в БД, например, для выполнения кода требуется немного времени)?
Как только вы определили, в чём проблема, у вас должна быть достаточно четкая картина того, что вам нужно делать. Если это просто объем запросов и это сервер API, вам просто нужно больше веб-серверов (и изменения кода для обеспечения горизонтального масштабирования) или более мощный веб-сервер. Если запросы API занимают слишком много времени, вы смотрите на оптимизацию кода. Там никогда не бывает один выстрел, когда речь заходит о масштабируемости.
Наиболее распространенные проблемы масштабирования связаны с медленным (2-3 секунды) выполнением фактического кода для каждого запроса, что, в свою очередь, приводит к увеличению количества веб-серверов, что приводит к большему взаимодействию с базой данных (для межсерверных сеансов, и т.д.), что приводит к проблемам с производительностью базы данных. Высокопроизводительный, независимый от сервера код с memcache (я на самом деле предпочитаю оболочку вокруг memcache, чтобы приложение не знало / не заботится, откуда оно получает данные, только то, что оно получает его, а уровень перевода обрабатывает поиск в DB / memcache, а также заполнение кэш).