๐Ÿณ Docker study 2nd

Building a Cloud-Based Docker Environment on Azure

by Arielle


Docker Study

1. Create a VM (Virtual Machine)

Microsoft Azure๋ฅผ ์ด์šฉํ•ด์„œ Ubuntu ๊ฐ€์ƒ๋จธ์‹ ์„ ๊ตฌ์ถ•ํ–ˆ๋‹ค. ์•ž์„  ํฌ์ŠคํŒ…์— ๋‹ค๋ค˜๋˜ Image๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋ฒ„์ „๊ณผ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. (Image๊ฐ€ ๋ญ”์ง€ ํ•œ๋ฒˆ์— ๊ธฐ์–ต๋‚˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ด์ „ ํฌ์ŠคํŒ…์„ ํ•œ๋ฒˆ ์ฝ๊ณ  ์˜ค๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค!๐Ÿ˜Ž) ๋‚˜๋Š” โ€˜kaggle-linux-gpu-vmโ€™์„ ์ด๋ฆ„์œผ๋กœ ํ•˜๋Š” ๊ฐ€์ƒ๋จธ์‹ ์„ ๋งŒ๋“ค์—ˆ๊ณ , ๋‚˜๋จธ์ง€ ์˜ต์…˜๋“ค๋„ ์„ ํƒํ•ด์ฃผ์—ˆ๋‹ค.

Descriptive Alt Text

์ฐธ๊ณ ๋กœ ๋’ค์ชฝ์— ์„ค๋ช…ํ•˜๊ฒ ์ง€๋งŒ ๊ฐ€์ƒ๋จธ์‹  ์ด๋ฆ„์„ ๋งŒ๋“ค๋ฉด Resource group์œผ๋กœ โ€˜๋‚ด๊ฐ€ ๋งŒ๋“  ๊ฐ€์ƒ๋จธ์‹  ์ด๋ฆ„_groupโ€™์œผ๋กœ ์ž๋™ ์ƒ์„ฑ๋œ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•ด๋ณด์ž๋ฉด, ๊ฐ€์ƒ๋จธ์‹ ์„ ๋งŒ๋“ค๋ฉด ๊ทธ์™€ ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๋“ค(๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค, ๋””์Šคํฌ, ๊ณต์šฉ IP ์ฃผ์†Œ, ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ๋“ฑ)์ด ๋™์‹œ์— ์ƒ์„ฑ๋˜๋Š”๋ฐ ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด ๊ด€๋ฆฌํ•œ๋‹ค. ์•„๋งˆ ์ง€๊ธˆ์€ ์ดํ•ด๊ฐ€ ์•ˆ๋  ๊ฑฐ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‚˜๋„ ๊ฐ€์ƒ๋จธ์‹ ์„ ๋งŒ๋“œ๋Š” ๋‹จ๊ณ„์—์„œ๋Š” ์ด ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน์ด ์™€๋‹ฟ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ง€๊ธˆ์€ ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน์ด๋ž€ ๊ฐ€์ƒ๋จธ์‹ ๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ํ•œ ๋ฒˆ์— ๊ด€๋ฆฌ, ์ถ”์ , ์‚ญ์ œํ•˜๋Š” ๋ฌถ์Œ ์ •๋„๋กœ๋งŒ ์ดํ•ดํ•ด๋„ ์ถฉ๋ถ„ํ•˜๋‹ค.

Azure์˜ ๋น„์šฉ ๋ถ€๊ณผ ๋ฐฉ์‹์€ ํ›„๋ถˆ์ œ์ด๋‹ค.๐Ÿ’ธ ๋‚ด๊ฐ€ ๊ฐ€์ƒ๋จธ์‹ ์„ ์–ผ๋งˆ๋‚˜ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉํ–ˆ๋Š”์ง€์— ๋”ฐ๋ผ ์š”๊ธˆ์ด ๋ถ€๊ณผ๋˜๋Š” ๋ฐฉ์‹์ด๋ผ ๋ฏธ๋ฆฌ ์˜ˆ์‚ฐ ํ•œ๋„๋ฅผ ์ •ํ•ด๋†“๋Š” ๊ฒƒ์ด ํ˜„๋ช…ํ•œ ์„ ํƒ์ด๋‹ค! ์•„๋ž˜ ์‚ฌ์ง„์—์„œ ์‚ดํŽด๋ณผ ๋ถ€๋ถ„์€ Image์™€ Size์ด๋‹ค. Azure์—์„œ๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๋‚˜๋Š” ๊ทธ ์ค‘์—์„œ โ€˜NVIDIA GPU-Optimized VMI -v23.09.1-64 Gen2โ€™ ๋ฒ„์ „์„ ์„ ํƒํ–ˆ๋‹ค. See all images ์˜ต์…˜์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ฐ™์€ NVIDIA GPU๋ผ๋„ ๊ธฐ๋Šฅ๊ณผ ์‚ฌ์–‘์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋ฒ„์ „์ด ์กด์žฌํ•˜๋ฏ€๋กœ ์šฉ๋„์— ๋งž๋Š” ๊ฒƒ์„ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค.

๊ฐ€์ƒ๋จธ์‹ ์—์„œ ์‚ฌ์šฉํ•  ๋ฉ”๋ชจ๋ฆฌ(RAM)๋„ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋‚˜๋Š” โ€˜Standard_NC4as_T4_v3โ€™์„ ์„ ํƒํ–ˆ๋Š”๋ฐ, ์ด ์ธ์Šคํ„ด์Šค๋Š” 4๊ฐœ์˜ vCPU์™€ 28GiB์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํƒ‘์žฌ๋˜์–ด ์žˆ๋‹ค.

