프로그래매틱 알림 설정

이 문서에서는 Pub/Sub를 사용하여 프로그래매틱 예산 및 비용 이상치(프리뷰) 알림을 설정하는 방법을 설명합니다.

예산비용 이상치는 일반적으로 이메일 알림을 보내도록 구성됩니다. 예산 또는 비용 이상 감지를 비용 관리 도구로 사용하는 경우, 이메일 알림은 비용을 시기적절하게 제어하기에 적합한 방법이 아닐 수 있습니다. 프로그래매틱 알림을 설정하고 사용하여 비용 관리 응답을 자동화할 수 있습니다. 자동화된 비용 관리 응답의 예는 다음과 같습니다.

제한사항

이 태스크에 필요한 권한

예산 알림

프로그래매틱 예산 알림을 설정하려면 예산 및 Pub/Sub 주제를 만들거나 수정할 수 있는 권한이 필요합니다. 액세스 수준에 따라 서로 다른 권한 세트가 필요합니다.

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

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

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

사전 정의된 역할을 사용하여 필요한 권한을 얻으려면 관리자에게 Cloud Billing 계정에 대한 다음 사전 정의된 Cloud Billing IAM 역할 중 하나를 부여해 달라고 요청하세요.

그리고 관리자에게 Pub/Sub 주제가 포함된 대상 프로젝트에 대한 다음 역할을 부여해 달라고 요청하세요.

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

사전 정의된 역할을 사용하여 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 사전 정의된 Cloud Billing IAM 역할 중 하나를 부여해 달라고 요청하세요.

그리고 관리자에게 Pub/Sub 주제가 포함된 대상 프로젝트에 대한 다음 역할을 부여해 달라고 요청하세요.

이상치 알림

프로그래매틱 이상 감지 알림을 설정하려면 이상 감지 및 Pub/Sub 주제를 만들거나 수정할 수 있는 권한이 필요합니다. Cloud Billing 계정 권한이 있어야 합니다.

Cloud Billing 계정 권한이 있는 사용자(프리뷰)

사전 정의된 역할을 사용하여 필요한 권한을 얻으려면 관리자에게 Cloud Billing 계정에 대한 다음 사전 정의된 Cloud Billing IAM 역할 중 하나를 부여해 달라고 요청하세요.

그리고 관리자에게 Pub/Sub 주제가 포함된 대상 프로젝트에 대한 다음 역할을 부여해 달라고 요청하세요.

Pub/Sub 주제 만들기

프로그래매틱 예산 또는 이상치 알림을 설정하려면 먼저 Pub/Sub 주제를 만들어야 합니다. 예산 또는 비용 이상치에 대한 Pub/Sub 주제를 이미 구성한 경우에는 이 단계를 건너뛰면 됩니다.

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

    Google Cloud 콘솔 Pub/Sub에 로그인

  2. Pub/Sub 주제가 포함된 프로젝트를 선택합니다.

    결제 알림에 대한 Pub/Sub 주제를 구성할 때는 FinOps 관리 프로젝트를 사용하여 결제 관련 Pub/Sub 주제를 포함하는 것이 좋습니다.

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

  4. 주제 ID 필드에 주제 이름을 제공합니다.

  5. 기본 구독 및 암호화 설정을 유지하고 만들기를 클릭합니다.

Pub/Sub 주제 연결

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

예산 알림

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

