

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

# Amazon EMR Studio 사용
<a name="use-an-emr-studio"></a>

이 섹션에는 Amazon EMR Studio를 구성하고 사용하는 데 도움이 되는 주제가 포함되어 있습니다.

다음 비디오는 새 Workspace를 생성하는 방법 및 클러스터 템플릿을 사용하여 새 Amazon EMR 클러스터를 시작하는 방법과 같은 실용적인 정보를 다룹니다. 이 비디오는 샘플 노트북을 통해서도 실행됩니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/rZ3zeJ6WKPY/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/rZ3zeJ6WKPY)


**Topics**
+ [EMR Studio Workspace 알아보기](emr-studio-configure-workspace.md)
+ [EMR Studio에서 Workspace 협업 구성](emr-studio-workspace-collaboration.md)
+ [런타임 역할로 EMR Studio Workspace 실행](emr-studio-runtime.md)
+ [프로그래밍 방식으로 Amazon EMR Studio Workspace 노트북 실행](emr-studio-run-programmatically.md)
+ [EMR Studio에 대해 SQL 탐색기로 데이터 찾아보기](emr-studio-sql-explorer.md)
+ [EMR Studio Workspace에 컴퓨팅 연결](emr-studio-create-use-clusters.md)
+ [Git 기반 리포지토리를 EMR Studio Workspace에 연결](emr-studio-git-repo.md)
+ [EMR Studio에서 Amazon Athena SQL 편집기 사용](emr-studio-athena.md)
+ [EMR Studio Workspaces와 Amazon CodeWhisperer 통합](emr-studio-codewhisperer.md)
+ [EMR Studio에서 애플리케이션 및 작업 디버깅](emr-studio-debug.md)
+ [EMR Studio Workspace에 커널 및 라이브러리 설치](emr-studio-install-libraries-and-kernels.md)
+ [EMR Studio에서 magic 명령으로 커널 개선](emr-studio-magics.md)
+ [Spark 커널이 있는 다국어 노트북 사용](emr-multi-language-kernels.md)

# EMR Studio Workspace 알아보기
<a name="emr-studio-configure-workspace"></a>

