VPS та хмарні сервіси

VPS (Virtual Private Server) — віртуальний сервер, який ви орендуєте у хостинг-провайдера. Ви отримуєте повний контроль над сервером, але без турбот про фізичне обладнання.

Як працює VPS?

┌─────────────────────────────────────────────────────────────────┐
│                 ДАТА-ЦЕНТР ПРОВАЙДЕРА                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   ┌─────────────────────────────────────────────────────────┐  │
│   │              Фізичний сервер (host)                     │  │
│   │  CPU: 64 cores    RAM: 512 GB    SSD: 8 TB             │  │
│   └─────────────────────────────────────────────────────────┘  │
│                          │                                      │
│                          │ Гіпервізор                          │
│                          │                                      │
│         ┌────────────────┼────────────────┐                    │
│         │                │                │                     │
│         ▼                ▼                ▼                     │
│   ┌───────────┐   ┌───────────┐   ┌───────────┐               │
│   │  VPS #1   │   │  VPS #2   │   │  VPS #3   │               │
│   │  (Ваш!)   │   │ (Клієнт)  │   │ (Клієнт)  │               │
│   │           │   │           │   │           │               │
│   │ 2 CPU     │   │ 4 CPU     │   │ 8 CPU     │               │
│   │ 4 GB RAM  │   │ 8 GB RAM  │   │ 32 GB RAM │               │
│   │ 80 GB SSD │   │ 160 GB SSD│   │ 500 GB SSD│               │
│   └───────────┘   └───────────┘   └───────────┘               │
│         │                                                       │
│         │ Публічний IP                                         │
│         ▼                                                       │
│   198.51.100.42                                                 │
│         │                                                       │
└─────────│───────────────────────────────────────────────────────┘
          │
          ▼
      Інтернет → Ви підключаєтесь через SSH

Популярні провайдери

Європа (рекомендовано для України)

Провайдер Мін. ціна Переваги Недоліки
Hetzner €4/міс Найкраще ціна/якість, ДЦ в Європі Складніший інтерфейс
Contabo €5/міс Дуже дешево, багато ресурсів Overselling, повільна підтримка
OVH €6/міс ДЦ у Франції, стабільні Складний білінг
Netcup €3/міс Дешево, Німеччина Тільки німецька підтримка

Глобальні

Провайдер Мін. ціна Переваги Недоліки
DigitalOcean $6/міс Простий інтерфейс, документація Дорожче за європейських
Vultr $6/міс Багато локацій Менше документації
Linode $5/міс Стабільні, хороша підтримка Менше фіч

Великі хмари

Провайдер Мін. ціна Переваги Недоліки
AWS ~$8/міс Всі можливі сервіси Складний, дорогий
GCP ~$7/міс $300 кредит на старт Складний білінг
Azure ~$8/міс Інтеграція з Microsoft Дуже складний

Рекомендація для початку: Hetzner Cloud або DigitalOcean.

Що таке "хмара"?

"Хмара" (cloud) — це коли ви не купуєте/орендуєте конкретний сервер, а платите за ресурси, які використовуєте.

IaaS vs PaaS vs SaaS

┌─────────────────────────────────────────────────────────────────┐
│                    РІВНІ ХМАРНИХ СЕРВІСІВ                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   ┌──────────────────┬──────────────────┬──────────────────┐   │
│   │       IaaS       │       PaaS       │       SaaS       │   │
│   │ Infrastructure   │     Platform     │     Software     │   │
│   │   as a Service   │   as a Service   │   as a Service   │   │
│   ├──────────────────┼──────────────────┼──────────────────┤   │
│   │                  │                  │                  │   │
│   │ Ви керуєте:      │ Ви керуєте:      │ Ви керуєте:      │   │
│   │ ▪ Applications   │ ▪ Applications   │ ▪ (нічим)        │   │
│   │ ▪ Data           │ ▪ Data           │                  │   │
│   │ ▪ Runtime        │                  │                  │   │
│   │ ▪ Middleware     │                  │                  │   │
│   │ ▪ OS             │                  │                  │   │
│   │                  │                  │                  │   │
│   ├──────────────────┼──────────────────┼──────────────────┤   │
│   │                  │                  │                  │   │
│   │ Провайдер керує: │ Провайдер керує: │ Провайдер керує: │   │
│   │ ▪ Virtualization │ ▪ Runtime        │ ▪ Все            │   │
│   │ ▪ Servers        │ ▪ Middleware     │                  │   │
│   │ ▪ Storage        │ ▪ OS             │                  │   │
│   │ ▪ Networking     │ ▪ Virtualization │                  │   │
│   │                  │ ▪ Servers        │                  │   │
│   │                  │ ▪ Storage        │                  │   │
│   │                  │ ▪ Networking     │                  │   │
│   │                  │                  │                  │   │
│   ├──────────────────┼──────────────────┼──────────────────┤   │
│   │ Приклади:        │ Приклади:        │ Приклади:        │   │
│   │ ▪ AWS EC2        │ ▪ Heroku         │ ▪ Gmail          │   │
│   │ ▪ Hetzner Cloud  │ ▪ Vercel         │ ▪ Slack          │   │
│   │ ▪ DigitalOcean   │ ▪ Railway        │ ▪ Notion         │   │
│   │ ▪ GCP Compute    │ ▪ Render         │ ▪ GitHub         │   │
│   │                  │ ▪ Fly.io         │                  │   │
│   └──────────────────┴──────────────────┴──────────────────┘   │
│                                                                 │
│   VPS = IaaS. Ви отримуєте віртуальну машину і все             │
│   налаштовуєте самі.                                           │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Як обрати VPS?

