[GCP] Computing Engine 환경설정

Computing Engine 환경설정

  • 이번 글은, Google Cloud Platform의 Computing Engine 인스턴스의 기본적인 환경설정 방법을 소개하는 글입니다. 직접 작업환경을 세팅하면서, 정리 하는 목적으로 작성하는 글입니다.
  • 다음과 같은 환경을 설정합니다.
  1. 인스턴스 생성 및 네트워크 설정
  2. 접속을 위한 ssh 생성 및 접속
  3. python3, pip3 설치
  4. CUDA 설치
  5. cuDNN 설치
  6. Pytorch 설치
  7. Jupyter 설치 및 환경설정

1. 인스턴스 생성 및 네트워크 설정

Compute Engine에서 자신의 목적에 맞는 리소스를 정해, 인스턴스를 생성해줍니다.

Jupyter notebook 을 사용하기 위해, VPC 네트워크 → 방화벽 규칙 탭에서 방화벽 규칙을 만들어 줍니다. 후에 Tensorboard 와 다른 기타 환경들을 사용할 때 그에 맞는 포트 규칙을 동일한 방법으로 열어주면 됩니다. 아래의 4가지를 설정해주고 ‘만들기’ 클릭

이름 : jupyter

소스 IP 범위: 0.0.0.0/0

대상 태그: jupyter

tcp: 8888

http, https: 체크

2. 접속을 위한 RSA key pair 생성 및 ssh 접속

  • gcp 에서 제공하는 gcloud로도 접속 할 수 있습니다.
  1. 위에서 생성한 인스턴스에 접속하기 위해, RSA key pair 를 이를 통해 접속 해 봅니다. 아래의 명령어를 이용해 키페어를 생성해 줍니다. 이 때, USERNAME 은 gcp에 등록한 이메일로 설정합니다.

    $ ssh-keygen -t rsa -f ~/.ssh/[KEYFILE_NAME] -C “[USERNAME]”

    example) $ ssh-keygen -t rsa -f ~/.ssh/gcp-key -C “myemail@mail.com

앞으로 사용할 Password 를 입력하고,

생성된 키페어는 .ssh 폴더 안에서 확인 할 수 있습니다. .ssh/[KEYFILE_NAME].pub 를 확인해 볼 수 있습니다.

  1. 생성한 키페어를 gcp 의 메타데이터 탭 → SSH 키에 등록합니다.

  1. ssh 접속

    $ ssh -i ~/.ssh/[KEYFILE_NAME] [USERNAME]@[GCP외부IP]

3. Python3, PIP 설치

위에서 서버에 접속했다면, 서버의 개발환경을 설정해 주기만 하면 됩니다. python3 와 pip 부터 설치해 봅니다.

  1. locale 설정

    1
    2
    3
    4
    5
    6
    $ sudo apt install language-pack-ko
    $ sudo locale-gen ko_KR.UTF-8

    $ export LC_ALL="en_US.UTF-8"
    $ export LC_CTYPE="en_US.UTF-8"
    $ sudo dpkg-reconfigure locales

    en_US.UTF-8이 [*] 로 체크 되어 있는지까지 확인합니다.

  2. Python3, PIP 설치

    1
    2
    $ sudo apt update
    $ sudo apt install python3-pip

    설치 후, python3 --version 으로 python 이 잘 설치 되었는지 확인합니다.

4. CUDA 설치

우리가 가장 원하는 리소스인 gpu를 활용한 연산을 위해 CUDA 를 설치 해 줍니다.

  1. 먼저, 설치 파일을 다운로드 해줍니다.
1
2
// 루트에서
$ wget https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64
  1. ls 로 cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64.deb 이 잘 다운로드 되었는지 확인 해 줍니다. 다운로드 결과 .deb 확장자가 되어있지 않다면, 파일명에 .deb 를 뒤에 붙여 줍니다.

mv cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64 cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64.deb

  1. 설치
    1
    2
    3
    4
    5
    $ sudo dpkg -i cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
    $ sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
    ### $ sudo apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub
    $ sudo apt update
    $ sudo apt install cuda
    CUDA 가 정상적으로 설치되었다면, $ nvidia-smi 를 통해 자신의 gpu 상태를 확인 할 수 있습니다. 또한, /usr/local/cuda/version.txt 에 설치한 CUDA, 현재는 10.0의 version 을 확인 할 수 있습니다.
  • NVIDA tool-kit 설치
    1
    sudo apt install nvidia-cuda-toolkit

5. cuDNN 설치

다음의 명령어를 통해 cuDNN 을 설치 할 수 있습니다.

1
2
3
$ sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" >> /etc/apt/sources.list.d/cuda.list'
$ sudo apt update
$ sudo apt install libcudnn7-dev

6. Pytorch 설치

  • 우리는 서버가 https 프로토콜을 사용한다고 체크했으므로 -H flag 를 주어 sudo pip3 를 활용해야합니다.
    1
    2
    $ sudo -H pip3 install https://download.pytorch.org/whl/cu100/torch-1.1.0-cp36-cp36m-linux_x86_64.whl
    $ sudo -H pip3 install https://download.pytorch.org/whl/cu100/torchvision-0.3.0-cp36-cp36m-linux_x86_64.whl

7. Jupyter Notebook 설치 및 환경설정

  1. Jupyter를 설치합니다.

    1
    $ sudo -H pip3 install jupyter

    설치 후, $ jupyter notebook 으로 주피터 커널이 켜지는지 확인합니다.

  2. 주피터 config 파일을 생성합니다.

    1
    $ jupyter notebook --generate-config
  3. 비밀번호를 생성합니다. 이 비밀번호는 지금 설치한 주피터 환경에 들어가기 위한 비밀번호 입니다.

    1
    2
    3
    4
    5
    $ ipython
    from notebook.auth import passwd
    passwd()
    Enter Password: 사용할 비밀번호 입력
    Verify Password: 사용할 비밀번호 입력

    출력된 비밀번호 해쉬 sha1: ~~~ 를 복사해 둡니다.

  4. 우리의 인스턴스는 https 프로토콜을 사용하므로, SSL 키파일을 생성해야 합니다.

    1
    $ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout cert.pem -out cert.pem

    위 명령어를 입력하고, 뒤따라 나오는 정보들을 입력하여, .pem 파일을 생성합니다.

    1. 에서 생성한 config 파일 수정
      1
      $ vi /home/[USERNAME]/.jupyter/jupyter_notebook_config.py
      1
      2
      3
      4
      5
      6
      // config 파일에 다음의 내용을 추가합니다.
      c = get_config()
      c.NotebookApp.ip = '내부아이피주소'
      c.NotebookApp.open_browser=False
      c.NotebookApp.password='3에서 생성한 비밀번호 해쉬 sha1:~'
      c.Notebook.certfile='4에서 생성한 .pem 파일 경로 /home/USERNAME/cert.pem'
      위까지 완료하게 되었으면, 주피터 서버를 열고, https://외부아이피:8888 로 주피터를 접속 하는 것을 확인하시면 되겠습니다.

[GCP] Computing Engine 환경설정

https://emjayahn.github.io/2019/06/17/gcp-setting/

Author

Emjay Ahn

Posted on

2019-06-17

Updated on

2019-11-04

Licensed under

Comments