더 큰 러너 관리하기

더 큰 러너 관리하기

조직이나 엔터프라이즈를 위해 더 큰 러너(larger runners)를 구성할 수 있어요. 더 큰 러너는 자동 확장(autoscaling)되는 러너 풀로, 동시 작업을 처리하기 위해 필요에 따라 인스턴스가 늘어나고 줄어들어요.

출처: 문서

본문

조직에 더 큰 러너 추가하기

조직 소유자는 조직에 더 큰 러너를 추가하고 어떤 저장소가 사용할 수 있는지 제어할 수 있어요. 조직을 위해 새 러너를 만들면 기본적으로 조직의 모든 저장소가 러너에 접근할 수 있어요. 러너를 사용할 수 있는 저장소를 제한하려면 특정 저장소에 접근 권한이 있는 러너 그룹에 할당해요. 자세한 내용은 저장소가 더 큰 러너에 접근하도록 허용하기를 참고하세요.

사용 가능한 옵션 목록에서 운영 체제와 하드웨어 구성을 선택할 수 있어요. 자동 확장을 통해 이 러너의 새 인스턴스가 배포되면 여기서 정의한 것과 동일한 운영 체제와 하드웨어 구성이 사용돼요.

새 러너는 자동으로 기본 그룹에 할당되거나, 러너 생성 과정에서 러너가 합류해야 할 그룹을 선택할 수 있어요. 또한 러너를 등록한 후 러너의 그룹 구성원 자격을 수정할 수 있어요. 자세한 내용은 더 큰 러너에 대한 접근 제어하기를 참고하세요.

  1. GitHub에서 조직의 메인 페이지로 이동해요.

  2. 조직 이름 아래에서 Settings 탭을 클릭해요.

    조직 프로필의 탭 스크린샷. "Settings" 탭이 진한 주황색으로 윤곽선이 그려져 있어요.

  3. 왼쪽 사이드바에서 Actions을 클릭한 다음 Runners을 클릭해요.

  4. New runner을 클릭한 다음 New GitHub-hosted runner을 클릭해요.

  5. 새 러너를 구성하기 위해 필요한 세부 정보를 완료해요:

    • Name: 새 러너의 이름을 입력해요. 식별이 쉬우도록 하드웨어와 운영 구성을 나타내는 이름이어야 해요(예: ubuntu-24.04-16core).

    • Platform: 사용 가능한 옵션에서 플랫폼을 선택해요. 플랫폼을 선택하면 특정 이미지를 선택할 수 있게 돼요.

      커스텀 이미지를 빌드하는 경우 러너에 선택한 플랫폼이 빌드하려는 이미지의 플랫폼과 일치해야 해요. 러너의 플랫폼은 다음 중 하나일 수 있어요:

      • Linux x64
      • Linux ARM64
      • Windows x64
    • Image: 사용 가능한 옵션에서 이미지를 선택해요. 이미지를 선택하면 특정 크기를 선택할 수 있게 돼요.

      • GitHub-owned: GitHub이 관리하는 이미지의 경우 이 탭 아래의 이미지를 선택해요.
      • Partner: 파트너가 관리하는 이미지의 경우 이 탭 아래의 이미지를 선택해요. 예: Base Windows 11 desktop, GPU 최적화, arm64 이미지가 이 탭 아래에 있어요.
      • Custom: 조직이나 엔터프라이즈가 만든 이미지의 경우 이 탭 아래의 이미지를 선택해요. 커스텀 이미지는 사용자, 조직, 또는 엔터프라이즈가 설정한 이미지 빌드 러너에서 워크플로를 실행해 만들어요. 자세한 내용은 커스텀 이미지 설치하기를 참고하세요.
    • Size: 사용 가능한 옵션 목록에서 하드웨어 구성을 선택해요. 사용 가능한 크기는 이전 단계에서 선택한 이미지에 따라 달라져요. GPU 러너의 경우 GPU-powered 탭 아래에서 크기를 선택해요.

    • Maximum concurrency: 어떤 시점에든 활성화될 수 있는 최대 작업 수를 선택해요.

    • Runner group: 러너가 구성원이 될 그룹을 선택해요. 이 그룹은 수요에 맞춰 러너의 여러 인스턴스를 호스팅하며 수요에 따라 확장·축소돼요.

    Note

    더 큰 러너의 이름이 그 기능을 결정할 수 있어요. 예를 들어 코드 스캐닝 기본 설정(default setup)에 더 큰 러너를 사용하려면 러너 이름이 code-scanning이어야 해요. 더 큰 러너로 코드 스캐닝하는 방법에 대한 자세한 내용은 기본 설정을 위한 더 큰 러너 구성하기를 참고하세요.

  6. Create runner을 클릭해요.

  7. 저장소가 더 큰 러너에 접근할 수 있게 하려면, 사용할 수 있는 저장소 목록에 저장소를 추가해요. 자세한 내용은 저장소가 더 큰 러너에 접근하도록 허용하기를 참고하세요.