Descriptive Alt Text

1.1 ๐Ÿ’ก Azure Spot: A Smart Way to Use Cloud Resources!

์œ„์—์„œ Azure๋Š” ํ›„๋ถˆ์ œ๋ผ๊ณ  ์ž ๊น ์–ธ๊ธ‰ํ–ˆ์—ˆ๋Š”๋ฐ, Azure Spot ์ธ์Šคํ„ด์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด ์ข€ ๋” ๊ฒฝ์ œ์ ์œผ๋กœ ํด๋ผ์šฐ๋“œ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Azure Spot์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ํด๋ผ์šฐ๋“œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ •๋ฆฌํ•˜๊ณ  ๊ฐˆ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

1.2 โ˜๏ธ What is Cloud?

ํด๋ผ์šฐ๋“œ๋Š” ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์„œ๋ฒ„, ์Šคํ† ๋ฆฌ์ง€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋„คํŠธ์›Œํ‚น ๋“ฑ ๋‹ค์–‘ํ•œ IT ์ž์›์„ ํ•„์š”์— ๋”ฐ๋ผ ๋นŒ๋ ค ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์ด๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, ๋‚ด ์ปดํ“จํ„ฐ์— ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•  ํ•„์š” ์—†์ด ์˜จ๋ผ์ธ์—์„œ ๋ชจ๋“  ๊ฑธ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค์ด๋‹ค. ๋•๋ถ„์— ์›ํ•˜๋Š” ๋งŒํผ ์ž์›์„ ๋นŒ๋ฆฌ๊ณ , ํ•„์š” ์—†์„ ๋•Œ๋Š” ๋ฐ˜๋‚ฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋งค์šฐ ์œ ์—ฐํ•˜๊ฒŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค!

Azure Spot ์ธ์Šคํ„ด์Šค๋Š” Azure์—์„œ ๋‚จ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ €๋ ดํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฒฝ๋งค ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ํ• ๋‹น๋ฐ›๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋•Œ ์‚ฌ์šฉ์ž๋Š” 1์‹œ๊ฐ„๋‹น ์–ผ๋งˆ๊นŒ์ง€ ์ง€๋ถˆํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ตœ๋Œ€ ๊ฐ€๊ฒฉ(Maximum price you want to pay per hour)์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์–ผ๋งˆ๋‚˜ ๋†’์€ ๊ฐ€๊ฒฉ์„ ์„ค์ •ํ–ˆ๋Š๋ƒ์— ๋”ฐ๋ผ, ๋‚ด ๊ฐ€์ƒ๋จธ์‹ ์ด ๊ณ„์† ์œ ์ง€๋˜๊ฑฐ๋‚˜, ์ค‘์ง€๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

์‰ฝ๊ฒŒ ๋งํ•ด์„œ, ๋‚ด๊ฐ€ ์„ค์ •ํ•œ ๊ฐ€๊ฒฉ์ด ํ‰๊ท  ์ŠคํŒŸ ๊ฐ€๊ฒฉ๋ณด๋‹ค ๋†’๋‹ค๋ฉด, ๋‚ด ๊ฐ€์ƒ๋จธ์‹ ์€ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๋Š” ์˜๋ฏธ๋กœ ๋งŒ์•ฝ ์ตœ์•…์˜ ๊ฒฝ์šฐ์— ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋‚˜๋ณด๋‹ค ๋” ๋†’์€ ๊ฐ€๊ฒฉ์„ ์„ค์ •ํ–ˆ๊ฑฐ๋‚˜ Azure์—์„œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ถ€์กฑํ•˜๋ฉด, ๋‚ด ๊ฐ€์ƒ๋จธ์‹ ์ด ์ค‘์ง€(Eviction)๋  ์ˆ˜๋„ ์žˆ๋‹ค.๐Ÿ˜…

Eviction ์ข…๋ฅ˜๋Š” ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

Eviction Table
๊ตฌ๋ถ„ ์œ ํ˜•/์ •์ฑ… ์žฅ์  ๋‹จ์ 
Eviction Type Capacity only - ๊ฐ€์ƒ๋จธ์‹ ์ด Azure ์šฉ๋Ÿ‰์—๋งŒ ์˜์กดํ•˜๋ฏ€๋กœ, ๊ฐ€๊ฒฉ ๋ณ€๋™ ๊ฑฑ์ • ์—†์Œ - Azure์˜ ์šฉ๋Ÿ‰์ด ๋ถ€์กฑํ•  ๋•Œ ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ์ค‘์ง€ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ
Price or Capacity - ์ตœ๋Œ€ ๊ฐ€๊ฒฉ์„ ์„ค์ •ํ•ด ๋น„์šฉ ์ œ์–ด ๊ฐ€๋Šฅ
- ๊ฐ€๊ฒฉ ๋ณ€๋™์— ๋งž์ถฐ ์•ˆ์ •์„ฑ ํ™•๋ณด
- ์„ค์ •ํ•œ ๊ฐ€๊ฒฉ์„ ์ดˆ๊ณผํ•˜๊ฑฐ๋‚˜ ์šฉ๋Ÿ‰์ด ๋ถ€์กฑํ•  ๋•Œ ์ค‘์ง€๋  ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ
Eviction Policy Stop / Deallocate - ๊ฐ€์ƒ๋จธ์‹  ์ค‘์ง€ ํ›„์—๋„ ๋ฐ์ดํ„ฐ ๋ณด์กด
- ๋‚˜์ค‘์— ๋‹ค์‹œ ์‹œ์ž‘ ๊ฐ€๋Šฅ
- ์ค‘์ง€๋œ ํ›„ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Œ
Delete - ๋น„์šฉ์ด ๋งŽ์ด ์ ˆ๊ฐ๋จ
- ์ž์›์ด ์ฆ‰์‹œ ํ•ด์ œ๋จ
- ๊ฐ€์ƒ๋จธ์‹ ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์™„์ „ํžˆ ์‚ญ์ œ๋˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ ๋ถˆ๊ฐ€

