EMR Studio 고려 사항 - 아마존 EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

EMR Studio 고려 사항

고려 사항

EMR Studio 사용 시 다음 사항을 고려하세요.

  • EMR Studio는 다음에서 사용할 수 있습니다. AWS 리전

    • 미국 동부(오하이오)(us-east-2)

    • 미국 동부(버지니아 북부)(us-east-1)

    • 미국 서부(캘리포니아 북부) (us-west-1)

    • 미국 서부(오레곤)(us-west-2)

    • 아프리카(케이프타운)(af-south-1)

    • 아시아 태평양(홍콩)(ap-east-1)

    • 아시아 태평양 (자카르타) (ap-southeast-3) *

    • 아시아 태평양 (멜버른) (ap-southeast-4) *

    • 아시아 태평양(뭄바이)(ap-south-1)

    • 아시아 태평양 (오사카) (ap-northeast-3) *

    • 아시아 태평양(서울)(ap-northeast-2)

    • 아시아 태평양(싱가포르)(ap-southeast-1)

    • 아시아 태평양(시드니)(ap-southeast-2)

    • 아시아 태평양(도쿄)(ap-northeast-1)

    • 캐나다(중부)(ca-central-1)

    • 유럽(프랑크푸르트)(eu-central-1)

    • 유럽(아일랜드)(eu-west-1)

    • 유럽(런던) (eu-west-2)

    • 유럽(밀라노) (eu-south-1)

    • 유럽(파리) (eu-west-3)

    • 유럽(스페인)(eu-south-2)

    • 유럽(스톡홀름)(eu-north-1)

    • 유럽 (취리히) (eu-central-2) *

    • 이스라엘(텔아비브)(il-central-1)*

    • 중동 (UAE) (me-central-1) *

    • 남아메리카(상파울루)(sa-east-1)

    • AWS GovCloud (미국 동부) (-1) gov-us-east

    • AWS GovCloud (미국 서부) (gov-us-west-1)

    * 이 지역에서는 라이브 Spark UI가 지원되지 않습니다.

  • 사용자가 Amazon EC2에서 실행되는 새 EMR 클러스터를 Workspace에 프로비저닝할 수 있도록 EMR Studio를 클러스터 템플릿 세트와 연결할 수 있습니다. 관리자는 Service Catalog에서 클러스터 템플릿을 정의하고 사용자 또는 그룹이 Studio 내에서 클러스터 템플릿에 액세스할 수 있는지 또는 클러스터 템플릿에 액세스하지 못하도록 할지 선택할 수 있습니다.

  • Amazon S3에 저장된 노트북 파일 또는 읽기 암호에 대한 액세스 권한을 정의할 때는 Amazon EMR 서비스 역할을 사용하십시오. AWS Secrets Manager이러한 권한에서는 세션 정책이 지원되지 않습니다.

  • 여러 EMR Studio를 생성하여 서로 다른 VPC에 있는 EMR 클러스터에 대한 액세스를 제어할 수 있습니다.

  • AWS CLI 를 사용하여 EKS 클러스터에서 Amazon EMR을 설정할 수 있습니다. 그런 다음 Studio 인터페이스를 사용하여 관리형 엔드포인트가 있는 Workspace에 클러스터를 연결하여 노트북 작업을 실행할 수 있습니다.

  • Amazon EMR에서 신뢰할 수 있는 자격 증명 전파를 사용하는 경우 EMR Studio에도 적용되는 추가 고려 사항이 있습니다. 자세한 정보는 ID 센터 통합을 EMR 사용하는 Amazon에 대한 고려 사항 및 제한 사항을 참조하세요.

  • EMR Studio는 다음과 같은 Python 매직 명령을 지원하지 않습니다.

    • %alias

    • %alias_magic

    • %automagic

    • %macro

    • %%js

    • %%javascript

    • %configure를 사용하여 proxy_user 수정

    • %env 또는 %set_env를 사용하여 KERNEL_USERNAME 수정

  • EKS 클러스터의 Amazon EMR은 EMR SparkMagic 스튜디오용 명령을 지원하지 않습니다.

  • 노트북 셀에 여러 줄의 Scala 명령문을 작성하려면 마지막 줄을 제외한 모든 줄이 마침표로 끝나야 합니다. 다음 예제에서는 여러 줄로 된 Scala 문에 올바른 구문을 사용합니다.

    val df = spark.sql("SELECT * from table_name). filter("col1=='value'"). limit(50)
  • Amazon EMR에서 사용할 수 있는 콘솔 외부 애플리케이션에 대한 보안을 강화하기 위해 애플리케이션 호스팅 도메인이 PSL(Public Suffix List)에 등록됩니다. 이러한 호스팅 도메인의 예에는 emrstudio-prod.us-east-1.amazonaws.com, emrnotebooks-prod.us-east-1.amazonaws.com, emrappui-prod.us-east-1.amazonaws.com이 포함됩니다. 보안 강화를 위해 기본 도메인 이름에 민감한 쿠키를 설정해야 하는 경우 __Host- 접두사가 있는 쿠키를 사용하는 것이 좋습니다. 이렇게 하면 교차 사이트 요청 위조 시도(CSRF) 로부터 도메인을 보호하는 데 도움이 됩니다. 자세한 내용은 Mozilla 개발자 네트워크Set-Cookie 페이지를 참조하세요.

알려진 문제

  • 신뢰할 수 있는 자격 증명 전파가 활성화된 IAM Identity Center를 사용하는 EMR Studio는 신뢰할 수 있는 자격 증명 전파를 사용하는 EMR 클러스터에만 연결할 수 있습니다.

  • Studio를 생성하기 전에 브라우저에서 FoxyProxy 또는 SwitchyOmega와 같은 프록시 관리 도구를 비활성화해야 합니다. Studio 생성을 선택하면 활성 프록시에서 오류가 발생할 수 있으며 네트워크 실패 오류 메시지가 표시될 수 있습니다.

  • Amazon EMR on EKS 클러스터에서 실행되는 커널은 제한 시간 초과 문제로 인해 시작되지 않을 수 있습니다. 커널을 시작하는 중에 오류나 문제가 발생하는 경우 노트북 파일을 닫고 커널을 종료한 다음, 노트북 파일을 다시 엽니다.

  • Amazon EMR on EKS 클러스터를 사용하는 경우 커널 다시 시작 작업이 예상대로 작동하지 않습니다. 커널 다시 시작을 선택한 후 Workspace를 새로 고쳐 다시 시작을 적용합니다.

  • Workspace가 클러스터에 연결되지 않은 경우 Studio 사용자가 노트북 파일을 열고 커널을 선택하려고 하면 오류 메시지가 나타납니다. 확인을 선택하여 이 오류 메시지를 무시할 수 있지만 노트북 코드를 실행하려면 먼저 Workspace를 클러스터에 연결하고 커널을 선택해야 합니다.

  • Amazon EMR 6.2.0을 보안 구성과 함께 사용하여 클러스터 보안을 설정하는 경우 Workspace 인터페이스가 공백으로 표시되고 예상대로 작동하지 않습니다. 클러스터의 EMRFS에 대한 데이터 암호화 또는 Amazon S3 권한 부여를 구성하려면 지원되는 다른 Amazon EMR 버전을 사용하는 것이 좋습니다. EMR Studio는 Amazon EMR 버전 5.32.0(Amazon EMR 5.x 시리즈) 및 6.2.0(Amazon EMR 6.x 시리즈) 이상에서 작동합니다.

  • Amazon 작업에서 EMR 실행 중인 Amazon 디버깅 EC2 중에 클러스터 내 Spark UI에 대한 링크가 작동하지 않거나 표시되지 않을 수 있습니다. 링크를 재생성하려면 새 노트북 셀을 생성하고 %%info 명령을 실행합니다.

  • Jupyter Enterprise Gateway는 Amazon EMR 릴리스 버전 5.32.0, 5.33.0, 6.2.0, 6.3.0에서는 클러스터의 프라이머리 노드에 있는 유휴 커널을 정리하지 않습니다. 유휴 커널은 컴퓨팅 리소스를 소비하므로 장기 실행 클러스터가 실패할 수 있습니다. 다음 예제 스크립트를 사용하여 Jupyter Enterprise Gateway에 대한 유휴 커널 정리를 구성할 수 있습니다. 를 사용하여 기본 노드에 연결 SSH 또는 단계로 스크립트 제출을 수행할 수 있습니다. 자세한 내용은 Amazon EMR 클러스터에서 명령 및 스크립트 실행을 참조하세요.

    #!/bin/bash sudo tee -a /emr/notebook-env/conf/jupyter_enterprise_gateway_config.py << EOF c.MappingKernelManager.cull_connected = True c.MappingKernelManager.cull_idle_timeout = 10800 c.MappingKernelManager.cull_interval = 300 EOF sudo systemctl daemon-reload sudo systemctl restart jupyter_enterprise_gateway
  • Amazon EMR 버전 5.32.0, 5.33.0, 6.2.0 또는 6.3.0에서 자동 종료 정책을 사용하는 경우 Amazon EMR은 클러스터를 유휴 상태로 표시하고 활성 Python3 커널이 있더라도 클러스터를 자동으로 종료할 수 있습니다. Python3 커널을 실행해도 클러스터에서 Spark 작업을 제출하지 않기 때문입니다. Python3 커널에서 자동 종료를 사용하려면 Amazon EMR 버전 6.4.0 이상을 사용하는 것이 좋습니다. 자동 종료에 대한 자세한 내용은 자동 종료 정책 사용 섹션을 참조하세요.

  • 를 사용하여 테이블에 %%display DataFrame Spark를 표시할 경우 매우 넓은 테이블이 잘릴 수 있습니다. 출력을 마우스 오른쪽 버튼으로 클릭하고 출력에 대한 새 보기 생성을 선택하여 스크롤 가능한 출력 보기를 표시할 수 있습니다.

  • Spark 또는 SparkR과 PySpark 같은 Spark 기반 커널을 시작하면 Spark 세션이 시작되고 노트북에서 셀을 실행하면 해당 세션의 Spark 작업이 대기열에 추가됩니다. 실행 중인 셀을 중단해도 Spark 작업은 계속 실행됩니다. Spark 작업을 중지하려면 클러스터 내 Spark UI를 사용해야 합니다. Spark UI에 연결하는 방법에 대한 지침은 Studio를 사용하여 EMR 애플리케이션 및 작업을 디버깅합니다. 섹션을 참조하세요.

  • 에서 Amazon EMR Studio 워크스페이스를 루트 사용자로 사용하면 오류가 AWS 계정 발생합니다. 403: Forbidden Amazon EMR의 Jupyter 엔터프라이즈 게이트웨이 구성에서는 루트 사용자에 대한 액세스를 허용하지 않기 때문입니다. 일상적인 작업에는 루트 사용자를 사용하지 않는 것이 좋습니다. 다른 인증 옵션에 AWS Identity and Access Management 대해서는 Amazon EMR을 참조하십시오.

기능 제한 사항

Amazon EMR Studio는 다음과 같은 Amazon EMR 기능을 지원하지 않습니다.

  • Kerberos 인증을 지정하는 보안 구성을 사용하여 EMR 클러스터에서 작업 연결 및 실행

  • 여러 프라이머리 노드가 있는 클러스터

  • Amazon EMR AWS 6.x용 Graviton2 기반 Amazon EC2 인스턴스를 사용하는 클러스터는 6.9.0 미만 릴리스와 5.36.1 미만의 5.x 릴리스를 사용합니다.

다음 기능은 신뢰할 수 있는 자격 증명 전파를 사용하는 Studio에서는 지원되지 않습니다.

  • 템플릿 없이 EMR 클러스터를 생성합니다.

  • EMR Serverless 애플리케이션을 사용합니다.

  • Amazon EMR on EKS 클러스터를 시작합니다.

  • 런타임 역할을 사용합니다.

  • SQL 탐색기 또는 Workspace 협업을 활성화합니다.

EMR Studio의 서비스 한도

다음 테이블에는 EMR Studio의 서비스 한도가 나와 있습니다.

Item Limit
EMR Studio AWS 계정당 최대 100개
서브넷 각 EMR Studio에 최대 5개 연결됨
IAM Identity Center 그룹 각 EMR Studio에 최대 5개 할당됨
IAM Identity Center 사용자 각 EMR Studio에 최대 100개 할당됨

VPC 및 서브넷 모범 사례

다음 모범 사례를 사용하여 EMR Studio용 서브넷이 있는 Amazon Virtual Private Cloud (Amazon VPC) 를 설정하십시오.

  • Studio에 연결할 VPC의 최대 5개의 서브넷을 지정할 수 있습니다. Workspace 가용성을 지원하고 Studio 사용자에게 여러 가용 영역의 클러스터에 대한 액세스 권한을 부여하려면 서로 다른 가용 영역에 여러 서브넷을 제공하는 것이 좋습니다. VPC, 서브넷, 가용 영역 사용에 대한 자세한 내용은 Amazon Virtual Private Cloud 사용 설명서에서 VPC 및 서브넷을 참조하세요.

  • 지정한 서브넷은 서로 통신할 수 있어야 합니다.

  • 사용자가 Workspace를 공개적으로 호스팅된 Git 리포지토리에 연결할 수 있게 하려면 Network Address Translation(NAT)을 통해 인터넷에 액세스할 수 있는 프라이빗 서브넷만 지정해야 합니다. Amazon EMR의 프라이빗 서브넷 설정에 대한 자세한 내용은 프라이빗 서브넷 섹션을 참조하세요.

  • EMR Studio와 함께 Amazon EMR on EKS를 사용하는 경우 가상 클러스터를 등록하는 데 사용하는 Studio와 Amazon EKS 클러스터 사이에 하나 이상의 공통 서브넷이 있어야 합니다. 그렇지 않으면 관리형 엔드포인트가 Studio Workspace에 옵션으로 표시되지 않습니다. Amazon EKS 클러스터를 생성하고 Studio에 속한 서브넷에 연결하거나, Studio를 생성하고 EKS 클러스터의 서브넷을 지정할 수 있습니다.

  • EMR Studio와 함께 Amazon EMR on EKS를 사용하려면 Amazon EKS 클러스터 워커 노드와 동일한 VPC를 선택합니다.

Amazon EMR Studio의 클러스터 요구 사항

Amazon EC2에서 실행되는 Amazon EMR 클러스터

EMR Studio Workspace용으로 생성한 Amazon EC2에서 실행되는 모든 Amazon EMR 클러스터는 다음 요구 사항을 충족해야 합니다. EMR Studio 인터페이스를 사용하여 생성한 클러스터는 이러한 요구 사항을 자동으로 충족합니다.

  • 클러스터는 Amazon EMR 버전 5.32.0(Amazon EMR 5.x 시리즈) 또는 6.2.0(Amazon EMR 6.x 시리즈) 이상을 사용해야 합니다. Amazon EMR 콘솔 또는 SDK를 사용하여 클러스터를 생성한 다음 EMR 스튜디오 워크스페이스에 연결할 수 있습니다. AWS Command Line Interface Studio 사용자는 Amazon EMR Workspace를 생성하거나 작업할 때 클러스터를 프로비저닝하고 연결할 수도 있습니다. 자세한 정보는 EMRStudio 작업 공간에 컴퓨팅 연결을 참조하세요.

  • 클러스터는 Amazon Virtual Private Cloud 내에 있어야 합니다. EC2-Classic 플랫폼은 지원되지 않습니다.

  • 클러스터에는 Spark, Livy 및 Jupyter Enterprise Gateway가 설치되어 있어야 합니다. SQL 탐색기에서 클러스터를 사용하려면 Presto 및 Spark를 모두 설치해야 합니다.

  • SQL 탐색기를 사용하려면 클러스터에서 Amazon EMR 버전 5.34.0 이상 또는 버전 6.4.0 이상을 사용하고 Presto가 설치되어 있어야 합니다. AWS Glue 데이터 카탈로그를 Presto용 Hive 메타스토어로 지정하려면 클러스터에서 구성해야 합니다. 자세한 내용은 AWS Glue 데이터 카탈로그에서 Presto 사용을 참조하세요.

  • EMR Studio에서 공개적으로 호스팅된 Git 리포지토리를 사용하려면 클러스터가 Network Address Translation(NAT)이 있는 프라이빗 서브넷에 있어야 합니다.

EMR Studio를 사용할 때는 다음과 같은 클러스터 구성을 사용하는 것이 좋습니다.

  • Spark 세션의 배포 모드를 클러스터 모드로 설정합니다. 클러스터 모드는 애플리케이션 마스터 프로세스를 클러스터의 프라이머리 노드가 아닌 코어 노드에 배치합니다. 이렇게 하면 프라이머리 노드에 발생할 수 있는 메모리 압박이 줄어듭니다. 자세한 내용은 Apache Spark 설명서의 Cluster Mode Overview(클러스터 모드 개요)를 참조하십시오.

  • 다음 예제 구성에서처럼 Livy 제한 시간을 기본값인 1시간에서 6시간으로 변경합니다.

    { "classification":"livy-conf", "Properties":{ "livy.server.session.timeout":"6h", "livy.spark.deploy-mode":"cluster" } }
  • 최대 30개의 인스턴스로 다양한 인스턴스 플릿을 생성하고 스팟 인스턴스 플릿에서 여러 인스턴스 유형을 선택합니다. 예를 들어, Spark 워크로드에 대해 여러 메모리 최적화 인스턴스 유형(r5.2x, r5.4x, r5.8x, r5.12x, r5.16x, r4.2x, r4.4x, r4.8x, r4.12 등)을 지정할 수 있습니다. 자세한 정보는 인스턴스 플릿 구성을 참조하세요.

  • 스팟 인스턴스의 용량 최적화 할당 전략을 사용하면 Amazon EMR이 Amazon EC2의 실시간 용량 인사이트를 기반으로 효과적인 인스턴스를 선택할 수 있습니다. 자세한 정보는 인스턴스 플릿에 대한 할당 전략을 참조하세요.

  • 클러스터에서 Managed Scaling을 활성화합니다. 최대 코어 노드 파라미터를 사용하려는 최소 영구 용량으로 설정하고 스팟 인스턴스에서 실행되는 다각화된 태스크 플릿에서 조정 기능을 구성하여 비용을 절감합니다. 자세한 정보는 Amazon에서 매니지드 스케일링 사용 EMR을 참조하세요.

또한 Amazon EMR 퍼블릭 액세스 차단을 계속 활성화하고 인바운드 SSH 트래픽을 신뢰할 수 있는 소스로 제한할 것을 권장합니다. 클러스터에 대한 인바운드 액세스를 통해 사용자는 클러스터에서 노트북을 실행할 수 있습니다. 자세한 내용은 Amazon 퍼블릭 액세스 EMR 차단 사용보안 그룹에서 네트워크 트래픽 제어 섹션을 참조하세요.

Amazon EMR on EKS 클러스터

Amazon EC2에서 실행되는 EMR 클러스터 외에도 AWS CLI를 사용하여 EMR Studio용 Amazon EMR on EKS 클러스터를 설정하고 관리할 수 있습니다. 다음 지침을 사용하여 Amazon EMR on EKS 클러스터를 설정합니다.

  • Amazon EMR on EKS 클러스터에 대한 관리형 HTTPS 엔드포인트를 생성합니다. 사용자가 관리형 엔드포인트에 Workspace를 연결합니다. 가상 클러스터를 등록하는 데 사용하는 Amazon Elastic Kubernetes Service(EKS) 클러스터에는 관리형 엔드포인트를 지원하는 프라이빗 서브넷이 있어야 합니다.

  • 공개적으로 호스팅되는 Git 리포지토리를 사용하려면 하나 이상의 프라이빗 서브넷과 Network Address Translation(NAT)이 있는 Amazon EKS 클러스터를 사용합니다.

  • Amazon EMR on EKS 관리형 엔드포인트에 대해 지원되지 않는 Amazon EKS에서 최적화된 Arm Amazon Linux AMI를 사용하지 않습니다.

  • 지원되지 않는 AWS Fargate Amazon EKS 클러스터만 사용하지 마십시오.