# 3.VM vs Container

# 1. VM ๊ณผ Container์˜ ์ฐจ์ด

# ์‹œ์Šคํ…œ ๊ตฌ์กฐ์—์„œ ์˜ค๋Š” ์ฐจ์ด์ ?

  • ๊ณตํ†ต์ ์œผ๋กœ ํ•˜๋‚˜์˜ ์„œ๋ฒ„๊ฐ€ ์žˆ์Œ
  • ํ•œ ์„œ๋ฒ„์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์–ด๋–ค ์šด์˜์ฒด์ œ๊ฐ€ ๋๊ฑด Host OS๊ฐ€ ์˜ฌ๋ผ๊ฐ

# VM์˜ ๊ฒฝ์šฐ

  • Host OS์œ„์— VM์„ ๊ฐ€์ƒํ™” ์‹œ์ผœ์ฃผ๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ Hypervisor๊ฐ€ ์กด์žฌ
  • ์ด๋Ÿฐ ๊ฒƒ๋“ค์„ ์‚ฌ์šฉํ•ด์„œ ์›ํ•˜๋Š” ์šด์˜์ฒด์ œ๋กœ Guest OS๋ฅผ ์˜ฌ๋ ค ์—ฌ๋Ÿฌ VM์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
  • ์ด Guest OS๋„ Host OS์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•˜๋‚˜์˜ OS๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ์›ํ•˜๋Š” Application์„ ์„ค์น˜ํ•ด ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ

# Container์˜ ๊ฒฝ์šฐ

  • Host OS ์„ค์น˜๊นŒ์ง€ ๋™์ผํ•˜๊ณ 
  • ์ด OS์œ„์— Container ๊ฐ€์ƒํ™”๋ฅผ ์‹œ์ผœ์ฃผ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ SW๋“ค์ด ์žˆ์Œ
  • ํ˜„์žฌ๋Š” Docker๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ถ”์„ธ
  • Docker๊ฐ€ Container๋ฅผ ๋งŒ๋“ค์–ด์คŒ!

img

# 2. Container๋ž€?

  • ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฆฌ๋ˆ…์Šค๋Š” ๋ฒ„์ „์ด ์žˆ๋Š”๋ฐ ๋ฒ„์ „์— ๋”ฐ๋ผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋‹ค๋ฆ„
  • Linux 6๋ฒ„์ „์œผ๋กœ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ๊ฒฝ์šฐ Linux 6๋ฒ„์ „์— ์„ค์น˜๋˜์–ด์žˆ๋Š” OpenJDK ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐœ๋ฐœํ•จ
  • ๋งŒ์•ฝ ๋ฆฌ๋ˆ…์Šค 7๋ฒ„์ „์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋ฒ„์ „ ์ฐจ์ด์— ๋”ฐ๋ฅธ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ๊ฒƒ์ž„

๊ทธ๋ž˜์„œ ์šฐ๋ฆฐ docker๋ฅผ ์„ค์น˜ํ•ด Container ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๋ฉด ์ด ์ด๋ฏธ์ง€์—๋Š” ์„œ๋น„์Šค์™€ ์„œ๋น„์Šค์— ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ™์ด ๋ฌถ์–ด์„œ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

Docker๋งŒ ์„ค์น˜๋˜์–ด์žˆ์œผ๋ฉด ๋‹ค๋ฅธ ๋ฒ„์ „์˜ Linux์—์„œ๋„ ์•ˆ์ •์ ์ธ Container๋กœ ์‹œ์Šคํ…œ์„ ๊ตฌ๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ

img

# ๋„์ปค์˜ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ

  • ์—ฌ๋Ÿฌ Container๊ฐ„์— ํ˜ธ์ŠคํŠธ ์ž์›์„ ๋ถ„๋ฆฌํ•ด์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•ด์คŒ
  • ์ด๊ฒŒ ๋ฆฌ๋ˆ…์Šค ๊ณ ์œ  ๊ธฐ์ˆ ์ธ namespace์™€ cgroups์„ ์‚ฌ์šฉํ•ด์„œ ๊ฒฉ๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ 

img

  • namespace๋Š” ์ปค๋„์— ๊ด€๋ จ๋œ ์˜์—ญ์„ ๋ถ„๋ฆฌ
  • cgroups๋Š” ์ž์›์— ๊ด€๋ จ๋œ ์˜์—ญ์„ ๋ถ„๋ฆฌ

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

์ด๋ฅผ ํ†ตํ•ด Container ๊ฐ€์ƒํ™”๊ฐ€ ์„ค์น˜๋œ OS์—์„œ๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๊ฑฑ์ • ์—†์ด ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋จ


# 3. ๋ณด์•ˆ๊ณผ ํšจ์œจ์„ฑ ์ธก๋ฉด

