6 min read

Server Setting by kr

집의 기본 세팅

목표: 집에서 사용 중인 기술 환경과 세팅을 정리해, 독자들에게 영감을 주거나 유사한 세팅을 할 수 있도록 도움을 주는 것을 목표로 합니다.
기대 사항 : 저는 Data Scientist로서 일부 세팅이 부족하거나 최적화되지 않을 수 있습니다. 이에 대한 피드백은 언제든 환영하며, 지속적으로 내용을 업데이트할 예정입니다.

개요

1. 서론

  • 블로그 글을 쓰게 된 배경
    • 집에서 다양한 기술 환경을 세팅하며, 이를 정리하지 않으면 관련 자료를 찾기가 어렵다고 느꼈습니다.
    • 독자들에게 참고자료와 설정 팁을 공유해, 비슷한 환경을 구축하거나 개선하는 데 도움을 주고자 합니다.
  • 기술 세팅의 특징
    • 다양한 운영체제를 활용하며, 각 OS에서 실험적으로 여러 애플리케이션을 설치 및 운영합니다.
  • 독자에게 기대하는 점
    • 기술 세팅에 대한 피드백 및 개선 아이디어를 공유해 주시면 감사하겠습니다.

2. 하드웨어 구성

  • 1) 장비 소개
Equipment Model CPU GPU Memory Storage OS
mac mini mac mini M1, 2020 4 core Apple Firestorm 3.2 GHz /
4 core Apple Icestorm 2.06 GHz
8 Core Apple G13G 1.28 GHz
+NPU : 16 Core 4 gen Neural Engine
16GB ssd:256G
+ ssd(nvme) : 500G
+ hdd: 1T
Sequoia
- 15.1.1(24B91)
raspberry 3 Raspberry Pi 3 Model B Rev 1.2 1.2 GHz ARM Cortex-A53 Broadcom VideoCore IV MP2 400 MHz 1 GB LPDDR2-450 SDRAM sd : 64G Debian GNU/Linux 12 (bookworm)
- Linux raspberrypi 6.6.31+rpt-rpi-v8
raspberry 4 Raspberry Pi 4 Model B Rev 1.1 BCM2711 SoC/
1.8 GHz ARM Cortex-A72 MP4
BCM2711 SoC/
Broadcom VideoCore VI MP2 500 MHz
4 GB LPDDR4-3200 SDRAM sd :64G Ubuntu 20.04.3 LTS
ordroid ODROID-HC4 Quad-core Cortex-A55 ARM G331 MP2 GPU 16G sd : 32G
hdd : 6T
Ubuntu 20.04.6 LTS
- Linux odroid 4.9.337-92
window notebook HP Pavilion - 14-al150tx i7-7500U (2.7GHz) - 2 Core 940MX DDR4 memory (4GiB) ssd : 256G
hdd : 1T
Windows 10
  • 2) 하드웨어 배치 및 연결

    • 공유기 : 샤오미 AX1800
      • 유선 공유 : windows,raspberry 4, raspberry3, ordroid
      • 무선 공유 : mac mini
  • 2) Power 연결

**3. 소프트웨어 **

  • **1) Application **

    • 모든 PC 설치 되어 있는 것
      • Docker , cadvisor , portainer_agent(mac 제외 : host), rclone
    • 각 PC 설치
      • macOS : Airflow,Portainer
      • raspberry 4 : Cronicle , Grafana , Ghost , Redis (+ Exporter)
      • raspberry 3 : Vault
      • ordroid : Prometheus, Postgres (+ Exporter) , Mariadb (+ Exporter),mongodb (+ Exporter)
      • Windows 10
        • wsl
        • wcs : windows_exporter --> 서비스가 아닌 수동으로 실행하고 있음
  • 2) 개발 환경

    • VSCode
      • local VSCode + github
        • code cli를 설치하여, remote 접근(vscode.dev를 이용)이 가능하도록 함
    • 프로젝트 관리
      • Obsidian으로 관리

