# GitHub 호스팅 실행기

GitHub 는 워크플로를 실행하기 위해 호스트된 가상 머신을 제공합니다. 가상 머신에는 사용할 수 있는 도구, 패키지 및 설정 환경이 포함되어 있습니다 GitHub Actions .

## GitHub호스팅된 실행기 개요

런너는 GitHub Actions 워크플로에서 작업을 실행하는 기계입니다. 예를 들어 실행기는 리포지토리를 로컬로 복제하고, 테스트 소프트웨어를 설치한 다음, 코드를 평가하는 명령을 실행할 수 있습니다.

GitHub 에서는 작업을 실행하는 데 사용할 수 있는 실행기를 제공하거나 [사용자 고유의 실행기를 호스트할 수 있습니다](/ko/actions/concepts/runners/self-hosted-runners). 단일 CPU 실행기를 제외하고, 각 GitHub에서 호스팅되는 실행기는 GitHub에 의해 호스트되는 새 VM(가상 머신)입니다. 단일 CPU 실행기는 공유 가상 머신의 컨테이너에서 호스팅됩니다. [GitHub 호스팅 실행기 참조](/ko/actions/reference/runners/github-hosted-runners#single-cpu-runners)을 참조하세요.

각 러너에는 러너 애플리케이션 및 기타 도구가 미리 설치되어 있습니다.
GitHub 호스팅된 실행기는 Ubuntu Linux, Windows 또는 macOS 운영 체제에서 사용할 수 있습니다.
GitHub에서 호스팅하는 실행기를 사용한다면, 머신 유지 관리 및 업그레이드가 자동으로 처리됩니다.

표준 GitHub 호스팅 실행기 옵션 중 하나를 선택할 수 있으며, GitHub Team 또는 GitHub Enterprise Cloud 계획을 사용 중인 경우, 더 많은 코어를 갖춘 실행기나 GPU 프로세서로 구동되는 실행기를 프로비전할 수 있습니다. 이러한 컴퓨터를 "더 큰 실행기"라고 합니다. 자세한 내용은 [더 큰 주자들](/ko/enterprise-cloud@latest/actions/concepts/runners/larger-runners)을 참조하세요.

대형 실행기 또한 사용자 지정 이미지를 지원하므로 미리 구성된 자체 VM 이미지를 만들고 관리할 수 있습니다. 자세한 내용은 [사용자 지정 이미지를 참조하세요](#custom-images).

GitHub-호스트 실행기를 사용하려면 업로드 및 다운로드 속도가 각각 초당 최소 70킬로비트인 네트워크 연결이 필요합니다.

## 실행기 이미지

GitHub 은 표준 호스팅된 실행기를 위한 자체 VM 이미지 집합을 유지 관리합니다. 이미지 목록과 포함된 도구는 [`actions/runner-images`](https://github.com/actions/runner-images) 리포지토리에서 관리됩니다.

### GitHub 소유 이미지용 사전 설치 소프트웨어

GitHub 소유 이미지에 포함된 소프트웨어 도구는 매주 업데이트됩니다. 업데이트 프로세스는 며칠이 걸리며 `main` 분기에 사전 설치된 소프트웨어 목록은 전체 배포가 종료된 후 업데이트됩니다.

워크플로 로그에는 정확한 실행기에서 사전 설치된 도구에 대한 링크가 포함됩니다. 워크플로 로그에서 이 정보를 찾으려면 `Set up job` 섹션을 확장합니다. 해당 섹션에서 `Runner Image` 섹션을 확장합니다.
`Included Software` 뒤의 링크는 워크플로를 실행한 실행기에 사전 설치된 도구에 대해 설명합니다.

자세한 내용은 [워크플로 실행 기록 보기](/ko/actions/how-tos/monitor-workflows/view-workflow-run-history)을(를) 참조하세요.

GitHub-hosted runners에는 위의 참조에 나열된 패키지 외에도 운영 체제의 기본 제공 도구가 포함됩니다. 예를 들어 Ubuntu 및 macOS 실행기는 `grep`, `find`, `which` 등 여러 기본 도구를 포함합니다.

Windows 및 Ubuntu 실행기 이미지의 각 빌드에 대한 SBOM(소프트웨어 자료 청구서)을 확인할 수도 있습니다. 자세한 내용은 [안전 사용 참조](/ko/actions/reference/security/secure-use#reviewing-the-supply-chain-for-github-hosted-runners)을(를) 참조하세요.

실행기에 설치된 소프트웨어와 상호 작용하는 작업을 사용하는 것이 좋습니다. 이 접근 방식에는 몇 가지 이점이 있습니다.

* 일반적으로 작업에서는 버전 선택, 인수 및 매개 변수 전달 기능과 같은 보다 유연한 기능을 제공합니다.
* 이를 통해 소프트웨어 업데이트와 관계없이 워크플로에 사용되는 도구 버전이 동일하게 유지됩니다.

요청하려는 도구가 있는 경우 [actions/runner-images](https://github.com/actions/runner-images)에서 문제를 여세요. 이 리포지토리에는 실행기에서 모든 주요 소프트웨어 업데이트에 대한 공지 사항도 포함되어 있습니다.

> \[!NOTE]
>
> * 추가 소프트웨어를 GitHub-호스팅된 실행기에 설치할 수도 있습니다.
>   [GitHub 호스팅 실행기 사용자 지정](/ko/actions/how-tos/manage-runners/github-hosted-runners/customize-runners)을(를) 참조하세요.
> * 중첩된 가상화는 실행기를 사용하는 동안 기술적으로 가능하지만 공식적으로 지원되지는 않습니다. 중첩된 VM의 사용은 실험적이며 사용자 고유의 위험에서 수행되며 안정성, 성능 또는 호환성에 대한 보장은 제공하지 않습니다.

### 사용자 지정 이미지

사용자 지정 이미지를 사용하면 제공된 기본 이미지로 GitHub시작하고 워크플로 요구 사항에 맞게 사용자 지정된 고유한 VM 이미지를 빌드할 수 있습니다. 사용자 지정 이미지를 사용하면 다음을 수행할 수 있습니다.

* 기존 워크플로 YAML 구문을 사용하여 사용자 지정 VM 이미지를 빌드합니다.
* 워크플로가 시작되기 전에 승인된 도구, 보안 패치 및 종속성을 사용하여 환경을 미리 구성합니다.
* 모든 빌드에서 일관되고 유효성이 검사된 기본 환경을 만듭니다.

사용자 지정 이미지에는 리포지토리 코드, 컨테이너 이미지, 이진 파일, 인증서 및 기타 종속성이 포함되어 워크플로 간에 일관된 빌드 환경을 만들 수 있습니다. 이렇게 하면 공급망을 제어할 수 있습니다. 이미지의 표면 공격 벡터를 줄여 설정 시간을 줄이고 빌드 성능을 향상시키며 보안을 강화하는 데 도움이 됩니다. 관리자는 조직의 보안 및 규정 준수 요구 사항을 충족하기 위해 이미지 버전, 보존 및 연령을 관리하는 정책을 적용할 수도 있습니다.

사용자 지정 이미지는 .와 함께 대형 러너만 사용할 수 있습니다. 사용자 지정 이미지를 사용하는 작업은 해당 실행기들과 동일한 분당 요금 기준으로 과금됩니다. 사용자 지정 이미지의 저장소는 GitHub Actions 스토리지 서비스를 통해 청구 및 측정됩니다. 자세한 내용은 [GitHub Actions 비용 청구](/ko/billing/concepts/product-billing/github-actions#custom-image-storage)을(를) 참조하세요.

사용자 지정 이미지를 시작하려면 [사용자 지정 이미지 사용](/ko/actions/how-tos/manage-runners/larger-runners/use-custom-images)을 참조하세요.

## Cloud hosts used by GitHub에서 호스팅하는 실행기에서 사용하는 클라우드 호스트

GitHub에서는 GitHub Actions 실행 애플리케이션이 설치된 Microsoft Azure 가상 머신에서 Linux 및 Windows 실행기를 호스팅합니다.
GitHub 호스팅된 러너 애플리케이션은 Azure Pipelines 에이전트의 포크입니다. 모든 Azure 가상 머신에 대해 인바운드 ICMP 패킷이 차단되므로 ping 또는 traceroute 명령이 작동하지 않을 수 있습니다.
GitHub는 Azure 데이터 센터에서 macOS 러너를 호스팅합니다.

## 워크플로 연속성

GitHub Actions 서비스를 일시적으로 사용할 수 없는 경우 트리거된 후 30분 이내에 큐에 대기하지 않으면 워크플로 실행이 삭제됩니다. 예를 들어 워크플로가 트리거되고 GitHub Actions 서비스를 31분 이상 사용할 수 없는 경우 워크플로 실행이 처리되지 않습니다.

또한 워크플로 실행이 성공적으로 큐에 대기되었지만 45분 이내에 호스팅된 GitHub실행기에서 처리되지 않은 경우 대기 중인 워크플로 실행이 삭제됩니다.

## `etc/hosts` 파일

GitHub호스트형 실행기는 다양한 암호 화폐 마이닝 풀 및 악성 사이트에 대한 네트워크 액세스를 차단하는 `etc/hosts` 파일로 프로비전됩니다. MiningMadness.com 및 cpu-pool.com 같은 호스트는 심각한 보안 위험을 초래하지 않도록 localhost로 다시 지정됩니다.