비용 모니터링 및 제어

Last reviewed 2023-09-08 UTC

Google Cloud 아키텍처 프레임워크의 이 문서에서는 Google Cloud에서 리소스 비용을 추적하고 제어하는 데 도움이 되는 권장사항, 도구, 기법을 설명합니다.

이 섹션의 안내는 클라우드에서 리소스를 프로비저닝하거나 관리하는 사용자를 대상으로 합니다.

비용 관리 중심 영역

Google Cloud의 리소스 비용은 사용하는 리소스의 양과 리소스에 대한 청구 요율에 따라 달라집니다.

클라우드 리소스 비용을 관리하려면 다음 영역에 중점을 두는 것이 좋습니다.

  • 비용 가시성
  • 리소스 최적화
  • 요율 최적화

비용 가시성

지출 비용과 리소스 및 서비스 청구 방식을 추적하여 비즈니스 결과에 미치는 비용 영향을 분석할 수 있습니다. 조직 전체에서 비용 정보를 볼 수 있도록 다음 작업을 제안하는 FinOps 운영 모델을 따르는 것이 좋습니다.

  • 할당: 모든 비용 항목에 소유자를 할당합니다.
  • 보고서: 비용 데이터를 제공, 소비, 활용 가능하게 만듭니다.
  • 예측: 미래 지출을 예측하고 추적합니다.

리소스 최적화

클라우드 리소스의 수와 크기를 워크로드의 요구사항에 맞춥니다. 가능하다면 관리형 서비스를 사용하거나 애플리케이션을 재설계하는 것을 고려하세요. 일반적으로 개별 엔지니어링팀은 리소스 배포를 최적화할 수 있는 기회와 기법에 대해 중앙 FinOps(재무 운영)팀보다 더 많은 컨텍스트를 갖고 있습니다. FinOps팀은 개별 엔지니어링 팀과 협력하여 조직 전체에 적용할 수 있는 리소스 최적화 기회를 파악하는 것이 좋습니다.

요율 최적화

FinOps팀은 종종 요율 최적화 결정을 중앙에서 수행합니다. 개별 엔지니어링팀은 중앙 FinOps 팀과 협력하여 예약, 약정 사용, Spot VM, 정액제, 볼륨, 계약 할인에 대한 큰 폭의 할인 혜택을 누릴 수 있습니다.

설계 권장사항

이 섹션에서는 비용을 모니터링하고 제어하는 데 사용할 수 있는 접근 방법을 제안합니다.

결제 및 리소스 관리 통합

Google Cloud에서 결제 및 리소스를 효율적으로 관리하려면 조직에 단일 결제 계정을 사용하고 내부 지불 거절 메커니즘을 사용하여 비용을 할당하는 것이 좋습니다. 서로 영향을 주지 않는 항목이 있는 느슨한 구조의 대기업과 조직에는 여러 결제 계정을 사용합니다. 예를 들어 리셀러는 고객마다 별도의 계정이 필요할 수 있습니다. 별도의 결제 계정을 사용하면 국가별 세금 규정을 충족하는 데에도 도움이 됩니다.

또 다른 권장사항은 관리하는 모든 프로젝트를 조직으로 옮기는 것입니다. Resource Manager를 사용하면 다음 목표를 달성하는 데 도움이 되는 리소스 계층 구조를 빌드할 수 있습니다.

  • 각 리소스와 직속 상위 요소의 관계를 기반으로 리소스 소유권의 계층 구조를 설정합니다.
  • 액세스 정책과 비용 할당 태그 또는 라벨이 조직의 리소스에 연결되고 상속되는 방식을 제어합니다.

또한 공유 서비스 비용을 소비량에 비례하여 할당하는 것이 좋습니다. 비즈니스 목표 및 우선순위의 변화에 따라 주기적으로 비용 할당 매개변수를 검토하고 조정합니다.

태그 또는 라벨을 사용하여 비용 추적 및 할당

태그와 라벨은 Google Cloud 리소스에 주석을 추가하는 데 사용할 수 있는 두 가지 방법입니다. 태그는 라벨보다 더 많은 기능을 제공합니다. 예를 들어 지원되는 리소스에 태그가 연결되었는지 여부를 조건부로 하는 Identity and Access Management(IAM) 정책을 만들어 리소스에 대한 세분화된 제어를 구현할 수 있습니다. 또한 리소스와 연결된 태그는 계층 구조의 모든 하위 리소스에 상속됩니다. 태그와 라벨의 차이점에 대한 자세한 내용은 태그 개요를 참조하세요.

