Skip to main content Link Menu Expand (external link) Document Search Copy Copied

๋Œ€๋ถ€๋ถ„์˜ ๋ธ”๋กœ๊ทธ์—์„œ๋Š” VM ์„ ์ผ๋ฐ˜ํ™”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. ์˜ˆ๋กœ ๋Œ€๋ถ€๋ถ„ VM ์€ GuestOS ๊ฐ€ ์žˆ๊ณ  Docker ์€ ์—†๋‹ค, ์†๋„์ฐจ์ด๊ฐ€ ์กด์žฌํ•œ๋‹ค ๋“ฑ๋“ฑ์˜ ์ฐจ์ด์ ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋”๋ผ๊ตฌ์š”.

๋ฐ˜๋ฉด VM ๋˜ํ•œ ๋‘ ๊ฐ€์ง€ ํƒ€์ž…์ด ์กด์žฌํ•˜๋Š”๋ฐ ์ด ํƒ€์ž…์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์ฐจ์ด๊ฐ€ ๋ถ„๋ช… ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์ด ์–ด์šธ๋ฆฌ๋Š” ์ƒํ™ฉ์ด ์žˆ์œผ๋ฉฐ, ๊ธฐ์ˆ ์ ์ธ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ๊ธ€์€ VM ์„ ์„ธ๋ถ„ํ™”๋œ ๋‘ ๊ฐ€์ง€ ํƒ€์ž…์˜ ๊ฐœ๋…๊ณผ ๋”๋ถˆ์–ด ๊ฐ๊ฐ์„ ๋„์ปค์™€ ๋น„๊ตํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.

Reference

1. Virtual Machine

VM ์€ ํ•˜๋“œ์›จ์–ด, OS ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ๊ฐ€์ƒ ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  VM ์€ Hypervisor ์˜ ํƒ€์ž…์— ๋”ฐ๋ผ ๋‘ ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค.

Hypervisor ๋Š” VM ์„ ์ƒ์„ฑํ•˜๊ณ  ๊ตฌ๋™ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด Hypervisor ์€ Type-1, 2 ๊ฐ€์ง€ ํƒ€์ž…์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

1.1 Type-1

ํ•˜์ดํผ๋ฐ”์ด์ € Type-1 ์€ bare-metal ์ด๋ผ๊ณ ๋„ ๋ถˆ๋ ค์š”. ์ด์œ ๋Š” ํ•˜๋“œ์›จ์–ด์— ๋ฐ”๋กœ ์„ค์น˜๋˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . ์–˜๋„ค๋Š” ๊ฒŒ์ŠคํŠธ OS ๋ฅผ ์ง์ ‘ ๊ฒฉ๋ฆฌ๋œ ํ•˜๋“œ์›จ์–ด ๊ณต๊ฐ„์— ์„ค์น˜ํ•˜๋Š” ์• ๋“ค์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด Type-1 ์€ ํ•˜๋“œ์›จ์–ด์™€ VM ๊ฐ„ Host ์šด์˜์ฒด์ œ์ƒ๊ด€์—†์ด ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

KVM, Microsoft Hyper-V, VMware vSphere ๊ฐ€ ์ด ํƒ€์ž…์œผ๋กœ VM ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

1.2 Type-2

ํ•˜์ดํผ๋ฐ”์ด์ € Type-2 ๋Š” ํ˜ธ์ŠคํŠธ OS ์œ„์— Type-2 ํ•˜์ดํผ๋ฐ”์ด์ €๊ฐ€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ฒ˜๋Ÿผ ์„ค์น˜๋˜์–ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•˜์ดํผ๋ฐ”์ด์ € Type-2 ๋Š” Type-1 ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ํ˜ธ์ŠคํŠธ OS ์™€ ํ•จ๊ป˜ ์šด์˜๋ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ OS ์œ„์— ํ•˜์ดํผ๋ฐ”์ด์ € Type-2 ๊ฐ€ ๋™์ž‘ํ•˜๊ณ , ํ•˜์ดํผ๋ฐ”์ด์ € Type-2 ๋Š” ์—ฌ๋Ÿฌ ๊ฒŒ์ŠคํŠธ OS ๋ฅผ ๊ตฌ๋™์‹œํ‚ต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์ž˜ ์‚ฌ์šฉํ•˜๋Š” VMware Workstation ์ด๋‚˜ VirtualBox ๊ฐ€ ์ด ํƒ€์ž…์œผ๋กœ ์ง€์›๋˜๊ณ  ์žˆ์–ด์š”.

