Git

[GitHub] Self-hosted에 대해 / GitHub-hosted와의 차이점

범데이 2022. 5. 2. 00:21

1. self-hosted runners란?

자체 러너를 호스팅하고 GitHub Actions workflows이서 job을 실행하는데 사용되는 환경을 사용자 지정할 수 있다.

 

self-hosted runner는 GitHub의 Actions에서 jobs를 실행하기 위해 배포하고 관리하는 시스템이다.

(GitHub Actions에 대해서는 GitHub Docs를 참조하자.)

 

self-hosted runner GitHub-hosted runners에서 제공하는 하드웨어, 운영체제, 소프트웨어 도구보다 더 많은 제어를 할수 있도록 제공한다. self-hosted runners를 사용하여 더 큰 작업을 실행하기 위한 처리 능력 또는 메모리로 요구사항을 충족하는 맞춤형 하드웨어 구성을 생성할 수 있다. 로컬 네트워크에서 사용 가능한 소프트웨어를 설치, 그리고 GitHub-hosted runners에서 제공하지 않는 운영체제를 선택할 수 있다. self-hoisted runners는 물리, 가상, 컨테이너, 온프레미스나, 클라우드 환경이 될 수 있다.

 

관리계층의 다양한 레벨에서 self-hosted runner를 추가할 수 있다.

  • Repository-lever runners는 단일 레포지토리 전용이다.
  • Organization-level runners는 조직의 여러 레포지토리의 jobs를 처리할 수 있다.
  • Enterprise-level runners는 기업 계정의 여러 레포지토리에 할당할 수 있다.

 

 

2. GitHub-hosted와 self-hosted runners의 차이점

GitHub-hosted runners는 신속하고, 단순한 방법으로 workflow를 실행할수 있게 제공해주고, self-hosted runners는 자체 커스텀 환경에서 높은 구성 가능성을 제공한다.

 

GitHub-hosted runners:

  • 자동으로 업데이트되느 운영체제 및 사전 설치된 패키지들과 도구들 및 self-hosted runner 애플리케이션을 사용할 수 있다.
  • 관리와 유지보수를 GitHub에서 한다.
  • 모든 job 실행에 깨끗한 인스턴스를 제공한다.
  • GitHub plan안에서 무료 시간을 사용할 수 있다.(무료 시간을 초과하면 분당 요금이 적용된다.)

 

Self-hosted runners:

  • 러너의 자동 업데이트를 비활성화할 수 있지만 self-hosted runner 애플리케이션에 대한 자동 업데이트만 수신한다.
  • 사전 결제된 클라우드 서비스나 로컬 머신을 사용할 수 있다.
  • 하드웨어나 운영체제, 소프트웨어, 보안 요구사항에 맞게 커스터마이징할수 있다.
  • 모든 job 실행에 깨끗한 인스턴스가 필요하지 않는다.
  • GitHub Actions를 무료로 사용할 수 있으나, runner 머신에 대해 유지보수 비용을 부담해야 한다.

 

 

3. self-hosted runner 머신의 요구사항

다음 요구사항을 충족하는 한 모든 시스템을 self-hosted runner로 사용할 수 있다.

  • 머신에 self-hosted runner애플리케이션을 설치하고 실행할 수 있다. 자세한 내용은 "Supported architectures and operating systems for self-hosted runners."에서 볼 수 있다.
  • 머신은 GitHub Actions와 통신할 수 있다. 자세한 정보는 "Communication between self-hosted runners and GitHub."에서 확인할 수 있다.
  • 머신에는 실행하려는 workflow type에 대한 충분한 하드웨어 리소스가 있다. self-hosted runner 애플리케이션 자체에는 최소한의 리소스만 필요하다.
  • 만일 Docker container actions나 service container를 사용해서 workflows를 실행하기를 원한다면, 반드시 Linux머신에다가 Docker가 반드시 설치되어 있어야 한다.

 

 

 


#References

https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners

 

About self-hosted runners - GitHub Docs

About self-hosted runners A self-hosted runner is a system that you deploy and manage to execute jobs from GitHub Actions on GitHub.com. For more information about GitHub Actions, see "Understanding GitHub Actions." Self-hosted runners offer more control o

docs.github.com

 

반응형