Amazon EMR 사용의 이점 - Amazon EMR

Amazon EMR 사용의 이점

Amazon EMR 사용에는 많은 이점이 있습니다. 이 단원에서는 이러한 이점의 개요와 자세한 내용을 탐색할 수 있는 추가 정보 링크를 제공합니다.

비용 절감

Amazon EMR 요금은 배포하는 인스턴스 유형 및 Amazon EC2 인스턴스 수와 클러스터를 시작하는 리전에 따라 다릅니다. 온디맨드 요금은 낮은 요금을 제공하지만, 예약 인스턴스나 스팟 인스턴스를 구매하면 비용을 훨씬 더 줄일 수 있습니다. 스팟 인스턴스는 상당한 비용 절감을 제공할 수 있습니다. 경우에 따라 온디맨드 요금의 10분의 1까지 저렴합니다.

참고

Amazon S3, Amazon Kinesis 또는 DynamoDB를 EMR 클러스터와 함께 사용할 경우 해당 서비스에 대한 추가 요금이 발생하며 이러한 요금은 Amazon EMR 사용 요금과 별도로 청구됩니다.

참고

프라이빗 서브넷에서 Amazon EMR 클러스터를 설정할 때는 Amazon S3에 대한 VPC 엔드포인트도 설정하는 것이 좋습니다. EMR 클러스터가 Amazon S3의 VPC 엔드포인트 없이 프라이빗 서브넷에 있는 경우, EMR 클러스터와 S3 간 트래픽이 VPC 내에 머물지 않기 때문에 S3 트래픽과 관련된 추가 NAT 게이트웨이 요금이 발생합니다.

요금 옵션 및 세부 정보에 대한 자세한 내용은 Amazon EMR 요금을 참조하세요.

AWS 통합

Amazon EMR은 다른 AWS 서비스를 통합하여 네트워킹, 스토리지, 보안 등과 관련된 성능과 기능을 클러스터에 제공합니다. 다음 목록에서는 이러한 통합의 여러 가지 예를 제공합니다.

  • 클러스터의 노드로 구성된 인스턴스에 대한 Amazon EC2

  • 인스턴스를 시작하는 가상 네트워크를 구성하기 위한 Amazon Virtual Private Cloud(VPC)

  • 입력 및 출력 데이터를 저장하기 위한 Amazon S3

  • 클러스터 성능을 모니터링하고 경보를 구성하기 위한 Amazon CloudWatch

  • 권한 구성을 위한 AWS Identity and Access Management(IAM)

  • 서비스에 수행되는 요청을 감사하기 위한 AWS CloudTrail

  • 클러스터의 일정을 계획하고 클러스터를 시작하기 위한 AWS Data Pipeline

  • Amazon S3 데이터 레이크의 데이터를 검색하고 카탈로그를 작성하며 보호하기 위한 AWS Lake Formation

배포

EMR 클러스터는 클러스터에 제출한 작업을 수행하는 EC2 인스턴스로 구성됩니다. 클러스터를 시작하면 Amazon EMR은 Apache Hadoop 또는 Spark와 같이 사용자가 선택한 애플리케이션으로 인스턴스를 구성합니다. 배치 처리, 짧은 지연 시간 쿼리, 스트리밍 데이터 또는 대규모 데이터 스토리지와 같은 클러스터 처리 필요에 가장 적합한 인스턴스 크기 및 유형을 선택합니다. Amazon EMR에서 사용할 수 있는 인스턴스 유형에 대한 자세한 내용은 클러스터 하드웨어 및 네트워킹 구성 섹션을 참조하세요.

Amazon EMR은 클러스터에서 소프트웨어를 구성하는 다양한 방법을 제공합니다. 예를 들어, Hadoop과 같은 다기능 프레임워크 및 Hive, Pig 또는 Spark와 같은 애플리케이션이 포함될 수 있는 선택한 애플리케이션 세트와 함께 Amazon EMR 릴리스를 설치할 수 있습니다. 여러 MapR 배포 중 하나를 설치할 수도 있습니다. Amazon EMR은 Amazon Linux를 사용하므로 yum 패키지 관리자를 사용하거나 소스에서 수동으로 클러스터에 소프트웨어를 설치할 수도 있습니다. 자세한 내용은 클러스터 소프트웨어 구성 섹션을 참조하세요.