저장소가 더 큰 러너에 접근하도록 허용하기

저장소는 러너 그룹을 통해 더 큰 러너에 접근 권한이 부여돼요. 엔터프라이즈 관리자는 어떤 조직이 엔터프라이즈 수준 러너 그룹에 접근 권한을 받는지 선택할 수 있고, 조직 소유자는 모든 더 큰 러너에 대한 저장소 수준 접근을 제어해요.

조직 소유자는 조직의 저장소를 위해 엔터프라이즈 수준 러너 그룹을 사용·구성하거나, 접근을 제어하기 위해 조직 수준 러너 그룹을 만들 수 있어요.

  • 엔터프라이즈 수준 러너 그룹의 경우: 기본적으로 조직의 저장소는 엔터프라이즈 수준 러너 그룹에 접근할 수 없어요. 저장소가 엔터프라이즈 러너 그룹에 접근할 수 있게 하려면 조직 소유자가 각 엔터프라이즈 러너 그룹을 구성하고 어떤 저장소가 접근할지 선택해야 해요.
  • 조직 수준 러너 그룹의 경우: 기본적으로 조직의 모든 저장소는 조직 수준 러너 그룹에 접근 권한이 부여돼요. 어떤 저장소가 접근할지 제한하려면 조직 소유자가 조직 러너 그룹을 구성하고 어떤 저장소가 접근할지 선택해야 해요.

저장소가 더 큰 러너에 접근할 수 있게 되면 더 큰 러너를 워크플로 파일에 추가할 수 있어요. 자세한 내용은 더 큰 러너에서 작업 실행하기를 참고하세요.

  1. 러너 그룹이 있는 조직의 메인 페이지로 이동해요.
  2. 조직 이름 아래에서 Settings 탭을 클릭해요.
  3. 왼쪽 사이드바에서 Actions을 클릭한 다음 Runner groups을 클릭해요.
  4. 페이지의 두 목록 중 하나에서 러너 그룹을 선택해요. 조직 수준 러너 그룹은 페이지 상단에, 엔터프라이즈 수준 러너 그룹은 "Shared by the Enterprise" 아래에 나열돼요.
  5. 러너 그룹 페이지에서 "Repository access" 아래에 All repositories 또는 Selected repositories을 선택해요. 특정 저장소에 접근 권한을 부여하기로 선택했다면 설정 아이콘(기어)을 클릭해요.

Warning

고정 IP 범위(Fixed IP range)를 사용한다면 더 큰 러너를 비공개 저장소에만 사용할 것을 권장해요. 저장소의 포크는 워크플로에서 코드를 실행하는 풀 리퀘스트를 만들어 더 큰 러너에서 위험한 코드를 잠재적으로 실행할 수 있어요. 자세한 내용은 더 큰 러너에 대한 접근 제어하기를 참고하세요.

워크플로가 러너 그룹을 통해서만 러너를 대상으로 하도록 요구하려면 조직이나 엔터프라이즈 수준에서 표준 GitHub 호스팅 러너를 비활성화할 수 있어요. 조직의 GitHub Actions 비활성화 또는 제한하기엔터프라이즈에서 GitHub Actions에 대한 정책 시행하기를 참고하세요.

더 큰 러너의 이름 변경하기

Note

