Google Cloud 아키텍처 프레임워크의 비용 최적화 요소에 있는 이 원칙은 클라우드 워크로드의 요구사항 및 소비 패턴에 맞게 리소스를 계획하고 프로비저닝하는 데 도움이 되는 권장사항을 제공합니다.
원칙 개요
클라우드 리소스 비용을 최적화하려면 워크로드 리소스 요구사항과 부하 패턴을 철저히 이해해야 합니다. 이러한 이해는 총소유비용 (TCO)을 예측하고 클라우드 채택 여정 전반에서 비용 요인을 파악할 수 있는 잘 정의된 비용 모델의 기반이 됩니다. 클라우드 지출을 사전에 분석하고 예측하여 리소스 프로비저닝, 활용도, 비용 최적화에 관해 정보에 입각한 선택을 할 수 있습니다. 이 접근 방식을 사용하면 클라우드 지출을 관리하고, 오버프로비저닝을 방지하며, 클라우드 리소스가 워크로드와 환경의 동적 요구사항에 맞게 조정되도록 할 수 있습니다.
권장사항
클라우드 리소스 사용을 효과적으로 최적화하려면 다음 권장사항을 고려하세요.
환경별 리소스 선택
각 배포 환경에는 가용성, 안정성, 확장성에 대한 요구사항이 다릅니다. 예를 들어 개발자는 애플리케이션을 빠르게 배포하고 단기간 실행할 수 있는 환경을 선호할 수 있지만 고가용성은 필요하지 않을 수 있습니다. 반면에 프로덕션 환경에는 일반적으로 고가용성이 필요합니다. 리소스 활용도를 극대화하려면 비즈니스 요구사항에 따라 환경별 요구사항을 정의하세요. 다음 표에는 환경별 요구사항의 예시가 나와 있습니다.
환경 | 요구사항 |
프로덕션 |
|
개발 및 테스트 |
|
기타 환경 (예: 스테이징 및 QA) |
|
워크로드별 리소스 선택
각 클라우드 워크로드의 가용성, 확장성, 보안, 성능 요구사항이 다를 수 있습니다. 비용을 최적화하려면 리소스 선택을 각 워크로드의 구체적인 요구사항에 맞춰야 합니다. 예를 들어 스테이트리스 애플리케이션에는 스테이트풀 백엔드와 동일한 수준의 가용성 또는 안정성이 필요하지 않을 수 있습니다. 다음 표에는 워크로드별 요구사항의 예가 더 나와 있습니다.
워크로드 유형 | 워크로드 요구사항 | 리소스 옵션 |
미션 크리티컬 | 지속적인 가용성, 강력한 보안, 높은 성능 | 데이터의 고가용성과 전 세계 일관성을 위한 프리미엄 리소스 및 관리 서비스(예: Spanner) |
심각하지 않음 | 비용 효율적인 자동 확장 인프라 | 기본 기능이 있는 리소스와 Spot VM과 같은 임시 리소스 |
이벤트 기반 | 현재 용량 및 성능 수요에 따른 동적 확장 | Cloud Run 및 Cloud Run 함수와 같은 서버리스 서비스 |
실험용 워크로드 | 신속한 개발, 반복, 테스트, 혁신을 위한 저렴하고 유연한 환경 | 기본 기능이 있는 리소스, 스팟 VM과 같은 임시 리소스, 지출 한도가 정의된 샌드박스 환경 |
클라우드의 이점은 특정 워크로드에 가장 적합한 컴퓨팅 성능을 활용할 수 있다는 것입니다. 일부 워크로드는 프로세서 명령어 세트를 활용하도록 개발되었으며, 다른 워크로드는 이러한 방식으로 설계되지 않았을 수 있습니다. 적절하게 워크로드를 벤치마킹하고 프로파일링합니다. 워크로드를 분류하고 워크로드별 리소스를 선택합니다 (예: Compute Engine VM에 적절한 머신 제품군 선택). 이 관행을 통해 비용을 최적화하고 혁신을 지원하며 워크로드에 필요한 가용성 및 성능 수준을 유지할 수 있습니다.
다음은 이 권장사항을 구현하는 방법의 예입니다.
- 전 세계적으로 분산된 사용자에게 서비스를 제공하는 미션 크리티컬 워크로드의 경우 Spanner를 사용하는 것이 좋습니다. Spanner는 모든 리전에서 데이터의 안정성과 일관성을 보장하여 복잡한 데이터베이스 배포가 필요하지 않습니다.
- 부하 수준이 변동하는 워크로드의 경우 자동 확장을 사용하여 부하가 낮을 때 비용이 발생하지 않도록 하고 현재 부하를 처리하기에 충분한 용량을 유지합니다. Compute Engine VM, Google Kubernetes Engine (GKE) 클러스터, Cloud Run을 비롯한 여러 Google Cloud 서비스에 자동 확장을 구성할 수 있습니다. 자동 확장을 설정할 때 최대 확장 한도를 구성하여 비용이 지정된 예산 내에 유지되도록 할 수 있습니다.
비용 요구사항에 따른 리전 선택
클라우드 워크로드의 경우 사용 가능한 Google Cloud 리전을 신중하게 평가하고 비용 목표에 맞는 리전을 선택합니다. 비용이 가장 낮은 리전이 최적의 지연 시간을 제공하지 않거나 지속가능성 요구사항을 충족하지 않을 수 있습니다. 원하는 균형을 달성하기 위해 워크로드를 배포할 위치에 관해 정보에 입각한 결정을 내립니다. Google Cloud 리전 선택 도구를 사용하여 비용, 지속 가능성, 지연 시간, 기타 요소 간의 균형을 파악할 수 있습니다.
기본 제공되는 비용 최적화 옵션 사용
Google Cloud 제품은 리소스 사용량을 최적화하고 비용을 관리하는 데 도움이 되는 기본 제공 기능을 제공합니다. 다음 표에는 일부 Google Cloud 제품에서 사용할 수 있는 비용 최적화 기능의 예가 나와 있습니다.
제품 | 비용 최적화 기능 |
Compute Engine | |
GKE |
|
Cloud Storage |
|
BigQuery |
|
Google Cloud VMware Engine |
|
리소스 공유 최적화
클라우드 리소스 사용률을 극대화하려면 애플리케이션의 보안 및 기타 요구사항을 충족하면서 동일한 인프라에 여러 애플리케이션 또는 서비스를 배포하면 됩니다. 예를 들어 개발 및 테스트 환경에서 동일한 클라우드 인프라를 사용하여 애플리케이션의 모든 구성요소를 테스트할 수 있습니다. 프로덕션 환경의 경우 각 구성요소를 별도의 리소스 세트에 배포하여 문제 발생 시 영향 범위를 제한할 수 있습니다.
다음은 이 권장사항을 구현하는 방법의 예입니다.
- 프로덕션 외 여러 환경에 단일 Cloud SQL 인스턴스를 사용합니다.
- 적절한 액세스 제어와 함께 GKE Enterprise의 Fleet팀 관리 기능을 사용하여 여러 개발팀이 GKE 클러스터를 공유할 수 있도록 합니다.
- GKE Autopilot을 사용하여 GKE에서 기본적으로 구현하는 빈 패킹 및 자동 확장과 같은 비용 최적화 기법을 활용합니다.
- AI 및 ML 워크로드의 경우 멀티 인스턴스 GPU, 시간 공유 GPU, NVIDIA MPS와 같은 GPU 공유 전략을 사용하여 GPU 비용을 절약하세요.
참조 아키텍처 개발 및 유지관리
다양한 배포 환경 및 워크로드 유형의 요구사항을 충족하도록 조정된 참조 아키텍처 저장소를 만들고 유지합니다. 개별 프로젝트의 설계 및 구현 프로세스를 간소화하기 위해 Cloud Center of Excellence (CCoE)와 같은 팀에서 청사진을 중앙에서 관리할 수 있습니다. 프로젝트팀은 명확하게 정의된 기준에 따라 적절한 청사진을 선택하여 아키텍처 일관성과 권장사항 채택을 보장할 수 있습니다. 프로젝트에 고유한 요구사항의 경우 프로젝트팀과 중앙 아키텍처팀이 협력하여 새 참조 아키텍처를 설계해야 합니다. 조직 전체에 참조 아키텍처를 공유하여 지식 공유를 촉진하고 사용 가능한 솔루션 저장소를 확장할 수 있습니다. 이 접근 방식을 사용하면 일관성을 유지하고 개발 속도를 높이며 의사결정을 간소화하고 효율적인 리소스 활용을 촉진할 수 있습니다.
다양한 사용 사례와 기술에 대해 Google에서 제공하는 참조 아키텍처를 검토하세요. 이러한 참조 아키텍처에는 리소스 선택, 크기 조정, 구성, 배포에 관한 권장사항이 통합되어 있습니다. 이러한 참조 아키텍처를 사용하면 개발 프로세스를 가속화하고 처음부터 비용을 절감할 수 있습니다.
조직 정책을 사용하여 비용 규율 시행
조직 정책을 사용하여 팀 구성원이 사용할 수 있는 Google Cloud 위치 및 제품을 제한해 보세요. 이러한 정책을 사용하면 팀이 비용 효율적인 솔루션을 준수하고 비용 최적화 목표에 부합하는 위치에 리소스를 프로비저닝할 수 있습니다.
현실적인 예산 추정 및 재정적 한도 설정
각 프로젝트, 워크로드, 배포 환경에 대한 세부 예산을 수립합니다. 예산이 인프라 비용, 소프트웨어 라이선스, 인력, 예상 성장을 비롯한 클라우드 운영의 모든 측면을 포함하는지 확인합니다. 초과 지출을 방지하고 재무 목표에 부합하도록 하려면 프로젝트, 서비스 또는 특정 리소스에 명확한 지출 한도 또는 기준점을 설정하세요. 이러한 한도에 따라 클라우드 지출을 정기적으로 모니터링합니다. 사전 할당량 알림을 사용하여 잠재적인 비용 초과가 발생하기 전에 이를 파악하고 시의적절하게 시정 조치를 취할 수 있습니다.
예산을 설정하는 것 외에도 할당량 및 한도를 사용하여 비용 규정을 시행하고 예상치 못한 지출 급증을 방지할 수 있습니다. 프로젝트, 서비스, 특정 리소스 유형을 비롯한 다양한 수준에서 할당량을 설정하여 리소스 사용량을 세부적으로 제어할 수 있습니다.
다음은 이 권장사항을 구현하는 방법의 예입니다.
- 프로젝트 수준 할당량: 프로젝트 수준에서 지출 한도 또는 리소스 할당량을 설정하여 전반적인 재정적 경계를 설정하고 프로젝트 내 모든 서비스에서 리소스 소비를 관리합니다.
- 서비스별 할당량: Compute Engine 또는 BigQuery와 같은 특정 Google Cloud 서비스의 할당량을 구성하여 프로비저닝할 수 있는 인스턴스, CPU 또는 스토리지 용량을 제한합니다.
- 리소스 유형별 할당량: Compute Engine VM, Cloud Storage 버킷, Cloud Run 인스턴스, GKE 노드와 같은 개별 리소스 유형에 할당량을 적용하여 사용을 제한하고 예상치 못한 비용 초과를 방지합니다.
- 할당량 알림: 프로젝트 수준의 할당량 사용량이 최대값의 일정 비율에 도달하면 알림을 받습니다.
예산 및 모니터링과 함께 할당량 및 한도를 사용하면 비용 관리에 대한 사전적이고 다층적인 접근 방식을 만들 수 있습니다. 이 접근 방식을 사용하면 클라우드 지출이 정의된 범위 내에서 유지되고 비즈니스 목표에 부합하는지 확인할 수 있습니다. 이러한 비용 관리는 영구적이거나 엄격하지 않습니다. 비용 관리가 현재 업계 표준을 준수하고 변화하는 비즈니스 요구사항을 반영하도록 하려면 비용 관리를 정기적으로 검토하고 새로운 기술과 권장사항을 포함하도록 조정해야 합니다.