Kopie zapasowe na forum - informacje zza kurtyny

Domyślam się, że osób, które to interesuje jest jakieś może pięć, ale postanowiłem raz na jakiś czas dać trochę informacji zza kulis naszego forum. Jest przy nim trochę pracy, wymaga to wszystko trochę umięjętności i wiedzy, a ja mogę się nią trochę podzielić. Wtedy, jeśli ktoś będzie chciał zrobić własne forum, to będzie tę wiedzę mieć.

Dziś chciałbym powiedzieć parę słów o kopiach zapasowych. Nasze forum jest oczywiście codziennie backupowane, więc w razie wybuchu - jestem w stanie w ciągu parunastu minut przywrócić stan sprzed przynajmniej 24h.

Ale zanim zaczniemy, parę zasad:

  • kopie zapasowe powinny być robione… w innym miejscu niż stoi główna usługa (co komu po kopii na serwerze, który będzie mieć awarię tak samo jak forum?),
  • two is one, one is none - dobrze robić kopie zapasowe i kopie zapasowe - jeśli jedna z kopii zapasowych będzie mieć awarię, to zawsze jest druga
  • kopie bezpieczeństwa są bezużyteczne jeśli nie da się ich przywrócić, to wydaje się zabawne, ale więcej zaraz.

Nasze forum jest backupowane każdego dnia, w środku nocy, na Amazon S3 (jest do tego wbudowana opcja w Discourse). Trzymam też jedną, co-trzydniową kopię w “glacierze”, czyli serwerze, na którym trzyma się dane dłużej niż na samym S3. Trzymamy tych kopii trzy ostatnie - czyli z ostatnich trzech dni. Tym samym jeśli ktoś prosi o usunięcie swoich danych z forum, to fizycznie zajmuje to trzy dni, po tym czasie - dane znikają nawet z kopii zapasowej i nie ma szansy, że je odzyskamy.

Raz na jakiś czas robię też zrzut kopii na swój własny dysk po to, żeby po prostu mieć ją “bliżej” (robię to raz na tydzień). Trzymam na swoim dysku jedną, tygodniową kopię. (Na dysku == iCloud drive, więc mam ją w chmurze przez ten tydzień).

Czyli podsumowując:

  • kopia robi się raz dziennie,
  • trzymam 3 dzienne kopie na S3,
  • w glacierze trzymam 1 kopię, która zmienia się co 3 dni,
  • raz na tydzień aktualizuję kopię bazy na swoim dysku

Żeby nie można było przywrócić forum musi więc: paść ovh (gdzie stoi forum), paść iCloud (i mój komputer), paść Amazon S3. Nikła szansa, więc jesteśmy bezpieczni.

Co do przywracalności - wielokrotnie bywało tak, że padł jakiś serwis, który owszem - miał kopię bezpieczeństwa - ale nie dało się jej wgrać, bo nikt nigdy tego zrobić nie próbował. Dlatego… ja (chociaż tego nie widzicie) raz na jakiś czas, bardzo wcześnie, przywracam forum z kopii bezpieczeństwa po to, żeby sprawdzić czy działa. Do tego parę razy postawiłem na szybko bucket żeby sprawdzić czy to dalej działa na całkiem nowym serwerze. Dlatego w sytuacji “forum padło”, jestem w stanie bardzo szybko chociażby: postawić nowy bucket na DigitalOcean (jeśli padło ovh), wgrać tam Discourse, przywrócić kopię zapasową i przekierować domeny.

Ostatnia rzecz, która może być interesująca (zawsze jest!) - koszty. Nasz serwer na OVH kosztuje około 420zł rocznie (środkowy VPS na OVH). Jedna kopia zapasowa zajmuje około 3,5GB miejsca. Na S3 trzymam więc około 11GB (+ glacier kolejne 3,5) danych, których miesięczny koszt otrzymania wynosi… w granicach $0.18. Każdego miesiąca ten koszt rośnie (bo i danych przybywa), ale myślę, że nawet w długim horyzoncie czasowym nie przekroczymy złótówki na miesiąc.

To byłoby na tyle - gdyby ktoś był ciekawy któregoś aspektu - niech da znać. Chętnie wytłumaczę i odpowiem na pytania. A gdyby ktoś chciał stworzyć własne forum, to teraz też wie jak wygląda kwestia robienia kopii bezpieczeństwa.

15 polubień

