

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

# 개요: `ScriptProcessor`및 SageMaker 지리 공간 컨테이너를 사용하여 처리 작업 실행
<a name="geospatial-custom-operations-overview"></a>

SageMaker 지리 공간은 용도에 맞게 구축된 처리 컨테이너 `081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest`를 제공합니다. Amazon SageMaker Processing으로 작업을 실행할 때 이 컨테이너를 사용할 수 있습니다. *프로세싱을 위한 Amazon SageMaker Python SDK*를 통해 사용할 수 있는 [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor)클래스의 인스턴스를 생성할 때 이 `image_uri`를 지정하세요.

**참고**  
처리 작업을 시작하려고 할 때 ResourceLimitExcededed 오류가 발생하는 경우 할당량 증가를 요청해야 합니다. 서비스 할당량 할당량 증가 요청을 시작하려면 *서비스 할당량 사용자 가이드*의 [할당량 증가 요청](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)을 참조하세요.

**`ScriptProcessor` 사용을 위한 사전 조건**

1. 지리 공간 ML 워크로드를 지정하는 Python스크립트를 생성했습니다.

1. 필요한 모든 Amazon S3 버킷에 대한 SageMaker AI 실행 역할 액세스 권한을 부여했습니다.

1. 컨테이너로 가져올 데이터를 준비하세요. Amazon SageMaker Processing 작업은 `s3_data_type`을 `"ManifestFile"`과 동일하게 설정하거나 `"S3Prefix"`로 설정하는 것을 지원합니다.

다음 절차는 SageMaker 지리 공간 컨테이너를 사용하여 `ScriptProcessor`인스턴스를 생성하고 Amazon SageMaker Processing 작업을 제출하는 방법을 보여줍니다.

**SageMaker 지리 공간 컨테이너를 사용하여 `ScriptProcessor`인스턴스를 생성하고 Amazon SageMaker Processing 작업을 제출하려면**

1. SageMaker 지리 공간 이미지를 사용하여 `ScriptProcessor`클래스의 인스턴스를 인스턴스화합니다.

   ```
   from sagemaker.processing import ScriptProcessor, ProcessingInput, ProcessingOutput
   	
   sm_session = sagemaker.session.Session()
   execution_role_arn = sagemaker.get_execution_role()
   
   # purpose-built geospatial container
   image_uri = '081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest'
   
   script_processor = ScriptProcessor(
   	command=['python3'],
   	image_uri=image_uri,
   	role=execution_role_arn,
   	instance_count=4,
   	instance_type='ml.m5.4xlarge',
   	sagemaker_session=sm_session
   )
   ```

   *execution\$1role\$1arn*을 Amazon S3에 저장된 입력 데이터 및 처리 작업에서 직접적으로 호출하려는 다른 AWS 서비스에 액세스할 수 있는 SageMaker AI 실행 역할의 ARN으로 대체합니다. `instance_count` 및 `instance_type`를 처리 작업의 요구 사항에 맞게 업데이트할 수 있습니다.

1. 처리 작업을 시작하려면 다음 `.run()`방법을 사용하세요.

   ```
   # Can be replaced with any S3 compliant string for the name of the folder.
   s3_folder = geospatial-data-analysis
   
   # Use .default_bucket() to get the name of the S3 bucket associated with your current SageMaker session
   s3_bucket = sm_session.default_bucket()
   					
   s3_manifest_uri = f's3://{s3_bucket}/{s3_folder}/manifest.json'
   s3_prefix_uri =  f's3://{s3_bucket}/{s3_folder}/image-prefix
   
   script_processor.run(
   	code='preprocessing.py',
   	inputs=[
   		ProcessingInput(
   			source=s3_manifest_uri | s3_prefix_uri ,
   			destination='/opt/ml/processing/input_data/',
   			s3_data_type= "ManifestFile" | "S3Prefix",
   			s3_data_distribution_type= "ShardedByS3Key" | "FullyReplicated"
   		)
   	],
   	outputs=[
           ProcessingOutput(
               source='/opt/ml/processing/output_data/',
               destination=s3_output_prefix_url
           )
       ]
   )
   ```
   + *preprocessing.py*를 자체 Python 데이터 처리 스크립트의 이름으로 대체합니다.
   + 처리 작업은 입력 데이터의 형식을 지정하는 두 가지 방법을 지원합니다. 처리 작업의 모든 입력 데이터를 가리키는 매니페스트 파일을 만들거나 각 개별 데이터 입력에 공통 접두사를 사용할 수 있습니다. `"ManifestFile"`와 같은 매니페스트 파일 세트 `s3_manifest_uri`를 만든 경우. `s3_manifest_uri`와 같은 파일 접두사 세트 `"S3Prefix"`를 사용한 경우. `source`를 사용하여 데이터 경로를 지정합니다.
   + 처리 작업 데이터를 다음과 같은 두 가지 방법으로 배포할 수 있습니다.
     + `s3_data_distribution_type`를 `FullyReplicated`와 같게 설정하여 모든 처리 인스턴스에 데이터를 배포합니다.
     + `s3_data_distribution_type`를 `ShardedByS3Key`와 같게 설정하여 Amazon S3 키를 기반으로 데이터를 샤드로 배포합니다. `ShardedByS3Key`을 사용하면 각 처리 인스턴스에 하나의 데이터 샤드가 전송됩니다.

    스크립트를 사용하여 SageMaker 지리 공간 데이터를 처리할 수 있습니다. 해당 스크립트는 [3단계: NDVI를 계산할 수 있는 스크립트 작성](geospatial-custom-operations-procedure.md#geospatial-custom-operations-script-mode)에서 찾을 수 있습니다. `.run()` API 작업에 대해 자세히 알아보려면 *처리를 위한 Amazon SageMaker Python SDK의 [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor.run](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor.run)*를 참조하세요.

처리 작업의 진행 상황을 모니터링하기 위해 `ProcessingJobs`클래스는 [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingJob.describe](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingJob.describe)메서드를 지원합니다. 이 메서드는 `DescribeProcessingJob`API 호출의 응답을 반환합니다. 자세한 내용을 알아보려면 [*Amazon SageMaker AI API 참조*의 `DescribeProcessingJob`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html) 섹션을 참조하세요.

다음 항목에서는 SageMaker 지리 공간 컨테이너를 사용하여 `ScriptProcessor` 클래스의 인스턴스를 만드는 방법과 이를 사용하여 Sentinel-2 이미지로 NDVI(정규화식생지수)를 계산하는 방법을 보여줍니다.

