비용 센터는 비용을 회사의 재무 구조에 매핑하여 추적하고 제어 GitHub 하는 데 도움이 됩니다.
이 자습서에서는 사용자 인터페이스와 REST API를 모두 사용하여 비용 센터를 계획, 만들기 및 관리하는 방법을 안내하여 조직의 요구에 가장 적합한 방법을 결정하는 데 도움을 줍니다.
비용 센터 전략 수립
비용 센터에서는 별도의 비용 추적 및 보고를 위해 리소스(사용자, 조직 및 리포지토리)를 그룹화 GitHub 할 수 있습니다. 각 비용 센터는 별도의 엔터티로 비용을 보고하거나 제어하려는 회사의 세그먼트를 나타내야 합니다.
Azure 청구를 사용하는 경우 각 비용 센터에 다른 청구 ID를 할당할 수 있습니다.
필요한 비용 센터 식별
최상의 전략은 재무 보고 구조와 GitHub 설정의 복잡성에 따라 달라집니다. 가장 간단한 접근 방식부터 시작합니다. 나중에 언제든지 더 많은 비용 센터를 추가할 수 있습니다.
다음 단계에 따라 비용 센터를 계획합니다.
-
**재무 엔터티에 매핑**: 내부적으로 추적하려는 각 금융 엔터티(예: 부서, 사업부 또는 프로젝트 팀)에 대해 하나의 비용 센터를 만듭니다. -
**사용자 식별**: 각 재무 엔터티에 속한 사용자를 나열합니다. 사용자를 비용 센터에 직접 할당하면 라이선스 및 제품 사용량이 올바르게 할당됩니다. -
**조직 식별**: 각 재무 엔터티에 속한 조직을 나열합니다. 비용 센터에 조직을 할당하면 작업, Codespaces패키지 및 기타 제품의 사용량이 올바르게 할당됩니다. -
**혼합 소유권 식별**: 조직에 다른 금융 엔터티가 소유한 리포지토리가 포함된 경우 개별 리포지토리를 관련 비용 센터에 할당하고 조직을 할당하지 않은 상태로 둡니다.
팁
사용자가 비용 센터 A에 직접 할당되고 조직 멤버 자격으로 간접적으로 비용 센터 B의 일부인 경우 사용이 허가된 제품에 대한 모든 비용은 비용 센터 A에 할당됩니다. 자세한 내용 및 예제는 제품별 비용 센터 할당을 참조하세요.
2. UI에서 비용 센터 만들기
이제 UI(사용자 인터페이스)를 사용하여 첫 번째 비용 센터를 만들어 비용 센터의 작동 방식을 숙지합니다. 예로 식별한 비용 센터 중 하나를 선택합니다. 작은 금융 엔터티로 시작하는 것이 가장 좋습니다.
- 귀하의 기업으로 이동하세요. 예를 들어 GitHub.com의 Enterprises 페이지에서.
- 페이지 맨 위에 있는 청구 및 라이선스를 클릭합니다.
-
**비용 센터**를 클릭합니다. - 오른쪽 위 모서리에서 새 비용 센터를 클릭합니다.
- "이름" 아래의 텍스트 상자에 비용을 추적하려는 재무 엔터티의 이름을 입력합니다.
- 필요에 따라 이 금융 엔터티에 별도의 Azure 구독이 있는 경우 비용 센터에 Azure 구독을 추가하여 사용량을 직접 청구할 수 있습니다. 자격 증명이 Azure와 비교되어 계정에 연결된 Azure ID가 사용 가능한지 확인합니다.
-
**리소스**에서 이 비용 센터의 일부로 추적할 사용자, 조직 및 리포지토리를 선택합니다. -
**비용 센터 만들기**를 클릭합니다.
이제 새 비용 센터가 활성화되어 사용량이 즉시 비용 센터에 할당되기 시작합니다. 향후 청구 보고서에는 이 비용 센터에 할당된 사용량에 대한 항목이 cost_center_name 열에 포함됩니다. 이 비용 센터에서 사용 현황 차트를 필터링할 수도 있습니다.
3. 비용을 제어하도록 예산 설정
비용 센터를 만들면 다른 금융 엔터티에 대한 비용을 별도로 추적할 수 있습니다. 실제로 비용을 제어하려면 비용 센터에 예산을 적용해야 합니다.
예산 이해
예산을 통해 지출을 제어할 수 있습니다. 각 예산:
- 단일 조직, 리포지토리, 비용 센터 또는 전체 기업에 적용됩니다.
- 유료 제품, SKU 또는 SKU 그룹의 월별 사용량을 제어합니다.
- 사용량을 중지하거나 예산 한도에 도달한 경우에만 경고하도록 구성할 수 있습니다.
- 예산 한도에 접근할 때 계정 소유자, 청구 관리자 및 지명된 사용자에게 경고할 수 있습니다.
비용 센터 예산 계산
내부 재무 계획이 이 비용 센터에 단일 월별 예산을 할당하는 경우, 이 예산을 이 팀이 사용하는 각 제품에 배포해야 합니다.
-
**고정 라이선스 비용 계산**: 팀에서 이미 사용 중인 GitHub EnterpriseGitHub CopilotGitHub Secret Protection and GitHub Code Security라이선스 비용을 합한 다음 -
**가변 예산 계산**: 내부 예산에서 라이선스 비용을 뺍니다. 나머지 금액은 계획에 포함된 것 이상으로 사용량 기반 제품에 할당할 수 있는 금액입니다.
비용 센터에 대한 예산 만들기
비용을 제어하려는 각 제품, SKU 또는 SKU 그룹에 대해 하나의 예산을 만듭니다.
-
"청구 및 라이선스 탭"에서 클릭하여 **** 기존 예산을 표시합니다.
-
**새 예산을** 클릭하여 "새 월별 예산" 페이지를 엽니다. -
"예산 유형"에서 제품 수준 예산, SKU 수준 예산 또는 번들 프리미엄 요청 예산을 선택합니다.
- 제품 수준에서 지출을 제한하려면 "제품 수준 예산"에서 드롭다운에서 제품을 선택합니다(예: Codespaces).
- SKU 수준에서 지출을 제한하려면 "SKU 수준 예산"에서 제품 및 SKU(예 CopilotCopilot : 프리미엄 요청)를 선택합니다.
- 모든 프리미엄 요청에 대한 지출을 제한하려면 "번들 프리미엄 요청 예산"을 사용합니다.
-
**다음을 클릭합니다. "예산** 범위"를 표시하도록 예산을 구성하고 이 예산의 지출 범위를 이전에 만든 비용 센터로 설정합니다. -
"예산"에서 예산 금액을 설정합니다. 예산 한도에 도달하면 사용량 및 추가 지출을 중지하려면 예산 한도에 도달하면 사용 중지를 선택합니다. 라이선스 기반 제품에는 사용할 수 없습니다.
-
사용량이 예산 목표의 75%,%90개 및% 100개에 도달하면 경고를 받으려면 "경고"에서 예산 임계값 경고 수신 을 선택합니다. 계정 소유자, 청구 관리자 및 지정된 추가 받는 사람은 전자 메일을 통해 알림을 받습니다. 언제든지 옵트아웃할 수 있습니다.
"경고 받는 사람"에서 경고를 받을 추가 받는 사람을 선택합니다.
-
**예산 생성**을 클릭합니다.
충돌에 대한 기존 예산 검토
비용 센터 예산을 만든 후 기존 엔터프라이즈 전체 예산을 확인하여 새 비용 센터 예산과 충돌하거나 재정의하지 않도록 합니다.
"예산 및 경고" 페이지로 이동합니다. 두 가지 예산 목록이 표시됩니다.
-
**엔터프라이즈 예산**: 전체 엔터프라이즈 계정에 적용되는 제한 -
**기타 예산**: 특정 리포지토리, 조직 또는 비용 센터에 대한 제한
엔터프라이즈 예산 확인
새 비용 센터 예산과 동일한 제품 또는 SKU에 엔터프라이즈 예산이 적용되는지 검토합니다. 기업 예산이 매우 낮은 경우 비용 센터의 자체 예산에 도달하기 전에 비용 센터의 사용을 차단할 수 있습니다. 충돌하는 기업 예산을 삭제하거나 조정하는 것이 좋습니다.
비용 센터 예산 보기
다른 예산 목록을 필터링하여 비용 센터의 범위를 표시합니다. 생성한 각 예산마다 새로운 행이 추가되어 비용 센터에서 확인할 수 있습니다. 처음에는 사용량이 0에 가까우지만, 사용자와 리포지토리가 요금제에서 허용 범위를 초과하는 제품을 소비함에 따라 며칠 내에 비용이 누적되는 것을 볼 수 있습니다.
4. REST API를 사용하여 비용 센터 만들기
이제 사용자 인터페이스에서 비용 센터를 만드는 방법을 이해했으므로 REST API를 탐색하여 비용 센터를 프로그래밍 방식으로 만드는 방법을 확인할 수 있습니다. API를 이해하면 자동화가 조직에 도움이 되는지 여부를 평가하는 데 도움이 됩니다.
이 섹션에서는 를 사용하여 비용 센터 관리를 위한 주요 REST API 엔드포인트를 GitHub CLI보여 줍니다. 이러한 엔드포인트에 액세스하기 위한 설치 GitHub CLI 및 인증에 대한 자세한 내용은 GitHub REST API에 대한 빠른 시작을 참조하세요.
참고
다음 예제는 GitHub CLI를 사용하지만, curl를 사용하거나 REST API 호출을 지원하는 다른 HTTP 클라이언트로 조정할 수 있습니다.
모든 기존 비용 센터 나열
먼저 엔터프라이즈의 모든 비용 센터를 검색하여 이미 존재하는 것을 확인합니다. 이 간단한 요청을 사용하면 엔터프라이즈에 대한 청구를 관리하기 위해 올바르게 인증되었는지 확인할 수 있습니다.
터미널에 아래 명령어를 입력하되, ENTERPRISE 은 실제 enterprise 슬러그로 변경하여 실행하시기 바랍니다.
gh api \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ /enterprises/ENTERPRISE/settings/billing/cost-centers
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"
}
]
}
]
}
새 비용 센터 만들기
이름을 제공하여 새 비용 센터를 만듭니다. 이 비용 센터를 관리하는 데 사용할 고유 식별자를 받게 됩니다.
터미널에서 다음 명령을 실행하고, ENTERPRISE 및 NAME을 적절한 값으로 대체합니다.
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'
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는 적절한 값으로 대체하세요.
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"
]
}'
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를 적절한 값으로 바꿔주세요.
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"]}'
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_usage 및 will_alert이 true로 설정됨을 유의하십시오.
[email protected] 예산 한도에 도달하면 이메일 주소에 경고가 표시되고 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 엔드포인트을 참조하세요.
팀 멤버 자격에 따라 비용 센터를 자동화하거나 프리미엄 요청 GitHub 비용을 제어하기 위한 2계층 모델을 만들려는 경우 Cost Center Automation은 요구 사항에 맞게 조정할 수 있는 작업 워크플로를 사용하여 완전한 구현을 제공합니다.
다음 단계
사용량 및 비용 보고를 자동화하는 데 사용할 수 있는 엔드포인트에 대해 알아보려면 REST API를 사용하여 사용 보고 자동화을 참조하세요.
모든 액세스를 차단하려는 유료 제품이 있는 경우 엔터프라이즈 정책을 사용하여 기능을 사용하지 않도록 설정할 수 있습니다. 엔터프라이즈 정책을(를) 참조하세요.