Истории успеха наших клиентов — лучшие проекты
Вход / Регистрация

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

2
9 минут чтения
Средний рейтинг статьи: 5

Современные облачные платформы предоставляют различные способы для взаимодействия с инфраструктурой. Каждый инструмент ориентирован на свои сценарии использования, уровень автоматизации и тип пользователей. Сегодня на примере облачного провайдера Timeweb Cloud мы рассмотрим четыре основных способа управления облачными ресурсами: веб-интерфейс (Web UI), API, командную строку (CLI) и Infrastructure as Code (IaC).

cloud

Web UI

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

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

Рассмотрим веб-интерфейс на примере облачного сервера. В разделе «Дашборд» отображается вся основная информация о сервере, а также графики для мониторинга:

Image13

Справа можно найти все необходимые данные для подключения к серверу, включая IPv4- и IPv6-адреса, а также уже готовую команду для подключения по протоколу SSH:

Image18

Настройка сети осуществляется в отдельном разделе «Сеть»:

Image24

Чтобы изменить конфигурацию сервера, можно воспользоваться соответствующими параметрами в разделе «Конфигурация»:

Image7

Также управлять сервером можно прямо из веб-интерфейса при помощи серийной или VNC-консоли.

Серийная консоль обладает такими преимуществами, как:

  • Поддержка сочетаний клавиш Ctrl+C и Ctrl+V для копирования и вставки текста, а также поддержка скролла прямо в окне терминала.
  • Возможность подсветки синтаксиса.
  • Независимость от публичной сети и протокола SSH.
  • Мгновенный запуск и минимальное потребление ресурсов.

Серийная консоль доступна в разделе «Консоль»:

Image3

Также можно использовать VNC-консоль, которая эмулирует экран монитора, подключенного к виртуальной машине. Работает поверх IP-сети. В отличие от серийной консоли, копирование текста из VNC-консоли недоступно. Однако VNC-консоль может быть полезна при сетевой недоступности сервера. Она также находится в разделе «Консоль»:

Image2

API

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

В качестве методов API Timeweb Cloud поддерживает GET, POST, PUT, PATCH, DELETE. Доступна подробная документация

Рассмотрим несколько примеров работы с API-запросами провайдера при помощи консольной утилиты curl

Для начала нам необходимо сгенерировать API-токен. Далее создадим переменную окружения и в качестве значения укажем наш токен:

export TIMEWEB_CLOUD_TOKEN="<API-токен>"

Пример 1. Создание сервера

Создадим облачный сервер Linux с ОС Ubuntu 24.04, именем my-first-cloud-server и характеристиками: 1 × 3,3 ГГц CPU, 1 ГБ RAM, 15 ГБ NVMe.

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TIMEWEB_CLOUD_TOKEN" \
  -d '{
  "is_ddos_guard": false,
  "os_id": 99,
  "bandwidth": 1000,
  "name": "my-first-cloud-server",
  "preset_id": 4795,
  "is_local_network": false
}' "https://api.timeweb.cloud/api/v1/servers"

Image22

Проверим, что сервер был успешно создан:

curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $TIMEWEB_CLOUD_TOKEN" "https://api.timeweb.cloud/api/v1/servers" | jq

Image14

Пример 2. Создание бакета в S3-хранилище

Создадим S3-хранилище размером 1 ГБ:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TIMEWEB_CLOUD_TOKEN" \
  -d '{"name":"s3-storage","type":"private","preset_id":2623}' \
  "https://api.timeweb.cloud/api/v1/storages/buckets"

Image23

Проверим, что хранилище было создано:

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TIMEWEB_CLOUD_TOKEN" \
  "https://api.timeweb.cloud/api/v1/storages/buckets" | jq

Image20

Пример 3. Создание реестра контейнеров

Создадим реестр образов Docker:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TIMEWEB_CLOUD_TOKEN" \
  -d '{"name": "my-docker-registry", "preset_id": 1939}' \
  "https://api.timeweb.cloud/api/v1/container-registry"

Image21

Проверим, что реестр контейнеров был создан:

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TIMEWEB_CLOUD_TOKEN" \
  "https://api.timeweb.cloud/api/v1/container-registry"

Image6

CLI

Timeweb Cloud обладает собственной утилитой командной строки twc для управления облачными ресурсами, проектами, образами, базами данных и т.д. Руководство пользователя доступно на Гитхабе. Там же можно ознакомиться со справочником по всем доступным командам утилиты.

Создадим облачный сервер при помощи утилиты twc. Как и в случае с API, сначала нужно получить токен доступа в панели управления Timeweb Cloud в разделе «API и Terraform».

Установим утилиту на Ubuntu 24.04. Все команды, приведённые ниже, необходимо выполнять от имени пользователя root либо обычного пользователя с правами sudo.

Сначала обновим индекс репозиториев, затем установим интерпретатор Python 3 и пакетный менеджер pip:

apt update && apt -y install python3 python3-pip

Создаем новое виртуальное окружение:

python3 -m venv env

Активируем виртуальное окружение:

source ./env/bin/activate

Устанавливаем утилиту twc:

pip3 install twc-cli

Добавляем наш токен для получения доступа к ресурсам провайдера:

twc config

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

twc server list-presets

Image9

