DigitalOcean Droplets: VPS pradedantiesiems

Kas tie Droplets ir kodėl apie juos verta žinoti

Jei kada nors bandėte sukurti savo svetainę, paleisti projektą ar tiesiog norėjote turėti savo serverį internete, tikriausiai susidūrėte su terminais VPS, cloud hosting ir panašiais. DigitalOcean Droplets – tai vienas paprasčiausių būdų įsigyti virtualų privatų serverį (VPS) be galvos skausmo ir be reikalo išleisti pusę algos.

Droplet – tai tiesiog DigitalOcean pavadinimas virtualiam serveriui. Jie galėjo jį pavadinti „VPS”, „instance” ar kaip nors kitaip, bet pasirinko šį gana simpatingą pavadinimą. Esmė ta pati – gaunate virtualią mašiną, kuri veikia jų duomenų centruose ir kurią galite valdyti kaip norite.

Kas ypač patrauklu pradedantiesiems – tai kainodara. Galite pradėti nuo 4-6 dolerių per mėnesį ir turėti visiškai funkcionalų serverį. Taip, yra pigesnių shared hosting variantų, bet ten jūs dalijatės resursais su dešimtimis ar net šimtais kitų vartotojų. Su Droplet turite garantuotus resursus ir pilną kontrolę.

Kaip veikia visa ši virtualių serverių magija

Virtualus privatus serveris – tai ne fizinis kompiuteris, bet virtualus. Įsivaizduokite galingą serverį duomenų centre, kuris padalintas į keliolika ar keliasdešimt mažesnių „virtualių” kompiuterių. Kiekvienas iš jų veikia nepriklausomai, turi savo operacinę sistemą, resursus ir gali būti valdomas atskirai.

DigitalOcean naudoja KVM (Kernel-based Virtual Machine) virtualizacijos technologiją. Tai reiškia, kad jūsų Droplet yra tikrai izoliuotas nuo kitų – jei kažkas kitas tame pačiame fiziniame serveryje sugadina savo sistemą ar patiria atakų, jūsų serveris lieka nesutrikdytas. Bent jau teoriškai taip turėtų būti.

Kai kuriate naują Droplet, iš tikrųjų vyksta keletas dalykų: sistema išskiria jums nurodytą kiekį RAM, procesoriaus branduolių, disko vietos ir tinklo pralaidumo. Tada automatiškai įdiegiama jūsų pasirinkta operacinė sistema (dažniausiai Ubuntu, Debian, CentOS ar kita Linux distribucija). Po kelių minučių gaunate IP adresą ir SSH prieigos duomenis.

Pirmieji žingsniai: kaip sukurti ir paleisti Droplet

Sukurti pirmąjį Droplet yra stebėtinai paprasta. Užsiregistravę DigitalOcean platformoje (dažnai galima rasti nuolaidos kodus naujiems vartotojams, kurie suteikia 100-200 dolerių kreditų), pateksite į valdymo panelę. Ten rasite žalią mygtuką „Create” – paspauskite jį ir pasirinkite „Droplets”.

Pirmas pasirinkimas – operacinė sistema. Jei esate naujokas, rekomenduoju Ubuntu (naujausią LTS versiją). Ubuntu turi didžiausią bendruomenę, daugiausiai dokumentacijos ir lengviausiai rasite sprendimus, kai kažkas neveiks. O kažkas tikrai neveiks – tai normalu.

Toliau – planas. Basic Droplets pradedantiesiems yra daugiau nei pakankami. Pigiausi planai (4-6 USD/mėn) suteikia 1GB RAM, 1 CPU branduolį ir 25GB SSD. Tai puikiai tinka nedidelėms svetainėms, testavimui, mokymosi projektams. Jei planuojate kažką rimtesnio, žiūrėkite į 2GB RAM variantus.

Duomenų centro lokacija – pasirinkite arčiausiai jūsų tikslinės auditorijos. Jei jūsų svetainę lankys daugiausia lietuviai ar europiečiai, rinkitės Amsterdamą ar Frankfurtą. Jei amerikietiška auditorija – New Yorką ar San Francisco.

