프로그래매틱 예산 알림 예시

개요

예산의 일반적인 동작은 예산 알림 기준 규칙이 이메일 알림을 트리거할 때 알림 이메일을 전송하는 것입니다.

예산 알림 다이어그램
그림 1: 예산 알림의 기본 이메일 기능과 프로그래매틱 알림에 Pub/Sub를 사용하여 비용 제어 응답을 자동화하는 선택적 방법을 보여줍니다.

하지만 예산을 비용 관리 도구로 사용하는 경우, 이메일 알림이 Google Cloud 비용을 시기적절하게 제어하기에 적합한 알림 방법이 아닐 수 있습니다. 이메일 알림 이외에도 프로그래매틱 알림을 사용하여 비용 관리 응답을 자동화할 수 있습니다. 비용 관리 응답의 예는 다음과 같습니다.

  • 결제를 자동으로 중지하거나 리소스를 종료하여 Google Cloud 지출 한도를 설정합니다.
  • 예산 메시지를 다른 매체(예: Slack)로 전달합니다.
  • 할당량을 조정하여 리소스 사용량을 제한합니다.

자세한 내용은 자동 비용 관리 응답 예시를 참조하세요.

이 태스크에 필요한 권한

Cloud Billing 계정 수준에서 예산을 관리하거나 Cloud Billing 계정 역할이 없는 프로젝트 소유자인지 여부에 따라 다음 섹션의 설명대로 서로 다른 권한 집합이 필요합니다.

결제 계정 수준에서 비용을 모니터링하는 경우

주로 Cloud Billing 계정의 비용을 모니터링하는 경우 Cloud Billing 계정 수준의 권한이 필요합니다.

Cloud Billing 계정에 대한 액세스 권한이 제한되거나 없으면 소유한 프로젝트에 대한 충분한 권한이 있을 수 있습니다.

조직에서 인증에 커스텀 역할을 사용하는 경우 커스텀 역할에 다음과 같은 특정 권한이 필요합니다.

커스텀 역할이 기존 Cloud Billing 예산을 수정하여 기존 Pub/Sub 주제에 연결하려면 다음과 같은 특정 권한이 필요합니다.

프로젝트 수준에서 비용을 모니터링하는 경우

Cloud Billing 계정에 대한 액세스 권한이 제한되거나 없는 경우 소유하고 있는 프로젝트로만 범위가 지정된 예산을 관리할 수 있습니다.

조직에서 인증에 커스텀 역할을 사용하는 경우 커스텀 역할에 다음과 같은 특정 권한이 필요합니다.

  • 프로젝트에 대한 resourcemanager.projects.get - 프로젝트의 프로젝트 연결(예: 연결된 결제 계정)을 확인합니다.
  • 프로젝트에 대한 billing.resourceCosts.get(선택사항) - 프로젝트의 비용 및 사용량을 봅니다.
  • 프로젝트에 대한 billing.resourcebudgets.read - 프로젝트로 범위가 지정된 결제 계정의 단일 프로젝트 예산을 봅니다.
  • 프로젝트에 대한 billing.resourcebudgets.write - 프로젝트로 범위가 지정된 단일 프로젝트 예산을 만들거나 수정합니다.
  • Pub/Sub 주제의 대상 프로젝트에 대한 roles/pubsub.editor(새 Pub/Sub 주제 만들기) 또는 사용하려는 기존 Pub/Sub 주제가 포함된 대상 프로젝트에 대한 pubsub.topics.list

도메인별 리소스 공유를 제한하도록 조직 정책을 설정한 경우Pub/Sub 주제를 설정하거나 Cloud Billing 예산에 연결하려고 할 때 오류가 발생할 수 있습니다.

이 경우 Pub/Sub 주제를 예산 성공적으로 연결하기 위해 계정 액세스를 강제 실행해야 할 수 있습니다. 특히 계정 액세스를 강제하려면 다음 절차를 따르세요.

  1. 다음 방법 중 하나를 사용하여 도메인 제한 제약조건을 포함하는 조직 정책을 삭제합니다.

  2. Cloud Billing 예산에 Pub/Sub 주제를 연결하는 단계를 따릅니다.

  3. 조직 또는 프로젝트의 조직 정책을 복원합니다(선택사항).