# ํšจ์œจ์„ฑ ์ธก๋ฉด

  • VM ๊ฐ€์ƒํ™” - OS๋ฅผ ๋งค๋ฒˆ ๋„์›Œ์•ผ ํ•จ
  • Container ๊ฐ€์ƒํ™” - ํ•˜๋‚˜์˜ OS๋ฅผ ๊ณต์œ 
Container๊ฐ€ ๋น ๋ฅผ ์ˆ˜ ๋ฐ–์— ์—†์Œ

๐Ÿ’ก ๋‹จ์ ์€ ์—†์„๊นŒ?
VM์€ ๋‚ด๊ฐ€ window๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ์ƒˆ๋กœ์šด Guest OS๋กœ Linux๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ Container๋Š” ๊ทธ๋ ‡๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ

# ๋ณด์•ˆ ์ธก๋ฉด

  • VM ๊ฐ€์ƒํ™” - ๊ฒŒ์ŠคํŠธ OS๊ฐ€ ๋šซ๋ ค๋„ ๋‹ค๋ฅธ ๊ฒŒ์ŠคํŠธ OS๋‚˜ ํ˜ธ์ŠคํŠธOS์™€ ์™„๋ฒฝํ•˜๊ฒŒ ๋ถ„๋ฆฌ๋˜์–ด ๊ฐ๊ฐ VM๋ผ๋ฆฌ ํ”ผํ•ด X
  • Container ๊ฐ€์ƒํ™” - ํ•œ Container๊ฐ€ ๋šซ๋ ค OS์˜์—ญ์— ์ ‘๊ทผํ•˜๋ฉด ๋‹ค๋ฅธ Container๋„ ์œ„ํ—˜์— ๋…ธ์ถœํ•˜์ง€๋งŒ ์ด๋Ÿฐ ์ ์€ ๊ณ„์†ํ•ด์„œ ๋ณด์™„ํ•˜๋Š” ์ค‘์ž„

# 4. ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์ธก๋ฉด

img

์œ„ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ณด์ž.

# VM ๊ฐ€์ƒํ™”

์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ํ•œ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ํ•œ๊ฐ€์ง€ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์ด ํ•œ ์„œ๋น„์Šค๋กœ ๋Œ์•„๊ฐ

๋งŒ์•ฝ A์™€ B๋ชจ๋“ˆ์ด ๊ดœ์ฐฎ์€๋ฐ C๋ชจ๋“ˆ์˜ ๋ถ€ํ•˜๊ฐ€ ๋งŽ์ด ๊ฐ€๋Š” ์ƒํ™ฉ์ด๋ฉด VM์„ ํ•˜๋‚˜ ๋” ์ƒ์„ฑํ•ด ๋„์šฐ๊ฒŒ ๋จ

์ž์› ์‚ฌ์šฉ๊ณผ ์„ฑ๋Šฅ ์ž…์žฅ์—์„œ Guest OS๊ฐ€ 2๊ฐœ๊ฐ€ ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋จ

# A์™€ B๋Š” ํ•„์š”์—†์ง€๋งŒ ํ•œ ํŒจํ‚ค์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋ผ ์˜ฌ๋ผ๊ฐ€๋Š” ๋น„ํšจ์œจ ๋ฐœ์ƒ

# Container ๊ฐ€์ƒํ™”

Container์˜ ๊ฒฝ์šฐ ํ•œ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ๋ชจ๋“ˆ๋ณ„๋กœ ์ชผ๊ฐœ์„œ ๊ฐ๊ฐ์˜ ์ปจํ…Œ์ด๋„ˆ์— ๋‹ด๋Š” ๊ฒƒ(๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค)์„ ๊ถŒํ•˜๊ณ  ์žˆ๊ณ  ๊ฐ ๋ชจ๋“ˆ์— ๋งž๋Š” ์ตœ์ ํ™”๋œ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ

์—ฌ๊ธฐ์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ํ•˜๋‚˜์˜ Pod๋ผ๋Š” ๊ฐœ๋…์œผ๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ๊ณ  ํ•˜๋‚˜์˜ Container๋ฅผ pod๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ์–ด์„œ ํ•˜๋‚˜์˜ pod๋Š” ํ•˜๋‚˜์˜ ๋ฐฐํฌ ๋‹จ์œ„๊ฐ€ ๋จ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ด ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด ๋†“์œผ๋ฉด ๋‚ด๊ฐ€ ํ•„์š”ํ•œ pod๋งŒ ํ™•์žฅ์„ ํ•  ์ˆ˜ ์žˆ์Œ

# ์‹œ์Šคํ…œ์„ ๋ชจ๋“ˆ๋ณ„๋กœ ์ชผ๊ฐœ์„œ ๊ฐœ๋ฐœํ•  ๋•Œ ํฐ ์žฅ์ ์ด ์žˆ์Œ

Last Updated: 6/18/2023, 2:13:15 PM