Wyobraź sobie dwa boty: jeden używa Pythona i lokalnej bazy SQLite, drugi używa JavaScriptu i obsługuje polecenia. Oba działają na laptopie. Przeniesienie ich na serwer wymaga decyzji o zależnościach, przechowywaniu danych i reakcji na awarię procesu. Najlepszy hosting botów Discord zależy od współpracy tych elementów.
Porównaj plany hostingowe przed wyborem
Dwa plany opisane jako „1 vCPU” mogą mieć różne zasady przydziału zasobów. Sprawdź rodzinę instancji, a następnie okres rozliczeniowy i zakres kopii zapasowych powiązane z ceną. Współdzielone vCPU korzystają z CPU wraz z innymi klientami; dedykowany przydział rezerwuje zasoby CPU dla Twojego VPS. Mało obciążone boty mogą działać zadowalająco na zasobach współdzielonych.
| Dostawca | Omawiany przydział CPU | Szczegóły kosztów do sprawdzenia |
|---|---|---|
| Cloudzy | Nasze Regular CPU i High Frequency CPU mają dedykowane vCPU | Porównaj ceny dla zasobów potrzebnych botom i preferowanego okresu rozliczeniowego; plany godzinowe pozwalają łatwo zmienić rozmiar |
| DigitalOcean | Basic używa współdzielonego CPU; rodziny dedykowane są osobne | Bundled Plans obejmują IPv4; kopie zapasowe kosztują dodatkowo |
| Hetzner | Ekonomiczny CX23 korzysta z zasobów współdzielonych | IPv4 i kopie zapasowe kosztują dodatkowo; sprawdź dostępność, lokalizację i sposób uwzględnienia podatków |
| Vultr | Omawiane tu kategorie Cloud Compute, High Frequency i High Performance używają współdzielonego CPU | Sprzęt zależy od kategorii; automatyczne kopie zapasowe kosztują dodatkowo |
| Akamai/Linode | W Shared CPU może występować rywalizacja o zasoby | Dostępne w regionach podstawowych; ceny zależą od regionu |
Porównuj kompletne konfiguracje w tym samym okresie. Roczne zobowiązanie i elastyczny rachunek miesięczny mają inne skutki przy przenoszeniu lub zmianie rozmiaru wdrożenia. Do spodziewanej kwoty dolicz wymagany adres, usługę kopii zapasowych i osobną przestrzeń dyskową.
Wybierz dostawcę do swojego obciążenia
Bot oczekujący na zdarzenia i czasem obsługujący polecenie potrzebuje innej mocy CPU niż bot stale przetwarzający zadania w tle. Dobierz rodzinę instancji do tego zachowania, a następnie sprawdź zapotrzebowanie całego wdrożenia na pamięć i dysk. Sama nazwa dostawcy tego nie rozstrzyga.
Różnica między zarządzanym a niezarządzanym VPS wpływa też na pracę po zakupie: przypisz odpowiedzialność za aktualizacje systemu, ustawienia zapory i utrzymanie aplikacji. Opłacenie serwera nie przenosi wszystkich zadań operacyjnych na hostingodawcę.
Cloudzy do kontroli nad kilkoma botami
Wybierz nasz Linux VPS, gdy kilka botów wymaga niezależnych środowisk uruchomieniowych, nadzoru procesów i lokalnych danych pod Twoją kontrolą. Zapewniamy dostęp root i środowisko zarządzane samodzielnie, więc możesz dopasować procesy Python i Node.js do aplikacji. Nasza przestrzeń NVMe może przechowywać lokalną bazę i pliki botów.
Przydział w naszych rodzinach CPU pasuje do wdrożeń wymagających przewidywalnego dostępu do CPU, zwłaszcza gdy boty stale pracują w tle.
Mamy niską cenę początkową, a nasz cennik pozwala razem wybrać zasoby i okres rozliczeniowy. Dobierz plan do łącznego obciążenia i samodzielnie utrzymuj jego oprogramowanie.
DigitalOcean do udokumentowanej konfiguracji maszyny wirtualnej
Wybierz DigitalOcean, gdy określony pakiet maszyny Linux i udokumentowany wybór rodzin instancji ułatwiają planowanie zasobów. Cennik Droplet podaje konfigurację Basic z 1 GiB RAM, 1 vCPU, 25 GiB przestrzeni SSD i 1000 GiB transferu.
Basic to rozsądny początek dla krótkich skoków aktywności rozdzielonych bezczynnością. Jeśli bot większość czasu przetwarza zadania, porównaj rodziny dedykowane przed zwiększeniem rozmiaru w Basic. Więcej pamięci i zmiana przydziału CPU rozwiązują inne problemy. Przed rozbudową rozpoznaj niedobór pamięci lub opóźnienia harmonogramowania CPU.
Cennik Droplet z listopada 2026 r. podaje dla tej konfiguracji Basic miesięczny limit 6 USD. Przy procentowo rozliczanych cotygodniowych kopiach przykładowe obliczenie wynosi 6 USD × 1,20 = 7,20 USD miesięcznie przed podatkami i innymi opłatami. Obejmuje to wybrany serwer i wariant kopii, a nie wszystkie usługi używane przez aplikację; przed zakupem sprawdź aktualny cennik Droplet.
Hetzner do kilku lekkich procesów w odpowiedniej lokalizacji
Rozważ europejski ekonomiczny CX23 od Hetzner, jeśli kilku lekkim procesom wystarczają deklarowane 2 vCPU Intel/AMD, 4 GB RAM i 40 GB NVMe. W chwili sprawdzania niedrogi CX23 od Hetzner jest oznaczony jako niedostępny, więc zajrzyj na stronę ekonomicznego produktu i potwierdź dostępność w wybranej lokalizacji przed planowaniem przenosin.
Tę konfigurację warto rozważyć, gdy osobne środowiska uruchomieniowe potrzebują pamięci, ale większość czasu czekają. Przed wyborem do ciągłego przetwarzania sprawdź stałe zapotrzebowanie na CPU.
Dokumentacja serwerów Hetzner podaje cenę Primary IPv4 0,50 EUR miesięcznie bez VAT. FAQ dotyczące rozliczeń określa koszt kopii na 20% ceny serwera, a dokumentacja kopii zapasowych wyklucza podłączone Volumes. Jeśli przeniesiesz bazę na Volume, osobno zaplanuj koszt jej kopii. Porównuj wybraną lokalizację i konfigurację wraz z używanymi adresami IP i kopiami, stosując takie same zasady podatkowe jak w innych ofertach.
Vultr do wyboru rodziny sprzętu
Wybierz Vultr, gdy masz powód, by dobrać botom konkretną rodzinę sprzętu. Dokumentacja tworzenia Cloud Compute rozróżnia zwykły Cloud Compute ze standardowym SSD, High Frequency z wyższym taktowaniem CPU i NVMe oraz High Performance z nowszymi procesorami Intel Xeon lub AMD EPYC i NVMe.
Te różnice pomagają zawęzić wybór, gdy pomiary aplikacji wskazują na pracę CPU lub aktywność dysku. Wyższe taktowanie w nazwie nie dowodzi szybszej odpowiedzi Discorda i nie zmienia kategorii przydziału w tabeli. Porównaj rodzinę z operacją pochłaniającą czas bota, zanim zapłacisz za sprzęt, który może nie zmniejszyć opóźnienia.
Dostęp root lub sudo i wybór systemu/ISO w Vultr pasują też do wdrożeń ze szczególnymi wymaganiami środowiska uruchomieniowego. Korzyścią jest kontrola nad zainstalowanym środowiskiem. Nadal musisz sprawdzić zgodność zależności i procedury wdrożenia z wybranym systemem; dodatkowa pozycja w menu tworzenia instancji tego nie sprawdza.
Omówienie Automatic Backups Vultr podaje dopłatę 20% i wyklucza podłączone Block Storage. Jeśli trzymasz tam dane botów, zorganizuj osobne kopie. Przed porównaniem rachunku przejrzyj całą wybraną konfigurację; ani kategoria sprzętu, ani domyślny wybór IPv4 nie pokazują końcowej kwoty do zapłaty.
Akamai/Linode do małego istniejącego wdrożenia Linux
Wybierz Akamai/Linode, gdy małe wdrożenie Linux mieści się w zasobach Shared CPU dostępnych w odpowiednim regionie podstawowym. Dokumentacja Shared CPU podaje początkową konfigurację z 1 vCPU, 1 GB RAM i 25 GB SSD. Administracja przez root pozwala zachować kontrolę nad systemem i konfiguracją aplikacji.
Udokumentowane zastosowania obejmują niskie i średnie zapotrzebowanie na CPU oraz aplikacje tolerujące rywalizację o zasoby. To rozsądny kandydat dla botów z okazjonalnymi skokami aktywności. Do stałych obliczeń oceń inną rodzinę instancji.
Akamai rozróżnia podstawowe i rozproszone regiony obliczeniowe; w tych drugich instancje Shared CPU są niedostępne. Dopasuj ofertę do planowanej lokalizacji wdrożenia i osobno potwierdź wariant kopii zapasowych.
Uruchamiaj wiele botów bez współdzielenia wszystkiego
Bot Python i bot Node.js mogą działać na jednym VPS z osobnymi zależnościami, tokenami i ścieżkami danych. Każdemu zapewnij niezależne środowisko uruchomieniowe i osobny cel restartu. Dostęp root pozwala skonfigurować hosta; same procesy aplikacji nie muszą działać jako root. Świadomie je rozdziel przed dodaniem kolejnych botów.
W przykładowym układzie umieść kod bota Python A w /srv/bot-a z własnym środowiskiem Pythona. Kod i instalację zależności bota Node.js B umieść w /srv/bot-b. Każdemu zapewnij osobny plik konfiguracji lub odwołanie do sekretu zawierające wyłącznie jego token. Wybierz różne ścieżki danych, np. /var/lib/bot-a i /var/lib/bot-b, i nadaj każdemu kontu usługi dostęp do potrzebnych ścieżek. To proponowane nazwy, a nie instrukcja instalacji.
Kontenery to inny sposób rozdzielania zależności. Docker w dokumentacji ograniczeń zasobów stwierdza, że domyślnie kontenery nie mają limitów zasobów. Po obserwacji obciążenia świadomie ustaw limity pamięci i CPU, aby jeden bot nie zużywał niekontrolowanej części zasobów hosta.
Mierz boty łącznie z systemem, lokalną bazą i logowaniem. Uwzględnij szczyty instalacji, budowania i restartu; pomiar w bezczynności pomija okres, gdy obie aplikacje są zajęte. Podstawowe narzędzia potrzebne na VPS dają punkt wyjścia do utrzymania i obserwacji hosta. Wybieraj zasoby na podstawie pomiarów, a nie wyłącznie obietnic liczby botów na GB czy liczby serwerów Discord. Oba procesy nadal współdzielą jedną granicę awarii hosta.
Zachowaj dane botów przy ponownym wdrażaniu
Plik SQLite w zapisywalnej warstwie kontenera znika po usunięciu kontenera. Docker w dokumentacji cyklu życia wolumenów wyjaśnia, że zachowany wolumen istnieje niezależnie od używającego go kontenera. Trwałe dane botów umieść na celowo zachowywanym wolumenie lub w ścieżce hosta, zapisując lokalizację przed ponownym wdrożeniem.
Oddziel wymienialny kod od bazy, przesłanych plików i innego stanu, który bot musi zachować. Zapisz, który proces zapisuje w każdym miejscu i jakie operacje wdrażania je usuwają. Zachowany wolumen przetrwa wymianę kontenera; jawne usunięcie tego wolumenu to inna operacja. Ustal też limit przechowywania logów, aby nagromadzone dane wyjściowe nie zajęły miejsca przeznaczonego na dane aplikacji.
Trwałe przechowywanie zachowuje kopię roboczą podczas wdrożenia. Kopia zapasowa wymaga osobnej kopii umożliwiającej odtworzenie. Dla aktywnej bazy SQLite wybierz metodę uwzględniającą bazę, np. udokumentowane SQLite Online Backup API. Kopiuje ono działającą bazę do innego pliku bazy danych. Sam snapshot dysku dostawcy nie dowodzi poprawnego odtworzenia stanu aplikacji.
Trzymaj kopię poza granicą awarii VPS i zapisz sposób jej odtworzenia. Najpierw odtwórz ją w izolowanej lokalizacji, potem sprawdź oczekiwane rekordy i pliki. Zweryfikuj znany zapisany stan bota, np. skonfigurowany kanał lub ustawienie. Nie pozwól odtworzonej kopii testowej łączyć się przy użyciu poświadczeń produkcyjnych. Ukończone zadanie kopii jest użytecznym dowodem tylko wraz z udanym testem odtworzenia.
Sprawdź odzyskiwanie przed przeniesieniem wszystkich botów
Proces bota może działać, a mimo to nie odpowiadać na polecenie Discord. Wybierz jednego nadzorcę dla każdego procesu, skonfiguruj zachowanie przy awarii i uruchamianiu systemu, a odpowiedź aplikacji sprawdź osobno. Usługi systemowe, procesy Node.js zarządzane przez PM2 i kontenery Docker mają różne ustawienia odzyskiwania; sama polityka restartu nie dowodzi dostępności bota.
Dla usług systemowych podręcznik usług systemd opisuje Restart=on-failure dla odpowiednich awarii, w tym niezerowego kodu wyjścia. Osobno skonfiguruj start przy uruchamianiu systemu. W Node.js dokumentacja uruchamiania PM2 wymaga integracji ze startem systemu i zapisanej listy aplikacji do odzyskania po restarcie. Odśwież integrację po zmianie wersji Node.js.
Docker w dokumentacji polityk restartu rozróżnia unless-stopped, które zachowuje celowe zatrzymania po restartach demona, i on-failure, które nie uruchamia kontenerów ponownie po restarcie demona. Niech Docker nadzoruje swoje kontenery; unikaj konkurowania menedżera procesów hosta o restart tego samego kontenera.
Discord w dokumentacji połączenia Gateway wymaga komunikatów heartbeat i obsługi rozłączeń trwałego połączenia WebSocket. Aplikacja lub jej biblioteka musi odpowiednio nawiązywać połączenie ponownie. Wskaźnik dostępności infrastruktury nie potwierdza sprawności tego połączenia ani obsługi poleceń bota.
Przed przeniesieniem wszystkich botów wykonaj ten proponowany test akceptacyjny na niekrytycznym wdrożeniu:
- Wywołaj kontrolowaną awarię procesu. Potwierdź, że wybrany nadzorca go restartuje, a zachowane logi wyjaśniają awarię. Zbadaj powtarzające się awarie przed włączeniem nienadzorowanej pętli restartów.
- Uruchom hosta ponownie. Sprawdź, czy zamierzone procesy wracają z oczekiwaną konfiguracją i ścieżkami danych.
- Sprawdź połączenie Discord i wykonaj reprezentatywne polecenie każdego bota. Zapisz zaobserwowany wynik, nie tylko stan procesu.
- Wykonaj opisaną wyżej izolowaną procedurę odtworzenia i potwierdź oczekiwany stan aplikacji.
Przenieś pozostałe boty po zapisaniu wyników i rozwiązaniu wszystkich problemów wykrytych w testach.
Często zadawane pytania
Metoda interakcji Discorda i sposób zapisu w bazie mogą zmienić wymagania wdrożenia.
Czy każdy bot Discord wymaga trwałego połączenia?
Nie. Discord w dokumentacji dostarczania interakcji dopuszcza interakcje przez Gateway lub webhook HTTP; metoda HTTP nie wymaga połączonego klienta Gateway. Nadal potrzebuje osiągalnego punktu końcowego i nie zastępuje wszystkich zdarzeń Gateway. Dobierz model połączenia do zdarzeń używanych przez aplikację.
Czy kilka botów może zapisywać w tej samej bazie SQLite?
Tak, jeśli mogą zapisywać kolejno. Wskazówki dotyczące współbieżności SQLite dopuszczają wielu czytelników, ale tylko jeden proces zapisujący naraz dla każdego pliku bazy. Jeśli równoczesne zapisy nie mogą czekać w kolejce, rozważ bazę klient-serwer. Inny VPS nie zmienia modelu współbieżnego zapisu SQLite.
Czy szybszy VPS naprawi przekroczenia czasu interakcji Discord?
Niekoniecznie. Discord w wymaganiach dotyczących odpowiedzi na interakcje nakazuje pierwszą odpowiedź w ciągu trzech sekund; tokeny interakcji pozostają ważne przez 15 minut dla dalszych odpowiedzi. Sprawdź obsługę odpowiedzi w aplikacji przed zmianą hostingu. Dodatkowy CPU lub pamięć pomaga tylko wtedy, gdy presja na zasoby przyczynia się do niedotrzymania terminu.
Dyskusja
Komentarze
Zaloguj się, aby dołączyć do dyskusji.