bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward

Як переїхати з Heroku Postgres на managed-PG на VPS

calendar_month May 27, 2026 schedule 7 хв. читання visibility 61 переглядів
person
Valebyte Team
Як переїхати з Heroku Postgres на managed-PG на VPS
Для міграції heroku postgres на VPS з managed-конфігурацією найефективніше використовувати зв'язку pg_dump та pg_restore для баз даних до 100 ГБ, або логічну реплікацію для мінімізації простою (downtime), що дозволяє знизити щомісячні витрати на інфраструктуру в 5-8 разів при порівнянній продуктивності NVMe-дисків та виділених ядер CPU.

Чому варто migrate heroku postgres на VPS саме зараз?

Heroku довгий час залишався еталоном зручності для розробників, проте жорсткі ліміти на кількість з'єднань, відсутність доступу до файлової системи та висока вартість додаткових ресурсів роблять heroku pg migration логічним кроком для проєкту, що росте. Перехід на власну інфраструктуру або використання VPS з автоматизованим управлінням СУБД дає повний контроль над конфігурацією postgresql.conf і дозволяє впроваджувати розширення, які недоступні в закритій екосистемі Heroku.

Економічна ефективність та продуктивність

Вартість Heroku Postgres на тарифах Standard та Premium починається від $50 та $200 на місяць відповідно. За ці гроші ви отримуєте обмежені ресурси. Для порівняння, сучасний VPS на базі процесорів із частотою 3.4+ ГГц та NVMe-накопичувачами забезпечує у 2-3 рази більше IOPS (операцій введення-виведення на секунду), що критично для високонавантажених баз даних. Детальний розбір міграції інфраструктури можна знайти у статті як переїхати з Heroku на VPS у 2026: покроковий гід.

Зняття обмежень Heroku

Heroku накладає ліміти не лише на обсяг даних, але й на кількість одночасних підключень. У managed-конфігурації на VPS ви можете самостійно налаштувати pgBouncer або Odyssey, що дозволить обробляти тисячі з'єднань без деградації продуктивності. Крім того, ви не обмежені у виборі версії PostgreSQL — ви можете використовувати bleeding-edge можливості Postgres 16 або 17, не чекаючи, поки Heroku оновить свої образи.

Вибір конфігурації: heroku pg migration та системні вимоги

Перед тим як почати postgres migration vps, необхідно правильно підібрати параметри сервера. База даних — це найбільш ресурсомісткий компонент системи. Помилка у виборі дискової підсистеми або обсягу оперативної пам'яті призведе до того, що запити, які на Heroku виконувалися за мілісекунди, почнуть "гальмувати".

Рекомендовані характеристики VPS

  • CPU: Мінімум 2 ядра для невеликих баз, 4-8 ядер для навантажених систем. PostgreSQL активно використовує багатопотоковість для фонових процесів (Background Writer, Checkpointer).
  • RAM: Обсяг пам'яті має бути достатнім для того, щоб shared_buffers вміщували "гарячі" дані (зазвичай 25% від загального обсягу RAM), плюс запас для операційної системи та кешу файлової системи.
  • Disk: Тільки NVMe. PostgreSQL чутливий до затримок запису WAL (Write Ahead Log). Швидкість лінійного запису має бути не нижчою за 500 МБ/с.
Параметр Heroku Standard 0 ($50/міс) VPS Managed-PG ($25/міс) Перевага VPS
RAM 4 GB 8-12 GB У 2-3 рази більше
CPU Shared (обмежено) 4 Dedicated vCPU Передбачуване навантаження
Disk 256 GB (Standard) 160 GB NVMe Низький latency (IOPS)
Connections 120 Unlimited (via pgBouncer) Масштабованість

При виборі сервера для баз даних з інтенсивним читанням/записом варто враховувати архітектуру процесора. Якщо ви плануєте використовувати базу для аналітики або ML-завдань, ознайомтеся з матеріалом Bare-metal vs VPS для ML inference на CPU, щоб зрозуміти різницю в продуктивності обчислювальних ядер.