비용 할당 및 추적을 위한 새 프레임워크를 빌드하는 경우 태그를 사용하는 것이 좋습니다.

필요한 세부 수준으로 비용 데이터를 분류하려면 조직의 지불 거절 메커니즘에 적합하고 비용을 적절하게 할당할 수 있는 태그 또는 라벨 지정 스키마를 설정합니다. 조직 또는 프로젝트 수준에서 태그를 정의할 수 있습니다. 프로젝트 수준에서 라벨을 할당하고 모든 프로젝트에 기본적으로 적용할 수 있는 라벨 집합을 정의할 수 있습니다.

태그 및 라벨 이상치와 라벨이 지정되지 않은 프로젝트를 감지하고 수정하는 프로세스를 정의합니다. 예를 들어 Cloud 애셋 인벤토리에서 프로젝트에 있는 모든 리소스의 인벤토리(.csv 파일)를 다운로드하고 인벤토리를 분석하여 태그 또는 라벨이 할당되지 않은 리소스를 식별할 수 있습니다.

공유 리소스 및 서비스(예: 일반적인 데이터 스토어, 멀티 테넌트 클러스터, 지원 구독) 비용을 추적하려면 특수 태그 또는 라벨을 사용하여 공유 리소스가 포함된 프로젝트를 식별하는 것이 좋습니다.

결제 액세스 제어 구성

Cloud Billing에 대한 액세스를 제어하려면 결제 연락처 정보를 관리하는 사용자에게만 결제 계정 관리자 역할을 할당하는 것이 좋습니다. 예를 들어 재무, 회계, 운영 직원은 이 역할이 필요할 수 있습니다.

결제 지원의 단일 장애점을 방지하려면 결제 계정 관리자 역할을 여러 사용자 또는 그룹에 할당합니다. 결제 계정 관리자 역할이 있는 사용자만 지원팀에 문의할 수 있습니다. 자세한 안내는 Cloud Billing 액세스 제어 예시중요 역할을 참조하세요.

결제 액세스를 관리하려면 다음 구성을 수행합니다.

  • 결제 계정을 프로젝트와 연결하려면 구성원에게 결제 계정에 대한 결제 계정 사용자 역할과 프로젝트에 대한 프로젝트 결제 관리자 역할이 있어야 합니다.
  • 팀이 결제 계정을 프로젝트와 수동으로 연결할 수 있도록 하려면 조직 수준에서 프로젝트 결제 관리자 역할과 결제 계정에 대한 결제 계정 사용자 역할을 할당합니다. 프로젝트 생성 중에 서비스 계정에 프로젝트 결제 관리자 및 결제 계정 사용자 역할을 할당하여 결제 계정 연결을 자동화할 수 있습니다. 결제 계정 생성자 역할을 제한하거나 이 역할의 모든 할당을 삭제하는 것이 좋습니다.
  • 프로젝트의 결제 상태를 실수로 변경하여 발생한 서비스 중단을 방지하기 위해 프로젝트와 해당 결제 계정 간의 링크를 잠글 수 있습니다. 자세한 내용은 프로젝트와 결제 계정 간의 링크 보안을 참조하세요.

결제 보고서 구성

결제 보고서를 설정하여 추적해야 하는 주요 측정항목의 데이터를 제공하세요. 다음 측정항목을 추적하는 것이 좋습니다.

  • 비용 추세
  • 최대 지출자(프로젝트 및 제품별)
  • 불규칙한 지출 영역
  • 조직 차원의 주요 통계는 다음과 같습니다.
    • 이상 감지
    • 시간 변동에 따른 추이
    • 설정된 패턴(예: 월별)에서 발생하는 추세
    • 내부 워크로드와 외부 워크로드 간의 비용 비교 및 벤치마크 분석
    • 비즈니스 사례 추적 및 가치 실현(예: 유사한 온프레미스 리소스 비용과 클라우드 비용 비교)
    • Google Cloud 청구서가 예상한 대로 정확한지 검증