์ฒ˜์Œ์—๋Š” โ€˜๊ฐ€์ƒ ๋จธ์‹ ์ด ์ค‘๊ฐ„์— ๊บผ์งˆ ์ˆ˜๋„ ์žˆ๋‹ค๋‹ˆ, ์ข€ ์•ผ๋ฐ•ํ•œ ๊ฑฐ ์•„๋‹ˆ์•ผ?โ€™๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋ณดํ†ต ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ๋•Œ, ํ•œ ๋ฒˆ ๋ฐฐ์ •๋œ ์ž์›์€ ์–ธ์ œ๋“ ์ง€ ์•ˆ์ •์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๊ธฐ ๋งˆ๋ จ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ Azure Spot ์ธ์Šคํ„ด์Šค์˜ ๋ณธ๋ž˜ ๋ชฉ์ ์€ Azure์˜ ๋‚จ๋Š” ์ž์›์„ ์ €๋ ดํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž„์— ์ค‘์ ์„ ๋‘๊ณ  ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ด ์‹œ์Šคํ…œ์€ ์‚ฌ์šฉ์ž์™€ Azure ๋ชจ๋‘์—๊ฒŒ ์ด๋“์ด ๋˜๋Š” ์œˆ์œˆ(win-win) ๊ตฌ์กฐ๊ฐ€ ๋ถ„๋ช…ํ•˜๋‹ค.

์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ๋ณด๋ฉด Spot ์ธ์Šคํ„ด์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด ์ƒ๋‹นํ•œ ๋น„์šฉ ์ ˆ๊ฐ ํšจ๊ณผ๋ฅผ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ๋‹ค. ํด๋ผ์šฐ๋“œ ์ž์›์€ ์žฅ๊ธฐ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋น„์šฉ์ด ์ ์ง€ ์•Š๊ฒŒ ๋ถ€๋‹ด๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜๋ฉด ํ•„์š”ํ•œ ์ž์›์„ ํ›จ์”ฌ ์ €๋ ดํ•œ ๊ฐ€๊ฒฉ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ, ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ ์ž์›์„ ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ž‘์—…์ด๋‚˜ ์ผ์‹œ์ ์ธ ํ”„๋กœ์ ํŠธ์— ๋งค์šฐ ์ ํ•ฉํ•˜๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ โ€˜Maximum price you want to pay per hour(USD)โ€™ ์˜ต์…˜์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•œํŽธ, Azure ์ž…์žฅ์—์„œ ๋ณด๋ฉด Spot ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•ด ๋‚จ๋Š” ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ์ œ๊ณต์ž๋Š” ํ•ญ์ƒ ๊ณ ๊ฐ ์ˆ˜์š”์— ๋”ฐ๋ผ ์ž์›์„ ์œ ๋™์ ์œผ๋กœ ์šด์˜ํ•ด์•ผ ํ•˜๊ธฐ์— ์ผ์ •๋Ÿ‰์€ ๋‚จ์•„ ์žˆ์„ ์ˆ˜๋ฐ–์— ์—†๋‹ค. ๋‚จ๋Š” ์ž์›์€ ๊ทธ๋Œ€๋กœ ๋‘๋ฉด ์•„๋ฌด๋Ÿฐ ์ˆ˜์ต์„ ๋‚ด์ง€ ๋ชปํ•˜๊ฒ ์ง€๋งŒ, Spot ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ์ €๋ ดํ•˜๊ฒŒ ๋นŒ๋ ค์คŒ์œผ๋กœ์จ ์ˆ˜์ต์„ ์ฐฝ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค. ๋˜ Spot ์ธ์Šคํ„ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉด์„œ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ด์ ๋„ ์žˆ๋Š”๋ฐ ์ค‘์š”ํ•œ ์ž‘์—…์„ ์œ„ํ•ด ๋†’์€ ๊ฐ€๊ฒฉ์„ ์ง€๋ถˆํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์•ˆ์ •์ ์ธ ์ž์›์„ ์ œ๊ณตํ•˜๋ฉด์„œ ๊ทธ ์™ธ ๋‚จ๋Š” ์ž์›์€ ๋‚ฎ์€ ๊ฐ€๊ฒฉ์— ์ œ๊ณตํ•ด ์ „์ฒด์ ์ธ ์ž์› ํ™œ์šฉ๋„๋ฅผ ๊ทน๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉ์ž๋„ ๋น„์šฉ์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๊ณ , Azure๋Š” ๋‚จ๋Š” ์ž์›์„ ํ™œ์šฉํ•ด ์ˆ˜์ต์„ ์ฐฝ์ถœํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ด ์‹œ์Šคํ…œ์€ ์–‘์ชฝ ๋ชจ๋‘์—๊ฒŒ ์ด์ต์ด ๋˜๋Š” ๊ตฌ์กฐ๋‹ค. ์ด๋ ‡๊ฒŒ ์ดํ•ดํ•˜๊ณ  ๋‚˜๋‹ˆ ์–ด์ฉ์ง€ ๋œ ์•ผ๋ฐ•ํ•ด์ง€๋Š” ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๋‹ค!

