

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

# EMR Notebook을 리포지토리와 통합하는 경우 사전 조건 및 고려 사항
<a name="emr-managed-notebooks-git-considerations"></a>

GIT 기반 리포지토리를 EMR Notebooks와 통합하려는 경우 커밋, 권한 및 호스팅에 관한 다음 모범 사례를 고려합니다.

**참고**  
EMR Notebooks는 콘솔에서 EMR Studio Workspace로 사용 가능합니다. 콘솔의 **워크스페이스 생성** 버튼을 사용하면 새 노트북을 생성할 수 있습니다. EMR Notebooks 사용자는 Workspace에 액세스하거나 Workspace를 생성하려면 추가 IAM 역할 권한이 필요합니다. 자세한 내용은 [Amazon EMR Notebooks가 콘솔에서 Amazon EMR Studio 워크스페이스 역할](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-migration.html) 및 [Amazon EMR 콘솔](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html)을 참조하세요.

## AWS CodeCommit
<a name="code-commit-considerations"></a>

CodeCommit 리포지토리를 사용하는 경우 Git 보안 인증 및 HTTPS를 CodeCommit과 함께 사용해야 합니다. SSH 키 및 AWS CLI 자격 증명 헬퍼가 있는 HTTPS는 지원되지 않습니다. CodeCommit은 개인용 액세스 토큰(PAT)을 지원하지 않습니다. 자세한 내용은 [IAM 사용 설명서의 CodeCommit에서 IAM 사용: Git 자격 증명, SSH 키 및 AWS 액세스 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html)와 사용 설명서의 [Git 자격 증명을 사용한 HTTPS 사용자 설정을](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html) 참조하세요*AWS CodeCommit *. ** 

## 액세스 및 권한 고려 사항
<a name="access-considerations"></a>

리포지토리를 노트북과 연결하려면 먼저 클러스터, EMR Notebooks에 대한 IAM 역할 및 보안 그룹의 설정과 권한이 올바르게 지정되어 있는지 확인해야 합니다. [EMR Notebooks에 대해 비공개로 호스팅된 Git 리포지토리 구성](#emr-managed-notebooks-private-git-repo)의 지침에 따라 프라이빗 네트워크에서 호스팅하는 Git 기반 리포지토리를 구성할 수도 있습니다.
+ **클러스터 인터넷 액세스** - 시작된 네트워크 인터페이스에는 프라이빗 IP 주소만 있습니다. 따라서 노트북이 연결되는 클러스터는 NAT(네트워크 주소 변환) 게이트웨이를 사용하는 프라이빗 서브넷에 있거나, 가상 프라이빗 게이트웨이를 통해 인터넷에 액세스할 수 있어야 합니다. 자세한 내용은 [Amazon VPC 옵션](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-clusters-in-a-vpc.html)을 참조하세요.

  노트북 보안 그룹에는 노트북이 트래픽을 클러스터에서 인터넷으로 전송할 수 있는 아웃바운드 규칙이 포함되어야 합니다. 따라서 자체적으로 보안 그룹을 생성하는 것이 좋습니다. 자세한 내용은 [EMR Notebooks에 대한 EC2 보안 그룹 지정](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html) 섹션을 참조하세요.
**중요**  
네트워크 인터페이스가 퍼블릭 서브넷에서 시작되는 경우 인터넷 게이트웨이(IGW)를 통해 인터넷과 통신할 수 없습니다.
+ **권한 AWS Secrets Manager**- Secrets Manager를 사용하여 리포지토리에 액세스하는 데 사용하는 암호를 저장하는 경우에 `secretsmanager:GetSecretValue` 작업을 허용하는 권한 정책이 연결되어 [EMR Notebooks의 서비스 역할](emr-managed-notebooks-service-role.md) 있어야 합니다.

## EMR Notebooks에 대해 비공개로 호스팅된 Git 리포지토리 구성
<a name="emr-managed-notebooks-private-git-repo"></a>

다음 지침을 사용하여 EMR Notebooks에 대해 비공개로 호스팅된 리포지토리를 구성합니다. DNS 및 Git 서버에 대한 정보가 포함된 구성 파일을 제공해야 합니다. Amazon EMR은 이 정보를 사용하여 비공개로 호스팅된 리포지토리로 트래픽을 라우팅할 수 있는 EMR Notebooks를 구성합니다.

**사전 조건**

EMR Notebooks에 대해 비공개로 호스팅되는 Git 리포지토리를 구성하려면 다음이 있어야 합니다.
+ EMR 노트북의 파일이 저장되는 Amazon S3 Control 위치입니다.

**EMR Notebooks에 대해 비공개로 호스팅되는 Git 리포지토리를 하나 이상 구성하는 방법**

1. 제공된 템플릿을 사용하여 구성 파일을 생성합니다. 구성에서 지정하려는 각 Git 서버에 대해 다음 값을 포함합니다.
   + **`DnsServerIpV4`** - DNS 서버의 IPv4 주소. `DnsServerIpV4` 및 `GitServerIpV4List`에 대한 값을 모두 제공하는 경우 `DnsServerIpV4`의 값이 우선하며 `GitServerDnsName`을 해석하는 데 사용됩니다.
**참고**  
비공개로 호스팅되는 Git 리포지토리를 사용하려면 DNS 서버에서 EMR Notebooks의 인바운드 액세스를 허용해야 합니다. DNS 서버를 다른 무단 액세스로부터 보호해야 합니다.
   + **`GitServerDnsName`** - Git 서버의 DNS 이름입니다. 예: `"git.example.com"`.
   + **`GitServerIpV4List`** - Git 서버에 속하는 IPv4 주소 목록.

   ```
   [
       {
           "Type": "PrivatelyHostedGitConfig",
           "Value": [
               {
                   "DnsServerIpV4": "{{<10.24.34.xxx>}}",
                   "GitServerDnsName": "{{<enterprise.git.com>}}",
                   "GitServerIpV4List": [
                       "{{<xxx.xxx.xxx.xxx>}}",
                       "{{<xxx.xxx.xxx.xxx>}}"
                   ]
               },
               {
                   "DnsServerIpV4": "{{<10.24.34.xxx>}}",
                   "GitServerDnsName": "{{<git.example.com>}}",
                   "GitServerIpV4List": [
                       "{{<xxx.xxx.xxx.xxx>}}",
                       "{{<xxx.xxx.xxx.xxx>}}"
                   ]
               }
           ]
       }
   ]
   ```

1. 구성 파일을 `configuration.json`으로 저장합니다.

1. 구성 파일을 지정된 Amazon S3 스토리지 위치, `life-cycle-configuration` 폴더에 업로드합니다. 예를 들어, 기본 S3 위치가 `s3://amzn-s3-demo-bucket/notebooks`인 경우 구성 파일은 `s3://amzn-s3-demo-bucket/notebooks/life-cycle-configuration/configuration.json`에 있습니다.
**중요**  
`life-cycle-configuration` 폴더에 대한 액세스는 EMR Notebooks 관리자만, EMR Notebooks의 경우 서비스 역할로만 제한하는 것이 좋습니다. 또한 무단 액세스로부터 `configuration.json`을 보안해야 합니다. 관련 지침은 [사용자 정책을 사용하여 버킷에 대한 액세스 제어](https://docs.aws.amazon.com/AmazonS3/latest/userguide/walkthrough1.html) 또는 [Amazon S3의 보안 모범 사례](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html)를 참조하세요.

   업로드 지침은 *Amazon Simple Storage Service 사용 설명서*에서 [폴더 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-folders.html#create-folder) 및 [객체 업로드](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)를 참조하세요.