Backup na swój komputer i stawianie nowego środowiska masz ogarnięte automatycznie (np. skryptem) czy klikasz ręcznie?

Backup na swój komputer robie ręcznie (nie ma sensu tego automatyzować, bo zajmuje to mało czasu i jest dużo zmiennych), a stawianie nowego środowiska mam zautomatyzowane (chociaż jest parę elementów, które trzeba zrobić ręcznie, ale 90% rzeczy dzieje się samo).

1 polubienie

Tak z czystej zawodowej ciekawości - czym automatyzowałeś?

Zależy o co pytasz:

  • backupy w Discourse - Discourse sam tutaj wszystko automatyzuje (ile dni trzymać, etc.),
  • przesuwanie do Glaciera itd. - po prostu w panelu S3,
  • stawianie środowiska - skrypt w bashu (ale turbo prosty, postawienie środowiska pod discourse jest trywialne, więc…)
1 polubienie

W sumie do tego można by jeszcze porobić więcej miejsc, gdzie są kopie zapasowe, bo zapewne w IFTTT albo Zapier można by sobie jeszcze te dane porozrzucać na inne chmury gdzie masz wolne miejsce (chociaż obecna ilość backupów i tak już wystarczy w zupełności :D).

2 polubienia

Panie Orzech,

Thanks for sharing.

1 polubienie

W ogóle super, że się podzieliłeś. Ja robię między innymi takie rzeczy zawodowo plus jestem fanem automatyzacji, więc fajnie przeczytać jak robią to “normalniejsi” ludzie. Dobrze wiedzieć, że jesteś w stanie automatycznie postawić kolejną instancję z backupu. W sytuacji stresowej, a taką jest awaria forum z którym jesteście związani emocjonalnie, powoduje więcej pomyłek przy ręcznym klikaniu. Nie ważne jakby proste to nie było. Także szacun, że ci się chciało i że przemyślałeś taki wypadek :slightly_smiling_face: Jakbyś potrzebował kiedyś pomocy przy tego typu akcjach to daj znać :wink:

2 polubienia

Pomyliłem się o_O?

Grudzień kosztował już dwa dolary. Coś musiało pójść nie tak, bo w ciągu miesiąca nie zmieniło się AŻ tyle, forum nie urosło AŻ tak bardzo, ale tak wrzucam jako ciekawostkę. To nadal tylko parę złotych na szczęście

zalaczniki? bo tekstu tyle razcej nie naprodukowalismy :smiley:

Pewnie zrzuty ekranów komputerów i komórek, no i Secret Santa :rofl:

Nah, chyba coś po prostu eksplodowało i to nie było forum. Tylko social.yeswas.pl mógł zjeść dużo miejsca na S3.

Mastodont to w końcu duże zwierzę, jakby nie patrzeć :wink:

2 polubienia

Marzec koszotwał dolarów 15. Kwiecień chyba 17? W maju przeniosłem nas do B2, bo tam taniej. Dużo taniej. :slight_smile:

3 polubienia

Mnie ciekawi chmura Amazonu. Co się opłaca tam trzymać (czy pliki live tez), jakie są koszty itd.

S3 jest super, zwłaszcza dla biznesów, które lubią się z AWS i nie za bardzo liczą się z kosztami…

Opłaty za transfer(out) i request-y ubiły nie jeden projekt. Fakt, że jest coś takiego jak minimum billable object size of 128KB też nie pomaga.

S3 jest najlepsze ale jeśli ktoś chce używać AWS tylko dla S3 to trochę mija się to z celem(no chyba, że ktoś ma dużo kredytów $$$$ na koncie do wypalenia :stuck_out_tongue_winking_eye: :rofl:).

Dla samego storage to najlepiej wtedy iść w B2 lub jeszcze lepiej Wasabi gdzie nie ma opłat za request-ty i transfer, no ale ma to sens tylko jak ma się więcej niż te 500GB i planuje się używać tego przez jakiś czas bo np Wasabi pobiera opłaty za minimum 1TB przez 6m-cy.

1 polubienie

Dokładnie, kopia zapasowa ma w tym momencie 6GB, robię ją co drugi dzień… Teraz jest za darmo na B2, na S3 kosztowało już sporo.

1 polubienie

@pawelorzech Tobie to polecam MinIO https://min.io/ :rofl:

Niestety żaden szampon już po tym nie pomoże :rofl: :rofl: :rofl:

1 polubienie