Spot ์ธ์Šคํ„ด์Šค ์ด์•ผ๊ธฐ๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ๊ธธ์–ด์ง€๊ธด ํ–ˆ์ง€๋งŒ, ์—ฌ๊ธฐ๊นŒ์ง€ ๊ธ€์„ ์ฝ์œผ๋ฉด์„œ ์ž˜ ๋”ฐ๋ผ์™”๋‹ค๋ฉด ๊ฐ€์ƒ๋จธ์‹ ์˜ ๊ธฐ๋ณธ ์„ค์ •์€ ์–ด๋Š์ •๋„ ์™„๋ฃŒ ๋œ ์ƒํƒœ์ผ ๊ฒƒ์ด๋‹ค. ๊ทธ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ๋Š” ๊ฐ€์ƒ๋จธ์‹ ์— ์ ‘๊ทผํ•  ๊ถŒํ•œ์„ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๋‚˜๋Š” ์ดํ›„ ํ„ฐ๋ฏธ๋„๋กœ ๊ฐ€์ƒ๋จธ์‹ ์— ์ ‘๊ทผํ•  ์˜ˆ์ •์ด๊ธฐ ๋•Œ๋ฌธ์— SSH ๋ฐฉ์‹์„ ์„ ํƒํ–ˆ๋‹ค.

Descriptive Alt Text

1.3 ๐Ÿ› ๏ธ How to Solve the vCPU Quota Exceeded Issue

์ •์ƒ์ ์ธ ์ƒํ™ฉ์ด๋ผ๋ฉด ์œ„ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ์„œ ๊ฐ€์ƒ๋จธ์‹ ์ด ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด ๋งž๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‚˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํŠธ๋Ÿฌ๋ธ”์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค.

โ€œOperation could not be completed as it results in exceeding approved Low-priority quota.โ€

Descriptive Alt Text

๊ฒฐ๋ก ์€ ๋‚ด๊ฐ€ ์ง€์ •ํ•œ Korea Central ์ง€์—ญ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” vCPU ์ž์›์˜ ํ•œ๋„๋ฅผ ์ดˆ๊ณผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. Azure์—์„œ๋Š” ๊ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž์›์— ๋Œ€ํ•œ ์ฟผํ„ฐ(Quota)๋ฅผ ํ• ๋‹นํ•˜๋Š”๋ฐ, ์ด ์ฟผํ„ฐ๋Š” ํ•„์š”ํ•  ๋•Œ ์ฆ์•ก ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. Korea Central ์ง€์—ญ์˜ ๊ธฐ๋ณธ Quota๋Š” 3๊ฐœ์ด๋‹ค. ๋‚˜๋Š” ํ•˜๋‚˜๋ฅผ ๋” ์ถ”๊ฐ€ํ•ด์„œ ์ด 4๊ฐœ๋ฅผ ์š”์ฒญํ–ˆ๋‹ค.

Descriptive Alt Text

์‹ญ๋ถ„ ์ •๋„ ์ง€๋‚˜๋‹ˆ ์Šน์ธ์ด ์ •์ƒ์ ์œผ๋กœ ๋˜์—ˆ๊ณ , ์—๋Ÿฌ ์—†์ด ๋“œ๋””์–ด ๋‚ด ์ฒซ ๊ฐ€์ƒ๋จธ์‹ ์ด ์ƒ์„ฑ๋˜์—ˆ๋‹ค! ์ด์ œ ํ‚ค๋งŒ ๋‹ค์šด๋ฐ›์•„ ์ฃผ๋ฉด ๋œ๋‹ค. ์ด ํ‚ค๋Š” ๋‚ด๊ฐ€ ๋งŒ๋“  ๊ฐ€์ƒ๋จธ์‹ ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค๋กœ ์ดํ›„ SSH๋ฅผ ์ด์šฉํ•ด ์ ‘์†ํ•  ๋•Œ ํ•ด๋‹น ํ‚ค์˜ ์ด๋ฆ„, ํŒŒ์ผ ์œ„์น˜, ์œ ์ €์ด๋ฆ„ ๋“ฑ์ด ํ•„์š”ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์ด ํ‚ค๋ฅผ ๋กœ์ปฌ์— ๋‹ค์šด ๋ฐ›์€ ํ›„ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์œ„์น˜์— ์ €์žฅํ•˜๋ฉด ๋˜๋Š”๋ฐ โ€˜sshโ€™๋ผ๋Š” ์ด๋ฆ„์˜ ํด๋”๋กœ ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. (๋‚˜์ค‘์— ์ถ”๊ฐ€๋กœ ์ƒ์„ฑํ•œ ๊ฐ€์ƒ๋จธ์‹  ํ‚ค๋“ค๋„ ssh ํด๋”์— ๋„ฃ์–ด์„œ ํ•œ๋ฒˆ์— ๊ด€๋ฆฌํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค!)

