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
Див. також¶
- Linux основи — базові команди
- SSH ключі — безпечний доступ
- Docker — контейнеризація застосунків
- Caddy — reverse proxy та HTTPS
Шлях: infrastructure/vps-cloud-basics.md