В настоящее время у нас есть настроенная инфраструктура веб-интерфейса, которую я хочу перенести на формирование облака, поскольку она становится все более сложной. Мы используем ECS с несколькими контейнерами докеров, RDS, балансировщиками нагрузки, SNS и т. Д.
Я хотел бы предложить предложение о том, где провести черту (или где найти информацию) между тем, что должно быть в формировании облака, а что нет. Особенно вокруг
заранее спасибо
Пара (произвольных) правил, которым я обычно следую:
Разделите свои шаблоны на меньшие куски и развертывать вещи, которые могут часто меняться (задачи ECS), отдельно от вещей, которые почти никогда не меняются (VPC, подсети) или редко меняются (RDS).
Использовать CloudFormation Export / ImportValue для передачи переменных между стеками. Это помогает уменьшить количество параметров, необходимых для каждого шаблона.
Держать Группы безопасности и роли IAM близко к ресурсам которые в них нуждаются. Некоторые люди склонны создавать все SG в одном шаблоне, а затем использовать их для ресурсов в другом шаблоне. Не надо, ALB SG должен быть определен в шаблоне ALB CFN.
Обновление стека CFN через CI / CD для развертывания любых новых изменений ресурсов.
Например. когда вы создаете новую версию контейнера ECS, CI / CD отправит его в ECR, а затем вызовет CloudFormation для обновления стека, чтобы он указывал на новый идентификатор образа ECR. Это поможет сохранить дрейф в ваших шаблонах до минимума.
Аналогично с лямбдами - вы можете использовать Пакет / развертывание CloudFormation для развертывания новых версий с CI / CD.
Вы также можете использовать Ansible для развертывания шаблонов CloudFormation, он весьма умен в том смысле, что не пытается обновлять стеки, в которых шаблон или параметры не изменились с последнего запуска.
По существу все надо делать через CloudFormation. Фактически, в некоторых учетных записях мы не разрешаем вносить изменения вручную через консоль и разрешаем развертывание вещей только через CloudFormation. Один из возможных способов сделать это - использовать Роль службы CFN.
Надеюсь, это поможет :)