Google Cloud 권한 정보

Cloud Billing 권한에 대한 자세한 내용은 다음을 참조하세요.

Google Cloud 프로젝트 권한에 대한 자세한 내용은 다음을 참조하세요.

Pub/Sub 프로그래매틱 알림 설정 및 사용 설정 방법

프로그래매틱 알림이 예산의 현재 상태와 함께 Pub/Sub 메시지를 수신하도록 설정하려면 Pub/Sub 주제를 Cloud Billing 예산에 연결합니다.

예산에 연결된 Pub/Sub 주제를 연결, 수정 또는 삭제하려면 다음 단계를 따르세요.

1. Pub/Sub 주제 만들기

Cloud Billing이 예산 알림을 게시할 수 있도록 Pub/Sub 주제를 구성합니다. 이미 Cloud Billing 예산 Pub/Sub 주제를 구성한 경우 모든 예산에 다시 사용하거나 예산별로 고유한 주제를 만들 수 있습니다.

  1. Google Cloud Console Pub/Sub 페이지로 이동합니다.

    Google Cloud Console Pub/Sub에 로그인

  2. 프로젝트를 선택합니다.

  3. 주제 만들기를 클릭합니다.

  4. 주제 ID 필드에 주제 이름을 입력하고 주제 만들기를 클릭합니다.

2. Pub/Sub 주제에 Cloud Billing 예산 연결

Cloud Billing 예산을 Pub/Sub 주제에 연결하려면 다음 단계를 따르세요.

  1. Cloud Billing 계정에 대한 액세스 수준에 적합한 절차를 수행하여 Google Cloud 콘솔의 결제 섹션에서 예산 및 알림 페이지에 로그인합니다.

    Cloud Billing 계정 권한이 있는 사용자 프로젝트 수준 권한만 있는 사용자(미리보기)

    Cloud Billing 계정 권한이 있으면 액세스 권한이 있는 결제 계정 목록에서 선택할 수 있습니다.

    1. Google Cloud 콘솔에서 예산 및 알림 페이지에 로그인합니다.

      예산 및 알림 열기
    2. 프롬프트에서 예산을 관리할 Cloud Billing 계정을 선택합니다.

      선택한 결제 계정의 예산 및 알림 페이지가 열립니다.

    프로젝트 권한만 있고 프로젝트의 Cloud Billing 계정에 대한 권한이 없는 경우 결제 섹션으로 이동하기 전에 프로젝트를 선택해야 합니다.

    1. Google Cloud 콘솔 대시보드에 로그인하고 프로젝트를 선택합니다.

      Google Cloud 콘솔 열기
    2. 예산을 관리할 프로젝트를 선택합니다.
    3. 그런 다음 결제로 이동합니다. Google Cloud 콘솔 탐색 메뉴 를 열고 결제를 선택합니다.

      보고 관리하려는 결제 계정을 선택하라는 메시지가 표시되면 연결된 결제 계정으로 이동을 클릭하여 선택한 프로젝트에 연결된 결제 계정을 봅니다.

      선택한 결제 계정에 대해 결제 개요 페이지가 열립니다.

    4. 결제 탐색 메뉴비용 관리 섹션에서 예산 및 알림을 선택합니다.
  2. 필요한 경우 예산을 만듭니다. 또는 기존 예산 및 알림 규칙을 수정하려면 예산 이름을 클릭합니다.

  3. 작업 섹션의 알림 관리 아래에서 이 예산에 Pub/Sub 주제 연결을 선택합니다.

  4. 프로젝트 입력란에서 프로젝트 선택을 클릭하고 설정한 Pub/Sub 주제가 포함된 프로젝트를 선택합니다. 이전 섹션의 권장 사항을 따랐다면 이는 결제 관리 Google Cloud 프로젝트입니다.

  5. Pub/Sub 주제 선택에서 기존 주제를 선택하거나 주제 만들기를 선택하여 새 주제를 만듭니다.

    • 새 주제를 만드는 경우 주제 ID 필드에 주제 이름을 입력하고 주제 만들기를 클릭합니다.
    • 주제가 생성되면 자동으로 선택됩니다.
  6. 저장을 클릭합니다.

알림 형식

