

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

# SageMaker 노트북
<a name="notebook-auto-run"></a>

Amazon SageMaker AI를 사용하면 모든 JupyterLab 환경의 Jupyter Notebook에서 기계 학습 모델을 대화형 방식으로 구축, 훈련 및 배포할 수 있습니다. 하지만 노트북을 비대화형 예약 작업으로 실행해야 하는 다양한 시나리오가 있을 수 있습니다. 예를 들어, 특정 기간 동안 실행되는 모든 훈련 작업을 분석하고 이러한 모델을 프로덕션에 배포하는 데 따른 비즈니스 가치를 분석하는 정기 감사 보고서를 만들고자 할 수 있습니다. 또는 소량의 데이터에서 데이터 변환 로직을 테스트한 후 기능 엔지니어링 작업을 조정하고 싶을 수도 있습니다. 일반적인 사용 사례는 다음과 같습니다.
+ 모델 드리프트 모니터링을 위한 작업 스케줄링
+ 더 나은 모델을 위한 파라미터 공간 탐색

이러한 시나리오에서 SageMaker AI 노트북 작업을 사용하여 요청 시 또는 일정에 따라 실행되는 비대화형 작업(SageMaker가 기본 훈련 작업으로 실행함)을 만들 수 있습니다. SageMaker 노트북 작업은 직관적인 사용자 인터페이스를 제공하므로 노트북의 노트북 작업 위젯(![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/icons/notebook-schedule.png))을 선택하여 JupyterLab에서 바로 작업을 예약할 수 있습니다. 파이프라인 워크플로에서 여러 노트북 작업을 예약할 수 있는 유연성을 제공하는 SageMaker AI Python SDK를 사용하여 작업을 예약할 수도 있습니다. 여러 노트북을 병렬로 실행하고 노트북의 셀을 파라미터화하여 입력 파라미터를 사용자 지정할 수 있습니다.

이 기능은 Amazon EventBridge, SageMaker 훈련 및 Pipelines 서비스를 활용하며 다음과 같은 환경의 Jupyter Notebook에서 사용할 수 있습니다.
+ Studio, Studio Lab, Studio Classic 또는 노트북 인스턴스
+ 로컬 설정(예: JupyterLab을 실행하는 로컬 머신)

**사전 조건**

Notebook 작업을 예약하려면 다음 기준을 충족하는지 확인하세요.
+ Jupyter notebook과 모든 초기화 또는 시작 스크립트가 코드 및 소프트웨어 패키지와 관련하여 독립적인지 확인합니다. 그렇지 않으면 비대화형 작업에서 오류가 발생할 수 있습니다.
+ Jupyter notebook, 네트워크 설정 및 컨테이너 설정을 올바르게 구성했는지 [제약 조건 및 고려 사항](notebook-auto-run-constraints.md)을 검토합니다.
+ 노트북이 Amazon EMR 클러스터와 같은 필요한 외부 리소스에 액세스할 수 있는지 확인합니다.
+ 로컬 Jupyter notebook에서 노트북 작업을 설정하는 경우 설치를 완료합니다. 지침은 [설치 가이드](scheduled-notebook-installation.md)섹션을 참조하세요.
+ 노트북의 Amazon EMR 클러스터에 연결하고 Amazon EMR 연결 명령을 파라미터화하려는 경우 환경 변수를 사용하여 파라미터를 전달하는 차선책을 적용해야 합니다. 자세한 내용은 [노트북에서 Amazon EMR 클러스터에 연결](scheduled-notebook-connect-emr.md)을 참조하세요.
+ Kerberos, LDAP 또는 HTTP Basic Auth 인증을 사용하여 Amazon EMR 클러스터에 연결하는 경우 AWS Secrets Manager 를 사용하여 보안 자격 증명을 Amazon EMR 연결 명령에 전달해야 합니다. 자세한 내용은 [노트북에서 Amazon EMR 클러스터에 연결](scheduled-notebook-connect-emr.md)을 참조하세요.
+ (선택 사항) 노트북을 시작할 때 UI가 스크립트를 미리 로드하여 실행되도록 하려면 관리자가 수명 주기 구성(LCC)을 사용하여 스크립트를 설치해야 합니다. LCC 스크립트 사용 방법에 대한 자세한 내용은 [수명 주기 구성 스크립트를 사용한 노트북 인스턴스 사용자 지정](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html)을 참조하세요.

# 설치 가이드
<a name="scheduled-notebook-installation"></a>

다음은 JupyterLab 환경에서 노트북 작업을 사용하기 위해 설치해야 하는 사항에 대한 정보를 제공합니다.

**Amazon SageMaker 스튜디오 및 Amazon SageMaker 스튜디오 랩의 경우**

노트북이 Amazon SageMaker 스튜디오 또는 Amazon SageMaker 스튜디오 랩에 있는 경우 추가 설치를 수행할 필요가 없습니다.SageMaker 노트북 작업은 플랫폼에 내장되어 있습니다. 스튜디오에 필요한 권한을 설정하려면 [Studio에 대한 정책 및 권한을 설정](scheduled-notebook-policies-studio.md)섹션을 참조하세요.

**로컬 Jupyter notebook의 경우**

로컬 JupyterLab 환경에서 SageMaker 노트북 작업을 사용하려면 추가 설치를 수행해야 합니다.

SageMaker Moniter의 노트북 작업을 설치하려면 다음 단계를 완료합니다.

