맥 미니 클러스터링으로 나만의 AI 서버 만들기 – GitHub exo 활용법

오늘은 조금 색다른 주제를 들고 왔어요.
맥 미니 여러 대를 묶어서 AI 클러스터를 만들 수 있다는 거, 알고 계셨나요?
고가의 GPU 서버 대신 집에 있는 맥북이나 맥 미니를 여러 대 연결해서 거대한 AI 모델을 돌릴 수 있다니… 저도 처음엔 “이게 된다고?” 싶었는데요. 실제로 DeepSeek V3 같은 671B짜리 모델도 돌아간다고 하더라고요 ㅋㅋㅎㅋㅎㅋㅎㅋㅎㅋㅎ
그래서 오늘은 GitHub의 exo 프로젝트를 활용해서 맥 미니 클러스터링을 어떻게 하는지, 그리고 실제로 뭘 할 수 있는지 깔끔하게 정리해볼게요!
exo가 뭔데요?
엑소 랩스(EXO Labs)에서 공개한 오픈소스 도구인데요. 이름 느낌 그대로, 여러 개의 디바이스를 하나의 GPU 클러스터처럼 쓸 수 있게 해주는 도구예요.
GitHub에서 `exo-explore/exo` 레포지토리를 찾아보시면 되는데, 핵심은 이거예요:
- 맥북, 맥 미니, 심지어 아이패드까지 연결 가능
- 각 디바이스의 메모리를 합쳐서 큰 모델 돌리기
- Thunderbolt RDMA 지원으로 디바이스 추가할수록 더 빨라짐!
# exo 설치는 이렇게 간단해요
pip install exo
실제로 exo를 만든 알렉스 치마 CEO가 맥 미니 M4 4대 + 맥북 프로 M4 맥스 1대를 묶어서 알리바바의 코딩 모델을 돌리는 영상도 공개했더라고요.

