В чем смысл модулей Terraform?

Меня немного интересуют модули Terraform. Каковы их точки? Я продолжаю видеть, что это должно сэкономить мне время, не копировать вставку и тому подобное, но я думаю, что могу упустить смысл, потому что не понимаю, зачем мне их использовать?

Я использовал их только один раз, поэтому мой опыт ограничен. Мне нужно создать 2 разные среды, и я не уверен, зачем мне это делать. Возможно, у меня было бы другое мнение, если бы мне пришлось делать 10 окружений. Среды будут в разных учетных записях, с использованием разных vpcs, разных IAM, ... Это навело меня на мысль, что я могу создать в основном 2 папки и ссылаться на некоторые переменные.

По поводу "не копировать-вставить", мне кажется вы делаете файл, который потом ссылается на модули и переменные. В какой-то момент вам все равно нужно написать все ресурсы (например, int-sg, test-sg). так почему бы не записать его прямо в нужную папку?

Я надеюсь, что этот вопрос имеет смысл, я был бы признателен за любое конструктивное мнение

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

модули имеют отступ для группировки ресурсов, которые требуются несколько раз.

Допустим, у вас есть три среды dev, staging и prod. Вы хотели бы, чтобы они были как можно равными, особенно staging и prod.

Итак, если вы хотите создать сервер с EIP, определенными группами безопасности и всем, что ему нужно, чтобы он был доступен, вы можете создать модуль для группировки этих ресурсов. Затем модуль можно легко включить в ваши файлы .tf для соответствующих сред с различные параметры для каждой среды.

Таким образом, вы можете сохранить ресурсы очень общими, а также иметь преимущество в том, что Terraform автоматически обновит все среды одинаково, если вы измените ресурсы в модуле. Таким образом, у вас будет единая точка для применения изменений вместо редактирования всех измененных ресурсов во всех файлах env.

Теперь только представьте, что у вас есть более 2 или 3 сред (или вариантов использования для одних и тех же групп ресурсов), и вы увидите преимущество модулей;)

Другие вопросы по теме