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์์ ์งํ๋๋ฉด ํด๊ฒฐ๋ฉ๋๋ค.