Migracja z Heroku do AWS - czego się spodziewać i jak zaplanować

Jerzy Kopaczewski 30 maja 2026 9 min czytania
Contents
Heroku pozwoliło Ci szybko wejść na rynek. Model wdrożeń przez git push, zarządzany Postgres i zero narzutu infrastrukturalnego. To był dobry wybór gdy liczyło się dostarczanie funkcjonalności, a nie kontrola kosztów czy compliance. Ale w pewnym momencie kompromisy zaczynają działać przeciwko Tobie. Rosnące rachunki przy skalowaniu. Ograniczona kontrola nad siecią i bezpieczeństwem. Brak ścieżki do certyfikacji typu SOC 2 czy Cyber Essentials Plus. Limity wydajności których zarządzane dyno nie rozwiążą.

Wtedy zespoły zaczynają patrzeć w stronę AWS. Zrealizowaliśmy wiele migracji z Heroku do AWS dla klientów z fintechu, healthcare i SaaS. Ten post opisuje jak ten proces faktycznie wygląda, jakie decyzje będziesz podejmować i gdzie zespoły najczęściej się zatrzymują.

 

Dlaczego zespoły odchodzą z Heroku

Powody grupują się wokół kilku tematów. Koszt to najczęstszy wyzwalacz. Zasada którą słyszeliśmy wielokrotnie na branżowych meetupach: gdy rachunek za Heroku przekracza $10k/miesiąc, przepłacasz za to co dostajesz. Ale sam koszt nie jest jedynym powodem żeby migrować wcześniej.

Bezpieczeństwo i compliance to często prawdziwy forcing function. Model współdzielonej infrastruktury Heroku utrudnia wdrożenie izolacji sieciowej, prywatnych subnetów czy kontroli IAM jakich oczekują audytorzy. Jeśli musisz przejść SOC 2, ISO 27001 lub Cyber Essentials Plus, na Heroku napotkasz bariery które na AWS nie istnieją.

Trzeci powód to kontrola operacyjna. Brak konfiguracji VPC. Ograniczone logowanie. Brak natywnej integracji z narzędziami jak Datadog czy PagerDuty na poziomie infrastruktury. Brak możliwości uruchamiania zadań w tle wymagających więcej niż 512MB pamięci bez płacenia premium.

I wreszcie developer experience. Prostota Heroku to jego główny atut, ale staje się ograniczeniem gdy zespół potrzebuje środowisk preview powiązanych z pull requestami, automatycznego skanowania bezpieczeństwa w pipeline czy strategii wdrożeń wykraczających poza “push to main”. Na AWS dostajesz pełen zakres narzędzi QA i bezpieczeństwa na poziomie CI/CD: skanowanie SAST/DAST, inspekcja obrazów kontenerów, bramki policy-as-code i automatyczne testy wydajnościowe. To bogatsza warstwa automatyzacji której Heroku po prostu nie oferuje.

Jak usługi Heroku mapują się na AWS

Mapowanie nie jest jeden-do-jednego, ale tak wyglądają odpowiedniki głównych komponentów:

Diagram architektury migracji z Heroku do AWS pokazujący mapowanie usług
  • Heroku Dynos → Amazon ECS na Fargate (lub EKS jeśli potrzebujesz Kubernetes). Fargate to najbliższy odpowiednik: skonteneryzowane serverless compute bez zarządzania instancjami EC2.
  • Heroku Postgres → Amazon RDS for PostgreSQL. Zarządzany, automatyczne backupy, point-in-time recovery, Multi-AZ dla wysokiej dostępności.
  • Heroku Redis → Amazon ElastiCache for Redis. Ten sam model zarządzany, lepsze opcje skalowania.
  • Heroku Scheduler → Amazon EventBridge + taski ECS. Bardziej elastyczne planowanie z logowaniem i logiką ponawiania.
  • Heroku Config Vars → AWS Systems Manager Parameter Store lub Secrets Manager. Szyfrowane, wersjonowane, z kontrolą dostępu przez IAM.
  • Heroku Pipelines → GitHub Actions, GitLab CI lub AWS CodePipeline. Musisz to zbudować sam, ale zyskujesz pełną kontrolę nad procesem budowania i wdrażania.
  • Heroku Add-ons → Natywne usługi AWS lub samodzielnie zarządzane alternatywy. Większość add-onów (logowanie, monitoring, email) ma bezpośrednie odpowiedniki na AWS lub lepsze integracje z narzędziami zewnętrznymi.

Proces migracji

Każda migracja z Heroku do AWS którą zrealizowaliśmy przebiega według podobnych faz:

