Skip to main content

대규모 비용 제어 및 추적

비용 센터에 회사의 재무 구조를 매핑하고 대규모 예산을 설정하여 비용을 제어하고 기업에 대한 세분화된 보고를 제공합니다.

누가 이 기능을 사용할 수 있나요?

Enterprise owners and billing managers

비용 센터는 GitHub Enterprise 제품에서 사용 가능합니다. GitHub Enterprise Cloud의 평가판을 설정하십시오.

비용 센터는 GitHub 비용을 회사의 재무 구조에 매핑하여 추적하고 제어하는 데 도움이 됩니다.

이 자습서에서는 사용자 인터페이스와 REST API를 모두 사용하여 비용 센터를 계획, 만들기 및 관리하는 방법을 안내하여 조직의 요구에 가장 적합한 방법을 결정하는 데 도움을 줍니다.

비용 센터 전략 수립

비용 센터에서는 데이터 변수를 그룹화할 수 있습니다.product.github %} 리소스(사용자, 조직 및 리포지토리)를 별도의 비용 추적 및 보고를 위해 그룹화할 수 있습니다. 각 비용 센터는 별도의 엔터티로 비용을 보고하거나 제어하려는 회사의 세그먼트를 나타내야 합니다.

Azure 청구를 사용하는 경우 각 비용 센터에 다른 청구 ID를 할당할 수 있습니다.

필요한 비용 센터 식별

최상의 전략은 재무 보고 구조와 GitHub 설정의 복잡성에 따라 달라집니다. 가장 간단한 접근 방식부터 시작합니다. 나중에 언제든지 더 많은 비용 센터를 추가할 수 있습니다.

다음 단계에 따라 비용 센터를 계획합니다.

  1.        **재무 엔터티에 매핑**: 내부적으로 추적하려는 각 금융 엔터티(예: 부서, 사업부 또는 프로젝트 팀)에 대해 하나의 비용 센터를 만듭니다.
    
  2.        **사용자 식별**: 각 재무 엔터티에 속한 사용자를 나열합니다. 사용자를 비용 센터에 직접 할당하면 라이선스 및 제품 사용량이 올바르게 할당됩니다.
    
  3.        **조직 식별**: 각 재무 엔터티에 속한 조직을 나열합니다. 조직을 비용 센터에 할당하면 작업, Codespaces, 패키지 및 기타 제품의 사용량이 적절히 배분됩니다.
    
  4.        **혼합 소유권 식별**: 조직에 다른 금융 엔터티가 소유한 리포지토리가 포함된 경우 개별 리포지토리를 관련 비용 센터에 할당하고 조직을 할당하지 않은 상태로 둡니다.
    

사용자가 비용 센터 A에 직접 할당되고 조직 멤버 자격으로 간접적으로 비용 센터 B의 일부인 경우 사용이 허가된 제품에 대한 모든 비용은 비용 센터 A에 할당됩니다. 자세한 내용 및 예제는 제품별 비용 센터 할당을 참조하세요.

2. UI에서 비용 센터 만들기

이제 UI(사용자 인터페이스)를 사용하여 첫 번째 비용 센터를 만들어 비용 센터의 작동 방식을 숙지합니다. 예로 식별한 비용 센터 중 하나를 선택합니다. 작은 금융 엔터티로 시작하는 것이 가장 좋습니다.

  1. 귀하의 기업으로 이동하세요. 예를 들어 GitHub.com의 Enterprises 페이지에서.
  2. 페이지 맨 위에 있는 청구 및 라이선스를 클릭합니다.
  3.        **비용 센터**를 클릭합니다.
    
  4. 오른쪽 위 모서리에서 새 비용 센터를 클릭합니다.
  5. "이름" 아래의 텍스트 상자에 비용을 추적하려는 재무 엔터티의 이름을 입력합니다.
  6. 필요에 따라 이 금융 엔터티에 별도의 Azure 구독이 있는 경우 비용 센터에 Azure 구독을 추가하여 사용량을 직접 청구할 수 있습니다. Azure에 대해 자격 증명을 검증하여 계정에 연계된 Azure ID의 사용 가능 여부를 확인합니다.
  7.        **리소스**에서 이 비용 센터의 일부로 추적할 사용자, 조직 및 리포지토리를 선택합니다.
    
  8.        **비용 센터 만들기**를 클릭합니다.
    

이제 새 비용 센터가 활성화되어 사용량이 즉시 비용 센터에 할당되기 시작합니다. 향후 청구 보고서에는 이 비용 센터에 할당된 사용량에 대한 항목이 cost_center_name 열에 포함됩니다. 이 비용 센터에서 사용 현황 차트를 필터링할 수도 있습니다.

3. 비용을 제어하도록 예산 설정

