18.인공지능 훈련용 서버 구축하기, Jupyter Notebook 서버 설정 원격에서 쉽게 모델을 개발하고 훈련하기 위한 Jupyter Notebook 설치와 설정

1. 서론

인공지능(AI)과 머신러닝(ML) 분야의 급속한 발전으로 인해 많은 데이터 과학자와 개발자들은 Jupyter Notebook을
사용하여 모델을 개발하고 훈련하려고 합니다. Jupyter Notebook은 코드 작성, 데이터 분석, 시각화 등을 쉽고
직관적으로 할 수 있는 웹 애플리케이션입니다. 이 글에서는 Ubuntu 서버에 Jupyter Notebook을 설치하고
설정하는 방법에 대해 자세히 설명하겠습니다. 이를 통해 원격에서 쉽게 모델을 개발하고 훈련할 수 있는
환경을 구축할 수 있습니다.

2. 서버 준비

먼저, 우분투 서버를 준비합니다. 이 서버는 AWS EC2, DigitalOcean, Google Cloud Platform 등 다양한
클라우드 제공업체에서 생성할 수 있습니다. 기본적으로 요구되는 시스템 사양은 다음과 같습니다.

  • 운영 체제: Ubuntu 20.04 LTS 이상
  • 메모리: 4GB 이상
  • CPU: 2코어 이상
  • 디스크: 최소 20GB 이상

3. 패키지 업데이트

서버에 접속한 후, 항상 최신 상태로 유지하는 것이 좋습니다. 다음 명령어를 사용하여 패키지를 업데이트합니다:

sudo apt update && sudo apt upgrade -y

4. Python과 pip 설치

Jupyter Notebook은 Python3 기반이므로, Python과 패키지 관리자인 pip을 설치해야 합니다. 다음 명령어를 사용합니다:

sudo apt install python3 python3-pip -y

5. 가상 환경 설정

가상 환경은 프로젝트마다 독립적인 패키지를 유지할 수 있도록 도와줍니다. venv라는 모듈을
사용하여 가상 환경을 설정합니다:

python3 -m venv jupyter_env

가상 환경을 활성화하려면 아래 명령어를 입력합니다:

source jupyter_env/bin/activate

6. Jupyter Notebook 설치

가상 환경이 활성화된 상태에서 Jupyter Notebook을 설치합니다:

pip install jupyter

7. Jupyter Notebook 설정

설정 파일을 생성하여 Jupyter Notebook을 구성합니다:

jupyter notebook --generate-config

위 명령어로 생성된 설정 파일은 ~/.jupyter/jupyter_notebook_config.py에 위치합니다. 이 파일을
편집하여 원격 접속을 허용하고, 비밀번호를 설정합니다. 편집하려면 다음 명령어를 사용합니다:

nano ~/.jupyter/jupyter_notebook_config.py

다음과 같은 설정을 추가합니다:

# Jupyter Notebook의 IP 주소를 0.0.0.0으로 설정 (모든 IP 허용)
c.NotebookApp.ip = '0.0.0.0'

# 포트 설정 (기본값은 8888)
c.NotebookApp.port = 8888

# 비밀번호 설정 (암호화된 비밀번호를 사용)
c.NotebookApp.password = '이곳에_비밀번호를_입력하세요'

# Notebook을 자동으로 열지 않기
c.NotebookApp.open_browser = False

# 원격 접속 허용
c.NotebookApp.allow_remote_access = True

8. Jupyter Notebook 시작하기

Jupyter Notebook을 시작하려면 다음 명령어를 사용합니다:

jupyter notebook

이제 웹 브라우저에서 http://<서버_IP>:8888 주소로 접속하여 Jupyter Notebook에 로그인할 수 있습니다.
이전 단계에서 설정한 비밀번호를 입력하면 사용 가능합니다.

9. 추가 보안 설정

원격에서 Jupyter Notebook에 접속할 때 보안을 강화하기 위해 SSL을 설정하는 것이 좋습니다.
SSL 인증서를 구매하거나 무료 서비스인 Let’s Encrypt를 사용할 수 있습니다. SSL 인증서를 설정한 후
jupyter_notebook_config.py 파일에 다음과 같은 설정을 추가합니다:

# SSL 인증서 및 키 파일 경로
c.NotebookApp.certfile = u'/etc/letsencrypt/live/yourdomain/cert.pem'
c.NotebookApp.keyfile = u'/etc/letsencrypt/live/yourdomain/privkey.pem'

10. 결론

이제 우분투 서버에 Jupyter Notebook을 성공적으로 설치하고 설정했습니다. 원격에서 AI 모델을 개발하고
훈련하기 위한 완벽한 환경이 마련되었습니다. Jupyter Notebook은 다양한 패키지와 라이브러리와 결합하여 더
나은 개발 환경을 제공합니다. 이 서버를 통해 데이터를 분석하고 머신러닝 모델을 훈련하는 작업을 손쉽게
할 수 있습니다. 앞으로 더 많은 프로젝트와 연구에 이 서버를 활용하시길 바랍니다!

11. 참고 자료