Descriptive Alt Text

1.4 ๐Ÿ“ฆ Resource Group: Manage All Resources Related to Your VM at Once

๊ฐ€์ƒ ๋จธ์‹ ์„ ์ƒ์„ฑํ•  ๋•Œ, Resource Group์ด๋ผ๋Š” ๊ฐœ๋…์ด ์ฒ˜์Œ์—๋Š” ๋‹ค์†Œ ์ƒ์†Œํ•˜๊ฒŒ ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‚˜๋Š” ๋ถ„๋ช… ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ƒ์„ฑํ–ˆ๋Š”๋ฐ ์ž๋™์œผ๋กœ Resource Group์ด๋ผ๋Š”๊ฒŒ ์ƒ์„ฑ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์‹ค์ œ๋กœ ๋‚ด๊ฐ€ ์•ž์„œ ๋งŒ๋“  ๊ฐ€์ƒ ๋จธ์‹ ์˜ ์ด๋ฆ„์€ โ€˜kaggle-linux-gpu-vmโ€™์ด๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Azure๋Š” ์ž๋™์œผ๋กœ โ€˜kaggle-linux-gpu-vm_groupโ€™์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด๋ƒˆ๋‹ค. ๋‚˜๋Š” ์ด ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน์— ๋Œ€์ฒด ๋ญ๊ฐ€ ๋“ค์–ด์žˆ๋Š”๊ฑด์ง€ ํ™•์ธํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ์•„๋ž˜ ์‚ฌ์ง„์„ ๊ฐ™์ด ๋ณด๋ฉด์„œ ์ดํ•ดํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค!

Descriptive Alt Text

โ€˜kaggle-linux-gpu-vm_groupโ€™์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน ์•ˆ์— ๊ฐ€์ƒ ๋จธ์‹ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ด€๋ จ๋œ ๋ฆฌ์†Œ์Šค๋“ค์ด ํ•จ๊ป˜ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์—” ๊ฐ€์ƒ ๋จธ์‹ (Virtual Machine) ์™ธ์—๋„, ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค, ๊ณต์šฉ IP ์ฃผ์†Œ, ๋””์Šคํฌ, SSH ํ‚ค ๋“ฑ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ์ด ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๊ฐ€ kaggle-linux-gpu-vm_group์ด๋ผ๋Š” ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์— ์†ํ•ด ์žˆ๋Š” ๋•๋ถ„์—, ํ•œ ๊ณณ์—์„œ ํ•œ๊บผ๋ฒˆ์— ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์‹ค ๋‚˜๋Š” โ€˜ํ•œ๊บผ๋ฒˆ์— ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.โ€™ ๋ผ๋Š” ๋ฌธ์žฅ๋งŒ ์ฝ์–ด์„œ๋Š” ๋ญ”๊ฐ€ ์™€๋‹ฟ์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด ๋‚˜๋ฆ„์˜ ๋ฐฉ์‹๋Œ€๋กœ ๋‹ค์‹œ ์ดํ•ดํ•ด๋ณด๋‹ˆ ์ด๋ ‡๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋งŒ์•ฝ ๋‚ด๊ฐ€ ๊ฐ€์ƒ ๋จธ์‹ ์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€ ๋ฐ, ๊ทธ์™€ ๊ด€๋ จ๋œ ๋„คํŠธ์›Œํฌ, IP ์ฃผ์†Œ, ๋””์Šคํฌ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋”ฐ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค? ๊ทธ๊ฑด ๋„ˆ๋ฌด ๋Œ€๊ณต์‚ฌ ์ผ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน์„ ์‚ฌ์šฉํ•˜๋ฉด ์†Œ์Šค๋ฅผ ํ•œ๊บผ๋ฒˆ์— ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด ๊ฐ€์ƒ ๋จธ์‹ ์„ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์ผ์ผ์ด ๋ชจ๋“  ๊ด€๋ จ๋œ ์ž์›์„ ์‚ญ์ œํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน ํ•˜๋‚˜๋งŒ ์‚ญ์ œํ•˜๋ฉด ๊ทธ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋„ ํ•จ๊ป˜ ์‚ญ์ œ๋˜๋Š” ๊ตฌ์กฐ์ธ ๊ฒƒ์ด๋‹ค.

๊ฒฐ๋ก ์€ ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน์€ ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ž์›์„ ํ•œ๋ˆˆ์— ๋ณด๊ณ , ํ•œ๊บผ๋ฒˆ์— ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์•„์ฃผ ์œ ์šฉํ•œ ๋„๊ตฌ์ธ ๊ฒƒ์ด๋‹ค!


2. Connect to VM (Virtual Machine)