EMR Studio를 사용하는 경우 노트북을 구성하고 실행하기 위해 다양한 *Workspace*를 생성하고 구성할 수 있습니다. 이 섹션에서는 Workspace 생성 및 사용에 대해 다룹니다. 개념적 개요는 [Amazon EMR Studio 작동 방식](how-emr-studio-works.md) 페이지에서 [워크스페이스](how-emr-studio-works.md#emr-studio-workspaces) 섹션을 참조하세요.

**Topics**
+ [EMR Studio Workspace 생성](emr-studio-create-workspace.md)
+ [EMR Studio에서 워크스페이스 시작](emr-studio-use-workspace.md)
+ [EMR Studio에서 워크스페이스 사용자 인터페이스 이해](emr-studio-workspace-ui.md)
+ [EMR Studio Workspace의 노트북 예제 탐색](emr-studio-notebook-examples.md)
+ [EMR Studio에서 워크스페이스 콘텐츠 저장](emr-studio-save-workspace.md)
+ [EMR Studio에서 워크스페이스 및 노트북 파일 삭제](emr-studio-delete-workspace.md)
+ [Workspace 상태 이해](emr-studio-workspace-status.md)
+ [Workspace 연결 문제 해결](emr-studio-workspace-stop-start.md)

# EMR Studio Workspace 생성
<a name="emr-studio-create-workspace"></a>

EMR Studio 인터페이스를 사용하여 노트북 코드를 실행하도록 EMR Studio Workspace를 생성할 수 있습니다.

**EMR Studio에서 Workspace를 생성하는 방법**

1. EMR Studio에 로그인합니다.

1. **Workspace 생성**을 선택합니다.

1. **Workspace 이름** 및 **설명**을 입력합니다. Workspace에 이름을 지정하면 **Workspace** 페이지에서 Workspace를 쉽게 식별할 수 있습니다.

1. 이 Workspace에서 다른 Studio 사용자와 실시간으로 작업하려면 Workspace 협업을 활성화합니다. Workspace를 시작한 후 공동 작업자를 구성할 수 있습니다.

1. 클러스터를 Workspace에 연결하려면 **고급 구성** 섹션을 확장합니다. 원하는 경우 나중에 클러스터를 연결할 수 있습니다. 자세한 내용은 [EMR Studio Workspace에 컴퓨팅 연결](emr-studio-create-use-clusters.md) 단원을 참조하십시오.
**참고**  
새 클러스터를 프로비전하려면 관리자의 액세스 권한이 필요합니다.

   Workspace의 클러스터 옵션 중 하나를 선택하고 클러스터를 연결합니다. Workspace를 생성할 때 클러스터를 프로비저닝하는 방법에 대한 자세한 내용은 [새 EMR 클러스터를 생성하여 EMR Studio Workspace에 연결](emr-studio-create-use-clusters.md#emr-studio-create-cluster) 섹션을 참조하세요.

1. 페이지 오른쪽 하단에서 **Workspace 생성**을 선택합니다.

Workspace를 생성한 후 EMR Studio에서 **Workspace** 페이지가 열립니다. 페이지 상단에 녹색 성공 배너가 표시되며 목록에서 새로 생성된 Workspace를 찾을 수 있습니다.

기본적으로 Workspace는 공유되며 모든 Studio 사용자가 볼 수 있습니다. 하지만 한 번에 한 명의 사용자만 Workspace를 열고 작업할 수 있습니다. 다른 사용자와 동시에 작업하려면 [EMR Studio에서 Workspace 협업 구성](emr-studio-workspace-collaboration.md) 작업을 수행하면 됩니다.

# EMR Studio에서 워크스페이스 시작
<a name="emr-studio-use-workspace"></a>

노트북 파일 작업을 시작하려면 Workspace를 실행하여 노트북 편집기에 액세스합니다. Studio의 **Workspace** 페이지에는 액세스할 수 있는 모든 Workspace와 함께 **이름**, **상태**, **생성 시간**, **최종 수정** 등의 세부 정보와 나열됩니다.

**참고**  
이전 Amazon EMR 콘솔에 EMR Notebooks가 있었다면 콘솔에서 EMR Studio Workspaces로 찾을 수 있습니다. EMR Notebooks 사용자가 Workspace에 액세스하거나 Workspace를 생성하려면 추가 IAM 역할 권한이 필요합니다. 최근에 이전 콘솔에서 노트북을 생성한 경우 콘솔에서 노트북을 보려면 Workspaces 목록을 새로 고쳐야 할 수 있습니다. 전환에 대한 자세한 내용은 [Amazon EMR Notebooks를 콘솔에서 Amazon EMR Studio Workspaces로 사용 가능](emr-managed-notebooks-migration.md) 및 [콘솔을 사용하여 Amazon EMR 클러스터 관리](whats-new-in-console.md) 섹션을 참조하세요.

**노트북을 편집하고 실행하기 위해 Workspace를 시작하는 방법**

1. Studio의 **Workspace** 페이지에서 Workspace를 찾습니다. 키워드나 열 값을 기준으로 목록을 필터링할 수 있습니다.

1. Workspace 이름을 선택하여 새 브라우저 탭에서 Workspace를 시작합니다. Workspace가 **유휴** 상태인 경우 여는 데 몇 분 정도 걸릴 수 있습니다. 또는 Workspace 행을 선택하고 **Workspace 시작**을 선택할 수도 있습니다. 다음 시작 옵션 중에서 선택할 수 있습니다.
   + **빠른 실행** - 기본 옵션을 사용하여 Workspace를 빠르게 시작합니다. JupyterLab의 Workspace에 클러스터를 연결하려면 **빠른 시작**을 선택합니다.
   + **옵션으로 시작** - 사용자 지정 옵션을 사용하여 Workspace를 시작합니다. Jupyter 또는 JupyterLab에서 시작하도록 선택하고, Workspace를 EMR 클러스터에 연결하며, 보안 그룹을 선택할 수 있습니다.
**참고**  
한 번에 한 명의 사용자만 Workspace를 열고 작업할 수 있습니다. 이미 사용 중인 Workspace를 선택하면 해당 Workspace를 열려고 할 때 EMR Studio에 알림이 표시됩니다. **Workspace** 페이지의 **사용자** 열에는 Workspace에서 작업하는 사용자가 표시됩니다.

# EMR Studio에서 워크스페이스 사용자 인터페이스 이해
<a name="emr-studio-workspace-ui"></a>

EMR Studio Workspace 사용자 인터페이스는 [JupyterLab 인터페이스](https://jupyterlab.readthedocs.io/en/latest/user/interface.html)를 기반으로 하며 왼쪽 사이드바에 아이콘으로 표시된 탭이 있습니다. 아이콘 위에서 잠시 멈추면 탭 이름을 보여주는 도구 설명을 볼 수 있습니다. 왼쪽 사이드바에서 탭을 선택하여 다음 패널에 액세스합니다.
+ **파일 브라우저** - Workspace의 파일 및 디렉터리는 물론 연결된 Git 리포지토리의 파일 및 디렉터리도 표시합니다.
+ **커널 및 터미널 실행** - Workspace에서 실행 중인 모든 커널과 터미널을 나열합니다. 자세한 내용은 공식 JupyterLab 설명서에서 [Managing kernels and terminals](https://jupyterlab.readthedocs.io/en/latest/user/running.html)를 참조하세요.
+ **Git** - Workspace에 연결된 Git 리포지토리에서 명령을 수행할 수 있는 그래픽 사용자 인터페이스를 제공합니다. 이 패널은 jupyterlab-git이라는 JupyterLab 확장 프로그램입니다. 자세한 내용은 [jupyterlab-git](https://github.com/jupyterlab/jupyterlab-git)을 참조하세요.
+ **EMR 클러스터** - 클러스터를 Workspace에 연결하거나 Workspace에서 클러스터를 분리하여 노트북 코드를 실행할 수 있습니다. 또한 EMR 클러스터 구성 패널은 *새* 클러스터를 생성하여 Workspace에 연결하는 데 도움이 되는 고급 구성 옵션을 제공합니다. 자세한 내용은 [새 EMR 클러스터를 생성하여 EMR Studio Workspace에 연결](emr-studio-create-use-clusters.md#emr-studio-create-cluster) 단원을 참조하십시오.
+ **Amazon EMR Git 리포지토리** - Workspace를 최대 3개의 Git 리포지토리에 연결할 수 있도록 도와줍니다. 자세한 내용과 지침은 [Git 기반 리포지토리를 EMR Studio Workspace에 연결](emr-studio-git-repo.md) 섹션을 참조하세요.
+ **노트북 예제** - Workspace에 저장할 수 있는 노트북 예제 목록을 제공합니다. Workspace의 **시작 관리자** 페이지에서 **노트북 예제**를 선택하여 예제에 액세스할 수도 있습니다.
+ **명령** - JupyterLab 명령을 검색하고 실행할 수 있는 키보드 기반 방법을 제공합니다. 자세한 내용은 JupyterLab 설명서에서 [Command palette](https://jupyterlab.readthedocs.io/en/latest/user/commands.html) 페이지를 참조하세요.
+ **노트북 도구** - 셀 슬라이드 유형 및 메타데이터와 같은 옵션을 선택하고 설정할 수 있습니다. 노트북 파일을 열면 왼쪽 사이드바에 **노트북 도구** 옵션이 나타납니다.
+ **열린 탭** - 열린 탭으로 바로 이동할 수 있도록 기본 작업 영역에 열려 있는 문서 및 활동을 나열합니다. 자세한 내용은 JupyterLab 설명서에서 [Tabs and single-document mode](https://jupyterlab.readthedocs.io/en/latest/user/interface.html#tabs-and-single-document-mode) 페이지를 참조하세요.
+ **협업** - Workspace 협업을 활성화 또는 비활성화하고 공동 작업자를 관리할 수 있습니다. **협업** 패널을 보려면 필수 권한이 있어야 합니다. 자세한 내용은 [WorkSpaces 협업에 대한 소유권 설정](emr-studio-user-permissions.md#emr-studio-workspace-collaboration-permissions)을 참조하세요.

# EMR Studio Workspace의 노트북 예제 탐색
<a name="emr-studio-notebook-examples"></a>

모든 EMR Studio Workspace에는 EMR Studio 기능을 탐색하는 데 사용할 수 있는 노트북 예제 세트가 포함되어 있습니다. 노트북 예제를 편집하거나 실행하려면 해당 예제를 Workspace에 저장합니다.

**노트북 예제를 Workspace에 저장하는 방법**

1. 왼쪽 사이드바에서 **노트북 예제** 탭을 선택하여 **노트북 예제** 패널을 엽니다. Workspace의 **시작 관리자** 페이지에서 **노트북 예제**를 선택하여 예제에 액세스할 수도 있습니다.

1. 노트북 예제를 선택하여 기본 작업 영역에서 미리 볼 수 있습니다. 이 예제는 읽기 전용입니다.

1. 노트북 예제를 Workspace에 저장하려면 **Workspace에 저장**을 선택합니다. EMR Studio는 예제를 홈 디렉터리에 저장합니다. 노트북 예제를 Workspace에 저장한 후 이름을 바꾸고, 편집하며, 실행할 수 있습니다.

노트북 예제에 대한 자세한 내용은 [EMR Studio Notebook examples GitHub repository](https://github.com/aws-samples/emr-studio-notebook-examples)를 참조하세요.

# EMR Studio에서 워크스페이스 콘텐츠 저장
<a name="emr-studio-save-workspace"></a>

Workspace의 노트북 편집기에서 작업하는 경우 EMR Studio는 노트북 셀의 콘텐츠와 출력을 Studio와 연결된 Amazon S3 위치에 저장합니다. 이 백업 프로세스는 세션 간 작업을 보존합니다.

열린 노트북 탭에서 **Ctrl\$1S**를 누르거나 **파일** 아래의 저장 옵션 중 하나를 사용하여 노트북을 저장할 수도 있습니다.

Workspace에서 Notebook 파일을 백업하는 또 다른 방법은 Workspace를 Git 기반 리포지토리와 연결하고 변경 내용을 원격 리포지토리와 동기화하는 것입니다. 또한 이렇게 하면 다른 Workspace 또는 Studio를 사용하는 팀원과 노트북을 공유하고 저장할 수 있습니다. 지침은 [Git 기반 리포지토리를 EMR Studio Workspace에 연결](emr-studio-git-repo.md) 섹션을 참조하세요.

# EMR Studio에서 워크스페이스 및 노트북 파일 삭제
<a name="emr-studio-delete-workspace"></a>

EMR Studio Workspace에서 노트북 파일을 삭제하면 **파일 브라우저**에서 파일이 삭제되고 EMR Studio는 Amazon S3에서 해당 백업 사본을 제거합니다. Workspace에서 파일을 삭제할 때 스토리지 요금이 부과되지 않도록 추가 조치를 취하지 않아도 됩니다.

*전체 Workspace*를 삭제해도 노트북 파일 및 폴더는 Amazon S3 스토리지 위치에 남아 있습니다. 파일에는 계속해서 스토리지 요금이 누적됩니다. 스토리지 요금이 부과되지 않도록 Amazon S3에서 삭제된 Workspace와 관련된 모든 백업 파일 및 폴더를 제거합니다.

**EMR Studio Workspace에서 노트북 파일을 삭제하는 방법**

1. Workspace의 왼쪽 사이드바에서 **파일 브라우저** 패널을 선택합니다.

1. 삭제할 파일 또는 폴더를 선택합니다. 선택한 항목을 마우스 오른쪽 버튼으로 클릭하고 **삭제**를 선택합니다. 목록에서 파일이 사라집니다. EMR Studio는 사용자를 대신하여 Amazon S3에서 파일 또는 폴더를 제거합니다.

------
#### [ From the Workspace UI ]

**EMR Studio에서 Workspace 및 관련 백업 파일 삭제**

1. Studio 액세스 URL을 사용하여 EMR Studio에 로그인하고 왼쪽 탐색에서 **Workspace**를 선택합니다.

1. 목록에서 Workspace를 찾은 후 이름 옆의 확인란을 선택합니다. 동시에 삭제할 Workspace를 여러 개 선택할 수 있습니다.

1. **Workspace** 목록의 오른쪽 상단에서 **삭제**를 선택하고 선택한 Workspace의 삭제를 확인합니다. [**삭제**]를 선택하여 확인합니다.

1. Amazon S3에서 삭제된 작업 Workspace와 연결된 노트북 파일을 제거하려면 *Amazon Simple Storage Service* *콘솔 사용 설명서*에서 [객체 삭제](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/delete-objects.html) 지침을 따릅니다. Studio를 생성하지 않은 경우 Studio 관리자에게 문의하여 삭제된 Workspace의 Amazon S3 백업 위치를 확인합니다.

------
#### [ From the Workspaces list ]

**Workspace 목록에서 Workspace 및 관련 백업 파일 삭제**

1. 콘솔에서 **Workspace** 목록으로 이동합니다.

1. 목록에서 삭제하려는 Workspace를 선택하고 **작업**을 선택합니다.

1. **삭제**를 선택합니다.

1. Amazon S3에서 삭제된 작업 Workspace와 연결된 노트북 파일을 제거하려면 *Amazon Simple Storage Service* *콘솔 사용 설명서*에서 [객체 삭제](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/delete-objects.html) 지침을 따릅니다. Studio를 생성하지 않은 경우 Studio 관리자에게 문의하여 삭제된 Workspace의 Amazon S3 백업 위치를 확인합니다.

------

# Workspace 상태 이해
<a name="emr-studio-workspace-status"></a>

EMR Studio Workspace를 생성한 후 Studio의 **Workspace** 목록에 이름, 상태, 생성 시간 및 마지막 수정 타임스탬프와 함께 행으로 나타납니다. 다음 테이블에서는 WorkSpace 상태를 설명합니다.


****  

| Status | 설명 | 
| --- | --- | 
| 시작됨 | Workspac를 준비 중이지만 아직 사용할 준비가 되지 않았습니다. 상태가 시작 중일 때는 Workspace를 열 수 없습니다. | 
| 준비됨 | Workspace를 열어 Notebook 편집기를 사용할 수 있지만 노트북 코드를 실행하려면 먼저 EMR 클러스터에 Workspace를 연결해야 합니다. | 
| 연결 | Workspace가 클러스터에 연결 중입니다. | 
| 연결됨 | Workspace는 EMR 클러스터에 연결되어 있으며 노트북 코드를 작성하고 실행할 준비가 되어 있습니다. Workspace가 연결됨 상태가 아닌 경우 노트북 코드를 실행하려면 먼저 클러스터에 연결해야 합니다. | 
| 유휴 | Workspace가 중지되었습니다. 유휴 Workspace를 다시 활성화하려면 Workspace 목록에서 해당 Workspace를 선택합니다. Workspace를 선택하면 상태가 유휴에서 시작 중, 준비로 바뀝니다. | 
| 중지 중 | Workspace가 종료되고 유휴로 설정됩니다. Workspace를 중지하면 해당하는 모든 노트북 커널이 종료됩니다. EMR Studio는 오랫동안 비활성 상태인 노트북을 중지합니다. | 
| 삭제 중 | Workspace를 삭제하면 EMR Studio가 Workspace를 삭제 대상으로 표시하고 삭제 프로세스를 시작합니다. 삭제 프로세스가 완료되면 Workspace가 목록에서 사라집니다. Workspace를 삭제해도 노트북 파일은 Amazon S3 스토리지 위치에 남아 있습니다. | 

# Workspace 연결 문제 해결
<a name="emr-studio-workspace-stop-start"></a>

Workspace 연결 문제를 해결하기 위해 Workspace를 중지하고 다시 시작할 수 있습니다. Workspace를 다시 시작하면 EMR Studio는 다른 가용 영역 또는 Studio와 연결된 다른 서브넷에서 Workspace를 시작합니다.

**EMR Studio Workspace를 중지하고 다시 시작하는 방법**

1. 브라우저에서 Workspace를 닫습니다.

1. 콘솔에서 **Workspace** 목록으로 이동합니다.

1. 목록에서 Workspace를 선택하고 **작업**을 선택합니다.

1. **중지**를 선택하고 Workspace 상태가 **중지 중**에서 **유휴**로 변경될 때까지 기다립니다.

1. **작업**을 다시 선택하고 **시작**을 선택하여 Workspace를 다시 시작합니다.

1. Workspace 상태가 **시작 중**에서 **준비**로 변경될 때까지 기다린 다음 Workspace 이름을 선택하여 새 브라우저 탭에서 Workspace를 다시 엽니다.

# EMR Studio에서 Workspace 협업 구성
<a name="emr-studio-workspace-collaboration"></a>

Workspace 협업을 통해 다른 팀원과 동시에 노트북 코드를 작성하고 실행할 수 있습니다. 동일한 노트북 파일에서 작업하는 경우 공동 작업자가 변경한 내용을 확인할 수 있습니다. Workspace를 생성할 때 협업을 활성화하거나 기존 Workspace에서 협업을 켜거나 끌 수 있습니다.

**참고**  
EMR Studio Workspace 협업은 [EMR Serverless 대화형 애플리케이션](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/interactive-workloads.html)에서, 또는 신뢰할 수 있는 자격 증명 전파가 활성화된 경우에는 지원되지 않습니다.

**사전 조건**

Workspace에 대한 협업을 구성하기 전에 다음 작업을 완료해야 합니다.
+ EMR Studio 관리자가 필요한 권한을 부여했는지 확인합니다. 예를 들어, 다음 예제 명령문을 사용하면 값이 사용자 ID(`aws:userId` 정책 변수로 표시됨)와 일치하는 `creatorUserId` 태그 키를 포함하는 모든 Workspace에 대해 협업을 구성할 수 있습니다.

  ```
  {
      "Sid": "UserRolePermissionsForCollaboration",
      "Action": [
          "elasticmapreduce:UpdateEditor",
          "elasticmapreduce:PutWorkspaceAccess",
          "elasticmapreduce:DeleteWorkspaceAccess",
          "elasticmapreduce:ListWorkspaceAccessIdentities"
      ],
      "Resource": "*",
      "Effect": "Allow",
      "Condition": {
          "StringEquals": {
              "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userid}"
          }
      }
  }
  ```
+ EMR Studio와 연결된 서비스 역할에 Workspace 협업을 활성화하고 구성하는 데 필요한 권한이 있는지 확인합니다(다음 예제 명령문 참조).

  ```
  {
      "Sid": "AllowWorkspaceCollaboration",
      "Effect": "Allow",
      "Action": [
          "iam:GetUser",
          "iam:GetRole",
          "iam:ListUsers",
          "iam:ListRoles",
          "sso:GetManagedApplicationInstance",
          "sso-directory:SearchUsers"
      ],
      "Resource": "*"
  }
  ```

  자세한 내용은 [EMR Studio 서비스 역할 생성](emr-studio-service-role.md) 단원을 참조하십시오.

**Workspace 협업을 활성화하고 공동 작업자를 추가하는 방법**

1. Workspace의 런처 화면 또는 왼쪽 패널 하단에서 **협업** 아이콘을 선택합니다.
**참고**  
Studio 관리자가 Workspace에 대한 협업을 구성할 권한을 부여하지 않으면 **협업** 패널은 표시되지 않습니다. 자세한 내용은 [WorkSpaces 협업에 대한 소유권 설정](emr-studio-user-permissions.md#emr-studio-workspace-collaboration-permissions)을 참조하세요.

1. **Workspace 협업 허용** 토글이 켜져 있는지 확인합니다. 협업을 활성화하면 사용자와 사용자가 추가한 공동 작업자만 Studio **Workspace** 페이지의 목록에서 Workspace를 볼 수 있습니다.

1. **공동 작업자 이름**을 입력합니다. Workspace에는 사용자를 포함하여 최대 5명의 공동 작업자가 있을 수 있습니다. 공동 작업자로는 EMR Studio에 액세스할 수 있는 모든 사용자가 가능합니다. 공동 작업자를 입력하지 않는 경우 Workspace는 사용자만 액세스할 수 있는 프라이빗 Workspace가 됩니다.

   다음 테이블에는 소유자의 자격 증명 유형에 따라 입력할 수 있는 해당 공동 작업자 값이 지정되어 있습니다.
**참고**  
소유자는 자격 증명 유형이 같은 공동 작업자만 초대할 수 있습니다. 예를 들어, 사용자는 다른 사용자를 추가만 할 수 있고 IAM Identity Center 사용자는 다른 IAM Identity Center 사용자를 추가만 할 수 있습니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/emr-studio-workspace-collaboration.html)

1. **추가**를 선택합니다. 이제 공동 작업자는 EMR Studio **Workspace** 페이지에서 Workspace를 확인하고 Workspace를 시작하여 실시간으로 사용할 수 있습니다.

**참고**  
Workspace 협업을 비활성화하면 Workspace가 공유 상태로 돌아가고 모든 Studio 사용자가 볼 수 있습니다. 공유 상태에서는 한 번에 한 명의 Studio 사용자만 Workspace를 열고 작업할 수 있습니다.

# 런타임 역할로 EMR Studio Workspace 실행
<a name="emr-studio-runtime"></a>

**참고**  
이 페이지에 설명된 런타임 역할 기능은 Amazon EC2에서 실행되는 Amazon EMR에만 적용되며, EMR Serverless 대화형 애플리케이션의 런타임 역할 기능을 참조하지 않습니다. EMR Serverless에서 런타임 역할을 사용하는 방법에 대한 자세한 내용은 *Amazon EMR Serverless 사용 설명서*에서 [Job runtime roles](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html)를 참조하세요.

*런타임 역할은* Amazon EMR 클러스터에 작업 또는 쿼리를 제출할 때 지정할 수 있는 AWS Identity and Access Management (IAM) 역할입니다. EMR 클러스터에 제출하는 작업 또는 쿼리는 런타임 역할을 사용하여 Amazon S3의 객체와 같은 AWS 리소스에 액세스합니다.

Amazon EMR 6.11 이상을 사용하는 EMR 클러스터에 EMR Studio Workspace를 연결할 때 AWS 리소스에 액세스할 때 사용할 작업 또는 쿼리의 런타임 역할을 선택할 수 있습니다. 그러나 EMR 클러스터가 런타임 역할을 지원하지 않는 경우 EMR 클러스터는 AWS 리소스에 액세스할 때 역할을 수임하지 않습니다.

Amazon EMR Studio Workspace에서 런타임 역할을 사용하려면 먼저 Studio 사용자가 런타임 역할에서 `elasticmapreduce:GetClusterSessionCredentials` API를 직접 호출할 수 있도록 관리자가 사용자 권한을 구성해야 합니다. 그런 다음 Amazon EMR Studio Workspace에서 사용할 수 있는 런타임 역할을 포함하는 새 클러스터를 시작합니다.

**Topics**
+ [런타임 역할에 대한 사용자 권한 구성](#emr-studio-runtime-setup-permissions)
+ [런타임 역할을 사용하여 새 클러스터 시작](#emr-studio-runtime-setup-cluster)
+ [Workspace에서 런타임 역할을 포함하는 EMR 클러스터 사용](#emr-studio-runtime-use)
+ [고려 사항](#emr-studio-runtime-considerations)

## 런타임 역할에 대한 사용자 권한 구성
<a name="emr-studio-runtime-setup-permissions"></a>

Studio 사용자가 사용하려는 런타임 역할에서 `elasticmapreduce:GetClusterSessionCredentials` API를 직접 호출할 수 있도록 사용자 권한을 구성합니다. 또한 사용자가 Studio 사용을 시작하기 전에 [Amazon EC2 또는 Amazon EKS에 대한 EMR Studio 사용자 권한 구성](emr-studio-user-permissions.md)을 구성해야 합니다.

**주의**  
이 권한을 부여하려면 호출자에게 `GetClusterSessionCredentials` API 직접 호출 액세스 권한을 부여할 때 `elasticmapreduce:ExecutionRoleArn` 컨텍스트 키를 기반으로 조건을 생성합니다. 다음 예제에서는 이 작업을 수행하는 방법을 보여줍니다.

```
{
      "Sid": "AllowSpecificExecRoleArn",
      "Effect": "Allow",
      "Action": [
          "elasticmapreduce:GetClusterSessionCredentials"
      ],
      "Resource": "*",
      "Condition": {
          "StringEquals": {
              "elasticmapreduce:ExecutionRoleArn": [
                  "arn:aws:iam::111122223333:role/test-emr-demo1",
                  "arn:aws:iam::111122223333:role/test-emr-demo2"
              ]
          }
      }
  }
```

다음 예제에서는 IAM 보안 주체가 런타임 역할로 `test-emr-demo3` IAM 역할을 사용하도록 허용하는 방법을 보여줍니다. 또한 정책 보유자는 클러스터 ID `j-123456789`로만 Amazon EMR 클러스터에 액세스할 수 있습니다.

```
{
    "Sid":"AllowSpecificExecRoleArn",
    "Effect":"Allow",
    "Action":[
        "elasticmapreduce:GetClusterSessionCredentials"
    ],
    "Resource": [
          "arn:aws:elasticmapreduce:<region>:111122223333:cluster/j-123456789"
     ],
    "Condition":{
        "StringEquals":{
            "elasticmapreduce:ExecutionRoleArn":[
                "arn:aws:iam::111122223333:role/test-emr-demo3"
            ]
        }
    }
}
```

다음 예제를 통해 IAM 보안 주체는 이름이 `test-emr-demo4` 문자열로 시작하는 모든 IAM 역할을 런타임 역할로 사용할 수 있습니다. 또한 정책 보유자는 키-값 페어 `tagKey: tagValue`로 태그가 지정된 Amazon EMR 클러스터에만 액세스할 수 있습니다.

```
{
    "Sid":"AllowSpecificExecRoleArn",
    "Effect":"Allow",
    "Action":[
        "elasticmapreduce:GetClusterSessionCredentials"
    ],
    "Resource": "*",
    "Condition":{
        "StringEquals":{
             "elasticmapreduce:ResourceTag/tagKey": "tagValue"
        },
        "StringLike":{
            "elasticmapreduce:ExecutionRoleArn":[
                "arn:aws:iam::111122223333:role/test-emr-demo4*"
            ]
        }
    }
}
```

## 런타임 역할을 사용하여 새 클러스터 시작
<a name="emr-studio-runtime-setup-cluster"></a>

이제 필요한 권한을 확보했으면 Amazon EMR Studio Workspace에서 사용할 수 있는 런타임 역할을 포함하는 새 클러스터를 시작합니다.

런타임 역할이 있는 새 클러스터를 이미 시작한 경우 [Workspace에서 런타임 역할을 포함하는 EMR 클러스터 사용](#emr-studio-runtime-use) 섹션으로 건너뛰어도 됩니다.

1. 먼저 [Amazon EMR 단계의 런타임 역할](emr-steps-runtime-roles.md#emr-steps-runtime-roles-configure) 섹션의 필수 조건을 완료합니다.

1. 그런 다음 Amazon EMR Studio Workspace에서 런타임 역할을 사용하도록 다음 설정으로 클러스터를 시작합니다. 클러스터를 시작하는 방법에 대한 지침은 [Amazon EMR 클러스터에 대한 보안 구성 지정](emr-specify-security-configuration.md) 섹션을 참조하세요.
   + 릴리스 레이블 emr-6.11.0 이상을 선택합니다.
   + Spark, Livy, Jupyter Enterprise Gateway를 클러스터 애플리케이션으로 선택합니다.
   + 이전 단계에서 생성한 보안 그룹을 사용합니다.
   + 선택적으로 EMR 클러스터에 대해 Lake Formation을 활성화할 수 있습니다. 자세한 내용은 [Amazon EMR에서 Lake Formation 활성화](emr-lf-enable.md) 단원을 참조하십시오.

클러스터를 시작한 후에는 [EMR Studio Workspace에서 런타임 역할 지원 클러스터를 사용](#emr-studio-runtime-use)할 준비가 된 것입니다.

**참고**  
[ExecutionRoleArn](https://docs.aws.amazon.com/emr/latest/APIReference/API_ExecutionEngineConfig.html           #EMR-Type-ExecutionEngineConfig-ExecutionRoleArn) 값은 `ExecutionEngineConfig.Type` 값이 `EMR`인 경우 현재 [StartNotebookExecution](https://docs.aws.amazon.com/emr/latest/APIReference/API_StartNotebookExecution.html) API 작업에서 지원되지 않습니다.

## Workspace에서 런타임 역할을 포함하는 EMR 클러스터 사용
<a name="emr-studio-runtime-use"></a>

클러스터를 설정하고 시작한 후에는 EMR Studio Workspace에서 런타임 역할 지원 클러스터를 사용할 수 있습니다.

1. 새 Workspace를 생성하거나 기존 Workspace를 시작합니다. 자세한 내용은 [EMR Studio Workspace 생성](emr-studio-create-workspace.md) 단원을 참조하십시오.

1. 열린 Workspace의 왼쪽 사이드바에서 **EMR 클러스터** 탭을 선택하고 **컴퓨팅 유형** 섹션을 확장한 다음, **EC2의 EMR 클러스터** 메뉴에서 클러스터를 선택하고 **런타임 역할** 메뉴에서 런타임 역할을 선택합니다.  
![\[EMR Studio Workspace 사용자 인터페이스는 JupyterLab 인터페이스를 기반으로 하며 왼쪽 사이드바에 아이콘으로 표시된 탭이 있습니다.\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/images/emr-studio-jupyter-runtime.png)

1. **연결**을 선택하여 Workspace에 런타임 역할을 포함하는 클러스터를 연결합니다.

**참고**  
런타임 역할을 선택하면 기본 관리형 정책이 연결될 수 있습니다. 대부분의 경우 특정 노트북과 같은 제한된 리소스를 선택하는 것이 좋습니다. 예를 들어, 모든 노트북에 대한 액세스 권한이 포함된 런타임 역할을 선택하면 역할과 연결된 관리형 정책이 전체 액세스 권한을 제공합니다.

## 고려 사항
<a name="emr-studio-runtime-considerations"></a>

Amazon EMR Studio Workspace에서 런타임 역할 지원 클러스터를 사용할 때 다음 사항을 고려합니다.
+ Amazon EMR 릴리스 6.11 이상을 사용하는 EMR 클러스터에 EMR Studio Workspace를 연결할 때만 런타임 역할을 선택할 수 있습니다.
+ 이 페이지에 설명된 런타임 역할 기능은 Amazon EC2에서 실행되는 Amazon EMR에서만 지원되며, EMR Serverless 대화형 애플리케이션에서는 지원되지 않습니다. EMR Serverless에서 런타임 역할에 대한 자세한 내용은 *Amazon EMR Serverless 사용 설명서*에서 [Job runtime roles](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html)를 참조하세요.
+ 클러스터에 작업을 제출할 때 런타임 역할을 지정하기 전에 추가 권한을 구성해야 하지만 EMR Studio Workspace에서 생성된 파일에 액세스하기 위한 추가 권한은 필요하지 않습니다. 이러한 파일에 대한 권한은 런타임 역할 없이 클러스터에서 생성된 파일과 동일합니다.
+ 런타임 역할이 있는 클러스터를 포함하는 EMR Studio Workspace에서는 SQL 탐색기를 사용할 수 없습니다. Amazon EMR은 Workspace가 런타임 역할 지원 EMR 클러스터에 연결된 경우 UI에서 SQL 탐색기를 비활성화합니다.
+ 런타임 역할이 있는 클러스터를 포함하는 EMR Studio Workspace에서는 협업 모드를 사용할 수 없습니다. Amazon EMR은 Workspace가 런타임 역할 지원 EMR 클러스터에 연결된 경우 Workspace 협업 기능을 비활성화합니다. Workspace는 해당 Workspace를 연결한 사용자만 계속 액세스할 수 있습니다.
+ IAM Identity Center의 신뢰할 수 있는 자격 증명 전파가 활성화된 Studio에서는 런타임 역할을 사용할 수 없습니다.
+ Amazon EMR 릴리스 7.4.0 이하를 사용하는 런타임 역할 사용 클러스터의 경우 Spark UI에서 **'Page may not be safe\$1'** 경고가 표시될 수 있습니다. 이 경우 알림을 무시하고 Spark UI를 계속 표시하게 합니다.

# 프로그래밍 방식으로 Amazon EMR Studio Workspace 노트북 실행
<a name="emr-studio-run-programmatically"></a>

**참고**  
Amazon EMR Serverless 대화형 애플리케이션에서는 노트북의 프로그래밍 방식 실행을 지원하지 않습니다.

Amazon EMR Studio Workspace 노트북을 스크립트 또는 AWS CLI에서 프로그래밍 방식으로 실행할 수 있습니다. 노트북을 프로그래밍 방식으로 실행하는 방법은 [EMR Notebooks에 대한 프로그래밍 명령 샘플](emr-managed-notebooks-headless.md) 섹션을 참조하세요.

# EMR Studio에 대해 SQL 탐색기로 데이터 찾아보기
<a name="emr-studio-sql-explorer"></a>

**참고**  
Amazon EMR Serverless 대화형 애플리케이션 또는 IAM Identity Center 신뢰할 수 있는 자격 증명 전파가 활성화된 Studio에서는 EMR Studio용 SQL Explorer가 지원되지 않습니다.

이 주제에서는 Amazon EMR Studio에서 SQL 탐색기를 시작하는 데 도움이 되는 정보를 제공합니다. SQL 탐색기는 EMR 클러스터 데이터 카탈로그의 데이터 소스를 이해하는 데 도움이 되는 Workspace의 단일 페이지 도구입니다. SQL 탐색기를 사용하여 데이터를 찾아보고, SQL 쿼리를 실행하여 데이터를 검색하며, 쿼리 결과를 다운로드할 수 있습니다.

SQL 탐색기는 Presto를 지원합니다. SQL 탐색기를 사용하기 전에 Amazon EMR 버전 5.34.0 이상 또는 Presto가 설치된 버전 6.4.0 이상을 사용하는 클러스터가 있는지 확인합니다. Amazon EMR Studio SQL 탐색기는 전송 중 암호화 기능이 구성된 Presto 클러스터를 지원하지 않습니다. Presto가 이러한 클러스터에서 TLS 모드로 실행되기 때문입니다.

## 클러스터의 데이터 카탈로그 찾아보기
<a name="emr-studio-sql-explorer-browse"></a>

SQL 탐색기는 데이터 구성 방식을 탐색하고 이해하는 데 사용할 수 있는 카탈로그 브라우저 인터페이스를 제공합니다. 예를 들어, SQL 쿼리를 작성하기 전에 데이터 카탈로그 브라우저를 사용하여 테이블 및 열 이름을 확인할 수 있습니다.

**데이터 카탈로그를 찾아보는 방법**

1. Workspace에서 SQL 탐색기를 엽니다.

1. Presto가 설치된 Amazon EMR 버전 6.4.0 이상을 사용하는 EC2에서 실행되는 EMR 클러스터에 Workspace가 연결되어 있는지 확인합니다. 기존 키 페어를 선택하거나 새로 생성할 수 있습니다. 자세한 내용은 [EMR Studio Workspace에 컴퓨팅 연결](emr-studio-create-use-clusters.md) 단원을 참조하십시오.

1. 드롭다운 목록에서 **데이터베이스**를 선택하여 찾습니다.

1. 데이터베이스의 테이블을 확장하여 테이블의 열 이름을 확인합니다. 검색 표시줄에 키워드를 입력하여 테이블 결과를 필터링할 수도 있습니다.

## SQL 쿼리를 실행하여 데이터 검색
<a name="emr-studio-sql-explorer-run-query"></a>

**SQL 쿼리로 데이터를 검색하고 결과를 다운로드하는 방법**

1. Workspace에서 SQL 탐색기를 엽니다.

1. Presto와 Spark가 설치된 EC2에서 실행되는 EMR 클러스터에 Workspace가 연결되어 있는지 확인합니다. 기존 키 페어를 선택하거나 새로 생성할 수 있습니다. 자세한 내용은 [EMR Studio Workspace에 컴퓨팅 연결](emr-studio-create-use-clusters.md) 단원을 참조하십시오.

1. **편집기 열기**를 선택하여 Workspace에서 새 편집기 탭을 엽니다.

1. 편집기 탭에서 SQL 쿼리를 작성합니다.

1. **실행**을 선택합니다.

1. **결과 미리보기**에서 쿼리 결과를 확인합니다. SQL 탐색기에는 기본적으로 처음 100개의 결과가 표시됩니다. **처음 100개의 쿼리 결과 미리 보기** 드롭다운을 사용하여 표시할 여러 결과 수(최대 1,000개)를 선택할 수 있습니다.

1. CSV 형식으로 결과를 다운로드하려면 **결과 다운로드**를 선택합니다. 최대 1,000행의 결과를 다운로드할 수 있습니다.

# EMR Studio Workspace에 컴퓨팅 연결
<a name="emr-studio-create-use-clusters"></a>

Amazon EMR Studio는 EMR 클러스터의 커널을 사용하여 노트북 명령을 실행합니다. 커널을 선택하려면 먼저 Amazon EC2 인스턴스를 사용하는 클러스터, Amazon EMR on EKS 클러스터 또는 EMR Serverless 애플리케이션에 Workspace를 연결해야 합니다. EMR Studio를 사용하면 Workspace를 새 클러스터나 기존 클러스터에 연결하고 Workspace를 닫지 않고도 클러스터를 변경할 수 있는 유연성을 제공합니다.

**Topics**
+ [Amazon EC2 클러스터 연결](#emr-studio-attach-cluster)
+ [Amazon EMR on EKS 클러스터 연결](#emr-studio-use-eks-cluster)
+ [EMR Serverless 애플리케이션 연결](#emr-studio-use-serverless-studio)
+ [클러스터 생성](#emr-studio-create-cluster)
+ [컴퓨터 분리](#emr-studio-detach-cluster)

## Amazon EC2 클러스터를 EMR Studio Workspace에 연결
<a name="emr-studio-attach-cluster"></a>

Workspace를 생성할 때 Amazon EC2에서 실행되는 EMR 클러스터를 Workspace에 연결하거나 클러스터를 기존 Workspace에 연결할 수 있습니다. *새* 클러스터를 생성 및 연결하려면 [새 EMR 클러스터를 생성하여 EMR Studio Workspace에 연결](#emr-studio-create-cluster) 섹션을 참조하세요.

**참고**  
IAM Identity Center 신뢰할 수 있는 자격 증명 전파가 활성화된 Studio의 작업 영역은 Identity Center가 활성화된 보안 구성이 있는 EMR 클러스터에만 연결할 수 있습니다.

------
#### [ On create ]

**Workspace를 생성할 때 Amazon EMR 컴퓨팅 클러스터에 연결**

1. **Workspace 생성** 대화 상자에서 새 Workspace의 서브넷을 이미 선택했는지 확인합니다. **고급 구성** 섹션을 확장합니다.

1. **EMR 클러스터에 Workspace 연결**을 선택합니다.

1. **EMR 클러스터** 드롭다운 목록에서 Workspace에 연결할 기존 EMR 클러스터를 선택합니다.

클러스터를 연결한 후 Workspace 생성을 완료합니다. 새 Workspace를 처음 열고 **EMR 클러스터** 패널을 선택하면 선택한 클러스터가 연결되었음을 알 수 있습니다.

------
#### [ On launch ]

**Workspace를 시작할 때 Amazon EMR 컴퓨팅 클러스터에 연결**

1. Workspace 목록으로 이동하여 시작하려는 Workspace의 행을 선택합니다. 그런 다음 **Workspace 시작** > **옵션으로 시작**을 선택합니다.

1. Workspace에 연결할 EMR 클러스터를 선택합니다.

클러스터를 연결한 후 Workspace 생성을 완료합니다. 새 Workspace를 처음 열고 **EMR 클러스터** 패널을 선택하면 선택한 클러스터가 연결되었음을 알 수 있습니다.

------
#### [ In JupyterLab ]

**JupyterLab에서 Amazon EMR 컴퓨팅 클러스터에 Workspace 연결**

1. Workspace를 선택하고 **Workspace 시작** > **빠른 시작**을 선택합니다.

1. JupyterLab에서 왼쪽 사이드바의 **클러스터** 탭을 엽니다.

1. **EMR on EC2 클러스터** 드롭다운을 선택하거나 Amazon EMR on EKS 클러스터를 선택합니다.

1. **연결**을 선택하여 클러스터를 Workspace에 연결합니다.

클러스터를 연결한 후 Workspace 생성을 완료합니다. 새 Workspace를 처음 열고 **EMR 클러스터** 패널을 선택하면 선택한 클러스터가 연결되었음을 알 수 있습니다.

------
#### [ In the Workspace UI ]

**Workspace 사용자 인터페이스에서 Amazon EMR 컴퓨팅 클러스터에 Workspace 연결**

1. 클러스터에 연결하려는 Workspace의 왼쪽 사이드바에서 **EMR 클러스터** 아이콘을 선택하여 **클러스터** 패널을 엽니다.

1. **클러스터 유형**에서 드롭다운을 확장하고 **EC2의 EMR 클러스터**를 선택합니다.

1. 드롭다운 목록에서 클러스터를 선택합니다. 클러스터 선택 드롭다운 목록을 활성화하려면 먼저 기존 클러스터를 분리해야 할 수 있습니다.

1. **연결**을 선택합니다. 클러스터가 연결되면 성공 메시지가 표시됩니다.

------

## Amazon EMR on EKS 클러스터를 EMR Studio Workspace에 연결
<a name="emr-studio-use-eks-cluster"></a>

Amazon EC2에서 실행되는 Amazon EMR 클러스터를 사용하는 것 외에도 Workspace를 Amazon EMR on EKS 클러스터에 연결하여 노트북 코드를 실행할 수 있습니다. Amazon EMR on EKS에 대한 자세한 내용은 [Amazon EMR on EKS는 무엇인가요?](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks.html)를 참조하세요.

Workspace를 Amazon EMR on EKS 클러스터에 연결하려면 먼저 Studio 관리자가 액세스 권한을 부여해야 합니다.

**참고**  
IAM Identity Center 신뢰할 수 있는 자격 증명 전파를 사용하는 EMR Studio에서는 Amazon EMR on EKS 클러스터를 시작할 수 없습니다.

------
#### [ On create ]

**Workspace를 생성할 때 Amazon EMR on EKS 클러스터를 연결하는 방법**

1. **Workspace 생성** 대화 상자에서 **고급 구성** 섹션을 확장합니다.

1. **Amazon EMR on EKS 클러스터에 Workspace 연결**을 선택합니다.

1. **Amazon EMR on EKS 클러스터**의 드롭다운 목록에서 클러스터를 선택합니다.

1. **엔드포인트 선택**에서 Workspace에 연결할 관리형 엔드포인트를 선택합니다. 관리형 엔드포인트는 EMR Studio가 선택한 클러스터와 통신할 수 있도록 지원하는 게이트웨이입니다.

1. **Workspace 생성**을 선택하여 Workspace 생성 프로세스를 완료하고 선택한 클러스터를 연결합니다.

클러스터를 연결한 후 Workspace 생성 프로세스를 완료할 수 있습니다. 새 Workspace를 처음 열고 **EMR 클러스터** 패널을 선택하면 선택한 클러스터가 연결되었음을 알 수 있습니다.

------
#### [ In the Workspace UI ]

**Workspace 사용자 인터페이스에서 Amazon EMR on EKS을 연결하는 방법**

1. 클러스터에 연결하려는 Workspace의 왼쪽 사이드바에서 **EMR 클러스터** 아이콘을 선택하여 **클러스터** 패널을 엽니다.

1. **클러스터 유형** 드롭다운을 확장하고 **EKS의 EMR 클러스터**를 선택합니다.

1. **EKS의 EMR 클러스터**에서 드롭다운 목록에서 클러스터를 선택합니다.

1. **엔드포인트**에서 Workspace에 연결할 관리형 엔드포인트를 선택합니다. 관리형 엔드포인트는 EMR Studio가 선택한 클러스터와 통신할 수 있도록 지원하는 게이트웨이입니다.

1. **연결**을 선택합니다. 클러스터가 연결되면 성공 메시지가 표시됩니다.

------

## Amazon EMR Serverless 애플리케이션을 EMR Studio Workspace에 연결
<a name="emr-studio-use-serverless-studio"></a>

Workspace를 EMR Serverless 애플리케이션에 연결하여 대화형 워크로드를 실행할 수 있습니다. 자세한 내용은 [노트북을 사용하여 EMR Studio를 통해 EMR Serverless에서 대화형 워크로드 실행](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/interactive-workloads.html)을 참조하세요.

**참고**  
EMR Serverless 애플리케이션은 IAM Identity Center 신뢰할 수 있는 자격 증명 전파를 사용하는 EMR Studio에 연결할 수 없습니다.

**Example JupyterLab에서 EMR Serverless 애플리케이션에 Workspace 연결**  
Workspace를 EMR Serverless 애플리케이션에 연결하려면 먼저 계정 관리자가 [대화형 워크로드에 필요한 권한](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/interactive-workloads.html#interactive-permissions)에서 설명한 대로 액세스 권한을 부여해야 합니다.  

1. EMR Studio로 이동한 후 Workspace를 선택하고 **Workspace 시작** > **빠른 시작**을 선택합니다.

1. JupyterLab에서 왼쪽 사이드바의 **클러스터** 탭을 엽니다.

1. 컴퓨팅 옵션으로 **EMR Serverless**를 선택한 다음, EMR Serverless 애플리케이션과 런타임 역할을 선택합니다.

1. 클러스터를 Workspace에 연결하려면 **연결**을 선택합니다.
이제 이 Workspace를 열면 선택한 애플리케이션이 연결된 것을 확인할 수 있습니다.

## 새 EMR 클러스터를 생성하여 EMR Studio Workspace에 연결
<a name="emr-studio-create-cluster"></a>

고급 EMR Studio 사용자는 Amazon EC2에서 실행되는 새 EMR 클러스터를 프로비저닝하여 Workspace에서 사용할 수 있습니다. 새 클러스터에는 EMR Studio에 필요한 모든 빅 데이터 애플리케이션이 기본적으로 설치되어 있습니다.

클러스터를 생성하려면 Studio 관리자가 먼저 세션 정책을 사용하여 권한을 부여해야 합니다. 자세한 내용은 [EMR Studio 사용자를 위한 권한 정책 생성](emr-studio-user-permissions.md#emr-studio-permissions-policies) 단원을 참조하십시오.

**Workspace 생성** 대화 상자 또는 Workspace UI의 **클러스터** 패널에서 새 클러스터를 생성할 수 있습니다. 어느 쪽이든 다음 두 가지 클러스터 생성 옵션이 제공됩니다.

1. **EMR 클러스터 생성** - Amazon EC2 인스턴스 유형과 수를 선택하여 EMR 클러스터를 생성합니다.

1. **클러스터 템플릿 사용** - 사전 정의된 클러스터 템플릿을 선택하여 클러스터를 프로비저닝합니다. 이 옵션은 클러스터 템플릿을 사용할 권한이 있는 경우에 나타납니다.
**참고**  
Studio를 위한 IAM Identity Center를 사용하여 신뢰할 수 있는 자격 증명 전파를 활성화한 경우에는 템플릿을 사용하여 클러스터를 생성해야 합니다.

**클러스터 구성을 제공하여 EMR 클러스터를 생성하는 방법**

1. 시작 지점을 선택합니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/emr-studio-create-use-clusters.html)

1. **클러스터 이름**을 입력합니다. 클러스터 이름을 지정하면 나중에 EMR Studio 클러스터 목록에서 해당 클러스터를 찾을 때 도움이 됩니다.

1. **Amazon EMR 릴리스**에서 클러스터의 Amazon EMR 릴리스 버전을 선택합니다.

1. **인스턴스**에서 클러스터의 Amazon EC2 인스턴스 유형 및 수를 선택합니다. 인스턴스 유형 선택에 대한 자세한 내용은 [Amazon EMR에서 사용할 Amazon EC2 인스턴스 유형을 구성합니다.](emr-plan-ec2-instances.md) 섹션을 참조하세요. 인스턴스 하나가 프라이머리 노드에 사용됩니다.

1. EMR Studio가 새 클러스터를 시작할 수 있는 **서브넷**을 선택합니다. 각 서브넷 옵션은 Studio 관리자의 사전 승인을 받으며 Workspace는 나열된 모든 서브넷의 클러스터에 연결할 수 있어야 합니다.

1. **로그 스토리지에 대한 S3 URI**를 선택합니다.

1. **EMR 클러스터 생성**을 선택하여 클러스터를 프로비저닝합니다. **Workspace 생성** 대화 상자를 사용하는 경우 **Workspace 생성**을 선택하여 Workspace를 생성하고 클러스터를 프로비저닝합니다. EMR Studio는 새 클러스터를 프로비저닝한 후 클러스터를 Workspace에 연결합니다.

**클러스터 템플릿 사용하여 클러스터를 생성하는 방법**

1. 시작 지점을 선택합니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/emr-studio-create-use-clusters.html)

1. 드롭다운 목록에서 클러스터 템플릿을 선택합니다. 사용 가능한 각 클러스터 템플릿에는 선택에 도움이 되는 간략한 설명이 포함되어 있습니다.

1. 선택한 클러스터 템플릿에는 Amazon EMR 릴리스 버전 또는 클러스터 이름과 같은 추가 파라미터가 있을 수 있습니다. 값을 선택 또는 삽입하거나 관리자가 선택한 기본값을 사용할 수 있습니다.

1. EMR Studio가 새 클러스터를 시작할 수 있는 **서브넷**을 선택합니다. 각 서브넷 옵션은 Studio 관리자의 사전 승인을 받으며 Workspace는 모든 서브넷의 클러스터에 연결할 수 있어야 합니다.

1. **클러스터 템플릿 사용**을 선택하여 클러스터를 프로비전하고 Workspace에 연결합니다. EMR Studio에서 클러스터를 생성하는 데 몇 분 정도 걸립니다. **Workspace 생성** 대화 상자를 사용하는 경우 **Workspace 생성**을 선택하여 Workspace를 생성하고 클러스터를 프로비저닝합니다. EMR Studio는 새 클러스터를 프로비저닝한 후 클러스터를 Workspace에 연결합니다.

## EMR Studio Workspace에서 컴퓨팅 분리
<a name="emr-studio-detach-cluster"></a>

Workspace에 연결된 클러스터를 교환하려면 Workspace UI에서 클러스터를 분리하면 됩니다.

**WorkSpaces에서 클러스터를 분리하는 방법**

1. 클러스터에서 분리하려는 Workspace의 왼쪽 사이드바에서 **EMR 클러스터** 아이콘을 선택하여 **클러스터** 패널을 엽니다.

1. **클러스터 선택**에서 **분리**를 선택하고 EMR Studio가 클러스터를 분리할 때까지 기다립니다. 클러스터가 분리되면 성공 메시지가 표시됩니다.

**EMR Studio Workspace에서 EMR Serverless 애플리케이션을 분리하는 방법**

Workspace에 연결된 컴퓨팅을 교환하려면 Workspace UI에서 애플리케이션을 분리하면 됩니다.

1. 클러스터에서 분리하려는 Workspace의 왼쪽 사이드바에서 **Amazon EMR 클러스터** 아이콘을 선택하여 **컴퓨팅** 패널을 엽니다.

1. **컴퓨팅 선택**에서 **분리**를 선택하고 EMR Studio가 애플리케이션을 분리할 때까지 기다립니다. 애플리케이션이 분리되면 성공 메시지가 표시됩니다.

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

노트북 파일을 저장하고 공유하도록 최대 3개의 Git 기반 리포지토리를 Amazon EMR Studio Workspace와 연결합니다.

## EMR Studio용 Git 리포지토리 정보
<a name="emr-studio-git-repo-about"></a>

최대 3개의 Git 리포지토리를 EMR Studio Workspace에 연결할 수 있습니다. 기본적으로 각 Workspace를 사용하면 Studio와 동일한 AWS 계정과 연결된 Git 리포지토리 목록에서 선택할 수 있습니다. 새 Git 리포지토리를 WorkSpace의 리소스로 생성할 수도 있습니다.

클러스터의 프라이머리 노드에 연결된 상태에서 터미널 명령을 사용하여 다음과 같은 Git 명령을 실행할 수 있습니다.

```
!git pull origin <branch-name>
```

또는 jupyterlab-git 확장을 사용할 수 있습니다. 왼쪽 사이드바에서 **Git** 아이콘을 선택하여 엽니다. JupyterLab용 jupyterlab-git 확장에 대한 자세한 내용은 [jupyterlab-git](https://github.com/jupyterlab/jupyterlab-git)를 참조하세요.

## 사전 조건
<a name="emr-studio-git-prereqs"></a>
+ Git 리포지토리를 Workspace에 연결하려면 Git 리포지토리 연결을 허용하도록 Studio를 구성해야 합니다. Studio 관리자가 [Git 기반 리포지토리에 대한 액세스 및 권한 설정](emr-studio-enable-git.md)에 대한 단계를 수행해야 합니다.
+ CodeCommit 리포지토리를 사용하는 경우 Git 보안 인증 및 HTTPS를 사용해야 합니다. AWS Command Line Interface 자격 증명 헬퍼가 있는 SSH 키 및 HTTPS는 지원되지 않습니다. CodeCommit은 개인용 액세스 토큰(PAT)도 지원하지 않습니다. 자세한 내용은 *IAM 사용 설명서*에서 [IAM과 CodeCommit을 함께 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html) 및 *AWS CodeCommit 사용 설명서*에서 [Setup for HTTPS users using Git credentials](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html)를 참조하세요.

## 지침
<a name="emr-studio-link-git-repo"></a>

**연결된 Git 리포지토리를 Workspace에 연결하는 방법**

1. Studio의 **Workspace** 목록에서 리포지토리에 연결하려는 Workspace를 엽니다.

1. 왼쪽 사이드바에서 **Amazon EMR Git 리포지토리** 아이콘을 선택하여 **Git 리포지토리** 도구 패널을 엽니다.

1. **Git 리포지토리**에서 드롭다운 목록을 확장하고 Workspace에 연결할 리포지토리를 최대 3개 선택합니다. EMR Studio는 선택 항목을 등록하고 각 리포지토리를 연결하기 시작합니다.

연결 프로세스를 완료하는 데 시간이 걸릴 수 있습니다. **Git 리포지토리** 도구 패널에서 선택한 각 리포지토리의 상태를 볼 수 있습니다. EMR Studio가 리포지토리를 Workspace에 연결하면 해당 리포지토리에 속하는 파일이 **파일 브라우저** 패널에 나타납니다.

**새 Git 리포지토리를 Workspace에 리소스로 추가하는 방법**

1. Studio의 Workspace 목록에서 리포지토리에 연결하려는 Workspace를 엽니다.

1. 왼쪽 사이드바에서 **Amazon EMR Git 리포지토리** 아이콘을 선택하여 **Git 리포지토리** 도구 패널을 엽니다.

1. **새 Git 리포지토리 추가**를 선택합니다.

1. **리포지토리 이름**에 EMR Studio의 리포지토리에 대한 설명 이름을 입력합니다. 이름은 영숫자, 하이픈(-) 및 밑줄(\$1)만 포함할 수 있습니다.

1. **Git repository URL(Git 리포지토리 URL)**에 리포지토리 URL을 입력합니다. CodeCommit 리포지토리를 사용하는 경우, **URL 복제**를 선택한 다음 **HTTPS 복제**를 선택하면 복사되는 URL입니다. 예를 들어 `https://git-codecommit.us-west-2.amazonaws.com/v1/repos/[MyCodeCommitRepoName]`입니다.

1. **브랜치**에는 체크아웃하려는 기존 브랜치의 이름을 입력합니다.

1. Git 보안 인증의 경우 다음 지침에 따라 옵션을 선택합니다. EMR Studio는 Secrets Manager에 저장된 보안 암호를 사용하여 Git 보안 인증에 액세스합니다.
**참고**  
GitHub 리포지토리를 사용하는 경우 개인 액세스 토큰(PAT)을 사용하여 인증하는 것이 좋습니다. 2021년 8월 13일부터 GitHub는 토큰 기반 인증을 요구하며 Git 작업을 인증할 때 더 이상 암호를 허용하지 않습니다. 자세한 내용은 *GitHub* 블로그의 [Token authentication requirements for Git operations](https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/) 게시물을 참조하세요.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/emr-studio-git-repo.html)

1. **리포지토리 추가**를 선택하여 새 리포지토리를 생성합니다. EMR Studio에서 새 리포지토리를 생성한 후에 성공 메시지가 표시됩니다. 그러면 **Git 리포지토리** 아래 드롭다운 목록에 새 리포지토리가 표시됩니다.

1. 새 리포지토리를 Workspace에 연결하려면 **Git 리포지토리** 아래 드롭다운 목록에서 해당 리포지토리를 선택합니다.

연결 프로세스를 완료하는 데 시간이 걸릴 수 있습니다. EMR Studio가 새 리포지토리를 Workspace에 연결하면 **파일 브라우저** 패널에 리포지토리와 이름이 같은 새 폴더가 나타납니다.

연결된 다른 리포지토리를 열려면 **파일 브라우저**에서 해당 폴더로 이동합니다.

# EMR Studio에서 Amazon Athena SQL 편집기 사용
<a name="emr-studio-athena"></a>

## 개요
<a name="emr-studio-athena-overview"></a>

Amazon EMR Studio를 사용하여 Amazon Athena에서 대화형 쿼리를 개발하고 실행할 수 있습니다. 즉, Spark, Scala 및 기타 워크로드를 실행하는 데 사용하는 것과 동일한 EMR Studio 인터페이스의 Athena에서 SQL 분석을 수행할 수 있습니다. 이 통합을 통해 자동 완성을 사용하여 쿼리를 빠르게 개발하고, AWS Glue 데이터 카탈로그에서 데이터를 찾아보고, 저장된 쿼리를 생성하고, 쿼리 기록을 보는 등의 작업을 수행할 수 있습니다.

Amazon Athena 사용에 대한 자세한 내용을 확인하려면 *Amazon Athena 사용 설명서*의 [Athena SQL 사용](https://docs.aws.amazon.com/athena/latest/ug/using-athena-sql.html)을 참조하세요.

## EMR Studio에서 Athena SQL 편집기 사용
<a name="emr-studio-athena-use"></a>

EMR Studio에서 Amazon Athena에 대한 대화형 쿼리를 개발하고 실행하려면 다음 단계를 따르세요.

1. 이 Studio의 작업 영역에 액세스하는 사용자의 사용자 역할에 필요한 권한을 추가합니다. 권한은 **EMR Studio에서 Amazon Athena SQL 편집기에 액세스** 열의 표 [AWS Identity and Access Management EMR Studio 사용자에 대한 권한](emr-studio-user-permissions.md#emr-studio-iam-permissions-table)에 나열되어 있습니다. 또는 [사용자 정책 예제](emr-studio-user-permissions.md#emr-studio-example-policies)에서 **고급** 정책 콘텐츠를 복사하여 사용자에게 이 항목을 포함한 EMR Studio 기능에 대한 모든 권한을 부여하도록 선택할 수 있습니다.

1. [EMR Studio를 설정](emr-studio-set-up.md)하고 [생성](emr-studio-create-studio.md)합니다.

1. Studio로 이동하여 사이드바에서 **쿼리 편집기**를 선택합니다.

그러면 익숙한 Athena의 편집기 UI가 나타납니다. 시작하고 Athena SQL을 사용하여 대화형 쿼리를 실행하는 작업에 대한 자세한 내용을 확인하려면 *Amazon Athena 사용 설명서*의 [시작하기](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html) 및 [Athena SQL 사용](https://docs.aws.amazon.com/athena/latest/ug/using-athena-sql.html)을 참조하세요.

**참고**  
EMR Studio에 대한 IAM Identity Center를 통해 신뢰할 수 있는 자격 증명 전파를 활성화했다면, Athena 작업 그룹을 사용하여 쿼리 액세스를 제어해야 하며 사용하는 작업 그룹에서도 신뢰할 수 있는 자격 증명 전파를 사용해야 합니다. Identity Center를 설정하고 작업 그룹에 대해 신뢰할 수 있는 자격 증명 전파를 활성화하기 위한 단계를 확인하려면 Amazon Athena 사용 설명서의 [IAM Identity Center 지원 Athena 작업 그룹 사용](https://docs.aws.amazon.com/athena/latest/ug/workgroups-identity-center.html)을 참조하세요.**

## EMR Studio에서 Athena SQL 편집기를 사용하는 경우의 고려할 사항
<a name="emr-studio-athena-considerations"></a>
+ Athena와의 통합은 EMR Studio 및 Athena를 사용할 수 있는 모든 상용 리전에서 사용할 수 있습니다.
+ EMR Studio에서는 다음 Athena 기능을 사용할 수 없습니다.
  + Athena 작업 그룹, 데이터 소스 또는 용량 예약 생성 또는 업데이트와 같은 관리 기능
  + Athena for Spark 또는 Spark 노트북
  + Amazon DataZone 통합
  + 비용 기반 최적화 프로그램(CBO)
  + Step Functions

# EMR Studio Workspaces와 Amazon CodeWhisperer 통합
<a name="emr-studio-codewhisperer"></a>

## 개요
<a name="emr-studio-codewhisperer-overview"></a>

JupyterLab에서 코드를 작성할 때 [Amazon CodeWhisperer](https://docs.aws.amazon.com/codewhisperer/latest/userguide/what-is-cwspr.html)와 Amazon EMR Studio를 함께 사용하면 실시간으로 권장 사항을 받을 수 있습니다. CodeWhisperer에서는 설명을 작성하고, 코드 한 줄을 완성하고, 라인별 권장 사항을 만들고, 완전한 형식의 함수를 생성할 수 있습니다.

**참고**  
Amazon EMR Studio를 사용하는 경우 서비스 개선을 위해 사용량 및 콘텐츠에 대한 데이터를 저장할 AWS 수 있습니다. 자세한 정보와 데이터 공유를 거부하는 방법에 대한 지침을 확인하려면 *Amazon CodeWhisperer 사용 설명서*의 [AWS과 데이터 공유](https://docs.aws.amazon.com/codewhisperer/latest/userguide/sharing-data.html)를 참조하세요.

## CodeWhisperer를 Workspaces와 함께 사용하는 경우의 고려 사항
<a name="emr-studio-codewhisperer-considerations"></a>
+ CodeWhisperer 통합은 EMR Studio [고려 사항에 설명된 대로 EMR Studio](emr-studio-considerations.md)를 사용할 수 AWS 리전 있는 동일한에서 사용할 수 있습니다.
+ Amazon EMR Studio는 해당 스튜디오가 있는 리전과 관계없이 권장 사항으로 미국 동부(버지니아 북부)(us-east-1)의 CodeWhisperer 엔드포인트를 자동으로 사용합니다.
+ CodeWhisperer는 EMR Studio에서 Spark 작업의 ETL 스크립트를 코딩하는 데 Python 언어만 지원합니다.
+ 클라이언트 측의 원격 측정 옵션은 CodeWhisperer의 사용량을 정량화합니다. 이 기능은 EMR Studio에서 지원되지 않습니다.

## CodeWhisperer에 필요한 권한
<a name="emr-studio-codewhisperer-permissions"></a>

CodeWhisperer를 사용하기 위해서는 다음 정책을 Amazon EMR Studio에 대한 IAM 사용자 역할에 연결해야 합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CodeWhispererPermissions",
      "Effect": "Allow",
      "Action": [
        "codewhisperer:GenerateRecommendations"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

## CodeWhisperer와 Workspaces를 함께 사용
<a name="emr-studio-codewhisperer-use"></a>

CodeWhisperer 참조 로그를 JupyterLab에 표시하려면 JupyterLab 창 아래에 있는 **CodeWhisperer** 패널을 열고 **코드 참조 로그 열기**를 선택합니다.

다음 목록에는 CodeWhisperer 제안과 상호 작용하는 데 사용할 수 있는 단축키가 포함되어 있습니다.
+ **권장 사항 일시 중지** – CodeWhisperer 설정에서 **자동 제안 일시 중지**를 사용합니다.
+ **권장 사항 수락** – 키보드에서 **Tab** 키를 누릅니다.
+ **권장 사항 거부** – 키보드에서 **Esc** 키를 누릅니다.
+ **권장 사항 탐색** - 키보드의 **위쪽** 및 **아래쪽** 화살표를 사용합니다.
+ **수동 간접 호출** - 키보드에서 **Alt** 및 **C** 키를 누릅니다. Mac을 사용 중이라면 **Cmd**와 **C** 키를 누릅니다.

CodeWhisperer를 사용하여 로그 수준과 같은 설정을 변경하고 코드 참조에 대한 제안을 받을 수도 있습니다. 자세한 내용을 확인하려면 *Amazon CodeWhisperer 사용 설명서*에서 [JupyterLab를 사용하여 Amazon CodeWhisperer 설정](https://docs.aws.amazon.com/codewhisperer/latest/userguide/jupyterlab-setup.html) 및 [기능](https://docs.aws.amazon.com/codewhisperer/latest/userguide/features.html)을 참조하세요.

# EMR Studio에서 애플리케이션 및 작업 디버깅
<a name="emr-studio-debug"></a>

Amazon EMR Studio를 사용하면 데이터 애플리케이션 인터페이스를 시작하여 브라우저에서 애플리케이션 및 작업 실행을 분석할 수 있습니다.

또한 Amazon EMR 콘솔에서 EC2 클러스터에서 실행되는 Amazon EMR용 영구 클러스터 외부 사용자 인터페이스를 시작할 수도 있습니다. 자세한 내용은 [Amazon EMR에서 영구 애플리케이션 사용자 인터페이스 보기](app-history-spark-UI.md) 단원을 참조하십시오.

**참고**  
브라우저 설정에 따라 애플리케이션 UI를 열려면 팝업을 활성화해야 할 수 있습니다.

애플리케이션 인터페이스 구성 및 사용에 대한 자세한 내용은 [The YARN Timeline Server](https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/TimelineServer.html), [Monitoring and instrumentation](https://spark.apache.org/docs/latest/monitoring.html) 또는 [Tez UI overview](https://tez.apache.org/tez-ui.html)를 참조하세요.

## Amazon EC2 작업에서 실행되는 Amazon EMR 디버깅
<a name="emr-studio-debug-ec2"></a>

------
#### [ Workspace UI ]

**노트북 파일에서 클러스터 내 UI 실행**

Amazon EMR 릴리스 버전 5.33.0 이상을 사용하는 경우 Workspace의 노트북에서 Spark 웹 사용자 인터페이스(Spark UI 또는 Spark 기록 서버)를 시작할 수 있습니다.

클러스터 내 UI는 PySpark, Spark 또는 SparkR 커널과 함께 작동합니다. Spark 이벤트 로그 또는 컨테이너 로그에서 볼 수 있는 최대 파일 크기는 10MB입니다. 로그 파일이 10MB를 초과하는 경우 클러스터 내 Spark UI 대신 영구 Spark 기록 서버를 사용하여 작업을 디버깅하는 것이 좋습니다.
**중요**  
EMR Studio가 Workspace에서 클러스터 내 애플리케이션 사용자 인터페이스를 실행하려면 클러스터가 Amazon API Gateway와 통신할 수 있어야 합니다. Amazon API Gateway로의 발신 네트워크 트래픽을 허용하도록 EMR 클러스터를 구성하고 클러스터에서 Amazon API Gateway에 연결할 수 있는지 확인해야 합니다.  
Spark UI는 호스트 이름을 확인하여 컨테이너 로그에 액세스합니다. 사용자 지정 도메인 이름을 사용하는 경우 Amazon DNS 또는 사용자가 지정한 DNS 서버가 클러스터 노드의 호스트 이름을 확인할 수 있는지 확인해야 합니다. 이를 위해 클러스터와 연결된 Amazon Virtual Private Cloud(VPC)에 대한 Dynamic Host Configuration Protocol(DHCP) 옵션을 설정합니다. DHCP 옵션에 대한 자세한 내용은 *Amazon Virtual Private Cloud* *사용 설명서*에서 [DHCP 옵션 세트](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)를 참조하세요.

1. EMR Studio에서 사용하려는 Workspace를 열고 EC2에서 실행되는 Amazon EMR 클러스터에 연결되어 있는지 확인합니다. 지침은 [EMR Studio Workspace에 컴퓨팅 연결](emr-studio-create-use-clusters.md) 섹션을 참조하세요.

1. 노트북 파일을 열고 PySpark, Spark 또는 SparkR 커널을 사용합니다. 커널을 선택하려면 노트북 도구 모음의 오른쪽 상단에서 커널 이름을 선택하여 **커널 선택** 대화 상자를 엽니다. 커널을 선택하지 않으면 이름은 **커널 없음\$1**으로 표시됩니다.

1. 노트북 코드를 실행합니다. Spark 컨텍스트를 시작하면 노트북에 다음과 같은 출력이 나타납니다. 표시하는 데 몇 초 정도 걸릴 수 있습니다. Spark 컨텍스트를 시작한 경우 언제든지 `%%info` 명령을 실행하여 Spark UI에 대한 링크에 액세스할 수 있습니다.
**참고**  
Spark UI 링크가 작동하지 않거나 몇 초 후에도 나타나지 않으면 새 노트북 셀을 생성하고 `%%info` 명령을 실행하여 링크를 다시 생성합니다.  
![\[Spark UI로 연결되는 링크가 포함된 Spark 애플리케이션 마스터 정보의 스크린샷. 링크는 Spark 애플리케이션을 실행할 때 노트북에 나타납니다.\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/images/spark-app-ui-link.jpg)

1. Spark UI를 시작하려면 **Spark UI**에서 **연결**을 선택합니다. Spark 애플리케이션이 실행 중인 경우 Spark UI가 새 탭에서 열립니다. 애플리케이션이 완료되면 Spark 기록 서버가 대신 열립니다.

   Spark UI를 시작한 후 브라우저에서 URL을 수정하여 YARN ResourceManager 또는 Yarn 타임라인 서버를 열 수 있습니다. `amazonaws.com` 뒤에 다음 경로 중 하나를 추가합니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/emr-studio-debug.html)

------
#### [ Studio UI ]

**EMR Studio UI에서 영구 YARN 타임라인 서버, Spark 기록 서버 또는 Tez UI 시작**

1. EMR Studio에서 페이지 왼쪽에 있는 **Amazon EMR on EC2**를 선택하여 **Amazon EMR on EC2** 클러스터 목록을 엽니다.

1. 검색 상자에 값을 입력하여 **이름**, **상태** 또는 **ID**별로 클러스터 목록을 필터링합니다. 생성 **시간 범위**를 기준으로 검색할 수도 있습니다.

1. 클러스터를 선택한 다음 **애플리케이션 UI 시작**을 선택하여 애플리케이션 사용자 인터페이스를 선택합니다. 새 브라우저 탭에서 애플리케이션 UI가 열리고 로드하는 데 시간이 걸릴 수 있습니다.

------

## EMR Serverless에서 실행되는 EMR Studio 디버깅
<a name="emr-studio-debug-serverless"></a>

Amazon EC2에서 실행되는 Amazon EMR과 마찬가지로, Workspace 사용자 인터페이스를 사용하여 EMR Serverless 애플리케이션을 분석할 수 있습니다. Amazon EMR 릴리스 6.14.0 이상을 사용하는 경우 Workspace UI를 통해 Workspace의 노트북에서 Spark 웹 사용자 인터페이스(Spark UI 또는 Spark 기록 서버)를 시작할 수 있습니다. 편의를 위해 Spark 드라이버 로그에 빠르게 액세스할 수 있는 드라이버 로그 링크도 제공합니다.

## Spark 기록 서버를 사용하여 Amazon EMR on EKS 작업 실행 디버깅
<a name="emr-studio-debug-eks"></a>

Amazon EMR on EKS 클러스터에 작업 실행을 제출하는 경우 Spark 기록 서버를 사용하여 해당 작업 실행의 로그에 액세스할 수 있습니다. Spark 기록 서버는 스케줄러 스테이지 및 작업 목록, RDD 크기 및 메모리 사용량 요약, 환경 정보와 같은 Spark 애플리케이션을 모니터링하기 위한 도구를 제공합니다. 다음과 같은 방법으로 Amazon EMR on EKS 작업 실행을 위한 Spark 기록 서버를 시작할 수 있습니다.
+ Amazon EMR on EKS 관리형 엔드포인트에서 EMR Studio를 사용하여 작업 실행을 제출하면 Workspace의 노트북 파일에서 Spark 기록 서버를 시작할 수 있습니다.
+  AWS CLI 또는 AWS SDK for Amazon EMR on EKS를 사용하여 작업 실행을 제출하면 EMR Studio UI에서 Spark 기록 서버를 시작할 수 있습니다.

Spark 기록 서버를 사용하는 방법에 대한 자세한 내용은 Apache Spark 설명서에서 [Monitoring and Instrumentation](https://spark.apache.org/docs/latest/monitoring.html)을 참조하세요. 작업 실행에 대한 자세한 내용은 *Amazon EMR on EKS 개발 안내서*에서 [개념 및 구성 요소](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-concepts.html)를 참조하세요.

**EMR Studio Workspace의 노트북 파일에서 Spark 기록 서버를 시작하는 방법**

1. Amazon EMR on EKS 클러스터에 연결된 Workspace를 엽니다.

1. Workspace에서 노트북 파일을 선택하고 엽니다.

1. 노트북 파일 상단에서 **Spark UI**를 선택하여 새 탭에서 영구 Spark 기록 서버를 엽니다.

**EMR Studio UI에서 Spark 기록 서버를 시작하는 방법**
**참고**  
EMR Studio UI의 **작업** 목록에는 AWS CLI 또는 AWS SDK for Amazon EMR on EKS를 사용하여 제출한 작업 실행만 표시됩니다.

1. EMR Studio에서 페이지 왼쪽에 있는 **Amazon EMR on EKS**를 선택합니다.

1. 작업 실행을 제출하는 데 사용한 Amazon EMR on EKS 가상 클러스터를 검색합니다. 검색 상자에 값을 입력하여 **상태** 또는 **ID**별로 클러스터 목록을 필터링할 수 있습니다.

1. 클러스터를 선택하여 세부 정보 페이지를 엽니다. 세부 정보 페이지에는 ID, 네임스페이스 및 상태와 같은 클러스터에 대한 정보가 표시됩니다. 이 페이지에는 해당 클러스터에 제출된 모든 작업 실행 목록도 표시됩니다.

1. 클러스터 세부 정보 페이지에서 디버깅할 작업 실행을 선택합니다.

1. **작업** 목록의 오른쪽 상단에서 **Spark 기록 서버 시작**을 선택하여 새 브라우저 탭에서 애플리케이션 인터페이스를 엽니다.

# EMR Studio Workspace에 커널 및 라이브러리 설치
<a name="emr-studio-install-libraries-and-kernels"></a>

각 Amazon EMR Studio에는 사전 설치된 라이브러리 및 커널 세트가 함께 제공됩니다.

## Amazon EC2에서 실행되는 클러스터의 커널 및 라이브러리
<a name="emr-studio-ec2-kernels-libraries"></a>

Amazon EC2에서 실행되는 EMR 클러스터를 사용할 때 다음과 같은 방법으로 EMR Studio의 환경을 사용자 지정할 수도 있습니다.
+ **Jupyter Notebook 커널과 Python 라이브러리를 클러스터 프라이머리 노드에 설치** - 이 옵션을 사용하여 라이브러리를 설치하면 동일한 클러스터에 연결된 모든 Workspace가 해당 라이브러리를 공유합니다. 노트북 셀 내에서 또는 SSH를 사용하여 클러스터의 프라이머리 노드에 연결된 상태에서 커널이나 라이브러리를 설치할 수 있습니다.
+ **노트북 범위 라이브러리 사용** - Workspace 사용자가 노트북 셀 내에서 라이브러리를 설치하고 사용하는 경우 해당 라이브러리는 해당 노트북에서만 사용할 수 있습니다. 이 옵션을 사용하면 동일한 클러스터를 사용하는 여러 노트북이 라이브러리 버전 충돌에 대한 걱정 없이 작동할 수 있습니다.

EMR Studio Workspace는 EMR Notebooks과 동일한 기본 아키텍처를 사용합니다. EMR Notebooks과 동일한 방식으로 Jupyter Notebook 커널과 Python 라이브러리를 EMR Studio와 함께 설치하고 사용할 수 있습니다. 지침은 [EMR Studio에서 커널과 라이브러리 설치 및 사용](emr-managed-notebooks-installing-libraries-and-kernels.md) 섹션을 참조하세요.

## Amazon EMR on EKS 클러스터의 커널 및 라이브러리
<a name="emr-studio-eks-kernels-libraries"></a>

Amazon EMR on EKS 클러스터에는 사전 설치된 라이브러리 세트를 포함하는 PySpark 및 Python 3.7 커널이 있습니다. Amazon EMR on EKS는 추가 라이브러리 또는 클러스터 설치를 지원하지 않습니다.

각 Amazon EMR on EKS에는 다음과 같은 Python 및 PySpark 라이브러리가 함께 제공됩니다.
+ **Python** – boto3, cffi, future, ggplot, jupyter, kubernetes, matplotlib, numpy, pandas, plotly, pycryptodomex, py4j, requests, scikit-learn, scipy, seaborn
+ **PySpark** – ggplot, jupyter, matplotlib, numpy, pandas, plotly, pycryptodomex, py4j, requests, scikit-learn, scipy, seaborn

## EMR Serverless 애플리케이션의 커널 및 라이브러리
<a name="emr-studio-serverless-kernels-libraries"></a>

각 EMR Serverless 애플리케이션에는 다음과 같은 Python 및 PySpark 라이브러리가 설치되어 있습니다.
+ **Python** – ggplot, matplotlib, numpy, pandas, plotly, bokeh, scikit-learn, scipy, seaborn
+ **PySpark** – ggplot, matplotlib,numpy, pandas, plotly, bokeh, scikit-learn, scipy, seaborn

# EMR Studio에서 magic 명령으로 커널 개선
<a name="emr-studio-magics"></a>

## 개요
<a name="overview-magics"></a>

EMR Studio와 EMR Notebooks은 magic 명령을 지원합니다. *Magic* 명령 또는 *magic*은 IPython 커널이 데이터를 실행하고 분석하는 데 도움이 되도록 제공하는 향상된 기능입니다. IPython은 Python으로 구축된 대화형 쉘 환경입니다.

또한 Amazon EMR은 Spark 관련 커널(PySpark, SparkR 및 Scala 커널)에 특정 magic 명령을 제공하고, 클러스터에서 Livy를 사용하여 Spark 작업을 제출하는 패키지 Sparkmagic을 지원합니다.

EMR 노트북에 Python 커널이 있으면 magic 명령을 사용할 수 있습니다. 마찬가지로 모든 Spark 관련 커널은 Sparkmagic 명령을 지원합니다.

*magic*이라고도 하는 Magic 명령에는 두 가지 종류가 있습니다.
+ **줄 magic** - 이 magic 명령은 단일 `%` 접두사로 표시되며 한 줄의 코드에서 작동함
+ **셀 magic** - 이 magic 명령은 이중 `%%` 접두사로 표시되며 여러 줄의 코드에서 작동함

사용 가능한 모든 magic에 대한 자세한 내용은 [magic 및 Sparkmagic 명령 나열](#accessing-all-magic-commands) 섹션을 참조하세요.

## 고려 사항 및 제한 사항
<a name="considerations-limitations-magics"></a>
+ EMR Serverless는 `spark-submit`을 실행하도록 `%%sh`를 지원하지 않습니다. EMR Notebooks magic은 지원하지 않습니다.
+ Amazon EMR on EKS 클러스터는 EMR Studio용 Sparkmagic 명령을 지원하지 않습니다. 이는 관리형 엔드포인트와 함께 사용하는 Spark 커널이 Kubernetes에 내장되어 있으며, Sparkmagic 및 Livy에서는 지원되지 않기 때문입니다. 다음 예제에서 볼 수 있듯이 Spark 구성을 해결 방법으로 SparkContext 객체에 직접 설정할 수 있습니다.

  ```
  spark.conf.set("spark.driver.maxResultSize", '6g') 
  ```
+ 다음 magic 명령 및 작업은 금지되어 있습니다 AWS.
  + `%alias`
  + `%alias_magic`
  + `%automagic`
  + `%macro`
  + `%configure`를 `proxy_user` 수정
  + `%env` 또는 `%set_env`를 `KERNEL_USERNAME` 수정

## magic 및 Sparkmagic 명령 나열
<a name="accessing-all-magic-commands"></a>

사용 가능한 magic 명령 목록을 보려면 다음 명령을 사용합니다.
+ `%lsmagic`은 현재 사용 가능한 모든 magic 함수를 나열합니다.
+ `%%help`는 Sparkmagic 패키지에서 제공하는 현재 사용 가능한 Spark 관련 magic 함수를 나열합니다.

## `%%configure`를 사용하여 Spark 구성
<a name="using-configure-sparkmagic"></a>

가장 유용한 Sparkmagic 명령 중 하나는 세션 생성 파라미터를 구성하는 `%%configure` 명령입니다. `conf` 설정을 사용하여 [Apache Spark 구성 설명서](https://spark.apache.org/docs/latest/configuration.html)에 언급된 모든 Spark 구성을 구성할 수 있습니다.

**Example Maven 리포지토리 또는 Amazon S3에서 EMR Notebooks으로 외부 JAR 파일 추가**  
다음 접근 방식을 사용하여 Sparkmagic에서 지원하는 모든 Spark 관련 커널에 외부 JAR 파일 종속 항목을 추가할 수 있습니다.  

```
%%configure -f
{"conf": {
    "spark.jars.packages": "com.jsuereth:scala-arm_2.11:2.0,ml.combust.bundle:bundle-ml_2.11:0.13.0,com.databricks:dbutils-api_2.11:0.0.3",
    "spark.jars": "s3://amzn-s3-demo-bucket/my-jar.jar"
    }
}
```

**Example : Hudi 구성**  
그런 다음 노트북 편집기를 이용해 Hudi를 사용하도록 EMR 노트북을 구성합니다.  

```
%%configure
{ "conf": {
     "spark.jars": "hdfs://apps/hudi/lib/hudi-spark-bundle.jar,hdfs:///apps/hudi/lib/spark-spark-avro.jar", 
     "spark.serializer": "org.apache.spark.serializer.KryoSerializer",
     "spark.sql.hive.convertMetastoreParquet":"false"
     }
}
```

## `%%sh`를 사용하여 `spark-submit` 실행
<a name="using-sh-sparkmagic"></a>

`%%sh` magic는 연결된 클러스터 인스턴스의 하위 프로세스에서 쉘 명령을 실행합니다. 일반적으로 Spark 관련 커널 중 하나를 사용하여 연결된 클러스터에서 Spark 애플리케이션을 실행합니다. 하지만 Python 커널을 사용하여 Spark 애플리케이션을 제출하려는 경우 다음 magic을 사용할 수 있습니다. 이때 버킷 이름을 소문자로 바꾼 버킷 이름으로 바꿉니다.

```
%%sh
spark-submit --master yarn --deploy-mode cluster s3://amzn-s3-demo-bucket/test.py
```

이 예제에서는 클러스터가 `s3://amzn-s3-demo-bucket/test.py`의 위치에 액세스할 수 있어야 합니다. 그렇지 않으면 명령이 실패합니다.

`%%sh` magic과 함께 Linux 명령을 사용할 수 있습니다. Spark 또는 YARN 명령을 실행하려면 다음 옵션 중 하나를 사용하여 `emr-notebook` Hadoop 사용자를 생성하고 사용자에게 명령을 실행할 권한을 부여합니다.
+ 다음 명령을 실행하여 새 사용자를 명시적으로 생성할 수 있습니다.

  ```
  hadoop fs -mkdir /user/emr-notebook
  hadoop fs -chown emr-notebook /user/emr-notebook
  ```
+ Livy에서 사용자 위장 기능을 켜면 자동으로 사용자가 생성됩니다. 자세한 정보는 [사용자 위장을 활성화하여 Spark 사용자 및 작업 활동 모니터링](emr-managed-notebooks-spark-monitor.md)을 참조하세요.

## `%%display`를 사용하여 Spark DataFrame 시각화
<a name="using-display-sparkmagic"></a>

`%%display` magic을 사용하여 Spark DataFrame을 시각화할 수 있습니다. 이 magic을 사용하려면 다음 명령을 실행합니다.

```
%%display df
```

다음 이미지와 같이 결과를 테이블 형식으로 보도록 선택합니다.

![\[결과를 테이블 형식으로 표시하는 %%display magic 사용 출력.\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/images/magic-display-table.png)


다섯 가지 유형의 차트로 데이터를 시각화하도록 선택할 수도 있습니다. 옵션으로, 파이, 산점도, 선형, 영역 및 막대 차트가 있습니다.

![\[결과를 차트 형식으로 표시하는 %%display magic 사용 출력.\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/images/magic-display-chart.png)


## EMR Notebooks magic 사용
<a name="emr-magics"></a>

Amazon EMR은 Python3 및 Spark 기반 커널과 함께 사용할 수 있는 다음과 같은 EMR Notebooks magic을 제공합니다.
+ `%mount_workspace_dir` - Workspace의 다른 파일에서 코드를 가져오고 실행할 수 있도록 Workspace 디렉터리를 클러스터에 마운트
**참고**  
`%mount_workspace_dir`을 사용하면 Python 3 커널만 로컬 파일 시스템에 액세스할 수 있습니다. Spark 실행기는 이 커널로 마운트된 디렉터리에 액세스할 수 없습니다.
+ `%umount_workspace_dir` - 클러스터에서 Workspace 디렉토리를 마운트 해제합니다.
+ `%generate_s3_download_url` - 노트북 출력에 Amazon S3 객체의 임시 다운로드 링크 생성 

### 사전 조건
<a name="emr-magics-prereqs"></a>

EMR Notebooks magic을 설치하려면 먼저 다음 작업을 완료해야 합니다.
+ [클러스터 EC2 인스턴스에 대한 서비스 역할(EC2 인스턴스 프로파일)](emr-iam-role-for-ec2.md)에 Amazon S3에 대한 읽기 액세스 권한이 있는지 확인합니다. `AmazonElasticMapReduceforEC2Role` 관리형 정책을 포함하는 `EMR_EC2_DefaultRole`은 이 요구 사항을 충족합니다. 사용자 지정 역할 또는 정책을 사용하는 경우 필요한 S3 권한이 있는지 확인합니다.
**참고**  
EMR Notebooks magic은 클러스터에서 노트북 사용자로 실행되며 EC2 인스턴스 프로파일을 사용하여 Amazon S3와 상호 작용합니다. EMR 클러스터에 Workspace 디렉터리를 마운트하면 해당 클러스터에 연결할 권한이 있는 모든 Workspace와 EMR Notebooks가 마운트된 디렉터리에 액세스할 수 있습니다.  
디렉터리는 기본적으로 읽기 전용으로 마운트됩니다. `s3fs-fuse` 및 `goofys`에서 읽기-쓰기 마운트를 허용하는 동안에는 디렉터리를 읽기-쓰기 모드로 마운트하도록 마운트 파라미터를 수정하지 않는 것이 좋습니다. 쓰기 액세스를 허용하면 디렉터리에 대한 모든 변경 사항이 S3 버킷에 기록됩니다. 실수로 삭제하거나 덮어쓰는 것을 방지하기 위해 S3 버킷의 버전 관리를 활성화할 수 있습니다. 자세한 내용은 [S3 버킷에서 버전 관리 사용](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)을 참조하세요.
+ 클러스터에서 다음 스크립트 중 하나를 실행하여 EMR Notebooks magic에 대한 종속 항목을 설치합니다. 이미 실행 중인 클러스터가 있는 경우 스크립트를 실행하려면 [사용자 지정 부트스트랩 작업 사용](emr-plan-bootstrap.md#bootstrapCustom) 작업을 수행하거나 [Amazon EMR 클러스터에서 명령 및 스크립트 실행](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-commandrunner.html) 지침을 따를 수 있습니다.

  설치할 종속 항목을 선택할 수 있습니다. [s3fs-fuse](https://github.com/s3fs-fuse/s3fs-fuse) 및 [goofys](https://github.com/kahing/goofys) 모두 Amazon S3 버킷을 클러스터의 로컬 파일 시스템으로 마운트할 수 있는 사용자 공간의 파일 시스템(FUSE) 도구입니다. `s3fs` 도구는 POSIX와 비슷한 경험을 제공합니다. `goofys` 도구는 POSIX 호환 파일 시스템보다 성능을 선호하는 경우 적합합니다.

  Amazon EMR 7.x 시리즈는 EPEL 리포지토리를 지원하지 않는 Amazon Linux 2023을 사용합니다. Amazon EMR 7.x를 실행하는 경우 [s3fs-fuse GitHub](https://github.com/s3fs-fuse/s3fs-fuse/blob/master/COMPILATION.md) 지침에 따라 `s3fs-fuse`를 설치합니다. 5.x 또는 6.x 시리즈를 사용하는 경우 다음 명령을 사용하여 `s3fs-fuse`를 설치합니다.

  ```
  #!/bin/sh
  
  # Install the s3fs dependency for EMR Notebooks magics 
  sudo amazon-linux-extras install epel -y
  sudo yum install s3fs-fuse -y
  ```

  **또는**

  ```
  #!/bin/sh
  
  # Install the goofys dependency for EMR Notebooks magics 
  sudo wget https://github.com/kahing/goofys/releases/latest/download/goofys -P /usr/bin/
  sudo chmod ugo+x /usr/bin/goofys
  ```

### EMR Notebooks magic 설치
<a name="emr-magics-install"></a>

**참고**  
Amazon EMR 릴리스 6.0\$16.9.0 및 5.0\$15.36.0에서는 `emr-notebooks-magics` 패키지 버전 0.2.0 이상에서만 `%mount_workspace_dir` magic을 지원합니다.

EMR Notebooks magic을 설치하려면 다음 단계를 완료합니다.

1. 노트북에서 다음 명령을 실행하여 [https://pypi.org/project/emr-notebooks-magics/](https://pypi.org/project/emr-notebooks-magics/) 패키지를 설치합니다.

   ```
   %pip install boto3 --upgrade
   %pip install botocore --upgrade
   %pip install emr-notebooks-magics --upgrade
   ```

1. 커널을 다시 시작하여 EMR Notebooks magic을 로드합니다.

1. 다음 명령을 사용하여 설치를 확인합니다. 그러면 `%mount_workspace_dir`에 대한 출력 도움말 텍스트가 표시됩니다.

   ```
   %mount_workspace_dir?
   ```

### `%mount_workspace_dir`을 사용하여 Workspace 디렉토리 마운트
<a name="emr-magics-mount-workspace"></a>

`%mount_workspace_dir` magic을 사용하면 Workspace 디렉터리를 EMR 클러스터에 마운트하여 디렉터리에 저장된 다른 파일, 모듈 또는 패키지를 가져오고 실행할 수 있습니다.

다음 예제에서는 전체 Workspace 디렉터리를 클러스터에 마운트하고, 디렉터리 마운트 시 goofys를 사용하도록 선택적 *`<--fuse-type>`* 인수를 지정합니다.

```
%mount_workspace_dir . <--fuse-type goofys>
```

Workspace 디렉터리가 마운트되었는지 확인하려면 다음 예제를 사용하여 `ls` 명령으로 현재 작업 디렉터리를 표시합니다. 출력에는 Workspace에 있는 모든 파일이 표시됩니다.

```
%%sh
ls
```

Workspace에서 변경을 완료하면 다음 명령을 사용하여 Workspace 디렉터리를 마운트 해제할 수 있습니다.

**참고**  
Workspace가 중지되거나 분리된 경우에도 Workspace 디렉터리는 클러스터에 마운트된 상태로 유지됩니다. Workspace 디렉터리를 명시적으로 마운트 해제해야 합니다.

```
%umount_workspace_dir
```

### `%generate_s3_download_url`을 사용하여 Amazon S3 객체 다운로드
<a name="emr-magics-generate-s3-download-url"></a>

`generate_s3_download_url` 명령은 Amazon S3에 저장된 객체에 대한 사전 서명된 URL을 생성합니다. 사전 서명된 URL을 사용하여 객체를 로컬 시스템에 다운로드할 수 있습니다. 예를 들어, `generate_s3_download_url`을 실행하여 코드가 Amazon S3에 작성한 SQL 쿼리의 결과를 다운로드할 수 있습니다.

사전 서명된 URL은 기본적으로 60분 동안 유효합니다. `--expires-in` 플래그에 시간(초)을 지정하여 만료 시간을 변경할 수 있습니다. 예를 들어, `--expires-in 1800`은 30분 동안 유효한 URL을 생성합니다.

다음 예제는 전체 Amazon S3 경로(`s3://EXAMPLE-DOC-BUCKET/path/to/my/object`)를 지정하여 객체에 대한 다운로드 링크를 생성합니다.

```
%generate_s3_download_url s3://EXAMPLE-DOC-BUCKET/path/to/my/object
```

`generate_s3_download_url` 사용에 대해 자세히 알아보려면 다음 명령을 실행하여 도움말 텍스트를 표시합니다.

```
%generate_s3_download_url?
```

### `%execute_notebook`을 사용하여 헤드리스 모드에서 노트북 실행
<a name="headless-execution"></a>

`%execute_notebook` magic을 사용하면 헤드리스 모드에서 다른 노트북을 실행하고 실행한 각 셀의 출력을 볼 수 있습니다. 이 magic을 사용하려면 Amazon EMR과 Amazon EC2가 공유하는 인스턴스 역할에 대한 추가 권한이 필요합니다. 추가 권한을 부여하는 방법에 대한 자세한 내용을 보려면 `%execute_notebook?` 명령을 실행합니다.

장기 실행 작업에서는 미활동으로 인해 시스템이 절전 모드로 전환되거나 인터넷 연결이 일시적으로 끊길 수 있습니다. 이로 인해 브라우저와 Jupyter Server 간 연결이 끊어질 수 있습니다. 이 경우 Jupyter 서버에서 실행하고 전송한 셀의 출력이 손실될 수 있습니다.

`%execute_notebook` magic을 사용하여 헤드리스 모드에서 노트북을 실행하면 로컬 네트워크에 장애가 발생하더라도 EMR Notebooks는 실행된 셀의 출력을 캡처합니다. EMR Notebooks는 실행한 노트북과 이름이 같은 새 노트북에 출력을 증분식으로 저장합니다. 그러면 EMR Notebooks는 노트북을 Workspace 내 새 폴더에 배치합니다. 헤드리스 실행은 동일한 클러스터에서 수행되고 서비스 역할 `EMR_Notebook_DefaultRole`을 사용하지만 추가 인수를 통해 기본값을 변경할 수 있습니다.

헤드리스 모드에서 노트북을 실행하려면 다음 명령을 사용합니다.

```
%execute_notebook <relative-file-path>
```

헤드리스 실행에 대한 클러스터 ID 및 서비스 역할을 지정하려면 다음 명령을 사용합니다.

```
%execute_notebook <notebook_name>.ipynb --cluster-id <emr-cluster-id> --service-role <emr-notebook-service-role>
```

Amazon EMR과 Amazon EC2가 인스턴스 역할을 공유하는 경우 역할에 다음과 같은 추가 권한이 필요합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "elasticmapreduce:StartNotebookExecution",
        "elasticmapreduce:DescribeNotebookExecution",
        "ec2:DescribeInstances"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowELASTICMAPREDUCEStartnotebookexecution"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::123456789012:role/EMR_Notebooks_DefaultRole"
      ],
      "Sid": "AllowIAMPassrole"
    }
  ]
}
```

------

**참고**  
`%execute_notebook` magic을 사용하려면 `emr-notebooks-magics` 패키지 버전 0.2.3 이상을 설치합니다.

# Spark 커널이 있는 다국어 노트북 사용
<a name="emr-multi-language-kernels"></a>

각 Jupyter Notebook 커널에는 기본 언어가 있습니다. 예를 들어, Spark 커널의 기본 언어는 Scala이고 PySpark 커널의 기본 언어는 Python입니다. Amazon EMR 6.4.0 이상에서는 EMR Studio는 다국어 노트북을 지원합니다. 즉, EMR Studio의 각 커널은 기본 언어 외에도 Python, Spark, R 및 Spark SQL과 같은 언어를 지원할 수 있습니다.

이 기능을 활성화하려면 셀의 시작 부분에 다음 magic 명령 중 하나를 지정합니다.


****  

| 언어 | 명령 | 
| --- | --- | 
| Python | `%%pyspark` | 
| Scala | `%%scalaspark` | 
| R | `%%rspark` EMR Serverless의 대화형 워크로드에 대해서는 지원되지 않습니다. | 
| Spark SQL | `%%sql` | 

간접 호출되면 해당 명령이 해당 언어의 인터프리터를 사용하여 동일한 Spark 세션 내에서 전체 셀을 실행합니다.

`%%pyspark` 셀 magic에서는 사용자가 모든 Spark 커널에서 PySpark 코드를 작성할 수 있습니다.

```
%%pyspark
a = 1
```

`%%sql` 셀 magic에서는 사용자가 모든 Spark 커널에서 Spark-SQL 코드를 작성할 수 있습니다.

```
%%sql
SHOW TABLES
```

`%%rspark` 셀 magic에서는 사용자가 모든 Spark 커널에서 SparkR 코드를 작성할 수 있습니다.

```
%%rspark
a <- 1
```

`%%scalaspark` 셀 magic에서는 사용자가 모든 Spark 커널에서 Spark Scala 코드를 작성할 수 있습니다.

```
%%scalaspark
val a = 1
```

## 임시 테이블을 사용하여 언어 인터프리터 사이에서 데이터 공유
<a name="emr-temp-tables"></a>

임시 테이블을 사용하여 언어 인터프리터 사이에서 데이터를 공유할 수도 있습니다. 다음 예제에서는 한 셀에서 `%%pyspark`를 사용하여 Python에서 임시 테이블을 생성하고 다음 셀에서 `%%scalaspark`를 사용하여 Scala에서 해당 테이블의 데이터를 읽습니다.

```
%%pyspark
df=spark.sql("SELECT * from nyc_top_trips_report LIMIT 20")
# create a temporary table called nyc_top_trips_report_view in python
df.createOrReplaceTempView("nyc_top_trips_report_view")
```

```
%%scalaspark
// read the temp table in scala
val df=spark.sql("SELECT * from nyc_top_trips_report_view")
df.show(5)
```