비용 센터를 만들면 다른 금융 엔터티에 대한 비용을 별도로 추적할 수 있습니다. 실제로 비용을 제어하려면 비용 센터에 예산을 적용해야 합니다.

예산 이해

예산을 통해 지출을 제어할 수 있습니다. 각 예산:

  • 단일 조직, 리포지토리, 비용 센터 또는 전체 기업에 적용됩니다.
  • 유료 제품, SKU 또는 SKU 그룹의 월별 사용량을 제어합니다.
  • 사용량을 중지하거나 예산 한도에 도달한 경우에만 경고하도록 구성할 수 있습니다.
  • 예산 한도에 접근할 때 계정 소유자, 청구 관리자 및 지명된 사용자에게 경고할 수 있습니다.

비용 센터 예산 계산

내부 재무 계획에서 이 비용 센터에 GitHub에 대한 단일 월별 예산을 할당하는 경우, 이 팀이 사용하는 제품에 분배해야 합니다.

  1.        **고정 라이선스 비용 계산**: 팀에서 이미 사용하는 GitHub Enterprise, GitHub Copilot, GitHub Secret Protection and GitHub Code Security 라이선스의 비용을 계산합니다.
    
  2.        **가변 예산 계산**: 내부 예산에서 라이선스 비용을 뺍니다. 나머지 금액은 계획에 포함된 것 이상으로 사용량 기반 제품에 할당할 수 있는 금액입니다.
    

비용 센터에 대한 예산 만들기

비용을 제어하려는 각 제품, SKU 또는 SKU 그룹에 대해 하나의 예산을 만듭니다.

  1. "청구 및 라이선스 탭"에서 예산 및 알림을 클릭하여 기존 예산을 표시합니다.

  2.        **새 예산을** 클릭하여 "새 월별 예산" 페이지를 엽니다.
    
  3. "예산 유형"에서 제품 수준 예산, SKU 수준 예산 또는 번들 프리미엄 요청 예산을 선택합니다.

    • 제품 수준에서 지출을 제한하려면 "제품 수준 예산"에서 드롭다운에서 제품을 선택합니다(예: Codespaces).
    • 특정 품목의 지출을 제한하려면 ‘SKU 수준 예산’ 메뉴에서 해당 제품을 클릭한 후, Copilot 또는 Copilot 프리미엄 요청과 같이 관리하고자 하는 SKU를 직접 선택해 주시기 바랍니다.
    • 모든 프리미엄 요청에 대한 지출을 제한하려면 "번들 프리미엄 요청 예산"을 사용합니다.
  4.        **다음을 클릭합니다. "예산** 범위"를 표시하도록 예산을 구성하고 이 예산의 지출 범위를 이전에 만든 비용 센터로 설정합니다.
    
  5. "예산"에서 예산 금액을 설정합니다. 예산 한도에 도달하면 사용량 및 추가 지출을 중지하려면 예산 한도에 도달하면 사용 중지를 선택합니다. 라이선스 기반 제품에는 사용할 수 없습니다.

  6. 사용량이 예산 목표의 75%,%90개 및% 100개에 도달하면 경고를 받으려면 "경고"에서 예산 임계값 경고 수신 을 선택합니다. 계정 소유자, 청구 관리자 및 지정된 추가 받는 사람은 전자 메일을 통해 알림을 받습니다. 언제든지 옵트아웃할 수 있습니다.

    "경고 받는 사람"에서 경고를 받을 추가 받는 사람을 선택합니다.

  7.        **예산 생성**을 클릭합니다.
    

충돌에 대한 기존 예산 검토

비용 센터 예산을 만든 후 기존 엔터프라이즈 전체 예산을 확인하여 새 비용 센터 예산과 충돌하거나 재정의하지 않도록 합니다.

"예산 및 경고" 페이지로 이동합니다. 두 가지 예산 목록이 표시됩니다.

  •         **엔터프라이즈 예산**: 전체 엔터프라이즈 계정에 적용되는 제한
    
  •         **기타 예산**: 특정 리포지토리, 조직 또는 비용 센터에 대한 제한
    

엔터프라이즈 예산 확인

새 비용 센터 예산과 동일한 제품 또는 SKU에 엔터프라이즈 예산이 적용되는지 검토합니다. 기업 예산이 매우 낮은 경우 비용 센터의 자체 예산에 도달하기 전에 비용 센터의 사용을 차단할 수 있습니다. 충돌하는 기업 예산을 삭제하거나 조정하는 것이 좋습니다.

비용 센터 예산 보기

