Looker Studio로 비용 시각화하기


Cloud Billing 데이터 BigQuery로 내보내기를 Looker Studio와 결합하여 Google Cloud 비용을 최신 상태로 유지할 수 있습니다.

이 페이지에서는 Cloud Billing 데이터를 사용하여 결제 사용량 및 비용 통계 대시보드를 설정하는 방법을 보여줍니다. 대시보드를 사용하면 Compute Engine 리소스에 얼마를 지출하는가?와 같은 Google Cloud 지출 관련 질문에 답할 수 있습니다.

Looker Studio 시각화 예시

이 튜토리얼을 따르거나 다음 동영상을 확인하여 대시보드를 설정합니다.

목표

이 튜토리얼에서는 다음 작업을 완료하는 방법을 보여줍니다.

  • Cloud Shell을 사용하여 결제 사용량 및 비용 통계 대시보드의 자체 사본을 설정합니다.

  • Cloud Billing 계정이 여러 개 있거나 USD 외의 통화로 Cloud Billing 계정이 있는 경우와 같은 고급 사례의 대시보드 뷰를 수정하는 방법을 알아봅니다.

비용

이 문서에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.

BigQuery에 Cloud Billing 데이터를 저장하는 비용은 일반적으로 무료 또는 저렴합니다. BigQuery 데이터 세트의 크기에 따라 분석을 위해 데이터를 쿼리하는 비용이 발생할 수 있습니다.

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요. Google Cloud를 처음 사용하는 사용자는 무료 체험판을 사용할 수 있습니다.

시작하기 전에

  1. BigQuery로 Cloud Billing 데이터 내보내기 설정

    대시보드를 사용하려면 표준세부 Cloud Billing 사용량 데이터에 대해 BigQuery 내보내기를 사용 설정해야 합니다.

    데이터 내보내기를 사용 설정한 후 Cloud Billing 데이터가 데이터 세트에 채워지는 데 하루가 걸립니다. 네트워크 이그레스, VM 요금, Pub/Sub 사용량 등이 차례로 표시될 수 있습니다. 데이터 세트에 데이터가 있으면 데이터 세트에 대한 쿼리를 실행할 수 있습니다.

  2. 조직에 이미 BigQuery 내보내기가 설정되어 있는 경우 데이터 세트를 호스팅하는 프로젝트에 BigQuery 뷰를 만들 수 있는 권한이 있어야 합니다.

    필요한 경우 BigQuery 뷰에 대한 새 데이터 세트를 만들려면 BigQuery 데이터 세트를 만들 수 있는 권한이 있어야 합니다.

  3. Google Cloud 환경에 대한 다음 정보를 가져옵니다.

    • Cloud Billing BigQuery 데이터 세트가 호스팅되는 프로젝트 ID입니다.
    • 표준 및 세부 비용 데이터 내보내기의 데이터 세트 이름입니다. 일반적으로 비용 데이터 내보내기는 동일한 데이터 세트에 있습니다.

대시보드 사본 만들기

자체 대시보드 사본을 만들려면 먼저 프로세스를 자동화하는 GitHub 저장소를 클론합니다. 이 단계에서는 브라우저에서 사용할 수 있는 Google Cloud용 대화형 셸 환경인 Cloud Shell을 사용합니다.

상위 수준에서는 저장소의 설정 스크립트가 다음 작업을 수행합니다.

  • 새 BigQuery 데이터 세트를 만듭니다. 여기에는 표준 및 세부 비용 데이터 내보내기에서 데이터를 가져오는 뷰가 포함됩니다.
  • 대시보드 템플릿을 복사하고 사본을 데이터의 BigQuery 뷰에 연결합니다.
  • Looker Studio 대시보드에 저장할 수 있는 사본에 대한 Looker Studio 링크가 제공됩니다.