확장성 및 유연성

Amazon EMR은 컴퓨팅 필요 변화에 따라 클러스터를 확장하거나 축소할 수 있는 유연성을 제공합니다. 클러스터의 크기를 조정하여 피크 워크로드를 위해 인스턴스를 추가하거나 피크 워크로드가 감소할 때 비용을 제어하기 위해 인스턴스를 제거할 수 있습니다. 자세한 내용은 실행 중인 클러스터의 크기를 수동으로 조정 섹션을 참조하세요.

Amazon EMR은 여러 인스턴스 그룹을 실행하는 옵션도 제공하므로 한 그룹에서는 처리 성능을 보장하기 위해 온디맨드 인스턴스를 사용하면서 동시에 다른 그룹에서는 작업을 더 빠르게 완료하고 비용을 낮추기 위해 스팟 인스턴스를 사용할 수 있습니다. 다양한 인스턴스 유형을 혼합하여 특정 스팟 인스턴스 유형의 요금 이점을 이용할 수도 있습니다. 자세한 내용은 스팟 인스턴스는 언제 사용해야 하나요? 섹션을 참조하세요.

또한 Amazon EMR은 입력, 출력 및 중간 데이터에 여러 파일 시스템을 사용할 수 있는 유연성도 제공합니다. 예를 들어, 클러스터의 수명 주기 이후에 저장할 필요가 없는 데이터를 처리하기 위해 클러스터의 프라이머리 및 코어 노드에서 실행하는 Hadoop 분산 파일 시스템(HDFS)을 선택할 수 있습니다. 컴퓨팅과 스토리지를 분리하고 클러스터의 수명 주기 이후에도 데이터를 유지할 수 있도록 EMR 파일 시스템(EMRFS)을 선택하여 Amazon S3를 클러스터에서 실행하는 애플리케이션을 위한 데이터 레이어로 사용할 수 있습니다. EMRFS는 컴퓨팅 및 스토리지 필요에 맞게 독립적으로 확장하거나 축소할 수 있는 추가 이점을 제공합니다. 클러스터의 크기를 조정하여 컴퓨팅 필요에 맞게 규모를 조정하고 Amazon S3를 사용하여 스토리지 필요에 맞게 규모를 조정할 수 있습니다. 자세한 내용은 스토리지 및 파일 시스템 작업 섹션을 참조하세요.

안정성

Amazon EMR은 클러스터의 노드를 모니터링하고 장애가 발생할 경우 인스턴스를 자동으로 종료 및 교체합니다.

Amazon EMR은 클러스터가 종료되는 방식(자동 또는 수동)을 제어하는 구성 옵션을 제공합니다. 클러스터가 자동으로 종료되도록 구성할 경우 모든 단계가 완료된 후 클러스터가 종료됩니다. 이 클러스터를 일시적 클러스터라고 합니다. 하지만 처리가 완료된 후에도 클러스터가 계속 실행되도록 구성하여 클러스터가 더 이상 필요 없을 때 수동으로 클러스터를 종료하도록 선택할 수 있습니다. 또는 클러스터를 생성하고 설치된 애플리케이션과 직접 상호 작용한 다음 클러스터가 더 이상 필요 없을 때 클러스터를 수동으로 종료할 수 있습니다. 이러한 예의 클러스터를 장기 실행 클러스터라고 합니다.

또한 종료 방지 기능을 구성하여 처리 중 오류나 문제로 인해 클러스터의 인스턴스가 종료되는 것을 방지할 수 있습니다. 종료 방지 기능을 활성화한 경우 종료 전에 인스턴스에서 데이터를 복구할 수 있습니다. 이러한 옵션에 대한 기본 설정은 콘솔, CLI, API 중 무엇을 사용하여 클러스터를 시작하는지에 따라 다릅니다. 자세한 내용은 종료 방지 사용 섹션을 참조하세요.

보안

Amazon EMR은 IAM 및 Amazon VPC 같은 기타 AWS 서비스와 Amazon EC2 키 페어 같은 기능을 활용하여 클러스터와 데이터를 보호할 수 있도록 도와줍니다.

