직접 구축하기 vs 돈내고 쓰기

이성적으로는 돈 내고 쓰면서 빠르게 개발하는게 낫다는걸 알지만
하나하나 구축하려는 욕심이 든다
적정기준을 정해놓고 따르는게 좋을 것 같은데

서비스 구축을 하면서 사용해야 하는 서비스가 몇가지 있는데

  • 인프라
    • 그냥 서버.. linux, unix, windwos ..
    • k8s cluster
    • object storage
    • cdn
  • DevOps
    • 빌드
    • 배포
  • Logging & 모니터링
    • 로그수집
    • 모니터링
    • 알림

구축하는데 들어가는 비용이 이익을 상회하지 않는 경우
비용: 시간, 돈, 인력
이익: 만족감, 기술발전, 속도, 돈

비교

인프라

IDC에 서버 올려서 직접 구축하면 제일 싸긴하다… 효율적으로 사용할 수 없다.
초기비용이 크고 서버 관리하는 기술도 생각보다 어렵고
경험이 없으면 삽질을 엄청 많이 하게 된다
코드만 만지던 사람들이 생각도 못한 변수가…

그리고 서버를 코드화 할 수 없으면 곤란한 상황이 많이 발생한다.
메이저 클라우드 업체를 쓰면 서버를 완전 코드화할 수 있다.

  • AWS
  • GCP
  • Azure
  • Heroku

서버만 쓸 수도 있지만 클러스터까지 쓸 수도 있고

  • k8s
  • ecs

네이버 클라우드 등 국내 서비스는 안됨. XXX

CDN, ObjectStorage는 클라우드플레어 등 다른 회사를 써도 되고 메이저 클라우드를 써도 되는데 다 코드화가 가능하다.
코드화가 가능하면 인프라 구축이 매우 쉬워진다.
SI도 아닌데 한번 구축하면 끝이지 왜 환경을 재현해야 하냐고???? 하는 경우가 있는데

  • CloudFlare

인프라 코드화의 장점

  • 테스트 환경 구축: production 환경에
  • 서비스 확장이 간편: 인프라 규모를 확장할 때 오류 가능성이 낮다.
  • 테스트 자동화가

DevOps

위에 있는거에서 DevOps는 코드화 해서 쉽게 할 수 있고
githubaction같은 무료서비스도 많으니 그냥 써도 된다. 서버를 직접구축하면 조금 더 빠르긴한데 취향에 따라 마음대로 해도 되는 부분…
아직 돈내고 써서 엄청 좋아지는 서비스가 없다

  • kustomize
  • gitops
  • githubaction
  • gitlabaction?
  • drone
  • argocd
  • keel

로깅 & 모니터링

hadoop, elastic search, prometheus 거의 이 중 한쪽 생태계와 주변기술 아닐까

구축하는게 튜토리얼대로 하면 금방 할 수 있기도 한데…
서비스에 맞게 튜닝을 하려면 신경쓸게 많다.
생각보다 잘 안되는 편

어떻게 보면 진짜 비핵심적인 부분이기도 해서
진짜 필요한 부분에서는 직접 로그를 DB에 저장하던지 하고
전체적으로는 돈내고 써야하는 분야

sentry, datadog, … 등등 검색하면 많다

클라우드에서 기본 제공해주는 서비스는 대부분 ES, Hadoop 기반이고
커스터마이징이 불편해서 별도로 작업이 많이 필요하다.

NAS,홈오피스 – OS,솔루션

NAS 솔루션

  • NextCloud
  • https://www.openmediavault.org
  • http://rockstor.com
  • https://www.amahi.org
  • https://lime-technology.com

NAS 인프라, NAS 서비스 섞여있음

OS

  • www.nas4free.org
  • FreeNAS https://www.freenas.org
  • http://rockstor.com/

홈오피스

  • www.zentyal.org
  • NethServer https://www.nethserver.org

Media

  • https://www.amahi.org/