Autentifikacija – čia svarbu. Galite pasirinkti slaptažodį arba SSH raktą. Visada rinkitės SSH raktą, jei tik žinote, kaip jį sugeneruoti. Tai daug saugiau. Jei nežinote – nieko baisaus, galite pradėti su slaptažodžiu, bet pirmą dieną sukonfigūruokite SSH raktus.

Prisijungimas ir pirmieji terminaliniai nuotykiai

Kai jūsų Droplet sukurtas, gausite IP adresą. Dabar laikas prisijungti. Windows vartotojams reikės įsidiegti PuTTY arba naudoti naująją Windows Terminal su integruotu SSH. Mac ir Linux vartotojai gali tiesiog atidaryti terminalą.

Komanda paprasta: ssh root@jūsų_ip_adresas. Pirmą kartą prisijungiant sistema paklaus, ar pasitikite šiuo serveriu – įveskite „yes”. Jei naudojate slaptažodį, reikės jį įvesti. Jei SSH raktą – tiesiog prisijungsite automatiškai.

Pirmas dalykas, kurį turėtumėte padaryti – atnaujinti sistemą. Ubuntu atveju:

apt update && apt upgrade -y

Tai atnaujins visus įdiegtus paketus iki naujausių versijų. Procesas gali užtrukti kelias minutes. Kol laukiate, galite pasidžiaugti, kad dabar turite tikrą serverį internete, kurį valdote per komandų eilutę. Jausmą, tiesa?

Kitas svarbus žingsnis – sukurti ne-root vartotoją. Dirbti kaip root yra patogu, bet pavojinga. Viena neteisingai įvesta komanda ir galite sugadinti visą sistemą. Sukurkite naują vartotoją:

adduser jūsų_vardas

Suteikite jam sudo teises:

usermod -aG sudo jūsų_vardas

Nuo šiol prisijunkite kaip šis vartotojas, o root naudokite tik kritinėms situacijoms.

Saugumo pagrindai, kurių negalima ignoruoti

Jūsų naujas serveris yra internete, o tai reiškia, kad per kelias sekundes jį pradės skenuoti įvairūs botai, ieškantys pažeidžiamumų. Tai ne paranoja – tai realybė. Pažiūrėkite į SSH prisijungimo bandymų logus po kelių valandų ir pamatysite šimtus bandymų iš Kinijos, Rusijos ir kitų šalių.

Pirmiausia – pakeiskite SSH prievadą. Pagal nutylėjimą naudojamas 22 prievadas, ir būtent jį skenina visi botai. Atidarykite SSH konfigūraciją:

sudo nano /etc/ssh/sshd_config

Raskite eilutę su „Port 22” ir pakeiskite į kažką kito, pavyzdžiui, 2222 ar 5432. Tik įsiminkite šį numerį! Išsaugokite failą (Ctrl+X, Y, Enter) ir perkraukite SSH:

sudo systemctl restart sshd

Kitas žingsnis – užkardos (firewall) konfigūravimas. Ubuntu naudoja UFW (Uncomplicated Firewall), kuris iš tikrųjų yra paprastas:

sudo ufw allow jūsų_ssh_prievadas/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Tai leis SSH, HTTP ir HTTPS srautą, o visa kita bus blokuojama. Jei planuojate naudoti kitus servisus (pvz., MySQL), turėsite atidaryti ir jų prievadus, bet tik jei tikrai reikia.

Fail2ban – dar vienas būtinas įrankis. Jis stebi prisijungimo bandymus ir automatiškai blokuoja IP adresus, kurie bando per daug kartų neteisingai prisijungti:

sudo apt install fail2ban -y

Pagrindinė konfigūracija veikia iš karto, bet galite ją pritaikyti savo poreikiams.

Ką daryti su serveriu: praktiniai panaudojimo scenarijai

Turite serverį – puiku. Bet ką su juo daryti? Štai keletas populiariausių scenarijų pradedantiesiems.

Svetainės hostingas – klasika. Įdiekite NGINX arba Apache, PHP (jei reikia), MySQL ar PostgreSQL duomenų bazę, ir galite talpinti WordPress, savo sukurtą svetainę ar bet ką kita. LEMP (Linux, NGINX, MySQL, PHP) arba LAMP (su Apache) stackai yra labai populiarūs ir gerai dokumentuoti.

