Инструменты управления облачными ресурсами: Web UI, Cloud Shell, API, CLI и IaC

От графического интерфейса до командной строки — у каждого способа работы с облачной платформой и ресурсами Yandex Cloud есть свои преимущества. Выбор зависит от задач, опыта команды и требований проекта.

Краткий пересказ YandexGPT
  • Yandex Cloud Console предоставляет простой и интуитивно понятный интерфейс для управления жизненным циклом облачных сервисов, визуализации данных и мониторинга работы облачных сервисов.
  • Cloud Shell — это облачная среда командной строки, доступная через браузер, которая позволяет получить доступ к полноценной командной строке без необходимости устанавливать или настраивать локальное окружение.
  • API в Yandex Cloud позволяет создавать автоматизацию, плагины и приложения для управления ресурсами через программный интерфейс.
  • CLI — интерфейс командной строки для управления сервисами в Yandex Cloud, удобный для автоматизации рутинных действий и интеграции с существующими системами разработки.
  • Подход Infrastructure as Code позволяет описывать ресурсы через код, автоматизировать их развёртывание и обновление, обеспечивая контроль версий, воспроизводимость конфигураций и быстрое масштабирование ресурсов.
  • Инструменты IaC, интегрированные с Yandex Cloud, включают Terraform, Crossplane и Pulumi, которые предоставляют различные возможности для управления инфраструктурой как кодом.
  • Terraform — основной инструмент для управления инфраструктурой Yandex Cloud через код, позволяющий безопасно создавать, изменять и отслеживать состояние ресурсов.
  • Crossplane — расширение для Kubernetes® с открытым исходным кодом, позволяющее объединить ресурсы разных облачных платформ в единую инфраструктуру и управлять ими через высокоуровневые API.
  • Pulumi — инструмент для управления облачной инфраструктурой в виде кода, позволяющий описывать инфраструктуру на привычных языках программирования.
Тезисы сформулированыYandexGPT
Спасибо!

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

Облачная консоль управления (Web UI)

Консоль, или веб‑интерфейс облака, — это основной инструмент для управления ресурсами пользователя в облачной платформе.

Yandex Cloud Console предоставляет:

  • простой и интуитивно понятный интерфейс взаимодействия с пользователем;
  • управление жизненным циклом облачных сервисов: создание, изменение, удаление;
  • расширенные возможности по визуализации данных об облачных ресурсах и операциях с ними;
  • расширенные возможности мониторинга работы облачных сервисов.

Консоль объединяет все доступные облачные ресурсы под зонтиком каталога ресурсов — в одном облаке их может быть создано несколько. В консоли можно найти дашборд каталога — доступные облачные ресурсы. Здесь отображается вся ключевая информация: облака пользователя, баланс аккаунта, уведомления и многое другое.

Также есть мониторинг, который даёт возможность отслеживать состояние ресурсов по графикам и чартам. Для своевременного реагирования можно настроить алерты и получать уведомления любым удобным способом — с помощью электронной почты, SMS или пуш‑уведомлений в мобильном приложении Yandex Cloud.

Для отслеживания остатка средств можно использовать дашборды детализации трат. Они показывают, за что и когда происходили платежи — расходы по облакам и каталогам, сервисам или меткам.

Cloud Shell

Cloud Shell — облачная среда командной строки, доступная через браузер. Она позволяет получить доступ к полноценной командной строке без необходимости устанавливать или настраивать локальное окружение. Подключение возможно из любой точки мира, где есть интернет. Авторизация происходит автоматически для каждого сеанса — дополнительные пароли вводить не нужно.

Как запустить

Cloud Shell открывает терминал прямо в консоли Yandex Cloud. В нём уже установлены YC CLI и набор инструментов из Yandex Cloud Toolbox для работы с облаком. Подключение происходит через браузер с автоматической аутентификацией. Ничего дополнительно устанавливать не нужно — терминал сразу готов к работе.

В Yandex Cloud Shell уже есть всё для работы с контейнерами, базами данных и облачной инфраструктурой. Среда содержит популярные утилиты и SDK: Yandex Cloud CLI, Terraform, Packer, Pulumi, Helm, kubectl, gRPCurl, jq, yq, Git и tmux. Также доступны основные языки программирования — Node.js, Python и Go.

Для каждого пользователя при запуске Cloud Shell выделяется отдельная виртуальная машина:

  • 2 vCPU (с 50% гарантией),
  • 4 ГБ оперативной памяти,
  • 5 ГБ дискового пространства.

Технические детали реализации

Основные компоненты Cloud Shell:

  • Control Plane управляет сессией и координирует все процессы;
  • Compute и Pool VM отвечают за запуск и исполнение команд;
  • Data Plane передаёт вывод в реальном времени;
  • BFF (Backend-for-Frontend) объединяет REST и WebSocket, скрывая внутреннюю gRPC‑логику от фронтенда.
Полноэкранное изображение

