Налаштування Selectel Cloud Platform (VPS/VDS)
Типова проблема: ви замовили VPS у Selectel, але через консоль не вистачає гнучкості — хочеться керувати інфраструктурою як кодом, повторювано та версіонуючи. Або швидкодія дисків нижча за очікувану, а міграція на локальний NVMe потребує ручного втручання. При цьому ручне керування через веб-інтерфейс OpenStack Horizon загрожує помилками: випадково відкритий порт SSH або неправильно налаштована security group можуть призвести до витоку даних. Щоб цього уникнути, ми застосовуємо GitOps-підхід: всі зміни проходять через code review та автоматичне тестування. Це скорочує час на налагодження та знижує ризики. В результаті ви отримуєте надійну інфраструктуру з автоматичними бекапами та моніторингом, а економія на операційних витратах може досягати 40% порівняно з ручним керуванням.
Selectel працює на базі OpenStack — Horizon, Nova, Neutron. Це означає, що керувати можна через офіційний Terraform-провайдер або безпосередньо через OpenStack CLI. Ми використовуємо обидва підходи залежно від завдання.
Ми більше 5 років працюємо з OpenStack-інфраструктурою та виконали 50+ проектів на Selectel. Це дозволило напрацювати best practices для типових конфігурацій: від highload-сайтів до розподілених баз даних.
Чому Selectel варто розглядати для продакшену?
Selectel надає російську інфраструктуру з сертифікатами відповідності, що важливо для компаній з вимогами до локалізації даних. При правильній конфігурації мережевого стеку (Neutron, security groups, floating IP) можна отримати гнучкість, порівнянну з AWS або GCP. Однак є нюанс: диски на Ceph дають надійність, але latency вищий, ніж у локальних NVMe. Для PostgreSQL або Redis критично обирати флейвори з локальним SSD — різниця в IOPS досягає 10-кратної.
Як автоматизувати розгортання VPS за допомогою GitOps?
Ми застосовуємо GitOps-підхід: всі конфіги в Git, зміни через Merge Request. Terraform-стек ізольований в окремому репозиторії, Ansible-ролі — в іншому. Після apply перевіряємо стан через terraform state list та інтегруємо з GitLab CI.
Створення серверів через Terraform
Мінімальний робочий приклад — сервер Ubuntu 22.04 з floating IP:
data "openstack_images_image_v2" "ubuntu" {
name = "Ubuntu 22.04 LTS 64-bit"
most_recent = true
}
data "openstack_compute_flavor_v2" "small" {
name = "1C-2GB"
}
resource "openstack_compute_instance_v2" "app" {
name = "app-server-01"
image_id = data.openstack_images_image_v2.ubuntu.id
flavor_id = data.openstack_compute_flavor_v2.small.id
key_pair = openstack_compute_keypair_v2.deploy.name
availability_zone = "ru-1a"
security_groups = [openstack_networking_secgroup_v2.app.name]
network {
uuid = openstack_networking_network_v2.private.id
}
block_device {
uuid = data.openstack_images_image_v2.ubuntu.id
source_type = "image"
destination_type = "volume"
volume_size = 20
delete_on_termination = true
}
}
resource "openstack_networking_floatingip_v2" "app" {
pool = "external-network"
}
resource "openstack_compute_floatingip_associate_v2" "app" {
floating_ip = openstack_networking_floatingip_v2.app.address
instance_id = openstack_compute_instance_v2.app.id
}Після terraform apply сервер готов. Cloud-init виконує первинне налаштування — пакети, SSH-ключі, hostname.
Як вибрати тип диска для VPS на Selectel?
Порівняння характеристик Ceph та локальних NVMe:
| Параметр | Ceph-сховище | Локальний NVMe/SSD |
|---|---|---|
| Надійність | Висока (реплікація) | Середня (без репліки) |
| Latency випадкового чит. | ~5-10 мс | ~0.1-0.5 мс |
| IOPS | ~1000-5000 | ~50000-100000 |
| Ціна (умовно) | Низька | Вища в 2-3 рази |
| Рекомендація | Файлові сервери, бекапи | БД, Redis, кеші |
Локальні NVMe диски забезпечують у 10 разів меншу латентність порівняно з Ceph, що критично для PostgreSQL. Для highload-проекту ми налаштували кластер з 5 серверів: 2 для бекенду, 2 для БД на NVMe, 1 для кешу. Використали Terraform для розгортання мережі, security groups та floating IP, а Ansible для встановлення Nginx, PostgreSQL, Redis. Моніторинг через Prometheus з алертами в Telegram.
Процес роботи: від аудиту до деплою
- Аудит поточної інфраструктури — оцінка навантаження, вимог до I/O, мережі, безпеки.
- Проектування — вибір флейворів, підмереж, security groups, планування IP.
- Реалізація — GitOps-стек (Terraform + Ansible), налаштування моніторингу (Prometheus, Grafana, Loki).
- Тестування — перевірка відмовостійкості, навантажувальне тестування (wrk, locust).
- Деплой — перенесення даних, DNS-записи, документація.
Деталізація: у кожному проекті ми фіксуємо точну конфігурацію, версії образів, схеми мереж — усе це лягає в документацію.
Що входить у роботу
- Інфраструктура як код — повна Terraform-конфігурація (сервери, мережі, security groups, floating IP, DNS).
- Ansible-provisioning — встановлення ПЗ, налаштування SSH, firewall, моніторингових агентів.
- Документація — опис стеку, Runbook для інцидентів, список доступів.
- Навчання — демонстрація керування через консоль та CLI.
- Підтримка — тиждень післядеплойного моніторингу, виправлення зауважень.
Терміни орієнтовно
- Один сервер з базовою конфігурацією — від 2 годин.
- Кластер з 3+ серверів з мережею, моніторингом, Ansible — від 1 дня.
- Повне розгортання продакшен-середовища з CI/CD — від 3 днів.
Вартість розраховується індивідуально — оцінимо проект після брифу. Отримайте консультацію: розкажіть про ваше завдання, і ми запропонуємо оптимальне рішення.
Типові помилки при налаштуванні VPS на Selectel
- Використання Ceph для високонавантажених БД — забувають про latency, отримують гальма.
- Публічні security groups — відкривають SSH на 0.0.0.0/0, хоча можна обмежити по IP.
- Відсутність бекапів — snapshots не налаштовані, при збої втрата даних.
- Плутанина з мережами — не створюють приватну мережу, використовують публічну для всього.
Ми гарантуємо, що після налаштування інфраструктура відповідатиме best practices: закриті порти, автоматичні бекапи, моніторинг з алертингом. Щоб отримати консультацію з налаштування саме вашого проекту, зв'яжіться з нами. Ми оцінимо вимоги та запропонуємо оптимальне рішення. Замовте пілотний проект — ми налаштуємо один сервер і покажемо результат.
Офіційна документація Selectel по OpenStack: docs.selectel.ru