다른 예산 목록을 필터링하여 비용 센터의 범위를 표시합니다. 생성한 각 예산마다 새로운 행이 추가되어 비용 센터에서 확인할 수 있습니다. 처음에는 사용량이 0에 가까우지만, 사용자와 리포지토리가 요금제에서 허용 범위를 초과하는 제품을 소비함에 따라 며칠 내에 비용이 누적되는 것을 볼 수 있습니다.

4. REST API를 사용하여 비용 센터 만들기

이제 사용자 인터페이스에서 비용 센터를 만드는 방법을 이해했으므로 REST API를 탐색하여 비용 센터를 프로그래밍 방식으로 만드는 방법을 확인할 수 있습니다. API를 이해하면 자동화가 조직에 도움이 되는지 여부를 평가하는 데 도움이 됩니다.

이 섹션에서는 GitHub CLI를 활용하여 비용 센터 관리에 필요한 주요 REST API 엔드포인트를 소개합니다. GitHub CLI 설치 및 이러한 엔드포인트에 액세스하기 위한 인증에 대한 자세한 내용은 GitHub REST API에 대한 빠른 시작을 참조하세요.

참고

아래 예시는 GitHub CLI를 활용하지만, REST API 호출을 지원하는 다른 HTTP 클라이언트나 curl 명령어로도 적용 가능합니다.

모든 기존 비용 센터 나열

먼저 엔터프라이즈의 모든 비용 센터를 검색하여 이미 존재하는 것을 확인합니다. 이 간단한 요청을 사용하면 엔터프라이즈에 대한 청구를 관리하기 위해 올바르게 인증되었는지 확인할 수 있습니다.

터미널에 아래 명령어를 입력하되, ENTERPRISE 은 실제 enterprise 슬러그로 변경하여 실행하시기 바랍니다.

Shell
gh api \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  /enterprises/ENTERPRISE/settings/billing/cost-centers

응답에는 이 자습서의 앞부분에서 만든 비용 센터를 포함하여 엔터프라이즈에서 만든 모든 비용 센터가 포함됩니다. 이 예제에서 엔터프라이즈에는 조직과 두 명의 사용자가 할당된 하나의 비용 센터인 "Octocenter"가 있습니다.

{
  "costCenters": [
    {
      "id": "33635e2c-edc0-40b8-abea-261839ff73c1",
      "name": "Octocenter",
      "state": "active",
      "resources": [
        {
          "type": "User",
          "name": "monalisa"
        },
        {
          "type": "Org",
          "name": "doctocat-org"
        },
        {
          "type": "User",
          "name": "doctocat"
        }
      ]
    }
  ]
}

새 비용 센터 만들기

이름을 제공하여 새 비용 센터를 만듭니다. 이 비용 센터를 관리하는 데 사용할 고유 식별자를 받게 됩니다.

터미널에서 다음 명령을 실행하고, ENTERPRISENAME을 적절한 값으로 대체합니다.

Shell
gh api \
  --method POST \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  /enterprises/ENTERPRISE/settings/billing/cost-centers \
   -f 'name=NAME'

응답에는 새 비용 센터의 식별자가 포함됩니다. 이 비용 센터에서의 향후 모든 작업에 이 id를 사용해야 합니다.

{
  "id": "3312fdf2-5950-4f64-913d-e734124059c9",
  "name": "NAME",
  "state": "active",
  "resources": []
}

비용 센터에 리소스 추가

비용 센터에 사용자, 조직 및 리포지토리를 할당합니다. 이 예제에서는 여러 사용자 및 조직을 추가하는 방법을 보여줍니다.

터미널에서 다음 명령을 실행할 때 COST_CENTER_ID을(를) 이전 단계의 식별자로 대체하고, ENTERPRISE, NAME, ORG는 적절한 값으로 대체하세요.

Shell
gh api \
  --method POST \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  /enterprises/ENTERPRISE/settings/billing/cost-centers/COST_CENTER_ID/resource \
  --input - <<< '{
  "users": [
    "NAME-1",
    "NAME-2"
  ],
  "organizations": [
    "ORG-1"
  ]
}'

응답은 리소스의 성공적인 추가를 확인합니다. 이전에 다른 비용 센터에 할당된 리소스가 있으면 배열에 reassigned_resources 나열됩니다.

{
  "message": "Resources successfully added to the cost center.",
  "reassigned_resources": [
    {
      "resource_type": "User",
      "name": "monalisa",
      "previous_cost_center": "Octocenter"
    }
  ]
}

엔드포인트가 응답하는 Problems parsing JSON경우 JSON 유효성 검사기를 사용하여 옵션에 --input 지정된 데이터가 유효한지 확인합니다.

5. REST API를 사용하여 예산 설정

예산을 프로그래밍 방식으로 만들어 만든 비용 센터에 지출 제어를 적용할 수 있습니다. 이는 프리미엄 요청과 같은 사용량 기반 비용을 대규모로 관리하는 데 특히 유용합니다.

