

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

# Amazon EMR Serverless에 서버리스 스토리지 사용
<a name="jobs-serverless-storage"></a>

Amazon EMR 릴리스 7.12 이상에서는 Apache Spark 작업을 실행할 때 서버리스 스토리지를 사용하여 로컬 디스크 프로비저닝을 제거하고 데이터 처리 비용을 줄이며 디스크 용량 제약으로 인한 작업 실패를 방지합니다. 서버리스 스토리지는 용량 구성 없이 작업에 대한 셔플, 디스크 유출 및 디스크 캐싱 작업을 자동으로 처리하고 중간 데이터를 무료로 저장합니다. Amazon EMR Serverless는 워크로드 수요에 따라 자동으로 확장되는 완전 관리형 서버리스 스토리지에 중간 데이터를 저장하고 Spark가 유휴 시 즉시 컴퓨팅 작업자를 해제하여 컴퓨팅 비용을 절감할 수 있습니다.

## 주요 이점
<a name="jobs-serverless-storage-key-benefits"></a>

EMR Serverless용 서버리스 스토리지는 다음과 같은 이점을 제공합니다.
+ **제로 구성 스토리지 -** 서버리스 스토리지를 사용하면 각 애플리케이션 또는 작업에 대해 로컬 디스크 유형과 크기를 구성할 필요가 없습니다. EMR Serverless는 용량 계획 없이 중간 데이터 작업을 자동으로 관리합니다.
+ **자동 조정을 통해 작업 실패 방지** - 스토리지 용량은 워크로드 수요에 따라 자동으로 조정되므로 디스크 용량 부족으로 인한 작업 실패를 방지합니다.
+ **데이터 처리 비용 절감** - 서버리스 스토리지는 두 가지 메커니즘을 통해 처리 비용을 절감합니다. 첫째, 중간 데이터 스토리지는 무료로 제공되며 컴퓨팅 및 메모리 리소스에 대해서만 비용을 지불하면 됩니다. 둘째, Spark의 동적 리소스 할당과 분리된 스토리지를 통해 Spark는 유휴 시 로컬 디스크에 중간 데이터를 보존하는 대신 작업자를 즉시 해제할 수 있습니다. 이렇게 하면 Spark 단계당 스케일 아웃 및 스케일 인이 더 빨라지므로 이후 단계에서 초기 단계보다 더 적은 작업자가 필요한 작업의 컴퓨팅 비용이 절감됩니다.
+ **작업 수준 격리를 통한 암호화된 스토리지 -** 모든 중간 데이터는 전송 중 및 저장 시 엄격한 작업 수준 격리를 통해 암호화됩니다.
+ **세분화된 액세스 제어 지원** - 서버리스 스토리지는 AWS Lake Formation 통합을 통해 세분화된 액세스 제어를 지원합니다.

## 시작하기
<a name="jobs-serverless-storage-getting-started"></a>

Spark 워크플로에서 EMR Serverless용 서버리스 스토리지를 사용하려면 다음 단계를 참조하세요.

1. **EMR Serverless 애플리케이션 생성**

   spark-defaults 분류에서 spark 속성을 `spark.aws.serverlessStorage.enabled` **true**로 설정하여 서버리스 스토리지가 활성화된 EMR Serverless 릴리스 7.12(또는 이상) 애플리케이션을 생성합니다.

   ```
   aws emr-serverless create-application \
     --type "SPARK" \
     --name my-application \
     --release-label emr-7.12.0 \
     --runtime-configuration '[{
         "classification": "spark-defaults",
           "properties": {
             "spark.aws.serverlessStorage.enabled": "true"
           }
       }]' \
     --region <AWS_REGION>
   ```

1. **Spark 작업 시작**

   애플리케이션에서 작업 실행을 시작합니다. EMR Serverless용 서버리스 스토리지는 작업의 셔플과 같은 중간 데이터 작업을 자동으로 처리합니다.

   ```
   aws emr-serverless start-job-run \
     --application-id <application-id> \
     --execution-role-arn <job-role-arn> \
     --job-driver '{
       "sparkSubmit": {
         "entryPoint": "s3://<bucket>/script.py",
         "sparkSubmitParameters": "--conf spark.executor.cores=4 
           --conf spark.executor.memory=20g 
           --conf spark.driver.cores=4 
           --conf spark.driver.memory=8g 
           --conf spark.executor.instances=10"
       }
     }'
   ```

   애플리케이션 수준에서 활성화되지 않은 경우에도 작업 수준에서 EMR Serverless용 서버리스 스토리지를 활성화할 수 있습니다. 그러면 작업을 처리하기 위해 서버리스 스토리지로 활성화된 작업자 노드가 시작됩니다. 동일한 Spark 속성을 **false**로 설정하여 특정 작업에 대한 서버리스 스토리지를 비활성화`spark.aws.serverlessStorage.enabled`할 수도 있습니다.

   ```
   # Turn on serverless storage for EMR serverless for a specific job
   aws emr-serverless start-job-run \
       --application-id <application-id> \
       --execution-role-arn <job-role-arn> \
       --job-driver '{
   "sparkSubmit": {
   "entryPoint": "/usr/lib/spark/examples/jars/spark-examples.jar",
               "entryPointArguments": ["1"],
               "sparkSubmitParameters": "--class org.apache.spark.examples.SparkPi
               --conf spark.aws.serverlessStorage.enabled": "true"
           }
       }'
   ```
**참고**  
기존 로컬 디스크 프로비저닝을 계속 사용하려면 `spark.aws.serverlessStorage.enabled` 구성을 생략하거나 **false**로 설정합니다.

## 고려 사항 및 제한 사항
<a name="jobs-serverless-storage-limitations"></a>
+ **릴리스 버전** - 서버리스 스토리지는 Amazon EMR 릴리스 7.12 이상에서 지원됩니다.
+ **데이터 볼륨 제한** - 각 작업은 작업 실행당 최대 총 200GB의 중간 데이터를 읽고 쓸 수 있습니다. 이 제한을 초과하는 작업은 서버리스 스토리지 제한에 도달했음을 나타내는 오류 메시지와 함께 실패합니다.
+ **작업 실행 제한 시간** - 서버리스 스토리지는 최대 24시간의 실행 제한 시간이 있는 작업을 지원합니다. 실행 제한 시간을 늘리도록 구성된 작업은 오류 메시지와 함께 실패합니다.
+ **사전 초기화된 용량** - 사전 초기화된 용량 작업자는 서버리스 스토리지를 지원하지 않습니다. 사전 초기화된 용량을 구성하면 작업 수준에서 서버리스 스토리지를 명시적으로 비활성화하는 작업에서만 사용됩니다. 서버리스 스토리지가 활성화된 작업은 항상 온디맨드로 새 작업자를 프로비저닝하며 애플리케이션 수준의 구성에 관계없이 사전 초기화된 용량을 사용하지 않습니다.
+ **워크로드 유형** - 스트리밍 및 대화형 작업에는 서버리스 스토리지가 지원되지 않습니다.
+ **작업자 구성** - vCPUs가 1개 또는 2개인 작업자에는 서버리스 스토리지가 지원되지 않습니다.

## 지원됨 AWS 리전
<a name="jobs-serverless-storage-regions"></a>

EMR Serverless는 다음 리전에서 서버리스 스토리지를 지원합니다.
+ 미국 동부(버지니아 북부)
+ US West (Oregon)
+ 유럽(아일랜드)