홈서버 (MacMini) 운용 방법 1
문제 정의
AWS 서버비용은 비싸다. 취미 혹은 개인용 서버로 사용하기에는 Mac Mini 혹은 라즈베리파이로도 충분하다.
- 처음에는 라즈베리 파이로 시작했지만, AWS 프리티어보다 높은 성능임에도 뭔가 아쉬웠다.
- M1맥북에 익숙해서 M1급칩의 개발환경이어야 나만의 서버가 사랑스럽고, 빠르다고 느꼈다.
맥미니 서버 어떻게 해야 잘 활용할까?
Code Server 개발환경
사실 코드 서버 하나만 배포해도 충분히 취미용 개발 서버로 그 역할을 다 한다.
실사용 후기는 정말정말 만족하고 좋다. AWS 프리티어와 비교도 안된다.
위 처럼 Web에서 언제 어디서나 접속이 가능한 나만의 Cloud IDE를 구축하고자 한다.
Node.JS 관련 코딩 연습
- Javascript, React, NextJS, NestJS 등등 node.js 런타임이면 모두 개발과 동시에 포트를 열어서 실시간 확인이 가능하다.
- 하지만 실서비스 배포는 가능하나 개발환경과 운용환경이 섞이는건 썩 좋지 않다.
Docker 컨테이너 환경 구축
MySQL, PostgreSQL, Redis 등 각종 컨테이너들을 올려서 개발환경을 구축하고 있다.
어떤 컨테이너를 사용하고 있는지 잠깐 보여드리면 아래와 같다.
docker ps
7680119bcdca mongo-express:latest "tini -- /docker-ent…" 4 months ago
3caa96d61ed7 mongo:4.0.4 "docker-entrypoint.s…" 4 months ago
449b8f0710d7 portainer/portainer-ce "/portainer" 4 months ago
79e49d8768ca mysql:8.0.32 "docker-entrypoint.s…" 4 months ago
d78b865d9be1 m1macmini-jenkins-docker "/usr/bin/tini -- /u…" 4 months ago
77b2f22d1a7b postgres:13 "docker-entrypoint.s…" 4 months ago
e2b69459e61c rediscommander/redis-commander:latest "/usr/bin/dumb-init …" 4 months ago
ec347468f5cc redis:latest "docker-entrypoint.s…" 4 months ago
69b13440da19 redis:latest "docker-entrypoint.s…" 4 months ago
부팅시 자동으로 켜지는 프로세스
크게 3가지의 서비스를 사용중이다.
일부는 brew 를 이용해서 관리하고 docker 같은 경우에는 dockerDesktop을 이용하면 부팅시 자동으로 실행된다.
- code-server by brew services
- nginx by brew services
- docker by DockerDesktop