1. Python 3를 설치합니다. 자세한 내용은 [Python 3 및 Python 패키지 설치](https://www.codecademy.com/article/install-python3)를 참조하세요.

1. JupyterLab 버전 4 이상을 설치합니다. 자세한 내용은 [JupyterLab SDK 설명서](https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html)를 참조하세요.

1. 를 설치합니다 AWS CLI. 자세한 내용은 [최신 버전의 AWS CLI설치 또는 업데이트](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참조하세요.

1. 두 가지 권한 세트를 설치합니다. IAM 사용자는 SageMaker AI에 작업을 제출할 수 있는 권한이 필요하며, 일단 제출되면 노트북 작업 자체가 작업에 따라 리소스에 액세스할 수 있는 권한이 필요한 IAM 역할을 맡습니다.

   1. 아직 IAM 사용자를 생성하지 않은 경우 [AWS 계정에서 IAM 사용자 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html)을 참조하세요.

   1. 노트북 작업 역할을 아직 생성하지 않은 경우 [IAM 사용자에게 권한을 위임하기 위한 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)을 참조하세요.

   1. 사용자 및 역할에 연결하는 데 필요한 권한 및 신뢰 정책을 연결합니다. 단계별 지침 및 권한 세부 정보는 [로컬 Jupyter 환경용 정책 및 권한 설치](scheduled-notebook-policies-other.md)섹션을 참조하세요.

1. 새로 생성된 IAM 사용자의 AWS 자격 증명을 생성하여 JupyterLab 환경의 자격 증명 파일(\$1/.aws/credentials)에 저장합니다. CLI 명령 `aws configure`를 사용하여 제거할 수 있습니다. 지침은 [구성 및 자격 증명 파일 설정](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)의 *명령을 사용하여 구성 설정 설정 및 보기* 섹션을 참조하세요.

1. (선택 사항) 기본적으로 스케줄러 확장 프로그램은 Python 2.0과 함께 사전 구축된 SageMaker AI Docker 이미지를 사용합니다. 노트북에서 사용되는 기본이 아닌 커널은 모두 컨테이너에 설치해야 합니다. 컨테이너 또는 도커 이미지에서 노트북을 실행하려면 Amazon Elastic Container Registry(Amazon ECR) 이미지를 생성해야 합니다. 도커 이미지를 Amazon ECR로 푸시하는 방법에 대한 자세한 내용은 [도커 이미지 푸시](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html)를 참조하세요.

1. SageMaker 노트북 작업을 위한 JupyterLab 확장 프로그램을 추가합니다. `pip install amazon_sagemaker_jupyter_scheduler` 명령을 사용하여 JupyterLab 환경에 추가할 수 있습니다. `sudo systemctl restart jupyter-server` 명령을 사용하여 Jupyter 서버를 다시 시작해야 할 수 있습니다.

1. `jupyter lab` 명령으로 JupyterLab을 시작합니다.

1. Jupyter notebook 작업 표시줄에 노트북 작업 위젯(![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/icons/notebook-schedule.png))이 나타나는지 확인합니다.

# Studio에 대한 정책 및 권한을 설정
<a name="scheduled-notebook-policies-studio"></a>

첫 노트북 실행을 예약하기 전에 적절한 정책과 권한을 설치해야 합니다. 다음은 다음 권한을 설정하는 지침을 제공합니다.
+ 작업 실행 역할 신뢰 관계
+ 작업 실행 역할에 추가된 IAM 권한
+ (선택 사항) 사용자 지정 KMS 키를 사용하기 위한 AWS KMS 권한 정책

**중요**  
 AWS 계정이 서비스 제어 정책(SCP)이 있는 조직에 속한 경우 유효 권한은 SCPs가 허용하는 것과 IAM 역할 및 사용자 정책이 허용하는 것 사이의 논리적 교집합입니다. 예를 들어, 조직의 SCP에서는 사용자가 `us-east-1`및 `us-west-1`내의 리소스에만 액세스할 수 있도록 지정하고, 정책에서는 `us-west-1`및 `us-west-2`내의 리소스에만 액세스할 수 있도록 허용하는 경우, 궁극적으로는 `us-west-1`내의 리소스에만 액세스할 수 있습니다. 역할 및 사용자 정책에 허용되는 모든 권한을 행사하려면 조직의 SCP가 자체 IAM 사용자 및 역할 정책과 동일한 권한 세트를 부여해야 합니다. 허용된 요청을 결정하는 방법에 대한 자세한 내용은 [계정 내 요청 허용 여부 결정](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow)을 참조하세요.

**신뢰 관계**

신뢰 관계를 수정하려면 다음 단계를 완료합니다.

1. [IAM 콘솔](https://console.aws.amazon.com/iam/)을 엽니다.

1. 왼쪽 패널에서 **역할**을 선택합니다.

1. 노트북 작업에 대한 작업 실행 역할을 찾고 역할 이름을 선택합니다.

1. **신뢰 관계** 탭을 선택합니다.

1. **신뢰 정책 편집**을 선택합니다.

1. 다음 정책을 복사하여 붙여 넣습니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "sagemaker.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "events.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. **정책 업데이트(Update policy)**를 선택합니다.

## 추가 IAM 권한
<a name="scheduled-notebook-policies-add"></a>

다음과 같은 상황에서는 추가 IAM 권한을 포함해야 할 수 있습니다.
+ 스튜디오 실행 및 노트북 작업 역할이 서로 다른 경우
+ S3 VPC 엔드포인트를 통해 Amazon S3 리소스에 액세스해야 하는 경우
+ 사용자 지정 KMS 키를 사용하여 입력 및 출력 Amazon S3 버킷을 암호화하려는 경우

다음 설명에서는 각 사례에 필요한 정책을 제공합니다.

### 스튜디오 실행 및 노트북 작업 역할이 서로 다른 경우 필요한 권한
<a name="scheduled-notebook-policies-add-diffrole"></a>

다음 JSON 스니펫은 스튜디오 실행 역할을 노트북 작업 역할로 사용하지 않는 경우 스튜디오 실행 및 노트북 작업 역할에 추가해야 하는 예시 정책입니다. 권한을 추가로 제한해야 하는 경우 이 정책을 검토하고 수정하세요.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"iam:PassRole",
         "Resource":"arn:aws:iam::*:role/*",
         "Condition":{
            "StringLike":{
               "iam:PassedToService":[
                  "sagemaker.amazonaws.com",
                  "events.amazonaws.com"
               ]
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":[
            "events:TagResource",
            "events:DeleteRule",
            "events:PutTargets",
            "events:DescribeRule",
            "events:PutRule",
            "events:RemoveTargets",
            "events:DisableRule",
            "events:EnableRule"
         ],
         "Resource":"*",
         "Condition":{
            "StringEquals":{
               "aws:ResourceTag/sagemaker:is-scheduling-notebook-job":"true"
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:CreateBucket",
            "s3:PutBucketVersioning",
            "s3:PutEncryptionConfiguration"
         ],
         "Resource":"arn:aws:s3:::sagemaker-automated-execution-*"
      },
      {
            "Sid": "S3DriverAccess",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::sagemakerheadlessexecution-*"
            ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "sagemaker:ListTags"
         ],
         "Resource":[
            "arn:aws:sagemaker:*:*:user-profile/*",
            "arn:aws:sagemaker:*:*:space/*",
            "arn:aws:sagemaker:*:*:training-job/*",
            "arn:aws:sagemaker:*:*:pipeline/*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "sagemaker:AddTags"
         ],
         "Resource":[
            "arn:aws:sagemaker:*:*:training-job/*",
            "arn:aws:sagemaker:*:*:pipeline/*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "ec2:DescribeDhcpOptions",
            "ec2:DescribeNetworkInterfaces",
            "ec2:DescribeRouteTables",
            "ec2:DescribeSecurityGroups",
            "ec2:DescribeSubnets",
            "ec2:DescribeVpcEndpoints",
            "ec2:DescribeVpcs",
            "ecr:BatchCheckLayerAvailability",
            "ecr:BatchGetImage",
            "ecr:GetDownloadUrlForLayer",
            "ecr:GetAuthorizationToken",
            "s3:ListBucket",
            "s3:GetBucketLocation",
            "s3:GetEncryptionConfiguration",
            "s3:PutObject",
            "s3:DeleteObject",
            "s3:GetObject",
            "sagemaker:DescribeApp",
            "sagemaker:DescribeDomain",
            "sagemaker:DescribeUserProfile",
            "sagemaker:DescribeSpace",
            "sagemaker:DescribeStudioLifecycleConfig",
            "sagemaker:DescribeImageVersion",
            "sagemaker:DescribeAppImageConfig",
            "sagemaker:CreateTrainingJob",
            "sagemaker:DescribeTrainingJob",
            "sagemaker:StopTrainingJob",
            "sagemaker:Search",
            "sagemaker:CreatePipeline",
            "sagemaker:DescribePipeline",
            "sagemaker:DeletePipeline",
            "sagemaker:StartPipelineExecution"
         ],
         "Resource":"*"
      }
   ]
}
```

------

### S3 VPC 엔드포인트를 통해 Amazon S3 리소스에 액세스해야 하는 경우 필요한 권한
<a name="scheduled-notebook-policies-add-vpc"></a>

SageMaker 스튜디오를 프라이빗 VPC 모드에서 실행하고 S3 VPC 엔드포인트를 통해 S3에 액세스하는 경우 VPC 엔드포인트 정책에 권한을 추가하여 VPC 엔드포인트를 통해 액세스할 수 있는 S3 리소스를 제어할 수 있습니다. VPC 엔드포인트 정책에 다음 권한을 추가합니다. 권한을 추가로 제한해야 하는 경우 정책을 수정할 수 있습니다.예를 들어 `Principal`필드에 더 좁은 사양을 제공할 수 있습니다.

```
{
    "Sid": "S3DriverAccess",
    "Effect": "Allow",
    "Principal": "*",
    "Action": [
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:ListBucket"
    ],
    "Resource": "arn:aws:s3:::sagemakerheadlessexecution-*"
}
```

S3 VPC 엔드포인트 정책을 설정하는 방법에 대한 자세한 내용은 [VPC 엔드포인트 정책 편집](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#edit-vpc-endpoint-policy-s3)을 참조하세요.

### 사용자 지정 KMS 키를 사용하는 데 필요한 권한(선택 사항)
<a name="scheduled-notebook-policies-add-kms"></a>

기본적으로 입력 및 출력 Amazon S3 버킷은 서버 측 암호화를 사용하여 암호화되지만, 출력 Amazon S3 버킷과 노트북 작업에 연결된 스토리지 볼륨의 데이터를 암호화하는 사용자 지정 KMS 키를 지정할 수 있습니다.

사용자 지정 KMS 키를 사용하려면 다음 정책을 연결하고 자체 KMS 키 ARN을 제공하세요.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
         "Effect":"Allow",
         "Action":[
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:DescribeKey",
            "kms:CreateGrant"
         ],
         "Resource":"arn:aws:kms:us-east-1:111122223333:key/key-id"
      }
   ]
}
```

------

# 로컬 Jupyter 환경용 정책 및 권한 설치
<a name="scheduled-notebook-policies-other"></a>

로컬 Jupyter 환경에서 노트북 작업을 예약하기 위해 권한 및 정책이 필요합니다. IAM 사용자는 SageMaker AI에 작업을 제출할 수 있는 권한이 필요하며, 노트북 작업 자체가 수임하는 IAM 역할에는 작업에 따라 리소스에 액세스할 수 있는 권한이 필요합니다. 다음은 필요한 권한 및 정책을 설정하는 방법에 대한 지침을 제공합니다.

두 세트의 권한을 설치해야 합니다. 다음 다이어그램은 로컬 Jupyter 환경에서 노트북 작업을 예약하는 권한 구조를 보여줍니다. IAM 사용자가 SageMaker AI에 작업을 제출하려면 IAM 권한을 설정해야 합니다. 사용자가 노트북 작업을 제출하면 작업 자체가 작업에 따라 리소스에 액세스할 수 있는 권한을 가진 IAM 역할을 맡습니다.

![\[\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/notebook-jobs-permissions.png)


다음 섹션은 IAM 사용자와 작업 실행 역할 모두에 필요한 정책과 권한을 설치하는 데 도움이 됩니다.

## IAM 사용자 권한
<a name="scheduled-notebook-policies-other-user"></a>

**SageMaker AI에 작업을 제출할 수 있는 권한**

작업을 제출할 수 있는 권한을 추가하려면 다음 단계를 완료합니다.

1. [IAM 콘솔](https://console.aws.amazon.com/iam/)을 엽니다.

1. 왼쪽 패널에서 **사용자**를 선택합니다.

1. 노트북 작업에 사용할 IAM 사용자를 찾아 사용자 이름을 선택합니다.

1. **권한 추가**를 선택하고 드롭다운 메뉴에서 **인라인 정책 생성**을 선택합니다.

1. **JSON** 탭을 선택합니다.

1. 다음 정책을 복사하여 붙여 넣습니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EventBridgeSchedule",
               "Effect": "Allow",
               "Action": [
                   "events:TagResource",
                   "events:DeleteRule",
                   "events:PutTargets",
                   "events:DescribeRule",
                   "events:EnableRule",
                   "events:PutRule",
                   "events:RemoveTargets",
                   "events:DisableRule"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
                   }
               }
           },
           {
               "Sid": "IAMPassrole",
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::*:role/*",
               "Condition": {
                   "StringLike": {
                       "iam:PassedToService": [
                           "sagemaker.amazonaws.com",
                           "events.amazonaws.com"
                       ]
                   }
               }
           },
           {
               "Sid": "IAMListRoles",
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "*"
           },
           {
               "Sid": "S3ArtifactsAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:PutEncryptionConfiguration",
                   "s3:CreateBucket",
                   "s3:PutBucketVersioning",
                   "s3:ListBucket",
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:GetEncryptionConfiguration",
                   "s3:DeleteObject",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::sagemaker-automated-execution-*"
               ]
           },
           {
               "Sid": "S3DriverAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::sagemakerheadlessexecution-*"
               ]
           },
           {
               "Sid": "SagemakerJobs",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribeTrainingJob",
                   "sagemaker:StopTrainingJob",
                   "sagemaker:DescribePipeline",
                   "sagemaker:CreateTrainingJob",
                   "sagemaker:DeletePipeline",
                   "sagemaker:CreatePipeline"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
                   }
               }
           },
           {
               "Sid": "AllowSearch",
               "Effect": "Allow",
               "Action": "sagemaker:Search",
               "Resource": "*"
           },
           {
               "Sid": "SagemakerTags",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:ListTags",
                   "sagemaker:AddTags"
               ],
               "Resource": [
                   "arn:aws:sagemaker:*:*:pipeline/*",
                   "arn:aws:sagemaker:*:*:space/*",
                   "arn:aws:sagemaker:*:*:training-job/*",
                   "arn:aws:sagemaker:*:*:user-profile/*"
               ]
           },
           {
               "Sid": "ECRImage",
               "Effect": "Allow",
               "Action": [
                   "ecr:GetAuthorizationToken",
                   "ecr:BatchGetImage"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

**AWS KMS 권한 정책(선택 사항)**

기본적으로 입력 및 출력 Amazon S3 버킷은 서버 측 암호화를 사용하여 암호화되지만, 출력 Amazon S3 버킷과 노트북 작업에 연결된 스토리지 볼륨의 데이터를 암호화하는 사용자 지정 KMS 키를 지정할 수 있습니다.

사용자 지정 KMS 키를 사용하려면 이전 정책을 반복하여 다음 정책을 연결하고 자체 KMS 키 ARN을 제공하세요.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
         "Effect":"Allow",
         "Action":[
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:DescribeKey",
            "kms:CreateGrant"
         ],
         "Resource":"arn:aws:kms:us-east-1:111122223333:key/key-id"
      }
   ]
}
```

------

## 작업 실행 역할 권한
<a name="scheduled-notebook-policies-other-job"></a>

**신뢰 관계**

작업 실행 역할 신뢰 관계를 수정하려면 다음 단계를 완료합니다.

1. [IAM 콘솔](https://console.aws.amazon.com/iam/)을 엽니다.

1. 왼쪽 패널에서 **역할**을 선택합니다.

1. 노트북 작업에 대한 작업 실행 역할을 찾고 역할 이름을 선택합니다.

1. **신뢰 관계** 탭을 선택합니다.

1. **신뢰 정책 편집**을 선택합니다.

1. 다음 정책을 복사하여 붙여 넣습니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "sagemaker.amazonaws.com",
                       "events.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

**추가 권한**

노트북 작업을 제출한 후에는 리소스에 액세스할 수 있는 권한이 필요합니다. 다음 지침은 최소 권한 세트를 추가하는 방법을 보여줍니다. 필요한 경우 노트북 작업 요구 사항에 따라 권한을 더 추가하세요. 작업 실행 역할에 권한을 추가하려면 다음 단계를 완료하세요.

1. [IAM 콘솔](https://console.aws.amazon.com/iam/)을 엽니다.

1. 왼쪽 패널에서 **역할**을 선택합니다.

1. 노트북 작업에 대한 작업 실행 역할을 찾고 역할 이름을 선택합니다.

1. **권한 추가**를 선택하고 드롭다운 메뉴에서 **인라인 정책 생성**을 선택합니다.

1. **JSON** 탭을 선택합니다.

1. 다음 정책을 복사하여 붙여 넣습니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PassroleForJobCreation",
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::*:role/*",
               "Condition": {
                   "StringLike": {
                       "iam:PassedToService": "sagemaker.amazonaws.com"
                   }
               }
           },
           {
               "Sid": "S3ForStoringArtifacts",
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:ListBucket",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::sagemaker-automated-execution-*"
           },
           {
               "Sid": "S3DriverAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::sagemakerheadlessexecution-*"
               ]
           },
           {
               "Sid": "SagemakerJobs",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:StartPipelineExecution",
                   "sagemaker:CreateTrainingJob"
               ],
               "Resource": "*"
           },
           {
               "Sid": "ECRImage",
               "Effect": "Allow",
               "Action": [
                   "ecr:GetDownloadUrlForLayer",
                   "ecr:BatchGetImage",
                   "ecr:GetAuthorizationToken",
                   "ecr:BatchCheckLayerAvailability"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 노트북 작업에서 액세스하는 다른 리소스에 권한을 추가합니다.

1. **정책 검토**를 선택합니다.

1. 정책의 이름을 입력합니다.

1. **정책 생성**을 선택합니다.

# 노트북 작업을 만들 수 있는 위치
<a name="create-notebook-auto-run"></a>

노트북 작업을 만들려면 여러 옵션이 있습니다. 다음은 SageMaker AI에 노트북 작업을 만들 수 있는 옵션을 제공합니다.

Studio UI의 JupyterLab 노트북에서 작업을 만들거나 SageMaker Python SDK를 사용하여 프로그래밍 방식으로 작업을 만들 수 있습니다.
+ Studio UI에서 노트북 작업을 만드는 경우 이미지 및 커널, 보안 구성, 사용자 지정 변수 또는 스크립트에 대한 세부 정보를 제공하고 작업이 예약됩니다. SageMaker 노트북 작업을 사용하여 작업을 예약하는 방법에 대한 자세한 내용은 [Studio에서 노트북 작업 만들기](create-notebook-auto-run-studio.md) 섹션을 참조하세요.
+ SageMaker Python SDK를 사용하여 노트북 작업을 만들려면 노트북 작업 단계를 사용하여 파이프라인을 만들고 온디맨드 실행을 시작하거나 선택적으로 파이프라인 예약 기능을 사용하여 향후 실행을 예약합니다. SageMaker SDK는 파이프라인을 사용자 지정할 수 있는 유연성을 제공합니다. 여러 노트북 작업 단계를 통해 파이프라인을 워크플로로 확장할 수 있습니다. SageMaker 노트북 작업 단계와 파이프라인을 모두 만들기 때문에 SageMaker 노트북 작업 대시보드에서 파이프라인 실행 상태를 추적하고 Studio에서 파이프라인 그래프를 볼 수도 있습니다. SageMaker Python SDK을 사용하여 작업을 예약하는 방법에 대한 자세한 내용과 및 예시 노트북 링크는 [SageMaker AI Python SDK를 사용한 노트북 작업 생성 예시](create-notebook-auto-run-sdk.md) 섹션을 참조하세요.

# SageMaker AI Python SDK를 사용한 노트북 작업 생성 예시
<a name="create-notebook-auto-run-sdk"></a>

SageMaker Python SDK를 사용하여 독립 실행형 노트북을 실행하려면 노트북 작업 단계를 만들고 파이프라인에 연결한 다음 Pipelines에서 제공하는 유틸리티를 사용하여 온디맨드로 작업을 실행하거나 선택적으로 하나 이상의 향후 작업을 예약해야 합니다. 다음 섹션에서는 온디맨드 또는 예약된 노트북 작업을 만들고 실행을 추적하는 기본 단계를 설명합니다. 또한 파라미터를 노트북 작업에 전달하거나 노트북의 Amazon EMR에 연결해야 하는 경우 다음 논의를 참조하세요. 이러한 경우 Jupyter Notebook을 추가로 준비해야 합니다. `NotebookJobStep` 인수의 하위 집합에 기본값을 적용할 수도 있으므로 노트북 작업 단계를 만들 때마다 기본값을 지정할 필요가 없습니다.

SageMaker AI Python SDK를 사용하여 노트북 작업을 예약하는 방법을 보여주는 샘플 노트북을 보려면 [노트북 작업 샘플 예시](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-pipelines/notebook-job-step)를 참조하세요.

**Topics**
+ [노트북 작업을 만드는 단계](#create-notebook-auto-run-overall)
+ [Studio UI 대시보드에서 노트북 작업 보기](#create-notebook-auto-run-dash)
+ [Studio에서 파이프라인 그래프 보기](#create-notebook-auto-run-graph)
+ [노트북에 파라미터 전달](#create-notebook-auto-run-passparam)
+ [입력 노트북에서 Amazon EMR 클러스터에 연결](#create-notebook-auto-run-emr)
+ [기본 옵션 설정](#create-notebook-auto-run-intdefaults)

## 노트북 작업을 만드는 단계
<a name="create-notebook-auto-run-overall"></a>

즉시 또는 일정에 따라 실행되는 노트북 작업을 만들 수 있습니다. 다음 지침은 두 방법을 모두 설명합니다.

**노트북 작업을 예약하려면 다음의 기본 단계를 완료하세요.**

1. `NotebookJobStep` 인스턴스를 만듭니다. `NotebookJobStep` 파라미터에 대한 자세한 내용은 [sagemaker.workflow.steps.NotebookJobStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.notebook_job_step.NotebookJobStep)을 참조하세요. 최소한 다음 코드 조각에 표시된 대로 다음 인수를 제공할 수 있습니다.
**중요**  
SageMaker Python SDK를 사용하여 노트북 작업을 예약하는 경우 노트북 작업을 실행할 특정 이미지만 지정할 수 있습니다. 자세한 내용은 [SageMaker AI Python SDK 노트북 작업에 대한 이미지 제약 조건](notebook-auto-run-constraints.md#notebook-auto-run-constraints-image-sdk) 단원을 참조하십시오.

   ```
   notebook_job_step = NotebookJobStep(
       input_notebook=input-notebook,
       image_uri=image-uri,
       kernel_name=kernel-name
   )
   ```

1. 다음 코드 조각과 같이 `NotebookJobStep`을 단일 단계로 사용하여 파이프라인을 만듭니다.

   ```
   pipeline = Pipeline(
       name=pipeline-name,
       steps=[notebook_job_step],
       sagemaker_session=sagemaker-session,
   )
   ```

1. 온디맨드로 파이프라인을 실행하거나 선택적으로 향후 파이프라인 실행을 예약합니다. 즉시 실행을 시작하려면 다음 명령을 사용합니다.

   ```
   execution = pipeline.start(
       parameters={...}
   )
   ```

   선택적으로 향후 파이프라인 실행을 하나만 예약하거나 미리 정해진 간격으로 여러 번의 실행을 예약할 수 있습니다. `PipelineSchedule`에서 일정을 지정한 다음 `put_triggers`를 사용하여 일정 객체를 파이프라인에 전달합니다. 파이프라인 예약에 대한 자세한 내용은 [SageMaker Python SDK를 사용하여 파이프라인 예약](pipeline-eventbridge.md#build-and-manage-scheduling) 섹션을 참조하세요.

   다음 예시에서는 파이프라인이 2023년 12월 12일 10:31:32(UTC)에 한 번 실행되도록 예약합니다.

   ```
   my_schedule = PipelineSchedule(  
       name="my-schedule“,  
       at=datetime(year=2023, month=12, date=25, hour=10, minute=31, second=32) 
   )  
   pipeline.put_triggers(triggers=[my_schedule])
   ```

   다음 예시에서는 2022년부터 2023년까지 매월 마지막 금요일 오전 10시 15분(UTC)에 실행되도록 파이프라인을 예약합니다. Cron 기반 예약에 대한 자세한 내용은 [Cron-based schedules](https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html#cron-based)을 참조하세요.

   ```
   my_schedule = PipelineSchedule(  
       name="my-schedule“,  
       cron="15 10 ? * 6L 2022-2023"
   )  
   pipeline.put_triggers(triggers=[my_schedule])
   ```

1. (선택 사항) SageMaker 노트북 작업 대시보드에서 노트북 작업을 봅니다. 노트북 작업 단계의 `tags` 인수에 제공하는 값은 Studio UI가 작업을 캡처하고 표시하는 방법을 제어합니다. 자세한 내용은 [Studio UI 대시보드에서 노트북 작업 보기](#create-notebook-auto-run-dash) 단원을 참조하십시오.

## Studio UI 대시보드에서 노트북 작업 보기
<a name="create-notebook-auto-run-dash"></a>

특정 태그를 지정하면 파이프라인 단계로 만든 노트북 작업이 Studio 노트북 작업 대시보드에 표시됩니다.

**참고**  
Studio 또는 로컬 JupyterLab 환경에서 만든 노트북 작업만 작업 정의를 만듭니다. 따라서 SageMaker Python SDK로 노트북 작업을 만드는 경우 노트북 작업 대시보드에 작업 정의가 표시되지 않습니다. 하지만 [노트북 작업 보기](view-notebook-jobs.md)에 설명된 대로 노트북 작업을 볼 수 있습니다.

다음 태그를 사용하여 노트북 작업을 볼 수 있는 팀원을 제어할 수 있습니다.
+ 도메인의 모든 사용자 프로필 또는 [공간](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl-user-guide.html)에 노트북을 표시하려면 도메인 이름과 함께 도메인 태그를 추가합니다. 예를 들면 다음과 같습니다.
  + 키: `sagemaker:domain-name`, 값: `d-abcdefghij5k`
+ 도메인의 특정 사용자 프로필에 노트북 작업을 표시하려면 사용자 프로필과 도메인 태그를 모두 추가합니다. 사용자 프로필 태그의 예는 다음과 같습니다.
  + 키: `sagemaker:user-profile-name`, 값: `studio-user`
+ 노트북 작업을 [공간](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl-user-guide.html)에 표시하려면 공간과 도메인 태그를 모두 추가합니다. 공간 태그의 예는 다음과 같습니다.
  + 키: `sagemaker:shared-space-name`, 값: `my-space-name`
+ 도메인 또는 사용자 프로필 또는 공간 태그를 연결하지 않으면 Studio UI에 파이프라인 단계에서 만든 노트북 작업이 표시되지 않습니다. 이 경우 훈련 작업 콘솔에서 기본 훈련 작업을 보거나 [파이프라인 실행 목록](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-studio-view-execution.html)에서 상태를 볼 수 있습니다.

대시보드에서 작업을 보는 데 필요한 태그를 설정한 후 작업을 보고 출력을 다운로드하는 방법에 대한 지침은 [노트북 작업 보기](view-notebook-jobs.md) 섹션을 참조하세요.

## Studio에서 파이프라인 그래프 보기
<a name="create-notebook-auto-run-graph"></a>

노트북 작업 단계는 파이프라인의 일부이므로 Studio에서 파이프라인 그래프(DAG)를 볼 수 있습니다. 파이프라인 그래프에서 파이프라인 실행 상태를 보고 계보를 추적할 수 있습니다. 자세한 내용은 [파이프라인 실행 세부 정보 보기](pipelines-studio-view-execution.md)을 참조하세요.

## 노트북에 파라미터 전달
<a name="create-notebook-auto-run-passparam"></a>

파라미터를 노트북 작업에 전달하려면(`NotebookJobStep`의 `parameters` 인수 사용) 파라미터를 수신할 수 있도록 입력 노트북을 준비해야 합니다.

Papermill 기반 노트북 작업 실행기는 `parameters` 태그가 지정된 Jupyter 셀을 검색하고 이 셀 바로 뒤에 새 파라미터 또는 파라미터 재정의를 적용합니다. 자세한 내용은 [노트북 파라미터화](notebook-auto-run-troubleshoot-override.md)을 참조하세요.

이 단계를 수행했으면 다음 예시와 같이 파라미터를 `NotebookJobStep`에 전달합니다.

```
notebook_job_parameters = {
    "company": "Amazon"
}

notebook_job_step = NotebookJobStep(
    image_uri=image-uri,
    kernel_name=kernel-name,
    role=role-name,
    input_notebook=input-notebook,
    parameters=notebook_job_parameters,
    ...
)
```

## 입력 노트북에서 Amazon EMR 클러스터에 연결
<a name="create-notebook-auto-run-emr"></a>

Studio의 Jupyter Notebook에서 Amazon EMR 클러스터에 연결하는 경우 Jupyter Notebook을 추가로 수정해야 할 수 있습니다. 노트북에서 다음 작업 중 하나를 수행해야 하는지 [노트북에서 Amazon EMR 클러스터에 연결](scheduled-notebook-connect-emr.md) 섹션을 확인하세요.
+ **Amazon EMR 연결 명령에 파라미터를 전달합니다.** Studio는 Papermill을 사용하여 노트북을 실행합니다. SparkMagic 커널에서는 Papermill이 SparkMagic에 정보를 전달하는 방식 때문에 Amazon EMR 연결 명령에 전달하는 파라미터가 예상대로 작동하지 않을 수 있습니다.
+ **사용자 자격 증명을 Kerberos, LDAP 또는 HTTP 기본 인증 Amazon EMR 클러스터에 전달** AWS Secrets Manager를 통해 사용자 자격 증명을 전달해야 합니다.

## 기본 옵션 설정
<a name="create-notebook-auto-run-intdefaults"></a>

SageMaker SDK는 `NotebookJobStep` 인스턴스를 만들 때마다 이러한 파라미터를 지정할 필요가 없도록 파라미터의 하위 집합에 대한 기본값을 설정하는 옵션을 제공합니다. 이러한 파라미터는 `role`, `s3_root_uri`, `s3_kms_key`, `volume_kms_key`, `subnets` 및 `security_group_ids`입니다. SageMaker AI 구성 파일을 사용하여 단계의 기본값을 설정합니다. SageMaker AI 구성 파일에 대한 자세한 내용은 [Configuring and using defaults with the SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/overview.html#configuring-and-using-defaults-with-the-sagemaker-python-sdk)를 참조하세요.

노트북 작업 기본값을 설정하려면 다음 코드 조각과 같이 구성 파일의 노트북 작업 섹션에 새 기본값을 적용합니다.

```
SageMaker:
  PythonSDK:
    Modules:
      NotebookJob:
        RoleArn: 'arn:aws:iam::555555555555:role/IMRole'
        S3RootUri: 's3://amzn-s3-demo-bucket/my-project'
        S3KmsKeyId: 's3kmskeyid'
        VolumeKmsKeyId: 'volumekmskeyid1'
        VpcConfig:
          SecurityGroupIds:
            - 'sg123'
          Subnets:
            - 'subnet-1234'
```

# Studio에서 노트북 작업 만들기
<a name="create-notebook-auto-run-studio"></a>

**참고**  
노트북 스케줄러는 Amazon EventBridge, SageMaker 훈련 및 Pipelines 서비스를 기반으로 구축되었습니다. 노트북 작업이 실패할 경우 이러한 서비스와 관련된 오류가 표시될 수 있습니다. 다음은 Studio UI에서 노트북 작업을 만드는 방법에 대한 정보를 제공합니다.

SageMaker 노트북 작업은 노트북 작업 위젯을 사용하여 비대화형 노트북 작업을 만들고 관리할 수 있는 도구를 제공합니다. 작업을 생성하고, 생성한 작업을 보고, 기존 작업을 일시 중지, 중지 또는 재개할 수 있습니다. 노트북 일정을 수정할 수도 있습니다.

위젯을 사용하여 예약된 노트북 작업을 만들면 스케줄러가 선택한 기본 옵션을 추론하여 양식을 자동으로 채워 빠르게 시작할 수 있도록 도와줍니다. Studio를 사용하는 경우 최소한 옵션을 설정하지 않고도 온디맨드 작업을 제출할 수 있습니다. 시간별 일정 정보만 제공하는 (예약된) 노트북 작업 정의를 제출할 수도 있습니다. 하지만 예약된 작업에 특수 설정이 필요한 경우 다른 필드를 사용자 지정할 수 있습니다. 로컬 Jupyter notebook을 실행 중인 경우 스케줄러 확장이 옵션 서브셋의 기본값을 직접 지정할 수 있는 기능을 제공하므로 매번 같은 값을 수동으로 삽입하지 않아도 됩니다.

노트북 작업을 만들 때 데이터세트, 이미지 및 로컬 스크립트와 같은 추가 파일을 포함할 수 있습니다. 이렇게 하려면 **입력 폴더를 사용하여 작업 실행**을 선택합니다. 이제 노트북 작업은 입력 파일의 폴더에 있는 모든 파일에 액세스할 수 있습니다. 노트북 작업이 실행되는 동안 디렉터리의 파일 구조는 변경되지 않습니다.

노트북 작업을 예약하려면 다음 단계를 완료하세요.

1. **작업 생성** 양식을 엽니다.

   로컬 JupyterLab 환경에서는 작업 표시줄에서 **노트북 작업 생성** 아이콘(![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/icons/notebook-schedule.png))을 선택합니다. 아이콘이 보이지 않는 경우 [설치 가이드](scheduled-notebook-installation.md)의 지침에 따라 설치합니다.

   Studio에서 다음 두 가지 방법으로 양식을 엽니다.
   + **파일 브라우저** 사용

     1. 왼쪽 패널의 **파일 브라우저**에서 예약된 작업으로 실행하려는 노트북을 마우스 오른쪽 버튼으로 클릭합니다.

     1. **노트북 작업 생성**을 선택합니다.
   + Studio 노트북 내
     + 예약된 작업으로 실행하려는 Studio 노트북 내에서 Studio 도구 모음의 **노트북 작업 생성** 아이콘(![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/icons/notebook-schedule.png))을 선택합니다.

1. 팝업 양식을 작성합니다. 양식에는 다음 필드가 표시됩니다.
   + **작업 이름**: 작업에 대해 지정하는 알기 쉬운 이름입니다.
   + **입력 파일**: 비대화형 모드에서 실행하도록 예약한 노트북의 이름입니다.
   + **컴퓨팅 유형**: 노트북을 실행하려는 Amazon EC2 인스턴스의 유형입니다.
   + **파라미터**: 노트북의 입력으로 선택적으로 지정할 수 있는 사용자 지정 파라미터입니다. 이 기능을 사용하려면 선택적으로 Jupyter Notebook의 특정 셀에 **parameters** 태그를 지정하여 파라미터가 적용되는 위치를 제어할 수 있습니다. 자세한 내용은 [노트북 파라미터화](notebook-auto-run-troubleshoot-override.md) 섹션을 참조하세요.
   + (선택 사항) **입력 폴더를 사용하여 작업 실행**: 이 옵션을 선택하면 예약된 작업이 **입력 파일**과 동일한 폴더에 있는 모든 파일에 액세스할 수 있습니다.
   + **추가 옵션**: 작업에 대한 추가 사용자 지정을 지정할 수 있습니다. 예를 들어 이미지 또는 커널, 입력 및 출력 폴더, 작업 재시도 및 제한 시간 옵션, 암호화 세부 정보, 사용자 지정 초기화 스크립트를 지정할 수 있습니다. 적용할 수 있는 사용자 지정의 전체 목록은 [사용 가능한 옵션](create-notebook-auto-execution-advanced.md)섹션을 참조하세요.

1. 작업을 예약합니다. 온디맨드 방식 또는 정해진 일정에 따라 노트북을 실행할 수 있습니다.
   + 온디맨드 방식에 따라 노트북을 실행하려면 다음 단계를 완료합니다.
     + **지금 실행**을 선택합니다.
     + **생성(Create)**을 선택합니다.
     + **노트북 작업** 탭이 나타납니다. **다시 로드**를 선택하여 작업을 대시보드에 로드합니다.
   + 정해진 일정에 따라 노트북을 실행하려면 다음 단계를 완료합니다.
     + **일정에 따라 실행**을 선택합니다.
     + **간격** 드롭다운 목록을 선택하고 간격을 선택합니다. 간격은 1분에서 1개월까지입니다. **사용자 지정 일정**을 선택할 수도 있습니다.
     + 선택한 간격에 따라 원하는 실행 날짜 및 시간을 추가로 지정하는 데 도움이 되는 추가 필드가 나타납니다. 예를 들어, 일일 실행으로 **요일**을 선택하면 원하는 시간을 지정할 수 있는 추가 필드가 나타납니다. 지정하는 모든 시간은 UTC 형식입니다. 또한 1분 등의 짧은 간격을 선택하는 경우, 다음 작업이 시작될 때 이전 작업이 완료되지 않으면 작업이 겹치게 됩니다.

       사용자 지정 일정을 선택하는 경우 표현식 상자에 CRON 구문을 사용하여 정확한 실행 날짜 및 시간을 지정합니다. CRON 구문은 공백으로 구분된 숫자 목록으로, 각 숫자는 초에서 연까지의 시간 단위를 나타냅니다. CRON 구문에 대한 도움이 필요하면 표현식 상자 아래에서 **CRON 구문에 대한 도움 받기**를 선택할 수 있습니다.
     + **생성(Create)**을 선택합니다.
     + **노트북 작업 정의** 탭이 나타납니다. **다시 로드**를 선택하여 작업 정의를 대시보드에 로드합니다.

# 로컬 노트북 기본 옵션 설정
<a name="create-notebook-auto-execution-advanced-default"></a>

**중요**  
2023년 11월 30일부터 이전 Amazon SageMaker Studio 환경이 이제 Amazon SageMaker Studio Classic으로 명명되었습니다. 다음 섹션은 Studio Classic 애플리케이션 사용에 관해 다룹니다. 업데이트된 Studio 환경 사용에 대한 자세한 내용은 [Amazon SageMaker Studio](studio-updated.md) 섹션을 참조하세요.  
Studio Classic은 기존 워크로드에 대해 유지 관리되지만 더 이상 온보딩에 사용할 수 없습니다. 기존 Studio Classic 애플리케이션만 중지하거나 삭제할 수 있으며 새 애플리케이션을 생성할 수 없습니다. [워크로드를 새 Studio 환경으로 마이그레이션하는](studio-updated-migrate.md) 것이 좋습니다.

노트북 작업을 만들 때 기본 옵션을 설정할 수 있습니다. 이렇게 하면 제공된 기본값과 다른 옵션으로 여러 노트북 작업을 만들 계획인 경우 시간을 절약할 수 있습니다. 다음은 로컬 노트북의 기본 옵션을 설정하는 방법에 대한 정보를 제공합니다.

**작업 생성** 양식에서 사용자 지정 값을 수동으로 입력 또는 붙여넣기해야 하는 경우 새 기본값을 저장할 수 있으며 스케줄러 확장 프로그램은 새 작업 정의를 만들 때마다 새 값을 삽입합니다. 이 기능은 다음 리전에서 사용 가능합니다.
+ **역할 ARN**
+ **S3 입력 폴더**
+ **S3 출력 폴더**
+ **출력 암호화 KMS 키**(**작업 구성 암호화**를 켜는 경우)
+ **작업 인스턴스 볼륨 암호화 KMS 키**(**작업 구성 암호화**를 켜는 경우)

이 기능을 사용하면 제공된 기본값과 다른 값을 삽입하고 향후 작업 실행 시 해당 값을 계속 사용할 경우 시간을 절약할 수 있습니다. 선택한 사용자 설정은 JupyterLab 서버를 실행하는 컴퓨터에 저장되며 기본 API를 사용하여 검색됩니다. 다섯 가지 옵션 모두가 아닌 하나 이상의 새 기본값을 제공하는 경우 사용자 지정하지 않은 옵션에 이전 기본값이 적용됩니다.

다음 지침은 노트북 작업에 대해 기존 기본값을 미리 보고, 새 기본값을 설정하고, 기본값을 재설정하는 방법을 보여줍니다.

**노트북 작업의 기존 기본값을 미리 보려면 다음 단계를 완료하세요.**

1. [Amazon SageMaker Studio Classic 시작](studio-launch.md)의 지침에 따라 Amazon SageMaker Studio Classic 콘솔을 엽니다.

1. 왼쪽 패널의 **파일 브라우저**에서 예약된 작업으로 실행하려는 노트북을 마우스 오른쪽 버튼으로 클릭합니다.

1. **노트북 작업 생성**을 선택합니다.

1. 노트북 작업 설정 탭을 확장하려면 **추가 옵션**을 선택합니다. 여기에서 기본 설정을 볼 수 있습니다.

**향후 노트북 작업에 대한 새 기본값을 설정하려면 다음 단계를 완료하세요.**

1. [Amazon SageMaker Studio Classic 시작](studio-launch.md)의 지침에 따라 Amazon SageMaker Studio Classic 콘솔을 엽니다.

1. Studio Classic 최상위 메뉴에서 **설정**을 선택한 다음 **고급 설정 편집기**를 선택합니다.

1. **설정** 아래의 목록에서 **Amazon SageMaker 스케줄러**를 선택합니다. 기본적으로 이미 열려 있을 수 있습니다.

1. 이 UI 페이지에서 직접 또는 JSON 편집기를 사용하여 기본 설정을 업데이트할 수 있습니다.
   + UI에서 **역할 ARN**, **S3 입력 폴더**, **S3 출력 폴더**, **출력 암호화 KMS 키** 또는 **작업 인스턴스 볼륨 암호화 KMS 키**에 대한 새 값을 삽입할 수 있습니다. 이 값을 변경하면 다음 노트북 작업을 만들 때 **추가 옵션**에서 해당 필드의 새 기본값이 표시됩니다.
   + (선택 사항) **JSON 설정 편집기**를 사용하여 사용자 기본값을 업데이트하려면 다음 단계를 완료하세요.

     1. 오른쪽 상단에서 **JSON 설정 편집기**를 선택합니다.

     1. **설정** 왼쪽 사이드바에서 **Amazon SageMaker AI 스케줄러**를 선택합니다. 기본적으로 이미 열려 있을 수 있습니다.

        **사용자 기본 설정** 패널에서 현재 기본값을 확인할 수 있습니다.

        **시스템 기본값** 패널에서 시스템 기본값을 확인할 수 있습니다.

     1. 기본값을 업데이트하려면 **시스템 기본값** 패널의 JSON 스니펫을 복사하여 **사용자 기본 설정** 패널에 붙여넣고 필드를 업데이트합니다.

     1. 기본값을 업데이트한 경우 오른쪽 상단의 **사용자 설정 저장** 아이콘(![\[Icon of a cloud with an arrow pointing upward, representing cloud upload functionality.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/icons/Notebook_save.png))을 선택합니다. 편집기를 닫으면 변경 내용이 저장되지 않습니다.

**이전에 변경한 후 사용자 지정 기본값을 재설정하려면 다음 단계를 완료하세요.**

1. Studio Classic 최상위 메뉴에서 **설정**을 선택한 다음 **고급 설정 편집기**를 선택합니다.

1. **설정** 아래의 목록에서 **Amazon SageMaker 스케줄러**를 선택합니다. 기본적으로 이미 열려 있을 수 있습니다.

1. 이 UI 페이지를 직접 사용하거나 JSON 편집기를 사용하여 기본값을 복원할 수 있습니다.
   + UI의 오른쪽 상단 모서리에서 **기본값으로 복원**을 선택할 수 있습니다. 기본값은 비어 있는 문자열로 복원됩니다. 이전에 기본값을 변경한 경우에만 이 옵션이 표시됩니다.
   + (선택 사항) **JSON 설정 편집기**를 사용하여 기본 설정을 다시 시작하려면 다음 단계를 완료하세요.

     1. 오른쪽 상단에서 **JSON 설정 편집기**를 선택합니다.

     1. **설정** 왼쪽 사이드바에서 **Amazon SageMaker AI 스케줄러**를 선택합니다. 기본적으로 이미 열려 있을 수 있습니다.

        **사용자 기본 설정** 패널에서 현재 기본값을 확인할 수 있습니다.

        **시스템 기본값** 패널에서 시스템 기본값을 확인할 수 있습니다.

     1. 현재 기본 설정을 복원하려면 **시스템 기본값** 패널의 콘텐츠를 **사용자 기본 설정** 패널로 복사합니다.

     1. 오른쪽 상단 모서리에서 **사용자 설정 저장** 아이콘(![\[Icon of a cloud with an arrow pointing upward, representing cloud upload functionality.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/icons/Notebook_save.png))을 선택합니다. 편집기를 닫으면 변경 내용이 저장되지 않습니다.

# 노트북 작업 워크플로
<a name="create-notebook-auto-run-dag"></a>

노트북 작업은 사용자 지정 코드를 실행하므로 하나 이상의 노트북 작업 단계가 포함된 파이프라인을 만들 수 있습니다. ML 워크플로에는 데이터를 사전 처리하는 처리 단계, 모델을 빌드하는 훈련 단계, 모델 평가 단계 등 여러 단계가 포함되는 경우가 많습니다. 노트북 작업은 사전 처리를 다루는 데 사용할 수 있습니다. 데이터 변환 또는 수집을 수행하는 노트북, 데이터 정리를 수행하는 EMR 단계, 훈련 단계를 시작하기 전에 입력의 특성화를 수행하는 다른 노트북 작업이 있을 수 있습니다. 노트북 작업에는 파이프라인의 이전 단계 또는 입력 노트북의 파라미터로 사용자 지정 정보가 필요할 수 있습니다. 환경 변수와 파라미터를 노트북에 전달하고 이전 단계에서 정보를 검색하는 방법을 보여주는 예시는 [노트북 단계와 정보 주고받기](create-notebook-auto-run-dag-seq.md) 섹션을 참조하세요.

또 다른 사용 사례에서는 노트북 작업 중 하나가 노트북 실행 중에 다른 노트북을 직접 호출하여 일부 작업을 수행하도록 할 수 있습니다. 이 시나리오에서는 이러한 소싱된 노트북을 노트북 작업 단계의 종속 항목으로 지정해야 합니다. 다른 노트북을 직접 호출하는 방법에 대한 자세한 내용은 [노트북 작업에서 다른 노트북 호출](create-notebook-auto-run-dag-call.md) 섹션을 참조하세요.

SageMaker AI Python SDK를 사용하여 노트북 작업을 예약하는 방법을 보여주는 샘플 노트북을 보려면 [노트북 작업 샘플 예시](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-pipelines/notebook-job-step)를 참조하세요.

# 노트북 단계와 정보 주고받기
<a name="create-notebook-auto-run-dag-seq"></a>

다음 섹션에서는 정보를 노트북에 환경 변수 및 파라미터로 전달하는 방법을 설명합니다.

## 환경 변수 전달
<a name="create-notebook-auto-run-dag-seq-env-var"></a>

다음 예시와 같이 환경 변수를 `NotebookJobStep`의 `environment_variable` 인수에 딕셔너리로 전달합니다.

```
environment_variables = {"RATE": 0.0001, "BATCH_SIZE": 1000}

notebook_job_step = NotebookJobStep(
    ...
    environment_variables=environment_variables,
    ...
)
```

다음 예시와 같이 `os.getenv()`를 사용하여 노트북의 환경 변수를 사용할 수 있습니다.

```
# inside your notebook
import os
print(f"ParentNotebook: env_key={os.getenv('env_key')}")
```

## 파라미터 전달
<a name="create-notebook-auto-run-dag-seq-param"></a>

`NotebookJobStep` 인스턴스의 첫 번째 노트북 작업 단계에 파라미터를 전달할 때 Jupyter Notebook의 셀에 태그를 지정하여 새 파라미터 또는 파라미터 재정의를 적용할 위치를 표시할 수도 있습니다. Jupyter Notebook에서 셀에 태그를 지정하는 방법에 대한 지침은 [노트북 파라미터화](notebook-auto-run-troubleshoot-override.md) 섹션을 참조하세요.

다음 코드 조각과 같이 노트북 작업 단계의 `parameters` 파라미터를 통해 파라미터를 전달합니다.

```
notebook_job_parameters = {
    "company": "Amazon",
}

notebook_job_step = NotebookJobStep(
    ...
    parameters=notebook_job_parameters,
    ...
)
```

입력 노트북 내에서 파라미터는 `parameters` 태그가 지정된 셀 뒤에 또는 태그가 지정된 셀이 없는 경우 노트북의 시작 부분에 적용됩니다.

```
# this cell is in your input notebook and is tagged with 'parameters'
# your parameters and parameter overrides are applied after this cell
company='default'
```

```
# in this cell, your parameters are applied
# prints "company is Amazon"
print(f'company is {company}')
```

## 이전 단계에서 정보 검색
<a name="create-notebook-auto-run-dag-seq-interstep"></a>

다음 논의에서는 이전 단계에서 데이터를 추출하여 노트북 작업 단계로 전달하는 방법을 설명합니다.

**`properties` 속성 사용**

이전 단계의 `properties` 속성과 함께 다음 속성을 사용할 수 있습니다.
+ `ComputingJobName` - 훈련 작업 이름
+ `ComputingJobStatus` - 훈련 작업 상태
+ `NotebookJobInputLocation` - 입력 Amazon S3 위치
+ `NotebookJobOutputLocationPrefix` - 훈련 작업 출력의 경로. 구체적으로 `{NotebookJobOutputLocationPrefix}/{training-job-name}/output/output.tar.gz`. 출력 포함
+ `InputNotebookName` - 입력 노트북 파일 이름
+ `OutputNotebookName` - 출력 노트북 파일 이름(작업이 실패할 경우 훈련 작업 출력 폴더에 없을 수 있음)

다음 코드 조각은 속성 속성에서 파라미터를 추출하는 방법을 보여줍니다.

```
notebook_job_step2 = NotebookJobStep(
    ....
    parameters={
        "step1_JobName": notebook_job_step1.properties.ComputingJobName,
        "step1_JobStatus": notebook_job_step1.properties.ComputingJobStatus,
        "step1_NotebookJobInput": notebook_job_step1.properties.NotebookJobInputLocation,
        "step1_NotebookJobOutput": notebook_job_step1.properties.NotebookJobOutputLocationPrefix,
    }
```

**JsonGet 사용**

앞서 언급한 파라미터 이외의 파라미터를 전달하고 이전 단계의 JSON 출력이 Amazon S3에 있는 경우 `JsonGet`을 사용합니다. `JsonGet`은 Amazon S3의 JSON 파일에서 데이터를 직접 추출할 수 있는 일반적인 메커니즘입니다.

`JsonGet`을 사용하여 Amazon S3에서 JSON 파일을 추출하려면 다음 단계를 완료하세요.

1. Amazon S3에 JSON 파일을 업로드합니다. 데이터가 이미 Amazon S3에 업로드된 경우 이 단계를 건너뜁니다. 다음 예시에서는 Amazon S3에 JSON 파일을 업로드하는 방법을 보여줍니다.

   ```
   import json
   from sagemaker.s3 import S3Uploader
   
   output = {
       "key1": "value1", 
       "key2": [0,5,10]
   }
               
   json_output = json.dumps(output)
   
   with open("notebook_job_params.json", "w") as file:
       file.write(json_output)
   
   S3Uploader.upload(
       local_path="notebook_job_params.json",
       desired_s3_uri="s3://path/to/bucket"
   )
   ```

1. 추출하려는 값에 대한 S3 URI 및 JSON 경로를 제공합니다. 다음 예시에서 `JsonGet`은 키 `key2`(`10`)와 연결된 값의 인덱스 2를 나타내는 객체를 반환합니다.

   ```
   NotebookJobStep(
       ....
       parameters={
           # the key job_key1 returns an object representing the value 10
           "job_key1": JsonGet(
               s3_uri=Join(on="/", values=["s3:/", ..]),
               json_path="key2[2]" # value to reference in that json file
           ), 
           "job_key2": "Amazon" 
       }
   )
   ```

# 노트북 작업에서 다른 노트북 호출
<a name="create-notebook-auto-run-dag-call"></a>

한 노트북 작업이 다른 노트북을 호출하는 파이프라인을 설정할 수 있습니다. 다음은 노트북이 다른 두 노트북을 호출하는 노트북 작업 단계가 있는 파이프라인의 예를 설정합니다. 입력 노트북에는 다음 줄이 포함되어 있습니다.

```
%run 'subfolder/notebook_to_call_in_subfolder.ipynb'
%run 'notebook_to_call.ipynb'
```

다음 코드 조각과 같이 `additional_dependencies`를 사용하여 이러한 노트북을 `NotebookJobStep` 인스턴스에 전달합니다. `additional_dependencies`의 노트북에 제공된 경로는 루트 위치에서 제공됩니다. 종속 항목에 대한 경로를 올바르게 제공할 수 있도록 SageMaker AI가 종속 파일 및 폴더를 Amazon S3에 업로드하는 방법에 대한 자세한 내용은 [NotebookJobStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.notebook_job_step.NotebookJobStep)에서 `additional_dependencies`의 설명을 참조하세요.

```
input_notebook = "inputs/input_notebook.ipynb"
simple_notebook_path = "inputs/notebook_to_call.ipynb"
folder_with_sub_notebook = "inputs/subfolder"

notebook_job_step = NotebookJobStep(
    image_uri=image-uri,
    kernel_name=kernel-name,
    role=role-name,
    input_notebook=input_notebook,
    additional_dependencies=[simple_notebook_path, folder_with_sub_notebook],
    tags=tags,
)
```

# 사용 가능한 옵션
<a name="create-notebook-auto-execution-advanced"></a>

다음 표에는 Studio, 로컬 Jupyter 환경, SageMaker Python SDK 중 무엇을 사용하여 에서 노트북 작업을 실행하든 관계없이 노트북 작업을 사용자 지정하는 데 사용할 수 있는 모든 옵션이 표시됩니다. 표에는 사용자 지정 옵션 유형, 설명, 옵션 사용 방법에 대한 추가 지침, Studio의 옵션 필드 이름(사용 가능한 경우) 및 SageMaker Python SDK의 노트북 작업 단계 파라미터 이름(사용 가능한 경우)이 포함되어 있습니다.

일부 옵션의 경우 노트북 작업을 설정할 때마다 사용자 지정 기본값을 지정할 필요가 없도록 사용자 지정 기본값을 미리 설정할 수도 있습니다. Studio의 경우 이러한 옵션은 **역할**, **입력 폴더**, **출력 폴더** 및 **KMS 키 ID**이며 다음 표에 명시되어 있습니다. 이러한 옵션에 대한 사용자 지정 기본값을 미리 설정한 경우 노트북 작업을 만들 때 **작업 만들기** 양식에 이러한 필드가 미리 채워집니다. Studio 및 로컬 Jupyter 환경에서 사용자 지정 기본값을 만드는 방법에 대한 자세한 내용은 [로컬 노트북 기본 옵션 설정](create-notebook-auto-execution-advanced-default.md) 섹션을 참조하세요.

또한 SageMaker SDK는 `NotebookJobStep`을 만들 때 이러한 파라미터를 지정할 필요가 없도록 지능형 기본값을 설정하는 옵션을 제공합니다. 이러한 파라미터는 `role`, `s3_root_uri`, `s3_kms_key`, `volume_kms_key`, `subnets`, `security_group_ids`이며 다음 표에 명시되어 있습니다. 지능형 기본값을 설정하는 방법에 대한 자세한 내용은 [기본 옵션 설정](create-notebook-auto-run-sdk.md#create-notebook-auto-run-intdefaults) 섹션을 참조하세요.


| 사용자 지정 옵션 | 설명 | 스튜디오별 가이드라인 | 로컬 Jupyter 환경 가이드라인 | SageMaker Python SDK 지침 | 
| --- | --- | --- | --- | --- | 
| 작업 이름 | 노트북 작업 대시보드에 표시될 작업 이름입니다. | 필드 작업 이름. | Studio와 동일합니다. | 파라미터 notebook\$1job\$1name. 기본값은 None입니다. | 
| 이미지 | 선택한 컴퓨팅 유형에서 노트북을 비대화형 방식으로 실행하는 데 사용되는 컨테이너 이미지입니다. | 필드 이미지. 이 필드의 기본값은 노트북의 현재 이미지입니다. 필요한 경우 이 필드를 기본값에서 사용자 지정 값으로 변경하세요. Studio에서 이 값을 추론할 수 없는 경우 양식에 유효성 검사 오류가 표시되어 값을 지정해야 합니다. 이 이미지는 [나만의 사용자 지정 이미지](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html)나 사용 가능한 Amazon SageMaker 이미지일 수 있습니다. 노트북 스케줄러가 지원하는 사용 가능한 SageMaker 이미지 목록은 [Studio Classic 노트북에 사용할 수 있는 Amazon SageMaker 이미지](notebooks-available-images.md)섹션을 참조하세요. | 필드 이미지. 이 필드에는 선택한 컴퓨팅 유형에서 제공된 노트북을 실행할 수 있는 도커 이미지의 ECR URI가 필요합니다. 기본적으로 스케줄러 확장은 Python 2.0 기반의 사전 구축된 SageMaker AI Docker 이미지를 사용합니다. boto3 AWS CLI및 Python 3 커널이 포함된 DockerHub의 공식 Python 3.8 이미지입니다. 노트북 사용자 지정 이미지 사양을 충족하는 모든 ECR URI를 제공할 수도 있습니다. 자세한 내용은 [Amazon SageMaker Studio Classic의 사용자 지정 SageMaker 이미지 사양](studio-byoi-specs.md)섹션을 참조하세요. 이 이미지에는 노트북 실행에 필요한 모든 커널과 라이브러리가 있어야 합니다. | 필수 여부. 파라미터 image\$1uri. ECR에서 Docker 이미지의 URI 위치. 특정 SageMaker Distribution 이미지 또는 해당 이미지를 기반으로 한 사용자 지정 이미지 또는 추가 요구 사항을 충족하는 노트북 작업 종속성이 사전 설치된 자체 이미지를 사용할 수 있습니다. 자세한 내용은 [SageMaker AI Python SDK 노트북 작업에 대한 이미지 제약 조건](notebook-auto-run-constraints.md#notebook-auto-run-constraints-image-sdk)을 참조하세요. | 
| 인스턴스 유형 | 노트북 작업을 실행하는 데 사용할 EC2 인스턴스 유형. 노트북 작업은 SageMaker 훈련 작업을 컴퓨팅 계층으로 사용하므로 지정된 인스턴스 유형은 SageMaker 훈련 지원 인스턴스 유형이어야 합니다. | 필드 컴퓨팅 유형. 기본값은 ml.m5.large입니다. | Studio와 동일합니다. | 파라미터 instance\$1type. 기본값은 ml.m5.large입니다. | 
| 커널 | 노트북 작업을 실행하는 데 사용되는 Jupyter 커널입니다. | 필드 커널. 이 필드의 기본값은 노트북의 현재 커널입니다. 필요한 경우 이 필드를 기본값에서 사용자 지정 값으로 변경하세요. Studio에서 이 값을 추론할 수 없는 경우 양식에 유효성 검사 오류가 표시되어 값을 지정해야 합니다. | 필드 커널. 이 커널은 이미지에 나타나야 하며 Jupyter 커널 사양을 따라야 합니다. 이 필드는 기본 Python 2.0 SageMaker 이미지에 있는 Python3 커널을 기본값으로 사용합니다. 필요한 경우 이 필드를 사용자 지정 값으로 변경하세요. | 필수 여부. 파라미터 kernel\$1name. 이 커널은 이미지에 나타나야 하며 Jupyter 커널 사양을 따라야 합니다. 이미지의 커널 식별자를 보려면 (LINK) 페이지를 참조하세요. | 
| SageMaker AI 세션 | SageMaker AI 서비스 직접 호출이 위임되는 기본 SageMaker AI 세션 | 해당 사항 없음 | 해당 사항 없음 | 파라미터 sagemaker\$1session. 지정되지 않은 경우 기본 구성 체인을 사용하여 만들어집니다. | 
| 역할 ARN | 노트북 작업에 사용되는 역할의 Amazon 리소스 이름(ARN)입니다. | 필드 역할 ARN. 이 필드의 기본값은 Studio 실행 역할입니다. 필요한 경우 이 필드를 사용자 지정 값으로 변경하세요. Studio에서 이 값을 추론할 수 없는 경우 **역할 ARN** 필드는 비어 있습니다. 이 경우 사용하려는 ARN을 삽입하세요.  | 필드 역할 ARN. 이 필드의 기본값은 SagemakerJupyterScheduler접두사가 붙은 모든 역할입니다. 접두사가 붙은 역할이 여러 개 있는 경우 확장 프로그램은 하나를 선택합니다. 필요한 경우 이 필드를 사용자 지정 값으로 변경하세요. 이 필드에는 새 작업 정의를 만들 때마다 미리 채워지는 사용자 기본값을 설정할 수 있습니다. 자세한 내용은 [로컬 노트북 기본 옵션 설정](create-notebook-auto-execution-advanced-default.md)을 참조하세요. | 파라미터 role. SDK가 SageMaker 노트북 또는 SageMaker Studio 노트북에서 실행 중인 경우 SageMaker AI 기본 IAM 역할로 기본 설정됩니다. 그렇지 않으면 ValueError가 발생합니다. 지능형 기본값을 허용합니다. | 
| 입력 노트북 | 실행을 예약하는 노트북의 이름. | 필수 여부. 필드 입력 파일. | Studio와 동일합니다. | 필수. 파라미터 input\$1notebook. | 
| 입력 폴더 | 입력이 포함된 폴더입니다. 입력 노트북과 선택적 시작 또는 초기화 스크립트를 포함한 작업 입력이 이 폴더에 저장됩니다. | 필드 입력 폴더. 폴더를 제공하지 않으면 스케줄러가 입력에 대한 기본 Amazon S3 버킷을 생성합니다. | Studio와 동일합니다. 이 필드에는 새 작업 정의를 만들 때마다 미리 채워지는 사용자 기본값을 설정할 수 있습니다. 자세한 내용은 [로컬 노트북 기본 옵션 설정](create-notebook-auto-execution-advanced-default.md)을 참조하세요. | 해당 없음. 입력 폴더는 파라미터 s3\$1root\$1uri에 지정된 위치 안에 배치됩니다. | 
| 출력 폴더 | 출력이 포함된 폴더입니다. 출력 노트북과 로그를 포함한 작업 출력이 이 폴더에 저장됩니다. | 필드 출력 폴더. 폴더를 지정하지 않으면 스케줄러가 출력에 대한 기본 Amazon S3 버킷을 생성합니다. | Studio와 동일합니다. 이 필드에는 새 작업 정의를 만들 때마다 미리 채워지는 사용자 기본값을 설정할 수 있습니다. 자세한 내용은 [로컬 노트북 기본 옵션 설정](create-notebook-auto-execution-advanced-default.md)을 참조하세요. | 해당 없음. 출력 폴더는 파라미터 s3\$1root\$1uri에 지정된 위치 내에 배치됩니다. | 
| 파라미터 | 노트북 작업에 전달할 변수 및 값의 딕셔너리. | 필드 파라미터. 파라미터를 수락하려면 [노트북을 파라미터화](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-auto-run-troubleshoot-override.html)해야 합니다. | Studio와 동일합니다. | 파라미터 parameters. 파라미터를 수락하려면 [노트북을 파라미터화](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-auto-run-troubleshoot-override.html)해야 합니다. | 
| 추가 (파일 또는 폴더) 종속성 | 노트북 작업이 s3 스테이징된 폴더에 업로드하는 파일 또는 폴더 종속성 목록. | 지원되지 않음. | 지원되지 않음. | 파라미터 additional\$1dependencies. 노트북 작업은 이러한 종속성을 S3 스테이징된 폴더에 업로드하여 실행 중에 사용할 수 있도록 합니다. | 
| S3 루트 URI | 입력이 포함된 폴더입니다. 입력 노트북과 선택적 시작 또는 초기화 스크립트를 포함한 작업 입력이 이 폴더에 저장됩니다. 이 S3 버킷은 노트북 작업을 실행하는 데 사용하는 것과 동일한 AWS 계정 에 있어야 합니다. | 해당 없음. 입력 폴더 및 출력 폴더를 사용합니다. | Studio와 동일합니다. | 파라미터 s3\$1root\$1uri. 기본값은 기본 S3 버킷입니다. 지능형 기본값을 허용합니다. | 
| 환경 변수 | 재정의하려는 기존 환경 변수 또는 노트북에 도입하여 사용하려는 새 환경 변수입니다. | 필드 환경 변수. | Studio와 동일합니다. | 파라미터 environment\$1variables. 기본값은 None입니다. | 
| Tags | 작업에 연결할 태그의 목록. | 해당 사항 없음 | 해당 사항 없음 | 파라미터 tags. 기본값은 None입니다. 태그는 Studio UI가 파이프라인에서 만든 작업을 캡처하고 표시하는 방법을 제어합니다. 자세한 내용은 [Studio UI 대시보드에서 노트북 작업 보기](create-notebook-auto-run-sdk.md#create-notebook-auto-run-dash)을 참조하세요. | 
| 시작 스크립트 | 노트북 시작 메뉴에 미리 로드된 스크립트로, 노트북을 실행하기 전에 실행하도록 선택할 수 있습니다. | 필드 시작 스크립트. 시작 시 이미지에서 실행되는 LCC(수명 주기 구성) 스크립트를 선택합니다. 시작 스크립트는 Studio 환경 외부의 쉘에서 실행됩니다. 따라서 이 스크립트는 Studio 로컬 스토리지, 환경 변수 또는 앱 메타데이터(`/opt/ml/metadata` 내)에 종속될 수 없습니다. 또한 시작 스크립트와 초기화 스크립트를 사용하는 경우 시작 스크립트가 먼저 실행됩니다.   | 지원되지 않음. | 지원되지 않음. | 
| 초기화 스크립트 | 노트북을 시작할 때 실행할 수 있는 로컬 스크립트 경로입니다. | 필드 초기화 스크립트. 로컬 스크립트 또는 LCC(수명 주기 구성) 스크립트가 있는 EFS 파일 경로를 입력합니다. 시작 스크립트와 초기화 스크립트를 사용하는 경우 시작 스크립트가 먼저 실행됩니다. 초기화 스크립트는 노트북 작업과 동일한 쉘에서 제공됩니다. 앞서 설명한 시작 스크립트에는 해당되지 않습니다. 또한 시작 스크립트와 초기화 스크립트를 사용하는 경우 시작 스크립트가 먼저 실행됩니다.   | 필드 초기화 스크립트. 로컬 스크립트 또는 LCC(수명 주기 구성) 스크립트가 있는 로컬 파일 경로를 입력합니다. | 파라미터 initialization\$1script. 기본값은 None입니다. | 
| 최대 재시도 횟수 | Studio가 실패한 작업 실행을 다시 실행하려고 시도하는 횟수입니다. | 필드 최대 재시도 횟수. 기본값은 1입니다. | Studio와 동일합니다. | 파라미터 max\$1retry\$1attempts. 기본값은 1입니다. | 
| 최대 실행 시간(초) | 중지되기 전까지 노트북 작업을 실행할 수 있는 최대 시간(초)입니다. 최대 실행 시간과 최대 재시도 횟수를 모두 구성한 경우 실행 시간이 각 재시도에 적용됩니다. 이 시간에 작업이 완료되지 않으면 Failed상태로 설정됩니다. | 필드 최대 실행 시간(초). 기본값은 172800 seconds (2 days)입니다. | Studio와 동일합니다. | 파라미터 max\$1runtime\$1in\$1seconds. 기본값은 172800 seconds (2 days)입니다. | 
| 재시도 정책 | 실패 시 취해야 할 작업을 관리하는 재시도 정책 목록입니다. | 지원되지 않음. | 지원되지 않음. | 파라미터 retry\$1policies. 기본값은 None입니다. | 
| Step 또는 StepCollection 종속성 추가 | 작업이 종속되는 Step 또는 StepCollection 이름 또는 인스턴스의 목록. | 지원되지 않음. | 지원되지 않음. | 파라미터 depends\$1on. 기본값은 None입니다. 이를 사용하여 파이프라인 그래프의 단계 간에 명시적 종속성을 정의합니다. | 
| 볼륨 크기 | 훈련 중에 입력 및 출력 데이터를 저장하기 위한 스토리지 볼륨의 GB 단위 크기. | 지원되지 않음. | 지원되지 않음. | 파라미터 volume\$1size. 기본값은 30GB입니다. | 
| 컨테이너 간 트래픽 암호화 | 훈련 컨테이너 간의 트래픽이 훈련 작업에 대해 암호화되는지를 지정하는 플래그입니다. | 해당 없음. 기본적으로 활성화됩니다. | 해당 없음. 기본적으로 활성화됩니다. | 파라미터 encrypt\$1inter\$1container\$1traffic. 기본값은 True입니다. | 
| 작업 구성 암호화 | 노트북 작업 출력, 작업 인스턴스 볼륨 또는 둘 다를 암호화하려는 표시기입니다. | 필드 작업 구성 암호화. 암호화를 선택하려면 이 확인란을 선택하세요. 선택하지 않으면 작업 출력이 계정의 기본 KMS 키로 암호화되며 작업 인스턴스 볼륨은 암호화되지 않습니다. | Studio와 동일합니다. | 지원되지 않음. | 
| 출력 암호화 KMS 키 | 노트북 작업 출력에 사용되는 암호화 키를 사용자 지정하려는 경우 사용할 KMS 키입니다. 이 필드는 작업 구성 암호화를 선택한 경우에만 적용됩니다. | 필드 출력 암호화 KMS 키. 이 필드를 지정하지 않으면 노트북 작업 출력이 기본 Amazon S3 KMS 키를 사용하여 SSE-KMS로 암호화됩니다. 또한 Amazon S3 버킷을 직접 생성하고 암호화를 사용하는 경우 암호화 방법이 보존됩니다. | Studio와 동일합니다. 이 필드에는 새 작업 정의를 만들 때마다 미리 채워지는 사용자 기본값을 설정할 수 있습니다. 자세한 내용은 [로컬 노트북 기본 옵션 설정](create-notebook-auto-execution-advanced-default.md)을 참조하세요. | 파라미터 s3\$1kms\$1key. 기본값은 None입니다. 지능형 기본값을 허용합니다. | 
| 작업 인스턴스 볼륨 암호화 KMS 키 | 작업 인스턴스 볼륨을 암호화하려는 경우 사용할 KMS 키입니다. 이 필드는 작업 구성 암호화를 선택한 경우에만 적용됩니다. | 필드 작업 인스턴스 볼륨 암호화 KMS 키. | 필드 작업 인스턴스 볼륨 암호화 KMS 키. 이 필드에는 새 작업 정의를 만들 때마다 미리 채워지는 사용자 기본값을 설정할 수 있습니다. 자세한 내용은 [로컬 노트북 기본 옵션 설정](create-notebook-auto-execution-advanced-default.md)을 참조하세요. | 파라미터 volume\$1kms\$1key. 기본값은 None입니다. 지능형 기본값을 허용합니다. | 
| 이 작업을 실행을 위해 가상 사설 클라우드 사용(VPC 사용자용) | 가상 사설 클라우드(VPC)에서 이 작업을 실행하려는 표시기입니다. 보안을 강화하려면 프라이빗 VPC를 사용하는 것이 좋습니다. | 필드 이 작업을 실행을 위해 가상 프라이빗 클라우드 사용. VPC를 사용하려면 이 확인란을 선택하세요. 최소한 다음 VPC 엔드포인트를 생성하여 노트북 작업이 해당 AWS 리소스에 비공개로 연결할 수 있도록 합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/create-notebook-auto-execution-advanced.html)VPC를 사용하기로 선택한 경우 다음 옵션에서 하나 이상의 프라이빗 서브넷과 하나 이상의 보안 그룹을 지정해야 합니다. 프라이빗 서브넷을 사용하지 않는 경우 다른 구성 옵션을 고려해야 합니다. 자세한 내용은 [제약 조건 및 고려 사항](notebook-auto-run-constraints.md)에서 지원되지 않는 퍼블릭 VPC 서브넷을 참조하세요. | Studio와 동일합니다. | 해당 사항 없음 | 
| 서브넷(VPC 사용자용) | 사용자 서브넷입니다. 이 필드는 최소 1개에서 최대 5개를 포함해야 하며 제공하는 모든 서브넷은 사설이어야 합니다. 자세한 내용은 [제약 조건 및 고려 사항](notebook-auto-run-constraints.md)에서 지원되지 않는 퍼블릭 VPC 서브넷을 참조하세요. | 필드 서브넷. 이 필드는 기본적으로 Studio 도메인과 연결된 서브넷으로 설정되지만 필요한 경우 이 필드를 변경할 수 있습니다. | 필드 서브넷. 스케줄러는 서브넷을 감지할 수 없으므로 VPC에 구성한 서브넷을 입력해야 합니다. | 파라미터 subnets. 기본값은 None입니다. 지능형 기본값을 허용합니다. | 
| 보안 그룹(VPC 사용자용) | 사용자 보안 그룹입니다. 이 필드는 최소 1개, 최대 15개를 포함해야 합니다. 자세한 내용은 [제약 조건 및 고려 사항](notebook-auto-run-constraints.md)에서 지원되지 않는 퍼블릭 VPC 서브넷을 참조하세요. | 필드 보안 그룹. 이 필드는 기본적으로 도메인 VPC와 연결된 보안 그룹을 사용하지만 필요한 경우 이 필드를 변경할 수 있습니다. | 필드 보안 그룹. 스케줄러는 보안 그룹을 탐지할 수 없으므로 VPC에 구성한 보안 그룹을 입력해야 합니다. | 파라미터 security\$1group\$1ids. 기본값은 None입니다. 지능형 기본값을 허용합니다. | 
| 이름 | 노트북 작업 단계의 이름. | 해당 사항 없음 | 해당 사항 없음 | 파라미터 name. 지정되지 않은 경우 노트북 파일 이름에서 파생됩니다. | 
| 표시 명칭 | 파이프라인 실행 목록에 표시될 작업 이름. | 해당 사항 없음 | 해당 사항 없음 | 파라미터 display\$1name. 기본값은 None입니다. | 
| 설명 | 작업에 대한 설명. | 해당 사항 없음 | 해당 사항 없음 | 파라미터 description. | 

# 노트북 파라미터화
<a name="notebook-auto-run-troubleshoot-override"></a>

새 파라미터 또는 파라미터 재정의를 예약된 노트북 작업에 전달하려면 셀 이후에 새 파라미터 값을 적용하려는 경우 Jupyter Notebook을 선택적으로 수정할 수 있습니다. 파라미터를 전달하면 노트북 작업 실행기는 Papermill에서 적용하는 방법론을 사용합니다. 노트북 작업 실행기는 `parameters` 태그가 지정된 Jupyter 셀을 검색하고 이 셀 바로 뒤에 새 파라미터 또는 파라미터 재정의를 적용합니다. `parameters` 태그가 지정된 셀이 없는 경우 노트북의 시작 부분에 파라미터가 적용됩니다. `parameters` 태그가 지정된 셀이 두 개 이상인 경우 `parameters` 태그가 지정된 첫 번째 셀 다음에 파라미터가 적용됩니다.

노트북의 셀에 `parameters`태그를 지정하려면 다음 단계를 완료하세요.

1. 파라미터화할 셀을 선택합니다.

1. 오른쪽 사이드바에서 **속성 검사기** 아이콘(![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/studio/icons/gears.png))을 선택합니다.

1. **태그 추가** 상자에 **parameters**를 입력합니다.

1. **\$1** 기호를 선택합니다.

1. `parameters` 태그가 **셀 태그** 아래에 체크 표시와 함께 나타납니다.이는 태그가 셀에 적용되었음을 의미합니다.

# 노트북에서 Amazon EMR 클러스터에 연결
<a name="scheduled-notebook-connect-emr"></a>

Studio의 Jupyter notebook에서 Amazon EMR 클러스터에 연결하는 경우 추가 설정을 수행해야 할 수 있습니다. 특히 다음 논의에서는 두 가지 문제를 다룹니다.
+ **Amazon EMR 연결 명령에 파라미터 전달** SparkMagic 커널에서는 Papermill이 파라미터를 전달하는 방식과 SparkMagic이 파라미터를 수신하는 방식이 다르기 때문에 Amazon EMR 연결 명령에 전달하는 파라미터가 예상대로 작동하지 않을 수 있습니다. 이 제한을 해결하기 위한 차선책은 파라미터를 환경 변수로 전달하는 것입니다. 이 문제와 차선책에 대한 자세한 내용은 [EMR 연결 명령에 파라미터 전달](#scheduled-notebook-connect-emr-pass-param)섹션을 참조하세요.
+ **사용자 자격 증명을 Kerberos, LDAP 또는 HTTP 기본 인증 Amazon EMR 클러스터에 전달** 대화형 모드에서 Studio는 로그인 자격 증명을 입력할 수 있는 팝업 양식을 통해 자격 증명을 요청합니다. 예약된 비대화형 노트북에서는 AWS Secrets Manager을 통해 전달해야 합니다. 예약된 노트북 작업 AWS Secrets Manager 에서를 사용하는 방법에 대한 자세한 내용은 섹션을 참조하세요[사용자 자격 증명을 Kerberos, LDAP 또는 HTTP 기본 인증 Amazon EMR 클러스터에 전달](#scheduled-notebook-connect-emr-credentials).

## EMR 연결 명령에 파라미터 전달
<a name="scheduled-notebook-connect-emr-pass-param"></a>

SparkMagic PySpark 및 Spark 커널이 포함된 이미지를 사용하고 있고 EMR 연결 명령을 파라미터화하려면, **추가 옵션** 드롭다운 메뉴의 작업 생성 양식에서 파라미터 필드 대신 **환경 변수** 필드에 파라미터를 입력하세요. Jupyter notebook의 EMR 연결 명령이 이러한 파라미터를 환경 변수로 전달해야 합니다. 예를 들어 작업을 생성할 때 `cluster-id`를 환경 변수로 전달한다고 가정해 보겠습니다. EMR 연결 명령은 다음 예시와 같은 형식이어야 합니다.

```
%%local
import os
```

```
%sm_analytics emr connect —cluster-id {os.getenv('cluster_id')} --auth-type None
```

SparkMagic과 Papermill의 요구 사항을 충족하려면 이 차선책이 필요합니다. 배경 컨텍스트의 경우 SparkMagic 커널은 사용자가 정의한 모든 로컬 변수와 함께 `%%local`매직 명령이 함께 제공될 것으로 예상합니다. 하지만 Papermill은 재정의와 함께 `%%local`매직 명령을 전달하지 않습니다. 이 Papermill 제한을 해결하려면 **환경 변수** 필드에 파라미터를 환경 변수로 입력해야 합니다.

## 사용자 자격 증명을 Kerberos, LDAP 또는 HTTP 기본 인증 Amazon EMR 클러스터에 전달
<a name="scheduled-notebook-connect-emr-credentials"></a>

Kerberos, LDAP 또는 HTTP 기본 인증 인증을 사용하는 Amazon EMR 클러스터에 대한 보안 연결을 설정하려면를 사용하여 연결 명령 AWS Secrets Manager 에 사용자 자격 증명을 전달합니다. Secrets Manager 보안 암호를 생성하는 방법에 대한 자세한 내용은 [AWS Secrets Manager 보안 암호 생성](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)을 참조하세요. 보안 암호에는 사용자 이름과 암호가 포함되어야 합니다. 다음 예시와 같이 `--secrets`인수와 함께 암호를 전달합니다.

```
%sm_analytics emr connect --cluster-id j_abcde12345 
    --auth Kerberos 
    --secret aws_secret_id_123
```

관리자는 특수 태그를 기반으로 액세스를 할당하는 ABAC(속성 기반 액세스 제어) 방법을 사용하여 유연한 액세스 정책을 설정할 수 있습니다. 유연한 액세스를 설정하여 계정의 모든 사용자에 대한 단일 암호 또는 각 사용자에 대한 암호를 만들 수 있습니다. 다음 코드 샘플은 이러한 시나리오를 보여줍니다.

**계정 내 모든 사용자를 위한 단일 비밀번호를 생성합니다.**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"
            },
            "Action": "secretsmanager:GetSecretValue",
            "Resource": [
                "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes123-1a2b3c",
                "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes456-4d5e6f",
                "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes789-7g8h9i"
            ]
        }
    ]
}
```

------

**각 사용자마다 다른 비밀번호를 생성합니다.**

다음 예시와 같이 `PrincipleTag`태그를 사용하여 사용자별로 다른 보안 암호를 생성할 수 있습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"
            },
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/user-identity": "${aws:PrincipalTag/user-identity}"
                }
            },
            "Action": "secretsmanager:GetSecretValue",
            "Resource": [
                "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes123-1a2b3c",
                "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes456-4d5e6f",
                "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes789-7g8h9i"
            ]
        }
    ]
}
```

------

# Amazon SageMaker Studio의 노트북 작업 세부 정보
<a name="track-jobs-jobdefs"></a>

SageMaker 노트북 작업 대시보드는 예약한 작업 정의를 구성하고 작업 정의에서 실행되는 실제 작업을 추적하는 데 도움이 됩니다. 노트북 작업을 예약할 때 이해해야 할 두 가지 중요한 개념은 작업 정의와 작업 실행입니다.**** 작업 정의는 특정 노트북을 실행하도록 설정하는 일정입니다. 예를 들어, 수요일마다 노트북 XYZ.iPynb를 실행하는 작업 정의를 생성할 수 있습니다. 이 작업 정의는 이번 주 수요일, 다음 주 수요일, 그 다음 수요일 등에 발생하는 실제 작업 실행을 시작합니다.

**참고**  
SageMaker Python SDK 노트북 작업 단계는 작업 정의를 만들지 않습니다. 하지만 노트북 작업 대시보드에서 작업을 볼 수 있습니다. JupyterLab 환경에서 작업을 예약하는 경우 작업 및 작업 정의를 모두 사용할 수 있습니다.

인터페이스에는 기존 작업 정의와 작업 실행을 추적하는 데 도움이 되는 두 개의 기본 탭이 있습니다.
+ **노트북 작업** 탭: 이 탭에는 온디맨드 작업 및 작업 정의에서 실행한 모든 작업 목록이 표시됩니다. 이 탭에서 단일 작업 실행의 세부 정보에 직접 액세스할 수 있습니다. 예를 들어, 두 번의 수요일 전에 발생한 단일 작업 실행을 볼 수 있습니다.
+ **노트북 작업 정의** 탭: 이 탭에는 모든 작업 정의 목록이 표시됩니다. 이 탭에서 단일 작업 정의의 세부 정보에 직접 액세스할 수 있습니다. 예를 들어 매주 수요일에 XYZ.iPynb를 실행하기 위해 만든 일정을 볼 수 있습니다.

**노트북 작업** 탭에 대한 자세한 내용은 [노트북 작업 보기](view-notebook-jobs.md)섹션을 참조하세요.

**노트북 작업 정의** 탭에 대한 자세한 내용은 [노트북 작업 정의 보기](view-def-detail-notebook-auto-run.md)섹션을 참조하세요.

# 노트북 작업 보기
<a name="view-notebook-jobs"></a>

**참고**  
Studio UI에서 노트북 작업을 예약한 경우 노트북 작업을 자동으로 볼 수 있습니다. SageMaker Python SDK를 사용하여 노트북 작업을 예약하는 경우 노트북 작업 단계를 만들 때 추가 태그를 제공해야 합니다. 자세한 내용은 [Studio UI 대시보드에서 노트북 작업 보기](create-notebook-auto-run-sdk.md#create-notebook-auto-run-dash)을 참조하세요.

다음 주제에서는 **노트북 작업** 탭과 단일 노트북 작업의 세부 정보를 보는 방법에 대한 정보를 제공합니다. **노트북 작업** 탭(Studio 도구 모음에서 **노트북 작업 만들기** 아이콘(![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/icons/notebook-schedule.png))을 선택하여 액세스)에는 온디맨드 작업의 기록과 만든 작업 정의에서 실행되는 모든 작업이 표시됩니다. 이 탭은 온디맨드 작업을 생성한 후에 열리거나, 이 탭에서 직접 과거 및 현재 작업의 기록을 볼 수도 있습니다. 작업에 대해 **작업 이름**을 선택하면 해당 **작업 세부 정보** 페이지에서 단일 작업에 대한 세부 정보를 볼 수 있습니다. **작업 세부 정보보** 페이지에 대한 자세한 내용은 다음 [단일 작업 보기](#view-jobs-detail-notebook-auto-run)섹션을 참조하세요.

**노트북 작업** 탭에는 각 작업에 대한 다음 정보가 포함됩니다.
+ **출력 파일**: 출력 파일의 가용성을 표시합니다. 이 열에는 다음 중 하나가 포함될 수 있습니다.
  + 다운로드 아이콘(![\[Cloud icon with downward arrow, representing download or cloud storage functionality.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/icons/File_download.png)): 출력 노트북과 로그를 다운로드할 수 있습니다. 다운로드하려면 이 버튼을 선택합니다. 파일을 만든 후 오류가 발생한 경우에도 실패한 작업이 여전히 출력 파일을 생성할 수 있습니다. 이 경우 출력 노트북을 보고 실패 지점을 식별하는 것이 좋습니다.
  + **노트북** 및 **출력 로그** 링크: 노트북과 출력 로그가 다운로드됩니다. 링크를 선택하여 콘텐츠를 확인합니다.
  + (공백): 사용자가 작업을 중지했거나 출력 파일을 생성하기 전에 작업 실행 중 오류가 발생했습니다. 예를 들어, 네트워크 장애로 인해 작업이 시작되지 않을 수 있습니다.

  출력 노트북은 노트북의 모든 셀을 실행한 결과이며, 추가한 새 파라미터나 재정의한 파라미터 또는 환경 변수도 모두 포함합니다. 출력 로그는 실패한 작업의 문제를 해결하는 데 도움이 되도록 작업 실행의 세부 정보를 캡처합니다.
+ **생성 시간**: 온디맨드 작업 또는 예약된 작업이 생성된 시간입니다.
+ **상태**: 작업의 현재 상태로, 다음 중 하나에 해당합니다.
  + **진행 중**: 작업이 실행 중입니다.
  + **실패**: 구성 또는 노트북 로직 오류로 인해 작업이 실패했습니다.
  + **중지됨**: 사용자가 작업을 중지했습니다.
  + **완료**: 작업이 완료되었습니다.
+ **작업**: 이 열에서는 인터페이스에서 직접 작업을 중지하거나 제거하는 데 도움이 되는 단축키를 제공합니다.

## 단일 작업 보기
<a name="view-jobs-detail-notebook-auto-run"></a>

**노트북 작업** 탭에서 작업 이름을 선택하여 특정 작업에 대한 **작업 세부 정보** 페이지를 볼 수 있습니다. **작업 세부 정보** 페이지에는 **작업 생성** 양식에 제공한 모든 세부 정보가 포함되어 있습니다. 이 페이지에서는 작업 정의를 생성할 때 지정한 설정을 확인할 수 있습니다.

또한 페이지 자체에서 다음 작업을 수행하는 데 도움이 되는 단축키에 액세스할 수 있습니다.
+ **작업 삭제**: **노트북 작업** 탭에서 작업을 제거합니다.
+ **작업 중지**: 실행 중인 작업을 중지합니다.

# 노트북 작업 정의 보기
<a name="view-def-detail-notebook-auto-run"></a>

**참고**  
SageMaker Python SDK로 노트북 작업을 예약한 경우 이 섹션을 건너뛰세요. Studio 또는 로컬 JupyterLab 환경에서 만든 노트북 작업만 작업 정의를 만듭니다. 따라서 SageMaker Python SDK로 노트북 작업을 만든 경우 노트북 작업 대시보드에 작업 정의가 표시되지 않습니다. 하지만 [노트북 작업 보기](view-notebook-jobs.md)에 설명된 대로 노트북 작업을 볼 수 있습니다.

작업 정의를 생성할 때 작업에 대한 일정을 생성합니다. **노트북 작업 정의** 탭에는 이러한 일정과 특정 노트북 작업 정의에 대한 정보가 나열됩니다. 예를 들어 1분마다 특정 노트북을 실행하는 작업 정의를 생성할 수 있습니다. 이 작업 정의가 활성화되면 **노트북 작업** 탭에 1분마다 새 작업이 표시됩니다. 다음 페이지에서는 **노트북 작업 정의** 탭과 노트북 작업 정의를 보는 방법에 대한 정보를 제공합니다.

**노트북 작업 정의** 탭에는 모든 작업 정의가 포함된 대시보드가 표시되며 입력 노트북, 작성 시간, 일정 및 각 작업 정의의 상태가 포함됩니다. **상태** 열에는 다음 값 중 하나가 포함됩니다.
+ **일시 중지됨**: 작업 정의를 일시 중지했습니다. 정의를 다시 시작할 때까지 Studio는 작업을 시작하지 않습니다.
+ **활성**: 일정이 켜져 있으며 Studio는 지정된 일정에 따라 노트북을 실행할 수 있습니다.

또한 **작업** 열에는 인터페이스에서 직접 다음 작업을 수행하는 데 도움이 되는 단축키가 제공됩니다.
+ 일시 중지: 작업 정의를 일시 중지합니다. 정의를 다시 시작할 때까지 Studio는 작업을 시작하지 않습니다.
+ 삭제: **노트북 작업 정의** 탭에서 작업 정의를 제거합니다.
+ 재개: 일시 중지된 작업 정의를 계속하여 작업을 시작할 수 있도록 합니다.

작업 정의를 생성했지만 작업이 시작되지 않는 경우 [문제 해결 가이드](notebook-auto-run-troubleshoot.md)의 [작업 정의가 작업을 생성하지 않음](notebook-auto-run-troubleshoot.md#notebook-auto-run-troubleshoot-no-jobs)섹션을 참조하세요.

## 단일 작업 정의 보기
<a name="view-job-definition-detail-page"></a>

**노트북 작업 정의** 탭에서 작업 정의 이름을 선택하면 작업 정의에 대한 특정 세부 정보를 볼 수 있는 **작업 정의** 페이지가 나타납니다. 이 페이지에서는 작업 정의를 생성할 때 지정한 설정을 확인할 수 있습니다. 작업 정의에서 생성된 작업이 보이지 않는 경우 [문제 해결 가이드](notebook-auto-run-troubleshoot.md)의 [작업 정의가 작업을 생성하지 않음](notebook-auto-run-troubleshoot.md#notebook-auto-run-troubleshoot-no-jobs)섹션을 참조하세요.

이 페이지에는 이 작업 정의에서 실행되는 작업을 나열하는 섹션도 있습니다. 모든 작업 정의의 모든 작업을 조합한 **노트북 작업** 탭에서 작업을 보는 것보다 **작업 정의** 페이지에서 작업을 보는 것이 작업을 구성하는 데 더 생산적인 방법일 수 있습니다.

또한 이 페이지는 다음 작업에 대한 단축키를 제공합니다.
+ **일시 중지/재개**: 작업 정의를 일시 중지하거나 일시 중지된 정의를 다시 시작합니다. 참고로 이 정의에 대한 작업이 현재 실행 중인 경우 Studio는 작업을 중지하지 않습니다.
+ **실행**: 이 작업 정의에서 단일 온디맨드 작업을 실행합니다. 또한 이 옵션을 사용하면 작업을 시작하기 전에 노트북에 다른 입력 파라미터를 지정할 수 있습니다.
+ **작업 정의 편집**: 작업 정의의 일정을 변경합니다. 다른 시간 간격을 선택하거나 CRON 구문을 사용하여 사용자 지정 일정을 선택할 수 있습니다.
+ **작업 정의 삭제**: **노트북 작업 정의** 탭에서 작업 정의를 제거합니다. 참고로 이 정의에 대한 작업이 현재 실행 중인 경우 Studio는 작업을 중지하지 않습니다.

# 문제 해결 가이드
<a name="notebook-auto-run-troubleshoot"></a>

예약된 노트북 작업이 실행될 때 발생할 수 있는 오류를 디버깅하려면 이 문제 해결 가이드를 참조하세요.

## 작업 정의가 작업을 생성하지 않음
<a name="notebook-auto-run-troubleshoot-no-jobs"></a>

작업 정의가 작업을 시작하지 않으면 Amazon SageMaker Studio의 왼쪽 탐색 모음에 있는 **작업** 섹션에 노트북 또는 훈련 작업이 표시되지 않을 수 있습니다. 이 경우 Studio의 왼쪽 탐색 모음에 있는 **Pipelines** 섹션에서 오류 메시지를 찾을 수 있습니다. 각 노트북 또는 훈련 작업 정의는 실행 파이프라인에 속합니다. 다음은 노트북 작업을 시작하지 못하는 일반적인 원인입니다.

**권한 누락**
+ 작업 정의에 할당된 역할이 Amazon Eventbridge와 신뢰 관계를 갖지 않습니다. 즉, EventBridge가 역할을 맡을 수 없습니다.
+ 작업 정의에 할당된 역할에 `SageMaker AI:StartPipelineExecution`호출 권한이 없습니다.
+ 작업 정의에 할당된 역할에 `SageMaker AI:CreateTrainingJob`호출 권한이 없습니다.

**EventBridge 할당량 초과**

다음 예시와 같은 `Put*`오류가 표시되면 EventBridge 할당량을 초과한 것입니다. 이를 해결하기 위해 사용하지 않는 EventBridge 실행 AWS Support 을 정리하거나 할당량 증가를 요청할 수 있습니다.

```
LimitExceededException) when calling the PutRule operation: 
The requested resource exceeds the maximum number allowed
```

EventBridge 할당량에 대한 자세한 내용은 [Amazon EventBridge 할당량](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html)을 참조하세요.

**파이프라인 할당량 한도 초과**

다음 예시와 같은 오류가 표시되면 실행할 수 있는 파이프라인 수를 초과한 것입니다. 이 문제를 해결하려면 계정에서 사용하지 않는 파이프라인을 정리하거나 할당량을 늘리도록 AWS Support 을 요청할 수 있습니다.

```
ResourceLimitExceeded: The account-level service limit 
'Maximum number of pipelines allowed per account' is XXX Pipelines, 
with current utilization of XXX Pipelines and a request delta of 1 Pipelines.
```

파이프라인 할당량에 대한 자세한 내용은 [Amazon SageMaker 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html)을 참조하세요.

**훈련 작업 한도 초과**

다음 예시와 같은 오류가 표시되면 실행할 수 있는 훈련 작업 수를 초과한 것입니다. 이 문제를 해결하려면 계정의 훈련 작업 수를 줄이거나 할당량 AWS Support 증가를 요청하세요.

```
ResourceLimitExceeded: The account-level service limit 
'ml.m5.2xlarge for training job usage' is 0 Instances, with current 
utilization of 0 Instances and a request delta of 1 Instances. 
Please contact AWS support to request an increase for this limit.
```

훈련 작업 할당량에 대한 자세한 내용은 [Amazon SageMaker 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html)을 참조하세요.

## SparkMagic 노트북에서 자동 시각화가 비활성화됨
<a name="notebook-auto-run-troubleshoot-visualization"></a>

노트북에서 SparkMagic PySpark 커널을 사용하고 노트북을 노트북 작업으로 실행하는 경우 출력에서 자동 시각화가 비활성화되어 있는 것을 확인할 수 있습니다. 자동 시각화를 켜면 커널이 중단되므로 노트북 작업 실행기는 이 문제의 해결 방법으로 현재 자동 시각화를 비활성화합니다.

# 제약 조건 및 고려 사항
<a name="notebook-auto-run-constraints"></a>

노트북 작업을 성공적으로 완료하려면 다음 제약 조건을 검토하세요. Studio는 Papermill을 사용하여 노트북을 실행합니다. Papermill의 요구 사항에 맞게 Jupyter notebook을 업데이트해야 할 수도 있습니다. 또한 LCC 스크립트의 내용에는 제한이 있으며 VPC 구성과 관련하여 이해해야 할 중요한 세부 정보가 있습니다.

## JupyterLab 버전
<a name="notebook-auto-run-constraints-jpt"></a>

JupyterLab 버전 4.0이 지원됩니다.

## 커널 재시작이 필요한 패키지 설치
<a name="notebook-auto-run-constraints-pmill-pkg"></a>

Papermill은 커널 재시작이 필요한 패키지를 설치하기 위한 `pip install`호출을 지원하지 않습니다. 이 경우 초기화 스크립트에서 `pip install`을 사용하세요. 커널을 다시 시작할 필요가 없는 패키지 설치의 경우에도 `pip install`노트북에 포함시킬 수 있습니다.

## Jupyter에 등록된 커널 및 언어 이름
<a name="notebook-auto-run-constraints-pmill-names"></a>

Papermill은 특정 커널 및 언어의 번역기를 등록합니다. 자체 인스턴스 가져오는 경우(BYOI) 다음 스니펫에 표시된 대로 표준 커널 이름을 사용합니다.

```
papermill_translators.register("python", PythonTranslator)
papermill_translators.register("R", RTranslator)
papermill_translators.register("scala", ScalaTranslator)
papermill_translators.register("julia", JuliaTranslator)
papermill_translators.register("matlab", MatlabTranslator)
papermill_translators.register(".net-csharp", CSharpTranslator)
papermill_translators.register(".net-fsharp", FSharpTranslator)
papermill_translators.register(".net-powershell", PowershellTranslator)
papermill_translators.register("pysparkkernel", PythonTranslator)
papermill_translators.register("sparkkernel", ScalaTranslator)
papermill_translators.register("sparkrkernel", RTranslator)
papermill_translators.register("bash", BashTranslator)
```

## 파라미터 및 환경 변수 한도
<a name="notebook-auto-run-constraints-var-limits"></a>

**파라미터 및 환경 변수 한도.** 노트북 작업을 생성하면 지정한 파라미터와 환경 변수가 전달됩니다. 최대 100개의 파라미터를 전달할 수 있습니다. 각 파라미터 이름은 최대 256자까지 가능하며 관련 값은 최대 2500자까지 입력할 수 있습니다. 환경 변수를 전달하는 경우 최대 28개의 변수를 전달할 수 있습니다. 변수 이름과 관련 값은 최대 512자까지 입력할 수 있습니다. 29개 이상의 환경 변수가 필요한 경우 사용할 수 있는 환경 변수 수에 제한이 없는 초기화 스크립트에 추가 환경 변수를 사용하세요.

## 작업 및 작업 정의 보기
<a name="notebook-auto-run-constraints-view-job"></a>

**작업 및 작업 정의 보기.** JupyterLab 노트북의 Studio UI에서 노트북 작업을 예약하는 경우 Studio UI에서 [노트북 작업](https://docs.aws.amazon.com/sagemaker/latest/dg/view-notebook-jobs.html)과 [노트북 작업 정의를 볼](https://docs.aws.amazon.com/sagemaker/latest/dg/view-def-detail-notebook-auto-run.html) 수 있습니다. SageMaker Python SDK를 사용하여 노트북 작업을 예약한 경우 작업만 볼 수 있습니다. SageMaker Python SDK 노트북 작업 단계는 작업 정의를 만들지 않습니다. 작업을 보려면 노트북 작업 단계 인스턴스에 추가 태그를 제공해야 합니다. 자세한 내용은 [Studio UI 대시보드에서 노트북 작업 보기](create-notebook-auto-run-sdk.md#create-notebook-auto-run-dash)을 참조하세요.

## 이미지
<a name="notebook-auto-run-constraints-image"></a>

Studio에서 노트북 작업을 실행하는지 파이프라인에서 SageMaker Python SDK 노트북 작업 단계를 실행하는지에 따라 이미지 제약 조건을 관리해야 합니다.

### SageMaker AI 노트북 작업에 대한 이미지 제약 조건(Studio)
<a name="notebook-auto-run-constraints-image-studio"></a>

**이미지 및 커널 지원.** 노트북 작업을 시작하는 드라이버는 다음을 가정합니다.
+ 기본 Python 런타임 환경은 Studio 또는 나만의 이미지 가져오기(BYOI)에 설치되며 쉘의 기본값입니다.
+ 기본 Python 런타임 환경에는 커널 사양이 올바르게 구성된 Jupyter 클라이언트가 포함되어 있습니다.
+ 기본 Python 런타임 환경에는 노트북 작업이 시스템 종속성을 설치할 수 있도록 하는 `pip`함수가 포함되어 있습니다.
+ 여러 환경이 있는 이미지의 경우 노트북별 패키지를 설치하기 전에 초기화 스크립트를 적절한 커널별 환경으로 전환해야 합니다. 커널 Python 런타임 환경을 구성한 후 커널 런타임 환경과 다른 경우 기본 Python 런타임 환경으로 다시 전환해야 합니다.

노트북 작업을 시작하는 드라이버는 Bash 스크립트이며, Bash v4는 /bin/bash에서 사용할 수 있어야 합니다.

**나만의 이미지 가져오기(BYOI)에 대한 루트 권한.** 나만의 Studio 이미지에 대해 루트 사용자 또는 `sudo`액세스를 통해 루트 권한이 있어야 합니다. 루트 사용자는 아니지만 `sudo`를 통해 루트 권한에 액세스하는 경우 **1000/100**을 `UID/GID`로 사용하세요.

### SageMaker AI Python SDK 노트북 작업에 대한 이미지 제약 조건
<a name="notebook-auto-run-constraints-image-sdk"></a>

노트북 작업 단계는 다음 이미지를 지원합니다.
+ [Studio Classic 노트북에 사용할 수 있는 Amazon SageMaker 이미지](notebooks-available-images.md)에 나열된 SageMaker Distribution 이미지
+ 이전 목록의 SageMaker Distribution 이미지를 기반으로 하는 사용자 지정 이미지. [SageMaker Distribution 이미지](https://github.com/aws/sagemaker-distribution)를 기본으로 사용합니다.
+ 노트북 작업 종속성(예: [sagemaker-headless-execution-driver](https://pypi.org/project/sagemaker-headless-execution-driver/))이 사전 설치된 사용자 지정 이미지(BYOI) 이미지는 다음 요구 사항을 충족해야 합니다.
  + 이미지에는 노트북 작업 종속성이 사전 설치되어 있어야 합니다.
  + 기본 Python 런타임 환경이 설치되어 있으며 쉘 환경에서 기본값이어야 합니다.
  + 기본 Python 런타임 환경에는 커널 사양이 올바르게 구성된 Jupyter 클라이언트가 포함되어 있습니다.
  + 루트 사용자 또는 `sudo` 액세스를 통해 루트 권한이 있어야 합니다. 루트 사용자는 아니지만 `sudo`를 통해 루트 권한에 액세스하는 경우 **1000/100**을 `UID/GID`로 사용하세요.

## 작업 생성 시 사용되는 VPC 서브넷
<a name="notebook-auto-run-constraints-vpc"></a>

VPC를 사용하는 경우 Studio는 프라이빗 서브넷을 사용하여 작업을 생성합니다. 1\$15개의 프라이빗 서브넷 및 1\$115개의 보안 그룹을 지정합니다.

프라이빗 서브넷이 있는 VPC를 사용하는 경우 노트북 작업을 종속 서비스 또는 리소스에 연결할 수 있도록 다음 옵션 중 하나를 선택해야 합니다.
+ 작업에 인터페이스 VPC 엔드포인트를 지원하는 AWS 서비스에 대한 액세스 권한이 필요한 경우 서비스에 연결할 엔드포인트를 생성합니다. 인터페이스 엔드포인트를 지원하는 서비스 목록은 [AWS 와 통합되는 서비스를 AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/aws-services-privatelink-support.html) 참조하세요. 인터페이스 VPC 엔드포인트 생성에 대한 자세한 내용은 [인터페이스 VPC 엔드포인트를 사용하여 AWS 서비스 액세스를 참조하세요](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html). 최소한 Amazon S3 VPC 엔드포인트 게이트웨이가 제공되어야 합니다.
+ 노트북 작업이 인터페이스 VPC 엔드포인트를 지원하지 않는 AWS 서비스 또는 외부 리소스에 액세스해야 하는 경우 NAT 게이트웨이를 AWS생성하고 아웃바운드 연결을 허용하도록 보안 그룹을 구성합니다. VPC용 NAT 게이트웨이 설정에 대한 자세한 내용은 [Amazon 가상 사설 클라우드 사용 설명서](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)의 퍼블릭 및 프라이빗 서브넷이 있는 VPC(NAT)를 참조하세요.**

## 서비스 한도
<a name="notebook-auto-run-constraints-service-limit"></a>

노트북 작업 스케줄러는 Pipelines, SageMaker 훈련 및 Amazon EventBridge 서비스를 기반으로 구축되므로 노트북 작업에는 서비스별 할당량이 적용됩니다. 이 할당량을 초과하면 해당 서비스와 관련된 오류 메시지가 표시될 수 있습니다. 예를 들어 한 번에 실행할 수 있는 파이프라인 수와 단일 이벤트 버스에 설정할 수 있는 규칙 수에는 제한이 있습니다. SageMaker AI 할당량에 대한 자세한 내용은 [Amazon SageMaker 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html)을 참조하세요. EventBridge 할당량에 대한 자세한 내용은 [Amazon EventBridge 할당량](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html)을 참조하세요.

# SageMaker 노트북 작업 요금
<a name="notebook-auto-run-pricing"></a>

노트북 작업을 예약하면 Jupyter notebook이 SageMaker 훈련 인스턴스에서 실행됩니다. **작업 생성** 양식에서 **이미지**와 **커널**을 선택하면 양식에 사용 가능한 컴퓨팅 유형 목록이 제공됩니다. 작업 정의에서 실행되는 모든 노트북 작업의 사용 기간을 합산하여 선택한 컴퓨팅 유형에 대한 요금이 부과됩니다. 컴퓨팅 유형을 지정하지 않는 경우 SageMaker AI는 사용자에게 `ml.m5.large`의 기본 Amazon EC2 인스턴스 유형을 할당합니다. 컴퓨팅 유형별 SageMaker AI 요금 내역은 [Amazon SageMaker AI Pricing](https://aws.amazon.com/sagemaker/pricing)을 참조하세요.