Я создаю рендер-ферму, используя SQS и группы автомасштабирования.
Я считаю, что мой вариант использования - один из немногих, когда я действительно хочу, чтобы емкость моей группы соответствовала размеру очереди, вплоть до предела.
Прямо сейчас я использую политику отслеживания цели, которая масштабируется на основе «BacklogPerInstance», то есть просто queue_size / group_capacity.
Проблема с этим подходом заключается в том, что в моем случае я хочу, чтобы BacklogPerInstance был равен 0, что является недопустимой целью для политики масштабирования. Я взломал его, используя цель 0,001, но он работает не очень хорошо.
Как мне написать политику автомасштабирования, которая поддерживает емкость группы на уровне очереди?
Если под словом «до предела» вы имеете в виду ограничение в 5 или около того, вы можете использовать для этого поэтапную политику масштабирования. Что-то вроде этого:
SQS queue size | scaling policy group capacity
0 | 1
1 | 2
2 | 3
3 | 4
4 | 5
5 and above | 6