Используем пресет под номером 2573, который включает в себя 1 x 3.3 ГГц CPU, 2 ГБ RAM, 30 ГБ места на NVMe-диске:

twc server create --name dev-1 --image ubuntu-24.04 --preset-id 2573 --ssh-key ~/.ssh/id_ed25519.pub

Image1

Ключ --ssh-key предназначен для настройки авторизации по SSH при помощи ключей. Вместо ~/.ssh/id_ed25519.pub необходимо указать свой путь до файла с публичным (открытым) ключом. Также данный параметр можно не использовать.

Проверим, что сервер отобразился в списке ресурсов:

twc server list

Image16

Поменяем конфигурацию сервера на 4 CPU и 8 ГБ RAM. Вместо ID сервера 6191913 необходимо подставить свой:

twc server resize --cpu 4 --ram 8G 6191913

Image12

Убедимся, что конфигурация была успешно изменена:

twc server get 6191913 -o yaml | grep -E '^(  )?(id|cpu|ram):'

Image15

Как уже было упомянуто ранее, использование twc не ограничивается работой с серверами. Поддерживаются образы операционных систем, базы данных, балансировщики нагрузки, объектные хранилища, кластеры Kubernetes, доменные записи, VPC, Firewall.

IaC

IaC (Infrastructure as Code, «Инфраструктура как код») — подход к IT-инфраструктуре, при котором ее создание и настройка осуществляются при помощи файлов конфигурации с кодом, а не вручную через графический интерфейс или интерактивные команды. Представьте, что вам необходимо создать 10 виртуальных машин с разной конфигурацией. Если выполнять все эти действия вручную, это займет много времени. Подход IaC существенно упрощает задачу благодаря использованию автоматизации и специальной конфигурации.

Одним из самых популярных IaC-инструментов является Terraform — бесплатный инструмент IaC с открытым исходным кодом от компании HashiCorp. Позволяет описывать всю инфраструктуру (серверы, сети, базы данных, контейнеры, облачные ресурсы и т.д.) в виде кода на специальном декларативном языке HCL (HashiCorp Configuration Language) или в JSON. У Timeweb Cloud есть свой провайдер для работы с Terraform. 

Далее мы создадим облачный сервер при помощи конфигурации Terraform.

Для установки Terraform воспользуемся документацией.

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

mkdir test-timeweb-cloud-terraform && cd test-timeweb-cloud-terraform

Экспортируем переменную с API-токеном, полученным в панели управления.

export TWC_TOKEN="<API-токен>"

Создаем основной конфигурационный файл main.tf

nano main.tf

Сначала необходимо установить провайдер. Для этого в разделе terraform указываем имя провайдера и ссылку на него. 

Далее мы описываем желаемое состояние нашей инфраструктуры в блоке configuration. Мы будем разворачивать облачный сервер с Ubuntu 24.04, 1 CPU, 2 ГБ RAM, 15 ГБ места на диске:

terraform {
  required_providers {
    twc = {
      source = "tf.timeweb.cloud/timeweb-cloud/timeweb-cloud"
    }
  }
  required_version = ">= 0.13"
}

data "twc_configurator" "configurator" {
  location = "ru-1"
  preset_type = "standard"
}

data "twc_os" "os" {
  name = "ubuntu"
  version = "24.04"
}

resource "twc_server" "new-srv1" {
  name = "new-srv1"
  os_id = data.twc_os.os.id

  configuration {
    configurator_id = data.twc_configurator.configurator.id
    disk = 1024 * 15
    cpu = 1
    ram = 2048
  }
}

Инициализируем провайдер при помощи команды:

terraform init

Image25

Проверим конфигурацию на наличие ошибок в синтаксисе перед созданием ресурсов:

terraform validate

Image11

Если в ответ команда вернула «Success! The configuration is valid», то конфигурация не содержит ошибок и готова к работе.

Также существует команда terraform plan, которая выведет список ресурсов и их характеристики, тем самым сервис покажет, что будет создано:

terraform plan

Image10

Для создания ресурсов используем команду:

terraform apply

Image8

Прежде чем приступить к созданию, Terraform запросит разрешение. Необходимо ввести yes:

Image19

Убедимся, что облачный сервер был создан, используя команду:

terraform show

Image4

Чтобы удалить ранее созданный ресурс, необходимо использовать команду:

terraform destroy

Image5

Перед удалением Terraform также запрашивает подтверждение. Вводим yes:

Image17

Подготовили для вас выгодные тарифы на облачные серверы

Заключение

Сегодня мы рассмотрели четыре основных способа управления облачными ресурсами: Web UI, API, CLI и IaC.

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

Интуитивно понятный Web-интерфейс подходит для разовых операций и визуального мониторинга. API служит фундаментом облачной автоматизации. CLI обеспечивает скорость, гибкость и возможность создания скриптов — особенно востребованных у опытных администраторов и разработчиков.

Однако именно подход Infrastructure as Code — вершина эволюции инструментов управления. Он переводит работу с инфраструктурой на качественно новый уровень. IaC воплощает ключевые принципы современной DevOps-культуры: воспроизводимость, контроль версий, командную работу, безопасность и непрерывную поставку. Инфраструктура становится кодом — с возможностью применять к ней те же лучшие практики, что и к разработке приложений.

2
9 минут чтения
Средний рейтинг статьи: 5
Пока нет комментариев