프리미엄 요청에 대한 예산 만들기

이 예제에서는 Copilot 프리미엄 요청에 대한 SKU 수준 예산을 만들고 새 비용 센터에 적용하는 방법을 보여 줍니다. 이렇게 하면 이 비용 센터의 리소스에 의한 프리미엄 요청 사용량에 대한 지출 한도를 설정할 수 있습니다.

터미널에서 다음 명령을 실행합니다. ENTERPRISE, COST_CENTER_ID, USERNAME, 1000.0를 적절한 값으로 바꿔주세요.

Shell
gh api \
  --method POST \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  /enterprises/ENTERPRISE/settings/billing/budgets \
  -f budget_type='SkuPricing' \
  -f budget_product_sku='copilot_premium_request' \
  -f budget_scope='cost_center' \
  -f budget_entity_name='COST_CENTER_ID' \
  -F budget_amount=1000.0 \
  -F prevent_further_usage=true \
  -f budget_alerting='{"will_alert":true,"alert_recipients":["USERNAME"]}'

응답은 예산이 생성되었음을 확인하고 그 구성을 반환합니다. 이 예산은 prevent_further_usagewill_alerttrue로 설정됨을 유의하십시오. octocat@github.com 예산 한도에 도달하면 이메일 주소에 경고가 표시되고 1,000 USD에 도달하면 비용 센터 리소스에 대한 사용이 차단됩니다.

{
  "id": "budget-uuid-here",
  "budget_type": "SkuPricing",
  "budget_product_sku": "copilot_premium_request",
  "budget_scope": "cost_center",
  "budget_entity_name": "3312fdf2-5950-4f64-913d-e734124059c9",
  "budget_amount": 1000.0,
  "prevent_further_usage": true,
  "budget_alerting": {
    "will_alert": true,
    "alert_recipients": [
      "octocat"
    ]
  }
}

동일한 비용 센터에 대해 여러 예산을 만들어 서로 다른 제품 또는 SKU를 독립적으로 제어할 수 있습니다. 예를 들어 Copilot 프리미엄 요청, GitHub Actions 컴퓨팅 및 Codespaces 사용량에 대해 별도의 예산을 설정할 수 있습니다. GitHub 제품 및 SKU 이름을(를) 참조하세요.

6. 자동화 여부를 결정합니다.

이 자습서에서는 비용 센터를 만드는 두 가지 방법, 즉 실습 관리를 위한 사용자 인터페이스를 사용하고 프로그래밍 방식 관리를 위해 REST API를 사용하는 방법을 보여 줍니다. 두 방법을 모두 이해하면 조직에 적합한 방법을 결정하는 데 도움이 됩니다.

          **사용자 인터페이스**는 다음과 같은 경우에 이상적입니다.
  • 처음 몇 개의 비용 센터를 설정합니다.

  • 기존 비용 센터를 가끔 업데이트합니다.

  • 변경 내용을 시각적으로 확인하는 것이 좋습니다.

  • 관리할 비용 센터가 적습니다.

            **REST API**는 다음과 같은 경우에 유용합니다.
    
  • 여러 비용 센터를 정기적으로 만들거나 업데이트해야 합니다.

  • 기존 금융 시스템과 비용 센터 관리를 통합하거나 외부 데이터 원본에서 구성을 생성해야 합니다.

  • 조직 구조(예: 팀 멤버 자격 또는 부서 구조)를 미러링하려면 비용 센터가 필요합니다.

  • 사용자가 역할을 변경하거나 팀 간에 이동할 때 비용 센터 할당을 자동으로 유지 관리해야 합니다.

자동화 옵션

자동화가 조직에 도움이 되도록 결정하는 경우 이 자습서의 REST API 예제는 사용자 지정 스크립트를 빌드하기 위한 토대를 제공합니다. 다른 엔드포인트에 대한 자세한 내용은 청구에 대한 REST API 엔드포인트을 참조하세요.

팀 멤버 자격에 따라 비용 센터를 자동화하거나 프리미엄 요청 비용을 제어하기 위한 2계층 모델을 만들려는 경우 GitHub Cost Center Automation 은 필요에 맞게 조정할 수 있는 작업 워크플로를 사용하여 완전한 구현을 제공합니다.

다음 단계

사용량 및 비용 보고를 자동화하는 데 사용할 수 있는 엔드포인트에 대해 알아보려면 REST API를 사용하여 사용 보고 자동화을 참조하세요.

모든 액세스를 차단하려는 유료 제품이 있는 경우 엔터프라이즈 정책을 사용하여 기능을 사용하지 않도록 설정할 수 있습니다. 엔터프라이즈 정책을(를) 참조하세요.