TimeWeb. Создание и удаление сервера

24.05.2026

Теги: BashCLICloudLinuxОбразСерверСнапшот

Для запуска Claude Code (Open Code) требуется достаточно мощный сервер (минимум 2 vCPU и 4 ГБ оперативной памяти), который стоит недешево. Но можно создавать такой сервер утром, перед началом работы. И удалять вечером, когда рабочий день закончился. Вечером, перед удалением сервера — создавать образ диска. Утром — восстанавливать состояние из этого образа.

Для решения задачи потребуется сервер-диспетчер (24/7), который будет отправлять команды в облако с помощью утилиты командной строки twc-cli от Timeweb Cloud (документация).

Подготовка «Диспетчера» (ПК или сервер)

Шаг 1. Выпустить API-токен в панели управления Timeweb Cloud в разделе «API и Terraform».

Шаг 2. Установить pipx (нужен Python) на управляющий компьютер/сервер

$ sudo apt update
$ sudo apt install pipx
$ pipx ensurepath

Команда pipx ensurepath выполняет настройку путей (переменная PATH), чтобы операционная система знала, где искать установленные через pipx утилиты.

Шаг 3. Установить консольную утилиту на управляющий компьютер/сервер

$ pipx install twc-cli
$ source ~/.bashrc
$ twc --version

Шаг 4. Авторизовать утилиту с помощью созданного на первом шаге токена

$ twc config
Create new configuration file. Enter your API token.
Token: токен
Done! Configuration is saved in /home/evgeniy/.twcrc

Шаг 5. Узнать идентификаторы ресурсов на аккаунте с помощью команд

$ twc server list
ID       NAME        REGION  STATUS  IPV4
1111111  Сервер one  nl-1    on      111.111.111.111
2222222  Сервер two  nl-1    on      222.222.222.222
$ twc ip list
IP               PTR   ZONE   ANTI_DDOS  USED_ON
111.111.111.111  None  ams-1  False      server:1111111
222.222.222.222  None  ams-1  False      server:2222222

Автоматическое создание сервера

Создаем на управляющей машине скрипт server_start.sh, который будет разворачивать сервер из последнего созданного снапшота и привязывать к нему постоянный IP-адрес.

$ nano /usr/local/bin/server_start.sh
#!/bin/bash

# Настройки
MY_STATIC_IP='123.123.123.123'     # Постоянный IP-адрес
SERVER_NAME='Claude Code NL'       # Название сервера
PRESET_ID='3346'                   # Идентификатор пресета
REGION_ID='nl-1'                   # Локация сервера

echo '1. Проверка: сервер с таким именем уже существует?'
EXISTING_ID=$(twc server list --output json | jq -r --arg NAME "$SERVER_NAME" \
    '.servers[] | select(.name==$NAME) | .id')

if [ -n "$EXISTING_ID" ] && [ "$EXISTING_ID" != "null" ]; then
    echo "Сервер '$SERVER_NAME' уже существует (ID: $EXISTING_ID). Выход."
    exit 0
fi

echo '2. Поиск самого свежего автоматического образа...'
JSON_FILTER='[.images[] | select(.name | startswith("Auto-Backup-CCNL"))] | sort_by(.created_at) | last | .id'
IMAGE_UUID=$(twc image list --output json | jq -r "$JSON_FILTER")

if [ -z "$IMAGE_UUID" ] || [ "$IMAGE_UUID" = "null" ]; then
    echo 'Ошибка: Свежий образ Auto-Backup-CCNL не найден в аккаунте!'
    exit 1
fi
echo "Найден образ ID: $IMAGE_UUID"

echo '3. Создание нового сервера из сохраненного образа...'
NEW_SERVER_ID=$(twc server create --name "$SERVER_NAME" --image "$IMAGE_UUID" \
    --public-ip "$MY_STATIC_IP"  --preset-id $PRESET_ID --region "$REGION_ID" \
    --output json | jq -r '.server.id')

if [ -z "$NEW_SERVER_ID" ] || [ "$NEW_SERVER_ID" = "null" ]; then
    echo 'Ошибка создания сервера!'
    exit 1
fi
echo "Сервер успешно инициализирован. Получен ID: $NEW_SERVER_ID"

echo '4. Ожидание перехода сервера в статус готовности...'
ATTEMPT=0
MAX_ATTEMPTS=20
while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
    STATUS=$(twc server get $NEW_SERVER_ID --output json | jq -r '.server.status')
    if [ "$STATUS" = "on" ]; then
        echo 'Сервер готов, продолжаем...'
        break
    fi
    ATTEMPT=$((ATTEMPT + 1))
    echo "Попытка $ATTEMPT из $MAX_ATTEMPTS. Статус: [$STATUS]. Ждём..."
    sleep 15
