개발

Mac mini 24/7 서버로 쓰기 — 전기세부터 세팅까지

Mac mini M4를 24시간 상시 서버로 운영하면서 알게 된 전기세, 발열, 네트워크 설정, 원격 접속 노하우를 공유합니다. 가성비 홈서버의 정석.

·7 min read
#Mac mini#홈서버#24/7 서버#macOS#서버 운영

Mac mini를 서버로? 진심?

Mac mini 전력 소비

네, 진심입니다. 그리고 지금까지 6개월째 24/7 무중단 운영 중입니다.

Mac mini를 서버로 쓰겠다고 했을 때 주변 반응은 대부분 "그냥 AWS 쓰면 되잖아" 또는 "라즈베리파이가 낫지 않나"였습니다. 하지만 제 상황에서는 Mac mini가 최적이었습니다:

  • AWS EC2: 비슷한 사양(M-시리즈 ARM) 인스턴스가 월 $50+
  • 라즈베리파이: ARM이지만 RAM 8GB 한계, SSD 외장 연결 불편
  • Mac mini M4: 16GB 통합 메모리, Thunderbolt SSD, 소비전력 7W(유휴)

특히 유휴 시 7W라는 전력 소비가 결정적이었습니다. 일반 x86 서버가 유휴 시 50~80W를 먹는 것과 비교하면 10분의 1 수준입니다.

전기세 실측

가장 궁금한 부분부터. Kill A Watt 전력계로 한 달간 실측한 결과입니다:

상태전력 소비
유휴 (SSH 대기)7W
경량 서비스 운영 (Nginx + Node.js)10~12W
빌드/컴파일 작업25~35W
피크 (모든 코어 풀로드)45W

한 달 평균 소비량: 12W × 24h × 30일 = 8.64kWh

전기세: 8.64kWh × 120원 ≈ **월 1,037원**

월 천 원입니다. AWS t3.medium 인스턴스(월 $33)와 동일하거나 더 나은 성능을 월 천 원에 쓸 수 있다는 뜻입니다. 물론 초기 Mac mini 구매비가 있지만, 월 4만 원 아낀다고 치면 18개월이면 본전입니다.

초기 세팅: macOS를 서버로 만들기

1. 잠자기 비활성화

가장 먼저 해야 할 설정입니다:

# 잠자기 완전 비활성화
sudo pmset -a sleep 0
sudo pmset -a disksleep 0
sudo pmset -a displaysleep 0

# 전원 복구 후 자동 시작
sudo pmset -a autorestart 1

# 확인
pmset -g

autorestart는 정전 후 전원이 돌아왔을 때 자동으로 부팅하는 설정입니다. 24/7 서버에 필수입니다.

2. SSH 활성화

# 원격 로그인 활성화
sudo systemsetup -setremotelogin on

# 방화벽에서 SSH 허용 (포트 22)
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/bin/ssh

3. 고정 IP 설정

공유기(라우터)에서 Mac mini의 MAC 주소에 고정 IP를 할당합니다. DHCP 예약이라고도 합니다. 저는 192.168.1.100으로 고정했습니다.

4. 포트 포워딩

외부에서 접속하려면 공유기에서 포트 포워딩 설정이 필요합니다:

외부 포트 22 → 192.168.1.100:22 (SSH)
외부 포트 80 → 192.168.1.100:80 (HTTP)
외부 포트 443 → 192.168.1.100:443 (HTTPS)

보안을 위해 SSH 포트는 22가 아닌 다른 포트(예: 2222)로 변경하는 걸 추천합니다:

# /etc/ssh/sshd_config 수정
sudo nano /etc/ssh/sshd_config
# Port 2222로 변경

# SSH 재시작
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load /System/Library/LaunchDaemons/ssh.plist

DDNS 설정

가정용 인터넷은 IP가 바뀔 수 있습니다. Cloudflare DNS를 사용하면 무료로 DDNS를 구현할 수 있습니다:

# ddns-update.sh
#!/bin/bash
ZONE_ID="your_zone_id"
RECORD_ID="your_record_id"  
API_TOKEN="your_api_token"
DOMAIN="home.yourdomain.com"

IP=$(curl -s https://api.ipify.org)

curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  --data "{\"type\":\"A\",\"name\":\"$DOMAIN\",\"content\":\"$IP\",\"ttl\":120}"

이 스크립트를 crontab에 5분마다 실행하도록 등록합니다:

crontab -e
# */5 * * * * /path/to/ddns-update.sh

서비스 관리: launchd 활용

macOS에서는 systemd 대신 launchd를 씁니다. Node.js 앱을 데몬으로 등록하는 예시:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.myapp.server</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/node</string>
        <string>/Users/admin/app/server.js</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/var/log/myapp.log</string>
    <key>StandardErrorPath</key>
    <string>/var/log/myapp-error.log</string>
</dict>
</plist>
# 데몬 등록 및 시작
sudo cp com.myapp.server.plist /Library/LaunchDaemons/
sudo launchctl load /Library/LaunchDaemons/com.myapp.server.plist

하지만 솔직히 pm2가 더 편합니다:

npm install -g pm2
pm2 start server.js --name myapp
pm2 save
pm2 startup  # 부팅 시 자동 실행

발열과 소음

Mac mini M4의 발열은 놀라울 정도로 적습니다. 6개월간 24/7 운영하면서:

  • 평상시 CPU 온도: 35~40°C
  • 빌드 시: 55~65°C
  • 팬 소음: 대부분 무소음 (팬이 안 돌아감)

서재 책상 아래에 놔뒀는데, 존재감이 없습니다. x86 서버 시절 방에서 윙윙거리던 팬 소음을 생각하면 천국입니다.

단, 통풍은 확보해주세요. 밀폐된 서랍 안에 넣으면 열이 쌓입니다.

모니터링

서버가 잘 돌아가는지 원격에서 확인할 수 있어야 합니다:

# 간단한 헬스체크 스크립트
#!/bin/bash
UPTIME=$(uptime)
DISK=$(df -h / | tail -1 | awk '{print $5}')
TEMP=$(sudo powermetrics --samplers smc -i1 -n1 2>/dev/null | grep "CPU die" | awk '{print $4}')

echo "Uptime: $UPTIME"
echo "Disk Usage: $DISK"  
echo "CPU Temp: $TEMP"

저는 Uptime Kuma를 Docker로 띄워서 외부에서 모니터링합니다. 서비스가 다운되면 텔레그램 알림이 옵니다.

6개월 운영 후기

  • 총 다운타임: 약 2시간 (macOS 업데이트 1회)
  • 총 전기세: 약 6,200원
  • 안정성: 10/10 (재부팅 1회 외 이슈 없음)

Mac mini를 홈서버로 쓰는 건 과하다고 느낄 수 있지만, 전력 효율과 안정성을 생각하면 이만한 선택이 없습니다. 특히 macOS 생태계가 필요한 작업 (Xcode 빌드, iOS 앱 배포 등)이 있다면 사실상 유일한 선택지입니다.

관련 사이트:


참고 링크:

관련 글