CDL에서 비용 관리 및 운영 우수성 도메인은 전체의 약 14% 를 차지합니다. Cloud Billing 구조를 이해하고, 비용을 절감하는 방법과 시스템을 안정적으로 운영하는 원칙이 핵심입니다.
리소스 계층 구조
Google Cloud는 마치 회사의 조직도처럼 4단계 계층 구조로 리소스를 관리합니다. 최상위에 조직(Organization)이 있고, 그 아래에 폴더(Folder)로 부서나 팀을 구분하며, 프로젝트(Project)가 실제 리소스를 묶는 기본 단위입니다. 그리고 Compute Engine VM, Cloud Storage 버킷 같은 실제 리소스(Resource)가 프로젝트 안에 존재합니다.
프로젝트가 결제의 기본 단위입니다. 예를 들어 "개발 프로젝트"와 "운영 프로젝트"를 분리하면 각 프로젝트의 비용을 독립적으로 추적할 수 있습니다. 권한(IAM) 정책도 이 계층 구조를 따라 상위에서 하위로 상속됩니다.
Cloud Billing
Cloud Billing 계정
Cloud Billing 계정은 마치 신용카드를 지갑에 넣는 것처럼, 결제 수단(신용카드, 청구서 등)을 Google Cloud와 연결하는 객체입니다. 하나의 Billing 계정에 여러 프로젝트를 연결할 수 있어서, 회사 전체의 비용을 한 곳에서 관리하거나 팀별로 별도 Billing 계정을 두는 것도 가능합니다.
Billing 계정과 프로젝트의 관계는 다음과 같습니다:
| 관계 | 설명 | |------|------| | 1:多 | 하나의 Billing 계정에 여러 프로젝트 연결 가능 | | 必1 | 프로젝트는 반드시 하나의 Billing 계정과 연결 | | 독립 | Billing 계정은 조직 외부에도 존재 가능 |
예산 알림 (Budget Alerts)
예산 알림은 마치 통장 잔액이 일정 금액 이하로 떨어지면 문자를 받는 것처럼, 설정한 금액(예산)에 가까워지거나 초과하면 이메일로 알려주는 기능입니다. 예를 들어 월 예산을 10만 원으로 설정하고 50%, 90%, 100% 도달 시 알림을 받도록 설정할 수 있습니다.
중요한 점은 예산 알림은 자동으로 리소스를 중지하지 않는다는 것입니다. 알림을 받고 사람이 직접 조치해야 합니다. (자동 중지가 필요하면 Cloud Functions와 연동해야 합니다.)
Cloud Billing Reports
Cloud Billing Reports는 내 Google Cloud 사용 비용의 추세를 시각화하는 대시보드입니다. 마치 가계부 앱처럼 어떤 서비스에 얼마를 썼는지, 시간에 따라 비용이 어떻게 변하는지 그래프로 보여줍니다. 서비스별, 리전별, 프로젝트별로 필터링해서 볼 수 있습니다.
비용 내보내기 (Cost Export)
더 상세한 분석이 필요하다면 비용 데이터를 BigQuery로 내보낼 수 있습니다. BigQuery로 내보낸 데이터는 SQL 쿼리로 원하는 방식대로 분석하거나, Looker Studio로 맞춤형 대시보드를 만들 수 있습니다. 예를 들어 "지난 3개월 동안 팀별로 가장 많이 쓴 서비스는?" 같은 복잡한 분석이 가능해집니다.
라벨 (Labels)
라벨은 리소스에 키-값 쌍을 붙이는 태그 기능입니다. 예를 들어 , , 같은 라벨을 VM이나 버킷에 붙이면, 나중에 Cloud Billing Reports에서 이 라벨 기준으로 비용을 분류해서 볼 수 있습니다. 마치 영수증에 "업무비", "식비" 카테고리를 붙이는 것과 같습니다.
비용 절감 방법
Google Cloud는 다양한 할인 옵션을 제공합니다. 상황에 맞게 올바른 할인 옵션을 선택하는 것이 중요합니다.
| 할인 방법 | 조건 | 절감률 | 특징 | |-----------|------|--------|------| | 지속 사용 할인 (Sustained Use) | 월 사용량에 따라 자동 | 최대 30% | 별도 신청 불필요, 자동 적용 | | 약정 사용 할인 (Committed Use) | 1년 또는 3년 약정 | 최대 57% | 사전 약정 필요, 취소 불가 | | Spot VM | 중단 가능한 워크로드 | 최대 91% | 언제든 Google이 회수 가능 | | 적절한 크기 선택 (Right-sizing) | 사용량 분석 후 조정 | 상황마다 다름 | 낭비되는 리소스 제거 |
지속 사용 할인 (Sustained Use Discounts)
Compute Engine VM을 한 달에 일정 시간 이상 사용하면 Google이 자동으로 할인을 적용해 줍니다. 별도 신청이 필요 없으며, 월 사용 비율에 따라 단계적으로 할인됩니다. 마치 편의점에서 같은 상품을 자주 사면 단골 할인을 자동으로 받는 것처럼 생각할 수 있습니다.
약정 사용 할인 (Committed Use Discounts)
1년 또는 3년 동안 일정 양의 리소스를 사용하겠다고 약정하면 더 큰 할인을 받습니다. 예를 들어 "앞으로 1년간 8 vCPU, 32GB 메모리를 사용하겠습니다"라고 약정하면 최대 57%까지 할인됩니다. 단, 중간에 취소하거나 변경할 수 없으므로 충분히 계획된 워크로드에만 적합합니다.
Spot VM (선점형 VM)
Spot VM은 Google 데이터센터의 남는 용량을 매우 저렴하게 사용하는 VM입니다. 마치 비행기의 빈 좌석을 마지막 순간에 매우 싸게 구매하는 것과 비슷합니다. 단, Google이 필요할 때 언제든 중단(preemption)시킬 수 있다는 단점이 있습니다. 따라서 중단되어도 괜찮은 배치 처리, 데이터 분석, 렌더링 같은 워크로드에 적합합니다.
적절한 크기 선택 (Right-sizing)
필요 이상으로 큰 VM을 사용하고 있다면, 실제 사용량에 맞게 크기를 줄이는 것입니다. Google Cloud의 Recommender 도구가 사용 패턴을 분석해 "이 VM은 n1-standard-4에서 n1-standard-2로 줄여도 됩니다"라고 자동으로 추천해 줍니다.
Google Cloud Pricing Calculator
실제로 서비스를 사용하기 전에 예상 비용을 미리 계산하는 도구입니다. 어떤 서비스를 얼마나 쓸 것인지 입력하면 월별 예상 비용을 알려줍니다. 마치 쇼핑 전에 가격을 미리 확인하는 것처럼, 예산 계획에 필수적인 도구입니다.
SRE (Site Reliability Engineering)
SRE는 Google이 자사 서비스 운영 경험을 바탕으로 개발한 운영 철학입니다. 핵심 아이디어는 소프트웨어 엔지니어링 원칙을 시스템 운영에 적용하는 것입니다. 수동 작업을 자동화하고, 장애를 코드로 해결하며, 신뢰성을 정량적으로 측정합니다.
SRE에서 가장 중요한 세 가지 지표를 이해해야 합니다:
| 지표 | 의미 | 예시 | 대상 | |------|------|------|------| | SLA (Service Level Agreement) | 고객과의 계약 | "월 99.99% 가용성 보장, 위반 시 환불" | 외부(고객) | | SLO (Service Level Objective) | 팀의 내부 목표 | "월 99.95% 가용성을 목표로 한다" | 내부(팀) | | SLI (Service Level Indicator) | 실제 측정값 | "이번 달 실제 가용성은 99.97%였다" | 관찰값 |
관계와 순서: SLI(실제 측정) → SLO(내부 목표) → SLA(고객 계약)
SLO는 항상 SLA보다 높게 설정합니다. 이유는 버퍼를 두기 위해서입니다. 예를 들어 SLA가 99.9%라면 SLO는 99.95%로 설정해서, 혹시라도 SLO를 약간 위반해도 SLA(고객과의 계약)는 지킬 수 있게 합니다.
오류 예산 (Error Budget): SLO를 기반으로 "이번 달에 허용된 다운타임이 얼마나 남았는가"를 추적합니다. 오류 예산이 충분히 남아 있으면 새 기능 배포 등 위험을 감수할 수 있고, 오류 예산이 소진되면 안정성 개선에 집중합니다.
DevOps
DevOps는 개발(Development)과 운영(Operations)의 벽을 허물어, 더 빠르고 안정적으로 소프트웨어를 배포하는 문화와 실천 방식입니다. 전통적으로 개발팀은 "새 기능을 빨리 배포하자"는 입장이고, 운영팀은 "안정성을 위해 변경을 최소화하자"는 입장으로 충돌하는 경우가 많았습니다. DevOps는 이 두 목표를 모두 달성하기 위한 접근법입니다.
핵심 실천 방법:
CI (Continuous Integration, 지속적 통합): 개발자들이 코드를 자주 (하루에도 여러 번) 공유 저장소에 병합하고, 자동으로 빌드와 테스트를 실행합니다. CD (Continuous Delivery/Deployment, 지속적 배포): 테스트를 통과한 코드를 자동으로 프로덕션에 배포합니다. 자동화: 수동 작업을 코드로 대체하여 실수를 줄이고 속도를 높입니다. 모니터링: 배포 후 문제를 빠르게 감지하고 대응합니다.
Cloud Operations Suite
Cloud Operations Suite는 Google Cloud에서 제공하는 모니터링·로깅·디버깅 도구의 모음입니다. 마치 자동차의 계기판처럼 시스템의 상태를 실시간으로 파악하고 문제를 진단합니다.
| 서비스 | 역할 | 비유 | |--------|------|------| | Cloud Monitoring | 메트릭 수집, 대시보드, 경고(Alert) 설정 | 자동차 속도계·온도계 | | Cloud Logging | 로그 수집, 저장, 검색, 분석 | 블랙박스 기록 | | Error Reporting | 애플리케이션 에러 자동 감지 및 그룹화 | 엔진 경고등 | | Cloud Trace | 요청의 전체 경로 추적, 지연 시간 분석 | GPS 경로 기록 | | Cloud Debugger | 프로덕션 코드 실행 중 변수 상태 확인 | 블랙박스 재생 |
Cloud Monitoring
Cloud Monitoring은 VM CPU 사용률, 네트워크 트래픽, 응답 시간 등 수백 가지 메트릭을 수집해서 대시보드로 시각화합니다. 그리고 특정 조건(예: CPU가 80% 초과)이 되면 경고(Alert)를 이메일이나 SMS로 보냅니다. 문제가 발생하기 전에 미리 감지할 수 있습니다.
Cloud Logging
Cloud Logging은 애플리케이션, 시스템, Google Cloud 서비스에서 발생하는 모든 로그를 중앙에서 수집하고 분석합니다. 마치 회사 건물의 CCTV 녹화본을 한 곳에서 볼 수 있는 것처럼, 여러 서비스의 로그를 한 화면에서 검색할 수 있습니다.
Error Reporting
Error Reporting은 애플리케이션에서 발생한 예외(Exception)와 에러를 자동으로 감지하고, 같은 종류의 에러를 그룹화해서 보여줍니다. 언제부터 에러가 발생했는지, 얼마나 자주 발생하는지, 어떤 사용자에게 영향을 미치는지를 한눈에 볼 수 있습니다.
Cloud Trace
Cloud Trace는 분산 시스템에서 하나의 요청이 어떤 경로로 처리되는지 추적합니다. 예를 들어 사용자가 버튼을 클릭했을 때 이 요청이 프론트엔드 → API 서버 → 데이터베이스 → 캐시 서버를 거치는 데 각각 얼마나 걸렸는지 시각화해서 병목 구간을 찾아냅니다.