Migracje ze wschodu na zachód nie są niczym nowym. Ja na ten przykład wyemigrowałem z Polski do Irlandii prawie 20 lat temu.
Tym razem jednak opowiem szybciutko o (kolejnej już) migracji blogu. Całkiem niedawno - dosłownie parę godzin temu - udało mi się przenieść blog na nowy VPS.
Poprzedni serwer siedział sobie na Litwie, a teraz bloga czytasz z Niemiec.
Czemu tak?
Głównie ze względu na koszt. Za mniej niż jedną trzecią kwoty, Niemcy zaoferowali mi porównywalny serwer do tego od Litwinów. "Porównywalny" to rzecz jasna nie znaczy "identyczny" - tak naprawdę ten niemiecki jest odrobinę słabszy. Rzecz jednak w tym, że wystarcza - i to z zapasem.
Litwini dali mi trzyrdzeniową maszynę z 8 GB pamięci i 80 GB przestrzeni dyskowej, a także symetryczne łącze po sto megabitów w każdą stronę, bez limitów.
Niemcy dali mi dwurdzeniowe CPU z 4 GB RAM i 40 GB miejsca na dysku, z dużo szybszym połączeniem asymetrycznym (trzy gigabity w jedną stronę, półtora gigabita w drugą), z limitem wysłanych danych 20 TB miesięcznie (bez limitu na dane pobierane).
Blog zajmuje mi obecnie jakieś 15 GB i będzie rósł dużo wolniej, niż dotychczas, bo jakiś czas temu zrezygnowałem z serii ze śmiesznymi obrazkami, która zjadała najwięcej miejsca.
Sądząc po tym, co mi mówi Google, odwiedza mnie mniej niż 300 osób dziennie, co oznacza średnio jedne odwiedziny co 4-5 minut. Przy takim obciążeniu ten nowy serwer to i tak jest overkill.
Cenowo to wygląda tak, że Litwini życzą sobie €176 za rok (z 25% zniżki jeżeli opłacę za dwa lata z góry), a Niemcy €4 miesięcznie. Czyli u Niemca nie tylko płacę ponad trzy razy mniej, ale też mogę od nich odejść w ciągu miesiąca, czyli lepsza elastyczność.
Sama przeprowadzka poszła nad wyraz sprawnie. Kluczowe jest skonfigurowanie bezhasłowego logowania między serwerami za pomocą kluczy (ssh
/ scp
itd). Potem trzeba zrobić kilka razy scp
:
- Pliki konfiguracyjne Apacza
- Pliki konfiguracyjne Restic i RClone (do backupów)
- Skrypty do robienia backupów
Ręcznie trzeba:
- Zainstalować wszystkie brakujące pakiety (Apacz, php, restic, rclone, LetsEncrypt, mysql)
- Upewnić się, że folder www jest własnością Apacza (czyli
www-data:www-data
) - Przywrócić kopię zapasową z Restic (czyli pliki konfiguracyjne Apacza, bazę danych mysql oraz zawartość folderu web całego blogu, w tym również instalacji WordPressa, dzięki czemu nie trzeba go instalować od zera)
- Zmienić rekord A w strefie DNS
- Odświeżyć certyfikat LetsEncrypt
- Poustawiać Restic na nowym serwerze, żeby kopie zapasowe robiły się automatycznie.
- Zablokować na publicznym interfejsie sieciowym wszystko oprócz 80 i 443. Idealnie byłoby zamknąć również 80, ale już bez przesady.
I to w zasadzie tyle.
Każda kolejna migracja jest odrobinę mniej stresująca od poprzedniej. Tym razem miałem dodatkowo kopie zapasowe Restic, co znacznie przyspieszyło cały proces. Jak mi się będzie mocno nudzić, może nawet napiszę sobie kiedyś skrypt, który przerzuca blog z jednego serwera na drugi.
Swoją drogą, ciekawe czy da się zautomatyzować takie rzeczy jak ssh-copy-id
albo edytowanie rekordów DNS.
Albo zacznę oferować usługę szybkiej migracji blogu różnym lajkonikom.
Czy coś.
Ja tam nadal preferuje share hosting pod bloga. Choć szczerze powiedziawszy, wykorzystują nie raz VPS do zabawy lub czasochłonnych zadań – np. transfer TB danych pomiędzy chmurami :/
Zdradzisz, do którego Niemca poszedłeś? Cztery eurasy za miesiąc to bardzo dobra cena za VPS, zważywszy, że dostałeś aż 40 GB przestrzeni dyskowej.
Mam wielką ochotę pobawić się VPS-em i postawić coś od zera… ale na razie nie wymyśliłem, co by to mogło być. Statyczny blog śmiga na serwerze dzielonym, a pomysły typu „twój własny Spotify!” albo „twój własny serwis pogodowy!” zupełnie do mnie nie trafiają.
Hetzner
> (…) pomysły typu „twój własny…”
Do tego idealnie jest mieć nieużywanego kompa w sieci domowej, na którym stawiasz Proxmox (czy nawet zwykłe Ubuntu z LXC), chowasz to w VPN-ie typu Tailscale i możesz sobie nastawiać swoich własnych serwerów od groma i ciut.
Zaraz, zaraz. Chcesz powiedzieć, że tym sposobem będę miał dostęp do domowego serwera zewsząd? Bez mitycznego „stałego IP”, które u ISP-ów (przynajmniej norweskich) kosztuje krocie?
Dokładnie tak. Używam Tailscale od jakiegoś czasu (tygodnie, chyba jeszcze nie miesiące, ale już prawie) i póki co, odpukać, jestem zachwycony. Działa zza NAT-u, zza podwójnego NAT-u, z dynamicznym ip, zza firewalli, we własnej, prywatnej sieci, z ładnie ponazywanymi maszynami. Windowsy, linuksy, wsioryba. Po prostu działa.
Do zabawy (i nie tylko) polecam rozejrzeć się za always free tier np. https://zakr.es/blog/2022/07/chmura-wyroczni/ Co prawda ARMów już nie mogę uruchomić (nic nie mówiący komunikat, może im się zasoby skończyły?), ale może z x86 jest lepiej. 1 core „tylko” (starcza), ale dysku dużo (do 200 GB).
W GCP też dają, 10 GB dysku i płatny transfer, ale to śrubki rzędu 1-2 zł m-c. Do zabawy bdb.
Ale we free tierach jest chyba zwykle taki myk, że musisz zostawić im numer swojej karty, a oni ściągną pieniądze, jeżeli przekroczysz parametry. Bałbym się przekroczyć parametry podczas wstępnego eksperymentowania z usługą. Bo nuże coś źle zabezpieczę, pojawią się script kiddies i złośliwie przeładują mi transfer…?
To zależy jaki zasób i gdzie. Godzin compute czy dysku nie przekroczysz w ten sposób. Transfer – trzeba doczytać, ale nawet jeśli jest płatny, to są to orzeszki. No i można się schować za Cloudflare. No i można ustawić warningi na procent założonego budżetu. Automatyzację też się da zrobić, która wyłączy usługę, ale nie jest to proste/intuicyjne. Tyle jeśli chodzi o GCP.
W Oracle dają 10 TB wychodzącego. Można load balancer, limitowane pasmo itd. Interfejsy są/były limitowane do 50 Mbps, co też ogranicza możliwość nadużyć.
Ale tak, co do zasady jest to dodatkowa zabawa, a takie ryzyko istnieje.
A co z przeniesieniem bazy danych? Skoro nic o tym nie piszesz, to czyżbyś używał sqlite?
Słuszna uwaga! Bazę danych mam w backupie Restic, podobnie jak całą resztę. Po prostu zapomniałem ująć to we wpisie.