Пользователь через BFF (REST для команд и WebSocket для вывода) взаимодействует с Control Plane: тот выделяет виртуальную машину из заранее подготовленного пула, запускает Workflow для настройки окружения и проксирует команды по gRPC в Compute. Compute исполняет команды в контейнере на VM, а Data Plane передаёт их результаты обратно через BFF в реальном времени, обеспечивая мгновенный доступ к терминалу без локальной установки

Пользователь подключается к Cloud Shell через браузер. Все команды и вывод терминала проходят через BFF, который объединяет два канала — REST для управления сессией и WebSocket для передачи потоковых данных.

Далее запросы поступают в Control Plane: этот компонент отвечает за выбор виртуальной машины из пула и подготовку окружения. Внутренняя маршрутизация событий позволяет Control Plane управлять жизненным циклом сессии и информировать остальные сервисы о состоянии виртуальной машины

Виртуальные машины запускаются под управлением Compute, который принимает команды и возвращает результаты выполнения.

Data Plane отвечает за передачу потоковых данных от Compute обратно через BFF к пользователю, поддерживая отклик терминала в реальном времени.

Такая архитектура обеспечивает быстрый старт среды, защищённую изоляцию сессий и «живой» доступ к облачному терминалу из любого места без локальной настройки.

API: программный интерфейс для управления облаком

Наши сервисы позволяют создавать автоматизацию, плагины и приложения для управления ресурсами через API.

API (интерфейс прикладного программирования) — это программный посредник между разными приложениями. С помощью него разработчики могут отправлять запросы, использовать протоколы и встроенные инструменты для быстрой передачи данных между сервисами.

API в Yandex Cloud построены на gRPC. Для описания методов и структур данных используется Protocol Buffers — формат сериализации данных для работы с gRPC.

Сервисы предоставляют и JSON REST‑интерфейс, к которому можно обращаться напрямую. REST‑запросы проходят через gRPC‑JSON transcoder — этот механизм преобразует входящие HTTP‑запросы в gRPC‑вызовы и обратно. Клиент получает HTTP‑ответ после обработки.

Для большинства сервисов в API используется ресурсно‑ориентированный подход:

  • Ресурсы — виртуальные машины, диски, образы. Каждый ресурс имеет уникальный идентификатор.
  • Для управления ресурсами есть два типа методов:
    • Стандартные методы позволяют создавать, получать, изменять и удалять ресурсы. Сигнатуры этих методов совпадают для всех сервисов.
    • Дополнительные методы расширяют стандартные операции. Сюда относятся, например, подключение диска или перезапуск виртуальной машины. Сигнатуры отличаются для каждого метода.

Операции, которые изменяют состояние ресурсов, выполняются асинхронно: сервер возвращает объект Operation с информацией о статусе задачи и идентификатором ресурса.

Операции создания, изменения и удаления поддерживают идемпотентность — повторный запрос не приводит к ошибке или дублированию результата.

CLI (Command Line Interface)

CLI (Command Line Interface) — интерфейс командной строки для управления сервисами. CLI есть в Linux, macOS, Windows.

С помощью Yandex Cloud CLI можно:

  • изменять права доступа к облачным ресурсам,
  • управлять облачными сервисами,
  • применять структурированную систему команд для каждого сервиса,
  • выполнять команды синхронно или асинхронно,
  • обращаться к облаку напрямую через Public API.

Инструмент для автоматизированного тестирования инфраструктуры, написанной через код. Проверяет корректность развёртывания и настройки облачных ресурсов, активно используется с Terraform.

Фреймворк для тестирования и валидации инфраструктуры и её соответствия политикам безопасности. Помогает автоматизировать проверки конфигураций серверов и облачных окружений, используя декларативные тесты.

Инструмент для управления облачной инфраструктурой с помощью кода. Позволяет автоматизировать создание и настройку ресурсов в облаке.

CLI удобен для автоматизации рутинных действий и интеграции с существующими системами разработки.

Подход Infrastructure as Code (IaC): зачем нужен и как работает

Управление инфраструктурой вручную усложняется по мере роста числа ресурсов и сложности архитектур создаваемых приложений. Увеличивается вероятность ошибок, замедляется внесение изменений. Подход Infrastructure as Code позволяет описывать ресурсы через код, автоматизировать их развёртывание и обновление.

Преимущества IaC:

  • контроль версий и простое ревью изменений через систему контроля версий;
  • воспроизводимость конфигураций и автоматический контроль расхождений изменений;
  • быстрое масштабирование ресурсов без ручных операций;
  • автоматическое тестирование инфраструктуры перед развёртыванием при использовании инструментов вроде Terratest или InSpec;
  • ускорит развёртывание инфраструктуры в новых регионах.

Несмотря на все плюсы, подход Infrastructure as Code не лишён недостатков, которые важно учитывать при его внедрение в рабочий процесс:

  • IaC требует времени на обучение и настройку, увеличивает издержки на старте, а ошибки в коде могут привести к потере ресурсов.
  • State‑файл в Terraform содержит критичные данные и нуждается в защите.
  • Не все инструменты универсальны: Terraform плохо подходит для тонкой настройки, Ansible сложен при больших зависимостях, CloudFormation ограничен только AWS.

