본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Amazon EMR; Amazon Elastic MapReduce; Elastic MapReduce
Apache Spark, Apache Hadoop, Apache Hive, Presto·Trino 같은 오픈 소스 빅데이터 프레임워크를 관리형 클러스터나 서버리스로 실행하는 AWS 서비스

아마존 EMR(이전 이름 Elastic MapReduce)은 대량의 데이터를 여러 EC2 인스턴스에 나눠 처리하는 클러스터를 몇 분 만에 만들어 준다. 프레임워크 설치, 구성, 노드 장애 대응을 AWS가 맡고, 이용자는 작업을 제출하거나 프라이머리 노드에 접속해 도구를 직접 쓴다. 로그 분석, 대규모 ETL, 머신러닝 전처리처럼 아파치 스파크나 하둡 생태계를 쓰는 작업을 클라우드로 옮길 때 기본 선택지다. SAA 시험 가이드는 "데이터 처리에 적합한 컴퓨팅 옵션 선택(예: 아마존 EMR)"을 직접 언급한다.

아마존 EMR의 배포 옵션(EC2, EKS, Serverless)
방식 설명 맞는 경우
EMR on EC2 EC2 인스턴스로 클러스터를 만들고 노드 유형, 인스턴스 유형, 구매 옵션을 직접 정한다 세밀한 튜닝, 장기 실행 클러스터, HDFS 사용
EMR Serverless 클러스터 없이 애플리케이션(Spark, Hive)을 만들고 작업을 제출하면 필요한 자원을 자동으로 잡았다 해제한다 클러스터 운영을 피하고 싶은 배치 작업
EMR on EKS 기존 아마존 EKS 클러스터에서 EMR 런타임으로 Spark 작업을 실행한다 컨테이너 플랫폼에 분석 작업을 통합

EMR on EC2 클러스터는 세 종류의 노드로 이루어진다.

노드 역할 HDFS 데이터 저장 스팟 인스턴스 사용
프라이머리 노드(primary node, 예전 마스터 노드) 클러스터를 관리하고 작업과 데이터 분배를 조정한다. 모든 클러스터에 있다 아니요 권장하지 않음. 중단되면 클러스터 전체가 종료된다
코어 노드(core node) 작업을 실행하고 HDFS에 데이터를 저장한다. 다중 노드 클러스터에는 최소 1개 예 신중히. 중단되면 HDFS 데이터 손실과 작업 실패 위험
태스크 노드(task node) 작업만 실행하고 HDFS에 저장하지 않는다. 선택 사항 아니요 적합. 중단돼도 데이터 손실이 없다
  • 처리량이 단계마다 다르면 코어 노드는 적게 두고 태스크 노드를 늘리거나 줄여 용량을 맞춘다.
  • 인스턴스 그룹은 노드 유형별로 같은 인스턴스 유형을 쓰고, 인스턴스 플릿은 한 노드 유형에 여러 인스턴스 유형과 온디맨드·스팟 목표 용량을 섞어 쓴다.
  • 태스크 노드에 스팟 인스턴스: 데이터를 저장하지 않으므로 회수돼도 작업이 재시도될 뿐 데이터가 사라지지 않는다. 시험의 정석 답이다.
  • 일시적 클러스터(transient cluster): 작업이 끝나면 클러스터를 종료한다. 데이터는 HDFS가 아니라 S3(EMRFS)에 두어 클러스터 수명과 분리한다.
  • 장기 실행 클러스터는 관리형 조정(managed scaling)으로 부하에 따라 노드 수를 조절하고, 상시 필요한 용량은 예약 인스턴스나 절감형 플랜으로 덮는다.
  • 간헐적 작업이라면 EMR Serverless로 유휴 클러스터 비용 자체를 없앨 수 있다.
  • HDFS: 코어 노드의 로컬 디스크에 있는 분산 파일 시스템. 빠르지만 클러스터를 종료하면 사라진다.
  • EMRFS(S3): S3를 파일 시스템처럼 쓴다. 클러스터를 종료해도 데이터가 남고 여러 클러스터가 공유한다. 데이터 레이크 구조에서는 S3가 기본이다.
  • 테이블 메타데이터는 AWS Glue 데이터 카탈로그를 메타스토어로 써서 Athena 등과 공유할 수 있다.

Glue와 선택 기준

편집 원본 편집
기준 AWS Glue 아마존 EMR
운영 부담 서버리스, 가장 적음 EC2 방식은 클러스터 구성·조정 필요(Serverless는 적음)
프레임워크 Spark 중심 ETL Spark, Hadoop, 아파치 하이브, Presto·Trino, HBase 등 폭넓음
제어 수준 낮음(작업 단위 설정) 높음(인스턴스 유형, 구성 파일, 부트스트랩 작업)
비용 구조 작업 실행 시간 기준 인스턴스 시간 기준, 스팟·예약으로 절감
대표 요구 "서버리스로 CSV를 Parquet으로 변환" "기존 온프레미스 Hadoop·Spark 작업을 최소 변경으로 이전", "페타바이트급 처리를 비용 효율적으로"
  • "온프레미스 Hadoop·Spark 클러스터를 AWS로 이전, 코드 변경 최소"면 아마존 EMR이다.
  • "EMR 비용 절감, 작업 중단 허용"이면 태스크 노드를 스팟 인스턴스로 돌린다. 프라이머리·코어 노드는 온디맨드(또는 예약)로 둔다.
  • 클러스터를 종료해도 데이터를 남기려면 HDFS가 아니라 S3에 저장한다.
  • "클러스터 관리 없이 Spark 작업 실행"은 EMR Serverless 또는 Glue다. ETL 위주면 Glue, 기존 EMR 작업과의 호환이 중요하면 EMR Serverless를 고른다.
  • 이미 EKS로 컨테이너를 운영 중이고 같은 플랫폼에서 Spark를 돌리고 싶다면 EMR on EKS다.