Шукаєте надійний сервер для ваших проєктів?

VPS від $10/міс та виділені сервери від $9/міс з NVMe, DDoS-захистом та підтримкою 24/7.

Дивитися пропозиції →

Основні методи postgres migration vps: pg_dump vs pg_basebackup

Існує три основні способи перенести дані. Вибір залежить від розміру бази та допустимого часу простою додатка.

Метод 1: pg_dump та pg_restore (Логічний бекап)

Це стандартний і найпростіший спосіб. Він створює SQL-скрипт або архів з даними, який потім розгортається на новому сервері. Плюси: Простота, можливість зміни версії Postgres (наприклад, з 13 на 16). Мінуси: Вимагає зупинки запису в базу на час експорту, щоб дані були консистентними.

Метод 2: Логічна реплікація

Дозволяє передавати зміни з Heroku в реальному часі. Ви налаштовуєте VPS як передплатника (Subscriber), а Heroku як видавця (Publisher). Плюси: Мінімальний downtime (кілька секунд на перемикання DNS). Мінуси: Вимагає налаштування прав доступу, які на Heroku можуть бути обмежені на молодших тарифах.

Метод 3: pg_basebackup та фізична реплікація

Цей метод рідко застосовний для Heroku, оскільки сервіс не дає прямого доступу до файлової системи та протоколу потокової реплікації на рівні суперкористувача. Тому в контексті managed pg vps ми фокусуємося на логічних методах перенесення.

rocket_launch Швидкий вибір

Need a dedicated server?

Compare prices from top providers. Configure and order in minutes.

Виділені сервери arrow_forward

Покрокова інструкція: як реалізувати managed pg vps через pg_dump

Для успішної міграції вам знадобиться встановлений heroku cli на локальній машині або проміжному сервері та доступ до нового VPS через SSH.

Крок 1: Підготовка цільового сервера

Встановіть PostgreSQL потрібної версії на ваш VPS. Ми рекомендуємо використовувати офіційні репозиторії PGDG (PostgreSQL Global Development Group) для отримання останніх патчів безпеки.

sudo apt update
sudo apt install -y postgresql-16 postgresql-client-16

Відредагуйте /etc/postgresql/16/main/postgresql.conf, щоб дозволити зовнішні підключення, якщо це необхідно, і налаштувати ліміти пам'яті:

listen_addresses = '*'
shared_buffers = 2GB # Для сервера з 8GB RAM
work_mem = 64MB
maintenance_work_mem = 512MB

Крок 2: Створення дампу з Heroku

Використовуйте прапор -Fc (custom format), який дозволяє виконувати відновлення у кілька потоків, що значно прискорює heroku pg migration.

# Отримуємо URL бази даних
heroku config:get DATABASE_URL -a your-app-name

# Створюємо дамп
pg_dump -Fc --no-acl --no-owner -d "postgres://user:pass@host:port/dbname" > heroku_db.dump

Крок 3: Відновлення даних на VPS

Перенесіть файл дампу на VPS і виконайте відновлення. Використання прапора -j (кількість ядер) прискорить процес створення індексів.

# Створюємо базу на новому сервері
sudo -u postgres createdb my_new_db

# Відновлюємо дані
pg_restore -v -d my_new_db -j 4 heroku_db.dump

Якщо ви раніше використовували інші хмарні платформи, процес буде схожим. Наприклад, вивчіть як переїхати з Render.com на VPS у 2026, щоб порівняти підходи до міграції баз даних та додатків.

Налаштування відмовостійкості за допомогою pgBackRest

На Heroku бекапи працюють "з коробки". При переїзді на managed pg vps відповідальність за збереження даних лягає на вас. Інструмент pgBackRest є золотим стандартом для управління резервним копіюванням PostgreSQL.

Переваги pgBackRest

  • Паралельне копіювання та стиснення даних.
  • Інкрементальні та диференціальні бекапи (економлять місце).
  • Підтримка S3-сумісних сховищ для off-site бекапів.
  • Point-in-Time Recovery (PITR) — можливість відкотити базу на будь-яку секунду в минулому.

