이제 Managed Service for Apache Spark에는 이전의 'Compute Engine 기반 Managed Service for Apache Spark' (클러스터 배포) 및 이전의 'Managed Service for Apache Spark' (서버리스 배포) 제품 옵션이 포함됩니다.
서버리스 및 클러스터 배포 모두 데이터 형식을 완전히 지원하는 OSS 호환 관리형의 확장 가능한 프로덕션 레디 상태의 보안 Spark 환경을 제공하지만, 기본 인프라를 관리하고 리소스에 대해 청구하는 방식이 다릅니다. Spark 솔루션을 선택하는 데 도움이 되도록 다음 기능과 사용 사례를 검토하세요.
Managed Service for Apache Spark 배포 비교
다음 표에는 Managed Service for Apache Spark 클러스터와 서버리스 배포의 주요 차이점이 나와 있습니다.
| 배포 | 서버리스 | 클러스터 |
|---|---|---|
| 처리 프레임워크 | 일괄 워크로드 및 대화형 세션: Spark | Spark. Hive, Flink, Trino, Kafka와 같은 기타 오픈소스 프레임워크 |
| 서버리스 | 예 | 아니요 |
| 시작 시간 | 50초 | 120초 |
| 인프라 제어 | 아니요 | 예 |
| 리소스 관리 | 서버리스 | YARN |
| GPU 지원 | 예 | 예 |
| 대화형 세션 | 예 | 아니요 |
| 커스텀 컨테이너 | 예 | 없음 |
| VM 액세스 (SSH) | 없음 | 예 |
| 자바 버전 | Java 17, 21 | Java 17 및 이전 버전 |
최적의 Managed Service for Apache Spark 배포 결정
이 섹션에서는 Spark 워크로드에 가장 적합한 Managed Service for Apache Spark 배포(클러스터 또는 서버리스)를 선택하는 데 도움이 되도록 Managed Service for Apache Spark의 핵심 장점과 주요 사용 사례를 간략하게 설명합니다.
개요
Managed Service for Apache Spark 배포는 각각 제공하는 제어 수준, 인프라 관리, 결제 모드에 따라 다릅니다.
- 서버리스 배포: Managed Service for Apache Spark는 Spark 작업을 서비스로 제공하여 완전 관리형 Google Cloud인프라에서 Spark를 실행합니다. 작업 런타임에 대한 비용을 지불합니다.
- 클러스터 배포: Compute Engine 인프라에서 Managed Spark를 실행하는 Spark-clusters-as-a-service를 제공합니다. 클러스터 업타임에 따라 비용을 지불합니다.
이러한 차이점으로 인해 각 Managed Service for Apache Spark 배포는 다음 사용 사례에 가장 적합합니다.
| 배포 | 사용 사례 |
|---|---|
| 서버리스 | 다양한 전용 작업 환경 예약된 일괄 워크로드 인프라 관리보다 코드 관리에 우선순위 부여 |
| 클러스터 | 장기 실행되는 공유 환경 인프라를 세밀하게 제어해야 하는 워크로드 레거시 Hadoop 및 Spark 환경 마이그레이션 |
주요 차이점
| 기능 | 서버리스 배포 | 클러스터 배포 |
|---|---|---|
| 관리 모델 | 완전 관리형 서버리스 실행 환경입니다. | 클러스터 기반 사용자가 클러스터를 프로비저닝하고 관리합니다. |
| 직접 관리 및 맞춤설정 가능 | 코드 제출 및 Spark 파라미터 지정에 중점을 두어 인프라 제어 수준이 낮습니다. | 클러스터 구성, 머신 유형, 소프트웨어를 더 세부적으로 제어할 수 있습니다. 스팟 VM을 사용하고 예약 및 Compute Engine 리소스 용량을 재사용할 수 있습니다. CPU 아키텍처와 같은 특정 VM 형태에 종속된 워크로드에 적합합니다. |
| 사용 사례 | 임시 쿼리, 대화형 분석, 새로운 Spark 파이프라인, 예측 불가능한 리소스 요구사항이 있는 워크로드 | 장기 실행 공유 클러스터, 커스텀 구성으로 기존 Hadoop 및 Spark 워크로드 마이그레이션, 심층적인 맞춤설정이 필요한 워크로드 |
| 운영 오버헤드 | 오버헤드 감소. Google Cloud 에서 인프라, 확장, 프로비저닝을 관리하므로 NoOps 모델이 가능합니다. Gemini Cloud Assist를 사용하면 문제 해결이 더 쉬워지고 서버리스 자동 조정을 통해 최적의 성능을 제공할 수 있습니다. |
클러스터 관리, 확장, 유지보수가 필요하므로 오버헤드가 더 높습니다. |
| 효율성 모델 | 유휴 컴퓨팅 오버헤드 없음: 작업이 실행 중일 때만 컴퓨팅 리소스 할당 시작 및 종료 비용이 없습니다. 효율성 향상을 위해 공유 대화형 세션이 지원됩니다. | 공유 멀티테넌시 모델을 사용하여 작업 및 팀 간에 클러스터를 공유함으로써 효율성을 높입니다. |
| 위치 제어 | Managed Service for Apache Spark는 추가 비용 없이 리전 워크로드를 지원하여 안정성과 가용성을 높입니다. | 클러스터는 영역 클러스터입니다. 클러스터 생성 중에 영역을 자동으로 선택할 수 있습니다. |
| 비용 | 시작 및 해제를 제외하고 Spark 작업 실행 기간에 대해서만 사용된 리소스를 기준으로 요금이 청구됩니다. 사용된 데이터 컴퓨팅 단위 (DCU) 및 기타 인프라 비용으로 청구됩니다. | 시작 및 해체를 포함하여 클러스터가 실행되는 시간에 대해 노드 수를 기준으로 청구됩니다. Managed Service for Apache Spark 라이선스 요금과 인프라 비용이 포함됩니다. |
| 약정 사용 할인 (CUD) | BigQuery 지출 기반 CUD는 Managed Service for Apache Spark 작업에 적용됩니다. | Compute Engine CUD는 모든 리소스 사용량에 적용됩니다. |
| 이미지 및 런타임 제어 | 사용자는 부 Managed Service for Apache Spark 런타임 버전에 고정할 수 있습니다. 하위 부 버전은 Managed Service for Apache Spark에서 관리합니다. | 사용자는 부 버전 및 하위 부 버전의 Managed Service for Apache Spark 이미지 버전에 고정할 수 있습니다. |
| 리소스 관리 | 서버리스 | YARN |
| GPU 지원 | 예 | 예 |
| 대화형 세션 | 예 | 아니요 |
| 커스텀 컨테이너 | 예 | 없음 |
| VM 액세스 (SSH) | 없음 | 예 |
| Java 버전 | Java 17, 21 |
이전 버전 지원됨 |
| 시작 시간 | 50초 | 120초 |
서버리스 배포를 선택해야 하는 경우
Managed Service for Apache Spark 서버리스 배포는 클러스터 관리의 복잡성을 추상화하여 Spark 코드에 집중할 수 있도록 해줍니다. 따라서 다음과 같은 데이터 처리 시나리오에 사용하기에 적합합니다.
- 임시 및 대화형 분석: Spark를 사용하여 대화형 쿼리와 탐색적 분석을 실행하는 데이터 과학자와 분석가의 경우 서버리스 모델을 사용하면 인프라에 집중하지 않고도 빠르게 시작할 수 있습니다.
- Spark 기반 애플리케이션 및 파이프라인: Spark에서 새 데이터 파이프라인 또는 애플리케이션을 빌드할 때 Managed Service for Apache Spark는 클러스터 관리의 운영 오버헤드를 제거하여 개발을 크게 가속화할 수 있습니다.
- 0수요가 간헐적이거나 예측 불가능한 워크로드: 간헐적인 Spark 작업이나 리소스 요구사항이 변동하는 작업의 경우 서버리스 자동 확장 및 사용한 만큼만 지불하는 가격 책정 (작업 리소스 소비에 요금 적용)을 통해 비용을 크게 줄일 수 있습니다.
- 개발자 생산성 중심: Managed Service for Apache Spark는 클러스터 프로비저닝 및 관리의 필요성을 없애 비즈니스 로직 생성을 가속화하고, 더 빠른 인사이트를 제공하며, 생산성을 높입니다.
- 운영 간소화 및 오버헤드 감소: Managed Service for Apache Spark 인프라 관리를 통해 운영 부담과 비용을 줄일 수 있습니다.
클러스터 배포를 선택해야 하는 경우
Managed Service for Apache Spark 클러스터 배포를 사용하여 Apache Spark 및 기타 오픈소스 데이터 처리 프레임워크를 실행할 수 있습니다. 높은 수준의 제어와 유연성을 제공하므로 다음과 같은 시나리오에서 선호됩니다.
- 기존 Hadoop 및 Spark 워크로드 마이그레이션: 온프레미스 Hadoop 또는 Spark 클러스터를 Google Cloud로 마이그레이션하는 것을 지원합니다. 특히 이전 Spark 버전을 사용하는 경우 최소한의 코드 변경으로 기존 구성을 복제합니다.
- 심층적인 맞춤설정 및 제어: 클러스터 머신 유형, 디스크 크기, 네트워크 구성을 맞춤설정할 수 있습니다. 이러한 수준의 제어는 복잡하고 장기 실행되는 작업의 성능 조정 및 리소스 사용률 최적화에 매우 중요합니다.
- 장기 실행 및 영구 클러스터: 여러 팀과 프로젝트를 위한 연속적인 장기 실행 Spark 작업과 영구 클러스터를 지원합니다.
- 다양한 오픈소스 생태계: Spark 워크로드와 함께 Hive, Pig, Presto와 같은 Hadoop 생태계 도구를 실행하는 데이터 처리 파이프라인을 실행할 수 있는 통합 환경을 제공합니다.
- 보안 규정 준수: 개인 식별 정보 (PII) 또는 보호 건강 정보 (PHI) 보호와 같은 특정 보안 또는 규정 준수 표준을 충족하도록 인프라를 제어할 수 있습니다.
- 인프라 유연성: 스팟 VM과 예약 및 Compute Engine 리소스 용량을 재사용하는 기능을 제공하여 리소스 사용의 균형을 맞추고 클라우드 인프라 전략을 촉진합니다.
요약
Managed Service for Apache Spark 클러스터 또는 서버리스 배포를 사용할지 여부는 워크로드 요구사항, 운영 환경설정, 선호하는 제어 수준에 따라 달라집니다.
- 사용 편의성, 간헐적인 워크로드에 대한 비용 효율성, 인프라 관리 오버헤드를 제거하여 새로운 Spark 애플리케이션의 개발을 가속화하는 기능을 고려한다면 Managed Service for Apache Spark 서버리스를 선택하세요.
- 최대한의 제어가 필요하거나, Hadoop 또는 Spark 워크로드를 마이그레이션해야 하거나, 영구적이고 맞춤설정된 공유 클러스터 환경이 필요한 경우 Managed Service for Apache Spark 클러스터를 선택하세요.
이 섹션에 나열된 요소를 평가한 후 가장 효율적이고 비용 효율적인 Managed Service for Apache Spark 배포를 선택하여 Spark를 실행하고 데이터의 잠재력을 최대한 활용하세요.