인프라

  • https://www.pfsense.org/

FPGA

재미있는걸 알게되서 조금 조사 해 봤다

개념

  • https://ko.wikipedia.org/wiki/FPGA
  • https://namu.wiki/w/FPGA

코딩이 가능한 임베디드 장비로 ASIC이 특정목적에 맞게 설계를 하는반도체라면
FPGA는 조금 더 범용적인 장비.. 하지만 일반적인 CPU보다는 조금 더 임베디드한? 동작을 하는 장비다
당연히 ASIC보다는 조금 느리지만 특화된 기능에 대해 CPU보다는 빠른 동작이 가능한 장비
ethernet처럼 아주 고정된 동작만을 한다면 ASIC을 사용하겠지만
자율주행, 5G, IoT 처럼 아직 변화가 많이 발생할만한 분야라면 FPGA를 사용

원래 설명

  • https://m.blog.naver.com/PostView.nhn?blogId=msnayana&logNo=80124294898&proxyReferer=https:%2F%2Fwww.google.com%2F

코딩

  1. 언어는 Verilog, VHDL, schematic
  2. 컴파일(synthesis)
  3. 모듈의 위치와 선을 배치하는 작업인 라우팅을 한다고???
  4. 퓨즈 설정으로 회로를 구성시킨다고???
  5. flash나 eeprom에 넣어 실행(펌웨어?)

그냥프로그램만 넣어서 쓸 수 있는건 아닌 모양이다. 여러개의 input과 여러개의 output이 있고 이것중에 일부를 선택해서 사용해야 하는 형태일까

FPGA 코딩으로 할 수 있는 것

  • http://wiki.vctec.co.kr/devboard/fpga/spartan-3a-fpga-gaebalbodeu–elbert/overview
  • https://dkeemin.com/vivado-verilog-%EC%BD%94%EB%94%A9%ED%95%B4%EB%B3%B4%EA%B8%B0/

사진 인코딩, 비디오 스트링 전처리 등
방화벽, 웜바이러스, 디도스 등등 – 패턴화된 네트워크 처리

FPGA router project

FPGA로 라우터를 만든다면?

  • https://en.wikipedia.org/wiki/NetFPGA
  • https://www.turris.cz/cs/omnia/predstaveni/
  • https://www.solid-run.com/marvell-armada-family/macchiatobin/
  • https://librecmc.org/
  • https://openwrt.org/toh/recommended_routers

Orchestration Infra

설치형

  • Kubernetes https://github.com/kubernetes/kubernetes
  • Docker swarm https://github.com/docker/swarm
  • rancher https://github.com/rancher/rancher
  • flynn https://github.com/flynn
  • mesos https://github.com/mesos/mesos
  • nomad https://github.com/hashicorp/nomad

SaaS

  • AWS ECS
  • GCP
  • AWS
  • Azure
  • Heroku

서비스형으로 쓰면 되는데 또 설치 해 보고싶고 그러면 Docker Swarm정도는 해볼만할 것 같다

Helm 2에서 3로 간략

Tiller 없어짐

  • Tiller가 k8s 클러스터에서 에이전트 서버 역할을 했는데 이게 없어지고 단순 클라이언트에서 접속하는 구조로 변경
  • 보안을 사용자가 알아서 하라는거 보니 이거 관련 보안문제가 터졌나봄
  • tiller 초기화하려고 필요했던 helm init, helm home 없어짐

차트 리포지터리 검색

로컬과 helm hub 모두 동작? 항상 웹으로 찾아가지고 몰랐던 부분

의존성관리

Chart.yaml에서 의존성 관리. requirements.yaml을 포함. 용어도 변경 requirements -> dependencies
helm2 하위호환 보장
차트의 type 추가 – application / library

주요 명령어 기능변화

uninstall 하면 기본값이 purge라던가… helm2까지 많이 사용하던 사람 아니면 관심가질 필요 없는 내용.. 어차피 쓰다보면 알게되는