Большинство инструментов IaC используют декларативный подход. Инженер задаёт желаемое состояние системы (например, «три сервера, балансировщик и база данных»), а инструмент автоматически рассчитывает, как этого достичь.

Инструменты IaC, интегрированные с Yandex Cloud

​​Для работы с нашей платформой доступны:

  • Инструменты автоматического создания ресурсов:

    • Terraform — основной инструмент для управления инфраструктурой Yandex Cloud через код.
    • Crossplane — расширение Kubernetes® для управления облачными ресурсами.
    • Pulumi — инструмент IaC с поддержкой популярных языков программирования.
  • Управление секретами:

    • Yandex Lockbox — сервис для безопасного хранения конфиденциальных данных.

Сравнение инструментов управления

Характеристики

Web UI

Cloud Shell

Yandex Cloud API

Yandex Cloud CLI

Terraform

Crossplane

Pulumi

Назначение

Веб-интерфейс

Веб-оболочка

REST/gRPC API для программного управления

Утилита командной строки

IaC-инструмент

IаС-инструмент

IaC-инструмент

Технические требования

Веб-браузер

Веб-браузер

Любая платформа с HTTP/gRPC-клиентом

Windows / Linux / MacOS

Порог вхождения

Низкий

Низкий

Средний

Средний

Средний

Высокий

Высокий

Модель взаимодействия

Императивная

Декларативная

Покрытие функциональности

Высокая

Высокая

Высокая

Высокая

Средняя

Средняя

Средняя

Расскажем подробнее о некоторых популярных инструментах, используемых для реализации IaC.

Terraform

Terraform — инструмент для управления инфраструктурой как кодом. С его помощью можно безопасно создавать, изменять и отслеживать состояние ресурсов — от виртуальных машин и сетей до DNS‑записей и управляемых сервисов.

Terraform описывает инфраструктуру с помощью кода — на языке HCL (HashiCorp Configuration Language) или в формате JSON. Это позволяет хранить конфигурации в системе контроля версий и разворачивать среду в один клик.

Мы подготовили набор Terraform‑модулей, чтобы упростить описание инфраструктуры и сократить повторяющийся код. Они помогают перейти к более высокому уровню управления: собирать инфраструктуру из готовых блоков, как из конструктора. Все модули основаны на практиках, которые мы сами используем для создания облачных сервисов.

Пошаговая инструкция поможет подготовить безопасную среду и настроить управление несколькими облаками в компании с помощью Terraform‑модулей — с учётом требований отрасли и политик безопасности.

Crossplane

Crossplane — расширение для Kubernetes® с открытым исходным кодом. Оно позволяет объединить ресурсы разных облачных платформ в единую инфраструктуру и управлять ими через высокоуровневые API.

С помощью Crossplane можно:

  • управлять ресурсами облака напрямую из Kubernetes‑кластера,
  • настраивать мультиоблачную инфраструктуру и делегировать разработчикам доступ к ней,
  • описывать инфраструктуру как код с помощью YAML‑манифестов.

Расширение подходит для команд, которые хотят использовать Kubernetes® не только для оркестрации контейнеров, но и как универсальный интерфейс для работы с инфраструктурой в разных облаках.

Pulumi

Pulumi — инструмент для управления облачной инфраструктурой в виде кода. В отличие от традиционных инструментов, требующих изучения специальных языков конфигурации, Pulumi позволяет описывать инфраструктуру на привычных языках программирования: Python, TypeScript, Go, C# и других.

Самые популярные языки программирования: обзор и тенденции

Pulumi не разрабатывается Yandex Cloud, но может быть интегрирован с нашими облачными сервисами через Terraform. Это позволяет нашим клиентам управлять виртуальными машинами, сетями, базами данных и другими ресурсами через единый интерфейс.

Работа с Pulumi организована через проекты. Проект представляет собой каталог с файлом Pulumi.YAML, который определяет используемый язык программирования и базовые настройки. Каждый проект может содержать несколько стеков — независимых наборов параметров для разных окружений. Например, отдельные стеки для разработки, тестирования и продуктивного контура.

Pulumi автоматически отслеживает состояние инфраструктуры — сохраняет информацию о созданных ресурсах и их конфигурации. Это состояние можно хранить локально для небольших проектов или в удалённом хранилище (например, в Yandex Object Storage) для командной работы. Благодаря этому инструмент понимает, какие изменения нужно внести при обновлении инфраструктуры, и предотвращает конфликты при одновременной работе нескольких разработчиков.

Заключение

Мы рассмотрели основные инструменты для работы с Yandex Cloud. Разнообразие подходов позволяет каждому выбрать привычный и удобный способ управления инфраструктурой — от визуального интерфейса до кода.

Инструменты можно комбинировать, чтобы сочетать преимущества каждого инструмента. Например, использовать консоль для прототипирования, CLI — для повседневных задач, а Terraform — для управления продуктивной средой.

Инструменты управления облачными ресурсами: Web UI, Cloud Shell, API, CLI и IaC
Войдите, чтобы сохранить пост