

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

# DLAMI 인스턴스 설정
<a name="setup"></a>

사용하려는 [DLAMI를 선택](choose-dlami.md)하고 [Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 유형을 선택](instance-select.md)하면 새 DLAMI 인스턴스를 설정할 준비가 됩니다.

DLAMI 및 EC2 인스턴스 유형을 아직 선택하지 않은 경우 [DLAMI 시작하기](getting-started.md) 섹션을 참조하세요.

**Topics**
+ [DLAMI의 ID 찾기](find-dlami-id.md)
+ [DLAMI 인스턴스 시작](launch.md)
+ [DLAMI 인스턴스에 연결](setup-connect.md)
+ [DLAMI 인스턴스에서 Jupyter Notebook 서버 설정](setup-jupyter.md)
+ [DLAMI 인스턴스 정리](setup-cleanup.md)

# DLAMI의 ID 찾기
<a name="find-dlami-id"></a>

각 DLAMI에는 고유 식별자(ID)가 있습니다. Amazon EC2 콘솔을 사용하여 DLAMI 인스턴스를 시작할 때 선택적으로 DLAMI ID를 사용하여 사용하려는 DLAMI를 검색할 수 있습니다. AWS Command Line Interface(AWS CLI)를 사용하여 DLAMI 인스턴스를 시작할 때 이 ID가 필요합니다.

Amazon EC2 또는 AWS Systems Manager의 기능인 Parameter Store에 대한 AWS CLI 명령을 사용하여 원하는 DLAMI의 ID를 찾을 수 있습니다. AWS CLI 설치 및 구성에 대한 지침은 *AWS Command Line Interface 사용 설명서*의 [AWS CLI 시작하기](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started)를 참조하세요.

------
#### [ Using Parameter Store ]

****ssm get-parameter**를 사용하여 DLAMI를 찾으려면**

다음 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ssm/get-parameter.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ssm/get-parameter.html) 명령에서 `--name` 옵션의 파라미터 이름 형식은 */aws/service/deeplearning/ami/\$1Architecture/\$1ami\$1type/latest/ami-id *입니다. 이 이름 형식에서 *architecture*는 **x86\$164** 또는 **arm64**일 수 있습니다. DLAMI 이름을 사용하고 ‘deep’, ‘learning’ 및 ‘ami’ 키워드를 제거하여 *ami\$1type*을 지정합니다. AMI 이름은 [Deep Learning AMI 릴리스 정보](appendix-ami-release-notes.md)에서 찾을 수 있습니다.
**중요**  
사용하는 AWS Identity and Access Management(IAM) 위탁자에게 `ssm:GetParameter` 권한이 있어야 합니다. IAM 위탁자에 대한 자세한 내용은 *IAM 사용 설명서*에서 **IAM 역할**의 [추가 리소스](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_additional-resources) 섹션을 참조하세요.
+ 

  ```
  aws ssm get-parameter --name /aws/service/deeplearning/ami/x86_64/base-oss-nvidia-driver-ubuntu-22.04/latest/ami-id  \
  --region us-east-1 --query "Parameter.Value" --output text
  ```

  다음과 같이 출력됩니다

  ```
  ami-09ee1a996ac214ce7
  ```
**작은 정보**  
현재 지원되는 일부 DLAMI 프레임워크의 경우 더 구체적인 예제 **ssm get-parameter** 명령을 [Deep Learning AMI 릴리스 정보](appendix-ami-release-notes.md)에서 찾을 수 있습니다. 선택한 DLAMI의 릴리스 노트 링크를 선택한 다음 릴리스 노트에서 해당 ID 쿼리를 찾습니다.

------
#### [ Using Amazon EC2 CLI ]

****ec2 describe-images**를 사용하여 DLAMI를 찾으려면**

다음 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-images.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-images.html) 명령에서 `Name=name` 필터의 값에 DLAMI 이름을 입력합니다. 지정된 프레임워크의 릴리스 버전을 지정하거나 버전 번호를 물음표(?)로 대체하여 최신 릴리스를 가져올 수 있습니다.
+ 

  ```
  aws ec2 describe-images --region us-east-1 --owners amazon \
  --filters 'Name=name,Values=Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 22.04) ????????' 'Name=state,Values=available' \
  --query 'reverse(sort_by(Images, &amp;CreationDate))[:1].ImageId' --output text
  ```

  다음과 같이 출력됩니다

  ```
  ami-09ee1a996ac214ce7
  ```