IAM

Amazon EMR은 권한을 관리하기 위해 IAM과 통합됩니다. 사용자 또는 IAM 그룹에 연결하는 IAM 정책을 사용하여 권한을 정의합니다. 정책에서 정의하는 권한에 따라 해당 사용자 또는 그룹 구성원이 수행할 수 있는 작업과 액세스할 수 있는 리소스가 결정됩니다. 자세한 내용은 Amazon EMR과 IAM의 작동 방식 섹션을 참조하세요.

또한 Amazon EMR은 Amazon EMR 서비스 자체에 IAM 역할을 사용하고 인스턴스에 EC2 인스턴스 프로파일을 사용합니다. 이러한 역할은 서비스와 인스턴스가 사용자를 대신하여 다른 AWS 서비스에 액세스할 수 있는 권한을 부여합니다. Amazon EMR 서비스에 대한 기본 역할과 EC2 인스턴스 프로파일에 대한 기본 역할이 있습니다. 기본 역할은 AWS 관리형 정책을 사용합니다. 이 정책은 콘솔에서 EMR 클러스터를 처음 시작할 때 기본 권한을 선택하면 자동으로 생성됩니다. AWS CLI에서 기본 IAM 역할을 생성할 수도 있습니다. AWS 대신 권한을 관리하려는 경우 서비스 및 인스턴스 프로파일에 대한 사용자 지정 역할을 선택할 수 있습니다. 자세한 내용은 AWS 서비스 및 리소스의 Amazon EMR 권한에 대한 IAM 서비스 역할 구성 섹션을 참조하세요.

보안 그룹

Amazon EMR은 보안 그룹을 사용하여 EC2 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어합니다. 클러스터를 시작하면 Amazon EMR은 프라이머리 인스턴스의 보안 그룹과 코어 및 태스트 인스턴스가 공유할 보안 그룹을 사용합니다. Amazon EMR은 클러스터의 인스턴스 간 통신을 보장하기 위해 보안 그룹 규칙을 구성합니다. 추가 고급 규칙이 필요한 경우 선택적으로 추가 보안 그룹을 구성하고 해당 보안 그룹을 프라이머리 인스턴스와 코어 및 태스크 인스턴스에 할당할 수 있습니다. 자세한 내용은 보안 그룹에서 네트워크 트래픽 제어 섹션을 참조하세요.

암호화

Amazon EMR은 Amazon S3에 저장하는 데이터를 보호할 수 있도록 EMRFS와 함께 선택적 Amazon S3 서버 측 및 클라이언트 측 암호화를 지원합니다. 서버 측 암호화를 사용하면 사용자가 데이터를 업로드한 후 Amazon S3에서 데이터를 암호화합니다.

클라이언트 측 암호화를 사용하면 EMR 클러스터의 EMRFS 클라이언트에서 암호화 및 암호 해독 프로세스가 수행됩니다. AWS Key Management Service(AWS KMS) 또는 고유의 키 관리 시스템을 사용하여 클라이언트 측 암호화를 위한 마스터 키를 관리합니다.

자세한 내용은 EMRFS 속성을 사용하여 Amazon S3 암호화 지정을 참조하세요.

Amazon VPC

Amazon EMR은 Amazon VPC 내 Virtual Private Cloud(VPC)에서 클러스터를 시작할 수 있도록 지원합니다. VPC는 네트워크 구성 및 액세스의 고급 측면을 제어할 수 있는 기능을 제공하는 AWS의 격리된 가상 네트워크입니다. 자세한 내용은 네트워킹 구성 섹션을 참조하세요.

AWS CloudTrail

Amazon EMR은 AWS 계정에서 또는 해당 계정을 대신하여 수행되는 요청에 대한 정보를 기록하기 위해 CloudTrail과 통합됩니다. 이 정보를 사용하면 클러스터에 액세스하고 있는 사람, 액세스 시간, 요청이 수행된 IP 주소를 추적할 수 있습니다. 자세한 내용은 AWS CloudTrail에서 Amazon EMR API 직접 호출 로깅 섹션을 참조하세요.

Amazon EC2 키 페어