Cloud Billing 계정 권한이 있는 사용자 프로젝트 수준 권한만 있는 사용자(프리뷰)
  1. Google Cloud Console에서 예산 및 알림 페이지에 로그인합니다.

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

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

  3. 연결할 예산을 선택하거나 새 예산을 만듭니다.
  4. 작업 섹션의 알림 관리 아래에서 이 예산에 Pub/Sub 주제 연결을 선택합니다.
  5. 프로젝트 필드에서 프로젝트 선택을 클릭하고 설정한 Pub/Sub 주제가 포함된 프로젝트를 선택합니다.
  6. Pub/Sub 주제 선택에서 기존 주제를 선택하거나 주제 만들기를 클릭하여 새 주제를 만듭니다.
    • 새 주제를 만드는 경우 주제 ID 필드에 주제 이름을 입력하고 주제 만들기를 클릭합니다.
    • 주제를 만들면 자동으로 선택됩니다.
  7. 저장을 클릭합니다.
  1. Google Cloud 콘솔 대시보드에 로그인하고 프로젝트를 선택합니다.

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

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

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

  4. 결제 탐색 메뉴비용 관리 섹션에서 예산 및 알림을 선택합니다.
  5. 연결할 예산을 선택하거나 새 예산을 만듭니다.
  6. 작업 섹션의 알림 관리 아래에서 이 예산에 Pub/Sub 주제 연결을 선택합니다.
  7. 프로젝트 필드에서 프로젝트 선택을 클릭하고 설정한 Pub/Sub 주제가 포함된 프로젝트를 선택합니다.
  8. Pub/Sub 주제 선택에서 기존 주제를 선택하거나 주제 만들기를 클릭하여 새 주제를 만듭니다.
    • 새 주제를 만드는 경우 주제 ID 필드에 주제 이름을 입력하고 주제 만들기를 클릭합니다.
    • 주제가 생성되면 자동으로 선택됩니다.
  9. 저장을 클릭합니다.

이상치 알림

Pub/Sub 주제를 비용 이상치에 연결하려면 다음 단계를 완료합니다.

Cloud Billing 계정 권한이 있는 사용자(프리뷰)
  1. Google Cloud 콘솔의 이상치 페이지에 로그인합니다.

    이상치 열기
  2. 프롬프트에서 이상치를 관리할 Cloud Billing 계정을 선택합니다.

    선택한 결제 계정에 대한 이상치 페이지가 열립니다.

  3. 이상치 관리를 클릭합니다.
  4. 비용 영향이상치 기준 값을 입력합니다. 이 금액은 알림을 트리거하는 기준 값입니다. 값을 제공하지 않으면 기준점이 0으로 설정되어 모든 이상치에 관한 알림이 전송됩니다.
  5. Pub/Sub 알림 섹션에서 이상치에 대해 프로그래매틱 방식으로 업데이트를 수신하려면 Pub/Sub 주제를 연결을 선택합니다.
  6. 표시되는 드롭다운 메뉴에서 알림을 수신하기 위해 연결할 Pub/Sub 주제를 선택합니다.
    • 주제는 프로젝트별로 나열됩니다. 선택하려는 주제를 찾으려면 보고 있는 프로젝트를 전환해야 할 수 있습니다.
    • 새 주제를 만들려면 주제 만들기를 클릭하기 전에 원하는 프로젝트로 전환합니다.
  7. 저장을 클릭합니다.

알림 형식

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

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

예산 알림

속성

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

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

데이터

예산 알림 세부정보는 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" 예산 알림 통화입니다. 모든 비용과 예산 금액이 이 통화로 표시됩니다.

이상치 알림

속성

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

속성 이름 설명
범위 scope_project 이상치의 범위입니다.
billingAccountName billingAccounts/01D4EE-079462-DFD6EC 이상치가 발생한 Cloud Billing 계정의 식별자입니다.
resourceDisplayName My project 이상치가 발생한 리소스의 표시 이름입니다.
resourceName projects/123456 이상치가 발생한 리소스의 식별자입니다.
SchemaVersion 1.0 Pub/Sub 스키마 버전입니다.

데이터

이상치 알림 세부정보는 JSON 객체가 포함된 base64 인코딩 UTF-8 문자열로 반환되며, 해당 JSON 객체는 다음 속성을 포함합니다.