Mokymosi aplinka – norite išmokti programuoti Python, Node.js, Ruby ar ką nors kita? Droplet yra puiki vieta eksperimentuoti be baimės sugadinti savo kompiuterį. Galite įdiegti visas reikalingas bibliotekas, testuoti įvairius konfigūracijas, o jei viskas sugenda – tiesiog ištrinkite Droplet ir sukurkite naują.

Privatūs projektai – galbūt norite savo cloud saugyklą (Nextcloud), privatų VPN serverį (WireGuard ar OpenVPN), asmeninį Git serverį (Gitea), ar media serverį (Plex, Jellyfin). Visos šios programos puikiai veikia ant Droplet.

Botai ir automatizacija – Discord botai, Twitter botai, web scraping’o skriptai – visa tai reikalauja serverio, kuris veiktų 24/7. Jūsų kompiuteris tam netinka, bet Droplet – idealus.

DigitalOcean turi „Marketplace” – tai iš anksto sukonfigūruoti image’ai su įdiegtomis populiariomis programomis. Norite WordPress? Yra image su jau įdiegtu LAMP ir WordPress. Docker? Yra. GitLab? Yra. Tai gerokai paspartina procesą, nors aš rekomenduoju bent kartą viską įdiegti rankiniu būdu, kad suprastumėte, kaip viskas veikia.

Snapshot’ai, backup’ai ir kaip neišmesti pinigų vėjais

Vienas didžiausių pradedančiųjų klaidų – nedarant atsarginių kopijų. Jūsų serveris yra virtualus, bet tai nereiškia, kad jis negali sugesti. Kietieji diskai genda, programinė įranga turi klaidų, o kartais tiesiog pats kažką sugadini.

DigitalOcean siūlo du pagrindinius atsarginių kopijų tipus: automatines (automated backups) ir snapshot’us. Automatinės kopijos kainuoja 20% jūsų Droplet kainos ir daro savaitines atsargines kopijas. Snapshot’ai – tai vienkartinės kopijos, kurias darote patys, kai norite, ir jos kainuoja pagal užimamą vietą (0.05 USD/GB per mėnesį).

Mano rekomendacija: naudokite snapshot’us prieš darydami didelius pakeitimus. Ruošiatės atnaujinti PHP versiją? Padarykite snapshot. Keičiate serverio konfigūraciją? Snapshot. Jei kas nors nepavyks, galėsite atkurti serverį per kelias minutes.

Be to, galite eksportuoti duomenis į kitas paslaugas. Pavyzdžiui, duomenų bazes galite reguliariai backup’inti į AWS S3 ar Backblaze B2 (pigiau). Paprastas cron job gali automatiškai daryti MySQL dump’ą ir siųsti jį į cloud saugyklą kiekvieną naktį.

Dar vienas patarimas – stebėkite savo resursų naudojimą. DigitalOcean dashboard rodo CPU, RAM, disko ir tinklo naudojimą. Jei matote, kad nuolat naudojate 90%+ RAM, laikas upgrade’inti į didesnį planą. Jei serveris lėtėja, bet resursai nepilnai naudojami – problema greičiausiai programinėje įrangoje ar konfigūracijoje.

Kai kažkas neveikia: debug’inimo pradmenys

Serverio administravimas – tai nuolatinis problemų sprendimas. Štai keletas dažniausių situacijų ir kaip jas spręsti.

Negaliu prisijungti per SSH – pirma, patikrinkite, ar naudojate teisingą IP adresą ir prievadą. Antra, pažiūrėkite DigitalOcean console (web’inė prieiga prie serverio terminalo) – galbūt firewall užblokavo jūsų IP. Trečia, galbūt SSH servisas neveikia – perkraukite serverį per DigitalOcean panelę.

Svetainė neveikia – patikrinkite, ar web serveris (NGINX/Apache) veikia: sudo systemctl status nginx. Pažiūrėkite į error logus: sudo tail -f /var/log/nginx/error.log. Dažniausiai problema būna konfigūracijos klaida arba teisių problema.

Serveris lėtas – paleiskite htop (jei neįdiegtas: sudo apt install htop) ir pažiūrėkite, kas naudoja resursus. Galbūt kažkoks procesas „nubėgo” ir suėda visą CPU ar RAM. Galite jį užbaigti su kill komanda.

