성능 및 비용 최적화

이 아키텍처 프레임워크 섹션에서는 배포에 포함된 성능과 비용 최적화 간의 균형을 이루는 방법을 설명합니다.

전체 프레임워크는 다음 문서 시리즈로 구성됩니다.

전략

성능 요구사항을 평가합니다. 다양한 애플리케이션의 우선순위와 필요한 최소 성능을 결정합니다.

확장 가능한 설계 패턴을 사용합니다. 자동 확장, 컴퓨팅 선택, 스토리지 구성을 통해 확장성과 성능을 개선합니다.

비용 절감 접근 방식을 파악하고 구현합니다. 실행 중인 각 서비스의 비용을 평가하고 우선순위를 연결하여 서비스 가용성 및 비용을 최적화합니다.

권장사항

  • 자동 확장 및 데이터 처리를 사용합니다.
  • GPU와 TPU를 사용하여 성능을 높입니다.
  • 조정할 앱을 식별합니다.
  • 비용을 분석하고 최적화합니다.

자동 확장 및 데이터 처리 사용

자동 확장을 사용하여 로드가 증가하거나 감소할 때 서비스에서 일치하는 리소스를 추가하거나 해제합니다.

Compute Engine 자동 확장

관리형 인스턴스 그룹(MIG)을 사용하면 동일한 여러 VM에서 스테이트리스(Stateless) 앱을 확장할 수 있으므로 정책에 기반하는 단일 템플릿에 따라 Compute Engine 리소스 그룹이 실행됩니다. 자동 확장 정책에는 CPU 사용률, 부하 분산 용량, Cloud Monitoring 측정항목을 기반으로 하는 확장이나 영역 MIG의 경우 Pub/Sub와 같은 큐 기반 워크로드를 사용하는 확장이 있습니다.

Google Kubernetes Engine 자동 확장

Google Kubernetes Engine(GKE)의 클러스터 자동 확장 처리 기능을 사용하여 워크로드의 다양한 수요에 따라 클러스터의 노드 풀을 관리할 수 있습니다. 클러스터 자동 확장 처리는 실제 리소스 사용률 대신 노드 풀의 노드에서 실행되는 Pod의 리소스 요청에 따라 자동으로 노드 풀의 크기를 늘리거나 줄입니다.

서버리스 자동 확장

서버리스 컴퓨팅 옵션에는 자동 확장 기능을 제공하는 Cloud Run, App Engine, Cloud Functions가 있습니다. 서버리스 옵션을 사용하여 마이크로서비스 또는 함수를 확장합니다.

데이터 처리

DataprocDataflow는 데이터 파이프라인 및 데이터 처리를 확장하는 자동 확장 옵션을 제공합니다. 이러한 옵션을 사용하면 파이프라인이 처리 로드에 따라 더 많은 컴퓨팅 리소스에 액세스할 수 있습니다.

설계 관련 질문

  • 변동이 심한 사용자 로드 또는 처리 요구사항이 있는 애플리케이션은 무엇인가요?
  • 변동이 심한 데이터 요구사항이 있는 데이터 처리 파이프라인은 무엇인가요?

권장사항

  • Google Cloud 부하 분산기를 사용하여 글로벌 엔드포인트를 제공합니다.
  • Compute Engine과 함께 관리형 인스턴스 그룹을 사용하면 자동으로 확장됩니다.
  • GKE의 클러스터 자동 확장 처리를 사용하여 클러스터를 자동으로 확장합니다.
  • App Engine을 사용하여 Platform-as-a-Service(PaaS) 애플리케이션을 자동 확장합니다.
  • Cloud Run 또는 Cloud Functions를 사용하여 함수 또는 마이크로서비스를 자동 확장합니다.

주요 서비스

리소스

GPU 및 TPU를 사용하여 성능 향상

Google Cloud는 워크로드의 성능을 높이는 옵션을 제공합니다. 이러한 특수 하드웨어 플랫폼을 사용하여 애플리케이션 및 데이터 처리 성능을 높일 수 있습니다.

Graphics Processing Unit(GPU)

Compute Engine은 가상 머신 인스턴스에 추가할 수 있는 GPU를 제공합니다. 이 GPU를 사용하여 인스턴스에서 머신러닝 및 데이터 처리와 같은 특정 워크로드를 가속화할 수 있습니다.

Tensor Processing Unit(TPU)

TPU는 머신러닝 워크로드를 위해 Google에서 특별히 설계한 매트릭스 프로세서입니다. TPU는 메모리 액세스가 매우 적은 대규모 파이프라인이 있는 대규모 매트릭스 작업에 가장 적합합니다.

리소스

조정할 앱 식별