더 큰 러너의 이름이 그 기능을 결정할 수 있어요. 예를 들어 코드 스캐닝 기본 설정에 더 큰 러너를 사용하려면 러너 이름이 code-scanning이어야 해요. 더 큰 러너로 코드 스캐닝하는 방법에 대한 자세한 내용은 기본 설정을 위한 더 큰 러너 구성하기를 참고하세요.

  1. GitHub에서 조직의 메인 페이지로 이동해요.

  2. 조직 이름 아래에서 Settings 탭을 클릭해요.

    조직 프로필의 탭 스크린샷. "Settings" 탭이 진한 주황색으로 윤곽선이 그려져 있어요.

  3. 왼쪽 사이드바에서 Actions을 클릭한 다음 Runners을 클릭해요.

  4. 러너 목록에서 편집할 러너를 선택해요.

  5. "Name" 아래의 텍스트 필드에 러너의 새 이름을 입력해요.

  6. Save을 클릭해요.

더 큰 러너의 크기 변경하기

  1. GitHub에서 조직의 메인 페이지로 이동해요.

  2. 조직 이름 아래에서 Settings 탭을 클릭해요.

    조직 프로필의 탭 스크린샷. "Settings" 탭이 진한 주황색으로 윤곽선이 그려져 있어요.

  3. 왼쪽 사이드바에서 Actions을 클릭한 다음 Runners을 클릭해요.

  4. 러너 목록에서 편집할 러너를 선택해요.

  5. "Size" 아래의 사용 가능한 옵션 목록에서 러너의 새 크기를 선택해요. 사용 가능한 크기는 러너에 설치된 이미지에 따라 달라져요.

  6. Save을 클릭해요.

더 큰 러너의 이미지 변경하기

  1. GitHub에서 조직의 메인 페이지로 이동해요.

  2. 조직 이름 아래에서 Settings 탭을 클릭해요.

    조직 프로필의 탭 스크린샷. "Settings" 탭이 진한 주황색으로 윤곽선이 그려져 있어요.

  3. 왼쪽 사이드바에서 Actions을 클릭한 다음 Runners을 클릭해요.

  4. 러너 목록에서 편집할 러너를 선택해요.

  5. "Image" 아래의 사용 가능한 옵션 목록에서 러너의 새 이미지를 선택해요. 사용 가능한 이미지는 GitHub 소유 이미지로 제한돼요.

  6. Save을 클릭해요.

더 큰 러너에 대한 자동 확장 구성하기

특정 러너 집합에 대해 동시에 실행되도록 허용되는 최대 작업 수를 제어할 수 있어요. 이 필드를 더 높은 값으로 설정하면 병렬 처리로 인해 워크플로가 차단되는 것을 방지하는 데 도움이 돼요.

  1. GitHub에서 조직의 메인 페이지로 이동해요.

  2. 조직 이름 아래에서 Settings 탭을 클릭해요.

    조직 프로필의 탭 스크린샷. "Settings" 탭이 진한 주황색으로 윤곽선이 그려져 있어요.

  3. 왼쪽 사이드바에서 Actions을 클릭한 다음 Runners을 클릭해요.

  4. 러너 목록에서 편집할 러너를 선택해요.

  5. "Capacity" 섹션의 "Maximum concurrency" 아래에 동시에 실행하도록 허용할 최대 작업 수를 입력해요.

  6. Save을 클릭해요.

더 큰 러너를 위한 고정 IP 주소 만들기

Note

  • 고정 IP 주소를 사용하려면 조직이 GitHub Enterprise Cloud를 사용해야 해요. GitHub Enterprise Cloud를 무료로 체험하는 방법에 대한 자세한 내용은 GitHub Enterprise Cloud 체험판 설정하기를 참고하세요.
  • macOS 더 큰 러너는 고정 IP 주소를 지원하지 않아요.

더 큰 러너에 고정 IP 주소를 활성화할 수 있어요. 이렇게 하면 더 큰 러너에 고정 IP 주소 범위가 할당돼요. 할당된 범위의 모든 IP 주소를 사용할 수 있어요. 기본적으로 계정에 고정 IP 주소 범위를 가진 더 큰 러너 풀을 최대 10개까지 구성할 수 있어요. 고정 IP 주소 범위를 가진 더 큰 러너 풀을 10개 이상 사용하려면 GitHub Support 포털을 통해 문의해 주세요.

