EMR Studio를 통해 EMR Serverless에서 대화형 워크로드 실행 - Amazon EMR

EMR Studio를 통해 EMR Serverless에서 대화형 워크로드 실행

EMR Serverless 대화형 애플리케이션을 사용하면 EMR Studio에서 호스팅되는 노트북을 사용해 EMR Serverless에서 Spark에 대한 대화형 워크로드를 실행할 수 있습니다.

개요

대화형 애플리케이션은 대화형 기능이 활성화된 EMR Serverless 애플리케이션입니다. Amazon EMR Serverless 대화형 애플리케이션을 사용하면 Amazon EMR Studio에서 관리하는 Jupyter Notebook을 사용하여 대화형 워크로드를 실행할 수 있습니다. 이를 통해 데이터 엔지니어, 데이터 과학자 및 데이터 분석가는 EMR Studio를 사용하여 Amazon S3 및 Amazon DynamoDB와 같은 데이터 저장소의 데이터세트로 대화형 분석을 실행할 수 있습니다.

EMR Serverless의 대화형 애플리케이션에 대한 사용 사례로 다음이 포함됩니다.

  • 데이터 엔지니어는 EMR Studio에서 IDE 환경을 사용하여 ETL 스크립트를 생성합니다. 스크립트는 온프레미스에서 데이터를 수집하고, 분석을 위해 데이터를 변환하며, Amazon S3에 데이터를 저장합니다.

  • 데이터 과학자는 노트북을 사용하여 데이터세트를 탐색하고 데이터세트에서 이상을 감지하도록 기계 학습(ML) 모델을 훈련합니다.

  • 데이터 분석가는 데이터세트를 탐색하고 비즈니스 대시보드와 같은 애플리케이션을 업데이트하기 위해 일일 보고서를 생성하는 스크립트를 생성합니다.

사전 조건

EMR Serverless에서 대화형 워크로드를 사용하려면 다음 요구 사항을 충족해야 합니다.

  • EMR Serverless 대화형 애플리케이션은 Amazon EMR 6.14.0 이상에서 지원됩니다.

  • 대화형 애플리케이션에 액세스하고, 제출하는 워크로드를 실행하며, EMR Studio에서 대화형 노트북을 실행하려면 특정 권한과 역할이 필요합니다. 자세한 내용은 대화형 워크로드에 필요한 권한 단원을 참조하십시오.

대화형 워크로드에 필요한 권한

EMR Serverless에 액세스하는 데 필요한 기본 권한 외에도 IAM 자격 증명 또는 역할에 대한 추가 권한을 구성해야 합니다.

대화형 애플리케이션에 액세스하는 방법

EMR Studio에 대한 사용자 및 워크스페이스 권한을 설정합니다. 자세한 내용은 Amazon EMR 관리 안내서의 인스턴스 플릿 구성을 참조하세요.

EMR Serverless에서 제출하는 워크로드를 실행하는 방법

작업 런타임 역할 설정. 자세한 내용은 작업 런타임 역할 생성 단원을 참조하십시오.

EMR Studio에서 대화형 노트북을 실행하는 방법