애플리케이션 성능 관리(APM)에는 지연 시간과 비용을 줄여 더 효율적인 애플리케이션을 실행할 수 있는 도구가 포함되어 있습니다. Cloud Trace, Cloud Debugger, Cloud Profiler를 사용하면 코드와 서비스의 작동 방식을 파악하고 필요한 경우 문제를 해결할 수 있습니다.

계측

지연 시간은 사용자 경험을 결정하는 데 큰 역할을 합니다. 애플리케이션 백엔드가 복잡해지거나 마이크로서비스 아키텍처를 채택하기 시작하면 서비스 간 통신을 지연 시키거나 병목 현상을 식별하기가 어렵습니다. Cloud Trace 및 OpenTelemetry 도구를 사용하면 배포에서 지연 시간 데이터를 수집하고 빠르게 분석할 수 있습니다.

디버깅

Cloud Debugger를 사용하면 성능에 영향을 미치거나 속도를 저하시키지 않고 프로덕션 코드 동작을 실시간으로 검사하고 분석할 수 있습니다.

프로파일링

코드가 제대로 작동하지 않으면 애플리케이션 및 웹 서비스의 지연 시간과 비용이 증가합니다. Cloud Profiler를 사용하면 애플리케이션에서 실행되는 CPU 또는 메모리 집약적인 함수의 성능을 지속적으로 분석하여 이러한 문제를 포착하고 해결할 수 있습니다.

권장사항

  • Cloud Trace를 사용하여 애플리케이션을 계측합니다.
  • Cloud Debugger를 사용하여 실시간 프로덕션 디버깅 기능을 제공합니다.
  • Cloud Profiler를 사용하여 애플리케이션의 작업 성능을 분석합니다.

비용 분석 및 최적화

비용을 최적화하는 첫 번째 단계는 현재 사용량과 비용을 이해하는 것입니다. Google Cloud는 결제 데이터를 분석하는 자세한 방법을 제공하는 BigQuery로 결제 내보내기 기능을 제공합니다. BigQueryGoogle 데이터 스튜디오에 연결하여 시각적 분석 또는 기타 타사 비즈니스 인텔리전스(BI) 도구(예: Tableau, Qlik, Looker)를 수행할 수 있습니다. 프로그래매틱 알림 기능을 사용하여 예산이 특정 기준을 초과할 때 알림을 보냅니다. 타사 솔루션 제공업체 및 커스텀 애플리케이션에서 예산 알림을 사용할 수 있습니다.

지속 사용 할인은 결제 월의 상당 기간 동안 특정 Compute Engine 리소스를 실행하면 자동으로 적용되는 할인입니다. 특정 Compute Engine 가상 머신(VM) 유형의 장기간 사용에 대해서는 지속 사용 할인이 부여됩니다.

약정 사용 할인은 필요한 리소스를 예측할 수 있는 워크로드에 이상적입니다. 약정 사용 계약을 구매하면 1년 또는 3년 동안 약정된 금액을 지불하는 조건으로 특정 양의 vCPU, 메모리, GPU, 로컬 SSD를 할인가로 구매합니다.

선점형 VM은 일반 인스턴스보다 훨씬 저렴한 가격으로 만들고 실행할 수 있는 인스턴스입니다. 하지만 다른 작업 때문에 리소스에 액세스해야 하는 경우 Compute Engine이 이러한 인스턴스를 종료(선점)할 수 있습니다. 선점형 인스턴스는 Compute Engine의 초과 용량이므로 사용량에 따라 가용성이 달라집니다.

비용을 구성하는 구성요소를 파악하면 최적화 방법을 결정할 수 있습니다. 사용률이 낮거나 필요하지 않은 리소스를 찾는 것부터 시작하는 것이 좋습니다. Compute Engine은 리소스 크기를 조정하는 데 사용할 수 있는 VM의 크기 권장사항을 제공합니다. 변경사항을 구현한 후 후속 결제 내보내기 데이터를 비교하여 비용의 차이를 확인할 수 있습니다.

사용 비용을 예측하려면 Google Cloud 가격 계산기를 사용합니다.

권장사항

  • 조직 전체에서 고유한 라벨을 사용하여 사용량을 추적합니다.
  • BigQuery로 결제 내보내기 기능을 사용합니다.
  • 데이터 스튜디오 또는 기타 시각화 도구를 사용하여 결제 데이터 보고서를 시각화합니다.
  • Compute Engine에서 권장하는 적절한 크기 권장사항을 구현합니다.
  • 약정 사용 할인을 구매하기 위해 예상 사용량과 함께 Compute Engine에서 연중 무휴 사용량을 파악합니다.
  • Cloud Storage 객체 수명 주기 관리를 사용하여 스토리지 비용을 관리합니다.

리소스