Amazon EMR 기능 살펴보기
1. 사용 편의성
Amazon EMR을 사용하면 빅 데이터 환경 및 애플리케이션을 간단하게 구축하고 운영할 수 있습니다. 관련 EMR 기능을 통해 클러스터 및 협업 개발을 위한 EMR Studio를 쉽게 프로비저닝하고 관리형으로 확장하고 재구성할 수 있습니다.
몇 분 내에 클러스터 프로비저닝:
몇 분 내에 EMR 클러스터를 시작할 수 있습니다. 인프라 프로비저닝, 클러스터 설정, 구성 또는 튜닝에 대해 걱정할 필요가 없습니다. EMR은 이러한 작업을 처리하여 팀이 차별화된 빅 데이터 애플리케이션 개발에 집중할 수 있도록 합니다.
비즈니스 요구 사항을 충족하도록 리소스의 규모를 쉽게 조정:
EMR 관리형 스케일링 정책 확장 및 축소를 쉽게 설정하고 EMR 클러스터를 통해 사용 및 성능 요구를 충족할 수 있도록 컴퓨팅 리소스를 자동으로 관리할 수 있습니다. 이렇게 하면 클러스터 활용도를 향상시키고 비용을 절감할 수 있습니다.
노트북을 사용해 작업을 제출할 수 있도록 EMR Studio가 통합 개발 환경(IDE)을 제공하므로 데이터 사이언티스트와 데이터 엔지니어는 R, Python, Scala 및 PySpark에서 작성한 데이터 엔지니어링 및 데이터 사이언스 애플리케이션을 쉽게 개발, 시각화 및 디버그할 수 있습니다. EMR Studio는 완전 관리형 Jupyter 노트북과 Spark UI 및 YARN Timeline Service와 같은 도구를 제공하여 디버깅을 간소화했습니다.
원클릭 고가용성:
하나의 확인란으로 YARN, HDFS, Apache Spark, Apache HBase 및 Apache Hive와 같은 애플리케이션에 대한 다중 마스터의 고가용성을 쉽게 구성할 수 있습니다. EMR에서 다중 마스터 지원을 활성화하면 EMR은 고가용성을 위해 이러한 애플리케이션을 구성하고 장애 발생 시 자동으로 예비 마스터로 장애 조치하여 클러스터가 중단되지 않도록 하며, 마스터 노드를 별개의 랙에 배치하여 동시 실패의 위험을 줄입니다. 장애를 탐지하기 위해 호스트를 모니터링하고 문제가 탐지되면 자동으로 새로운 호스트가 프로비저닝되어 클러스터에 추가됩니다.
EMR 관리형 스케일링:
자동으로 클러스터의 사이즈를 조절하여 가능한 한 최저의 비용으로 최대 성능을 얻을 수 있습니다. EMR 관리형 스케일링을 통해 클러스터용 최저 및 최대 컴퓨팅 한도를 지정하고 Amazon EMR은 최고의 성능 및 리소스 이용을 위해 자동으로 클러스터의 사이즈를 조정합니다. EMR 관리형 스케일링은 지속적으로 클러스터에서 실행 중인 워크로드 관련 주요 지표를 샘플화합니다.
실행 중인 클러스터를 쉽게 다시 구성:
이제 클러스터를 다시 시작하지 않고도 Apache Hadoop, Apache Spark, Apache Hive 및 Hue를 비롯한 EMR 클러스터에서 실행되는 애플리케이션 구성을 수정할 수 있습니다. EMR 애플리케이션 재구성 기능을 사용하면 클러스터를 종료하거나 다시 생성할 필요 없이 즉시 애플리케이션을 수정할 수 있습니다. Amazon EMR은 새로운 구성을 적용하고 재구성된 애플리케이션을 점진적으로 다시 시작합니다. 구성은 콘솔, SDK 또는 CLI를 통해 적용할 수 있습니다.
2. 탄력성
Amazon EMR을 사용하면 필요한 용량을 신속하고 손쉽게 프로비저닝할 수 있고 자동이나 수동으로 용량을 추가 및 제거할 수 있습니다. 따라서 처리 요구 사항이 일정하지 않거나 예측 불가능한 경우에 매우 유용합니다. 예를 들어, 야간에 대용량의 처리 작업이 발생할 경우 주간에 100개의 인스턴스가 필요하고 야간에 500개의 인스턴스가 필요할 수 있습니다. 또는 단기간 상당한 용량이 필요할 수도 있습니다. Amazon EMR을 사용하면 신속하게 수백 개 또는 수천 개의 인스턴스를 프로비저닝하고, 컴퓨팅 요구 사항에 맞춰 자동으로 확장하며, 유휴 용량에 대한 비용이 더 이상 청구되지 않도록 작업 완료 시 클러스터를 종료할 수 있습니다.
용량을 추가하거나 제거하는 기본 옵션에는 다음과 같은 두 가지가 있습니다.
여러 클러스터 배포:
용량이 더 필요한 경우 손쉽게 새 인스턴스를 시작하고 더 이상 필요하지 않게 되면 인스턴스를 종료할 수 있습니다. 사용할 수 있는 클러스터 수에는 제한이 없습니다. 사용자나 애플리케이션이 다수인 경우 여러 클러스터를 사용할 수 있습니다. 예를 들어, 입력 데이터를 Amazon S3에 저장하고 해당 데이터를 처리해야 하는 각 애플리케이션에 대해 한 개의 클러스터를 시작할 수 있습니다. 첫 번째 클러스터는 CPU에 최적화될 수 있고, 두 번째 클러스터는 스토리지에 최적화될 수 있습니다.
실행 중인 클러스터의 크기 조정:
Amazon EMR을 통해 EMR 관리형 스케일링을 사용하여 쉽게 실행 중인 클러스터의 크기를 자동으로 확장하거나 수동으로 조정할 수 있습니다. 클러스터의 처리 성능을 일시적으로 높이기 위해 클러스터를 확장하거나 유휴 용량이 있을 경우 비용을 절약하기 위해 클러스터를 축소하길 원할 수 있습니다. 예를 들어, 일부 고객은 일괄 처리가 발생하면 클러스터에 수백 개의 인스턴스를 추가하고 처리가 완료되면 남는 인스턴스를 제거합니다. 클러스터에 인스턴스를 추가하는 경우 이제 EMR에서는 프로비저닝된 용량이 제공되는 대로 이를 활용할 수 있습니다. 축소를 진행하는 동안 EMR은 사전에 유휴 노드를 선택하여 실행 중인 작업에 대한 영향을 줄입니다.
3. 저렴한 비용
Amazon EMR은 대량의 데이터를 처리하는 비용을 줄일 수 있도록 설계되었습니다. 비용을 줄이는 몇 가지 기능으로는 저렴한 초당 요금, Amazon EC2 스팟 인스턴스 통합, Amazon EC2 예약 인스턴스 통합, 탄력성, Amazon S3 통합 등을 들 수 있습니다.
저렴한 초당 요금:
Amazon EMR 요금은 초당 부과되며 최소 요금은 1분이고 스몰 인스턴스의 경우 인스턴스 시간당 최저 0.015 USD입니다(연간 131.40 USD). 자세한 내용은 요금 섹션을 참조하십시오.
Amazon EC2 스팟 통합:
Amazon EC2 스팟 인스턴스 요금은 인스턴스의 수요 및 공급에 따라 변동되지만 고객이 지정한 최고 가격보다 더 많이 지불하는 상황은 발생하지 않습니다. Amazon EMR을 사용하면 손쉽게 스팟 인스턴스를 사용할 수 있으므로 시간과 비용을 모두 절약할 수 있습니다. Amazon EMR 클러스터에는 HDFS를 실행하는 '코어 노드'와 HDFS를 실행하지 않는 ‘작업 노드’가 포함되어 있습니다. 스팟 가격이 상승할 경우 해당 인스턴스를 종료해도 HDFS에 저장된 데이터는 손실되지 않으므로 작업 노드는 스팟 인스턴스에 적합합니다. (코어 노드와 작업 노드에 대해 자세히 알아보십시오). 인스턴스 플릿, 스팟 인스턴스용 배치 전략, EMR 관리형 스케일링, 그리고 기타 다양화 옵션을 통해 이제 EMR을 복원력 및 비용을 위해 최적화할 수 있습니다. 자세한 내용은 블로그를 참조하십시오.
Amazon S3 통합:
EMR 파일 시스템(EMRFS)을 사용하면 EMR 클러스터가 하둡을 위한 효율적이고 안전한 객체 스토어로서 Amazon S3를 사용할 수 있습니다. Amazon S3에 데이터를 저장하고 여러 개의 Amazon EMR 클러스터를 사용하여 동일한 데이터 세트를 처리할 수 있습니다. 각 클러스터는 특정 워크로드에 최적화될 수 있으므로 요구 사항이 각기 다른 여러 워크로드를 처리하는 단일 클러스터보다 더 효율적일 수 있습니다. 예를 들어, I/O에 최적화된 하나의 클러스터와 CPU에 최적화된 또다른 클러스터를 사용할 수 있습니다. 각 클러스터는 Amazon S3에서 동일한 데이터 집합을 처리합니다. 또한 입력 및 출력 데이터를 Amazon S3에 저장하여 더 이상 필요하지 않을 경우 클러스터를 종료할 수 있습니다.
EMRFS는 강력한 Amazon S3에서 읽기 및 쓰기 성능을 제공하며, AWS Key Management Service(KMS)나 고객 관리 키를 통해 S3 서버 측 또는 S3 클라이언트 측 암호화를 지원하며, 메타데이터에서 추적하는 객체에 대한 목록 및 쓰기 후 읽기 일관성을 확인할 수 있는 일관된 보기를 선택적으로 제공합니다. 또한, Amazon EMR 클러스터는 EMRFS 및 HDFS를 모두 사용할 수 있으므로 클러스터 상 스토리지와 Amazon S3 중 하나를 선택할 필요가 없습니다.
AWS Glue 데이터 카탈로그 통합:
AWS Glue 데이터 카탈로그를 Apache Spark 및 Apache Hive의 외부 테이블 메타데이터를 저장하는 관리형 메타데이터 리포지토리로 사용할 수 있습니다. 또한, 자동 스키마 검색 및 스키마 버전 기록을 제공합니다. 따라서 클러스터 외에 Amazon S3에 외부 테이블의 메타데이터를 손쉽게 보관할 수 있습니다.
4. 유연한 데이터스토어
Amazon EMR을 사용하면 Amazon S3, 하둡 분산 파일 시스템(HDFS) 및 Amazon DynamoDB 등의 여러 데이터 스토어를 활용할 수 있습니다.
Amazon S3:
Amazon S3는 내구성, 확장성, 안전성 및 속도가 뛰어나면서도 요금은 저렴한 스토리지 서비스입니다. EMR 파일 시스템(EMRFS)을 통해 Amazon EMR은 효율적이고 안전한 하둡용 객체 스토어로서 Amazon S3를 사용할 수 있습니다. Amazon EMR은 하둡과 관련한 사항을 여러 가지 측면에서 개선한 서비스이므로 Amazon S3에 저장된 대량의 데이터를 원활하게 처리할 수 있습니다. 또한, EMRFS는 Amazon S3 내 객체에 대한 목록 및 읽기 후 쓰기 일관성을 확인할 수 있는 일관적인 보기가 가능합니다. EMRFS는 암호화된 Amazon S3 객체를 처리할 수 있도록 S3 서버 측 또는 S3 클라이언트 측 암호화를 지원하며, AWS Key Management Service(KMS)나 사용자 지정 키 공급업체를 사용할 수도 있습니다.
클러스터를 시작하면 Amazon EMR이 Amazon S3에서 사용자 클러스터의 각 인스턴스로 데이터를 스트리밍하고 즉시 데이터 처리를 시작합니다**. Amazon S3에 데이터를 저장하고 Amazon EMR을 사용해 데이터를 처리할 경우 얻을 수 있는 한 가지 이점은 여러 클러스터를 이용해 동일한 데이터를 처리할 수 있다는 것입니다.** 예를 들어 동일한 입력 데이터 세트를 사용하는, 메모리에 대해 최적화된 Hive 개발 클러스터와 CPU에 대해 최적화된 Pig 프로덕션 클러스터를 보유할 수 있습니다.
하둡 분산 파일 시스템(HDFS):
HDFS는 하둡 파일 시스템입니다. Amazon EMR의 현재 토폴로지에서는 인스턴스를 3개의 논리적 인스턴스 그룹으로 분류합니다. 마스터 그룹은 YARN Resource Manager와 HDFS Name Node Service를 실행하고, 코어 그룹은 HDFS DataNode Daemon과 YARN Node Manager 서비스를 실행하며, 태스크 그룹은 YARN Node Manager 서비스를 실행합니다. Amazon EMR은 코어 그룹의 인스턴스와 연결된 스토리지에 HDFS를 설치합니다.
각 EC2 인스턴스에는 인스턴스에 부착된, "인스턴스 스토어"라고 부르는 고정 용량의 스토리지가 있습니다. 또한, 사용자는 Amazon EBS 볼륨을 인스턴스에 추가하여 인스턴스의 스토리지를 사용자 정의할 수 있습니다. Amazon EMR을 사용하면 범용(SSD), 프로비저닝된(SSD) 및 마그네틱 볼륨 유형을 추가할 수 있습니다. EMR 클러스터에 추가된 EBS 볼륨은 클러스터가 종료된 후에는 데이터를 유지하지 않습니다. 클러스터를 종료하면, EMR에서 볼륨을 자동으로 정리합니다.
또한, Amazon EMR 보안 구성을 사용하여 HDFS에 대한 완벽한 암호화를 지원하거나 하둡 Key Management Server를 사용하여 수동으로 HDFS 암호화 영역을 생성할 수 있습니다. AWS KMS를 키 제공자로 지정하면 보안 구성 옵션을 사용하여 EBS 루트 디바이스 및 저장소 볼륨을 암호화할 수 있습니다. 더 많은 정보는 Local Disk Encryption을 암호화합니다.
Amazon DynamoDB:
Amazon DynamoDB는 완전히 관리되는 빠른 NoSQL 데이터베이스 서비스입니다. Amazon EMR은 Amazon DynamoDB와 직접 통합되므로 Amazon DynamoDB에 저장된 데이터를 빠르고 효율적으로 처리하고 Amazon DynamoDB, Amazon S3 및 Amazon EMR의 HDFS 간에 데이터를 전송할 수 있습니다.
기타 AWS 데이터스토어:
사용자는 Amazon Relational Database Service(클라우드에서 관계형 데이터베이스를 손쉽게 설정, 운영 및 확장할 수 있는 웹 서비스), Amazon Glacier(데이터 보관 및 백업을 위한 안전하고 내구성 높은 스토리지를 제공하는 매우 저렴한 스토리지 서비스) 및 Amazon Redshift(페타바이트급의 빠른 완전관리형 데이터 웨어하우스 서비스)도 사용할 수 있습니다. AWS Data Pipeline은 사용자가 온프레미스 데이터 소스뿐 아니라 여러 AWS 컴퓨팅 및 스토리지 서비스(Amazon EMR 포함) 간에 데이터를 안정적으로 처리하고 지정된 간격으로 이동할 수 있게 해 주는 웹 서비스입니다.
5. 선호하는 오픈 소스 애플리케이션 사용
Amazon EMR의 버전이 지정된 릴리스에서는 Apache Spark 및 하둡 에코시스템의 애플리케이션을 비롯하여 EMR 클러스터의 최신 오픈 소스 프로젝트를 손쉽게 선택하여 사용할 수 있습니다. Amazon EMR에서 소프트웨어를 설치하고 구성하므로 사용자는 인프라와 관리 작업에 대한 걱정 없이 데이터 가치를 높이는 데 더 많은 시간을 투자할 수 있습니다.
Apache Spark Apache 하둡 Apache HBase Presto
6. 빅 데이터 도구
Amazon EMR은 Apache Spark, Apache Hive, Presto 및 Apache HBase와 같은 강력하고 입증된 하둡 도구를 지원합니다. 데이터 사이언티스트는 EMR을 사용하여 TensorFlow, Apache MXNet와 같은 딥 러닝 및 기계 학습 도구를 실행하고 부트스트랩 작업을 사용하여 자체 사용 사례별 도구 및 라이브러리를 추가할 수 있습니다. 데이터 분석가는 EMR Studio, Hue 및 EMR Notebooks를 대화형 개발에 사용하여 Apache Spark 작업을 작성하고 Apache Hive 및 Presto에 SQL 쿼리를 제출할 수 있습니다. 데이터 엔지니어는 데이터 파이프라인 개발 및 데이터 처리에 EMR을 사용하고 Apache Hudi를 사용하여 레코드 수준 삽입, 업데이트 및 삭제 작업이 필요한 증분 데이터 관리 및 데이터 프라이버시 사용 사례를 간소화할 수 있습니다.
데이터 처리 및 기계 학습
Apache Spark는 대용량 데이터 세트의 빠른 처리를 위한 하둡 에코시스템의 엔진입니다. Spark는 인 메모리, 내결함성의 RDD(Resilient Distributed Dataset) 및 DAG(방향성 비순환 그래프)를 사용해 데이터 변환을 정의합니다. 또한, Spark는 Spark SQL, Spark Streaming, MLlib 및 GraphX를 포함합니다. Spark가 무엇인지 배우고 EMR 기반 Spark에 대해 자세히 알아보십시오.Apache Flink는 스트리밍 데이터플로우 엔진으로 이를 사용하면 처리량이 높은 데이터 소스에 대해 실시간 스트림 처리를 손쉽게 실행할 수 있습니다. 비순차 이벤트에 대한 이벤트 시간 의미 체계, 정확하게 한 번 의미 체계, 배압 제어, 스트리밍 및 배치 애플리케이션 둘 다 작성하는 데 최적화된 API를 지원합니다. EMR에서 Flink를 사용하는 방법에 대해 자세히 알아보십시오.TensorFlow는 인공 지능 및 딥 러닝 애플리케이션을 위한 오픈 소스 기호 수학 라이브러리입니다. TensorFlow는 여러 기계 학습과 딥 러닝 모델 및 알고리즘을 함께 묶어 여러 가지 다양한 사용 사례에 대해 딥 신경망을 학습하고 실행할 수 있습니다. EMR 기반 TensorFlow에 대해 자세히 알아보십시오.
레코드 수준 Amazon S3 데이터 관리
Apache Hudi는 증분 데이터 처리 및 데이터 파이프라인 개발을 간소화하는 데 사용되는 오픈 소스 데이터 관리 프레임워크입니다. Apache Hudi를 사용하면 Amazon S3의 레코드 수준에서 데이터를 관리할 수 있으므로 CDC(변경 데이터 캡처) 및 스트리밍 데이터 수집이 간소화되며, 레코드 수준 업데이트 및 삭제가 필요한 데이터 프라이버시 사용 사례를 처리하는 프레임워크를 제공할 수 있습니다. Amazon EMR 기반 Apache Hudi에 대해 자세히 알아보십시오.
SQL
Apache Hive는 하둡에서 실행되는 오픈 소스 데이터 웨어하우스 및 분석 패키지입니다. Hive는 SQL 기반 언어인 Hive QL로 작동되므로 사용자가 데이터를 정리, 요약 및 쿼리할 수 있습니다. Hive QL은 표준 SQL을 능가하며, map/reduce 함수와 복잡하고 확장 가능한 사용자 정의 데이터 유형(예: JSON 및 Thrift)에 대해 최고의 지원을 제공합니다. 이 기능을 통해 텍스트 문서 및 로그 파일과 같은 복잡한 비정형 데이터 소스도 처리할 수 있습니다. Hive는 사용자가 Java로 작성된 사용자 정의 함수를 통해 확장할 수 있도록 지원합니다. Amazon EMR은 Amazon DynamoDB 및 Amazon S3와의 직접 통합 등 Hive의 여러 측면을 개선한 서비스입니다. 예를 들어, Amazon EMR을 사용하면 Amazon S3에서 자동으로 테이블 파티션을 로드하고, 임시 파일을 사용하지 않고 Amazon S3의 테이블에 데이터를 쓰며, 사용자 지정 map/reduce 작업을 위한 스크립트 및 추가 라이브러리 등 Amazon S3의 리소스에 액세스할 수 있습니다. Hive란 무엇입니까 및 EMR 기반 Hive에 대해 자세히 알아보십시오.Presto는 짧은 지연 시간의 임시 데이터 분석에 최적화된 오픈 소스 분산 SQL 쿼리 엔진입니다. Presto는 복잡한 쿼리, 집계, 조인, 윈도우 함수 등 ANSI SQL 표준을 지원합니다. Presto는 HDFS(하둡 분산 파일 시스템)와 Amazon S3를 비롯한 여러 데이터 소스의 데이터를 처리할 수 있습니다. Presto란 무엇입니까 및 EMR 기반 Presto에 대해 자세히 알아보십시오.Apache Phoenix는 Apache HBase에 저장된 데이터에 대해 ACID 트랜잭션 기능과 함께 지연 시간이 짧은 SQL을 지원합니다. 성능 개선을 위한 보조 인덱스를 손쉽게 생성하고 동일한 기본 HBase 테이블에 대해 다른 보기를 생성할 수 있습니다. EMR 기반 Phoenix를 사용하는 방법에 대해 자세히 알아보십시오.
NoSQL
Apache HBase는 Google의 BigTable을 본떠서 만든 비관계형 분산 오픈 소스 데이터베이스입니다. 이 데이터베이스는 Apache Software Foundation의 하둡 프로젝트의 일부로 개발되었으며, 하둡 분산 파일 시스템(HDFS)에서 실행되어 하둡에 BigTable과 같은 기능을 제공합니다. HBase는 열 기반 압축 및 스토리지를 사용하여 다량의 스파스 데이터를 저장할 수 있는 효율적이고 내결함성을 갖춘 방식을 제공합니다. 또한, HBase는 데이터를 인 메모리에 캐시하므로 데이터 조회를 빠르게 조회할 수 있습니다. HBase는 순차 쓰기 작업에 최적화되어 있으며 배치 처리 삽입, 업데이트 및 삭제에 매우 유용합니다. HBase는 파일 시스템을 공유하고 하둡 작업에 직접 입력 및 출력하는 역할을 하는 등 하둡과 함께 원활하게 작동합니다. HBase는 또한 Apache Hive와 통합하여 HBase 테이블에 대한 유사 SQL 쿼리, Hive 기반 테이블과의 조인 및 Java Database Connectivity(JDBC)에 대한 지원을 활성화할 수 있습니다. EMR에서는 S3를 HBase용 데이터 스토어로 사용할 수 있으므로 비용을 절감하고 운영 복잡성을 줄일 수 있습니다. HDFS를 데이터 스토어로 사용하는 경우 HBase를 S3로 백업하고 이전에 생성한 백업에서 복원할 수 있습니다. HBase란 무엇입니까 및 EMR 기반 HBase에 대해 자세히 알아보십시오.
대화식 분석
노트북을 사용해 작업을 제출할 수 있도록 EMR Studio가 통합 개발 환경(IDE)을 제공하므로 데이터 사이언티스트와 데이터 엔지니어는 R, Python, Scala 및 PySpark에서 작성한 데이터 엔지니어링 및 데이터 사이언스 애플리케이션을 쉽게 개발, 시각화 및 디버그할 수 있습니다. EMR Studio는 완전 관리형 Jupyter 노트북과 Spark UI 및 YARN Timeline Service와 같은 도구를 제공하여 디버깅을 간소화했습니다.
하둡용 오픈 소스 사용자 인터페이스인 Hue를 사용하면 더욱 손쉬운 Hive 쿼리 실행 및 개발, HDFS의 파일 관리, Pig 스크립트 실행 및 개발, 테이블 관리가 가능합니다. EMR의 Hue는 Amazon S3와 통합되어 있으므로 S3에 바로 쿼리할 수 있으며, HDFS와 Amazon S3 간에 파일 전송도 더욱 편리합니다. HUE와 EMR에 대해 자세히 알아보세요.
Jupyter Notebook은 라이브 코드, 방정식, 시각화 및 해설 텍스트가 포함된 문서를 작성하고 공유하는 데 사용할 수 있는 오픈 소스 웹 애플리케이션입니다. JupyterHub를 사용하면 단일 사용자 Jupyter 노트북 서버의 여러 인스턴스를 호스팅할 수 있습니다. JupyterHub로 EMR 클러스터를 만들면 EMR이 클러스터의 마스터 노드에 Docker 컨테이너를 만듭니다. Jupyter에 필요한 모든 구성 요소 JupyterHub 및 Sparkmagic이 컨테이너 내에서 실행됩니다.Apache Zeppelin은 Spark를 사용하여 데이터 탐색을 위한 대화형 협업 노트를 생성하는 오픈 소스 GUI입니다. Scala, Python, SQL(Spark SQL 사용) 또는 HiveQL을 사용하여 데이터를 조작하고 신속하게 결과를 시각화할 수 있습니다. Zeppelin 노트북은 여러 사용자가 공유할 수 있으며, 시각화는 외부 대시보드로 게시될 수 있습니다. EMR 기반 Zeppelin에 대해 자세히 알아보세요.
스케줄링 및 워크플로
**Apache Oozie는 하둡용 워크플로 스케줄러로서, DAG(방향성 비순환 그래프) 작업을 생성할 수 있습니다. 또한, 작업 또는 시간별로 하둡 워크플로를 간편하게 트리거할 수 있습니다. EMR 기반 Oozie를 사용하는 방법에 대해 자세히 알아보십시오. AWS Step Functions를 사용하면 애플리케이션에 서버리스 워크플로 자동화를 추가할 수 있습니다. 워크플로 단계는 AWS Lambda 함수, Amazon Elastic Compute Cloud(EC2) 또는 온프레미스 등 어디에서나 실행할 수 있습니다. EMR 상의 Step Functions에 대해 자세히 알아보기다른 프로젝트 및 도구**
EMR은 R, Apache Pig(데이터 프로세싱 및 ETL), Apache Tez(복잡한 DAG 실행), Apache MXNet(딥 러닝), Ganglia (모니터링), Apache Sqoop(관계형 데이터베이스 커넥터), HCatalog(테이블 및 스토리지 관리) 등 널리 사용되는 다양한 다른 애플리케이션과 도구도 지원합니다. Amazon EMR 팀은 추가 소프트웨어 설치 또는 클러스터 구성에 사용하거나, 자체 부트스트랩 작업 작성용 예제로 활용할 수 있는 부트스트랩 작업의 오픈 소스 리포지토리를 운영하고 있습니다.
7. 데이터 액세스 제어
기본적으로, Amazon EMR 애플리케이션 프로세스에서 다른 AWS 서비스를 호출할 때는 EC2 인스턴스 프로파일이 사용됩니다. 멀티 테넌트 클러스터의 경우 Amazon EMR은 Amazon S3 데이터에 대한 사용자 액세스 관리를 위한 세 가지 옵션을 제공합니다.
AWS Lake Formation과 통합:
AWS Lake Formation에서 AWS Glue 데이터 카탈로그의 데이터베이스, 테이블 및 열 액세스에 대한 세분화된 권한 부여 정책을 정의하고 관리할 수 있습니다. 대화형 EMR Spark 워크로드에 대해 Amazon EMR Notebooks 및 Apache Zeppelin을 통해 제출되는 작업에 권한 부여 정책을 적용하고 감사 이벤트를 AWS CloudTrail로 전송할 수 있습니다. 이 통합을 활성화하면 Security Assertion Markup Language(SAML) 2.0과 호환되는 엔터프라이즈 자격 증명 시스템에서 EMR Notebooks 또는 Apache Zeppelin으로의 연동 Single Sign-On도 활성화할 수 있습니다.
Apache Ranger와의 기본 통합:
신규 또는 기존 Apache Ranger 서버를 설정하여 Hive 메타스토어를 통해 Amazon S3 데이터의 데이터베이스, 테이블 및 열에 액세스하는 사용자에 대한 세분화된 권한 부여 정책을 정의하고 관리할 수 있습니다. Apache Ranger는 Hadoop 플랫폼 전체에 걸쳐 포괄적인 데이터 보안을 활성화, 모니터링 및 관리하는 오픈 소스 도구입니다.
이 기본 통합을 사용하면 Apache Ranger 정책 관리 서버에서 세 가지 유형의 권한 부여 정책을 정의할 수 있습니다. Hive에 대한 테이블, 열 및 행 수준 권한 부여, Spark에 대한 테이블 및 열 수준 권한 부여 및 Amazon S3에 대한 접두사 및 객체 수준 권한 부여를 설정할 수 있습니다. Amazon EMR은 해당하는 Apache Ranger 플러그인을 클러스터에 자동으로 설치하고 구성합니다. 이러한 Ranger 플러그인은 승인 정책을 위해 정책 관리 서버와 동기화되고, 데이터 액세스 제어를 적용하고 감사 이벤트를 Amazon CloudWatch Logs로 전송합니다.
Amazon EMR User Role Mapper:
AWS IAM 권한을 활용하여 AWS 리소스에 대한 액세스를 관리할 수 있습니다. 사용자(또는 그룹)과 사용자 지정 IAM 역할 간의 매핑을 생성할 수 있습니다. 사용자 또는 그룹은 사용자 지정 IAM 역할에 의해 허용되는 데이터에만 액세스할 수 있습니다. 현재 이 기능은 AWS 실습을 통해 제공됩니다.
8. 일관적인 하이브리드 환경
AWS Outposts는 일관적인 하이브리드 환경을 위해 AWS 인프라, AWS 서비스, API 및 도구를 모든 데이터 센터, 코로케이션 공간, 온프레미스 시설로 확장하는 완전 관리형 서비스입니다. AWS Outposts 기반 Amazon EMR은 EMR에 대해 동일한 AWS Management Console, SDK(소프트웨어 개발 키트) 및 CLI(명렬줄 인터페이스)를 사용하여 데이터 센터의 EMR 클러스터를 배포하고 관리하는 기능입니다.
9. 기타 기능
클러스터에서 알맞은 인스턴스 선택:
애플리케이션의 요구 사항을 기반으로 클러스터에서 프로비저닝할 EC2 인스턴스의 유형(표준, 대용량 메모리, 고성능 CPU, 고성능 I/O 등)을 선택합니다. 사용자는 모든 인스턴스에 대한 루트 액세스 권한을 보유하며 요구 사항에 맞춰 클러스터를 모두 사용자 정의할 수 있습니다. 지원되는 Amazon EC2 인스턴스 유형에 대해 자세히 알아보십시오. Amazon EMR, 이제 Graviton2 기반 인스턴스에서 실행되는 Spark 워크로드의 요금을 최대 30% 낮추고 성능을 최대 15% 개선 자세한 내용은 블로그를 참조하십시오.
애플리케이션 디버깅:
클러스터에서 디버깅을 활성화하면 Amazon EMR이 로그 파일을 Amazon S3에 보관한 다음 인덱싱합니다. 그런 다음 콘솔의 그래픽 인터페이스를 사용하여 직관적인 방식으로 로그를 탐색하고 작업 기록을 볼 수 있습니다. Amazon EMR 작업 디버깅에 대해 자세히 알아보십시오.
클러스터 모니터링:
Amazon CloudWatch를 사용하여 실행 중인 맵의 평균 개수 등 사용자 지정 Amazon EMR 메트릭을 모니터링하고 작업을 줄일 수 있습니다. 이러한 지표에 대한 경보를 설정할 수도 있습니다. Amazon EMR 클러스터 모니터링에 대해 자세히 알아보십시오.
이벤트에 대응:
Amazon CloudWatch Events에서 Amazon EMR 이벤트 유형을 사용하여 Amazon EMR 클러스터의 상태 변화에 대응할 수 있습니다. 빠르게 설정할 수 있는 간단한 규칙을 사용하면 이벤트를 매칭하여 Amazon SNS 주제, AWS Lambda 함수, Amazon SQS 대기열 등으로 라우팅할 수 있습니다. Amazon EMR 클러스터의 이벤트에 대해 자세히 알아보십시오.
반복 워크플로 일정 조정:
AWS Data Pipeline을 사용하여 Amazon EMR을 포함한 반복 워크플로의 일정을 조정할 수 있습니다. AWS Data Pipeline은 온프레미스 데이터 소스뿐 아니라 여러 AWS 컴퓨팅 및 스토리지 서비스 간에 데이터를 안정적으로 처리하고 지정된 주기로 이동할 수 있게 해 주는 웹 서비스입니다. Amazon EMR 및 AWS Data Pipeline에 대해 자세히 알아보십시오.
딥 러닝:
Apache MXNet과 같은 널리 사용되는 딥 러닝 프레임워크를 사용하여 딥신경망을 정의, 교육 및 배포하십시오. 이러한 프레임워크를 GPU 인스턴스로 구성된 Amazon EMR 클러스터에서 사용할 수 있습니다. Amazon EMR에서 MXNet을 사용하는 방법에 대해 자세히 알아보십시오.
클러스터에 대한 네트워크 액세스 제어:
AWS 클라우드의 논리적으로 격리된 섹션인 Amazon Virtual Private Cloud(VPC)에서 클러스터를 시작할 수 있습니다. IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경을 완벽하게 제어할 수 있습니다. Amazon EMR 및 Amazon VPC에 대해 자세히 알아보십시오.
사용자, 권한 및 암호화 관리:
IAM 사용자 및 역할과 같은 AWS Identity and Access Management(IAM) 도구를 사용하여 액세스와 권한을 제어할 수 있습니다. 예를 들어 특정 사용자에게 클러스터에 대한 읽기 권한을 부여하되, 쓰기 권한은 허용하지 않을 수 있습니다. 또한, Amazon EMR 보안 구성을 사용하여 다양한 저장 및 전송 암호화 옵션(Amazon S3 암호화에 대한 지원 등)과 Kerberos 인증을 설정할 수 있습니다. 클러스터에 대한 액세스 제어 및 Amazon EMR 암호화 옵션에 대해 자세히 알아보십시오.
추가 소프트웨어 설치:
부트스트랩 작업 또는 Amazon Linux 구동 사용자 정의 Amazon Machine Image(AMI)를 사용하여 클러스터에 추가 소프트웨어를 설치할 수 있습니다. 부트스트랩 작업은 Amazon EMR이 클러스터를 시작할 때 클러스터 노드에서 실행되는 스크립트입니다. 이 작업은 하둡이 시작되기 전과 노드가 데이터 처리를 시작하기 전에 실행됩니다. 또한, 사용자 정의 Amazon Linux AMI에 소프트웨어를 미리 로드하여 사용할 수도 있습니다. Amazon EMR 부트스트랩 작업 및 사용자 정의 Amazon Linux AMI에 대해 자세히 알아보십시오.
효율적인 데이터 복사:
오픈 소스 도구인 Distcp의 확장 버전이자, MapReduce를 사용하여 대량의 데이터를 효율적으로 이동하는 Amazon EMR의 S3DistCp를 이용해 Amazon S3에서 HDFS로, HDFS에서 Amazon S3로, Amazon S3 버킷 사이에서 대량의 데이터를 빠르게 이동할 수 있습니다. S3DistCp에 대해 자세히 알아보십시오.
사용자 지정 Jar:
Java 프로그램을 작성하고 사용할 Hadoop 버전으로 컴파일한 다음 Amazon S3에 업로드합니다. 그런 다음 하둡 JobClient 인터페이스를 사용해 하둡 작업을 클러스터에 제출할 수 있습니다. Amazon EMR을 이용한 사용자 정의 Jar 처리에 대해 자세히 알아보십시오.
REFERENCE
- https://aws.amazon.com/ko/emr/