비용 최적화: 데이터베이스 및 스마트 분석

Last reviewed 2023-06-26 UTC

Google Cloud 아키텍처 프레임워크의 이 문서에서는 Google Cloud에서 데이터베이스 및 분석 워크로드의 비용을 최적화하는 데 도움이 되는 권장사항을 제공합니다.

이 섹션의 안내는 클라우드에서 데이터베이스 및 분석 워크로드를 프로비저닝하고 관리하는 설계자, 개발자, 관리자를 대상으로 합니다.

이 섹션에는 다음 제품에 대한 비용 최적화 권장사항이 포함되어 있습니다.

Cloud SQL

Cloud SQL은 MySQL, PostgreSQL, SQL Server를 위한 완전 관리형 관계형 데이터베이스입니다.

사용량 모니터링

모니터링 대시보드에서 측정항목을 검토하고 배포가 워크로드 요구사항을 충족하는지 확인합니다.

리소스 최적화

다음은 Cloud SQL 리소스를 최적화하는 데 도움이 되는 권장사항입니다.

  • 복구 시간 목표(RTO)와 복구 지점 목표(RPO)에 맞는 고가용성 및 재해 복구 전략을 설계합니다. 워크로드에 따라 다음을 권장합니다.
    • 짧은 RTO 및 RPO가 필요한 워크로드의 경우 고가용성 구성리전 장애 조치용 복제본을 사용합니다.
    • 더 긴 RTO 및 RPO를 감당할 수 있는 워크로드의 경우 자동 및 주문형 백업을 사용합니다. 그러면 장애 후 복원에 시간이 조금 더 걸릴 수 있습니다.
  • 필요한 최소 스토리지 용량으로 데이터베이스를 프로비저닝합니다.
  • 데이터 증가에 따라 스토리지 용량을 자동으로 확장하려면 저장용량 자동 증가 기능을 사용 설정합니다.
  • 사용 사례에 적합한 스토리지 유형인 솔리드 스테이트 드라이브(SSD) 또는 하드 디스크 드라이브(HDD)를 선택합니다. 대부분의 사용 사례에서는 SSD가 가장 효율적이고 경제적인 선택입니다. 지연 시간에 민감하지 않거나 자주 액세스하지 않는 10TB 이상의 큰 데이터 세트에는 HDD가 적합할 수 있습니다.

요율 최적화

필요한 리소스를 예측할 수 있는 워크로드에는 약정 사용 할인을 구매하는 것이 좋습니다. 1년 약정의 경우 주문형 가격의 25%, 3년 약정의 경우 52%를 절약할 수 있습니다.

Spanner

Spanner는 최대 99.999%의 가용성을 제공하는 무제한 규모의 클라우드 기반 strong consistency 데이터베이스입니다.

사용량 모니터링

다음은 Spanner 리소스 사용량을 추적하는 데 도움이 되는 권장사항입니다.

  • 배포를 모니터링하고 CPU 권장사항에 따라 노드 수를 구성합니다.
  • 배포 알림을 설정하여 스토리지 리소스를 최적화합니다. 적절한 구성을 확인하려면 권장 노드당 한도를 참조하세요.

리소스 최적화

다음은 Spanner 리소스를 최적화하는 데 도움이 되는 권장사항입니다.

  • 노드 대신 처리 단위(PU)로 리소스를 프로비저닝하여 Spanner에서 훨씬 저렴한 비용으로 보다 작은 워크로드를 실행합니다. Spanner 노드 하나는 PU 1,000개와 같습니다.
  • 쿼리 최적화 도구를 사용하여 쿼리 실행 성능을 개선합니다.
  • 효율적인 실행 계획을 수립하기 위한 권장사항을 따라 SQL 문을 구성합니다.
  • 자동 확장 처리 도구를 사용하여 Spanner 배포의 사용 및 성능을 관리합니다. 이 도구는 인스턴스를 모니터링하고 노드를 자동으로 추가하거나 삭제하며 인스턴스가 권장 CPU 및 스토리지 한도를 초과하지 않도록 하는 데 도움이 됩니다.
  • PITR(point-in-time recovery)를 사용하여 실수로 인한 삭제 또는 쓰기로부터 보호합니다. 버전 보관 기간이 긴 데이터베이스(특히 데이터를 자주 덮어쓰는 데이터베이스)는 더 많은 시스템 리소스를 사용하므로 노드가 더 필요합니다.
  • 백업 전략을 검토하고 다음 옵션 중 하나를 선택합니다.
    • 백업 및 복원
    • 내보내기 및 가져오기