BigQuery 결제 내보내기를 사용하여 비용 보고서를 맞춤설정하고 분석하고 Looker Studio를 사용하여 비용 데이터를 시각화할 수 있습니다. 예측 도구를 사용하여 실제 비용 추세와 지출 비용을 평가합니다.

리소스 사용량 및 비용 최적화

이 섹션에서는 Google Cloud 서비스 전반에서 리소스 사용 및 비용을 최적화하는 데 도움이 되는 권장사항을 설명합니다.

과다 지출을 방지하려면 모든 프로젝트에 대해 높은 임곗값을 사용하여 기본 예산 및 알림을 구성하는 것이 좋습니다. 예산을 초과하지 않도록 다음 작업을 수행하는 것이 좋습니다.

  • 절대적 사용량이 필요한 프로젝트(예: 학습 또는 샌드박스 프로젝트)의 예산 및 알림 구성

  • 추적해야 하는 재무 예산을 기반으로 예산을 정의합니다. 예를 들어 부서에 전체 클라우드 예산이 있는 경우 추적해야 하는 특정 프로젝트를 포함하도록 Google Cloud 예산의 범위를 설정합니다.

  • 예산을 유지관리하려면 워크로드를 소유한 팀에 예산 및 알림 구성 책임을 위임합니다.

비용을 최적화하려면 다음을 수행하는 것이 좋습니다.

  • 비즈니스에 미치는 영향이 거의 또는 전혀 없는 경우 API 사용량 상한을 설정합니다. 상한은 샌드박스 또는 학습 프로젝트와 고정 예산이 있는 프로젝트(예: BigQuery의 임시 분석)에 유용할 수 있습니다. 상한을 설정해도 연결된 프로젝트의 모든 리소스와 데이터가 삭제되지는 않습니다.
  • 할당량을 사용하여 리소스 배포를 제한하는 엄격한 제한을 설정합니다. 할당량을 사용하면 비용을 관리하고 리소스를 악의적으로 사용하거나 오용하지 않도록 방지하는 데 도움이 됩니다. 할당량은 리소스 유형 및 위치에 따라 프로젝트 수준에서 적용됩니다.
  • 권장사항 허브에서 비용 최적화 권장사항을 보고 구현합니다.
  • 약정 사용 할인(CUD)을 구매하여 리소스 요구 사항을 예측 가능한 워크로드의 리소스 비용을 절감합니다.

도구 및 기술

클라우드의 주문형 프로비저닝 및 종량제 특성은 IT 비용을 최적화하는 데 도움이 됩니다. 이 섹션에서는 Google Cloud에서 제공하는 도구와 클라우드의 리소스 비용을 추적하고 제어하는 데 사용할 수 있는 기술을 설명합니다. 이러한 도구와 기술을 사용하기 전에 기본 Cloud Billing 개념을 검토하세요.

결제 보고서

Google Cloud는 Google Cloud Console 내에서 현재 및 예상 지출을 볼 수 있는 결제 보고서를 제공합니다. 결제 보고서를 사용하면 단일 페이지에서 비용 데이터를 확인하고, 추세를 검색 및 분석하고, 기간 종료 비용을 예측하고, 필요한 경우 시정 조치를 취할 수 있습니다.

결제 보고서는 다음 데이터를 제공합니다.

  • 특정 기간의 비용 및 비용 추세는 다음과 같이 구성됩니다.
    • 결제 계정별
    • 프로젝트별
    • 제품별(예: Compute Engine)
    • SKU(예: 고정 IP 주소)
  • 할인 또는 프로모션 크레딧이 제외된 경우의 예상 비용
  • 예상 지출

BigQuery로 데이터 내보내기

BigQuery로 결제 보고서를 내보내고 라벨 또는 태그를 사용해 분류된 데이터를 포함한 세분화된 과거 데이터 뷰를 사용하여 비용을 분석할 수 있습니다. BigQuery ML을 사용하여 고급 분석을 수행할 수 있습니다. Cloud Billing 계정을 만들 때 BigQuery로 결제 보고서 내보내기를 사용 설정하는 것이 좋습니다. BigQuery 데이터 세트에는 Cloud Billing 내보내기를 설정한 날짜의 결제 데이터가 포함됩니다. 데이터 세트에는 내보내기를 사용 설정하기 전의 기간 데이터는 없습니다.

