[パブリックプレビュー] GitHub Actions で軽量ランナー「ubuntu-slim」が追加されました
こんにちは、製造ビジネステクノロジー部の若槻です。
GitHub Actions に 1 vCPU Linux ランナー ubuntu-slim がパブリックプレビューで追加されました。
ubuntu-slim ランナーは 1 vCPU と 5 GB RAM と低スペックとなっており、また従来の VM インスタンスではなく、コンテナ内でジョブが実行されるため、軽量な処理に適しており、コスト効率の良い実行が可能となっています。一方で最大実行時間が 15 分に制限されているため、長時間実行されるワークフローには適していません。
試してみた
次のような典型的な Node プロジェクト向けワークフローで、今回追加された ubuntu-slim ランナーと従来の ubuntu-latest ランナーを比較しつつ試してみました。
name: CI
on: pull_request
jobs:
Integration:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, ubuntu-slim]
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Node
uses: actions/setup-node@v6
- name: Cache Node Modules
uses: actions/cache@v4
id: cache_node_modules
with:
path: "**/node_modules"
key: ${{ runner.os }}-${{ hashFiles('package-lock.json') }}-node-${{ hashFiles('**/package.json') }}
- name: Install Node Modules
if: ${{ steps.cache_node_modules.outputs.cache-hit != 'true' }}
run: npm ci --no-audit
以下、それぞれのランナーでの実行結果の比較となります。
Set up job の出力情報
GitHub Actions のワークフロー実行ログの Set up job セクションで、各ランナーの詳細情報が確認でき、その中で環境情報も出力されます。
まず ubuntu-latest では次のようになっていました。VM 上で動作しているからか Operating System や Runner Image の情報が詳細に出力されています。
Current runner version: '2.329.0'
Runner Image Provisioner
Hosted Compute Agent
Version: 20251016.436
Commit: 8ab8ac8bfd662a3739dab9fe09456aba92132568
Build Date: 2025-10-15T20:44:12Z
Operating System
Ubuntu
24.04.3
LTS
Runner Image
Image: ubuntu-24.04
Version: 20251030.96.2
Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20251030.96/images/ubuntu/Ubuntu2404-Readme.md
Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20251030.96
一方で ubuntu-slim では以下のようになっていました。同じ Ubuntu 24.04 ベースですが、VM ではなく Docker コンテナ上で動作しているためか、情報が簡素化されています。
Current runner version: '2.329.0'
Runner Image Provisioner
Hosted Compute Agent
Version: 20251016.436
Commit: 8ab8ac8bfd662a3739dab9fe09456aba92132568
Build Date: 2025-10-15T20:44:12Z
VM Image
- OS: Linux (x64)
- Source: Docker
- Name: ubuntu:24.04
- Version: 20251031.23.1
実行時間
ワークフローの実行時間を比較した結果は以下の通りでした。
| ステップ | 所要時間(ubuntu-latest) | 所要時間(ubuntu-slim) |
|---|---|---|
| Set up job | 2s | 3s |
| Checkout | 1s | 4s |
| Setup Node | 3s | 0s |
| Cache Node Modules | 0s | 1s |
| Install Node Modules | 21s | 26s |
| Post Cache Node Modules | 9s | 24s |
| Post Setup Node | 1s | 0s |
| 合計 | 37s | 58s |
Post Cache Node Modules ステップで顕著な差が出ていますね。処理内容を見るとキャッシュアーカイブのコマンドに次のような差分がありました。
# ubuntu-latest の場合
/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/cdk_sample_app/cdk_sample_app --files-from manifest.txt --use-compress-program zstdmt
# ubuntu-slim の場合
/usr/bin/tar --posix -cf cache.tgz --exclude cache.tgz -P -C /home/runner/work/cdk_sample_app/cdk_sample_app --files-from manifest.txt -z
ubuntu-latest では zstdmt という比較的新しい高速な圧縮ツールが使われているのに対し、ubuntu-slim では -z オプションが使われており、これは従来の gzip 圧縮となるため、処理時間が長くなっていると考えられます。
そもそも ubuntu-slim はパッケージが最小限に抑えられているイメージです。よってそもそも zstdmt がインストールされていないためか、環境のスペックダウンに加えて、使用可能なツールの違いもパフォーマンスに影響を与えている可能性もありそうです。
おわりに
GitHub Actions に 1 vCPU Linux ランナー ubuntu-slim がパブリックプレビューで追加されたのでご紹介しました。リリース記事にあった通り Issue にラベル付けするなどの軽量なジョブであれば、コスト効率良く実行できる選択肢として有用そうです。
スペックや料金の比較は下記ブログに詳しいので、併せてご参照ください。
以上