done

if [ $ATTEMPT -ge $MAX_ATTEMPTS ]; then
    echo 'Ошибка: сервер не запустился за отведённое время.'
    exit 1
fi

echo '=== УТРЕННИЙ ПРОЦЕСС ЗАВЕРШЕН ==='
$ chmod +x /usr/local/bin/server_start.sh

Автоматическое удаление сервера

Создаем скрипт server_stop.sh, который создает актуальный снимок системы, дожидается завершения операции и полностью удаляет сервер, чтобы за него перестали списываться деньги (при этом IP-адрес сохраняется).

$ nano /usr/local/bin/server_stop.sh
#!/bin/bash

# Настройки
MY_STATIC_IP='123.123.123.123'
SERVER_NAME='Claude Code NL'
IMAGE_NAME="Auto-Backup-CCNL-$(date +%F)"

echo '1. Поиск ID сервера по имени...'
SERVER_ID=$(twc server list --output json | \
    jq -r --arg NAME "$SERVER_NAME" '.servers[] | select(.name==$NAME) | .id')

if [ -z "$SERVER_ID" ] || [ "$SERVER_ID" = "null" ]; then
    echo "Ошибка: Сервер '$SERVER_NAME' не найден."
    exit 1
fi
echo "Успешно. ID Сервера: $SERVER_ID"

echo '2. Получение ID жесткого диска...'
DISK_ID=$(twc server disk list $SERVER_ID --output json | \
    jq -r '.server_disks[] | select(.is_system==true) | .id')

if [ -z "$DISK_ID" ] || [ "$DISK_ID" = "null" ]; then
    echo 'Ошибка: Диск сервера не найден.'
    exit 1
fi
echo "Успешно. ID Диска: $DISK_ID"

echo '3. Остановка сервера перед созданием образа...'
twc server stop $SERVER_ID

# Ожидание полной остановки
ATTEMPT=0
MAX_ATTEMPTS=10
while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
    STATUS=$(twc server get $SERVER_ID --output json | jq -r '.server.status')
    if [ "$STATUS" = "off" ]; then
        echo 'Сервер остановлен, продолжаем...'
        break
    fi
    ATTEMPT=$((ATTEMPT + 1))
    echo "Попытка $ATTEMPT из $MAX_ATTEMPTS. Статус: [$STATUS]. Ждём..."
    sleep 10
done

if [ $ATTEMPT -ge $MAX_ATTEMPTS ]; then
    echo 'Ошибка: сервер не остановился за отведённое время.'
    echo 'Образ НЕ будет создан в целях безопасности данных.'
    exit 1
fi

echo '4. Запуск асинхронного создания образа...'
NEW_IMAGE_ID=$(twc image create $DISK_ID --name "$IMAGE_NAME" --output json | jq -r '.image.id')
echo "Задача отправлена в облако. ID нового образа: $NEW_IMAGE_ID"

echo '5. Ожидание завершения копирования (с защитой от зависания)...'
ATTEMPT=0
MAX_ATTEMPTS=20

while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
    RAW=$(twc image get $NEW_IMAGE_ID --output json)
    STATUS=$(echo "$RAW" | jq -r '.image.status // .status // empty')

    if [ "$STATUS" = "created" ]; then
        echo 'Образ успешно создан, можно продолжать...'
        break
    elif [ "$STATUS" = "new" ] || [ "$STATUS" = "creating" ] || [ "$STATUS" = "queued" ]; then
        ATTEMPT=$((ATTEMPT + 1))
        echo "Попытка $ATTEMPT из $MAX_ATTEMPTS. Статус: [$STATUS]. Ждём..."
        sleep 30
    else
        echo "Неожиданный статус: [$STATUS]. Сырой ответ API:"
        echo "$RAW"
        echo 'Сервер НЕ будет удален.'
        exit 1
    fi
done

# Если вышли из цикла по тайм-ауту, а не по успеху
if [ $ATTEMPT -ge $MAX_ATTEMPTS ]; then
    echo 'Ошибка: Превышено время ожидания создания образа (10 минут). Операция прервана.'
    echo 'Сервер НЕ будет удален в целях безопасности данных.'
    exit 1
fi

echo '6. Безопасное удаление сервера (IP останется на аккаунте)...'
twc server remove --keep-public-ip --yes $SERVER_ID

