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

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

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

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

Также управлять сервером можно прямо из веб-интерфейса при помощи серийной или VNC-консоли.
Серийная консоль обладает такими преимуществами, как:
- Поддержка сочетаний клавиш
Ctrl+CиCtrl+Vдля копирования и вставки текста, а также поддержка скролла прямо в окне терминала. - Возможность подсветки синтаксиса.
- Независимость от публичной сети и протокола SSH.
- Мгновенный запуск и минимальное потребление ресурсов.
Серийная консоль доступна в разделе «Консоль»:

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

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"

Проверим, что сервер был успешно создан:
curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $TIMEWEB_CLOUD_TOKEN" "https://api.timeweb.cloud/api/v1/servers" | jq

Пример 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"

Проверим, что хранилище было создано:
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TIMEWEB_CLOUD_TOKEN" \
"https://api.timeweb.cloud/api/v1/storages/buckets" | jq

Пример 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"

Проверим, что реестр контейнеров был создан:
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TIMEWEB_CLOUD_TOKEN" \
"https://api.timeweb.cloud/api/v1/container-registry"

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

Используем пресет под номером 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

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

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

Убедимся, что конфигурация была успешно изменена:
twc server get 6191913 -o yaml | grep -E '^( )?(id|cpu|ram):'

Как уже было упомянуто ранее, использование 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

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

Если в ответ команда вернула «Success! The configuration is valid», то конфигурация не содержит ошибок и готова к работе.
Также существует команда terraform plan, которая выведет список ресурсов и их характеристики, тем самым сервис покажет, что будет создано:
terraform plan

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

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

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

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

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

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