GitHub 호스트 러너는 청구서나 대기 시간이 아파지기 전까지는 편리합니다. 무료 한도를 넘으면 분당 지불하고, 각 작업은 '콜드'로 시작하며 실행 때마다 의존성을 다시 내려받습니다. 자체 VPS의 셀프호스트 러너는 이 세 가지를 모두 뒤집습니다: 고정 월 비용, 캐시가 이미 디스크에 있는 '따뜻한' 머신, 그리고 완전히 제어하는 빌드 환경 — 특정 도구 버전, 더 많은 RAM, 실제로 유지되는 Docker 레이어 캐시.
러너는 GitHub로 나가는 연결만 필요하므로 가장 저렴한 요금제에서 동작하고, 암호화폐로 결제하며, KYC가 필요 없습니다.
러너에 필요한 것
- 빌드용 CPU와 RAM. **Small(월 $8 — 4 vCPU, 4 GB RAM, 35 GB NVMe)**은 대부분의 CI에 편안한 기본값입니다: Node/Go/Rust 빌드, 테스트 스위트, Docker 이미지 빌드. 무거운 컴파일이나 병렬 작업? Medium 또는 Pro 요금제로 올리세요.
- 캐시용 NVMe 디스크. 셀프호스트의 핵심은 지속성입니다 — 의존성 캐시, Docker 레이어, 빌드 산출물이 실행 사이에 디스크에 남습니다. NVMe는 복원을 빠르게 유지합니다.
- 전용 IP 불필요. 러너는 HTTPS로 GitHub에 발신합니다. 인바운드 접근은 필요 없습니다. **NAT 요금제(월 $3부터)**면 충분합니다. 트래픽을 제공하는 무언가도 함께 호스트할 때만 전용 IP를 받으세요.
러너 설정 (Ubuntu 24.04)
저장소(또는 조직)에서 러너를 생성합니다: Settings → Actions → Runners → New self-hosted runner → Linux. GitHub가 다운로드 명령과 일회용 등록 토큰을 표시합니다. VPS에서:
# 비 root 사용자로 (러너는 root로 실행을 거부합니다)
adduser --disabled-password --gecos "" runner
su - runner
mkdir actions-runner && cd actions-runner
curl -o actions-runner-linux-x64.tar.gz -L \
https://github.com/actions/runner/releases/latest/download/actions-runner-linux-x64.tar.gz
tar xzf actions-runner-linux-x64.tar.gz
# GitHub UI의 URL + 토큰으로 등록
./config.sh --url https://github.com/YOUR_ORG/YOUR_REPO --token YOUR_TOKEN
서비스로 계속 실행하기
./run.sh를 터미널에서 실행하지 마세요 — 재부팅을 견디도록 러너를 systemd 서비스로 설치합니다:
sudo ./svc.sh install runner
sudo ./svc.sh start
sudo ./svc.sh status
이제 러너는 GitHub UI에 Idle로 표시되고 자신을 대상으로 하는 모든 작업을 가져갑니다.
워크플로에서 사용하기
runs-on으로 작업을 러너에 지정합니다:
jobs:
build:
runs-on: self-hosted # 또는 등록 시 설정한 사용자 지정 라벨
steps:
- uses: actions/checkout@v4
- run: make build && make test
Docker 기반 작업
Docker를 한 번 설치하면 워크플로가 이미지를 빌드하거나 서비스 컨테이너를 실행할 수 있고, 레이어 캐시가 실행 사이에 유지됩니다:
sudo apt update && sudo apt install -y docker.io
sudo usermod -aG docker runner # 러너가 sudo 없이 Docker를 쓰도록 허용
작업별 일회용 격리에는 러너 자체를 컨테이너에서 실행하고 실행마다 다시 만듭니다 — 신뢰할 수 없거나 매트릭스 빌드에 흔한 패턴입니다.
CI에 EQVPS를 선택하는 이유
- 고정 비용, 무제한 분. 분당 계측 없음 — 바쁜 파이프라인도 유휴 상태와 같은 비용입니다.
- '따뜻한' 캐시. 의존성과 Docker 레이어가 실행 사이에 NVMe에 남습니다. 빌드는 느려지지 않고 빨라집니다.
- 약 60초 만에 root, 깨끗한 이미지. cloud-init로 Ubuntu, Debian 등. 필요한 도구 체인을 정확히 설치하세요.
- KYC 없음, 암호화폐 결제. 가입은 이메일, 결제는 USDC/USDT. 릴리스 급증에 러너를 추가로 띄우고 이후 해지 — 사용하지 않은 결제 시간은 잔액으로 환불됩니다.
댓글
아직 댓글이 없습니다. 첫 번째가 되세요.