1. Audyt i projektowanie architektury. Mapujemy każdy zasób Heroku, add-on, zmienną środowiskową i zależność. Dokumentujemy przepływy danych i identyfikujemy komponenty stanowe i bezstanowe. Projektujemy docelową architekturę AWS zgodnie z Well-Architected Framework. Każda architektura migracyjna jest weryfikowana pod kątem bezpieczeństwa, niezawodności, wydajności, optymalizacji kosztów i doskonałości operacyjnej zanim zostanie provisionowany pierwszy zasób. Trwa to zazwyczaj 3-5 dni i obejmuje model TCO porównujący obecne wydatki na Heroku z prognozowanymi kosztami AWS. W tym miejscu rekomendujemy Ci decyzję go/no-go.
2. Infrastructure as Code. Budujemy całe środowisko AWS w Terragrunt. To nasz domyślny wybór dla środowisk multi-account, bo tak strukturyzujemy większość migracji. Każde środowisko dostaje własne konto AWS dla właściwej izolacji, separacji rozliczeń i granic bezpieczeństwa. Dla prostszych setupów na jednym koncie czysty Terraform wystarczy, ale multi-account to standard który rekomendujemy.
3. Konteneryzacja. Aplikacje Heroku muszą zostać skonteneryzowane jeśli jeszcze nie są. Oznacza to pisanie Dockerfile'ów, obsługę sekretów build-time vs runtime i upewnienie się że aplikacja startuje poprawnie w kontekście kontenera. Większość aplikacji Heroku jest dosyć prosta do konteneryzacji bo już stosują wzorzec 12-factor app.
4. Przebudowa CI/CD. Wdrożenie przez git push z Heroku zastępujemy właściwym pipeline'em. Zazwyczaj używamy GitHub Actions z federacją OIDC do AWS (bez długożyjących kluczy dostępowych). Pipeline buduje, testuje, pushuje do ECR i wdraża na ECS z zero-downtime rolling updates. Jednym z najczęstszych wymagań zespołów developerskich jest replikacja funkcjonalności Review Apps z Heroku. Budujemy w to miejsce dopasowane krótkotrwałe flow wdrożeniowe powiązane z cyklem życia PR. Otwierasz pull request i automatycznie powstaje live preview environment. Merge lub zamknięcie PR i środowisko się samo usuwa. Developer experience ma tu znaczenie. Nie chcesz zamienić prostoty Heroku na niedopracowany model dostarczania. Dbamy o to żeby nowy flow był ulepszeniem, nie kompromisem. To oznacza środowiska preview, szybkie pętle feedbacku i pełen zakres narzędzi CI/CD które AWS umożliwia: skanowanie SAST/DAST, sprawdzanie podatności kontenerów, bramki policy-as-code i automatyczne testy wydajnościowe wbudowane w każde wdrożenie.
5. Migracja danych. Migracja bazy danych to faza o najwyższym ryzyku. Dla aplikacji które mogą sobie pozwolić na okno serwisowe robimy prosty pg_dump/restore z zaplanowanym okresem niedostępności. To ułatwia migrację i pozwala uniknąć kosztów i złożoności ciągłej replikacji. Dla aplikacji które naprawdę nie mogą tolerować przestoju używamy AWS DMS do ciągłej replikacji z Heroku Postgres do RDS, a następnie wykonujemy finalne przełączenie baz danych. Właściwe podejście zależy od Twoich wymagań SLA, a nie od tego co wygląda imponująco w ofercie.
6. Przełączenie DNS i walidacja. Gdy aplikacja działa już na AWS i jest zwalidowana, przełączamy DNS. Utrzymujemy środowisko Heroku równolegle przez 1-2 tygodnie jako opcję rollbacku.
Jerzy Kopaczewski

Myślisz o migracji z Heroku?

Umów bezpłatną 30-minutową rozmowę. Omówimy Twój setup i przygotujemy wstępne porównanie kosztów.

Zmiana organizacyjna

To jest część którą większość technicznych przewodników pomija. Migracja z Heroku do AWS to nie tylko zmiana infrastruktury. To zmiana workflow dla całego zespołu developerskiego.

Na Heroku jeden deweloper może wdrażać, skalować i zarządzać wszystkim. Na AWS zyskujesz moc, ale też odpowiedzialność. Ktoś musi być właścicielem kodu infrastruktury. Ktoś musi recenzować zmiany w Terraform. Zespół musi rozumieć jak promowane są środowiska i jak zarządzane są sekrety.

Na wstępie ocenimy obecny workflow Twojego zespołu i zarekomendujemy minimalne wymagane zmiany organizacyjne potrzebne do efektywnej pracy na AWS. Czasem to oznacza przeszkolenie deweloperów z nowego flow wdrożeniowego. Czasem dodanie gotowych skryptów. Celem jest dopasowanie modelu operacyjnego do wielkości i dojrzałości zespołu, nie narzucanie procesów enterprise’owych 10-osobowemu startupowi.

