Amazon EMR Serverless 아키텍처 옵션 - Amazon EMR

Amazon EMR Serverless 아키텍처 옵션

Amazon EMR Serverless 애플리케이션의 명령 세트 아키텍처에 따라 애플리케이션이 작업을 실행하는 데 사용하는 프로세서 유형이 결정됩니다. Amazon EMR은 애플리케이션에 x86_64arm64와 같은 두 가지 아키텍처 옵션을 제공합니다. EMR Serverless는 최신 세대의 인스턴스가 사용 가능해지면 해당 인스턴스로 자동 업데이트되므로, 사용자의 추가 노력 없이도 애플리케이션은 최신 인스턴스를 사용할 수 있습니다.

x86_64 아키텍처 사용

x86_64 아키텍처는 x86 64비트 또는 x64라고도 합니다. x86_64는 EMR Serverless 애플리케이션의 기본 옵션입니다. 이 아키텍처는 x86 기반 프로세서를 사용하며, 대부분의 서드파티 도구 및 라이브러리와 호환됩니다.

대부분의 애플리케이션은 x86 하드웨어 플랫폼과 호환되며, 기본 x86_64 아키텍처에서 성공적으로 실행할 수 있습니다. 그러나 애플리케이션이 64비트 ARM과 호환되는 경우 arm64로 전환하여 Graviton 프로세서를 사용해 성능, 컴퓨팅 성능 및 메모리를 개선할 수 있습니다. x86 아키텍처에서 동일한 크기의 인스턴스를 실행할 때보다 arm64 아키텍처에서 인스턴스를 실행하는 경우 드는 비용이 저렴합니다.

arm64 아키텍처(Graviton) 사용

AWS Graviton 프로세서는 64비트 ARM Neoverse 코어를 사용하여 AWS에서 사용자 지정 설계되었으며, arm64 아키텍처(Arch64 또는 64비트 ARM이라고도 함)를 활용합니다. EMR Serverless에서 사용할 수 있는 AWS Graviton 프로세서 라인에 Graviton3 및 Graviton2 프로세서가 포함됩니다. 이러한 프로세서는 x86_64 아키텍처에서 실행되는 동급 워크로드에 비해 Spark 및 Hive 워크로드에서 뛰어난 가격 대비 성능을 제공합니다. EMR Serverless는 최신 세대 프로세서로 업그레이드하기 위해 사용자 측의 노력 없이도 사용 가능한 경우 최신 세대 프로세서를 자동으로 사용합니다.

Graviton 지원으로 새 애플리케이션 시작

다음 방법 중 하나를 사용하여 arm64 아키텍처를 사용하는 애플리케이션을 시작합니다.

AWS CLI

AWS CLI에서 Graviton 프로세서를 사용하여 애플리케이션을 시작하려면 create-application API에서 architecture 파라미터로 ARM64를 지정합니다. 다른 파라미터에서 애플리케이션에 적합한 값을 제공합니다.

aws emr-serverless create-application \ --name my-graviton-app \ --release-label emr-6.8.0 \ --type "SPARK" \ --architecture "ARM64" \ --region us-west-2
EMR Studio

EMR Studio에서 Graviton 프로세서를 사용하여 애플리케이션을 시작하려면 애플리케이션을 생성하거나 업데이트할 때 아키텍처 옵션으로 arm64를 선택합니다.

Graviton을 사용하도록 기존 애플리케이션 구성

SDK, AWS CLI 또는 EMR Studio에서 Graviton(arm64) 아키텍처를 사용하도록 기존 Amazon EMR Serverless 애플리케이션을 구성할 수 있습니다.

기존 애플리케이션을 x86에서 arm64로 변환하는 방법
  1. architecture 파라미터를 지원하는 AWS CLI/SDK의 최신 메이저 버전을 사용하고 있는지 확인합니다.

  2. 실행 중인 작업이 없는지 확인한 다음, 애플리케이션을 중지합니다.

    aws emr-serverless stop-application \ --application-id application-id \ --region us-west-2
  3. Graviton을 사용하도록 애플리케이션을 업데이트하려면 update-application API의 architecture 파라미터에 대해 ARM64를 지정합니다.

    aws emr-serverless update-application \ --application-id application-id \ --architecture 'ARM64' \ --region us-west-2
  4. 이제 애플리케이션의 CPU 아키텍처가 ARM64인지 확인하려면 get-application API를 사용합니다.

    aws emr-serverless get-application \ --application-id application-id \ --region us-west-2
  5. 준비가 되면 애플리케이션을 재시작합니다.

    aws emr-serverless start-application \ --application-id application-id \ --region us-west-2

Graviton 사용 시 고려 사항

Graviton 지원을 위해 arm64를 사용하여 EMR Serverless 애플리케이션을 시작하기 전에 먼저 다음을 확인합니다.

라이브러리 호환성

Graviton(arm64)을 아키텍처 옵션으로 선택하는 경우 서드파티 패키지 및 라이브러리가 64비트 ARM 아키텍처와 호환되는지 확인합니다. 선택한 아키텍처와 호환되는 Python 가상 환경으로 Python 라이브러리를 패키징하는 방법에 대한 자세한 내용은 EMR Serverless에서 Python 라이브러리 사용 섹션을 참조하세요.

64비트 ARM을 사용하도록 Spark 또는 Hive 워크로드를 구성하는 방법에 대한 자세한 내용은 GitHub의 AWS Graviton Getting Started 리포지토리를 참조하세요. 이 리포지토리에는 ARM 기반 Graviton을 시작하는 데 도움이 되는 필수 리소스가 포함되어 있습니다.