๋๋ถ๋ถ์ ๋ธ๋ก๊ทธ์์๋ 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, 2 : large
- ์ฑ๋ฅ
- 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 : fast
- ํ์ฅ์ฑ
- VM Hypervisor Type-1 : complicate
๋๊ท๋ชจ ๊ฐ์ํ์ ์ ํฉํฉ๋๋ค. Registry ์์ ๊บผ๋ด๊ณ , configuration ํ์ผ๋ค ์ ๋ฐ์ดํธํ๊ณ , env ์ธํ ๋ค์ํ๋ ๊ณผ์ ์ด ๋ณต์กํฉ๋๋ค.
- VM Hypervisor Type-2 : complicate
์๊ท๋ชจ ๊ฐ์ํ์ ์ ํฉํฉ๋๋ค. ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ณต์กํฉ๋๋ค.
- Docker : easy
์ด๋ฏธ์ง๋ก ํจํค์ง ๋์ด์์ด ๊ธฐ์กด์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ๋จํ๊ฒ pull ํ๊ฑฐ๋ push ํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ฅํ๊ฑฐ๋ ๋ฐ์์ค๊ธฐ ์ฝ์ต๋๋ค.
- VM Hypervisor Type-1 : complicate
์ ๋ฆฌํด๋ณผ๊น์?
- ๋ณด์ : [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 ๋ ์คํํ ์ ์์ด์.