GitHub ホストのランナーは、請求額や待ち時間が痛くなり始めるまでは便利です。無料枠を超えると分単位で支払い、各ジョブは「コールド」から起動し、実行のたびに依存関係を再ダウンロードします。自分の VPS 上のセルフホストランナーはこの 3 点をすべて逆転させます:定額の月額コスト、キャッシュがすでにディスク上にある「ウォーム」なマシン、そして完全にコントロールできるビルド環境——特定のツールバージョン、より多くの 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。リリースの山場には追加のランナーを立ち上げ、後で解約——未使用の支払い済み時間は残高に返金されます。
コメント
まだコメントはありません。最初になりましょう。