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