Если вы решите использовать AWS Fargate с ALB, как вы упомянули, вы никогда не отключите его. Чтобы быть справедливым, обычно для ускорения задачи контейнера требуется 15-30 секунд, поэтому тот факт, что она находится за активным балансировщиком нагрузки, дал бы вызывающим сторонам довольно негативный опыт для очень редких задач, так как они будут превышать время ожидания.
Здесь у вас есть несколько вариантов, в зависимости от того, насколько известный интервальный трафик c у вас есть, и можете ли вы подготовиться заранее.
Предположение : Экономия затрат - это драйвер, а трафик c - случайно / малый объем, вызываемый через syn c HTTP / S-вызовы.
Примечание : выделенный ALB + Fargate всегда будет иметь выделенную емкость и может быть излишним для редко вызываемого кода.
1) Перенесите ваше приложение на Lambda и используйте API Gateway
Это означает, что вы платите только за звонки, проходящие через. Запуск лямбда-контейнера очень быстрый, и если вы получаете всего несколько звонков в день, это будет стоить копейки. Это требует от вас портирования приложения, хотя это может быть затруднительно.
2) API GW + Lambda proxy
Это обманщик - и предполагается, что вызывающий абонент повторит попытку через 30 с. , То, что вы делаете здесь, - это сначала вызов функции Lambda, которая запускает вашу службу Fargate. Затем он звонит и возвращает результат. Вы используете правила масштабирования, чтобы отключить его, когда трафик c ушел (обычно минуты низкой активности). Здесь у вас нет LB, хотя ... вы делаете это все в лямбда-коде, так как предполагается, что у вас есть только 1 запущенная задача.