์ž ์ด์ œ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๋‚ด๊ฐ€ ๋งŒ๋“  ๊ฐ€์ƒ๋จธ์‹ ์„ ๋‚˜์˜ ๋กœ์ปฌ๊ณผ ์—ฐ๊ฒฐํ•  ์‹œ๊ฐ„์ด๋‹ค. CLI ๋ฐฉ์‹๋„ ์ง€์›ํ•˜๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ, ๋‚˜๋Š” ์•ž์„œ ๋ฐœ๊ธ‰๋ฐ›์€ ํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ ํ„ฐ๋ฏธ๋„๋กœ ์—ฐ๊ฒฐ์‹œ์ผœ ๋ณด์•˜๋‹ค. ๋กœ์ปฌ๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ช…๋ น์–ด๋Š” ์นœ์ ˆํ•˜๊ฒŒ ์ž˜ ๋‚˜์™€ ์žˆ์œผ๋‹ˆ ์นดํ”ผํ•ด์„œ ํ„ฐ๋ฏธ๋„์— ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜๋ฉด ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ ssh -i ~/.ssh/id_rsa.pem username@ip์ฃผ์†Œ ์ด ๋ช…๋ น์–ด๋Š” ๋งค์šฐ ์ž์ฃผ ์“ฐ๊ฒŒ ๋˜๋‹ˆ ์ž˜ ๊ธฐ์–ตํ•ด ๋‘๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. (๋’ค๋กœ๊ฐ€๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์™ธ์›Œ์งˆ ๊ฒ๋‹ˆ๋‹ค!๐Ÿ‘Š)

Descriptive Alt Text

ssh -i ~/.ssh/id_rsa.pem username@ip์ฃผ์†Œ ์ด ๋ช…๋ น์–ด๋Š” ๋‚ด๊ฐ€ ์ €์žฅํ•œ ๊ฐ€์ƒ๋จธ์‹  ํ‚ค๊ฐ€ ์ €์žฅ๋œ ์œ„์น˜์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋‚˜๋Š” /Users/kimseohee/Arielle_key/ssh ๊ฒฝ๋กœ์— ํ‚ค(.pem)๋ฅผ ์ €์žฅํ•ด ๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋จผ์ € ํ•ด๋‹น ๊ฒฝ๋กœ๋กœ ์ง„์ž…ํ–ˆ๋‹ค.

Descriptive Alt Text

์ดํ›„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ–ˆ๋Š”๋ฐ ์ฐธ๊ณ ๋กœ ~/.ssh/id_rsa.pem ์ด ๋ถ€๋ถ„์—๋Š” ๋‚ด๊ฐ€ ๋ณด์œ ํ•œ ํ‚ค ์ด๋ฆ„์„ ์ ์œผ๋ฉด ๋œ๋‹ค.

Descriptive Alt Text

์›๋ž˜๋Š” ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ๊ฐ€์ƒ๋จธ์‹ ์— ์ ‘๊ทผ์ด ๋˜๋Š”๊ฒŒ ๋งž๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‚ด ๋กœ์ปฌ์—์„œ๋Š” โ€œPermissions 0644 for โ€˜kaggle-linux-gpu-vm_key.pemโ€™ are too openโ€ ๊ฒฝ๊ณ ๊ฐ€ ๋–ด๋‹ค. ์ด๋Š” ํ•ด๋‹น ํ‚ค ํŒŒ์ผ์ด ์†Œ์œ ์ž ์ด์™ธ์˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค๋„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์œผ๋กœ ํ‚ค์— ๋Œ€ํ•œ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋ผ๋Š” ์˜๋ฏธ์˜€๋‹ค.

Descriptive Alt Text

๊ทธ๋ž˜์„œ ๋‚˜๋Š” chmod 600 kaggle-linux-gpu-vm_key.pem ๋ช…๋ น์–ด๋กœ ํ‚ค์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ์ˆ˜์ •ํ•ด ์ฃผ์—ˆ๋‹ค. ์ฐธ๊ณ ๋กœ 600 ๊ถŒํ•œ์€ ํŒŒ์ผ ์†Œ์œ ์ž์—๊ฒŒ๋งŒ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์–ด๋– ํ•œ ๊ถŒํ•œ๋„ ๋ถ€์—ฌํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ SSH์—์„œ ์š”๊ตฌํ•˜๋Š” ๋ณด์•ˆ ์ •์ฑ…๊ณผ ์ผ์น˜ํ•œ๋‹ค.

์ดํ›„ ๋‹ค์‹œ ๋กœ์ปฌ์—์„œ ๊ฐ€์ƒ๋จธ์‹ ์„ ์—ฐ๊ฒฐํ•ด ๋ดค๋”๋‹ˆ โ€œSystem restart requiredโ€ ์•„๋ž˜ ์ฒ˜๋Ÿผ ์ž˜ ์‹คํ–‰ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

Descriptive Alt Text

2.1 ๐Ÿณ Understanding Docker and GPU in the Cloud Environment

ํด๋ผ์šฐ๋“œ ์ด์•ผ๊ธฐ๋ฅผ ๊ณ„์† ํ•˜๊ณ ๋Š” ์žˆ์ง€๋งŒ ์ด ํฌ์ŠคํŒ… ์‹œ๋ฆฌ์ฆˆ์˜ ์ฃผ์ œ๋Š” Docker์ด๋‹ค. ๊ฐ€์ƒ๋จธ์‹ ์—์„œ๋„ Docker๋ฅผ ํ•œ๋ฒˆ ์‹คํ–‰์‹œ์ผœ ๋ณด์•˜๋‹ค. ์ž˜ ์ƒ๊ฐํ•ด๋ณด๋ฉด Docker๋ฅผ ๋กœ์ปฌ์—๋Š” ์„ค์น˜ํ–ˆ์ง€๋งŒ ๊ฐ€์ƒ๋จธ์‹ ์—๋Š” Docker๋ฅผ ์„ค์น˜ํ•œ ๊ธฐ์–ต์ด ์—†๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๊ฐ€์ƒ๋จธ์‹ ์—์„œ Docker๊ฐ€ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์—ˆ์„๊นŒ?