이미지 출처: GeekNews
맥 미니 클러스터 구성하기
그럼 바로 실제 구성 방법을 알아볼게요!
필요한 건 이 정도예요:
- 맥 미니 2대 이상 (동일 세대면 더 좋아요)
- Thunderbolt 케이블
- 안정적인 네트워크 환경
핵심은 Thunderbolt Bridge를 활용하는 거예요. 일반 이더넷보다 훨씬 빠른 10Gbps급 내부망을 만들 수 있거든요!
# 각 맥 미니에서 SSH 활성화
sudo systemsetup -setremotelogin on
Thunderbolt Bridge IP 확인
ifconfig bridge0
맥 미니끼리 Thunderbolt로 직접 연결하면 macOS가 자동으로 `bridge0` 인터페이스를 만들어줘요. 여기에 고정 IP를 할당해주면 됩니다!
exo로 클러스터 띄우기
exo의 진짜 매력은 설정이 정말 쉽다는 거예요.
첫 번째 맥 미니(메인 노드)에서:
# exo 서버 실행
exo run llama-3.1-8b
두 번째 맥 미니에서:
# 자동으로 첫 번째 노드 찾아서 연결됨
exo run llama-3.1-8b
진짜로 이게 끝이에요!!!
exo가 알아서 노드들을 찾고, 메모리를 합치고, 모델을 분산해서 돌려줍니다.
모두 이해하셨길 바라며… 20,000ㅎㅎㅎㅁㅎㅎㅎㅎ (토큰/초 아님)
실제로 뭘 돌릴 수 있어요?
exo 팀이 공개한 벤치마크를 보면:
- M4 Pro 맥 미니 8대로 DeepSeek V3 (671B) 실행
- 총 512GB 메모리로 초거대 모델 구동
- 응답 속도도 꽤 쓸만한 수준!
개인적으로 테스트해볼 만한 구성:
# API 서버로 띄우기
from exo import Exo
cluster = Exo()
cluster.serve(
model="qwen-2.5-coder-32b",
port=8000
)
이러면 집에서 돌아가는 AI 코딩 어시스턴트 완성 🙄
이미지 출처: Threads
Kubernetes랑 비교하면 어때요?
“그냥 K8s 쓰면 되는 거 아님?” 싶잖아요.
차이점이 있어요:
exo의 장점:
- AI 모델 특화 설계
- 메모리 통합이 자동
- 설정 거의 필요 없음
Kubernetes:
- 범용 컨테이너 오케스트레이션
- 더 정교한 리소스 관리
- 학습 곡선 존재
물론 둘 다 같이 써도 되죠! exo로 AI 워크로드 돌리고, 다른 서비스는 K8s로 관리하는 하이브리드 구성도 가능해요.
# kind로 맥 미니 K8s 클러스터 구성 예시
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 30080
hostPort: 8080
실전 팁 몇 가지 알려주는 것임!!!!!
1. 메모리가 전부예요
- exo의 유일한 요구사항: 전체 노드의 메모리 합이 모델 크기보다 커야 함
- Llama 3.1 8B (fp16)면 총 16GB 필요
2. 네트워크 최적화
- Thunderbolt Bridge 꼭 쓰세요
- 일반 이더넷보다 10배 빠름
- 노드 간 통신 병목 확 줄어듦
3. 모니터링
# 각 노드의 메모리 사용량 체크
exo status
4. 시작은 작게
- 맥 미니 2대로 시작
- Llama 3.1 8B 같은 작은 모델로 테스트
- 익숙해지면 노드 추가하고 모델 키우기
주의할 점도 있어요
실제로 쓰면서 겪을 수 있는 이슈들이 있어요:
- 모든 맥 미니가 같은 macOS 버전이어야 안정적
- Python 버전도 통일 필수
- 방화벽 설정 확인 (포트 개방)
- 첫 실행 시 모델 다운로드 시간 오래 걸림
# 방화벽 설정 예시
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/bin/exo
이미지 출처: Threads
MongoDB 클러스터링도 해봤는데
알던 `init`, `deinit` 같은 느낌이랄까요. 맥 미니 클러스터는 AI만 쓸 수 있는 게 아니라 분산 DB 연습용으로도 좋아요.
실제로 맥 미니 4대로 MongoDB 샤딩 구성해봤는데:
# node1: Config Server
mongod --configsvr --replSet configRS --port 27019
node2, node3: Shard
mongod --shardsvr --replSet shard1 --port 27018
node4: Router
mongos --configdb configRS/node1:27019
각 노드의 역할을 명확히 나누고 PATH 설정만 통일하면 관리가 엄청 편해져요!
성능은 어때요?
솔직히 말하면 AWS 같은 클라우드 GPU보다는 느려요 ㅋㅋㅎㅋㅎㅋㅎㅋㅎ
하지만:
- 초기 비용: 맥 미니 < 클라우드 장기 사용
- 프라이버시: 내 데이터가 내 집에
- 실험 자유도: 시간제한 없이 마음껏
특히 개인 프로젝트나 학습용으로는 완전 괜찮은 선택지예요.
실제 벤치마크:
- M4 맥 미니 4대로 Nemotron 70B → 8 tok/s
- M4 Pro 맥 미니 8대로 DeepSeek V3 671B → 실행 가능
이게 실제로 가능하단 거져!?!?!? 🙄 진짜로요!!!
이렇게 활용해보세요
제가 실제로 써본 용도:
1. 개인 AI 어시스턴트
- 코드 리뷰 봇
- 문서 자동 번역
- 데이터 분석 도우미
2. 개발 테스트베드
# 로컬 K8s + exo 조합
minikube start --driver=docker
kubectl create deployment ai-server --image=exo-server
kubectl expose deployment ai-server --type=NodePort --port=8000
3. 분산 시스템 학습
- 실제 클러스터 환경 경험
- 네트워크 최적화 실험
- 장애 복구 연습
자, 이제 정리해볼게요!
맥 미니 클러스터링과 GitHub exo는:
- 집에서 만드는 나만의 AI 서버
- 고가 GPU 없이도 큰 모델 실행 가능
- Thunderbolt로 노드 간 초고속 통신
- 설정 간단하고 확장 쉬움
시작하기 좋은 구성은 맥 미니 M4 2대 + Thunderbolt 케이블이에요. 여기에 exo 설치하고 Llama 3.1 8B 정도로 테스트해보시면 감이 확 올 거예요!
관심 있으신 분들은 GitHub exo-explore/exo 레포지토리 한번 들러보세요. README도 꽤 친절한 편이에요~
궁금한 점 있으면 댓글 남겨주시고, 실제로 구성해보신 분들은 경험담 공유해주시면 감사하겠습니다 🙂
참고 링크:
- GitHub exo 레포지토리
- EXO Labs 공식 트위터
- macOS Thunderbolt Bridge 설정 가이드
이전 글 보기