Site icon IT Education Center Blog – блог навчального центру DevOps – ITEDU by NETFORCE Group

Що таке AWS CloudFormation?

AWS CloudFormation — це сервіс Amazon Web Services, який дає змогу автоматизовано створювати, змінювати, оновлювати й видаляти інфраструктуру в хмарі AWS. Для цього він використовує декларативні шаблони (темплейти) у форматі YAML або JSON. 

Його принцип роботи базується на підході «інфраструктура як код» (IaC), що дозволяє керувати ресурсами як програмним кодом без ручної метушні.

Розвиток AWS CloudFormation

AWS CloudFormation був запущений у 2011 році як сервіс для автоматизації створення і керування інфраструктурою в AWS. Спочатку він допомагав користувачам описувати свою інфраструктуру за допомогою темплейтів у форматі JSON, підтримуючи 13 з 15 наявних сервісів AWS. 

У 2016 році CloudFormation додав підтримку YAML, тому шаблони стали більш зрозумілими та зручними для читання. Звідси й менша кількість помилок, і простіша робота з інфраструктурою, оскільки YAML виглядає значно чистіше, ніж JSON.

У 2018 році з’явилась функція Drift Detection. Вона дозволяє перевіряти, чи не було змінено щось вручну у ресурсах, які ти розгортав за допомогою темплейтів. 

З 2019 року CloudFormation отримав нові можливості для розширення. Відтоді можна створювати кастомні ресурси через CloudFormation Registry. І, звісно, додали CLI, бо куди ж без нього.

А сьогодні AWS CloudFormation підтримує понад 200 сервісів і є основним сервісом для автоматизації управління інфраструктурою в AWS. Він безпечно й ефективно розгортає складні архітектури та автоматизує процеси в хмарі.

Як працює AWS CloudFormation?

З чого складається CloudFormation?

У шаблоні CloudFormation є кілька секцій, але головна — Resources. Саме тут описуються всі ресурси, які мають з’явитися в AWS.

Інші секції — не обов’язкові, але з ними все працює набагато зручніше:

AWSTemplateFormatVersion — вказує версію формату темплейту.

Description — короткий опис, що робить темплейт.

Metadata — додаткова технічна інформація про шаблон або його частини.

Parameters — дозволяють передавати значення під час запуску, щоб робити темплейт гнучкішим.

Mappings — задають фіксовані значення для різних сценаріїв (наприклад, регіонів).

Conditions — можливість задавати умови для створення ресурсів.

Transform — використовується, коли ти підключаєш макроси або, наприклад, AWS Serverless Application Model (SAM).

Outputs — визначають, яку інформацію показати після створення стека (наприклад, URL сервера або ID ресурсу).

Основні переваги CloudFormation 

  1. Шаблони для автоматизації ресурсів
    Ти можеш створювати шаблони для автоматизованого створення різноманітних ресурсів AWS. До них відносяться EC2, S3, RDS, Lambda та інші.
  2. Управління стеками
    Ресурси можна згрупувати в стек — набір пов’язаних ресурсів, який керується як єдине ціле.
  3. Оновлення та зміни конфігурацій
    CloudFormation визначає зміни, необхідні для оновлення інфраструктури. Вона забезпечує безперервну роботу ресурсів під час оновлення.
  4. Статус і моніторинг
    Можна дивитися, що з твоїм стеком: все ок чи щось горить. Сповіщення теж є.
  5. Підтримка параметрів та умов
    Шаблони можуть використовувати параметри для гнучкості. Умови допомагають налаштувати їх для різних сценаріїв.
  6. Інфраструктура як код (IaC)
    Ми вже це згадували, та нагадуємо ще раз. CloudFormation дозволяє описувати інфраструктуру як код. Це полегшує автоматизацію розгортання та забезпечує версійність інфраструктури.

Недоліки та обмеження CloudFormation 

Порівняння з аналогами

CloudFormation — не єдине рішення для опису інфраструктури як коду.

Terraform працює з різними хмарами. Гнучкий, універсальний, але не завжди синхронізується з новими фічами AWS одразу. І треба окремо зберігати стан.

AWS CDK дозволяє писати інфраструктуру звичними мовами програмування. Але всередині — той самий CloudFormation.

Pulumi — ще більше свободи, ще менше шаблонів. Але потрібен програмістський підхід і окрема інфраструктура для збереження стану.

Іншими словами, якщо потрібно щось стабільне й підтримуване, CloudFormation — те, що треба.

Корисні посилання

  1. Офіційна документація
  2. Відповіді на часті питання про CloudFormation
  3. Офіційний форум від AWS
  4. Шаблони та найкращі методи роботи з CloudFormation
  5. Порівняння Terraform та CloudFormation
  6. Курс, де ти опануєш AWS
Dobrianska Olena
Exit mobile version