Google Cloud 아키텍처 프레임워크: 성능 최적화

Google Cloud 아키텍처 프레임워크의 이 문서에서는 Google Cloud에서 워크로드의 성능을 최적화하기 위한 권장사항을 설명합니다.

전략

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

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

권장사항

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

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

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

Compute Engine 자동 확장

관리형 인스턴스 그룹(MIG)을 사용하면 인스턴스 템플릿을 기반으로 Compute Engine 리소스 그룹이 실행되도록 동일한 여러 VM에서 스테이트리스(Stateless) 앱을 확장할 수 있습니다. 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 아키텍처 프레임워크의 다른 카테고리 살펴보기