비용 데이터를 시각화하려면 BigQuery와 통합되는 커스텀 대시보드를 만들면 됩니다(예시 템플릿: Looker, Looker Studio).

내보낸 결제 데이터를 필터링하는 기준으로 태그와 라벨을 사용할 수 있습니다. 결제 내보내기에 포함된 라벨 수는 제한되어 있습니다. 한 시간 동안 최대 1,000개의 라벨 맵이 유지됩니다. 인보이스 PDF 또는 CSV에는 라벨이 표시되지 않습니다. 사업부, 내부 지불 거절 부서, 기타 관련 메타데이터를 나타내는 태그 또는 라벨을 사용하여 리소스에 주석을 추가하는 것이 좋습니다.

결제 액세스 제어

리소스에 대한 Identity and Access Management(IAM) 정책을 정의하여 특정 리소스와 관련된 Cloud Billing 액세스를 제어할 수 있습니다. Cloud Billing에 대해 액세스 권한을 부여하거나 제한하려면 조직 수준, 결제 계정 수준, 프로젝트 수준에서 IAM 정책을 설정할 수 있습니다.

청구 및 리소스 관리를 위한 액세스 제어는 업무 분장 원칙을 따릅니다. 각 사용자는 비즈니스 역할에 필요한 권한만 있습니다. 조직 관리자 역할과 결제 관리자 역할의 권한이 다릅니다.

결제 계정 수준 및 조직 수준에서 결제 관련 권한을 설정할 수 있습니다. 일반적인 역할은 결제 계정 관리자, 결제 계정 사용자, 결제 계정 뷰어입니다.

인보이스 결제를 사용하거나 백업 결제 수단을 구성하는 것이 좋습니다. 청구 및 결제에 대한 연락처 및 알림 설정을 유지합니다.

예산, 알림, 할당량

예산을 사용하면 계획된 지출 대비 실제 Google Cloud 비용을 추적할 수 있습니다. 예산을 만들 때 실제 비용이나 예상 비용이 정의된 임곗값을 초과할 때 이메일 알림을 트리거하도록 알림 규칙을 구성할 수 있습니다. 예산을 사용하여 비용 관리 응답을 자동화할 수도 있습니다.

예산은 알림을 트리거하여 리소스 사용량 및 비용 추세를 알리고 비용 최적화 작업을 수행하라는 메시지를 표시할 수 있습니다. 하지만 실제 비용이 예산 또는 기준에 도달하거나 이를 초과할 때 예산에 따른 서비스 사용 또는 청구가 방지되지는 않습니다. 비용 알림을 자동으로 제어하려면 예산 알림을 사용하여 프로젝트의 Cloud Billing을 프로그래매틱 방식으로 사용 중지할 수 있습니다. 또한 API 사용량을 제한하여 정의된 사용량 임곗값을 넘은 후에는 비용이 발생하지 않도록 할 수도 있습니다.

결제 계정 및 프로젝트에 대한 알림을 구성할 수 있습니다. 계정에 예산을 1개 이상 구성합니다.

미리 정의된 수준 이상으로 리소스를 프로비저닝하거나 특정 작업의 볼륨을 제한하려면 리소스 또는 API 수준에서 할당량을 설정할 수 있습니다. 다음은 할당량을 사용하는 방법의 예시입니다.

  • 초당 API 호출 수를 제어합니다.
  • 생성되는 VM 수를 제한합니다.
  • BigQuery에서 하루에 쿼리되는 데이터 양을 제한합니다.

프로젝트 소유자는 Service Usage API를 사용하여 소비자 재정의를 특정 할당량 제한에 적용함으로써 할당량 제한에 대해 청구될 수 있는 할당량을 줄일 수 있습니다. 자세한 내용은 소비자 할당량 재정의 만들기를 참조하세요.

워크로드 효율성 개선

Google Cloud의 워크로드를 비용 효율적으로 만들려면 다음 전략을 사용하는 것이 좋습니다.

  • 제품 효율성을 개선하여 리소스 사용량을 최적화합니다.
  • 리소스 청구 요율을 낮춥니다.
  • 리소스 사용량과 지출액을 제어하고 제한합니다.

비용 절감 기술 및 Google Cloud 기능을 선택할 때는 다음 그래프와 같이 필요한 작업과 예상 절감액을 고려하세요.

비용 최적화 전략: 노력 대비 절감 지도

