

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

# JupyterHub 구성 및 관리
<a name="emr-jupyterhub-administer"></a>

JupyterHub 및 관련 구성 요소는 Ubuntu 운영 체제를 실행하는 `jupyterhub`라는 Docker 컨테이너 내에서 실행됩니다. 컨테이너 내에서 실행 중인 구성 요소를 관리하는 방법에는 여러 가지가 있습니다.

**주의**  
컨테이너 내에서 수행하는 사용자 지정 작업은 컨테이너를 다시 시작하는 경우 유지되지 않을 수 있습니다. 스크립트를 구성하거나 아니면 컨테이너 구성을 자동화하여 보다 쉽게 사용자 지정 구성을 재현할 수 있도록 하는 것이 좋습니다.

## 명령줄을 사용하여 관리
<a name="emr-jupyterhub-administer-cli"></a>

SSH를 사용하여 마스터 노드에 연결되면 Docker 명령줄 인터페이스(CLI)를 사용하고 이름(`jupyterhub`)이나 ID로 컨테이너를 지정하여 명령을 실행할 수 있습니다. 예를 들어, `sudo docker exec jupyterhub command`는 컨테이너 내에서 실행 중인 애플리케이션이나 운영 체제에 의해 인식되는 명령을 실행합니다. 이 명령을 사용하면 운영 체제에 사용자를 추가하고 추가 애플리케이션 및 라이브러리를 Docker 컨테이너 내에 설치할 수 있습니다. 예를 들어, 기본 컨테이너 이미지에는 패키지 설치 시 사용할 Conda가 들어 있으므로 마스터 노드 명령줄에서 다음 명령을 실행하면 애플리케이션, Keras를 컨테이너 내에 설치할 수 있습니다.

```
sudo docker exec jupyterhub conda install keras
```

## 단계를 제출하여 관리
<a name="emr-jupyterhub-administer-steps"></a>

단계는 작업을 클러스터에 제출하는 방법입니다. 단계는 클러스터를 실행할 때 제출할 수도 있고, 실행 중인 클러스터에 제출할 수도 있습니다. 명령줄에서 실행하는 명령은 `command-runner.jar`를 사용하여 단계로 제출될 수 있습니다. 자세한 내용은 *Amazon EMR 관리 안내서*에서 [CLI 및 콘솔을 사용하여 단계 작업](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-work-with-steps.html) 및 [Amazon EMR 클러스터에서 명령 및 스크립트 실행](emr-commandrunner.md) 섹션을 참조하세요.

예를 들어 로컬 컴퓨터에서 다음 AWS CLI 명령을 사용하여 이전 예제에서 마스터 노드의 명령줄에서 수행한 것과 동일한 방식으로 Keras를 설치할 수 있습니다.

```
aws emr add-steps --cluster-id MyClusterID --steps Name="Command Runner",Jar="command-runner.jar",Args="/usr/bin/sudo","/usr/bin/docker","exec","jupyterhub","conda","install","keras"
```

또한 일련의 단계를 스크립트로 구성하고 스크립트를 Amazon S3에 업로드한 다음 `script-runner.jar`을 사용하여 클러스터를 생성하거나 스크립트를 단계로 추가할 때 스크립트를 실행할 수 있습니다. 자세한 내용은 [Amazon EMR 클러스터에서 명령 및 스크립트 실행](emr-commandrunner.md) 단원을 참조하십시오. 예제는 [예제: 여러 사용자를 추가하는 Bash 스크립트](emr-jupyterhub-pam-users.md#emr-jupyterhub-script-multuser) 섹션을 참조하세요.

## REST API를 사용하여 관리
<a name="emr-jupyterhub-administer-rest"></a>

Jupyter, JupyterHub 및 JupyterHub용 HTTP 프록시는 요청을 보내는 데 사용할 수 있는 REST API를 제공합니다. JupyterHub에 요청을 보내려면, 요청이 있는 API 토큰을 전달해야 합니다. 마스터 노드 명령줄에서 `curl` 명령을 사용하면 REST 명령을 실행할 수 있습니다. 자세한 정보는 다음 자료를 참조하세요.
+ API 토큰 생성에 대한 지침에 들어 있는 JupyterHub용 설명서의 [Using JupyterHub's REST API(JupyterHub의 REST API 사용)](http://jupyterhub.readthedocs.io/en/latest/reference/rest.html)
+ GitHub의 [Jupyter Notebook Server API](https://github.com/jupyter/jupyter/wiki/Jupyter-Notebook-Server-API)
+ GitHub의 [configurable-http-proxy](https://github.com/jupyterhub/configurable-http-proxy)

다음은 JupyterHub용 REST API를 사용하여 사용자 목록을 가져오는 방법을 보여주는 예제입니다. 이 명령은 이전에 생성된 관리 토큰을 전달하고 기본 포트 9443를 JupyterHub에 사용하여 보다 쉽게 볼 수 있도록 결과를 [jq](https://stedolan.github.io/jq/)에 보냅니다.

```
curl -XGET -s -k https://$HOST:9443/hub/api/users \
-H "Authorization: token $admin_token" | jq .
```