**작은 정보**  
선택한 DLAMI와 관련된 예제 **ec2 describe-images** 명령은 [Deep Learning AMI 릴리스 정보](appendix-ami-release-notes.md) 섹션을 참조하세요. 선택한 DLAMI의 릴리스 노트 링크를 선택한 다음 릴리스 노트에서 해당 ID 쿼리를 찾습니다.

------

**다음 단계**  
[DLAMI 인스턴스 시작](launch.md)

# DLAMI 인스턴스 시작
<a name="launch"></a>

DLAMI 인스턴스를 시작하는 데 사용할 DLAMI의 [ID를 찾으면](find-dlami-id.md) 인스턴스를 시작할 준비가 된 것입니다. 인스턴스를 시작하려면 Amazon EC2 콘솔 또는 AWS Command Line Interface(AWS CLI)를 사용합니다.

**참고**  
이 연습에서는 Deep Learning Base OSS Nvidia Driver GPU AMI(Ubuntu 22.04)와 관련된 참조를 만듭니다. 다른 DLAMI를 선택한 경우에도 이 설명서를 따를 수 있습니다.

------
#### [ EC2 console ]

**참고**  
고성능 컴퓨팅(HPC) 및 기계 학습 애플리케이션을 가속화하기 위해 Elastic Fabric Adapter(EFA)를 사용하여 DLAMI 인스턴스를 시작할 수 있습니다. 관련 지침은 [EFA를 사용하여 AWS Deep Learning AMIs 인스턴스 시작](tutorial-efa-launching.md) 섹션을 참조하세요.

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

1. 최상위 탐색의 현재 AWS 리전을 기록합니다. 원하는 리전이 아닌 경우 진행 전에 이 옵션을 변경하세요. 자세한 내용은 *Amazon Web Services 일반 참조*의 [Amazon EC2 서비스 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/ec2-service.html#ec2_region)를 참조하세요.

1. **인스턴스 시작**을 선택합니다.

1. 인스턴스 이름을 입력하고 적합한 DLAMI를 선택합니다.

   1. **내 AMI**에서 기존 DLAMI를 찾거나 **빠른 시작**을 선택합니다.

   1. DLAMI ID로 검색합니다. 옵션을 찾은 후 선택합니다.

1. 인스턴스 유형을 선택합니다. [Deep Learning AMI 릴리스 정보](appendix-ami-release-notes.md)에서 DLAMI에 권장되는 인스턴스 패밀리를 찾을 수 있습니다. DLAMI 인스턴스 유형에 대한 일반적인 권장 사항은 [DLAMI 인스턴스 유형 선택](instance-select.md) 섹션을 참조하세요.

1. **인스턴스 시작**을 선택합니다.

------
#### [ AWS CLI ]


+ AWS CLI를 사용하려면 사용하려는 DLAMI의 ID, AWS 리전 및 EC2 인스턴스 유형, 보안 토큰 정보가 있어야 합니다. 그러면 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/run-instances.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/run-instances.html) AWS CLI 명령을 사용하여 인스턴스를 시작할 수 있습니다.

  AWS CLI 설치 및 구성에 대한 지침은 *AWS Command Line Interface 사용 설명서*의 [AWS CLI 시작하기](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started)를 참조하세요. 명령 예제를 비롯한 자세한 내용은 [AWS CLI를 사용한 Amazon EC2 인스턴스 시작, 나열 및 닫기](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-ec2-instances.html)를 참조하세요.

------

Amazon EC2 콘솔 또는 AWS CLI를 사용하여 인스턴스를 시작한 후 인스턴스가 준비될 때까지 기다립니다. 이는 보통 몇 분 정도 소요됩니다. [Amazon EC2 콘솔](https://console.aws.amazon.com/ec2)에서 인스턴스의 상태를 확인할 수 있습니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [Amazon EC2 인스턴스 상태 확인](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html)을 참조하세요.

**다음 단계**  
[DLAMI 인스턴스에 연결](setup-connect.md)

# DLAMI 인스턴스에 연결
<a name="setup-connect"></a>

[DLAMI 인스턴스를 시작](launch.md)하고 인스턴스가 실행 중이면 SSH를 사용하여 클라이언트(Windows, macOS 또는 Linux)에서 인스턴스에 연결할 수 있습니다. 관련 지침은 *Amazon EC2 사용 설명서*의 [SSH를 사용하여 Linux 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)을 참조하세요.

로그인한 후 Jupyter Notebook 서버를 설정하는 경우를 위해 SSH 로그인 명령의 사본을 보관하세요. Jupyter 웹페이지에 연결하려면 해당 명령의 변형을 사용합니다.

**다음 단계**  
[DLAMI 인스턴스에서 Jupyter Notebook 서버 설정](setup-jupyter.md)

# DLAMI 인스턴스에서 Jupyter Notebook 서버 설정
<a name="setup-jupyter"></a>

Jupyter Notebook 서버를 사용하면 DLAMI 인스턴스에서 Jupyter Notebook을 만들고 실행할 수 있습니다. Jupyter 노트북을 사용하면 AWS 인프라를 사용하고 DLAMI에 내장된 패키지에 액세스하는 동안 훈련 및 추론을 위한 기계 학습(ML) 실험을 수행할 수 있습니다. Jupyter Notebook에 대한 자세한 내용은 Jupyter 사용자 설명서 웹사이트에 있는 [Jupyter Notebook](https://jupyter-notebook.readthedocs.io/en/latest/notebook.html)을 참조하세요.

Jupyter Notebook 서버를 설정하려면 다음을 수행해야 합니다.
+ DLAMI 인스턴스에서 Jupyter Notebook 서버를 구성합니다.
+ Jupyter Notebook 서버에 연결하도록 클라이언트를 구성합니다. Windows, macOS 및 Linux 클라이언트에 대한 구성 지침이 제공됩니다.
+ Jupyter Notebook 서버에 로그인하여 설정을 테스트합니다.

이러한 단계를 완료하려면 다음 항목의 지침을 따르세요. Jupyter Notebook 서버를 설정한 후 DLAMI에 포함된 예제 노트북 자습서를 실행할 수 있습니다. 자세한 내용은 [Jupyter Notebook 자습서 실행](tutorial-jupyter.md) 단원을 참조하십시오.

**Topics**
+ [서버 보호](setup-jupyter-secure.md)
+ [서버 시작](setup-jupyter-start-server.md)
+ [클라이언트 연결](setup-jupyter-connect.md)
+ [로그인](setup-jupyter-login.md)

# DLAMI 인스턴스에서 Jupyter Notebook 서버 보호
<a name="setup-jupyter-secure"></a>

Jupyter Notebook 서버를 안전하게 유지하려면 암호를 설정하고 서버에 대한 SSL 인증서를 생성하는 것이 좋습니다. 암호 및 SSL을 구성하려면 먼저 [DLAMI 인스턴스에 연결](setup-connect.md)한 후에 다음 지침을 따릅니다.

**Jupyter Notebook 서버를 보호하려면**

1. Jupyter는 암호 유틸리티를 제공합니다. 다음 명령을 실행하고 프롬프트에 원하는 암호를 입력하십시오.

   ```
   $ jupyter notebook password
   ```

   결과는 다음과 비슷합니다.

   ```
   Enter password:
   					Verify password:
   					[NotebookPasswordApp] Wrote hashed password to /home/ubuntu/.jupyter/jupyter_notebook_config.json
   ```

1. 자체 서명된 SSL 인증서를 생성합니다. 지시에 따라 귀하의 지역을 기입하십시오. 프롬프트를 비워 두려면 `.`를 입력해야 합니다. 귀하의 답변은 인증서의 기능에 영향을 미치지 않습니다.

   ```
   $ cd ~
   					$ mkdir ssl
   					$ cd ssl
   					$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem
   ```

**참고**  
서드 파티에서 서명되고 브라우저에서 보안 경고를 표시하지 않는 일반 SSL 인증서를 만들기를 원할 수 있습니다. 이 과정은 훨씬 더 복잡합니다. 자세한 내용은 Jupyter Notebook 사용자 설명서의 [노트북 서버 보호](https://jupyter-notebook.readthedocs.io/en/6.2.0/public_server.html#securing-a-notebook-server)를 참조하세요.

**다음 단계**  
[DLAMI 인스턴스에서 Jupyter Notebook 서버 시작](setup-jupyter-start-server.md)

# DLAMI 인스턴스에서 Jupyter Notebook 서버 시작
<a name="setup-jupyter-start-server"></a>

[암호 및 SSL로 Jupyter Notebook 서버를 보호](setup-jupyter-secure.md)한 후 서버를 시작할 수 있습니다. DLAMI 인스턴스에 로그인하고 이전에 생성한 SSL 인증서를 사용하는 다음 명령을 실행합니다.

```
$ jupyter notebook --certfile=~/ssl/mycert.pem --keyfile ~/ssl/mykey.key
```

서버를 시작한 상태에서 클라이언트 컴퓨터의 SSH 터널을 통해 연결할 수 있습니다. 서버가 실행되면 Jupyter에서 서버가 실행 중임을 확인하는 출력값 일부가 보입니다. 이 시점에서 로컬 호스트 URL을 통해 서버에 액세스할 수 있다는 콜아웃을 무시합니다. 터널을 만들기 전에는 작동하지 않기 때문입니다.

**참고**  
Jupyter 웹 인터페이스를 사용하여 프레임워크를 전환할 때 Jupyter가 환경 변경을 처리합니다. 자세한 내용은 [Jupyter를 사용하여 환경 전환](tutorial-jupyter.md#tutorial-jupyter-switching) 단원을 참조하십시오.

**다음 단계**  
[DLAMI 인스턴스의 Jupyter Notebook 서버에 클라이언트 연결](setup-jupyter-connect.md)

# DLAMI 인스턴스의 Jupyter Notebook 서버에 클라이언트 연결
<a name="setup-jupyter-connect"></a>

[DLAMI 인스턴스에서 Jupyter Notebook 서버를 시작](setup-jupyter-start-server.md)한 후 서버에 연결하도록 Windows, macOS 또는 Linux 클라이언트를 구성합니다. 연결할 때 작업 영역의 서버에서 Jupyter Notebook을 생성 및 액세스하고, 서버에서 딥 러닝 코드를 실행할 수 있습니다.

## 사전 조건
<a name="setup-jupyter-connect-prereqs"></a>

SSH 터널 설정에 필요한 다음 정보가 있어야 합니다.
+ Amazon EC2 인스턴스의 퍼블릭 DNS 이름 자세한 내용은 *Amazon EC2 사용 설명서*의 [Amazon EC2 인스턴스 호스트 이름 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html)을 참조하세요.
+ 프라이빗 키 파일에 대한 키 페어 키 페어 액세스에 대한 자세한 내용은 *Amazon EC2 사용 설명서*의 [Amazon EC2 키 페어 및 Amazon EC2 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)를 참조하세요.

## Windows, macOS 또는 Linux 클라이언트에서 연결
<a name="setup-jupyter-connect-client"></a>

Windows, macOS 또는 Linux 클라이언트에서 DLAMI 인스턴스에 연결하려면 해당 클라이언트 운영 체제에 대한 지침을 따르세요.

------
#### [ Windows ]

**SSH를 사용하여 Windows 클라이언트에서 DLAMI 인스턴스에 연결하려면**

1. PuTTY와 같은 Windows용 SSH 클라이언트를 사용합니다. 관련 지침은 *Amazon EC2 사용 설명서*의 [PuTTY를 사용하여 Linux 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-linux-inst-from-windows.html)을 참조하세요. 다른 SSH 연결 옵션은 [SSH를 사용하여 Linux 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)을 참조하세요.

1. (선택 사항) 실행 중인 Jupyter 서버에 대한 SSH 터널을 생성합니다. Windows 클라이언트에 Git Bash를 설치한 다음 macOS 및 Linux 클라이언트에 대한 연결 지침을 따릅니다.

------
#### [ macOS or Linux ]

**SSH를 사용하여 macOS 또는 Linux 클라이언트에서 DLAMI 인스턴스에 연결하려면**

1. 터미널을 엽니다.

1. 다음 명령을 실행하여 로컬 포트 8888의 모든 요청을 원격 Amazon EC2 인스턴스의 포트 8888로 전달합니다. Amazon EC2 인스턴스에 액세스하는 키의 위치와 Amazon EC2 인스턴스의 공개 DNS 이름을 바꾸어 명령을 업데이트합니다. 참고: Amazon Linux AMI의 경우 사용자 이름은 `ubuntu`가 아니라 `ec2-user`입니다.

   ```
   $ ssh -i ~/mykeypair.pem -N -f -L 8888:localhost:8888 ubuntu@ec2-###-##-##-###.compute-1.amazonaws.com
   ```

   이 명령은 클라이언트와 Jupyter Notebook 서버를 실행 중인 원격 Amazon EC2 인스턴스 사이의 터널을 엽니다.

------

**다음 단계**  
[DLAMI 인스턴스에서 Jupyter Notebook 서버에 로그인](setup-jupyter-login.md)

# DLAMI 인스턴스에서 Jupyter Notebook 서버에 로그인
<a name="setup-jupyter-login"></a>

[클라이언트를 DLAMI 인스턴스의 Jupyter Notebook 서버에 연결](setup-jupyter-connect.md)한 후 서버에 로그인할 수 있습니다.

**브라우저에서 서버에 로그인하려면**

1. 브라우저의 주소 막대에서 [https://localhost:8888](https://localhost:8888) URL을 입력하거나 이 링크를 클릭합니다.

1. 자체 서명된 SSL 인증서를 사용하면 브라우저에서 경고 메시지를 표시하고 웹 사이트를 계속 방문하지 않도록 안내합니다.  
![\[SSL 경고\]](http://docs.aws.amazon.com/ko_kr/dlami/latest/devguide/images/ssl-warning1.png)

   이것을 스스로 설정했으므로 계속해도 안전합니다. 브라우저에 따라 “고급”, “세부 정보 표시” 또는 유사한 버튼이 표시됩니다.  
![\[SSL 경고 확인\]](http://docs.aws.amazon.com/ko_kr/dlami/latest/devguide/images/ssl-warning2.png)

   이것을 클릭한 다음 "localhost로 진행" 링크를 클릭하십시오. 연결이 성공적인 경우 Jupyter Notebook 서버 웹페이지가 보입니다. 이 시점에서 이전에 설정한 암호를 묻는 메시지가 나타납니다.

   이제 DLAMI 인스턴스에서 실행 중인 Jupyter Notebook 서버에 액세스할 수 있습니다. 새 노트북을 생성하거나 [자습서](tutorials.md)에서 제공된 노트북을 실행할 수 있습니다.

# DLAMI 인스턴스 정리
<a name="setup-cleanup"></a>

DLAMI 인스턴스가 더 이상 필요하지 않을 때 Amazon EC2에서 이를 중지하거나 종료하여 예기치 않은 요금이 발생하지 않도록 할 수 있습니다.

인스턴스를 중지하는 경우 인스턴스를 계속 유지했다가 나중에 다시 사용하고 싶을 때 시작할 수 있습니다. 구성, 파일 및 기타 비휘발성 정보가 Amazon Simple Storage Service(Amazon S3)의 볼륨에 저장됩니다. 인스턴스가 중지된 동안에는 볼륨 유지에 대한 S3 요금이 발생하지만 컴퓨팅 리소스에 대한 요금은 발생하지 않습니다. 인스턴스를 다시 시작하면 데이터와 함께 해당 스토리지 볼륨이 탑재됩니다.

인스턴스를 종료하는 경우 인스턴스가 사라지고 다시 시작할 수 없습니다. 물론 종료된 인스턴스의 컴퓨팅 리소스에 대한 요금은 더 이상 발생하지 않습니다. 그러나 데이터는 여전히 Amazon S3에 상주하므로 S3 요금이 계속 발생할 수 있습니다. 종료된 인스턴스와 관련된 추가 요금을 모두 방지하려면 Amazon S3에서 스토리지 볼륨도 삭제해야 합니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [Amazon EC2 인스턴스 종료](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html)를 참조하세요.

`stopped` 및 `terminated`와 같은 Amazon EC2 인스턴스 상태에 대한 자세한 내용은 *Amazon EC2 사용 설명서*의 [Amazon EC2 인스턴스 상태 변경](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html)을 참조하세요.