Мое эмпирическое правило состоит в том, чтобы разделить ресурсы по единицам развертывания - то, что развертывается вместе, идет вместе.
Я хочу иметь наименьший развертываемый стек, потому что он быстро разворачивается или дает сбой в случае возникновения проблемы. Я не следую этому правилу неукоснительно. Например, я часто группирую лямбды (даже не связанные, зависит от размера проекта), так как они обновляются только в том случае, если изменился код / конфигурация, и я склонен выдвигать небольшие обновления, когда изменилась только одна лямбда.
У меня также часто есть стек общих ресурсов, которые используются (Fn::Import
-ed) в других стеках, таких как ключ KMS, общий S3 Bucket и т. Д.
Обратите внимание, что для каждого стека настроен процесс CD, отсюда и правило.