Ресурси

┌────────────────────────────────────────────────────────────────┐
│                    ТИПОВІ КОНФІГУРАЦІЇ                         │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│  Мінімальний сервер (статичний сайт, бот):                    │
│  ├── CPU: 1 vCPU                                              │
│  ├── RAM: 1-2 GB                                              │
│  ├── SSD: 20 GB                                               │
│  └── Ціна: €4-6/міс                                           │
│                                                                │
│  Середній сервер (веб-застосунок, API):                       │
│  ├── CPU: 2 vCPU                                              │
│  ├── RAM: 4 GB                                                │
│  ├── SSD: 80 GB                                               │
│  └── Ціна: €8-15/міс                                          │
│                                                                │
│  Потужний сервер (база даних, важкі задачі):                  │
│  ├── CPU: 4+ vCPU                                             │
│  ├── RAM: 8-16 GB                                             │
│  ├── SSD: 160+ GB                                             │
│  └── Ціна: €20-40/міс                                         │
│                                                                │
└────────────────────────────────────────────────────────────────┘

Що важливо?

CPU
- Для веб-застосунків 1-2 vCPU достатньо
- Для компіляції, ML — більше cores

RAM
- 1 GB — мінімум для Linux
- 2 GB — комфортно для простих задач
- 4 GB — веб-застосунок + база даних
- 8+ GB — важкі застосунки

Storage
- SSD обов'язково (не HDD!)
- 20-40 GB для базового сервера
- Враховуйте логи, бекапи, Docker образи

Bandwidth (трафік)
- Більшість провайдерів дають 1-20 TB/міс
- Для звичайних сайтів — достатньо
- Для відео/файлів — може бути мало

Локація
- Ближче до користувачів = менша затримка
- Для України: Німеччина, Фінляндія, Нідерланди

Перші кроки після створення VPS

1. Підключення через SSH

# Базове підключення (логін root, пароль з email)
ssh root@198.51.100.42

# Або з ключем (якщо вказали при створенні)
ssh -i ~/.ssh/mykey root@198.51.100.42

2. Оновлення системи

# Ubuntu/Debian
apt update && apt upgrade -y

# Перезавантаження якщо оновилось ядро
reboot

3. Створення користувача (не працювати під root!)

# Створити користувача
adduser deploy

# Додати до sudo групи
usermod -aG sudo deploy

# Скопіювати SSH ключі
rsync --archive --chown=deploy:deploy ~/.ssh /home/deploy

# Перевірити вхід
ssh deploy@198.51.100.42

4. Налаштування SSH

# Редагувати конфіг
sudo nano /etc/ssh/sshd_config

# Зміни:
PermitRootLogin no              # Заборонити root логін
PasswordAuthentication no       # Тільки ключі
PubkeyAuthentication yes

# Перезапустити SSH
sudo systemctl restart sshd

5. Файрвол (UFW)

# Встановити UFW
sudo apt install ufw

# Дозволити SSH (ВАЖЛИВО - зробити до ввімкнення!)
sudo ufw allow ssh
# або конкретний порт: sudo ufw allow 22/tcp

# Дозволити HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Увімкнути файрвол
sudo ufw enable

# Перевірити статус
sudo ufw status

6. Fail2ban (захист від брутфорсу)

# Встановити
sudo apt install fail2ban

# Конфігурація
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

# Увімкнути
sudo systemctl enable --now fail2ban

# Перевірити забанених
sudo fail2ban-client status sshd

7. Автооновлення безпеки

# Ubuntu
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
# Вибрати "Yes"

Чеклист безпеки

 Не працювати під root SSH тільки по ключах
□ Firewall налаштований
□ Fail2ban активний
□ Автооновлення безпеки
□ Регулярні бекапи
□ Моніторинг (хоча б uptime)

Типові помилки

Заблокували себе на SSH

Проблема: Змінили SSH конфіг і не можете зайти

Рішення:
1. Console/VNC доступ через панель провайдера
2. Або перевстановити сервер (якщо немає важливих даних)

Профілактика:
- Завжди тримайте другу SSH сесію відкритою при зміні конфігу
- Тестуйте конфіг: sshd -t

Закінчився диск

# Знайти що займає місце
du -h --max-depth=1 /

# Зазвичай винуватці:
/var/log/          # Логи
/var/lib/docker/   # Docker образи
/tmp/              # Тимчасові файли

# Очистити
sudo journalctl --vacuum-time=3d  # Системні логи
docker system prune -a            # Docker

Сервер "завис"

# Перевірити ресурси
htop          # CPU/RAM
df -h         # Диск
dmesg | tail  # Системні повідомлення

# Часто причина: OOM (Out Of Memory)
# Рішення: збільшити RAM або оптимізувати застосунок

Корисні інструменти

SSH config для зручності

# ~/.ssh/config
Host myserver
    HostName 198.51.100.42
    User deploy
    IdentityFile ~/.ssh/mykey

# Тепер можна просто:
ssh myserver

Моніторинг

# Простий моніторинг
htop              # Інтерактивний top
iotop             # Дисковий I/O
nethogs           # Мережевий трафік по процесах

# Зовнішній моніторинг (uptime)
# - UptimeRobot (безкоштовно)
# - Healthchecks.io (для cron jobs)

Бекапи

# Простий бекап на інший сервер
rsync -avz /important/data/ backup-server:/backups/

# Або через restic (рекомендовано)
restic -r sftp:backup-server:/backups init
restic -r sftp:backup-server:/backups backup /important/data

Див. також

Шлях: infrastructure/vps-cloud-basics.md

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications