AWS에서 머신러닝 기반 구축
머신러닝용 서버(이하 GPU 서버)는 전용 서브넷에 배치하기로 결정했습니다.
※ 페달을 납치당하면 의미가 없다는 의견도 있는데...
또 기계를 배우고 싶어서 GPU 서버에 Jupyter Notebook과 Tensor Flow를 추가할 계획이다.나는 먼저 안전 그룹의 포트를 설정하고 싶다.나중에 GPU 서버에 TensorFlow 또는 CUDA cuDNN을 설치하는 방법에 대해 설명합니다.
프로비저닝
기본 구성
※ S3 설치는 여기
생성 과정
VPC 만들기
IPv4CIDR 블록
VPC 이름
사용 가능한 영역
10.0.0.0/16
GPU-VPC
us-east-1a
이름 표시
VPC
사용 가능한 영역
IPv4 CIDR
Pablic/Private
Bastian-Subnet
GPU-VPC
us-east-1a
10.0.0.0/24
Pablic
※ 좀 싸게 주고 싶어서 가용성 구역을 버지니아 북부로 변경했습니다.
역시 SSH가 느려서 익숙해지면 신경 안 써요.
서브넷 생성
VPC
사용 가능한 영역
IPv4 CIDR
Pablic/Private
GPU-Subnet1
GPU-VPC
us-east-1a
10.0.1.0/24
Private
※ GPU용 서브넷 확장 가정하기
인터넷 게이트웨이 확인 및 구성
라우팅 테이블 확인 및 구성
Bastian-Subnet에 Route Table을 설치했기 때문에 인터넷에 바로 연결할 수 있습니다.
보안 그룹 만들기
GPU 서버 제작용과 페달 서버용 두 가지.다음과 같이 설정합니다.
스프링보드 서버용 보안 그룹
보안 그룹 이름
VPC
설명
Bastian-Security
GPU-VPC
Use for Bastian
인바운드 규칙(※ 아웃바운드 모두)
유형
포트 범위
소스(유형)
소스(IP/SG)
설명
SSH
22
사용자 정의
접속 소스당 글로벌 IP
SSH@
TCP 규칙 사용자 정의
6006
사용자 정의
접속 소스당 글로벌 IP
TesnsorBoard
TCP 규칙 사용자 정의
19999
사용자 정의
접속 소스당 글로벌 IP
JupyterNotebook
보안 그룹 이름
VPC
설명
GPU-Security
GPU-VPC
Use for GPU
인바운드 규칙(※ 아웃바운드 모두)
유형
포트 범위
소스(유형)
소스(IP/SG)
설명
SSH
22
사용자 정의
Bastian-Security
SSH from Bastian
TCP 사용자 정의
6066
사용자 정의
Bastian-Security
TesnsorBoard from Bastian
SSH
19999
사용자 정의
Bastian-Security
JupyterNotebook from Bastian
스프링보드 서버 만들기
STEP1AMI 선택
STEP2 인스턴스 유형 작성
STEP3 인스턴스 설정
STEP4 스토리지 추가
단계 5 태그 인스턴스
STEP6 보안 그룹 설정
(연결 소스에 따라 Bastian-Security의 입구를 변경해야 함)
STEP7 확인
전자 IP 할당
발판 서버가 외부에 연결되어 있기 때문에 전자 IP를 미리 분배하는 것이 비교적 수월할 수 있다.
현재 페달 서버의 준비 작업이 이미 끝났다.
GPU 서버 만들기
기본적으로 페달 서버의 제작 방법과 같다.
STEP1AMI 선택
(NVIDIA Tesla K80GPU 탑재 p2.xlarge)
STEP3 인스턴스 설정
STEP4 스토리지 추가
단계 5 태그 인스턴스
STEP6 보안 그룹 설정
STEP7 확인
이렇게 하면 GPU 서버와 페달 서버를 구축할 수 있고 이후에 SSH로 연결하면 완성된다.
SSH 연결 GPU 서버
페달 서버에서 GPU 서버에 간단하게 연결하기 위해 페달 서버의 아래 디렉터리에 키 파일을 저장합니다./home/ubuntu/.ssh
참조할 수 있는 권한을 변경합니다.$ chmod 600 GPU-Key.pem
.ssh/config 파일에 다음과 같은 내용을 기록합니다.# GPU-Srver host
# Hostnameは内部IP
Host GPU
Hostname 10.0.0.24
User ubuntu
IdentityFile /home/ubuntu/.ssh/GPU-Key.pem
※ 글로벌 IP를 통해 페달 서버와 연결되지만 GPU 서버는 동일한 VPC에 있기 때문에 내부 IP를 통해 연결됩니다.또한 내부 IP는 다시 시작해도 실례가 바뀌지 않기 때문에 conf 파일에 기록하는 데 문제가 없습니다.
config 파일이 없을 때 다음 명령으로 만들기$ cd /home/ubuntu/.ssh
$ touch config
이 설정을 하면...$ ssh GPU
이렇게 하면 페달 서버에서 간단하게 SSH를 GPU 서버에 연결할 수 있습니다.
총결산
이번에 먼저 환경을 만들어 보았지만 여기서부터 GPU 서버 SSH 연결까지 다양한 것들(CUDA, NVIDIA 드라이버, cuDNN 등)을 넣어야 하기 때문에 거기가 심각합니다.
또한 여기에 GPU 실례를 개인 서브넷에 두기 때문에 실제로 GPU 서버에 여러 가지 물건을 설치할 때 루트 테이블을 공공 서브넷으로 설정하는 것이 편리하다.
Reference
이 문제에 관하여(AWS에서 머신러닝 기반 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shicky1121/items/9f57f352393f88d4e0fa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
/home/ubuntu/.ssh
$ chmod 600 GPU-Key.pem
# GPU-Srver host
# Hostnameは内部IP
Host GPU
Hostname 10.0.0.24
User ubuntu
IdentityFile /home/ubuntu/.ssh/GPU-Key.pem
$ cd /home/ubuntu/.ssh
$ touch config
$ ssh GPU
이번에 먼저 환경을 만들어 보았지만 여기서부터 GPU 서버 SSH 연결까지 다양한 것들(CUDA, NVIDIA 드라이버, cuDNN 등)을 넣어야 하기 때문에 거기가 심각합니다.
또한 여기에 GPU 실례를 개인 서브넷에 두기 때문에 실제로 GPU 서버에 여러 가지 물건을 설치할 때 루트 테이블을 공공 서브넷으로 설정하는 것이 편리하다.
Reference
이 문제에 관하여(AWS에서 머신러닝 기반 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shicky1121/items/9f57f352393f88d4e0fa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)