

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

# 단계 로그 파일의 로그 위치 사용자 지정
<a name="emr-plan-debugging-step-log-customization"></a>

Amazon EMR 버전 7.11부터 단계별로 S3 로깅 동작을 사용자 지정할 수 있습니다. 단일 단계의 경우 단계의 로그가 업로드되는 고유한 S3 버킷을 선택할 수 있습니다. S3에서 단계의 저장 로그를 암호화하는 데 사용되는 고유한 KMS 키를 선택할 수도 있습니다. 이러한 옵션은 클러스터를 시작할 때 구성된 클러스터 전체 로깅 설정보다 우선합니다.

## 사전 조건
<a name="emr-plan-debugging-step-log-prerequisites"></a>
+ 클러스터에 클러스터 로깅이 활성화되어 있어야 합니다. 자세한 내용은 [Amazon EMR 클러스터 로깅 및 디버깅 구성을 참조하세요](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-debugging.html).
+ EC2 인스턴스 프로파일:
  + 클러스터의 EC2 인스턴스 프로파일은 단계의 로깅 구성에 사용될 S3 버킷에 액세스할 수 있어야 합니다.
  + 클러스터의 EC2 인스턴스 프로파일은 단계의 로깅 구성에 사용될 KMS 키에 액세스할 수 있어야 합니다. 또한 클러스터의 EC2 인스턴스 프로파일에서 `kms:Decrypt` 및 `kms:GenerateDataKey` 작업을 허용해야 합니다.

## 단계 로그 구성
<a name="emr-plan-debugging-step-log-config"></a>

EMR에 단계를 제출할 때 [StepMonitoringConfiguration](https://docs.aws.amazon.com/cli/latest/reference/emr/add-steps.html)을 통해 단계의 로깅 동작을 구성할 수 있습니다. StepMonitoringConfiguration에는 단계에 대한 S3 로깅 버킷 및/또는 KMS 키를 지정할 수 있는 S3MonitoringConfiguration 객체가 포함되어 있습니다. S3 

다음 예제에서는 Python 스크립트에서 단계의 S3 버킷과 KMS 키를 사용자 지정하는 방법을 보여줍니다.

```
import boto3

emr_client = boto3.client("emr", region_name="us-east-1")

# Define your step:
example_step = [
    {
        "Name": "Example Step for StepMonitoringConfiguration",
        "ActionOnFailure": "CONTINUE",
        "HadoopJarStep": {
            "Jar": "command-runner.jar",
            "Args": ["bash", "-c", "echo 1"]
        },
        "StepMonitoringConfiguration": {
            "S3MonitoringConfiguration": {
                "LogUri": "s3://your-s3-bucket/", # Replace this with your S3 bucket
                "EncryptionKeyArn": "arn:aws:kms:your-kms-key-arn" # Replace this with your KMS key ARN
            }
        }
    }
]

response = emr_client.add_job_flow_steps(
    JobFlowId="j-xxxxxxxxxxxxx",  # Replace this with your EMR cluster ID
    Steps=example_step
)
```

## 고려 사항
<a name="emr-plan-debugging-step-log-considerations"></a>
+ 클러스터가 클러스터 로깅을 활성화하지 않으면를 제공하더라도 단계 로그가 S3에 업로드되지 않습니다`StepMonitoringConfiguration`.
+ 단계에서 Spark 애플리케이션을 실행하는 경우 애플리케이션의 컨테이너 로그도에 지정된 위치에 업로드됩니다`StepMonitoringConfiguration`.
+ `EncryptionKeyArn` 또는 그 반대로 지정`LogUri`하지 않고를 지정할 수 있습니다. EMR은에서 생략된 모든 필드에 대해 클러스터 전체 설정으로 기본 설정됩니다`StepMonitoringConfiguration`.