echo '7. Очистка: удаление устаревших автоматических образов...'
# Находим ID самого свежего образа (он уже создан на шаге 4)
# Удаляем все Auto-Backup образы КРОМЕ только что созданного
OLD_IMAGE_IDS=$(twc image list --output json | jq -r --arg KEEP "$NEW_IMAGE_ID" \
    '.images[] | select(.name | startswith("Auto-Backup-CCNL")) | select(.id != $KEEP) | .id')

for OLD_ID in $OLD_IMAGE_IDS; do
    echo "Удаление устаревшего образа: $OLD_ID"
    twc image remove $OLD_ID --yes
done

echo '=== ВЕЧЕРНИЙ ПРОЦЕСС ЗАВЕРШЕН ==='
$ chmod +x /usr/local/bin/server_stop.sh

Добавление скриптов в cron

На управляющей машине добавляем в cron запуск скриптов в 8:55 утра и 18:05 вечера.

$ crontab -e
# Каждый день в 08:55 утра создавать и запускать сервер
55 08 * * * /usr/local/bin/server_start.sh
# Каждый день в 18:05 вечера сохранять и удалять сервер
05 18 * * * /usr/local/bin/server_stop.sh

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

Утилита twc-cli полностью дублирует возможности веб-панели Timeweb Cloud. Она позволяет управлять серверами, дисками, сетями, базами данных и бэкапами через обычные консольные команды. Ответы можно получать как в виде читаемых таблиц, так и в формате JSON для автоматизации.

1. Справка по утилите twc-cli

Общая справка по всем командам

$ twc --help
Usage: twc [OPTIONS] COMMAND [ARGS]...

  CLI for Timeweb Cloud services.

Options:
  --version             Show version and exit.
  -v, --verbose         Enable verbose mode.
  -c, --config FILE     Use config.
  -p, --profile NAME    Use profile.
  --install-completion  Install completion for the current shell.
  --show-completion     Show completion for the current shell, to copy it or
                        customize the installation.
  -h, --help            Show this message and exit.

Commands:
  account   Manage Timeweb Cloud account.
  apps      Manage apps.
  balancer  Manage load balancers. (aliases: balancers, lb)
  cluster   Manage Kubernetes clusters. (aliases: clusters, kubernetes, k8s)
  config    Manage CLI configuration.
  database  Manage databases. (aliases: databases, db)
  domain    Manage domains and DNS records. (aliases: domains, d)
  firewall  Manage Cloud Firewall rules and groups. (aliases: fw)
  image     Manage disk images. (aliases: images, i)
  ip        Manage floating IPs. (aliases: ips)
  project   Manage projects. (aliases: projects, p)
  server    Manage Cloud Servers. (aliases: servers, s)
  ssh-key   Manage SSH-keys. (aliases: ssh-keys, k)
  storage   Manage object storage buckets. (aliases: storages, s3)
  version   Show version and exit.
  vpc       Manage virtual networks

Подробная справка по одной команде

$ twc command --help

2. Команда twc server

Общая справка по команде twc server

$ twc server --help
Usage: twc server [OPTIONS] COMMAND [ARGS]...

  Manage Cloud Servers.

Options:
  -h, --help  Show this message and exit.

Commands:
  backup               Manage Cloud Server disk backups.
  boot                 Boot Cloud Server. (aliases: start)
  clone                Clone Cloud Server.
  create               Create Cloud Server.
  dash                 Open Cloud Server dashboard in web browser.
  disk                 Manage Cloud Server disks.
  get                  Get Cloud Server info.
  history              View Cloud Server events log.
  ip                   (Deprecated) Manage public IPs.
  list                 List Cloud Servers. (aliases: ls)
  list-configurators   List Cloud Server configurators (sets of configuration
                       constraints). (aliases: lc)
  list-os-images       List prebuilt operating system images. (aliases: li)
  list-presets         List configuration presets. (aliases: lp)
  list-software        List software. (aliases: lsw)
  reboot               Reboot Cloud Server. (aliases: restart)
  reinstall            Reinstall OS or software.
  remove               Remove Cloud Server. (aliases: rm)
  reset-root-password  Reset root user password.
  resize               Update vCPUs number, RAM, disk and bandwidth.
  set                  Set Cloud Server properties.
  set-boot-mode        Set Cloud Server boot mode.
  set-nat-mode         Set Cloud Server NAT mode.
  shutdown             Shutdown Cloud Server. (aliases: stop)
  vnc                  Open Cloud Server web VNC console in browser.