Pub/Sub 주제로 전송되는 알림은 다음 두 부분으로 구성됩니다.

  • 속성: 이벤트를 설명하는 키-값 쌍의 모음입니다.
  • 데이터: 예산 알림 세부정보를 설명하는 JSON 객체가 포함된 문자열입니다.

속성

속성은 Cloud Billing이 Pub/Sub 주제로 전송하는 모든 알림에 포함되는 키-값 쌍입니다. 알림 페이로드에 관계없이 알림에는 항상 다음 키-값 쌍이 포함됩니다.

속성 이름 예시 설명
billingAccountId 01D4EE-079462-DFD6EC 예산을 소유한 Cloud Billing 계정의 식별자입니다.
budgetId de72f49d-779b-4945-a127-4d6ce8def0bb Cloud Billing 계정 내 예산 알림의 식별자입니다.
schemaVersion 1.0 알림 스키마 버전입니다.

데이터

스키마 버전 1.x의 경우 예산 알림 세부정보는 JSON 객체가 포함된 base64 인코딩 UTF-8 문자열로 반환되며, 해당 JSON 객체는 다음 속성을 포함합니다.

데이터 예시 설명
budgetDisplayName "My Personal Budget" 예산에 할당된 이름이며 사람이 읽을 수 있는 형식입니다.
costAmount 140.321 발생한 비용의 액수입니다. 추적되는 비용 유형은 예산 필터 및 설정에 따라 다릅니다.
costIntervalStart "2021-02-01T08:00:00Z" 예산 알림 기간의 시작입니다. `costAmount`에는 이 시점부터의 사용 비용이 포합됩니다. 예산 사용이 발생한 예산 기간(월, 분기, 연도 또는 커스텀 기간)의 시작일입니다.
budgetAmount 152.557 예산에 배정된 금액입니다.
budgetAmountType "SPECIFIED_AMOUNT" 예산 금액 유형입니다. 다음 값 중 한 가지로 표시됩니다.
  • 'SPECIFIED_AMOUNT': 고정된 금액입니다.
  • 'LAST_MONTH_COST': 지난달 동안 발생한 총 비용입니다.
  • 'LAST_PERIODS_COST': 분기 또는 연도와 같이 지난 월 단위가 아닌 캘린더 기간 동안 발생한 비용입니다.
alertThresholdExceeded 0.9 가장 높게 구성된 실제 비용 알림 기준이 초과되었습니다. 값은 십진수 형식입니다(예: 0.9는 90%). 실제 비용이 기준을 초과하지 않았다면 이 키가 없습니다.
forecastThresholdExceeded 0.2 가장 높은 예측 비용 알림 기준을 초과했습니다. 값은 십진수 형식의 백분율입니다(예: 0.2는 20%). 예측 비용이 기준을 초과하지 않았다면 이 키가 없습니다.
currencyCode "USD" 예산 알림 통화입니다. 모든 비용과 예산 금액이 이 통화로 표시됩니다.

Pub/Sub에 알림 전송 보장

예산을 만들어 Pub/Sub 주제에 연결하면 다음에 설명된 것과 같이 프로그래매틱 알림을 받을 수 있습니다.

  • 예산 알림은 Pub/Sub 주제로 예산의 현재 상태와 함께 하루에 여러 번 전송됩니다. 예산 한도를 충족하는 경우에만 전송되는 예산 알림 이메일과는 다릅니다.
  • Pub/Sub 알림은 Cloud Billing 계정에 사용량이 없어도 전송됩니다.
  • 첫 번째 Pub/Sub 알림을 받기까지는 몇 시간이 걸릴 수 있습니다.
  • Pub/Sub은 최소 한 번의 전송만 보장합니다. 메시지가 여러 번 수신될 수 있으며 순서대로 도착하지 않을 수 있습니다.
  • Pub/Sub 주제 구성 오류로 인해 전송이 실패하면 알림이 표시되지 않습니다.

    전송이 실패하는 이유는 다음 중 하나입니다.

    • Pub/Sub 주제가 더 이상 존재하지 않습니다.
    • Cloud Billing에 더 이상 Pub/Sub 주제 게시 권한이 없습니다.
    • 알림 할당량을 초과했습니다.