
CI/CD(Continuous Integration/Continuous Deployment)를 구현하는 방법은 다양하지만, 그중에서도 GitHub Actions는 GitHub 사용자들이 가장 많이 활용하는 대표적인 CI/CD 도구입니다.
이번 글에서는 GitHub Actions와 이 작업을 실행하는 환경인 GitHub-hosted runners에 대해 자세히 알아보겠습니다.
GitHub Actions는 GitHub에서 제공하는 자동화 플랫폼으로, 코드 리포지토리에서 빌드, 테스트, 배포 같은 작업을 자동으로 실행할 수 있습니다.
주요 특징은 다음과 같습니다:
yml 파일을 이용해 PR 생성, 코드 푸시 등 이벤트 기반으로 작업을 정의.GitHub Actions는 이벤트 발생 시 자동으로 정의된 워크플로를 실행합니다. 이 과정은 다음과 같은 순서로 진행됩니다:

GitHub-hosted runners는 GitHub Actions에서 정의한 작업을 실행하는 컴퓨팅 환경(서버)입니다. GitHub에서 관리하는 가상 머신으로, 추가적인 설정 없이 사용할 수 있습니다.
GitHub Actions와 GitHub-hosted runners는 서로 밀접하게 연결된 관계입니다.
즉, GitHub Actions는 "무엇을 할지" 정의하고, GitHub-hosted runners는 "어디서 실행할지"를 담당합니다.
| 특징 | GitHub-hosted runners | Self-hosted runners |
|---|---|---|
| 관리 주체 | GitHub에서 제공 및 관리 | 사용자가 직접 관리 |
| 설정 | 사전 구성된 환경으로 추가 설정 불필요 | 사용자가 원하는 환경으로 설정 가능 |
| 운영체제 | Ubuntu, Windows, macOS 지원 | 사용자가 원하는 모든 운영체제 설정 가능 |
| 유지보수 | 필요 없음 | 사용자가 직접 하드웨어 및 소프트웨어 관리 |
| 사용 사례 | 빠르게 시작 가능한 기본적인 작업 | 특수한 요구사항(고성능 서버 등)이 필요 |
GitHub-hosted runners는 GitHub에서 기본으로 제공해주는 자동화 작업 실행 환경입니다. 쉽게 말해, 하나의 컴퓨터처럼 작동하며, CI/CD 작업을 실행하기 위한 임시 가상 머신이라고 이해하면 됩니다.
GitHub-hosted runners는 AWS, Azure, Google Cloud 등의 클라우드 인프라를 기반으로 동작하며, AWS EC2 인스턴스의 프리티어 사양보다 더 높은 성능을 제공합니다. 이를 통해 일반적인 빌드, 테스트, 배포 작업을 처리할 수 있습니다.
ubuntu-latest → Ubuntu 22.04 LTSwindows-latest → Windows Server 2022macos-latest → macOS 13 Ventura프라이빗 리포지토리의 GitHub-hosted runners는 기본적으로 제공되는 사양이 제한적이며, 실행 시간은 계정 할당량을 소모합니다.

퍼블릭 리포지토리의 GitHub-hosted runners는 무제한 무료로 사용할 수 있으며, 더 높은 사양을 제공합니다.

무료 요금제에서는 사용량이 제한되므로, 퍼블릭과 프라이빗 리포지토리의 차이를 잘 이해하는 것이 중요합니다.

더 많은 리소스가 필요한 작업은 유료 요금제의 Larger runners를 활용할 수 있습니다.

관리 부담 없음
사전 구성된 환경
작업 격리 및 보안
유연한 운영 체제 선택
GitHub-hosted runners의 기본 사양(2코어, 7GB RAM)은 대부분의 CI/CD 작업에 충분하지만, 다음과 같은 경우 추가적인 선택지가 필요할 수 있습니다:
GitHub-hosted runners는 AWS EC2 인스턴스와 유사한 방식으로 작동하지만, CI/CD에 특화된 환경이라는 점에서 차별화됩니다. 주요 차이점은 다음과 같습니다:
| 특징 | GitHub-hosted runners | AWS EC2 인스턴스 |
|---|---|---|
| 초기화 시간 | 작업마다 새 환경 초기화 (수 초) | 수동으로 생성 및 초기화 필요 |
| 유지 비용 | 무료 플랜 가능 (유료 플랜도 가능) | 지속적인 시간당 요금 부과 |
| 사양 설정 가능 여부 | 원하는 사양 선택 가능(유료) | 원하는 사양의 인스턴스 선택 가능 |
| 사용 목적 | CI/CD 작업 중심 | 범용 서버 (어떤 작업이든 가능) |
| 상태 유지 | 작업 종료 후 VM 삭제 | 상태를 유지하거나 스냅샷으로 저장 |