Typowe błędy

Niedoszacowanie przebudowy CI/CD. Na Heroku wdrożenie to git push. Na AWS musisz zbudować i utrzymywać pipeline. Zespoły które nie zabudżetują na to czasu kończą z kruchymi ręcznymi wdrożeniami które niweczą sens migracji.

Ignorowanie sieci od początku. Heroku ukrywa warstwę sieciową. Na AWS musisz zaprojektować VPC, subnety, security groups i zdecydować o publicznym vs prywatnym networkingu. Pomyłka na tym etapie oznacza bolesny refactoring później.

Migracja wszystkiego naraz. Podejście fazowe (najpierw staging, potem dev, potem produkcja) wyłapuje problemy zanim dotkną użytkowników. Widzieliśmy zespoły próbujące migracji big-bang które spędzały tygodnie na debugowaniu problemów. Podejście fazowe wyłapuje je w godziny.

Nieprawidłowa konteneryzacja. Kopiowanie Procfile z Heroku do Dockerfile bez zrozumienia różnic prowadzi do kontenerów które działają lokalnie ale niekoniecznie na ECS. Health checki, graceful shutdown, obsługa sygnałów i routing logów wymagają uwagi.

Harmonogram i koszty

Typowa migracja z Heroku do AWS dla pojedynczej aplikacji z 3-5 serwisami trwa 4-8 tygodni. Bardziej złożone środowiska z wieloma aplikacjami, współdzielonymi bazami danych lub wymaganiami compliance mogą zająć 2-4 miesiące.

Koszt infrastruktury AWS po migracji jest zazwyczaj 40-60% niższy niż równoważny rachunek za Heroku. Zależy to od tego jak agresywnie dobierzesz rozmiar zasobów. Przed rozpoczęciem migracji zbudujemy Ci szczegółowy model kosztowy abyś znał oczekiwane koszty z góry. Sama migracja to jednorazowa inwestycja która zwraca się w ciągu 3-6 miesięcy wyłącznie przez obniżone koszty hostingu.

Warto wiedzieć: jako AWS Advanced Tier Partner mamy dostęp do programów finansowania AWS które mogą pokryć znaczną część kosztów migracji. W zależności od sytuacji i skali programy takie jak Proof of Concept (PoC), Migration Acceleration Program (MAP) czy Incremental Workload for Startups (IW) mogą pomóc pokryć 50-80% kosztu zaangażowania. To czy kwalifikujesz się do danego programu ocenimy w ramach wstępnej rozmowy scopingowej.

Kiedy zostać na Heroku

Nie każdy zespół powinien migrować. Jeśli masz mały zespół rozwijający jedną aplikację z niskim ruchem i bez wymagań compliance, prostota Heroku jest warta premium. Migracja ma sens gdy:

  • Miesięczne koszty Heroku przekraczają to co zapłaciłbyś na AWS za ten sam workload
  • Potrzebujesz izolacji sieciowej, prywatnych subnetów lub łączności VPN
  • Wymagania compliance (SOC 2, ISO 27001, Cyber Essentials Plus) wymagają kontroli infrastrukturalnych których Heroku nie zapewnia
  • Musisz skalować się poza to co model dyno Heroku wspiera efektywnie
  • Chcesz pełnej własności infrastruktury zdefiniowanej jako kod

Jak możemy pomóc

Zrealizowaliśmy migracje z Heroku do AWS dla firm fintechowych potrzebujących integracji PAM, platform healthcare wymagających zgodności z NHS i produktów SaaS wyrastających z modelu skalowania Heroku. Każda migracja jest dostarczana z infrastrukturą jako kodem, zautomatyzowanym CI/CD i udokumentowanymi runbookami. Docelowa architektura jest projektowana zgodnie z AWS Well-Architected Framework. Nowe środowisko spełnia najlepsze praktyki bezpieczeństwa, niezawodności, wydajności i kosztów od pierwszego dnia.

Zobacz nasze case study migracji z Heroku do AWS po szczegółowy przykład jak zmigrowaliśmy platformę fintechową z 3-4 godzinami przestoju i 40%+ redukcją kosztów.

Chcesz ocenić czy migracja ma sens dla Twojego setupu? Nasze usługi migracji do chmury zaczynają się od niezobowiązującej oceny Twojego obecnego środowiska Heroku.

AWS Heroku migracja do chmury ECS Fargate Terraform PaaS to IaaS
jerzy.webp
Jerzy Kopaczewski
Współzałożyciel i CTO

Spis treści
Przeczytaj również

Przeczytaj również:

Poprzedni post Następny post