

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

# 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 이상에서 지원됩니다.
+ **데이터 볼륨 제한** - emr-7.12, emr-7.13 및 emr-spark-8.0을 사용하면 각 작업이 작업 실행당 최대 200GB의 중간 데이터를 읽고 쓸 수 있습니다. emr-spark-8.1을 포함한 emr-7.14 이상의 경우 AWS 리전 아래 지원에서 200GB 제한으로 표시된 리전을 제외하고이 제한은 1TB로 증가합니다. 적용 가능한 한도를 초과하는 작업은 서버리스 스토리지 한도에 도달했음을 나타내는 오류 메시지와 함께 실패합니다.
+ **작업 실행 제한 시간** - 서버리스 스토리지는 최대 24시간의 실행 제한 시간이 있는 작업을 지원합니다. 실행 제한 시간을 늘리도록 구성된 작업은 오류 메시지와 함께 실패합니다.
+ **사전 초기화된 용량** - 사전 초기화된 용량 작업자는 서버리스 스토리지를 지원하지 않습니다. 사전 초기화된 용량을 구성하면 작업 수준에서 서버리스 스토리지를 명시적으로 비활성화하는 작업에서만 사용됩니다. 서버리스 스토리지가 활성화된 작업은 항상 온디맨드로 새 작업자를 프로비저닝하며 애플리케이션 수준의 구성에 관계없이 사전 초기화된 용량을 사용하지 않습니다.
+ **워크로드 유형** - 스트리밍 및 대화형 작업에는 서버리스 스토리지가 지원되지 않습니다.
+ **작업자 구성** - vCPUs가 1개 또는 2개인 작업자에는 서버리스 스토리지가 지원되지 않습니다.

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

EMR Serverless는 다음 리전에서 서버리스 스토리지를 지원합니다.
+ 미국 동부(버지니아 북부)
+ 미국 동부(오하이오)
+ 미국 서부(캘리포니아 북부)
+ 미국 서부(오리건)
+ 아시아 태평양(홍콩)
+ 아시아 태평양(자카르타)
+ 아시아 태평양(뭄바이)
+ 아시아 태평양(오사카)
+ 아시아 태평양(서울)
+ 아시아 태평양(싱가포르)
+ 아시아 태평양(시드니)
+ 아시아 태평양(도쿄)
+ 캐나다(중부)
+ 유럽(프랑크푸르트)
+ 유럽(아일랜드)
+ 유럽(스페인)
+ 유럽(스톡홀름)
+ 남아메리카(상파울루)
+ 아프리카(케이프타운) – 200GB 제한
+ 아시아 태평양(멜버른) – 200GB 제한
+ 캐나다 서부(캘거리) - 200GB 제한
+ 유럽(런던) - 200GB 제한
+ 유럽(밀라노) - 200GB 제한
+ 유럽(파리) - 200GB 제한
+ 유럽(취리히) - 200GB 제한