- LegiNote projektfejlesztési történet 3. rész - Kérések Go nyelven
- Bemutatjuk a LegiNote projekt fejlesztési folyamatát, amelyben Go nyelvet használunk a Parlament nyílt API-ján keresztül történő jogi információk beszerzéséhez. Érintjük az HTTP kéréseket és az adatstruktúrák definiálását.
Üdvözlet, StatPan vagyok.
A LegiNote side project fejlesztési naplóját írom.
Az előző részt a következő linken találja:
A LegiNote negyedik fejlesztési naplója, egy kicsit más megközelítéssel, az infrastruktúra felépítéséről szól.
A szolgáltatás fejlesztéséhez szükség van a szolgáltatás futtatásához szükséges szerver erőforrásokra.
Természetesen, hacsak nem csak ki akarjuk próbálni a szolgáltatást, és nem is akarjuk folyamatosan üzemeltetni, akkor figyelembe vehetjük a saját PC-nket, vagy a különböző cégek által kínált ingyenes szintű szolgáltatásokat.
Az AWS, Azure, GCP és más nagyobb felhőszolgáltatók által kínált ingyenes szintet ideiglenesen használhatjuk, vagy a Cafe24, Gabia és hasonló hosting szolgáltatásokat is figyelembe vehetjük.
Én az Oracle Cloud Free Tier szolgáltatását választottam. Elmondható, hogy ez a legjobb ingyenes szintű ajánlat a felhőszolgáltatók között.
Összefoglalva:
4 OCPU, 24 GB RAM, 200 GB SSD-vel rendelkező virtuális gépet használhatunk a szolgáltatás teljes idejű üzemeltetéséhez (a forgalom sem korlátlan, de ha ezt a kapacitást eléri, akkor már fizetős szolgáltatásra lesz szükség).
Viszont ennek a virtuális gépnek a használatához át kell esni a hírhedt Oracle kártyaregisztrációs teszten.
Így szereztem be egy 24 órás, folyamatosan üzemelő virtuális gépet.
Még mindig hiányérzetem van az erőforrásokkal kapcsolatban
Fejlesztés közben egyetlen csomópont nem elég.
A tapasztalataim alapján szükségem van egy olyan erőforrásra, amely lehetővé teszi a fejlesztés és az üzemeltetés elkülönített telepítését.
Sajnálom, de az Oracle Free Tier csak egyet (a szokásos esetben) tesz lehetővé, ezért több folyamatosan üzemelő virtuális gépet akartam szerezni.
A virtuális gép alternatívája: mini PC
Az Oracle Free Tier szolgáltatásával megegyező specifikációjú, ugyanakkor 24 órás folyamatos üzemre alkalmas, megfelelő teljesítményű és alacsony fogyasztású szerverre volt szükségem.
A keresés során a DC-fórum volt a legnagyobb segítség.
Az n100, eqr6, ser8 és más jelöltek közül az eqr6-ot választottam, mert hasonló specifikációjú volt, mint a virtuális gép, és nagyon olcsón meg tudtam venni.
Barebone eqr6: 240 000 Ft
256 GB SSD: 22 000 Ft
8 GB RAM * 2: 18 000 Ft
Összesen: 280 000 Ft
Ha egy hasonló specifikációjú virtuális gépet körülbelül 1-2 évig folyamatosan üzemeltetünk, akkor ez az ár teljesen megtérül, ezért megvettem.
Eddig minden simán ment, de...
A problémák kezdete
A késedelemmel érkező szállítás
Igen, ezek a mini PC-k nem érkeznek meg egy-két napon belül, mint manapság megszokhattuk.
A kéthetes várakozás nagyon hosszúnak tűnt, és már arra gondoltam, hogy esetleg Kínában akadt el, amikor végre megérkezett.
Ha valakinek nincs tapasztalata ilyen PC-k beállításával, akkor a várakozás alatt hasznos lehet a mini PC fórumokat olvasgatni.
(Pl. a mellékelt USB meghajtó mellett bootolható lemezt kell készíteni, vagy fel kell telepíteni a szükséges illesztőprogramokat).
Mini PC összeszerelés
A mini PC összeszerelése is egy különleges élmény volt. Mivel már saját magam is összeszereltem asztali gépet, könnyűnek gondoltam, de a mini PC-ben a sok alkatrész miatt váratlan nehézségekbe ütköztem. Különösen a kiszorult csavarok visszaszerelése okozott nehézséget.
A csavar kiszereléséhez kicsit szétszedtem a tápegységet, és a laza csatlakozás miatt a ház legkisebb mozgásakor is kikapcsolt a gép, ami vicces helyzeteket teremtett.
Most már csak vicces emlék, de akkoriban szenvedés volt.
Mini PC beállítása
Ezután a BIOS-szal folytattam a harcot. Az Ubuntu telepítése után kiderült, hogy a rendszer alapértelmezés szerint 8 GB VRAM-ot foglal, így csak 8 GB RAM maradt.
Mivel szerverként akartam használni, a VRAM-ra nem volt szükségem, ezért a régi BIOS menüben kerestem a megfelelő beállítást, ami eléggé fáradságos volt. A BIOS verziója régi volt, ezért a neten található útmutatók nem igazán voltak hasznosak.
Egy ismeretlen YouTube videó segítségével sikerült megoldanom a problémát.
Köszönet a névtelen fejlesztőnek!
Otthoni hálózat beállítása
SK internet szolgáltatást használok, de mivel én nem voltam ott a telepítéskor, nem tudtam pontosan, hogyan történt, és mivel többnyire KT internet szolgáltatást használtam, könnyelműen vettem a dolgot.
Tehát azt hittem, hogy egy modemről elágazó routert használok.
Az SK-nál azonban egy külön modem van, amely közvetlenül a nyilvános IP-címhez csatlakozik, és egy külön modem (router) van a nappaliban.Kezdetben nem tudtam erről, és a nappali router és a szobai router más-más sávot foglalt el, ezért azt hittem, hogy a szobai router hibás, és többször is feleslegesen inicializáltam.
A keresés után rájöttem, hogy van még egy router, és megtaláltam a titkos helyen elrejtett modemet.
A napi szenvedésért bosszúból a nyilvános IP-címmel rendelkező modemet hídként konfiguráltam, és a belső SK routert NAT-ként akartam használni az egész hálózat vezérlésére, de persze, ha egyszerű lenne, nem lenne érdekes, így kaptam egy kis meglepetést.
Egyelőre nem tudom pontosan miért, de végül két nyilvános IP-címem lett.
Személy szerint elégedett vagyok, hogy a szolgáltatáshoz külön IP-címet kaptam, de ez a szolgáltatói hozzáállás más internet szolgáltatóktól eltér, és még mindig szoknom kell.
Akik SK internet szolgáltatást használnak, és otthoni hálózatot szeretnének létrehozni, azoknak érdemes figyelembe venni ezeket a fontos szempontokat, így könnyebben megoldható a feladat.
DDNS és DNS, port forwarding
Úgy gondolom, hogy ha további Oracle VM-et kaptam volna, akkor nem lett volna szükség erre a munkára, de jó tapasztalatot szereztem.
Az otthoni IP-címek általában dinamikusak, ezért ha csak a DNS szerverre leképezzük az IP-címet, akkor a router minden újraindításakor újra kell végezni a leképezést.
Ezt a problémát a router DDNS szolgáltatása is megoldhatja.
Az SK router nem biztosít ilyen szolgáltatást, és harmadik féltől származó szolgáltatások használatát javasolja.
Szerencsére ASUS routert használok, így a szolgáltatások igénybevétele nélkül az ASUS router adminisztrációs felületén található beépített DDNS funkciót használtam, és a DNS szerverre leképeztem, így megoldottam a problémát.
Szerencsére már volt tapasztalatom a DNS használatával a domain név vásárlásakor, így könnyen el tudtam végezni a munkát.
Problémák megoldása után
Amikor csak a virtuális gép 24 órás üzemeltetésének költségét számoltam, elég magasnak tűnt, de ha figyelembe vesszük a kezdeti beállítás költségeit és az időráfordítást, akkor már érthető, hogy miért olyan népszerűek a felhőszolgáltatások.
Ennek ellenére a nem jövedelmező projekt folyamatos üzemeltetéséhez és a személyes tanulási célból is tovább fogom fejleszteni az infrastruktúrát.
Valójában még nincs szükség sürgős skálázásra.
A jövőben a projektet támogató infrastruktúráról szóló tartalom is megjelenhet a bejegyzésben.
Ha hasonló problémával küzd, vagy hasonló terveket sző, bármikor szívesen segítek.
Ennyi volt StatPantól!
Hozzászólások0