요율 최적화

Spanner 노드 위치를 결정할 때 Google Cloud 리전 간의 비용 차이를 고려하세요. 예를 들어 us-central1 리전에 배포된 노드의 비용은 southamerica-east1 리전의 노드보다 시간당 훨씬 저렴합니다.

Bigtable

Bigtable은 지연 시간이 짧은 대규모 워크로드를 위한 클라우드 기반 와이드 칼럼 NoSQL 저장소입니다.

사용량 모니터링

다음은 Bigtable 리소스 사용량을 추적하는 데 도움이 되는 권장사항입니다.

  • 사용량 측정항목을 분석하여 리소스 최적화 기회를 파악합니다.
  • Key Visualizer 진단 도구를 사용하여 Bigtable 클러스터의 핫스팟 및 핫키를 식별합니다.

리소스 최적화

다음은 Bigtable 리소스를 최적화하는 데 도움이 되는 권장사항입니다.

  • 지연 시간과 스토리지 용량 간의 균형을 제공하는 CPU 및 디스크 사용량을 보장하도록 Bigtable 클러스터의 노드 수와 크기를 평가하고 조정합니다.
  • Bigtable 클러스터를 프로그래매틱 방식으로 확장하여 노드 수를 자동으로 조정함으로써 가능한 한 저렴한 비용으로 성능을 유지합니다.
  • 다음 고려사항에 따라 사용 사례에 가장 경제적인 스토리지 유형(HDD 또는 SSD)을 평가하세요.

    • HDD 스토리지는 SSD보다 저렴하지만 성능이 낮습니다.
    • SSD 스토리지는 HDD보다 비용이 높지만 더 빠르고 예측 가능한 성능을 제공합니다.

    많은 양의 데이터를 저장하지 않는 한 Bigtable 클러스터의 노드 비용과 관련한 HDD의 비용 절감 효과는 미미합니다. 지연 시간에 민감하지 않거나 자주 액세스하지 않는 10TB 이상의 큰 데이터 세트에는 HDD 스토리지가 적합한 경우도 있습니다.

  • 가비지 컬렉션을 사용하여 만료되어 사용되지 않는 데이터를 삭제합니다.

  • 핫스팟을 방지하려면 row key 설계 권장사항을 적용합니다.

  • RPO에 맞는 비용 효율적인 백업 계획을 설계합니다.

  • 클러스터 사용량을 줄이고 노드 수를 줄이려면 Memorystore를 사용하여 캐시 가능한 쿼리의 용량 캐시를 추가하는 것이 좋습니다.

추가 자료

BigQuery

BigQuery는 확장성과 비용 효율성이 뛰어난 멀티 클라우드 서버리스 데이터 웨어하우스로, 비즈니스 민첩성을 제공하도록 설계되었습니다.

사용량 모니터링

다음은 BigQuery 리소스 사용량을 추적하는 데 도움이 되는 권장사항입니다.

  • 프로젝트 및 사용자별로 BigQuery 비용을 시각화합니다. 가장 비용이 많이 드는 쿼리를 찾아서 최적화합니다.
  • INFORMATION_SCHEMA 메타데이터 테이블을 사용하여 프로젝트, 작업, 예약에서의 슬롯 사용률을 분석합니다.

리소스 최적화

