Apache Spark 가용성 극대화: 컴퓨팅 용량 부족 문제 해결을 위한 가변형 VM 및 기타 권장사항
Sravani Bobbala
Software Engineering Manager
Qiqi Wu
Product Manager
*이 콘텐츠는 AI 번역 도구를 사용하여 번역되었습니다. 정확성을 기하기 위해 노력하고 있으나, 자동 번역에는 오류나 누락이 포함될 수 있습니다. 정확한 정보는 영문 원본을 참고해 주시기 바랍니다.
AI 개발이 급증하면서 컴퓨팅 용량에 대한 수요가 전 세계적으로 전례 없이 증가하고 있습니다. 이러한 상황은 Apache Spark를 활용한 데이터 처리 및 파이프라인에 부정적인 영향을 미칠 수 있으며 자체 Spark 인프라를 관리하거나 관리형 서비스를 사용할 때 가용성 제약에 직면할 수 있습니다. 하지만 Google의 Managed Service for Apache Spark를 사용하면 가변형 VM이라는 큰 이점을 누릴 수 있습니다. 가변형 VM은 동적이고 특정 리소스에 구애받지 않는 접근방식을 구현하는 특화된 메커니즘으로서 리전이나 영역에 용량이 부족한 상황에서도 파이프라인을 계속 운영할 수 있도록 지원합니다.
용량 부족에 대한 이해
대상 영역이나 리전에서 특정 머신 계열(예: N2 또는 N2D)에 대한 수요가 사용 가능한 용량을 초과하면 용량 부족이 발생합니다. 적시 처리가 중요한 분석 파이프라인에서 특정 VM 유형만 사용하도록 제한하면 일반 프로비저닝 과정 자체가 단일 장애점이 되어 클러스터 생성 지연이나 실행 장애로 이어질 수 있으며, 비즈니스 SLA에 영향을 미칠 가능성도 있습니다.
가변형 VM
가변형 VM은 Managed Spark 클러스터가 컴퓨팅 리소스를 요청하는 방식을 근본적으로 바꿉니다. 가변형 VM을 사용하면 클러스터를 하나의 고정된 인스턴스 유형에 결합하는 대신, 마스터 노드, 기본 워커 노드, 보조 워커 노드에 사용할 수 있는 머신 계열의 우선순위 목록을 설정할 수 있습니다.
주요 특징
-
다중 머신 계열 혼합: 하나의 구성에 2세대 계열(N2, N2D 등)과 4세대 계열(N4, C4 등)처럼 서로 다른 머신 유형과 세대의 노드를 조합할 수 있습니다.
-
혼합 스토리지 지원: 기본 호스트 계열에서 지원하는 디스크 유형에 맞게 스토리지 옵션을 동적으로 조정하여 사용 가능한 용량 풀을 확대할 수 있습니다.
-
포괄적인 클러스터 적용 범위: 기본 워커, 보조(선점형/스팟) 워커, 마스터 노드에 가변형 규칙을 적용하여 엔드 투 엔드로 클러스터 프로비저닝을 보장합니다.
순위 기반 구성: 성공적인 구현을 위한 전략
가변형 VM을 성공적으로 구현하려면 전략적인 순위 지정이 필요합니다. 옵션의 명확한 우선순위 체계를 정의하면 Managed Spark 클러스터가 자동으로 프로비저닝을 시도하여 수동 개입 없이 체계적으로 용량 부족 위험을 해소합니다. 적합한 VM의 가용성을 개선하려면 우선순위가 가장 높은(0순위) 가변형 VM 목록에 머신 계열을 2개 이상 지정하는 것이 좋습니다.
예를 들어 n2d-standard-16 형태를 표준으로 사용하는 프로덕션 파이프라인의 경우, 다음과 같은 계층화 전략을 통해 용량 부족 상황에서도 높은 복원력을 확보할 수 있습니다.
기존 n1-standard-16 형태를 표준으로 사용하는 파이프라인의 경우, 다음 계층화 전략을 사용하면 운영 안정성을 유지하면서 워크로드를 가용성이 높은 최신 아키텍처로 전환할 수 있습니다.
Hyperdisk Balanced 활용
가변형 VM으로 가용성을 극대화하려면 Hyperdisk Balanced와 같은 최신 스토리지 아키텍처를 도입해야 하는 경우가 많습니다. 최신 인스턴스 계열(N4 및 C4 포함)은 Hyperdisk를 사용하여 다양한 VM 크기에서 예측 가능한 성능을 제공합니다. 일반적으로 기본 IOPS 및 처리량 설정만으로도 대부분의 분산 Spark 작업을 안정적으로 수행할 수 있는 기준이 됩니다.
장단점 및 주요 고려사항
가변형 VM은 클러스터 프로비저닝 성공률을 크게 향상시키지만, 이를 엔터프라이즈 요구사항에 맞추려면 다음과 같은 몇 가지 아키텍처 및 재무 요소를 평가해야 합니다.
1. 리소스 할당량
이제 특정 머신(예: N2)의 할당량을 확보하는 것만으로는 충분하지 않습니다. 가변형 VM 목록에 정의된 모든 머신 유형 및 디스크(Hyperdisk 포함)에 컴퓨팅 및 디스크 할당량이 충분히 확보되어 있는지 확인해야 합니다.
2. Compute 가변형 약정 사용 할인(CUD)
기존의 리소스 기반 약정 사용 할인(CUD)은 특정 머신 계열에 연결되어 있어 유연성이 제한됩니다. 여러 VM 계열과 리전에 걸쳐 비용을 절감할 수 있도록 Compute 가변형 약정 사용 할인(CUD)을 활용해 보세요.
3. 성능 특성
머신 세대에 따라 성능이 달라질 수 있으며, Local SSD와 Hyperdisk 간에도 성능 차이가 발생할 수 있습니다. Managed Spark팀에서 이러한 차이를 비교할 수 있는 내부 벤치마크를 제공하지만 실제 결과는 워크로드에 따라 달라집니다. 따라서 이러한 머신 계열에서 사용하는 Spark 작업을 직접 테스트하여 SLA에 미치는 영향을 파악하는 것이 중요합니다.
추가 권장사항
가변형 VM을 구현하는 것 외에도 리소스 가용성과 워크로드 안정성을 높이는 데 도움이 되는 몇 가지 주요 아키텍처 및 일정 관리 전략이 있습니다.
-
AutoZone: 현재 용량을 기반으로 Managed Spark가 작업 실행에 가장 적합한 영역을 자동으로 선택할 수 있도록 AutoZone 라우팅을 도입하세요.
-
더 작은 머신 형태: 높은 수요가 발생하는 대규모 코어 구성을 피하세요. 4, 8, 16개 코어처럼 더 작은 머신 형태를 활용하는 워크로드와 YARN 컨테이너를 설계하세요. 이러한 소규모 구성은 사용 가능한 GCE 온디맨드 풀에서 용량을 확보하기가 훨씬 쉽습니다.
-
자동 확장: 적절한
maxInstances를 지정하여 클러스터 자동 확장을 배포하세요. 이를 통해 대규모 리소스를 처음부터 고정적으로 프로비저닝하지 않고도 갑작스럽게 증가하거나 예측하기 어려운 워크로드에 필요한 용량을 효과적으로 관리할 수 있습니다. -
부분 클러스터 생성: 허용 가능한 최소 기본 워커 수를 구성하세요. 이렇게 하면 리소스가 부족한 상황에서도 클러스터를 가동하여 작업을 실행할 수 있으며, 이후에 리소스를 사용할 수 있게 되면 자동 확장을 통해 나머지 워커를 동적으로 추가할 수 있습니다.
-
리전 대체 설정:
us-central1과 같은 일부 리전에서는 높은 수요가 발생할 수 있습니다. 다른 리전을 대체 옵션으로 설정하면 용량 부족 위험을 줄일 수 있습니다.
가변형 VM으로 Spark 작업을 중단 없이 실행하세요
자체 Apache Spark 인프라를 직접 관리하는 일은 매우 까다로울 수 있습니다. 특히 리소스 용량 부족으로 데이터 처리가 중단되는 상황이 발생하면 더욱 그렇습니다. Managed Service for Apache Spark와 같은 관리형 서비스를 활용하면 플랫폼에 기본 제공되는 복원력과 가변형 VM 사용 등 고유한 이점을 얻을 수 있습니다. 가변형 VM과 함께 우선순위 기반 대체 전략을 도입하면 리전의 하드웨어 부족으로부터 워크로드를 보호하고 중요한 파이프라인을 지속적으로 실행할 수 있습니다.
Spark 워크로드의 복원력을 높일 준비가 되셨나요? 지금 바로 Managed Spark 클러스터에 가변형 VM을 구성해 보세요.