Просмотр справочников

Список операционных систем list-os-images

$ twc server li
ID   FAMILY   NAME        VERSION  CODENAME       REQUIREMENTS
47   linux    ubuntu      18.04    bionic
50   windows  windows     2016     datacenter     Disk >= 35G
61   linux    ubuntu      20.04    focal
67   linux    debian      11       bullseye
69   windows  windows     2022     datacenter     Disk >= 35G
.....

Список готовых конфигураций list-presets

$ twc server lp
ID    REGION  PRICE  CPU  FREQ  RAM   DISK  TYPE  BANDW  LAN
2451  ru-1    800    2    3.3   2G    40G   nvme  1000   True
.....
2937  kz-1    611    2    3.3   2G    40G   nvme  100    True
.....
3011  ru-2    207    1    3.3   1G    15G   nvme  100    True
.....
3340  nl-1    2090   1    3.3   1G    15G   nvme  200    True
.....
3795  kz-1    4030   2    3.3   2G    40G   nvme  100    True
.....

Сборка сервера на заказ list-configurators

$ twc server lc
ID   REGION  TYPE  CPU(MIN/MAX)  RAM(MIN/MAX)  DISK(MIN/MAX)  BW(MIN/MAX)
11   ru-1    nvme  1/104         1024/747520   15360/2048000  1000/1000
17   pl-1    nvme  2/104         2048/747520   40960/2048000  100/1000
21   nl-1    nvme  2/104         2048/747520   40960/2048000  1000/1000
23   kz-1    nvme  2/104         2048/747520   40960/2048000  100/1000
79   de-1    nvme  2/104         2048/747520   40960/2048000  200/1000
.....

Список программного обеспечения list-software

$ twc server lsw
ID   NAME                        OS
25   Docker                      47, 61, 79, 99
28   Node.JS                     47, 61, 79, 99
71   Wireguard                   61, 99, 79
79   WordPress                   79, 99
129  OpenVPN                     79
.....

Управление сервером

Просмотр списка всех серверов на аккаунте

$ twc server list
ID       NAME        REGION  STATUS  IPV4
1111111  Сервер one  nl-1    on      111.111.111.111
2222222  Сервер two  nl-1    on      222.222.222.222

Вывод детальной информации о конкретном сервере

$ twc server get 1111111 --output json
{
    "response_id": "16c28e44-a67d-4393-b85e-de742df8c3d5",
    "server": {
        "id": 1111111,
        "cpu": 1,
        "ram": 1024,
        "location": "nl-1",
        "name": "Сервер one",
        "availability_zone": "ams-1",
        "preset_id": 3340,
        "status": "on",
        // .....
        "disks": [
            // диски
        ],
        "networks": [
            // публичная и приватная сеть
        ],
        "os": {
            // операционная система
        },
    }
}

Запуск, остановка или перезагрузка сервера

$ twc server start [SERVER_ID]
$ twc server stop [SERVER_ID]
$ twc server reboot [SERVER_ID]

Создание нового сервера из пресета (ID=2573), ОС Ubuntu 20.04 (ID=61)

$ twc server create --name "MyServer" --preset-id 2573 --image 61 --availability-zone ams-1

В качестве значения --image можно указывать ID операционной системы или UUID образа.

Создание сервера из существующего образа

$ twc server create --name "MyServer" --preset-id 2573 --image [IMAGE_UUID]

Опция public-ip позволяет привязать к серверу плавающий ip-адрес. Если опция не указана — будет привязан новый ip-адрес. Опция no-public-ip позволяет не привязывать к серверу новый ip-адрес.

Создание сервера из существующего образа через конфигуратор

$ twc server create \
>    --name "MyServer" \
>    --image [IMAGE_UUID] \
>    --configurator-id 43 \
>    --cpu 2 \
>    --ram 4096 \
>    --disk 15360 \
>    --region ru-2 \
>    --availability-zone msk-1

Timeweb Cloud размещает инфраструктуру в дата-центрах по всему миру, используя систему регионов и зон доступности.

Регион — Санкт-Петербург, Москва, Новосибирск, Амстердам (Нидерланды), Франкфурт-на-Майне (Германия), Алматы (Казахстан).

Зона доступности — это изолированная часть инфраструктуры внутри региона, можно воспринимать её как конкретный дата-центр.