Baigėsi vieta diskedf -h parodys, kiek vietos liko. du -sh /* parodys, kurie katalogai užima daugiausiai vietos. Dažniausiai kalti logai – išvalykite juos arba sukonfigūruokite log rotation.

Svarbiausias patarimas – mokykitės skaityti logus. Beveik kiekviena programa Linux sistemoje rašo logus į /var/log/. Kai kažkas neveikia, atsakymas dažniausiai yra ten. Naudokite tail, grep ir less komandas logams peržiūrėti.

Kai serveris tampa namais: optimizacija ir tobulinimas

Kai jau jaučiatės patogiai su pagrindiniais dalykais, galite pradėti optimizuoti ir tobulinti savo serverį. Čia keletas idėjų, kurios pagerina našumą ir patirtį.

Caching – jei talpinate svetainę, įdiekite caching sprendimą. Redis ar Memcached gali drastiškai paspartinti dinamines svetaines. NGINX FastCGI cache WordPress svetainėms gali sumažinti apkrovą 10-100 kartų.

CDN – DigitalOcean turi savo CDN (Spaces CDN), bet galite naudoti ir Cloudflare (nemokamą versiją). CDN talpina statinius failus (paveikslėlius, CSS, JavaScript) serveriuose visame pasaulyje, todėl jūsų svetainė greičiau įsikrauna lankytojams iš skirtingų šalių.

Monitoring – įdiekite stebėjimo įrankius kaip Netdata ar Grafana + Prometheus. Tai leidžia realiu laiku matyti, kas vyksta serveryje, ir gauti įspėjimus, kai kažkas ne taip. DigitalOcean turi ir savo monitoring, bet jis gana bazinis.

Automatizacija – mokykitės bash scripting ir cron jobs. Automatizuokite rutininius darbus: backup’us, atnaujinimus, logų valymą. Kuo mažiau rankinio darbo, tuo geriau.

Docker – kai jau gerai išmanote Linux pagrindus, pereikite prie Docker. Tai leidžia talpinti programas konteineriuose, kurie yra izoliuoti, lengvai perkeliami ir paprastai valdomi. Docker Compose leidžia aprašyti visą infrastruktūrą viename faile.

Ir nepamirškite dokumentuoti, ką darote. Sukurkite paprastą README failą arba naudokite pastabų programą. Užrašykite komandas, konfigūracijas, sprendimus, kuriuos radote. Po kelių mėnesių tikrai nebeatsiminsit, kodėl kažką darėte taip, o ne kitaip.

Kelionė tik prasideda

DigitalOcean Droplets – tai puikus būdas pradėti kelionę į serverių administravimo pasaulį. Taip, pradžioje gali atrodyti sudėtinga ir bauginanti. Juoda terminalo ekranas su mirksančiu kursoriumi nėra toks draugiškas kaip grafinė sąsaja. Bet kuo daugiau laiko praleisite su serveriu, tuo labiau suprasite, kaip veikia internetas „po gaubtu”.

Nesibaiminkite klysti. Sugadinkite serverį, ištrinkite jį ir sukurkite naują. Tai mokymosi dalis. Kiekviena klaida – tai pamoka, kuri padės ateityje. Ir kai pagaliau paleisit savo pirmąjį projektą ant serverio, kurį patys sukonfigūravote, jausmas bus neapsakomas.

Pradėkite nuo mažo – paprasto web serverio ar testavimo aplinkos. Palaipsniui pridėkite daugiau funkcionalumo. Mokykitės iš dokumentacijos, tutorial’ų, Stack Overflow. DigitalOcean turi puikią dokumentaciją su šimtais vadovų įvairiomis temomis. Naudokite juos.

Ir atminkite – kiekvienas, kas dabar yra serverių administratorius ar DevOps inžinierius, kažkada buvo ten, kur jūs dabar. Pirmą kartą prisijungė per SSH, pirmą kartą įdiegė web serverį, pirmą kartą sugadino sistemą ir nežinojo, kaip ją sutaisyti. Tai normalu. Svarbu tik nepasimesti ir toliau mokytis.

Daugiau

Vault secrets valdymas: slaptažodžių saugojimas