원격 컴퓨터와 프라이머리 노드 간에 보안 연결을 구성하여 클러스터를 모니터링하고 클러스터와 상호 작용할 수 있습니다. 이 연결에는 Secure Shell(SSH) 네트워크 프로토콜을 사용하고 인증에는 Kerberos를 사용합니다. SSH를 사용하는 경우에는 Amazon EC2 키 페어가 필요합니다. 자세한 내용은 SSH 보안 인증에 대해 EC2 키 페어 사용 섹션을 참조하세요.

모니터링(Monitoring)

Amazon EMR 관리 인터페이스 및 로그 파일을 사용하여 장애 또는 오류와 같은 클러스터 문제를 해결할 수 있습니다. Amazon EMR은 Amazon S3에 로그 파일을 아카이브하는 기능을 제공하므로 클러스터가 종료된 후에도 로그를 저장하고 문제를 해결할 수 있습니다. 또한 Amazon EMR은 Amazon EMR 콘솔에서 단계, 작업 및 태스크를 기반으로 로그 파일을 탐색할 수 있는 선택적 디버깅 도구도 제공합니다. 자세한 내용은 클러스터 로깅 및 디버깅 구성 섹션을 참조하세요.

Amazon EMR은 클러스터와 클러스터 내의 작업에 대한 성능 지표를 추적하기 위해 CloudWatch와 통합됩니다. 클러스터가 유휴 상태인지 여부 또는 사용된 스토리지 비율과 같은 다양한 지표를 기반으로 경보를 구성할 수 있습니다. 자세한 내용은 CloudWatch에서 Amazon EMR 지표 모니터링 섹션을 참조하세요.

관리 인터페이스

Amazon EMR과 상호 작용하는 여러 가지 방법이 있습니다.

  • 콘솔 - 클러스터를 시작하고 관리하는 데 사용할 수 있는 그래픽 사용자 인터페이스입니다. 이 콘솔에서 웹 양식을 작성하여 시작할 클러스터의 세부 정보를 지정하고, 기존 클러스터의 세부 정보를 보며, 클러스터를 디버그하고 종료합니다. 콘솔을 사용하는 것은 Amazon EMR을 시작하는 가장 쉬운 방법이며 프로그래밍 지식은 필요 없습니다. 콘솔은 온라인(https://console.aws.amazon.com/elasticmapreduce/home)에서 사용할 수 있습니다.

  • AWS Command Line Interface(AWS CLI) - Amazon EMR에 연결하고 클러스터를 생성 및 관리하기 위해 로컬 컴퓨터에서 실행하는 클라이언트 애플리케이션입니다. AWS CLI에는 Amazon EMR에 특정한 다양한 명령 세트가 포함되어 있습니다. 이를 통해 클러스터를 시작하고 관리하는 프로세스를 자동화하는 스크립트를 작성할 수 있습니다. 명령줄에서 작업하는 것을 선호할 경우 AWS CLI를 사용하는 것이 가장 좋은 옵션입니다. 자세한 내용은 AWS CLI 명령 참조에서 Amazon EMR을 참조하세요.

  • 소프트웨어 개발 키트(SDK) - SDK는 클러스터를 생성하고 관리하기 위해 Amazon EMR을 직접 호출하는 함수를 제공합니다. 이러한 함수를 사용하여 클러스터 생성 및 관리 프로세스를 자동화하는 애플리케이션을 작성할 수 있습니다. Amazon EMR의 기능을 확장하거나 사용자 지정하려는 경우 SDK를 사용하는 것이 가장 좋습니다. Amazon EMR은 현재 Go, Java, .NET(C# 및 VB.NET), Node.js, PHP, Python, Ruby와 같은 SDK에서 사용할 수 있습니다. 이러한 SDK에 대한 자세한 내용은 AWS 도구Amazon EMR 샘플 코드 및 라이브러리를 참조하세요.

  • 웹 서비스 API - JSON을 사용하여 웹 서비스를 직접 호출하는 데 사용할 수 있는 하위 수준 인터페이스입니다. Amazon EMR을 직접 호출하는 사용자 지정 SDK를 만들려는 경우 API를 사용하는 것이 가장 좋습니다. 자세한 내용은 Amazon EMR API 참조를 확인하세요.