CI 러너
CI 러너는 CI/CD 파이프라인의 작업을 실행하는 머신입니다. CI 서비스에서 작업을 받아 단계를 실행하고 결과를 다시 보고합니다.
최종 업데이트: 2026년 11월 11일
CI 러너는 CI/CD 파이프라인의 작업을 실행하는 물리 또는 가상 머신입니다. CI 서비스에서 작업을 받아 코드를 체크아웃하고, 단계를 실행하고, 결과를 다시 보고합니다. Jenkins와 Azure Pipelines는 같은 것을 에이전트라고 부르고, 다른 시스템은 익스큐터라고 부릅니다.
GitHub Actions에서 러너가 작동하는 방식
워크플로의 runs-on 레이블이 어떤 러너가 작업을 받을지 결정합니다. GitHub는 작업의 레이블과 그룹에 일치하는 온라인 러너를 찾으며, 어떤 러너도 가져가지 않은 작업은 대기열에 머물다가 24시간 후 실패합니다(GitHub의 셀프 호스팅 러너 레퍼런스). 러너 애플리케이션은 HTTPS로 GitHub에 아웃바운드 연결해 작업을 받고, 작업이 실행되는 동안 로그를 다시 스트리밍하며, 임시 러너라면 작업 후 폐기됩니다.
GitHub는 컨트롤 플레인입니다. 리포지토리, 워크플로 파일, 시크릿 저장소, 로그, 체크를 보관합니다. 실제 작업은 러너가 수행합니다.
러너의 세 가지 유형
- CI 업체가 호스팅하는 러너. GitHub 호스팅 러너는 작업마다 새 가상 머신을 제공하며 빌드 시간 단위로 청구됩니다.
- 셀프 호스팅 러너. 직접 패치, 격리, 확장하는 자체 머신입니다. 관리형 러너와 셀프 호스팅 러너 비교를 참조하세요.
- 서드파티 관리형 러너. 제공업체가 머신을 운영하며, 머신은 GitHub에 셀프 호스팅 러너로 등록됩니다. GitHub Actions 러너 제공업체 비교를 참조하세요.
러너는 새 머신에서 작업 하나만 실행하는 임시 러너이거나, 같은 머신에서 여러 작업을 실행하는 영구 러너입니다. 임시 러너가 더 안전합니다. 한 작업이 남긴 파일이나 자격 증명이 다음 작업에 전혀 닿지 않기 때문입니다.
러너가 보안에 중요한 이유
러너는 소스 코드, 시크릿, 다운로드한 의존성이 한곳에 모이는 곳입니다. 작업의 토큰과 클라우드 자격 증명을 보유하고, 모든 패키지 설치 스크립트를 실행하며, 빌드가 맺는 모든 네트워크 연결을 만듭니다. 손상된 의존성은 러너의 접근 권한으로 움직입니다.
따라서 러너는 보안 경계입니다. 작업을 서로 격리하고, 이그레스 정책으로 러너가 접근할 수 있는 범위를 제한하고, 각 작업이 가져온 것을 기록하세요.
CRACI
CRACI는 GitHub Actions 러너입니다. 워크플로는 GitHub에 그대로 둔 채 runs-on: craci로 작업을 옮기며, 실행도 계속 GitHub에 표시됩니다. 각 작업은 이그레스 정책 아래 격리된 전용 가상 머신에서 실행되고, 가져온 것의 SBOM을 생성합니다. CRACI 러너와 CRACI vs GitHub 호스팅 러너를 참조하세요.
CRACI는 현재 GitHub Actions용 Linux 작업만 실행합니다. GitLab CI, Jenkins, Windows, macOS용 러너는 해당 업체나 셀프 호스팅으로 마련해야 합니다.