1
/
5

GitHubActionsのランナーに触れてみた【株式会社ライトコード】

弊社エンジニアの記事になります。

今回は、ホステッドランナーについて触れます!!

皆さんこんにちは。
最近、GithubActionsでセルフホステッドランナーを使用する機会があり、そもそもランナーとは何ぞやとなった、小山こと"こやまん"です。

Githubには、GithubActionsと呼ばれるCI/CD機能を提供する自動化ツールがあり、トリガーに応じてテストやビルドを自動で実行できるため、開発効率の向上に大きく役立ちます。一例では、PR(プルリクエスト)を作成したタイミングで、テストを自動実行し、テストが失敗した場合はマージさせないようにすることで、手動でのテストの実行時間の削減しリグレッションを防止することが可能です。

この便利なGitHubActionsを実行するための仮想環境はランナーと呼ばれます。本記事では、このランナーについて触れていきます。

ランナーの種類について

下記は、GithubActionsのワークフローの一部です。

name: Test Sample Workflow

on:
push:
branches: [ develop ]
pull_request:
branches: [ develop ]

jobs:
test:
runs-on: ubuntu-latest
.......

runs-onという記述がりますが、こちらの項目がランナーの設定となっています。
恥ずかしながら、今までは特に深く考えず、runs-onをubuntu-latestに設定すれば動くのね程度の認識でした。

ランナーには、大きく分けて二つの種類があります。一つはGithub公式が提供するGithubホステッドランナー、もう一つはユーザーが管理するサーバー上に設置するセルフホステッドランナーです。

容易に扱えるGithubホステッドランナー

特に深く考えず、自前で環境を用意する必要もないことから、GithubActionsを利用している大部分の人が、Githubホステッドランナーを利用しているかと思われます。すぐに利用が可能で、ランナー自体もGithubによって自動的に更新・管理されるため、セキュリティやパフォーマンス面でのメンテナンスが容易なことが特徴です。
仮想マシンの種類は、Linux、Windows、macOSなどが用意されており、ubuntu-latest、windows-latest、macos-latestなどを指定することで利用可能です。
注意点として、GithubActionsの実行は、1ヶ月あたり2,000分の無料枠がありますが、Linuxに対して、Windowsの場合は2倍、macOSの場合は10倍の無料枠が消費されます。
また、GithubActionsを実行するリポジトリがパブリックリポジトリか、プライベートリポジトリかで仮想マシンの性能が変わる仕様となっているようです。

プライベートリポジトリでubuntu-latestを指定した場合

CPU:2
メモリ:7GB
ストレージ:14GB

パブリックポジトリでubuntu-latestを指定した場合

CPU:4
メモリ:16GB
ストレージ:14GB

流石に業務で扱ってるリポジトリをパブリックにする訳には行きませんが、パブリックリポジトリが羨ましくなったり...

自由度の高いセルフホステッドランナー

自前で用意するため、高度なカスタマイズ性があり、特定の環境要件を満たすことが可能です。反面、メンテナンスをユーザーが実施していく必要があります。
AWSのEC2や、GCPのGCEを利用することが多いのではないかなと考えます。

ランナーの選定基準

GitHub Actionsは、公開リポジトリに対しては無制限に無料で使用できますが、プライベートリポジトリでは一定の無料枠を超えると料金が発生します。2024年2月現在、個人プランでは最大2,000分まで無料で利用可能です。
ワークフローの内容や実行タイミングによりますが、個人開発の場合、例えば1回あたりのアクションが約10分であれば、1日に6回実行することができ、無料枠内で十分な余裕があると考えられます。
しかし、組織での開発では複数人による作業で無料枠を超える可能性が高いです。例として、私が頻繁に使用する"ubuntu-latest"の公式ホステッドランナーを利用すると、CPUの数が2で、1分あたりのコストが1.2円になります。組織全体で1日に100回のアクションを行うと仮定すると、1ヶ月で30,000分を使用し、無料枠を3,000分とした場合、残り27,000分に対して32,400円の費用がかかる計算になります。
このような、リポジトリがプライベートかつ、GithubActionsの実行時間が無料枠を超える場合に、セルフホステッドランナーの利点が大きくなってきます。
自前でランナーの動作環境を用意すれば、GithubActionsからの課金はなく、動作環境の維持費で済むようになります。
もちろん、費用面以外でセルフホステッドランナーにする理由がない場合は、GithubActionsでの課金額とセルフホステッドランナーの動作環境の維持費を比較し、課金額の方が安ければ、セルフホステッドランナーを選択しなくても良いと思います。

GCPのGCE上にセルフホステッドランナーをデプロイしてみます!

さて、今までは深く考えずにGithubホステッドランナーを使ってましたが、セルフホステッドランナーの理解も深めるため、実際に触れていきます。
GithubActionsを実行したいリポジトリの設定画面にランナーの項目があります。

記事の続きは下のリンクをクリック!

https://rightcode.co.jp/blogs/45266


エンジニア積極採用中です!

現在、WEBエンジニア、モバイルエンジニア、デザイナー、営業などを積極採用中です!

採用ページはこちら:https://rightcode.co.jp/recruit

社員の声や社風などを知りたい方はこちら:https://rightcode.co.jp/blogs?category=life

社長と一杯飲みながらお話しませんか?(転職者向け)

特設ページはこちら: https://rightcode.co.jp/gohan-sake-president-talk

もっとワクワクしたいあなたへ

現在、ライトコードでは「WEBエンジニア」「モバイルエンジニア」「ゲームエンジニア」、「デザイナー」「WEBディレクター」「営業」などを積極採用中です!

ライトコードは技術力に定評のある受託開発をメインにしているIT企業です。

有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です。

  • もっと大きなことに挑戦したい!
  • エンジニアとしてもっと成長したい!
  • モダンな技術に触れたい!

現状に満足していない方は、まずは、エンジニアとしても第一線を走り続ける弊社代表と気軽にお話してみませんか?

ネット上では、ちょっとユルそうな会社に感じると思いますが(笑)、
実は技術力に定評があり、沢山の実績を残している会社ということをお伝えしたいと思っております。

  • ライトコードの魅力を知っていただきたい!
  • 社風や文化なども知っていただきたい!
  • 技術に対して熱意のある方に入社していただきたい!

一度、【Wantedly内の弊社ページ】や【コーポレートサイト】をのぞいてみてください。

【コーポレートサイト】https://rightcode.co.jp/

【採用募集】https://rightcode.co.jp/recruit(こちらからの応募がスムーズ)

【wantedlyぺージ】https://www.wantedly.com/companies/rightcode

Invitation from 株式会社ライトコード
If this story triggered your interest, have a chat with the team?
株式会社ライトコード's job postings

Weekly ranking

Show other rankings
Like Hiroyuki Choshi's Story
Let Hiroyuki Choshi's company know you're interested in their content