1.3 Type-1 VS Type-2

  • Hypervisor ์„ค์น˜ ์œ„์น˜
    • Type-1 : ํ•˜๋“œ์›จ์–ด ์œ„์— ๋ฐ”๋กœ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
    • Type-2 : Host OS ์œ„์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
  • Host OS ํ•„์š” ์œ ๋ฌด
    • Type-1 : Host OS ๊ฐ€ ํ•„์š”์—†์Šต๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ๋ฐ”๋กœ ์œ„์— ์„ค์น˜๋œ ํ•˜์ดํผ๋ฐ”์ด์ € Type-1 ํ•œํ…Œ Guest OS ๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ๋˜๊ฑฐ๋“ ์š”.
    • Type-2 : Host OS ์œ„์— ์„ค์น˜๋˜๊ธฐ๋•Œ๋ฌธ์— Host OS ๊ฐ€ ๊ผญ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ ๋ฉด์—์„œ์˜ ์ฐจ์ด
    • Type-1 : ํ•˜๋“œ์›จ์–ด ์œ„์—์„œ ๋™์ž‘ํ•˜๊ธฐ๋•Œ๋ฌธ์— Type-2 ๋ณด๋‹ค ๋น ๋ฆ…๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•˜๋“œ์›จ์–ด๊ฐ€ Host OS ์™€ ์™„๋ฒฝํžˆ ๊ฒฉ๋ฆฌ๋˜์–ด์žˆ๊ธฐ๋•Œ๋ฌธ์—, Host OS ์—์„œ VM ๋ฅผ ๊ณต๊ฒฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    • Type-2 : ์•„๋ฌด๋ž˜๋„ Host OS ํ•œํ…Œ Guest OS ์˜ I/O ๋ฅผ ์ „๋‹ฌํ•ด์•ผํ•˜๋‹ค๋ณด๋‹ˆ ๋ณ€ํ™˜๊ณผ์ •์— ์žˆ์–ด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

2. Docker

๋„์ปค๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๋„์ปค์—”์ง„์„ ํ†ตํ•ด์„œ Host OS ์˜ ์ปค๋„์„ ๊ณต์œ ํ•˜๋ฉฐ, ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒฉ๋ฆฌ์‹œํ‚ต๋‹ˆ๋‹ค.

2.1 Hypervisor Type-1 vs Hypervisor Type-2 vs Docker

Type-1 Hypervisor ์€ ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ Guest OS ๋ฅผ ๋ถ™์—ฌ ๊ฐ€์ƒํ™”ํ•˜๊ณ , Type-2 Hypervisor ๋Š” Host OS ์œ„์—์„œ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Docker ์€ Host OS ์œ„์—์„œ Guest OS ์ „์ฒด๋ฅผ ๊ฐ€์ƒํ™”ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๋”ฑ ํ•„์š”ํ•œ bin/lib ํŒŒ์ผ๋“ค๋งŒ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด ํ›„ Host OS ์™€ ์ปค๋„์„ ๊ณต์œ ํ•˜๋ฉฐ I/O ๋ฅผ ๋‚ ๋ฆฌ์ฃ .