Synology NAS – 사용후기 – 누구에게도 필요없는 물건

신세계라고?

모르겠다
충동구매로 지른 후 몇달인가 1년쯤 됐나?
지금 설정 해 놓은게…

  • DNS
  • VPN
  • Cloud 백업
  • 디스크
  • 사진
  • 동영상
  • 다운로드
  • Docker
    • 블로그
    • gitlab
    • nexus
    • 등등 개발용툴

기존에는 개인서버에서 docker-compose로 실행시키면 별로 손가는 일도 없었다
오히려 코드화가 힘든 synology nas가 설정에 더 손이 많이 가는 느낌?
장점은 저전력에 크기가 작고 raid 지원이 잘 된다는 점 정도일까
요즘 폐급 메인보드도 소프트웨어raid 정도는 지원되고 raid0(mirror)은 컨트롤러 없어도 잘 터지지는 않으니까 상관없지 않나. 앵간한 폐급 피씨 주서다 셋팅해도 synology nas보다 빠르고

718이랑 하드두개 해서 거의 100만원을 쓴 것 같은데 왜 샀나 모르겠다. 그냥 미쳤나보다

비교

클라우드, NAS, 개인서버

솔직히 NAS도 관리하는게 손이 꽤 많이 가고 쉽지가 않다.
어차피 공부해서 할 생각이라면 개인서버 쓰는게 낫고
편하게 쓰려면 클라우드 쓰는게 낫다.

iCloud 기준
5G 무료
50G 1100원/월
200Gb 3300/월 (가족)
2TB 11,100/월 (가족)

GoPro Plus
무한용량?? $ 4.99/월

Dropbox
2TB $9.99/월

SynologyNAS 718+ 기준
45만 + 30만(4TB*2) + 램추가(8G 5만)
전기요금 누진세포함 대강 5천추가
수명3년으로 잡고 2.7 만/월
너무 비싸서….다시
수명5년으로 잡고 1.3 만/월

용량차이 좀 감안해도 NAS보단 클라우드 쓰는게 나아보인다.
자주 안 쓰는 데이터만 BlueRay나 HDD에 담아두면 기본요금만 써 되독

클라우드 쓰다가 날라가면 어쩌냐고 하기도 하는데
집에쓰는 하드도 잘 날라간다

클라우드는 비싸다고 하는데
100만원+전기요금 5천원추가정도 생각하면 큰 차이없지 않나

가용성도
드랍박스 중단되는거 뉴스에 뜨기도 하고 하지만
집에 인터넷 끊기거나 기계 고장나거나 정전나는건 뉴스에안나오지만 훨씬 자주 발생한다

tvheaden인가 뭐 이런거 쓰려면…
어차피 Synology nas 스펙이 구려서 힘들다

동영상을 온라인으로 올려놓고 보고싶다면
Synology 스펙구려서 힘들다
개인서버 돌리고 오픈소스로 나온거 설치해서 쓰는게 낫지 않을까
Dropbox나 iCloud에서 지원도 될 것 같다

파일공유
Nextcloud로 해도 된다

단점나열

  • 업데이트가 은근 느린 포인트가 많다
    letsencrypt 적용해야되는데 *.주소 지원이 아직도 안된다. 작년부터 계획중
    node4로 돌아가는 앱이 아직도 있네? package 업데이트가 안되서 생긴문제
  • 중요 기능은 ssh접속해서 해야된다
    개씨발포인트 – 디렉토리 구조나 권한설정도 지좆대로 되어 있는걸 건드리려니 더 힘들다
  • 기존서버운영방식을 모르면 Synology도 못한다
    쉽게따라하기 메뉴같은거 전혀 없다.. 어차피 이거나 저거나 공부하면서 해야됨
  • 저가형제품에서 할수있는게 없음
  • 전송속도 느림
  • 비슷한 유틸 엄청많아서 헷갈림
  • package를 직접 만들어 쓰려고 봐도 이거 손댈 수 있는 구조가 아니고 정보제공도 안됨

