Рисуем AWS-архитектуры как код: обзор diagram-as-code

16 Jan, 2026

Знакомая ситуация: после долгой работы над инфраструктурой нужно наконец-то нарисовать архитектурную диаграмму для документации? Или, может, вы устали вручную обновлять схемы после каждого изменения в Terraform или CloudFormation? Команда AWS Labs предлагает элегантное решение — diagram-as-code, инструмент для генерации диаграмм AWS прямо из YAML-кода.

Что это за инструмент и кому он пригодится

diagram-as-code — это CLI-утилита на Go, которая превращает описание инфраструктуры в YAML в красивые диаграммы, соответствующие официальным гайдлайнам AWS. Проект особенно полезен:

  • DevOps-инженерам, которые хотят автоматизировать документацию
  • Архитекторам, работающим с большим количеством схем
  • Командам, практикующим GitOps (диаграммы хранятся как код)
  • Разработчикам, которым нужно быстро визуализировать свои решения

Пример диаграммы VPC с подсетями и EC2

5 ключевых возможностей, которые вас впечатлят

  1. Генерация из CloudFormation (бета) Преобразуйте ваш шаблон CFN в диаграмму одной командой:

    awsdac template.yaml --cfn-template
    

    Пока функция в бета-версии, но уже экономит массу времени.

  2. Гибкость настройки Хотите кастомный вывод? Легко:

    awsdac infra.yaml -o custom-arch.png
    
  3. Интеграция с CI/CD Нет зависимостей от GUI — можно использовать в пайплайнах. Поддерживается как бинарник и через Docker.

  4. Работа с MCP-сервером Для интеграции с AI-ассистентами и другими инструментами:

    {
      "mcpServers": {
        "awsdac-mcp-server": {
          "command": "/opt/homebrew/bin/awsdac-mcp-server",
          "args": [],
          "type": "stdio"
        }
      }
    }
    
  5. Расширяемость Можно добавлять свои ресурсы и типы связей помимо AWS.

Как это работает под капотом

Инструмент написан на Go и использует:

  • Стандартные пакеты для работы с YAML
  • Собственный движок для рендеринга диаграмм
  • Минимальные зависимости (что важно для CI)

Архитектура позволяет легко расширять функционал через определение новых типов ресурсов в YAML.

Практические кейсы использования

  1. Документируем инфраструктуру Храните диаграммы вместе с кодом инфраструктуры — они всегда будут актуальными.

  2. Визуализация перед деплоем Генерируйте схему из CloudFormation до применения изменений.

  3. Обучение и онбординг Новым сотрудникам проще разобраться в системе по наглядным схемам.

  4. Технические презентации Красивые диаграммы для слайдов без ручной работы в Visio или Draw.io.

Плюсы и минусы

✅ Плюсы:

  • Настоящий "diagram as code" — версионирование, ревью
  • Соответствие стандартам AWS
  • Простота интеграции в процессы

⚠️ Минусы:

  • CloudFormation-фича пока в бета
  • Ограниченная кастомизация стилей
  • Только AWS (пока что)

Вывод: стоит ли пробовать?

Если вы работаете с AWS и устали от ручного рисования диаграмм — однозначно да. Инструмент экономит часы работы и делает документацию частью процесса разработки. Для старта хватит одного YAML-файла и команды в терминале.

Особенно рекомендую:

  • Командам, практикующим Infrastructure as Code
  • Архитекторам, работающим с большим количеством схем
  • Всем, кто хочет автоматизировать рутинные задачи

Попробуйте сами — установка через Homebrew или Go займет минуту:

brew install awsdac
# или
go install github.com/awslabs/diagram-as-code/cmd/awsdac@latest

А вы уже используете diagram-as-code в своих проектах? Делитесь опытом в комментариях!