Приклад конфігурації pgBackRest

Файл /etc/pgbackrest.conf на вашому VPS має виглядати приблизно так:

[main]
pg1-path=/var/lib/postgresql/16/main

[global]
repo1-path=/var/lib/pgbackrest
repo1-retention-full=2
process-max=4
log-level-file=info

[global:archive-push]
compress-level=3

Для налаштування архівації WAL-логів додайте в postgresql.conf:

archive_mode = on
archive_command = 'pgbackrest --stanza=main archive-push %p'

Оптимізація продуктивності після міграції

Після того як migrate heroku postgres завершено, важливо переконатися, що база працює оптимально. Heroku автоматично налаштовує багато параметрів, на VPS вам доведеться зробити це вручну.

Налаштування індексів та статистики

Одразу після імпорту даних виконайте команду ANALYZE. Це оновить статистику планувальника запитів, без якої Postgres може обирати неефективні плани виконання (наприклад, Sequential Scan замість Index Scan).

sudo -u postgres psql -d my_new_db -c "ANALYZE VERBOSE;"

Моніторинг та логування

Встановіть розширення pg_stat_statements, щоб відстежувати найповільніші запити. Це "must-have" для будь-якого managed pg vps. Додайте в конфігурацію:

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all

Якщо ваш додаток використовує архітектуру Serverless або Edge, як у випадку з Cloudflare, міграція бази на VPS може вимагати налаштування проксіювання. Перегляньте посібник як переїхати з Cloudflare Workers на VPS для розуміння мережевих нюансів.

rocket_launch Швидкий вибір

Need a dedicated server?

Compare prices from top providers. Configure and order in minutes.

Виділені сервери arrow_forward

Порівняння вартості та характеристик

Розглянемо реальні цифри. Heroku стягує плату за зручність, але при зростанні бази даних (понад 50 ГБ) ціна стає непропорційною наданим ресурсам.

Характеристика Heroku Postgres Premium-2 Valebyte VPS High-Perf Локальний сервер (Bare Metal)
Щомісячний платіж $350 $45 $120
Оперативна пам'ять 8 GB 16 GB 64 GB
Тип диска EBS (Network storage) NVMe (Local) NVMe RAID-1
Downtime при міграції 0 (всередині Heroku) ~5-10 хв (pg_dump) ~5-10 хв

Використання VPS дозволяє не лише економити, а й масштабуватися вертикально в один клік. На відміну від Heroku, де перехід на новий тариф може зайняти значний час через необхідність копіювання даних між інстансами, на сучасному хмарному хостингу розширення диска або додавання RAM відбувається практично миттєво.

Безпека та мережевий доступ

Однією з переваг Heroku є автоматична ізоляція бази. При налаштуванні managed pg vps вам необхідно самостійно подбати про безпеку.

  1. Firewall (UFW/iptables): Закрийте порт 5432 для всіх IP, крім вашого сервера додатків.
  2. SSL/TLS: Обов'язково налаштуйте сертифікати для шифрування трафіку між додатком і базою.
  3. Рольова модель: Не використовуйте користувача postgres для підключення з додатка. Створіть окрему роль з обмеженими правами.
  4. Fail2Ban: Встановіть захист від брутфорсу на SSH і, за необхідності, на моніторинг портів БД.
# Приклад створення користувача з обмеженими правами
CREATE USER app_user WITH PASSWORD 'strong_password';
GRANT CONNECT ON DATABASE my_new_db TO app_user;
GRANT USAGE ON SCHEMA public TO app_user;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user;

Висновки

Перехід з Heroku Postgres на VPS — це найефективніший спосіб масштабування бази даних при одночасному зниженні витрат на 70-80%. Для стабільної роботи рекомендуємо використовувати зв'язку PostgreSQL 16+, NVMe-диски та інструмент pgBackRest для автоматизації резервного копіювання.

Готові вибрати сервер?

VPS та виділені сервери у 72+ країнах з миттєвою активацією та повним root-доступом.

Почати зараз →
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.