Ncloud TensorFlow Cluster 서버 생성 가이드
    • PDF

    Ncloud TensorFlow Cluster 서버 생성 가이드

    • PDF

    Article Summary

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

    사용하기 전에

    Q. Ncloud TensorFlow Cluster는 무엇인가요?

    • 대용량 학습데이터 혹은 연산량이 많은 텐서플로 코드를 Cluster 환경에서 보다 빠르게 실행하기 위한 서비스입니다.
    • 미리 제공되는 tcm CLI 명령어를 통해 클러스터의 노드를 생성, 추가, 삭제하고, 스토리지를 Cluster에서 쉽게 공유하고 간편하게 증설할 수 있습니다. 또한 사용자 코드를 쉽게 Cluster에 실행(Job Submit)할 수 있습니다.
    • Ncloud Tensorflow Cluster는 구글 브레인팀에서 개발한 오픈소스 머신러닝 소프트웨어 라이브러리인 Tensorflow를 이용하고 있습니다.

    Q. 지원되는 OS는 어떻게 되나요?

    • OS는 'ubuntu-16.04-64-server'를 제공합니다.

    Q. 어떤 패키지들이 제공되며, 제공하는 패키지들만 사용할 수 있나요?

    • Ncloud TensorFlow Cluster master 서버에는 Anaconda와 Cluster를 운영할 수 있는 tcm CLI 패키지가 설치됩니다. (TensorFlow 설치 제외)
    • Ncloud TensorFlow Cluster master 서버에서 생성하는 Cluster Node에는 TensorFlow가 설치됩니다.

    Q. 파이썬 외에 Java나 다른 언어를 사용할 수 있나요?

    • TensorFlow에서 Java나 Go 등의 API도 제공하지만 안정성을 보장하지 않기 때문에 Python을 사용하는 것을 권장합니다.

    Q. Ncloud TensorFlow Cluster는 어떻게 생성하나요?

    • Ncloud TensorFlow Cluster는 Standard 사양의 서버를 필요에 따라 생성하고, 터미널로 접속 후 tcm CLI 명령어로 Cluster를 구성합니다.
    • TensorFlow master 서버는 월 요금제와 시간 요금제 중 선택 가능하며, 서버를 생성한 후 접속 환경을 설정하여 이용할 수 있습니다. (Worker, 파라미터 서버 노드들은 시간 요금제로 생성됩니다.)

    Q. 제공되는 서버 타입들은 어떤 것들이 있나요?

    • 네이버 클라우드 플랫폼이 제공하는 Ncloud TensorFlow Cluster master 서버 타입은 Standard 서버 타입 중에서 사양 선택이 가능합니다. 터미널로 접속 후 tcm CLI 명령어로 생성하는 서버 노드들은 아래와 같은 스펙 사양을 선택할 수 있습니다. (단 모든 서버 노드들은 동일한 스펙으로 선택이 가능합니다.)

    • Ncloud TensorFlow Cluster Worker, 파라미터 서버 노드들은 아래 5가지의 서버 스펙 중에서 선택 가능합니다. (모든 서버 노드들은 동일한 스펙으로 구성되며, GPU 서버타입은 향후 지원 예정입니다.)

    스펙코드스펙 상세설명
    minivCPU 4ea, Memory 16GB, HDD 50GB클러스터 테스트 용도나 적은 워크로드 처리에 적합한 서버 유형
    basicvCPU 8ea, Memory 32GB, HDD 50GB중간 규모의 워크로드 처리에 적합한 서버 유형
    highvCPU 16ea, Memory 32GB, HDD 50GB큰 규모의 워크로드 처리에 적합한 서버 유형
    gpu1GPU 1ea, GPU Mem 24GB, vCPU 4ea, Memory 30GB, SSD 50GB단일 GPU를 클러스터 노드 수만큼 확장하여 사용
    gpu2GPU 2ea, GPU Mem 48GB, vCPU 8ea, Memory 60GB, SSD 50GB듀얼 GPU를 클러스터 노드 수만큼 확장하여 매우 큰 워크로드 처리 가능

    (단 노드들은 동일한 스펙타입으로 구성되며, 모든 노드가 워커 서버 노드로 인식되고, 파라미터 서버 노드의 개수는 지정이 가능합니다.)

    Q. Ncloud TensorFlow Cluster master 서버를 생성했는데 워커 서버나 파라미터 서버는 어떻게 생성하나요?

    Q. TensorFlow code은 어떻게 Cluster에서 실행하나요?

    Ncloud TensorFlow Cluster 소개

    TensorFlow에서 Cluster란 TensorFlow 그래프 상에서의 분산된 연산의 일부로서 작업(Task)의 집합을 의미합니다. 각각의 작업은 TensorFlow의 서버 노드들에서 실행되며, 각 서버들은 세션을 생성하는 마스터 서버, 그래프 연산을 수행하는 워커 서버, 연산된 기울기(Gradient)를 공유하는 파라미터 서버로 구성됩니다.
    이러한 서버들이 각각 자신이 수행하는 역할에 위해서 각각의 서버 노드들에게 Cluster 구성정보를 설명하는 ClusterSpec을 인자로 넘겨주어야 하며, Ncloud TensorFlow Cluster는 그러한 작업을 비교적 간편하게 처리할 수 있습니다.

    사용자는 각 노드에 전달할 Cluster Spec에 신경 쓸 필요없이 학습 코드 작성에만 집중하시면 됩니다. 다만 Cluster Spec을 세션에 전달하기 위해서 약간의 사용자코드 수정은 필요 합니다. 수정될 부분에 대한 설명은 Ncloud TensorFlow Cluster MNIST 예제를 참조해 주십시오.

    해당 서비스는 TensorFlow 분산 병렬처리를 위한 서비스지만, 서버에 Anaconda가 설치되어 있어 기본적인 데이터 전처리, 시각화등을 처리할 수 있습니다.

    Ncloud TensorFlow Cluster 구성도

    tensorflow-2-1_configuration_ko

    Ncloud TensorFlow Cluster 생성

    Step 1. 콘솔 접속

    콘솔에 접속해서 Server > Server 메뉴를 선택해 주십시오.

    tensorflow-2-1-100_ko

    1. 서버를 생성하려면 [서버 생성] 버튼을 클릭해 주십시오.

    Step 2. 서버 이미지 선택

    TensorFlow 서버 이미지를 선택해서 서버를 생성합니다.

    tensorflow-2-1-105_ko

    1. Application > Tensorflow를 선택해 주십시오.

    2. 이미지에서 tensorflow-cluster-ubuntu-16.04-64-master를 선택하고 [다음] 버튼을 클릭해 주십시오.

    Step 3. 서버 설정

    스토리지 종류, 서버 타입, 요금제, Zone을 선택하고, 서버 이름을 입력합니다.

    tensorflow-2-1-110_ko

    1. Zone을 선택해 주십시오.
    • 현재 제공하는 Zone은 'KR-1'과 'KR-2'가 있습니다.
    1. 서버 스토리지 종류를 선택해 주십시오.
    • 고성능 I/O가 필요한 서비스에는 SSD를, 일반적인 서비스에는 HDD를 선택해 주십시오. 단, 부팅 스토리지가 SSD인 경우에만 추가 스토리지로 SSD를 이용할 수 있습니다.
    1. 원하는 서버 타입을 선택해 주십시오. Master 서버는 Standard 서버 타입 안에서만 선택이 가능합니다.

    2. 요금제는 월요금제 또는 시간 요금제 중 선택해 주십시오.

    3. 서버 대수를 입력해 주십시오. (Master 서버는 1대가 하나의 클러스터가 되기 때문에 1대를 선택하고, 복수의 클러스터를 원하는 경우에만 1대 이상을 선택해 주십시오.)

    4. 서버 이름을 입력한 후 [다음] 버튼을 클릭해 주십시오.

    Step 4. 인증키 설정

    보유하고 있는 인증키가 있는 경우 보유하고 있는 인증키 이용을 선택하고, 없는 경우 아래의 절차대로 새로운 인증키를 생성합니다.

    tensorflow-2-1-115_ko

    1. 새로운 인증키 생성을 선택해 주십시오.

    2. 인증키 이름을 입력해 주십시오.

    3. [인증키 생성 및 저장] 버튼을 클릭하여 로컬 PC에 인증키 파일을 저장해 주십시오.

    • 새로운 인증키를 발급받습니다.
    • 저장 후 인증키는 고객의 PC 안전한 위치에 보관해 주십시오.
    • 인증키는 최초의 관리자 비밀번호를 가져올 때 이용됩니다.
    1. [다음] 버튼을 클릭해 주십시오.

    Step 5. 네트워크 접근 설정

    Ncloud Tensorflow Cluster는 기본적으로 Worker 노드들 간에 통신을 통해 Job을 수행합니다.
    해당 서비스에서는 이러한 통신을 위해 특정 포트를 열어 사용하게 되는데, 이는 네이버 클라우드 플랫폼 콘솔에서 ACG 등록을 통해 가능합니다.
    Ncloud Tensorflow Cluster 사용을 위한 ACG 등록은 크게 두 가지 방법이 있습니다.

    1. 사용자 ACG 생성을 통한 등록
    • 신규 ACG 생성 옵션을 선택하면 [+ACG 생성] 버튼이 생성됩니다.
    • [ACG 생성] 버튼을 클릭해 주십시오.
    • ACG 생성 팝업 창이 뜨면 ACG이름을 입력해 주십시오.
    • 아래 ACG 설정을 하나씩 입력하고 [추가] 버튼을 클릭해 주십시오.
    프로토콜접근소스허용포트
    TCP0.0.0.022
    TCP0.0.0.02222
    TCP0.0.0.03333
    • [생성] 버튼을 클릭해 주십시오.
    1. ncloud-default-acg 사용
    • ncp 계정에는 기본적으로 ncloud-default-acg 라는 ACG가 등록되어 있습니다. 이는 보유하고 있는 노드들 범위에서 모든 포트에 접근 가능한 설정입니다.
    • 해당 ACG를 사용하면 Ncloud Tensorflow Cluster에서 각 Worker 노드들 간의 통신이 가능합니다.

    다음 그림은 2번 방법을 선택한 화면입니다.

    tensorflow-2-1-120_ko

    Step 6. 최종 확인

    설정한 내용을 최종 확인합니다.

    tensorflow-2-1-125_ko

    1. 서버 이미지, 서버, 인증키, ACG가 정상적으로 설정되었는지 확인해 주십시오.

    2. 최종 확인 후에는 [서버 생성] 버튼을 클릭해 주십시오.

    • 서버가 생성되기까지는 수 분에서 수십 분이 소요됩니다.

    서버 목록에서 확인

    생성한 서버를 리스트에서 확인합니다.

    1. 생성한 서버가 목록에 표시됩니다.

    2. 서버가 생성되고 패키지가 설치 완료되어 서버 상태가 운영중이 될 때까지 대기해 주십시오.

    포트 포워딩 설정 및 접속

    포트 포워딩 설정

    터미널 프로그램(Putty 등)으로 서버에 접속하려면 포트 포워딩을 설정해야 합니다.

    tensorflow-2-1-130_ko

    1. 서버리스트에서 설정할 서버를 선택하고 상단에 [포트 포워딩 설정] 을 클릭해 주십시오.

    2. 포트 포워딩 설정 화면에서 외부 포트 번호를 설정해 주십시오. 외부 포트 번호의 입력 범위는 1024~65,534로, 서버 접속을 위한 기능 외에 서비스 용도로 사용할 수 없습니다. (내부 포트 번호는 22로 정해져 있습니다.)

    3. [추가] 버튼을 클릭하면 설정 내역이 하단에 추가되며 [수정], [삭제] 버튼을 클릭하여 설정 내역을 수정, 삭제할 수 있습니다.

    4. [적용] 버튼을 클릭하면 설정한 외부 포트로 터미널 프로그램을 이용하여 SSH 접속을 할 수 있습니다.

    접속 및 tcm CLI 명령어 사용

    터미널 프로그램으로 ssh root@[접속용 공인 아이피] -p [포트포워딩 포트번호]로 아래 그림과 같이 접속하면 tcm CLI명령어를 사용할 수 있습니다.

    tensorflow-2-1-135_ko

    1. Ncloud TensorFlow Cluster master 서버에 접속해 주십시오.

    2. tcm 명령어를 실행하면 사용 가능한 CLI command 리스트가 출력됩니다.

    3. tcm info 명령어로 기존에 생성한 Cluster 노드 정보를 확인할 수 있습니다. (기 생성 Cluster 노드가 없는 경우, Create 명령어로 새롭게 구성하실 수 있습니다.)

    자세한 tcm CLI 명령어 사용법은 Ncloud TensorFlow Cluster tcm 명령어 사용 가이드를 참조해 주십시오.


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

    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.