다음은 BigQuery 리소스를 최적화하는 데 도움이 되는 권장사항입니다.

  • 규정 준수 전략에 따라 데이터 세트 수준, 테이블 수준 또는 파티션 수준의 데이터 만료 시간을 설정합니다.
  • 쿼리당 청구되는 바이트 수를 제한하여 쿼리 비용을 제한합니다. 실수를 방지하려면 사용자 수준 및 프로젝트 수준에서 비용 관리를 사용 설정합니다.
  • 필요한 데이터만 쿼리합니다. 전체 쿼리 스캔을 하지 않습니다. 데이터 시맨틱스를 살펴보고 이해하려면 무료 데이터 미리보기 옵션을 사용합니다.
  • 처리 비용을 줄이고 성능을 개선하려면 가능한 경우 테이블의 파티션 나누기클러스터링을 수행합니다.
  • 쿼리를 최대한 자주, 이른 시점에 필터링합니다.
  • 여러 소스(예: Bigtable, Cloud Storage, Google Drive, Cloud SQL)의 데이터를 처리할 때 제휴 액세스 데이터 모델을 사용하고 소스에서 직접 데이터를 쿼리하여 데이터 복제를 방지합니다.
  • 데이터를 복제하는 대신 BigQuery의 백업을 활용합니다. 데이터 재해 복구 시나리오를 참조하세요.

요율 최적화

다음은 BigQuery 리소스의 청구 요율을 낮추는 데 도움이 되는 권장사항입니다.

  • 데이터를 수정하는 방법을 평가하고 장기 스토리지 가격을 활용합니다.
  • 정액제와 주문형 가격 책정의 차이점을 검토하고 요구사항에 맞는 옵션을 선택합니다.
  • 데이터 워크플로에 스트리밍 삽입 대신 일괄 로드를 사용할 수 있는지 여부를 평가합니다. BigQuery에 로드된 데이터가 즉시 소비되는 경우 스트리밍 삽입을 사용합니다.
  • 성능을 높이고 데이터 검색 비용을 줄이려면 캐시 처리된 쿼리 결과를 사용하세요.

추가 자료

Dataflow

Dataflow는 통합 스트림 및 일괄 데이터 처리를 위한 빠르고 경제적인 서버리스 서비스입니다.

사용량 모니터링

다음은 Dataflow 리소스 사용량을 추적하는 데 도움이 되는 권장사항입니다.

리소스 최적화

다음은 Dataflow 리소스를 최적화하는 데 도움이 되는 권장사항입니다.

  • 빅데이터를 효율적으로 처리하려면 Dataflow Prime을 고려하세요.
  • 자동 확장 처리된 일괄 파이프라인에 가변형 리소스 예약(FlexRS)을 사용하여 일괄 처리 비용을 줄입니다. FlexRS는 고급 예약, Dataflow Shuffle, 선점형 및 일반 VM의 조합을 사용하여 일괄 파이프라인의 비용을 줄입니다.
  • Persistent Disk 및 워커 노드 대신 인메모리 셔플 서비스를 사용하여 성능을 개선합니다.
  • 응답성이 높은 자동 확장을 제공하고 리소스 소비를 줄이려면 파이프라인 실행을 작업자 VM에서 Dataflow 서비스 백엔드로 이동시키는 Streaming Engine을 사용합니다.
  • 파이프라인에 인터넷 및 기타 Google Cloud 네트워크에 대한 액세스 권한이 필요하지 않으면 공개 IP 주소를 사용 중지합니다. 인터넷 액세스를 사용 중지하면 네트워크 비용을 줄이고 파이프라인 보안을 개선할 수 있습니다.
  • Dataflow를 통한 효율적인 파이프라인 권장사항을 따릅니다.

Dataproc

Dataproc은 일괄 처리, 쿼리, 스트리밍, 머신러닝을 위한 관리형 Apache Spark 및 Apache Hadoop 서비스입니다.

다음은 Dataproc 리소스의 비용을 최적화하는 데 도움이 되는 권장사항입니다.

다음 단계