Google Cloud Platform (GCP) Setup Guide - KU-BIG/KUBIG_Wiki GitHub Wiki

1. VM ์ธ์Šคํ„ด์Šค ๋งŒ๋“ค๊ธฐ

Google Cloud Platform ๊ฐ€์ž… ๋ฐ ์†Œ๊ฐœ

[GCP] ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์œผ๋กœ ๋ถ„์„ ํ™˜๊ฒฝ ๋ฌด๋ฃŒ๋กœ ๋งŒ๋“ค๊ธฐ

  • [์ค‘์š”] ์ธ์Šคํ„ด์Šค๋ฅผ ์ผœ๋‘๋ฉด ๊ณ„์† ์š”๊ธˆ์ด ๊ณผ๊ธˆ๋˜๋ฏ€๋กœ, ์‚ฌ์šฉํ•˜์ง€ ์•Š์„๋•Œ๋Š” ๊ผญ ๊บผ์ฃผ์„ธ์š”
  • ์„ค์น˜ ์™„๋ฃŒ ํ›„ ์ฅฌํ”ผํ„ฐ ๋…ธํŠธ๋ถ์— ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋Š” ์ธ์Šคํ„ด์Šค์—์„œ ๋ฐฉํ™”๋ฒฝ ์ฒดํฌ๋ฅผ ์„ค์ •์„ ๋ฐ”๊ฟ”์ฃผ์„ธ์š”. HTTP ํŠธ๋ž˜ํ”ฝ ํ—ˆ์šฉ/ HTTPS ํŠธ๋ž˜ํ”ฝ ํ—ˆ์šฉ ์ฒดํฌ ํ•ด์ œ๋ฅผ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
  • ์ฒ˜์Œ GPU ์ž์›์„ ์š”์ฒญํ•˜๊ณ  ๋‚œ ๋’ค์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—, ์š”์ฒญํ•œ ์งํ›„์—๋Š” GPU ์„œ๋ฒ„๊ฐ€ ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ฒ˜์Œ ์ƒ์„ฑํ• ๋•Œ๋Š” CPU ์„œ๋ฒ„ ์„ธํŒ…์œผ๋กœ ํ•ด์ฃผ์„ธ์š”

1-1. ์ŠคํŽ™

  • ๋ถ€ํŒ…๋””์Šคํฌ : Ubuntu 18.04, 10GB
  • CPU : ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„๊ฑฐ๋ฉด CPU 1๊ฐœ๋กœ ์„ ํƒ, ์‚ฌ์šฉํ• ๊ฑฐ๋ฉด ํ•„์š”ํ•œ ๋งŒํผ
  • ๋ฉ”๋ชจ๋ฆฌ : 4 ~ 16GB (ํ•„์š”ํ•œ ๋งŒํผ)
  • ๋จธ์‹ ์œ ํ˜• '์ปค์Šคํ…€'์œผ๋กœ ์„ค์ •ํ•ด์•ผ ์œ„์™€ ๊ฐ™์ด ์ž„์˜๋กœ ์„ค์ • ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ํฌ์ŠคํŠธ ๋”ฐ๋ผํ•˜์‹ค๋•Œ ๋ฆฌ์ ผ, ์˜์—ญ ์ž˜ ํ™•์ธํ•ด์ฃผ์„ธ์š”. ํ•ด๋‹น ํ•ญ๋ชฉ์— ๋”ฐ๋ผ ๋ฌด์–ธ๊ฐ€๊ฐ€ ์—†๊ฑฐ๋‚˜ ์š”๊ธˆ์ด ๋‹ค๋ฅธ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค

1-2. GPU ์š”์ฒญ

  • ํฌ์ŠคํŠธ์—์„œ ๋‚˜์˜ค๋Š”
    • ๊ณ„์ • ์—…๊ทธ๋ ˆ์ด๋“œ
    • NVIDA K80 GPUs

์ด์™ธ์—๋„ ์ถ”๊ฐ€๋กœ

  • ์ธก์ •ํ•ญ๋ชฉ : GPUs (all regions)

์„ 1๋กœ ์ƒํ–ฅ ์š”์ฒญํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ €๊ฑธ ์˜ฌ๋ฆฌ์ง€ ์•Š์œผ๋ฉด K80์˜ ํ• ๋‹น๋Ÿ‰์ด 1์ด์–ด๋„ GPU ์ธ์Šคํ„ด์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

GPUs (all regions) ์ƒํ–ฅ ์š”์ฒญํ•˜๊ธฐ

a) CPU ์„œ๋ฒ„

  • VM ์ธ์Šคํ„ดํŠธ๋ฅผ ๋งŒ๋“ค๋•Œ GPU ๋ถ€๋ถ„์„ ๊ฑด๋„ˆ๋›ฐ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค
  • CUDA, CuDNN ๊ด€๋ จ๋œ ๋ถ€๋ถ„์„ ๊ฑด๋„ˆ๋›ฐ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค
  • '3. Compute Engine VM ์ƒ์„ฑ' ์„ ์™„๋ฃŒํ•œ ๋’ค ์•„๋ž˜ 'SSH๋กœ ์„œ๋ฒ„ ์ ‘์†'์œผ๋กœ ๋„˜์–ด๊ฐ€์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค

b) GPU ์„œ๋ฒ„

  • ๋‚ด์šฉ

2. SSH๋กœ ์„œ๋ฒ„ ์ ‘์†

์ƒ์„ฑ๋œ GCP๋ฅผ SSH๋กœ ์ ‘์†ํ•˜๊ธฐ

2-1. macOS, Ubuntu

SSH Key ์ƒ์„ฑ

ssh-keygen -f ~/.ssh/[ํŒŒ์ผ์ด๋ฆ„] -C "[id]"

์˜ˆ์‹œ

ssh-keygen -f ~/.ssh/rsa-gcp-key -C "[email protected]"

GCP์— SSH Key ๋“ฑ๋ก

cat ~/.ssh/[ํŒŒ์ผ์ด๋ฆ„].pub

์˜ˆ์‹œ

cat ~/.ssh/rsa-gcp-key.pub

Google Cloud Platform -> Computer Engine -> ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ -> SSH ํ‚ค์— ํ•ญ๋ชฉ ์ถ”๊ฐ€ -> ์ €์žฅ

์ ‘์†๋ฐฉ๋ฒ•

ssh -L 9999:localhost:9999 -i [sshํ‚ค ์œ„์น˜] -o ServerAliveInterval=15 -o ServerAliveCountMax=3 [๋ฉ”ํƒ€๋ฐ์ดํ„ฐ-SSHํ‚ค์˜ '์‚ฌ์šฉ์ž ์ด๋ฆ„']@[์™ธ๋ถ€ip]
  • sshํ‚ค๋ฅผ ์ƒ์„ฑํ• ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  • ์ธ์Šคํ„ด์Šค๋ฅผ ์ค‘์ง€ํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰ํ• ๋•Œ ์™ธ๋ถ€ip๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ‘์†์ด ์•ˆ๋ ๊ฒฝ์šฐ ์™ธ๋ถ€ip๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”
  • ์™ธ๋ถ€ip : ์ปดํ“จํŒ… -> Compute Engine -> VM ์ธ์Šคํ„ด์Šค

์˜ˆ์‹œ

ssh -L 9999:localhost:9999 -i ~/.ssh/rsa-gcp-key -o ServerAliveInterval=15 -o ServerAliveCountMax=3 [email protected]

2-2. Windows

OpenSSH ์„ค์ •

์œˆ๋„์šฐ10 PUTTY ๋Œ€์‹  CMD์—์„œ ssh ์ ‘์†, OpenSSH ํด๋ผ์ด์–ธํŠธ ํ™œ์šฉํ•˜๊ธฐ

SSH Key ์ƒ์„ฑ

Manually generating your SSH key in Windows

๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ cmd ์‹คํ–‰

mkdir C:\.ssh
ssh-keygen -f C:\.ssh\[ํŒŒ์ผ์ด๋ฆ„] -C "[id]"

์˜ˆ์‹œ

mkdir C:\.ssh
ssh-keygen -f C:\.ssh\rsa-gcp-key -C "[email protected]"

Enter passphrase (empty for no passphrase):

๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์‚ฌ์šฉํ•  ํ‚ค์›Œ๋“œ ์ž…๋ ฅ

GCP์— SSH Key ๋“ฑ๋ก

type C:\.ssh\[ํŒŒ์ผ์ด๋ฆ„].pub

์˜ˆ์‹œ

type C:\.ssh\rsa-gcp-key.pub

์‹คํ–‰๊ฒฐ๊ณผ

ssh-rsa AAA.....
.......  
...../CLT [email protected]

์ „์ฒด ๋ณต์‚ฌํ•ด์„œ Google Cloud Platform -> ์ปดํ“จํŒ… -> Computer Engine -> ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ -> SSH ํ‚ค์— ํ•ด๋‹น ๋‚ด์šฉ ๋“ฑ๋ก

์ ‘์†๋ฐฉ๋ฒ•

ssh -L 9999:localhost:9999 -i [sshํ‚ค ์œ„์น˜] -o ServerAliveInterval=15 -o ServerAliveCountMax=3 [๋ฉ”ํƒ€๋ฐ์ดํ„ฐ-SSHํ‚ค์˜ '์‚ฌ์šฉ์ž ์ด๋ฆ„']@[์™ธ๋ถ€ip]

์˜ˆ์‹œ

ssh -L 9999:localhost:9999 -i C:\.ssh\rsa-gcp-key -o ServerAliveInterval=15 -o ServerAliveCountMax=3 [email protected]

Error

The authenticity of host ~~~ can't be established

์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์ด ์ผ์–ด๋‚ฌ์„ ๋•Œ๋Š” ๋‹นํ™ฉํ•˜์ง€ ๋ง๊ณ  yes๋ฅผ ์น˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Enter passphrase for key ~~~ : ์— ๋ณด์ด์ง€ ์•Š๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์น˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
์œ„์˜ ์‚ฌ์ง„์—์„œ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‘ ๋ฒˆ ํ‹€๋ ค์„œ ์ €๋ ‡๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Error

ํ˜น์‹œ ์ด๋ ‡๊ฒŒ ํ•ด๋„ ์ ‘์†์ด ์•ˆ๋œ๋‹ค๋ฉด .ssh ํด๋”์— ๋“ค์–ด๊ฐ€์„œ key ํŒŒ์ผ์„ ๋‚ ๋ฆฐ ํ›„,
๋‹ค์‹œ key๋ฅผ ๋ฐ›์•„์„œ SSHํ‚ค๋ฅผ ๋“ฑ๋ก์‹œํ‚ค๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Error

์ ‘์†์€ ์ž˜ ๋˜์—ˆ๋Š”๋ฐ ์ ‘์† ํ›„ command๋ฅผ ์ž…๋ ฅํ•  ๋•Œ sudo password๋ฅผ ์š”๊ตฌํ•˜๋Š” ๊ฒฝ์šฐ: C root directory์—์„œ ์ ‘์†์„ ์ง„ํ–‰ํ•˜๋ฉด ๊ฐ„ํ˜น ๋‚˜์˜ค๋Š” ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ด๋Ÿด๋•Œ๋Š” ์ ‘์†์„ C root directory๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ directory์—์„œ ์ง„ํ–‰๋˜๋ฉด ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.