| Регион                 |      | Зона доступности           |
|------------------------|------|----------------------------|
| Санкт-Петербург        | ru-1 | spb-1, spb-2, spb-3, spb-4 |
| Москва                 | ru-2 | msk-1                      |
| Новосибирск            | ru-3 | nsk-1                      |
| Амстердам (Нидерланды) | nl-1 | ams-1                      |
| Франкфурт (Германия)   | de-1 | fra-1                      |
| Алматы (Казахстан)     | kz-1 | ala-1                      |

Важно! Timeweb Cloud постепенно отказывается от концепции зон доступности. Благодаря новой реализации сетей связность сервисов внутри одного региона доступна вне зависимости от зоны.

Удаление сервера

$ twc server remove [SERVER_ID]

При удалении сервера — удаляется плавающий ip-адрес, привязанный к серверу. Сохранить ip-адрес на аккаунте можно с помощью опции keep-public-ip.

Список дисков сервера

$ twc server disk list [SERVER_ID]
ID        NAME  MOUNTED  SYSTEM  TYPE  STATUS  SIZE  USED
24601314  vda   True     True    nvme  done    40G   2.5G
24631020  vdc   True     False   nvme  done    10G   0.0G

Добавить новый диск

$ twc server disk add [SERVER_ID] --size 10G

Удалить диск

$ twc server disk remove [DISK_ID]

После создания нового диска — он появится в системе, посмотреть можно с помощью команды lsblk

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda       8:0    0   40G  0 disk              # ← старый диск
├─sda1    8:1    0   39G  0 part /
├─sda14   8:14   0    4M  0 part
├─sda15   8:15   0  106M  0 part /boot/efi
└─sda16 259:0    0  913M  0 part /boot
sdb       8:16   0   10G  0 disk              # ← новый диск
vda     253:0    0    1M  1 disk              # ← служебный, метаданные cloud-init

Для подготовки диска к работы выполняем шаги

  1. Форматируем в ext4 sudo mkfs.ext4 /dev/sdb
  2. Создаём точку монтирования sudo mkdir -p /mnt/data
  3. Монтируем диск sudo mount /dev/sdb /mnt/data

После этого снова выполняем команду lsblk — для проверки полученного результата. Чтобы не монтировать диск вручную — добавляем автомонтирование в /etc/fstab при загрузке. Важно добавить опцию nofail, чтобы система не зависла при загрузке, если диск был удален.

# ❌ Опасная запись — сервер зависнет если диска нет
/dev/sdb /mnt/data ext4 defaults 0 2
# ✅ Безопасная запись — сервер загрузится без диска
/dev/sdb /mnt/data ext4 defaults,nofail 0 2

Дополнительная защита — монтировать по UUID, а не по имени. Имя диска (sdb) может измениться после перезагрузки, если дисков несколько. UUID — не меняется никогда.

Узнать UUID диска можно с помощью команды blkid

$ sudo blkid /dev/sdb

Теперь можно использовать UUID диска в /etc/fstab

UUID=a1b2c3d4-e5f6-... /mnt/data ext4 defaults,nofail 0 2

3. Команда twc image

Общая справка по команде twc image

$ twc image --help
Usage: twc image [OPTIONS] COMMAND [ARGS]...

  Manage disk images.

Options:
  -h, --help  Show this message and exit.

Commands:
  create  Create image from existing Cloud Server disk.
  get     Get image info.
  list    List images. (aliases: ls)
  remove  Remove image. (aliases: rm)
  set     Change image name and description.
  upload  Upload image from URL.

Справка по команде twc image create

$ twc image create --help
Usage: twc image create [OPTIONS] DISK_ID

  Create image from existing Cloud Server disk.

Arguments:
  DISK_ID  [required]

Options:
  -v, --verbose        Enable verbose mode.
  -c, --config FILE    Use config.
  -p, --profile NAME   Use profile.
  -o, --output FORMAT  Output format, one of: [default|raw|json|yaml].
  --name TEXT          Image human readable name.
  --desc TEXT          Image description.
  -h, --help           Show this message and exit.

Создать образ диска сервера

$ twc image create [DISK_ID] --name "backup-$(date +%F)"

Для создания образа нужен DISK_ID, который можно получить, если есть SERVER_ID

$ twc server disk list [SERVER_ID]
ID        NAME  MOUNTED  SYSTEM  TYPE  STATUS  SIZE  USED
24601314  vda   True     True    nvme  done    40G   2.5G
24631020  vdc   True     False   nvme  done    10G   0.0G

Идентификатор сервера SERVER_ID можно получить, если вывести список всех серверов