사본을 만들려면 다음 안내를 따르세요.

  1. Cloud Shell에서 GitHub 저장소를 엽니다.

    Cloud Shell에서 열기

  2. billboard 디렉터리로 이동합니다.

    cd examples/billboard
    
  3. 다음 명령어를 실행하여 스크립트의 Python 환경을 설정합니다.

    pip install virtualenv
    virtualenv bill-env
    source bill-env/bin/activate
    pip install -r requirements.txt
    
  4. 대시보드를 만드는 스크립트를 실행합니다. 사용자를 대신하여 API를 호출하도록 Cloud Shell을 승인해야 할 수도 있습니다.

    python billboard.py \
      -pr PROJECT_ID \
      -se STANDARD_BILLING_EXPORT_DATASET \
      -de DETAILED_BILLING_EXPORT_DATASET \
      -bb BILLBOARD_DATASET
    

    여기에서 변수는 다음과 같습니다.

    • PROJECT_ID: Cloud Billing 데이터 세트를 호스팅하는 프로젝트 ID입니다.
    • STANDARD_BILLING_EXPORT_DATASET: 표준 비용 데이터 내보내기가 포함된 BigQuery 데이터 세트입니다.
    • DETAILED_BILLING_EXPORT_DATASET: 세부 사용량 비용 데이터 내보내기가 포함된 BigQuery 데이터 세트입니다.
    • BILLBOARD_DATASET: 대시보드의 BigQuery 뷰가 생성되는 BigQuery 데이터 세트의 이름입니다(예: example_dashboard_views). 뷰의 데이터 세트가 아직 없으면 스크립트가 이 이름으로 새 데이터 세트를 만듭니다.

    스크립트 실행이 완료되면 대시보드에 Looker Studio 링크가 표시됩니다.

  5. Looker Studio 링크를 클릭하여 대시보드를 엽니다.

  6. Looker Studio에서 수정 및 공유를 클릭하여 대시보드를 저장합니다. 보고서에 데이터 소스를 추가하라는 메시지가 나타나면 보고서에 추가를 클릭합니다.

이제 Looker Studio 홈페이지에서 대시보드에 액세스할 수 있습니다.

(고급) 여러 Cloud Billing 계정의 데이터 수정

대시보드에 여러 Cloud Billing 계정의 데이터를 포함하려면 모든 Cloud Billing 계정의 결제 데이터 내보내기를 포함하도록 BigQuery 뷰를 수정하면 됩니다.

시작하기 전에

포함할 각 Cloud Billing 계정에 대해 튜토리얼 기본 요건의 모든 단계를 수행합니다.