๊ทธ ์ด์œ ๋Š” ๊ฐ€์ƒ๋จธ์‹ ์„ ๋งŒ๋“ค ๋•Œ ์„ ํƒํ•œ ์ด๋ฏธ์ง€ ๋•Œ๋ฌธ์ด๋‹ค. ๊ฐ€์ƒ๋จธ์‹ ์„ ๋งŒ๋“ค ๋•Œ โ€˜NVIDIA GPU-Optimized VMI -v23.09.1-64 Gen2โ€™๋ผ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ–ˆ์—ˆ๋Š”๋ฐ, ์ด ์ด๋ฏธ์ง€์— ์ด๋ฏธ Docker๊ฐ€ ์„ค์น˜๋œ ์ƒํƒœ์˜€๋˜ ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฐ ์ ์—์„œ ํด๋ผ์šฐ๋“œ ์ƒ์—์„œ์˜ ์ž‘์—… ํ™˜๊ฒฝ์€ ์ •๋ง ํŽธ๋ฆฌํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ตœ์ ํ™”๋œ ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๋„๊ตฌ๊ฐ€ ์ด๋ฏธ ์ค€๋น„๋œ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ถ”๊ฐ€๋กœ โ€˜sudoโ€™๋ฅผ ๊ณ„์† ์ž…๋ ฅํ•˜๊ธฐ ๊ท€์ฐฎ์•„์„œ sudo usermod -aG docker Username ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด Docker ๊ทธ๋ฃน์— ์‚ฌ์šฉ์ž๋ฅผ ์ง์ ‘ ์ถ”๊ฐ€ํ•ด ์ฃผ์—ˆ๋‹ค. ์—ฌ๊ธฐ์„œ usermod๋Š” ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ์ˆ˜์ •ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋ฉฐ, -aG๋Š” ์‚ฌ์šฉ์ž๋ฅผ ํŠน์ • ๊ทธ๋ฃน์— ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜์ด๋‹ค. ๋งˆ์ง€๋ง‰์— docker๋Š” ๊ทธ๋ฃน ์ด๋ฆ„, Username์€ ๋‚ด ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค.

Descriptive Alt Text

Descriptive Alt Text

๋‚ด๊ฐ€ ๋งŒ๋“  ๊ฐ€์ƒ๋จธ์‹ ์€ NVIDIA GPU๋ฅผ ํƒ‘์žฌํ•˜๊ณ  ์žˆ๋‹ค. ์•„๋ž˜์ฒ˜๋Ÿผ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ฐ€์ƒ๋จธ์‹ ์˜ GPU ์‚ฌ์šฉ๋Ÿ‰์„ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์•„๋ž˜ ์‚ฌ์ง„์€ ๋‹จ์ˆœํžˆ ๊ฐ€์ƒ๋จธ์‹ ์—์„œ GPU๋งŒ ํ™•์ธํ•œ ๊ฒƒ์ด๊ณ  โ€˜ Standard_NC4as_T4_v3โ€™๊ฐ€ ์„ค์น˜ ๋˜์–ด ์žˆ๊ณ , ํ˜„์žฌ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋„ ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ƒํƒœ์ด๋‹ค.

Descriptive Alt Text

2.2 ๐Ÿณ Using GPU in Docker Containers

๐Ÿšจย ์ง€๊ธˆ ์ด ๋ถ€๋ถ„์€ ์ง‘์ค‘ํ•ด์„œ ๋ด์•ผํ•œ๋‹ค. ์œ„ ์‚ฌ์ง„์ด๋ž‘ ์•„๋ž˜ ์‚ฌ์ง„์ด๋ž‘ ์ฐจ์ด์ ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ, ํŠนํžˆ Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ GPU๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

์•„๋ž˜ ์‚ฌ์ง„์€ docker run --rm --gpus all ubuntu nvidia-smi ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ GPU ์ƒํƒœ๋ฅผ ํ™•์ธํ•œ ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ํฌ์ธํŠธ๋Š” Docker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ผ๋ฐ˜ ๊ฐ€์ƒ๋จธ์‹ ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ Docker ์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ(์—ฌ๊ธฐ์„œ๋Š” ๊ฐ€์ƒ๋จธ์‹ )์˜ ์ž์›์— ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ์—๋Š” Docker๊ฐ€ ๊ฐ€์ƒ๋จธ์‹ ์˜ GPU ์ž์›์„ ์ปจํ…Œ์ด๋„ˆ์— ๊ณต์œ ํ•ด ์คฌ๊ธฐ ๋•Œ๋ฌธ์—, ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ๋„ GPU ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ์ด๋‹ค. ์ฆ‰, Docker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ GPU์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š๋ƒ๋Š” ๊ฒƒ์ด ์ด ๊ณผ์ •์˜ ํ•ต์‹ฌ ํฌ์ธํŠธ์ด๋‹ค.

  • Docker ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ๊ณผ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, docker run โ€“gpus ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ์—์„œ๋„ GPU ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค!
  • ๋…๋ฆฝ์ ์ธ ํ™˜๊ฒฝ์—์„œ๋„ GPU ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค!
  • ์ด๋ฅผ ํ†ตํ•ด ๋”ฅ๋Ÿฌ๋‹ ์ž‘์—…์„ Docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค!

Descriptive Alt Text

Descriptive Alt Text


3. Connect to GUI via RDP (MAC)

