- Historia rozwoju projektu LegiNote 3 - Żądania w Go
- Prezentujemy proces rozwoju projektu LegiNote, w którym wykorzystano język Go do pobierania informacji prawnych z otwartego API Parlamentu. Omówimy wysyłanie żądań HTTP i definiowanie struktur danych.
Dzień dobry, jestem StatPan.
Piszę o rozwoju projektu poboczego LegiNote.
Poprzednią część można znaleźć pod następującym linkiem:
Czwarta część relacji z rozwoju LegiNote, tym razem o konfiguracji infrastruktury, nieco inna niż poprzednie.
Do rozwoju usługi potrzebne są zasoby serwerowe do uruchamiania tej usługi.
Oczywiście, jeśli nie zamierzasz ciągle utrzymywać usługi, możesz rozważyć użycie własnego komputera PC lub bezpłatnych usług oferowanych przez różne firmy.
Możesz tymczasowo korzystać z bezpłatnych wersji oferowanych przez główne platformy chmurowe takie jak AWS, Azure i GCP, lub rozważyć usługi hostingowe takie jak Cafe24 i Gabia.
Wybrałem Oracle Cloud z jego bezpłatną warstwą. Można śmiało powiedzieć, że oferuje najlepszą politykę bezpłatnej warstwy wśród platform chmurowych.
Podsumowując:
Można korzystać z maszyny wirtualnej z 4 rdzeniami OCPU, 24 GB RAM i 200 GB dysku SSD w pełnym wymiarze godzin (ruch sieciowy również nie jest nieograniczony, ale jeśli zużyjesz wszystko, prawdopodobnie i tak będziesz musiał przejść na płatną usługę).
Jednak aby móc korzystać z tej maszyny wirtualnej, musisz przejść przez nieszczęsny test rejestracji karty Oracle.
W ten sposób zdobyłem jedną maszynę wirtualną działającą 24 godziny na dobę bez przerwy.
Zasoby wciąż wydają się niewystarczające
Podczas programowania jeden węzeł nie wystarcza.
Na podstawie mojego doświadczenia potrzebne są zasoby, które umożliwiają oddzielne wdrażanie środowiska developerskiego i produkcyjnego.
Niestety, bezpłatna warstwa Oracle pozwala na użycie tylko jednego (w standardowej konfiguracji), więc chciałem zdobyć więcej maszyn wirtualnych działających bez przerwy.
Alternatywa dla maszyn wirtualnych: mini PC
Aby uzyskać porównywalne parametry do usługi Oracle Free Tier i jednocześnie zapewnić ciągłą 24-godzinną pracę, potrzebny był serwer o odpowiedniej wydajności i niskim zużyciu energii.
Podczas wyszukiwania informacji w tym zakresie największą pomocą okazał się portal DC Gallerry.
Spośród kandydatów takich jak n100, eqr6, ser8 wybrałem eqr6, ponieważ chciałem uzyskać podobne parametry do mojej maszyny wirtualnej, a cena była bardzo atrakcyjna.
Goły eqr6 240 000 KRW
SSD 256 GB 22 000 KRW
RAM 8 GB * 2 18 000 KRW
Razem 280 000 KRW
Uważam, że biorąc pod uwagę ciągłą pracę maszyny wirtualnej o podobnych parametrach przez około 1-2 lata, to rozsądna cena i dlatego dokonałem zakupu.
Do tego momentu wszystko szło gładko, ale...
Początek problemów
Dostawa, która zawsze się spóźnia
Tak, te mini PC, w czasach, gdy dostawa trwa jeden lub dwa dni, naprawdę długo się nie pojawiają.
Dwa tygodnie oczekiwania na dostawę to naprawdę długi czas, i zacząłem się zastanawiać, czy nie zostałem oszukany przez Chińczyków? W końcu go otrzymałem.
Oczywiście, osoby bez doświadczenia w konfigurowaniu takich komputerów mogą w tym czasie przeczytać wiele pomocnych postów na forum poświęconym mini PC.
(Na przykład przygotowanie dysku rozruchowego oprócz dołączonego pendrive'a, przygotowanie sterowników do instalacji itp.)
Składanie mini PC
Tak, składanie mini PC to było nowe doświadczenie. Sam kiedyś złożyłem komputer stacjonarny, więc myślałem, że będzie łatwo, ale w mini PC różne komponenty są umieszczone w małej obudowie, więc napotkałem na więcej trudności niż się spodziewałem, szczególnie trudno było wykręcić źle wkręcone śrubki.
Aby wykręcić te śrubki, musiałem częściowo zdemontować zasilacz, a luźne połączenie powodowało, że nawet lekkie potrząśnięcie obudową powodowało wyłączenie zasilania. Zdarzyło się wiele takich zabawnych incydentów.
Z perspektywy czasu to ból zamaskowany wspomnieniami.
Konfiguracja mini PC
Tym razem to była walka z BIOS-em. Po zainstalowaniu Ubuntu domyślnie zajęło 8 GB VRAM, więc pozostało tylko 8 GB pamięci RAM.
Ponieważ zamierzałem używać go jako serwera, VRAM było mi prawie niepotrzebne, więc musiałem sporo się namęczyć, aby znaleźć odpowiednią funkcję w starym menu BIOS-u. Wersja BIOS-u była dość stara, więc wiele instrukcji znalezionych w internecie nie pasowało.
W końcu udało mi się rozwiązać problem dzięki śladom na jakimś nieznanym kanale YouTube.
Składam serdeczne podziękowania nieznanemu programistowi...
Konfiguracja sieci domowej
Korzystam z internetu SK, ale ponieważ mnie tam nie było podczas instalacji, nie wiedziałem dokładnie, jak to zostało skonfigurowane, a moje doświadczenie ograniczało się głównie do internetu KT, więc potraktowałem to lekko.
Zakładałem, że używam tylko jednego modemu z routerem.
Okazało się jednak, że SK ma osobny modem podłączony bezpośrednio do publicznego adresu IP i oddzielny modem (router), który znajduje się w salonie.
Początkowo tego nie wiedziałem i routery w salonie i pokoju ciągle używały różnych zakresów częstotliwości, więc myślałem, że router w pokoju jest uszkodzony i kilka razy go bezsensownie resetowałem.
Po wielu poszukiwaniach w internecie odkryłem istnienie drugiego routera i znalazłem ukryty modem w tajnym miejscu.
Aby się zemścić za utracony dzień, zdecydowałem się na przełączenie modemu z publicznym adresem IP w tryb mostu i skonfigurowanie wewnętrznego routera SK jako NAT, aby kontrolować całą sieć, ale żeby było ciekawiej, pojawiła się mała zmiana.
Nie wiem jeszcze dlaczego, ale ostatecznie mam dwa publiczne adresy IP.
Jestem zadowolony z posiadania osobnego adresu IP dla usługi, ale ta specyfika usługi SK wciąż mnie zaskakuje.
Osoby, które będą konfigurować sieć domową z internetem SK, powinny wziąć pod uwagę powyższe kwestie, aby uniknąć problemów.
DDNS i DNS, przekierowanie portów
Myślę, że gdybym miał dodatkową maszynę wirtualną Oracle, nie musiałbym tego robić, ale dzięki temu zdobyłem cenne doświadczenie.
Domowe adresy IP są zwykle dynamiczne, więc jeśli po prostu mapujesz IP na serwerze DNS, po każdym zresetowaniu routera będziesz musiał powtarzać mapowanie.
Routery często oferują własną usługę DDNS, aby rozwiązać ten problem.
Router SK nie oferuje takiej usługi, ale raczej zaleca korzystanie z usług zewnętrznych.
Na szczęście korzystam z routera ASUS, więc użyłem wbudowanej funkcji DDNS w panelu administracyjnym routera ASUS i rozwiązałem problem, mapując go na serwerze DNS.
Dzięki mojemu wcześniejszemu doświadczeniu z DNS podczas kupowania domeny, zadanie to poszło mi dość sprawnie.
Wnioski po rozwiązaniu problemów
Kiedy tylko szacowałem koszty 24-godzinnej pracy maszyny wirtualnej, wydawały się one dość wysokie, ale biorąc pod uwagę koszty i czas poświęcony na konfigurację początkową, rozumiem, dlaczego usługi w chmurze są tak popularne.
Mimo to zamierzam nadal rozwijać tę infrastrukturę dla utrzymania projektu, który nie przynosi zysków, oraz dla własnej nauki.
W rzeczywistości nadal nie ma dużej liczby użytkowników, którzy wymagają szybkiej rozbudowy.
W przyszłości zamierzam również opisywać infrastrukturę wspierającą ten projekt.
Jeśli ktoś ma podobne problemy lub plany, chętnie pomogę.
To wszystko ode mnie, StatPan!
Komentarze0