다음 추가 권한을 EMR Studio 사용자의 IAM 정책에 추가합니다.

  • emr-serverless:AccessInteractiveEndpoints - Resource로 지정한 대화형 애플리케이션에 액세스하고 연결할 수 있는 권한을 부여합니다. 이 권한은 EMR Studio Workspace에서 EMR Serverless 애플리케이션에 연결하는 데 필요합니다.

  • iam:PassRole - 애플리케이션에 연결할 때 사용할 IAM 실행 역할에 액세스할 수 있는 권한을 부여합니다. EMR Studio Workspace에서 EMR Serverless 애플리케이션에 연결하려면 적절한 PassRole 권한이 필요합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessInteractiveAccess", "Effect": "Allow", "Action": "emr-serverless:AccessInteractiveEndpoints", "Resource": "arn:aws:emr-serverless:Region:account:/applications/*" }, { "Sid": "EMRServerlessRuntimeRoleAccess", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "interactive-execution-role-ARN", "Condition": { "StringLike": { "iam:PassedToService": "emr-serverless.amazonaws.com" } } } ] }

대화형 애플리케이션 구성

다음의 개략적인 단계를 사용하여 AWS Management Console의 Amazon EMR Studio에서 대화형 기능을 통해 EMR Serverless 애플리케이션을 생성합니다.

  1. Amazon EMR Serverless 시작하기의 단계를 수행하여 애플리케이션을 생성합니다.

  2. 그런 다음, EMR Studio에서 워크스페이스를 시작하고 컴퓨팅 옵션으로 EMR Serverless 애플리케이션에 연결합니다. 자세한 내용은 EMR Serverless 시작하기 설명서의 2단계에 있는 대화형 워크로드 탭을 참조하세요.

Studio Workspace에 애플리케이션을 연결하면 아직 실행되지 않은 경우 애플리케이션 시작이 자동으로 트리거됩니다. 애플리케이션을 사전에 시작하고 워크스페이스에 연결하기 전에 준비할 수도 있습니다.

대화형 애플리케이션에서의 고려 사항

  • EMR Serverless 대화형 애플리케이션은 Amazon EMR 6.14.0 이상에서 지원됩니다.

  • EMR Studio는 EMR Serverless 대화형 애플리케이션과 통합된 유일한 클라이언트입니다. 워크스페이스 협업, SQL 탐색기 및 노트북의 프로그래밍 방식 실행과 같은 EMR Studio 기능은 EMR Serverless 대화형 애플리케이션에서 지원되지 않습니다.

  • 대화형 애플리케이션은 Spark 엔진에서만 지원됩니다.

  • 대화형 애플리케이션은 Python 3, PySpark 및 Spark Scala 커널을 지원합니다.

  • 단일 대화형 애플리케이션에서 최대 25개의 동시 노트북을 실행할 수 있습니다.

  • 대화형 애플리케이션에서 자체 호스팅 Jupyter Notebook을 지원하는 엔드포인트 또는 API 인터페이스는 없습니다.

  • 최적화된 시작 환경을 위해 드라이버 및 실행기에 대해 사전 초기화된 용량을 구성하고 애플리케이션을 사전에 시작하는 것이 좋습니다. 애플리케이션을 사전에 시작하는 경우 워크스페이스에 연결할 준비가 되었는지 확인합니다.

    aws emr-serverless start-application \ --application-id your-application-id
  • 기본적으로 autoStopConfig는 애플리케이션에 대해 활성화됩니다. 그러면 30분의 유휴 시간 후에 애플리케이션이 종료됩니다. create-application 또는 update-application 요청의 일부로 이 구성을 변경할 수 있습니다.

  • 대화형 애플리케이션을 사용하는 경우 노트북을 실행하도록 커널, 드라이버 및 실행기의 사전 초기화된 용량을 구성하는 것이 좋습니다. 각 Spark 대화형 세션에는 커널 하나와 드라이버 하나가 필요하므로 EMR Serverless는 사전 초기화된 모든 드라이버에 대해 사전 초기화된 커널 작업자를 유지 관리합니다. 기본적으로 EMR Serverless는 드라이버에 대해 사전 초기화된 용량을 지정하지 않더라도 전체 애플리케이션 전체에서 커널 작업자 1개의 사전 초기화된 용량을 유지 관리합니다. 각 커널 작업자는 4개의 vCPU와 16GB의 메모리를 사용합니다. 현재 요금 정보는 Amazon EMR 요금 페이지를 참조하세요.

  • 대화형 워크로드를 실행하려면 AWS 계정에 vCPU 서비스 할당량이 충분해야 합니다. Lake Formation 지원 워크로드를 실행하지 않는 경우 최소 24개의 vCPU를 사용하는 것이 좋습니다. 이를 수행하는 경우 28개 이상의 vCPU를 사용하는 것이 좋습니다.

  • 60분 넘게 유휴 상태인 경우 EMR Serverless는 노트북에서 커널을 자동으로 종료합니다. EMR Serverless는 노트북 세션 중에 완료된 마지막 활동의 커널 유휴 시간을 계산합니다. 현재 커널 유휴 제한 시간 설정은 수정할 수 없습니다.

  • 대화형 워크로드로 Lake Formation을 활성화하려면 EMR Serverless 애플리케이션을 생성할 때 runtime-configuration 객체의 spark-defaults 분류에 따라 spark.emr-serverless.lakeformation.enabled 구성을 true로 설정합니다. EMR Serverless에서 Lake Formation을 활성화하는 방법에 대해 자세히 알아보려면 Amazon EMR에서 Lake Formation 활성화를 참조하세요.