$ twc server list
ID       NAME        REGION  STATUS  IPV4
1111111  Сервер one  nl-1    on      111.111.111.111
2222222  Сервер two  nl-1    on      222.222.222.222

Посмотреть список всех сохраненных образов дисков

$ twc image list
ID                                    TYPE   REGION  STATUS   SIZE
71bb1332-7251-4c13-9167-6e3c94320a9e  qcow2  nl-1    created  15G
9a01f088-3c07-48df-9068-14cdfa266bf6  qcow2  ru-1    created  7G
cc6dc8a0-1c21-48d4-a07d-349ecb1ff7a0  qcow2  ru-3    created  3G
$ twc image list --output json
{
    "images": [
        {
            "created_at": "2026-17-13T15:22:27",
            "deleted_at": null,
            "description": "",
            "disk_id": 20260765,
            "id": "71bb1332-7251-4c13-9167-6e3c94320a9e",
            "is_custom": false,
            "location": "nl-1",
            "name": "Сервер в Нидерландах 17.05.2026",
            "os": "ubuntu",
            "progress": 100,
            "size": 15326,
            "status": "created",
            "type": "qcow2",
            "virtual_size": 15360
        },
        // .....
    ],
    "meta": {
        "total": 4
    },
    "response_id": "239f8361-ee3a-4f01-9a30-dc45be4f418e"
}

Удалить старый ненужный образ (чтобы не платить за хранение)

$ twc image remove [IMAGE_UUID]

4. Команда twc ip

Справка по команде twc ip

$ twc ip --help
Usage: twc ip [OPTIONS] COMMAND [ARGS]...

  Manage floating IPs.

Options:
  -h, --help  Show this message and exit.

Commands:
  attach  Attach floating IP to service.
  create  Create new floating IP.
  detach  Detach floating IP from service.
  get     Get floating IP.
  list    List floating IPs. (aliases: ls)
  remove  Remove floating IPs. (aliases: rm)
  set     Set floating IP parameters.

Посмотреть список всех IP-адресов на аккаунте

$ twc ip list
IP                PTR            ZONE    ANTI_DDOS   USED_ON
111.111.111.111   xxx.twc1.net   ams-1   False       server:1111111
222.222.222.222   None           msk-1   False       server:2222222
123.123.123.123   None           ams-1   False       None

Заказать новый чистый плавающий IP-адрес

$ twc ip create --availability-zone spb-1
Чтобы привязать IP-адрес к серверу — они должны быть в одной зоне (msk-1, spb-1, spb-2, spb-3, ams-1, fra-1).

Привязать IP-адрес 123.123.123.123 к серверу

$ twc ip attach --server [SERVER_ID] 123.123.123.123 

Отвязать IP-адрес 123.123.123.123 от сервера

$ twc ip detach --server [SERVER_ID] 123.123.123.123

Задать PTR mail.example.org для IP-адреса 123.123.123.123

$ twc ip set --ptr mail.example.org 123.123.123.123

Образ диска и снапшот

В контексте Timeweb Cloud и большинства облачных провайдеров понятия «снапшот» (snapshot) и «образ» (image) очень близки, так как оба являются точными копиями диска. Однако между ними есть принципиальная разница в логике использования, управлении и стоимости.

1. Снапшот (снимок системы)

Снапшот — это «замороженный» снимок состояния конкретного сервера в определенный момент времени.

  • Привязка к железу. Снапшот жестко привязан к тому серверу, с которого он был сделан. Его главная цель — дать возможность быстро «откатиться» назад, если что-то пошло не так (например, после неудачного обновления конфигурации).
  • Скорость создания. Создается очень быстро, часто за счет инкрементного копирования (фиксируются только изменения с момента последнего снимка).
  • Восстановление. Восстановить снапшот можно, как правило, только на тот же самый сервер, затерев его текущее состояние.

2. Образ (кастомный образ диска)

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

  • Универсальность. Образ полностью отвязан от конкретного сервера. Из одного образа можно развернуть 5, 10 или 100 абсолютно одинаковых новых серверов. Более того, при разворачивании можно выбрать другую конфигурацию (например, сделать новый сервер мощнее исходного).
  • Портативность. Образы можно переносить между разными дата-центрами (локациями) внутри одного провайдера или скачивать к себе на ПК (если провайдер поддерживает экспорт).
  • Скорость создания. Создается дольше, так как система упаковывает весь диск целиком в единый независимый файл-шаблон.

Поиск: Bash • CLI • Linux • twc • Сервер • Cloud • Облако • Образ • TimeWeb • Снапшот

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.