다음은 이전 그래프에 표시된 기술을 요약한 것입니다.

  • 다음 기술은 적은 노력으로 높은 절감 효과를 얻을 수 있습니다.
    • 약정 사용 할인
    • 자동 확장
    • BigQuery 슬롯
  • 다음 기술을 사용하면 적당한 노력으로 높은 비용을 절감할 수 있습니다.
    • Spot VM
    • 서버리스 또는 컨테이너화된 애플리케이션으로 재설계
    • 관리형 서비스 사용을 위한 플랫폼 변경
  • 다음 기술을 사용하면 보통 정도의 노력으로도 어느 정도 비용을 절감할 수 있습니다.
    • 커스텀 머신 유형
    • Cloud Storage 수명 주기 관리
    • 알맞은 크기 조정
    • 유휴 리소스 회수

다음 섹션에서 설명하는 기술을 사용하면 워크로드의 효율성을 개선할 수 있습니다.

리팩터링 또는 재설계

Google Cloud 제품을 사용하도록 워크로드를 리팩터링하거나 다시 설계하여 상당한 비용 절감을 달성할 수 있습니다. 예를 들어 Scale-to-zero를 지원하는 서버리스 서비스(Cloud Storage, Cloud Run, BigQuery, Cloud Functions 등)로 전환하면 효율성이 향상될 수 있습니다. 이러한 제품의 비용을 평가하고 비교하려면 가격 계산기를 사용하세요.

알맞은 크기 조정

이 기술을 사용하면 인프라의 확장이 원하는 사용량과 일치하는지 확인할 수 있습니다. 이 전략은 주로 기본 인프라 비용을 지불하는 Infrastructure as a Service(IaaS) 솔루션과 관련이 있습니다. 예를 들어 VM 50개를 배포했지만 VM이 완전히 활용되지 않았고 워크로드가 더 적거나 작은 VM에서 효과적으로 실행될 수 있다고 가정해 보겠습니다. 이 경우 일부 VM을 삭제하거나 크기를 조절할 수 있습니다. Google Cloud는 적정 크기 권장사항을 제공하므로 더 작은 VM을 프로비저닝하여 성능에 영향을 주지 않고 비용을 절감할 수 있습니다. 크기 조정을 프로덕션 단계에서 리소스를 배포한 후보다 설계 단계에서 수행하는 경우 크기 최적화의 부담이 줄어듭니다.

자동 확장

사용하는 제품이 동적 자동 확장을 지원할 경우 자동 확장을 활용할 수 있는 워크로드를 설계하여 비용과 성능 이점을 얻을 수 있습니다. 예를 들어 컴퓨팅 집약적인 워크로드의 경우 Compute Engine에서 관리형 인스턴스 그룹을 사용하거나 애플리케이션을 컨테이너화하여 Google Kubernetes Engine 클러스터에 배포할 수 있습니다.

Active Assist 권장사항

Active Assist는 데이터, 인텔리전스, 머신러닝을 사용하여 클라우드의 복잡성과 관리 작업을 줄여줍니다. Active Assist를 사용하면 클라우드 토폴로지의 보안, 성능, 비용을 쉽게 최적화할 수 있고 비용 및 사용량을 최적화하기 위한 지능형 권장사항을 사용할 수 있습니다. 이러한 권장사항을 적용하면 비용을 즉시 절감하고 효율성을 높일 수 있습니다.

다음은 Active Assist에서 제공하는 권장사항의 예시입니다.

  • Compute Engine 리소스 크기 최적화: VM 인스턴스의 크기를 조절하여 사용량에 따라 비용 및 성능을 최적화합니다. 비활성 VM영구 디스크를 식별하고 삭제하거나 백업하여 인프라 비용을 최적화합니다.
  • 약정 사용 할인 (CUD): Google Cloud가 이전 사용량을 분석하고, 워크로드의 최적 약정 수량을 찾아내고, 비용 절감을 위한 이해하기 쉽고 실용적인 추천 사항을 제공합니다. 자세한 내용은 약정 사용 할인 추천자를 참조하세요.
  • 미사용 프로젝트: 조직의 미사용 프로젝트를 찾고 이를 삭제하거나 회수합니다. 자세한 내용은 미사용 프로젝트 추천자를 참조하세요.

전체 목록은 추천자를 참조하세요.

다음 단계