**4. 네트워크 & 모니터링 **

  • 1) 네트워크 기본 구조

    • 샤요미 공유기에 192.168.0.XXX로 연결 --> 서버 네트워크
    • iptime으로 192.168.1.XXX는 TV 같은 네트워크로 연결
  • 2) 모니터링과 관리

    • Prometheus + Grafana를 이용한 모니터링
      • cAdvisor, + 다양한 종류의 Exporter 를 사용
      • 현재 모니터링(데이터 수집)만 하고 있으며, alarm은 따로 설정 하지 않고 있음
    • Portainer는 현재 도커에 어떤게 사용되고 있는지 확인

5. 데이터 관리 및 백업

  • 데이터 저장 및 백업 방식
    • 현재는 따로 backup 하지 않음
    • 각 서버의 hdd(혹은 sdd,sd)를 사용
    • 현재 ordroid에 hdd 6T 가 있어서, 여기 저장소를 사용

6. 활용 사례

  • 현재 서버 활용 사례

    • Airflow를 이용하여 ebs 녹음
      • airflow 하루마다 Trigger --> EBS 녹음(raspberry 4) --> dropbox에 upload --> 휴대폰을 이용하여 청취
    • raspberry 4에 Ghost 블로그 설치
      • 블로그는 설치하였으나, 딱히 포스팅은 현재 없음
    • rclone을 이용하여 docker-compose.yml을 구글 drive에 back up

7. 현재의 문제점

  • 다양한 Application이 존재 하지만, 딱히 사용성을 느끼는 것이 없음

    • 이유 : 그냥 한번 해볼까라는 생각으로 작업한 것이 많아서, detail 하고 deep 하게 진도를 나가지 않았음
    • Application 관련 필요 사항
      • Prometheus : Exporter 다운 시 알림 설정 필요
      • Grafana
        • 현재 대시보드는 각 exporter의 대표 대시보드를 사용하는데, 딱히 눈에 뜨이지 않음
        • 웹페이지로 보고는 있는데, 한눈에 보이는 것이 아니기 때문에 잘 안보게 됨 --> slack alarm으로 보여 줬으면 좋겠음
        • 각 exporter의 내용이 내가 생각하는 수치들과 맞지 않음 --> 테스트 필요
      • Airflow
        • airflow의 기본적 docker-compose를 사용하는데, 리소스를 많이 먹어서 그런지 dag 가 web 에서 안보일때가 존재
        • 기존에 낮은 버젼(기억안남) 관련 값이 db에 남아 있었는데, 그것 때문인제 reference dag가 사라지지 않고 있음
        • reference dag를 수동으로 지우니, 지우지 않고 계속 살아남
        • airflow의 로그가 상상이상으로 많이 쌓임 --> log 관리하는 dag를 만들 예정
      • Docker
        • 다른 곳의 docker는 문제가 없으나, mac db의 docker는 굉장히 크기를 많이 차지한다고 판단
        • 현재 mac의 시스템에 150G를 차지하는데, 이게 어디서 찾지 하고 있는지 알수 없음
      • rclone
        • 현재 google drive의 api의 토큰을 refresh 하기 위해서 일주일에 한번씩 수동으로 작업
        • 현재 test 계정이기 때문이라고 생각함. Production으로 가면 개인 정보 관련 주의 사항을 인증하라고 해서 진행을 하지 않고 있음
          • 일주일에 한번씩이기 때문에 부담은 아니지만, 엄청 귀찮음
  • 하드웨어 관련 문제점

    • 기존에 raspberry 3의 sd 카드가 뻑이 나서 부팅이 되지 않았음
    • 현재 내가 가지고 있는 서버들이 멀쩡한 것은 잘 없기 떄문에, 해당 문제는 언제나 발생할 가능성이 높음
    • 이런 경험으로 저는 저는 docker-compose.yml을 사용하여 대부분의 Application을 설치 운영 중
      • 이는 Application이 yml 파일로 control 되며, 해당 파일만 back up(to google drive)을 하면, 추후에 다시 설치가 쉬음

8. 결론

  • 이 글은 집에서 실험적으로 운영 중인 기술 환경을 정리한 내용입니다.
  • 현재 문제점을 개선하거나 새로운 아이디어를 적용하면 내용을 업데이트할 계획입니다.
  • 각 애플리케이션 설정 및 docker-compose 파일은 일부 정보 제외 후 공유를 검토 중입니다.

이 포스트는 계속 업데이트 될 예정입니다.