

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

# Amazon EMR Serverless 아키텍처 옵션
<a name="architecture"></a>

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

**Topics**
+ [x86\_64 아키텍처 사용](#x86)
+ [arm64 아키텍처(Graviton) 사용](#arm64)
+ [Graviton 지원으로 새 애플리케이션 시작](#arm64-new)
+ [Graviton을 사용하도록 기존 애플리케이션 구성](#arm64-existing)
+ [Graviton 사용 시 고려 사항](#arm64-considerations)

## x86\_64 아키텍처 사용
<a name="x86"></a>

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

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

## arm64 아키텍처(Graviton) 사용
<a name="arm64"></a>

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

## Graviton 지원으로 새 애플리케이션 시작
<a name="arm64-new"></a>

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

------
#### [ AWS CLI ]

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

```
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을 사용하도록 기존 애플리케이션 구성
<a name="arm64-existing"></a>

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

**기존 애플리케이션을 x86에서 arm64로 변환하는 방법**

1. `architecture` 파라미터를 지원하는 [AWS CLI/SDK](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/emr-serverless/index.html#cli-aws-emr-serverless)의 최신 메이저 버전을 사용하고 있는지 확인합니다.

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

   ```
   aws emr-serverless stop-application \
    --application-id {{application-id}} \
    --region {{us-west-2}}
   ```

1.  Graviton을 사용하도록 애플리케이션을 업데이트하려면 `update-application` API의 `architecture` 파라미터에 대해 `ARM64`를 지정합니다.

   ```
   aws emr-serverless update-application \
    --application-id {{application-id}} \
    --architecture 'ARM64' \
    --region {{us-west-2}}
   ```

1. 이제 애플리케이션의 CPU 아키텍처가 ARM64인지 확인하려면 `get-application` API를 사용합니다.

   ```
   aws emr-serverless get-application \
    --application-id {{application-id}} \
    --region {{us-west-2}}
   ```

1. 준비가 되면 애플리케이션을 재시작합니다.

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

## Graviton 사용 시 고려 사항
<a name="arm64-considerations"></a>

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

### 라이브러리 호환성
<a name="arm64-prereqs-library"></a>

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

자세한 내용은 GitHub의 [AWS Graviton 시작하기](https://github.com/aws/aws-graviton-getting-started) 리포지토리를 참조하세요. 이 리포지토리에는 ARM 기반 Graviton을 시작하는 데 도움이 되는 필수 리소스가 포함되어 있습니다.