추가 Cloud Billing 내보내기를 포함하도록 BigQuery 뷰 업데이트

  1. Google Cloud Console에서 BigQuery 페이지를 엽니다.

    BigQuery로 이동

  2. 대시보드에 만든 데이터 세트가 포함된 프로젝트를 선택합니다.

  3. 탐색기 패널에서 프로젝트를 펼친 다음 데이터 세트를 확장합니다.

  4. 결제 보드 보기를 클릭하여 세부정보를 확인합니다. 이 뷰는 표준 비용 및 사용량 데이터 내보내기를 쿼리합니다.

  5. 세부정보 탭을 클릭한 다음 쿼리 수정을 클릭합니다. 뷰에 대한 쿼리는 다음과 유사합니다.

    SELECT *,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost,
      EXTRACT(DATE FROM _PARTITIONTIME) AS date
    from `PROJECT_ID.BILLING_ACCOUNT_EXPORT` s
    WHERE _PARTITIONTIME >"2021-01-01"
    

    여기서 PROJECT_ID는 Cloud Billing용 BigQuery 표준 비용 데이터 내보내기가 포함된 프로젝트이고 BILLING_ACCOUNT_EXPORT는 표준 비용 데이터가 있는 BigQuery 테이블의 이름입니다.

  6. 기존 쿼리를 복제하고 FROM 절에서 프로젝트 ID와 BigQuery 테이블을 추가 Cloud Billing 계정의 정보로 바꿉니다.

  7. 데이터를 결합하려면 두 쿼리 사이에 UNION ALL 연산자를 추가합니다. 최종 쿼리는 PROJECT_ID_1PROJECT_ID_2에 있는 BILLING_ACCOUNT_1BILLING_ACCOUNT_2의 데이터 내보내기를 결합한 다음 예시와 비슷합니다.

    SELECT *, --query for BILLING_ACCOUNT_1
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost,
      EXTRACT(DATE FROM _PARTITIONTIME) AS date
    FROM `PROJECT_ID_1.BILLING_ACCOUNT_1_EXPORT` s
    WHERE _PARTITIONTIME >"2021-01-01"
    UNION ALL
    SELECT *, --query for BILLING_ACCOUNT_2
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost,
      EXTRACT(DATE FROM _PARTITIONTIME) AS date
    from `PROJECT_ID_2.BILLING_ACCOUNT_2_EXPORT` s
    WHERE _PARTITIONTIME >"2021-01-01"
    
  8. 세부 비용 및 사용량 데이터를 쿼리하는 billboard_detail 뷰에 대해 이 단계를 반복합니다.

  9. 계정 중 하나가 USD와 다른 통화인 경우 다음 단계를 반복하고 다음 예시와 비슷하게 currency_conversion_rate 열을 사용하여 USD로 변환합니다.

    select *,
      (COALESCE((SELECT SUM(x.amount)
      FROM UNNEST(s.credits) x),0))/currency_conversion_rate AS credits_sum_amount,
        (COALESCE((SELECT SUM(x.amount)
        FROM UNNEST(s.credits) x),0))/currency_conversion_rate + cost/currency_conversion_rate as net_cost,
        'USD' as net_cost_currency,
        EXTRACT(DATE FROM _PARTITIONTIME) AS date
    from `PROJECT_ID.BILLING_ACCOUNT_DATASET` s
    WHERE _PARTITIONTIME >"2021-01-01"
    

삭제

대시보드를 더 이상 사용하지 않으려면 GitHub 저장소를 클론하고 -clean 옵션을 사용하여 대시보드 스크립트를 실행합니다. 스크립트는 BigQuery 뷰를 삭제하지만 BigQuery 내보내기 데이터 세트는 그대로 둡니다.

  1. Cloud Shell에서 GitHub 저장소를 엽니다.

    Cloud Shell에서 열기

  2. billboard 디렉터리로 이동합니다.

    cd examples/billboard
    
  3. 다음 명령어를 실행하여 스크립트의 Python 환경을 설정합니다.

    pip install virtualenv
    virtualenv bill-env
    source bill-env/bin/activate
    pip install -r requirements.txt
    
  4. 삭제 명령어를 실행합니다.

    python billboard.py \
      -pr PROJECT_ID \
      -se STANDARD_BILLING_EXPORT_DATASET \
      -de DETAILED_BILLING_EXPORT_DATASET
      -bb BILLBOARD_DATASET \
      -clean yes
    

    여기에서 변수는 다음과 같습니다.

    • PROJECT_ID: Cloud Billing 데이터 세트를 호스팅하는 프로젝트 ID입니다.
    • STANDARD_BILLING_EXPORT_DATASET: 표준 사용 비용 데이터 내보내기가 포함된 BigQuery 데이터 세트입니다.
    • DETAILED_BILLING_EXPORT_DATASET: 세부 사용량 비용 데이터 내보내기가 포함된 BigQuery 데이터 세트입니다.
    • BILLBOARD_DATASET: 대시보드에 BigQuery 뷰를 만든 BigQuery 데이터 세트입니다.
  5. Looker Studio 대시보드를 삭제하려면 Looker Studio를 열고, 대시보드를 찾고, 메뉴에서 삭제를 클릭합니다.

다음 단계