노트북 생성 및 관리
    • PDF

    노트북 생성 및 관리

    • PDF

    Article Summary

    VPC 환경에서 이용 가능합니다.

    Data Forest에서 제공하는 노트북에 대한 정보 및 노트북을 생성하고 관리하는 방법을 설명합니다. Data Forest에서는 노트북을 통해 사용자에게 쉽고 편리한 데이터 분석 환경을 제공합니다.

    사전 작업

    1. Object Storage 생성
      클러스터를 생성하기 전에 데이터를 저장하고 검색하기 위한 Object Storage 버킷이 생성되어 있어야 합니다. 자세한 내용은 Object Storage 가이드를 참조해 주십시오.

    2. VPC, Subnet 생성
      네이버 클라우드 플랫폼 콘솔의 Networking > VPC에서 VPC와 Subnet을 생성합니다. 자세한 설명은 VPC 사용 가이드를 참조해 주십시오. 노트북 개수와 상관없이 VPC는 최소 1개가 필요합니다. 여러 개의 노트북을 같은 VPC에 두고 사용할 수 있습니다. 민간 VPC 환경에서는 KR-2 리전에서만 VPC를 생성할 수 있으며 노트북 생성 시 Public Subnet만 지원하고 있습니다.

    3. 서버 사양 선택
      예상 사용량을 고려하여 서버 사양을 미리 선택해 주십시오.

    참고

    잠금이나 접근 제어가 설정된 Object Storage 버킷의 경우 노트북과 연동 시 이슈가 발생할 수 있습니다.

    노트북 생성

    노트북을 생성하는 방법은 다음과 같습니다.

    1. 노트북을 소유할 계정을 생성해 주십시오.
    2. 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
    3. 좌측의 Notebooks > 노트북 생성 버튼을 클릭해 주십시오.
    4. 노트북 설정 화면에서 생성하려는 노트북에 대한 상세 정보를 입력해 주십시오.
      df-notebook-createnb-vpc_ko
      이름설명
      계정 이름노트북을 소유할 계정
      노트북 타입생성할 노트북 타입 선택. 현재 JupyterLab 타입만 제공
      노트북 이름생성할 노트북 이름 지정
      • 최소 3글자 이상, 최대 15 자까지만 입력 가능하며 영문자, 소문자, 숫자, 붙임표(-)만 사용 가능
      VPC사전 작업에서 생성한 VPC 선택
      Subnet노트북 노드를 위치시킬 Subnet 선택
      • 현재 한국(KR-2) 리전(존)의 Public Subnet에서 IP 생성 가용 수량이 있는 Subnet에만 노트북 생성이 가능하며 공인 IP 기반으로 웹 도메인 접속이 가능
      서버 사양노트북 노드로 사용할 서버 타입을 선택. 노트북 노드를 생성한 이후에는 서버 타입을 변경할 수 없음
      ACGData Forest Notebook ACG는 노트북을 생성할 때마다 자동 생성
      추가 스토리지별도의 Block Storage를 추가하여 사용할 수 있음
      추가 스토리지 타입스토리지 타입을 선택. SSD와 HDD 중에서 선택. 노트북을 생성한 이후에는 스토리지 타입을 변경할 수 없음
      추가 스토리지 용량스토리지 용량 입력. 최소 100GB부터 6TB까지 설정 가능하며 10GB 단위로 지정할 수 있음
      Object Storage 버킷사전 작업에서 생성한 Object Storage 버킷 선택
      참고

      객체 잠금 설정이 되어 있는 버킷은 Object Storage 버킷 목록에 노출되지 않습니다. 노트북 생성 시 연동한 버킷은 연동 이후 잠금 설정할 수 없습니다.
      버킷 객체 잠금 설정에 관한 자세한 내용은 버킷 사용을 참조해 주십시오.

    5. 설정이 완료되면 [다음] 버튼을 클릭해 주십시오.
    6. 사용자 설정 화면에 생성하려는 노트북의 컴포넌트의 사용자 설정 값들을 입력해 주십시오.
      df-notebook-usersettingnb-vpc_ko
      컴포넌트이름설명
      Jupyter LabAccess PasswordJupyter Lab Web UI 접속시 사용할 password
    7. 설정이 완료되면 [다음] 버튼을 클릭해 주십시오.
    8. 인증키 설정 화면에서 노트북 노드에 직접 접속할 때 필요한 인증키 정보를 입력해 주십시오.
      보유하고 있는 인증키를 선택하거나 새로운 인증키를 생성한 후 [다음] 버튼을 클릭해 주십시오.
      새로운 인증키를 생성하려면 새로운 인증키 생성을 선택해 인증키 이름을 입력한 후 [인증키 생성 및 저장] 버튼을 클릭해 주십시오.
      참고

      인증키는 관리자 비밀번호를 확인할 때 필요합니다. 저장한 pem 파일을 PC의 안전한 위치에 보관해 주십시오.

    9. 최종 확인한 후 [생성] 버튼을 클릭해 주십시오.
      노트북은 생성이 완료되기까지 5~10분 정도가 소요됩니다. 생성이 완료되면 Notebooks 콘솔에서 확인 가능합니다.

    노트북 상세 정보 확인

    노트북 상세 정보를 확인하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼의 콘솔에서 Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
    2. 좌측의 Notebooks 메뉴를 클릭해 주십시오. 사용자가 생성한 노트북의 목록을 볼 수 있습니다.
      df-notebook-detailnb-vpc_ko
      이름설명
      노트북 이름생성된 노트북 이름
      계정노트북을 소유한 계정
      노트북 타입생성한 노트북 타입. 현재 Jupyterlab 타입만 제공
      상태노트북 노드의 상태
      서버 스펙노트북 노드의 서버 스펙
      VPC노트북이 생성된 VPC
      Subnet노트북 노드에 적용된 Subnet
      생성 시간노트북이 생성된 날짜와 시간
    3. 노트북 목록 끝에 있는 df-app_open을 클릭한 후 노트북의 상세 정보를 확인해 주십시오.
      항목설명
      계정 이름노트북을 소유한 계정
      노트북 타입생성한 노트북 타입. 현재 Jupyterlab 타입만 제공
      노트북 이름생성된 노트북 이름
      노트북 아이디노트북의 고유한 아이디
      서버 사양노트북 노드의 서버 스펙
      VPC노트북이 생성된 VPC
      Subnet노트북 노드에 적용된 Subnet
      ACG노트북 노드에 적용된 ACG
      추가 스토리지추가 스토리지 정보
      도메인공인 IP에 할당된 도메인
      인증키 이름노트북에 적용된 인증키 이름
      SSH 접속 계정노트북 노드에 SSH로 직접 접속하기 위한 OS 계정명
      사용자 설정노트북에 적용된 사용자 설정 정보
      BucketObject Storage Bucket 정보

    노트북 접속

    노트북에 접속하는 방법은 다음과 같습니다.

    노트북 웹 페이지 접속

    노트북의 웹 페이지에 접속하는 방법은 다음과 같습니다.

    1. 사전 작업으로 웹 페이지에 접속할 Notebook의 ACG에 JupyterLab의 허용포트 80을 추가해 주십시오.
    2. Notebooks 메뉴에서 해당 노트북의 상세정보 화면에서 도메인 바로가기를 클릭해 주십시오.
      • Public Subnet에 생성된 노트북 노드는 공인 IP 기반으로 별도의 터널링 설정없이 웹 페이지 접속이 가능합니다.
    3. JupyterLab 웹 페이지의 로그인 화면이 나오면 패스워드 입력 후 접속해 주십시오.
      • 패스워드는 노트북 생성시 사용자 설정 화면에서 Access Password 항목에 설정한 패스워드입니다.
      • 패스워드를 분실하거나 변경이 필요하면 해당 노트북의 상세보기 화면에서 사용자 설정 [상세보기/초기화] 버튼을 클릭해 패스워드 초기화가 가능합니다.
        df-notebook-jupyter-login

    노트북 노드에 SSH로 직접 접속

    노트북 생성 시 인증키 설정 단계에서 설정한 인증키를 이용하여, 노트북 노드에 SSH로 직접 접속할 수 있습니다.

    사전작업

    노트북 ACG에 고정 IP를 추가하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
    2. 접근하려는 노트북의 상세정보 화면에서 ACG 바로가기 아이콘을 클릭해 주십시오.
    3. 해당 노트북에 적용된 ACG를 선택한 후 [ACG 설정] 버튼을 클릭해 주십시오.
    4. 다음 네 가지 정보를 입력하고 ACG Rule을 추가해 주십시오.
      • 프로토콜: TCP
      • 접근 소스: SSH 통신을 하는 로컬 장비의 IP
      • 허용 포트: 22
      • 메모(선택)

    mac OS 환경 SSH 접속

    iTerm2를 이용한 접속 방법을 설명합니다. 다른 프로그램을 사용해도 같은 동작을 수행한다면 결과는 동일합니다.
    노트북의 도메인 정보는 해당 노트북의 상세정보 화면에서 확인 가능합니다.

    chmod 400 </path/to/pem-key>
    ssh -i </path/to/pem-key>  forest@<notebook-domain>
    

    Windows 환경 SSH 접속

    PuTTY 클라이언트를 이용한 접속 방법을 설명합니다. 다른 프로그램을 사용해도 같은 동작을 수행한다면 결과는 동일합니다.

    다음 단계를 차례대로 진행해 주십시오.

    1. 인증키(.pem) 변환

    PuTTY에서는 Data Forest에서 생성된 프라이빗 키 형식(.pem)을 기본적으로 지원하지 않습니다. PuTTY에서 제공하는 PuTTYgen 애플리케이션을 사용해 인증키를 PuTTY에서 사용하는 형식(.ppk)으로 변환할 수 있습니다. PuTTY를 사용하여 노트북 노드에 연결하기 전에 프라이빗 키를 이 형식(.ppk)으로 변환해야 합니다.

    1. PuTTYgen을 실행해 주십시오. (puttygen 다운로드)
    2. Type of key to generate에서 RSA를 선택하고 [Load] 버튼을 클릭해 주십시오.
    3. 해당 인증키(*.pem)를 선택한 후 [열기] 버튼을 클릭해 주십시오.
      • pem 형식의 파일을 찾으려면 모든 유형의 파일을 표시하는 옵션을 선택해 주십시오.
      • pem 파일은 현재 클러스터에 적용되어 있는 인증키의 파일명이며 사용자 로컬 PC에 해당 pem 파일이 저장되어 있어야 합니다.
      • pem 파일을 분실했을 경우 콘솔 > 서버 접속 관리 > 인증키 변경 메뉴에서 접속하는 인증키를 변경할 수 있습니다.
    4. 완료 확인 팝업창의 내용을 확인한 후 [확인] 버튼을 클릭해 주십시오.
    5. [Save private key] 버튼을 클릭한 후 PuTTY에서 사용할 수 있는 ppk 형식의 파일로 저장해 주십시오.
      • PuTTYgen에서 암호 없이 키 저장에 대한 경고가 표시되면 [Yes] 버튼을 클릭해 주십시오.
      • 기존 생성한 인증키와 동일한 이름으로 저장해 주십시오. PuTTY가 자동으로 .ppk 파일 확장자를 추가합니다.
    참고

    한 번 만들어진 터널은 PuTTY에서 해당 세션을 저장해 두고 필요할 때 로드하여 접속할 수 있습니다.

    • 세션을 저장하려면 Load, save or delete a stored sessionSaved Sessions 입력란에 세션명을 입력한 후 [Save] 를 클릭해 주십시오.
    • 세션을 실행하려면 Saved Sessions 목록에 있는 해당 세션을 선택한 후 [Open] 버튼을 클릭해 주십시오.

    2. 노트북 노드 접속

    1. PuTTY를 실행해 주십시오. (PuTTY 다운로드)
    2. Category 창에서 Session을 선택한 후 각 설정 항목에 아래와 같이 입력해 주십시오.
      • HostName(or IP address): forest@notebook-domain ( notebook-domain에는 해당 노트북의 도메인 주소를 입력)
      • Port: 22
    3. Category 창에서 Connection > SSH를 선택해 확장한 후 Auth 항목을 클릭해 주십시오.
    4. [Browse] 버튼을 클릭해 pem 파일을 변환하여 생성한 ppk 파일을 선택한 후 [Open] 버튼을 클릭해 주십시오.
    5. 노트북 노드에 정상적으로 접속되었는지 확인해 주십시오.

    노트북 관리

    인증키 변경

    노트북 생성 시 지정한 인증키를 분실하거나 변경이 필요한 경우 인증키 변경이 가능합니다.
    인증키를 변경하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
    2. 좌측의 Notebooks 메뉴를 클릭해 주십시오.
    3. 계정을 선택하고 인증키를 변경할 노트북을 선택한 후 [서버접속관리] > [인증키 변경] 버튼을 클릭해 주십시오.
    4. 사용자 확인 후에 기존에 보유하고 있던 다른 인증키를 선택하거나 새로운 인증키 생성을 통해 인증키 변경이 가능합니다.

    사용자 설정 초기화

    노트북 생성 시 지정한 사용자 설정 값을 수정하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
    2. 좌측의 Notebooks 메뉴를 클릭해 주십시오.
    3. 계정을 선택하고 노트북 목록에서 사용자 설정을 변경할 노트북을 선택해서 상세보기 화면으로 이동합니다.
    4. 사용자 설정 항목의 [상세보기/초기화] 버튼을 클릭해 주십시오.
    5. 초기화가 필요한 설정의 값을 입력한 후에 [초기화] 버튼을 눌러 주십시오.
    참고

    사용자 설정을 변경할 경우 노트북을 재시작으로 인해 도커의 홈 디렉터리(/home/forest/)에서 작업한 내용들이 초기화됩니다. 필요한 내용들은 사전에 별도 저장 후에 노트북 재시작을 진행해 주십시오.

    버킷 수정

    Object Storage 버킷을 변경하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
    2. 좌측의 Notebooks 메뉴를 클릭해 주십시오.
    3. 계정을 선택하고 노트북 목록에서 버킷을 변경할 노트북을 선택한 후 노트북 상세보기 화면으로 이동합니다.
    4. 버킷 항목의 [수정] 버튼을 클릭해 주십시오.
    5. 변경할 버킷을 선택한 후에 [적용] 버튼을 눌러 주십시오.
    참고
    • 동일한 계정의 노트북에 이미 연동된 버킷은 중복 연동이 불가합니다.
    • 버킷을 변경할 경우 노트북을 재시작으로 인해 도커의 홈 디렉터리(/home/forest/)에서 작업한 내용들이 초기화됩니다. 필요한 내용들은 사전에 별도 저장 후에 노트북 재시작을 진행해 주십시오.

    노트북 재시작

    노트북을 다시 시작하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
    2. 좌측의 Notebooks 메뉴를 클릭해 주십시오.
    3. 계정을 선택하고 노트북 목록에서 시작할 노트북을 선택한 후 [재시작] 버튼을 클릭해 주십시오.

    노트북 삭제

    노트북을 삭제하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
    2. 좌측의 Notebooks 메뉴를 클릭해 주십시오.
    3. 계정을 선택하고 노트북 목록에서 삭제할 노트북을 선택하고 [삭제] 버튼을 클릭해 주십시오.
    참고

    노트북을 삭제하면 로컬에 저장된 노트북 파일은 유실됩니다. 필요한 노트북 파일은 사전에 별도 저장 후에 노트북을 삭제해 주십시오.

    노트북 사용

    JupyterLab Extention 활용

    df-notebook-jupyter-menu-new

    1. Object Storage Browser - Object Storage 연동 및 버킷 정보
      • 노트북을 생성한 Data Forest 계정이 소유한 Object Storage Bucket 과 자동으로 연동되어 있습니다.
      • 각 버킷 안의 파일 정보를 조회할 수 있습니다.
    2. File Browser - docker에 연결된 forest 사용자의 홈 디렉터리 정보
      • 접속 계정은 forest 이고, 홈 디렉터리는 /home/forest 입니다.
      • ~/keytab 아래 Data Forest 계정의 키탭 파일이 미리 업로드 되어 있습니다.
      • 노트북 생성시 추가 스토리지를 추가했을 경우 ~/data 경로에 마운트 되어 확인 가능합니다.
      • 노트북 생성시 선택한 Object Storage Bucket은 ~/data/{bucket_name} 폴더에 마운트되어 확인 가능합니다.
    3. Running Terminals and Kernels - 현재 구동중인 터미널과 커널 정보
    4. Git - GIT Repository 초기화 및 연동정보
    5. Terminal - 노트북이 수행중인 도커에 접속할 수 있는 기능
      • 백업이 필요한 경우, 노트북 생성시 선택한 Object Storage Bucket이 마운트된 ~/data/{bucket_name} 폴더에 파일이나 데이터를 저장하면 노트북 재시작 및 삭제 하더라도 Object Storage에 저장되어 백업이 가능합니다.

    Kinit 수행

    1. Terminal에 접속합니다.
    2. 노트북을 생성한 사용자의 키 탭 파일에서 티켓 정보를 확인합니다.
    $ pwd
    /home/forest
    
    $ klist -kt keytab/{계정_이름}.keytab
    Keytab name: FILE:keytab/{계정_이름}.keytab
    KVNO Timestamp           Principal
    ---- ------------------- ------------------------------------------------------
       3 03/27/2024 13:46:41 {계정_이름}@KR.DF.NAVERNCP.COM
       3 03/27/2024 13:46:41 {계정_이름}@KR.DF.NAVERNCP.COM
       3 03/27/2024 13:46:41 {계정_이름}@KR.DF.NAVERNCP.COM
    
    1. 키 탭 파일을 사용하여 사용자를 인증하고 티켓을 발급합니다.
    $ kinit -kt keytab/{계정_이름}.keytab {계정_이름}
    
    1. 현재 사용자의 티켓 정보를 확인합니다.
    $ klist
    Default principal: {계정_이름}@KR.DF.NAVERNCP.COM
    
    Valid starting       Expires              Service principal
    03/27/2024 15:03:43  03/28/2024 15:03:43  krbtgt/KR.DF.NAVERNCP.COM@KR.DF.NAVERNCP.COM
            renew until 04/03/2024 15:03:43
    

    코드 수행

    JupyterLab Web UI에 접속한 후 PySpark를 사용하여, Data Forest 클러스터와 연동할 수 있습니다.

    <PySpark 예제 코드>

    노트북에서 커널 설정을 PySpark로 선택하여 진행해 주십시오.

    import os
    import pyspark
    import socket
    from pyspark.sql import SQLContext, SparkSession
    
    sc = SparkSession  \
            .builder \
            .appName("SparkFromJupyter") \
            .getOrCreate()
    
    sqlContext = SQLContext(sparkContext=sc.sparkContext, sparkSession=sc)
    print("Spark Version: " + sc.version)
    print("PySpark Version: " + pyspark.__version__)
    
    df = sqlContext.createDataFrame(
        [(1, 'foo'), (2,'bar')], #records
        ['col1', 'col2'] #column names
    )
    df.show()
    
    print(socket.gethostname(), socket.gethostbyname(socket.gethostname()))
    

    df-notebook-jupyter-pyspark

    Object Storage 연동 및 노트북 파일 백업

    • 노트북 생성시 노트북 설정 단계에서 Object Storage Bucket을 선택하면 노트북 도커가 실행될 때 /home1/forest/data/{bucket_name} 경로에 마운트됩니다. 로컬 디스크에 저장되는 노트북 파일(.ipynb파일)을 연동된 버킷 경로에 업로드함으로서 백업도 가능합니다.
    • 사용자는 JupyterLab Web UI에 접속해서 자동으로 연동된 자신의 Object Storage Bucket 정보를 확인할 수 있습니다.

    <Python3 예제 코드>
    아래 코드 참고해서 노트북 생성시 지정한 Object Storage Bucket을 연동할 수 있습니다.
    노트북에서 커널 설정을 Python3로 선택해서 진행해 주십시오.

    # 필요한 boto3 모듈 임포트 
    import boto3
    
    # Object Storage 정보 입력
    service_name = 's3'
    endpoint_url = 'https://kr.object.private.ncloudstorage.com'
    region_name = 'kr-standard'
    access_key = '사용자의 access key'
    secret_key = '사용자의 secret key'
    
    # Boto3를 활용하여 Object Storage 연동
    if __name__ == "__main__":
       s3 = boto3.client(service_name, endpoint_url=endpoint_url, aws_access_key_id=access_key, aws_secret_access_key= secret_key)
       
    s3.upload_file("local_file_name", "bucket_name", "s3s3_path/file_name")
    
    

    Tensorflow MNIST 학습

    JupyterLab Web UI에 접속한 후, Python3를 사용하여 TensorFlow MNIST Training을 수행할 수 있습니다.

    <Python3 예제 코드>

    노트북에서 커널 설정을 Python3로 선택해서 진행해 주십시오.

    # tensorflow library import
    # tensorflow 설치가 필요하면
    # !pip install tensorflow_version
    
    import tensorflow as tf
    mnist = tf.keras.datasets.mnist
    
    # mnist 데이터 셋 로드
    (x_train, y_train),(x_test, y_test) = mnist.load_data()
    x_train, x_test = x_train / 255.0, x_test / 255.0
    
    # layer를 추가해 모델을 정의
    model = tf.keras.models.Sequential([
      tf.keras.layers.Flatten(input_shape=(28, 28)),
      tf.keras.layers.Dense(128, activation='relu'),
      tf.keras.layers.Dropout(0.2),
      tf.keras.layers.Dense(10, activation='softmax')
    ])
    
    model.compile(optimizer='adam',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])
    
    # 모델을 훈련하고 평가
    model.fit(x_train, y_train, epochs=5)
    model.evaluate(x_test, y_test)
    
    # 학습된 모델을 HDF5 파일로 저장
    model.save('my_model.h5')
    

    GIT 연동

    Jupypterlab Web UI에 접속한 후 좌측 메뉴에서 연동할 GIT 리포지토리 정보를 입력하여 GIT 연동을 할 수 있습니다.


    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.