만드는 각 더 큰 러너는 단일 머신이 아니에요. 러너를 만들 때 설정한 최대 동시성까지 동시 작업을 처리하기 위해 자동으로 확장되는 러너 풀이에요. 풀의 모든 작업은 동일한 고정 IP 주소 범위를 공유해요. 즉, 고정 IP 범위가 하나인 단일 더 큰 러너가 추가 러너 없이도 동시에 실행되는 많은 작업을 처리할 수 있어요.

할당된 범위의 사용 가능한 IP 주소 수는 동시 작업 수를 제한하지 않아요. 러너 풀 내에는 할당된 범위의 IP 주소를 높은 재사용률로 처리할 수 있는 로드 밸런서가 있어요. 이는 각 머신에 고정 IP 주소가 할당되면서도 워크플로가 규모에 맞춰 동시에 실행될 수 있게 보장해요.

  1. GitHub에서 조직의 메인 페이지로 이동해요.

  2. 조직 이름 아래에서 Settings 탭을 클릭해요.

    조직 프로필의 탭 스크린샷. "Settings" 탭이 진한 주황색으로 윤곽선이 그려져 있어요.

  3. 왼쪽 사이드바에서 Actions을 클릭한 다음 Runners을 클릭해요.

  4. 러너 목록에서 편집할 러너를 선택해요.

  5. 러너에 고정 IP 주소를 할당하려면 "Networking" 아래에서 Assign unique & static public IP address ranges for this runner을 선택해요.

  6. Save을 클릭해요.

Azure Storage 방화벽 고려 사항

같은 지역의 가상 머신과 스토리지 계정

네트워크 규칙으로 보호되는 Azure Storage 계정을 사용한다면, 같은 Azure 지역의 스토리지 계정으로 가는 더 큰 러너 VM의 트래픽은 더 큰 러너의 공개 IP 범위가 아니라 사설 Azure IP 주소를 사용한다는 점을 알아두세요.

결과적으로 러너 공개 IP 허용 목록에만 의존하는 Azure Storage 방화벽 규칙은 예상대로 작동하지 않을 수 있어요. 이로 인해 403(AuthorizationFailure) 응답으로 나타나는 연결 실패가 발생할 수 있으며, 오류 메시지는 다음과 비슷해요:

The request may be blocked by network rules of storage account. Please check network rule set using 'az storage account show -n accountname --query networkRuleSet'.
  If you want to change the default action to apply when no rule matches, please use 'az storage account update'.

자세한 내용은 Microsoft 문서의 Azure Storage 방화벽에 대한 지침 및 제한 사항Azure Storage에 대한 네트워크 라우팅 기본 설정 구성하기를 참고하세요.

Note

고정 공개 IP 범위(static public IP ranges)Azure VNet을 사용하지 않는 한 더 큰 러너에 대해 Azure Storage 방화벽 네트워크 규칙을 구성하는 것은 권장하지 않아요. 공개 IP 범위는 동적일 수 있으므로 허용 목록 기반 규칙이 깨져 간헐적 연결 실패를 일으킬 수 있어요. 더 큰 러너 참조를 참고하세요.

고정 IP 범위 및 서비스 엔드포인트 사용하기

Storage 계정 네트워크 규칙을 안전하게 활성화하는 한 가지 옵션은 고정 IP를 가진 러너를 사용하고, 그 고정 IP를 호스팅하는 가상 네트워크에 대한 Azure Storage 서비스 엔드포인트 구성을 지원하도록 요청하는 것이에요. 자세한 내용은 Azure 가상 네트워크 서비스 엔드포인트를 참고하세요.

GitHub Support 포털을 통해 GitHub Support에 문의해 이 구성을 설정하세요.

Azure VNET 구성하기

Azure Storage 계정에 안전하게 연결하는 또 다른 옵션은 GitHub 호스팅 러너에서 Azure VNET을 활성화하는 것이에요.