Дизайн шаблона формирования облака - PullRequest
3 голосов
/ 11 марта 2019

Какие факторы учитывают люди, когда решают написать 1 большой шаблон CF или вкладывать много меньших?Я имею в виду вариант использования, основанный на RDS, где мне нужно будет определить экземпляры RDS, группы безопасности VPC, группы параметров и опций, а также выполнить некоторые пользовательские лямбда-ресурсы.

Мне кажется, что это должно быть разделено, возможно, по типу ресурса, но мне было интересно, существует ли общепринятая практика по этому вопросу.

Ответы [ 2 ]

2 голосов
/ 12 марта 2019

Моя текущая настройка требует развертывания VPC (с конечными точками), RDS и приложения (шлюз API, Lambdas). Я сломал их как

  • Стек VPC: общий ресурс с 1 VPC на регион с общедоступными и частными подсетями, конечными точками VPC, корзиной S3, шлюзами NAT, ACL, группами безопасности.
  • Стек RDS: у меня может быть несколько кластеров RDS внутри VPC, поэтому имеет смысл держать его отдельно. Кроме того, он создается после VPC, так как ему нужны ресурсы VPC, такие как частные подсети, группы безопасности. Этот кластер используется несколькими стеками приложений.
  • Стек приложений: при этом развертывается шлюз API и Lambdas (в основном безсерверное приложение) с указанным выше кластером RDS в качестве БД.

Итак, в общем, я в значительной степени следую тому, что описал @Milan Cermak. Но в моем случае эти развертывания выполняются при необходимости (не является частью CD), поэтому экспортированные параметры хранятся в хранилище параметров AWS Systems Manager.

2 голосов
/ 11 марта 2019

Мое эмпирическое правило состоит в том, чтобы разделить ресурсы по единицам развертывания - то, что развертывается вместе, идет вместе.

Я хочу иметь наименьший развертываемый стек, потому что он быстро разворачивается или дает сбой в случае возникновения проблемы. Я не следую этому правилу неукоснительно. Например, я часто группирую лямбды (даже не связанные, зависит от размера проекта), так как они обновляются только в том случае, если изменился код / ​​конфигурация, и я склонен выдвигать небольшие обновления, когда изменилась только одна лямбда.

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

Обратите внимание, что для каждого стека настроен процесс CD, отсюда и правило.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...