3. ์ฃผ์š” ์ฐจ์ด์ ์€ ์–ด๋–ค๊ฒƒ์ด ์žˆ์„๊นŒ์š”?

  • ํฌ๊ธฐ
    • VM Hypervisor Type-1, 2 : large

      VM ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Guest OS ์ „์ฒด๊ฐ€ ๋‹ค ์˜ฌ๋ผ๊ฐ€๊ธฐ๋•Œ๋ฌธ์— ํฌ๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ํฝ๋‹ˆ๋‹ค.(+ ์ปค๋„)

    • Docker : small

      ๋„์ปค๋Š” bin/lib ํŒŒ์ผ๋“ค๋งŒ ์‚ฌ์šฉํ•˜๋ฉฐ Host OS ์™€ ์ปค๋„์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ปค๋„์ด ๋‹ค ์˜ฌ๋ผ๊ฐ€๋Š” VM ๋ณด๋‹ค ํฌ๊ธฐ๊ฐ€ ์ž‘์ฃ .

  • ์„ฑ๋Šฅ
    • VM Hypervisor Type-1 : fast

      ํ•˜๋“œ์›จ์–ด ๋ ˆ๋ฒจ๋ถ€ํ„ฐ ์™„๋ฒฝํžˆ ๊ฒฉ๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋˜ ๋‹ค๋ฅธ ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋˜์š”. ๋ชจ๋“  ์ปค๋„ I/O ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ฆ‰์‹œ ํ•˜๋“œ์›จ์–ด์™€ ์ƒํ˜ธ์ž‘์šฉ์ด ์ด๋ฃจ์–ด์ง€์ฃ .

    • Docker : fast

      ๋„์ปค๋Š” ์ปค๋„์„ ํ˜ธ์ŠคํŠธ์™€ ๊ณต์œ ํ•˜๋ฏ€๋กœ, Hypervisor Type-1๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ I/O ์ž‘์—…์ด ์ฆ‰์‹œ ํ˜ธ์ŠคํŠธ์˜ ์ปค๋„๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋งค์šฐ ๋น ๋ฅด์ฃ !

    • VM Hypervisor Type-2 : slow

      Hypervisor Type-2 ๋Š” Host OS ์œ„ ๋…๋ฆฝ์ ์ธ ์ปค๋„์„ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Guest OS ์—์„œ I/O ๋‚˜ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์ด ๋ฐœ์ƒํ•˜๋ฉด HostOS ์˜ ์ปค๋„์— ๋งž๊ฒŒ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

      ์ถ”๊ฐ€์ ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ VM Hypervisor Type-2 ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ Guest OS ๊ฐ€ Host OS ์˜ ์ปค๋„์ ‘๊ทผ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋ณด์•ˆ์˜ ์ด์œ ๋กœ ์ฃผ๋กœ VM ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • ํ™•์žฅ์„ฑ
    • VM Hypervisor Type-1 : complicate

      ๋Œ€๊ทœ๋ชจ ๊ฐ€์ƒํ™”์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. Registry ์—์„œ ๊บผ๋‚ด๊ณ , configuration ํŒŒ์ผ๋“ค ์—…๋ฐ์ดํŠธํ•˜๊ณ , env ์„ธํŒ… ๋‹ค์‹œํ•˜๋Š” ๊ณผ์ •์ด ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค.

    • VM Hypervisor Type-2 : complicate

      ์†Œ๊ทœ๋ชจ ๊ฐ€์ƒํ™”์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์œ„์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค.

    • Docker : easy

      ์ด๋ฏธ์ง€๋กœ ํŒจํ‚ค์ง• ๋˜์–ด์žˆ์–ด ๊ธฐ์กด์˜ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ pull ํ•˜๊ฑฐ๋‚˜ push ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ๋ฐ›์•„์˜ค๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

์ •๋ฆฌํ•ด๋ณผ๊นŒ์š”?

  • ๋ณด์•ˆ : [VM Hypervisor Type-1] > [VM Hypervisor Type-2]ย ยป [Docker]
  • ์„ฑ๋Šฅ : [VM Hypervisor Type-1] >= [Docker]ย ยป [VM Hypervisor Type-2]
  • ํ™•์žฅ์„ฑ : [Docker]ย ยป [VM Hypervisor Type-1] >= [VM Hypervisor Type-2]

์ถ”๊ฐ€์ ์œผ๋กœ Windows ๋Š” Linux ์ปค๋„์„ ๋™์‹œ์— ์ง€์›ํ•˜๋ฏ€๋กœ Docker images ์„ธํŒ…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค:) ๋ฐ˜๋ฉด ๋ฆฌ๋ˆ…์Šค๋Š” windows ์ปค๋„์„ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ๋•Œ๋ฌธ์— ๋ฆฌ๋ˆ…์Šค์— windows image ๋Š” ์‹คํ–‰ํ•  ์ˆ˜ ์—†์–ด์š”.