์ผ๋ฐ˜์ ์œผ๋กœ Azure์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค ๊ฐ€์ƒ๋จธ์‹ ์€ ๋ฐ์Šคํฌํ†ฑ ํ™˜๊ฒฝ์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค. ๋ฆฌ๋ˆ…์Šค VM์€ ์ฃผ๋กœ SSH ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ๋ช…๋ น์–ด ๊ธฐ๋ฐ˜์œผ๋กœ ๊ด€๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— GUI๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋ถ„๋ช… GUI ํ™˜๊ฒฝ์„ ์„ค์น˜ํ•˜๋ฉด ๋” ์ง๊ด€์ ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๊ธฐ์„œ ์˜ค๋Š” ์ด์ ์ด ๋ถ„๋ช… ์žˆ๋‹ค. ๋‚˜๋Š” MAC์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— Window App(Microsoft Remote Desktop) ์•ฑ์„ ์ด์šฉํ•ด ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ–ˆ๋‹ค.

Descriptive Alt Text

์ถ”๊ฐ€๋กœ ๊ฐ€์ƒํ™˜๊ฒฝ์— Chrome, Visual Studio Code๋ฅผ ์„ค์น˜ํ•ด ์ฃผ์—ˆ๋‹ค.

Descriptive Alt Text

3.1 ๐Ÿ”— Connecting VSCode and GitHub

๋จผ์ € ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ VSCode๋ฅผ ์‚ฌ์šฉํ•ด GitHub๊ณผ ์—ฐ๋™์‹œ์ผฐ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Remote - Tunnels ์ด๋ผ๋Š” ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ๋„ ์„ค์น˜ํ–ˆ๋‹ค. ๋ณดํ†ต์€ ์›๊ฒฉ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋ ค๋ฉด SSH ์„ค์ • ๊ฐ™์€ ๋ณต์žกํ•œ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•˜์ง€๋งŒ, ๋ฆฌ๋ชจํŠธ ํ„ฐ๋„์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฐ ๊ณผ์ •์ด ํ›จ์”ฌ ๊ฐ„๋‹จํ•ด์ง„๋‹ค.

Descriptive Alt Text

๊ทธ๋Ÿฐ๋ฐ ์ž ์‹œ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์กฐ๊ธˆ ๋ชจ์ˆœ?์ ์ธ ๋‚ด์šฉ์ด ์žˆ๋‹ค. โ€œYou can then securely connect to that machine from anywhere, without the requirement of SSHโ€. without the requirement of SSH ์ด ๋ถ€๋ถ„์ด ๋งž์œผ๋ฉด์„œ๋„ ํ‹€๋ฆฐ ์–˜๊ธฐ์ด๋‹ค. (๋‚˜๋Š” ํ‹€๋ฆฐ์ชฝ์— ๋” ๊ฐ€๊น๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.) ์ด ๋ฌธ์žฅ์€ ๋ฆฌ๋ชจํŠธ ํ„ฐ๋„์„ ์‚ฌ์šฉํ•˜๋ฉด SSH ์„ค์ • ์—†์ด๋„ ์›๊ฒฉ ์„œ๋ฒ„์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ ํ•ด์„๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์‹ค์ œ๋กœ๋Š” ์•ฝ๊ฐ„ ์• ๋งคํ•œ ๋ถ€๋ถ„์ด ์žˆ๋‹ค.

Descriptive Alt Text

๊ฐ€์ƒ๋จธ์‹ ๊ณผ ๋กœ์ปฌ ํ™˜๊ฒฝ ๊ฐ„์˜ SSH ์—ฐ๊ฒฐ์ด ๋Š๊ธด ํ›„ ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋ฆฌ๋ชจํŠธ ํ„ฐ๋„ ์—ญ์‹œ ๋” ์ด์ƒ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜์ง€ ๋ชปํ•œ๋‹ค. SSH ์—ฐ๊ฒฐ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ„ฐ๋„์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋Š์–ด๋ฒ„๋ฆฌ๋ฉด ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ฐ€์ƒ๋จธ์‹ ๊ณผ์˜ ์ ‘์†๋„ ๋Š์–ด์ง€๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋”ฐ๋ผ์„œ โ€œSSH ์—†์ดโ€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์„ค๋ช…์€ ์ผ๋ฐ˜์ ์ธ SSH ์ธ์ฆ ๊ณผ์ •์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ ๋ฐ›์•„๋“ค์ด๋Š” ๊ฒƒ์ด ์ ์ ˆํ•ด ๋ณด์ธ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•„๋ฌดํŠผ SSH ์ž์ฒด๊ฐ€ ํ•„์š” ์—†๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  ์—ฌ์ „ํžˆ SSH๋Š” ๋ณด์•ˆ ์—ฐ๊ฒฐ์˜ ๊ทผ๋ณธ์ ์ธ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์€ ๋ถ„๋ช…ํ•˜๋‹ค (์ด ๋ถ€๋ถ„์€ ์กฐ๊ธˆ ๋” ํด๋ผ์šฐ๋“œ&๋„์ปค ๊ณต๋ถ€๋ฅผ ํ•ด๋ณด๊ณ  ์ •๋ฆฌํ•ด์„œ ๊ด€๋ จ ํฌ์ŠคํŒ…์„ ์—…๋กœ๋“œ ํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.)



Reference

Tags: DockerAutonomous_DrivingNVIDIAAzureCloud

Subscribe via RSS