데이터 설명
anomalyName billingAccounts/01D4EE-079462-DFD6EC/anomalies/aaa 이상치의 리소스 이름입니다.
billingAccountName billingAccounts/01D4EE-079462-DFD6EC 결제 계정의 식별자입니다.
resourceName "projects/12345" 이상치가 발생한 리소스의 식별자입니다.
resourceDisplayName "My project" 이상치가 발생한 리소스의 표시 이름입니다.
detectionDate "2024-02-01T08:00:00Z" 비용 이상이 감지된 날짜입니다.
Scope SCOPE_PROJECT 이상 감지의 범위를 나타냅니다.
expectedSpendAmount {
"currencyCode": "USD",
"units": "8",
"nanos": 988106832
}
리소스의 예상 지출액입니다.
actualSpendAmount 196.22 리소스의 실제 지출액입니다.
deviationAmount 31.01 실제 지출액과 예상 지출액의 차이입니다.
deviationPercentage 18.77 예상 지출액 대비 편차 금액의 비율입니다.
Root cause
root_causes {
resource: "services/XXX-XXXX-XXX"
display_name: "BigQuery"
cause_type: CAUSE_TYPE_SERVICE
deviation {
  expected_spend {
    currency_code: "USD"
    units: "5000"
  }
  actual_spend {
    currency_code: "USD"
    units: "5000"
  }
  deviation_amount {
    currency_code: "USD"
    units: "5000"
  }
  deviation_percentage: "Infinity"
}
sub_causes {
  resource: "locations/us-west1",
  display_name: "us-west1",
  cause_type: CAUSE_TYPE_LOCATION,
  deviation {
    expected_spend {
      currency_code: "USD",
    }
    actual_spend {
      currency_code: "USD",
      units:"5000"
    }
    deviation_amount {
      currency_code: "USD",
      units: "5000"
    }
    deviation_percentage: "Infinity"
  }
  sub_causes {
    resource: "services/XXXX-XXXX-XXXX/skus/XXXX-XXXX-XXXX"
    display_name: "Some display name"
    cause_type: CAUSE_TYPE_SKU
    deviation {
      expected_spend {
        currency_code: "USD"
      }
      actual_spend {
        currency_code: "USD"
        units: 5000
      }
      deviation_amount {
        currency_code: "USD"
        units: 5000
      }
      deviation_percentage: "Infinity"
    }
  }
  sub_causes {
    resource: "services/XXXX-XXXX-XXXX/skus/XXXX-XXXX-XXXX"
    display_name: "Some display name"
    cause_type: CAUSE_TYPE_SKU
    deviation {
      expected_spend {
        currency_code: "USD"
        units: "1"
        nanos: 5413077
      }
      actual_spend {
        currency_code: "USD"
        units: "1",
        nanos: 122606000
      }
      deviation_amount {
        currency_code: "USD"
        nanos: 117192923
      }
      deviation_percentage:11.656196419841217
    }
  }
}
}
이상치의 근본 원인에 관한 정보가 포함된 반복되는 필드입니다.

Pub/Sub에 알림 전송 보장

예산 또는 이상치를 Pub/Sub 주제에 연결하면 다음과 같이 프로그래매틱 알림을 받을 수 있습니다.

예산 알림

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

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

  • Pub/Sub 주제가 더 이상 존재하지 않습니다.
  • Cloud Billing에 더 이상 Pub/Sub 주제 게시 권한이 없습니다.
  • 알림 할당량을 초과했습니다.
  • 도메인별 리소스 공유를 제한하는 조직 정책이 적용되어 있습니다.

이상치 알림

  • 이상치 알림은 기준에 도달한 경우에만 Pub/Sub 주제로 전송됩니다.
  • Pub/Sub은 최소 1회 전송만 보장합니다. 메시지가 여러 번 수신될 수 있으며 순서대로 도착하지 않을 수 있습니다.
  • Pub/Sub 주제 구성 오류로 인해 전송이 실패하면 알림이 표시되지 않습니다.

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

  • Pub/Sub 주제가 더 이상 존재하지 않습니다.
  • Cloud Billing 계정에 더 이상 Pub/Sub 주제 게시 권한이 없습니다.
  • 알림 할당량을 초과했습니다.
  • 도메인별 리소스 공유를 제한하는 조직 정책이 적용되어 있습니다.

자세한 내용은 Pub/Sub에서 메시지 게시 및 수신을 참조하세요.

다음 단계

프로그래매틱 알림을 사용하는 방법을 자세히 알아보려면 다음과 같은 프로그래매틱 비용 관리 응답의 예시를 검토하세요.