

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

# Git 기반 리포지토리를 EMR Notebooks에 연결
<a name="emr-git-repo"></a>

Git 기반 리포지토리를 Amazon EMR Notebooks와 연결하여 버전 제어 환경에서 노트북을 저장할 수 있습니다. 노트북 1개에 연결할 수 있는 리포지토리는 최대 3개입니다. 지원되는 GIT 기반 서비스는 다음과 같습니다.
+ [AWS CodeCommit](https://aws.amazon.com/codecommit)
+ [GitHub](https://www.github.com)
+ [Bitbucket](https://bitbucket.org/)
+ [GitLab](https://about.gitlab.com/)

**참고**  
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)을 참조하세요.

GIT 기반 리포지토리를 노트북과 연결하면 다음과 같은 이점이 있습니다.
+ **버전 제어** - 코드 변경 사항을 버전 제어 시스템에 기록할 수 있으므로 변경 기록을 살펴보거나 일부 변경 사항을 선택적으로 되돌릴 수 있습니다.
+ **협업** - 다른 노트북에서 작업하는 동료가 원격 GIT 기반 리포지토리를 통해 코드를 공유할 수 있습니다. 이를 통해 원격 리포지토리에서 코드를 복제 또는 병합한 후 변경 사항을 원격 리포지토리로 다시 푸시할 수 있습니다.
+ **코드 재사용** - 데이터 분석 또는 기계 학습 기법을 보여주는 여러 Jupyter Notebook을 공개적으로 호스팅되는 리포지토리(예: GitHub)에서 사용할 수 있습니다. 노트북을 리포지토리와 연결하면 리포지토리에 저장된 Jupyter Notebook을 재사용할 수 있습니다.

EMR Notebooks에서 Git 기반 리포지토리를 사용하려면 Amazon EMR 콘솔에서 리포지토리를 리소스로 추가하고 인증에 필요한 리포지토리 보안 인증을 연결한 다음 리포지토리를 노트북과 연결합니다. Amazon EMR 콘솔에서 계정에 저장된 리포지토리 목록과 각 리포지토리에 대한 세부 정보를 확인할 수 있습니다. 노트북을 생성할 때 기존 GIT 기반 리포지토리를 노트북과 연결할 수 있습니다.

**Topics**
+ [EMR Notebook을 리포지토리와 통합하는 경우 사전 조건 및 고려 사항](emr-managed-notebooks-git-considerations.md)
+ [Amazon EMR에 Git 기반 리포지토리 추가](emr-git-repo-add.md)
+ [EMR Studio Workspace에서 Git 기반 리포지토리 업데이트 또는 삭제](emr-git-repo-delete.md)
+ [EMR Studio에서 Git 기반 리포지토리 연결 또는 연결 해제](emr-git-repo-link.md)
+ [EMR Studio에서 연결된 Git 리포지토리를 사용하여 새 노트북 생성](emr-git-repo-create-notebook.md)
+ [EMR Studio 노트북에서 Git 리포지토리 사용](emr-git-repo-open.md)

# 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)를 참조하세요.

# Amazon EMR에 Git 기반 리포지토리 추가
<a name="emr-git-repo-add"></a>

이전 콘솔의 EMR Notebook이나 콘솔의 EMR Studio Workspace에 Git 기반 리포지토리를 추가하는 방법에 대한 자세한 내용은 다음 섹션을 참조하세요.

**참고**  
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)을 참조하세요.

------
#### [ Console ]

EMR Notebooks는 새 콘솔의 EMR Studio Workspace이므로 [Git 기반 리포지토리를 EMR Studio Workspace에 연결](emr-studio-git-repo.md)의 지침에 따라 최대 3개의 Git 리포지토리를 Workspace에 연결할 수 있습니다.

또는 JupyterLab Git 확장을 사용할 수 있습니다. 확장 프로그램에 액세스하려면 Jupyterlab 노트북의 왼쪽 사이드바에서 **Git** 아이콘을 선택합니다. 확장 프로그램에 대한 자세한 내용은 [jupyterlab-git](https://github.com/jupyterlab/jupyterlab-git) GitHub 리포지토리를 참조하세요.

Git 리포지토리를 Workspace에 연결하려면 Studio 관리자가 Git 리포지토리 연결을 허용하도록 Studio를 구성하는 단계를 수행해야 합니다. 자세한 내용은 [Git 기반 리포지토리에 대한 액세스 및 권한 설정](emr-studio-enable-git.md) 단원을 참조하십시오.

------

# EMR Studio Workspace에서 Git 기반 리포지토리 업데이트 또는 삭제
<a name="emr-git-repo-delete"></a>

이전 콘솔의 EMR Notebook이나 콘솔의 EMR Studio Workspace에서 Git 기반 리포지토리를 삭제하는 방법에 대한 자세한 내용은 다음 섹션을 참조하세요.

**참고**  
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)을 참조하세요.

------
#### [ Console ]

EMR Notebooks는 새 콘솔의 EMR Studio Workspace이므로 Workspace에서 Git 리포지토리를 사용하는 방법에 대한 자세한 내용은 [Git 기반 리포지토리를 EMR Studio Workspace에 연결](emr-studio-git-repo.md) 섹션을 참조하세요. 하지만 지금은 Workspace에서 Git 리포지토리를 삭제할 수 없습니다.

------

# EMR Studio에서 Git 기반 리포지토리 연결 또는 연결 해제
<a name="emr-git-repo-link"></a>

다음 단계를 사용하여 Git 기반 리포지토리를 이전 콘솔의 EMR Notebook이나 콘솔의 EMR Studio Workspace에 연결하거나 연결을 해제합니다.

**참고**  
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)을 참조하세요.

------
#### [ Console ]

EMR Notebooks는 새 콘솔의 EMR Studio Workspace이므로 Workspace에서 Git 리포지토리를 사용하는 방법에 대한 자세한 내용은 [Git 기반 리포지토리를 EMR Studio Workspace에 연결](emr-studio-git-repo.md) 섹션을 참조하세요. 하지만 지금은 Workspace에서 Git 리포지토리를 삭제할 수 없습니다.

------

## 리포지토리 상태 이해
<a name="emr-managed-notebooks-repository-status"></a>

Git 리포지토리는 리포지토리 목록에서 다음과 같은 상태 중 하나를 가질 수 있습니다. EMR 노트북을 Git 리포지토리와 연결하는 방법에 대한 자세한 내용은 [EMR Studio에서 Git 기반 리포지토리 연결 또는 연결 해제](#emr-git-repo-link) 섹션을 참조하세요.


| Status | 의미 | 
| --- | --- | 
|  Linking(연결 중)  |  Git 리포지토리를 노트북에 연결하는 중입니다. 리포지토리 상태가 **Linking(연결 중)**일 때는 노트북을 중지할 수 없습니다.  | 
|  연결됨  |  Git 리포지토리가 노트북에 연결되어 있습니다. 리포지토리 상태가 **연결됨**일 때는 원격 리포지토리에 연결된 것을 의미합니다.  | 
|  Link Failed(링크 실패)  |  Git 리포지토리를 노트북에 연결하지 못했습니다. 리포지토리 연결을 다시 시도할 수 있습니다.  | 
|  Unlinking(연결 해제 중)  |  Git 리포지토리를 노트북에서 연결 해제하는 중입니다. 리포지토리 상태가 **Unlinking(연결 해제 중)**일 때는 노트북을 중지할 수 없습니다. Git 리포지토리를 노트북에서 연결 해제하면 원격 리포지토리에서만 연결이 끊어질 뿐 노트북에서 코드가 삭제되지는 않습니다.  | 
|  Unlink Failed(연결 해제 실패)  |  Git 리포지토리를 노트북에서 연결 해제하지 못했습니다. 리포지토리 연결 해제를 다시 시도할 수 있습니다.  | 

# EMR Studio에서 연결된 Git 리포지토리를 사용하여 새 노트북 생성
<a name="emr-git-repo-create-notebook"></a>

**참고**  
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)을 참조하세요.

**Amazon EMR 콘솔에서 노트북을 생성하고 Git 리포지토리와 연결하는 방법**

1. [EMR Studio에서 노트북 생성](emr-managed-notebooks-create.md)의 지침을 따릅니다.

1. **보안 그룹**에서 **Use your own security group(사용자 고유 보안 그룹 사용)**을 선택합니다.
**참고**  
노트북 보안 그룹에는 노트북이 트래픽을 클러스터를 통해 인터넷으로 전송할 수 있는 아웃바운드 규칙이 포함되어야 합니다. 따라서 자체적으로 보안 그룹을 생성하는 것이 좋습니다. 자세한 내용은 [EMR Notebooks에 대한 EC2 보안 그룹 지정](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html) 섹션을 참조하세요.

1. **Git repositories(Git 리포지토리)**에서 노트북과 연결할 **리포지토리를 선택**합니다.

   1. 계정 리소스로 저장할 리포지토리와 **저장**을 차례대로 선택합니다.

   1. 새로운 리포지토리를 계정 리소스로 추가하려면 **add a new repository(새 리포지토리 추가)**를 선택합니다. 새로운 창에서 **Add repository(리포지토리 추가)** 워크플로우를 완료합니다.

# EMR Studio 노트북에서 Git 리포지토리 사용
<a name="emr-git-repo-open"></a>

**참고**  
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)을 참조하세요.

노트북을 열 때 **Open in JupyterLab(JupyterLab에서 열기)** 또는 **Open in Jupyter(Jupyter에서 열기)**를 선택할 수 있습니다.

노트북을 Jupyter에서 열기로 선택하면 노트북의 파일 및 폴더가 확장 가능한 목록으로 표시됩니다. 노트북 셀에서 다음과 같은 Git 명령을 수동으로 실행할 수 있습니다.

```
!git pull origin primary
```

추가 리포지토리를 열려면 다른 폴더로 이동합니다.

JupyterLab 인터페이스를 사용하여 노트북을 열려는 경우 사전 설치된 JupyterLab Git 확장 프로그램을 사용할 수 있습니다. 확장 프로그램에 대한 자세한 내용은 [jupyterlab-git](https://github.com/jupyterlab/jupyterlab-git)을 참조하세요.