결론은

Synology에서 제공하는 다양한 기능을 사용하려면 쓰는것도 괜찮았었었었다
Docker가 나오기 전까지는
요즘은 그냥 버리는 서버에 NAS용하드 두개 사다가 레이드걸고 쓰는게 낫다.

복잡한 설정 못할 것 같으면 그냥 cloud서비스 iCloud, GoogleCloud, Dropbox, naverCloud, 통신사클라우드 대강 골라서 쓰면된다. 하드한개 사서 백업을 하던가 안해도 되고

이거 고장나거나 느려지면 다시 사진 않을 것 같다

로그 모니터링 서비스

클라우드 서비스 내장형

문제는 다 느리다는거

  • AWS CloudWatch
  • GCP

서비스형서비스

  • new relic
  • sentry
  • datadog
  • logic monitor
  • dynatrace
  • appotics

오픈소스 설치형 서비스

오픈소스 아니거나 한것들 섞여있을 수 있음
완전체 서비스는 아니고 생태계에 포함된것들 포함

  • prometheus
  • logstash
  • flume
  • kafka
  • fluentd
  • elasticsearch

~

개인적으로 센트리는 써봤는데 다른건 잘 모르겠지만 비슷할 것 같다.
센트리가 레일즈에서는 로그 확인하기 편하고 좋았는데 노드에서 잘 잡아내지 못하는 것 같다. 여기 맞춰서 뭔가 설정을 해 줘야하는듯

마이크로서비스 환경이 되면서 동일한 애플리케이션 서버가 여러개 구동되니까 점점 더 필요해지는 시스템

시간내서 구축해야하는데 그전까지 유료서비스 사용하는것도 괜찮은듯

네티스 WF2411V2 펌웨어 업그레이드 1.4.xx -> 1.8.xx

사전준비

제품명 확인 펌웨어 다운로드
1.6.99
1.8.25(최신)

1.6 이하버전인 경우 처리 순서

  1. 공장초기화
    전원 뺐다가 켜고 7초이상 초기화 버튼 누르면 모든버튼이 깜빡일 때 손 떼고 1분쯤 대기
  2. 1.6.99 업그레이드
    192.168.1.1 고급설정 파일로 업그레이드
  3. 공장초기화
  4. 1.8.25 업그레이드

1.6이상버전인 경우 처리순서

이건 정확하진 않은데

  1. 공장초기화
  2. 1.8.25 설치

1.6이하 버전에서 최신버전인 1.8로 업그레이드가 바로 되지 않는다. UI와 내부 시스템 대규모 변화가 있었던 듯
공홈에 설명이 제대로 안나오고 어디 구석에 PDF로 띡 나와있어서 두시간 날려먹음
바퀴벌레 날라다니는 UI가 보인다면 1.6이상이다

Serverless Framework 선택

serverless

https://serverless.com/cli/
https://github.com/serverless/serverless

zappa

python

django, flask 앱을 lambda로

zpex

AWS sam

jets

ruby

Graal

kotlin

  • https://github.com/razvn/micronaut-kotlin-first-graal
  • https://guides.micronaut.io/micronaut-function-graalvm-aws-lambda-gateway/guide/index.html

Spring cloud function

https://medium.com/faun/spring-cloud-function-deploy-first-serverless-function-using-spring-1bbdc0a4620d

fission

https://github.com/fission/fission

인프라

AWS Lambd

GCP cloud function

https://cloud.google.com/functions/

Knative

https://github.com/triggermesh/knative-lambda-runtime
https://about.gitlab.com/product/serverless/
https://labs.sogeti.com/knative-introduction-to-a-native-serverless-platform/

기타

  • kubeless
  • OpenWhisk
  • Tencent Cloud
  • Alibaba Cloud
  • Azure
  • CloudFlare
  • fn??
  • spotinst

참고

프레임웤?툴? 엄청많음