🚧

[Docker] κ°€μƒν™”λž€? λ„μ»€μ˜ μ»¨ν…Œμ΄λ„ˆλž€ λ¬΄μ—‡μΌκΉŒ?

purpplee 2021. 11. 24. 09:33

온 ν”„λ ˆλ―ΈμŠ€ ν™˜κ²½κ³Ό 가상화

온 ν”„λ ˆλ―ΈμŠ€(On-premise) ν™˜κ²½μ΄λž€ μ„œλ²„λ₯Ό ν΄λΌμš°λ“œ λ“±μ˜ 원격 ν™˜κ²½μ΄ μ•„λ‹Œ 자체적으둜 λ³΄μœ ν•œ μ „μ‚° μ„œλ²„μ— 직접 μ„€μΉ˜ν•΄ μš΄μ˜ν•˜λŠ” 방식이닀. 이 λ°˜λŒ€μΈ ν΄λΌμš°λ“œ ν™˜κ²½μ˜ μ„œλ²„λŠ” μ˜€ν”„ ν”„λ ˆλ―ΈμŠ€(Off-premise) 방식이라고 ν•œλ‹€.

 

μ΅œκ·Όμ—λŠ” 이 온 ν”„λ ˆλ―ΈμŠ€ ν™˜κ²½μ—μ„œ 가상화 κΈ°μˆ μ„ λ„μž…ν•΄ μ„œλ²„λ₯Ό μš΄μ˜ν•˜κ³  μžˆλ‹€. ν΄λΌμš°λ“œ ν™˜κ²½μ˜ 핡심 κΈ°μˆ μ΄κΈ°λ„ ν•˜λ‹€. λ‚΄κ°€ 많이 λ“€μ–΄λ³Έ 가상 기술 μ€‘μ—λŠ” 도컀, Virtual Machine 등등이 μžˆλŠ”λ°... 이 가상화 기술이 무엇인지 μ •ν™•ν•˜κ²Œ μ•Œκ³  μ‚¬μš©ν•˜μ§€ μ•Šμ•„μ„œ λ‚˜λ¦„λŒ€λ‘œ κ³΅λΆ€ν•΄λ³΄μ•˜λ‹€.

 

κ°€μƒν™”λž€?

κ°€μƒν™”λž€ μ»΄ν“¨ν„°μ˜ 물리 λ¦¬μ†ŒμŠ€(μ„œλ²„, λ„€νŠΈμ›Œν¬, μ €μž₯μ†Œ λ“±)을 μΆ”μƒν™”ν•˜μ—¬ μ‚¬μš©μžλ“€μ΄ 물리 λ¦¬μ†ŒμŠ€μ˜ λ‚΄λΆ€λ₯Ό 잘 λͺ¨λ₯΄λ”라도 μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•˜λŠ” κΈ°μˆ μ΄λ‹€.

 

OS(Operation System) 도 가상화 기술 쀑 ν•˜λ‚˜λ‹€. ν•˜λ“œμ›¨μ–΄λ₯Ό μ˜μ‹ν•˜μ§€ μ•Šκ³  클릭과 νƒ€μ΄ν•‘λ§ŒμœΌλ‘œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œν‚€κ³  데이터λ₯Ό λ„€νŠΈμ›Œν¬ ν™˜κ²½μ—μ„œ 주고받을 수 μžˆλ‹€. 또 OS 덕뢄에 ν•œ λŒ€μ˜ μ»΄ν“¨ν„°μ—μ„œ μ—¬λŸ¬ ν”„λ‘œκ·Έλž¨μ„ 돌릴 수 μžˆλ‹€. OS λŠ” 가상 λ©”λͺ¨λ¦¬ 기법을 μ‚¬μš©ν•΄ ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨μ— 였λ₯˜κ°€ 생겨도 μ‹œμŠ€ν…œ 전체에 영ν–₯을 λ―ΈμΉ˜μ§€ μ•Šκ²Œ μ„€κ³„λ˜μ—ˆλ‹€.

 

κ°€μƒν™”μ˜ μ—¬λŸ¬ 방식듀

Virtual Machine

VM은 컴퓨터에 기본적으둜 μ„€μΉ˜λ˜μ–΄ μžˆλŠ” 호슀트 OS 상에 λ‹€μˆ˜μ˜ 게슀트 OS λ₯Ό κ°€μ§„ μ†Œν”„νŠΈμ›¨μ–΄μΈ 가상 머신을 μš΄μ˜ν•˜λŠ” 방식이닀.

 

호슀트 OS ν˜•

호슀트 OSν˜•μ€ 호슀트 OS μœ„μ— 가상화 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ„€μΉ˜ν•˜μ—¬ μ΄μš©ν•˜λŠ” 방법이닀. VMware 같은 ν”„λ‘œκ·Έλž¨μ΄ λŒ€ν‘œμ μ΄λ‹€.

 

ν•˜μ΄νΌλ°”μ΄μ €ν˜•

ν•˜μ΄νΌλ°”μ΄μ €λ₯Ό μ΄μš©ν•΄ ν•˜λ“œμ›¨μ–΄λ₯Ό κ°€μƒν™”ν•˜λŠ” 방식이닀. ν•˜μ΄νΌλ°”μ΄μ €λž€ ν•˜λ“œμ›¨μ–΄ λ°”λ‘œ μœ„μ—μ„œ μ‹€ν–‰λ˜λŠ” 가상화 ν”Œλž«νΌμœΌλ‘œ 각각의 VM듀을 κ΄€λ¦¬ν•˜λŠ” 역할을 ν•œλ‹€. 호슀트 OS λ₯Ό κ±°μΉ˜μ§€μ•ŠκΈ° λ•Œλ¬Έμ— 더 μ„±λŠ₯이 λ›°μ–΄λ‚˜λ‹€. μ΅œκ·Όμ—λŠ” ν”„λ‘œμ„Έμ„œ μ œμ‘°μ‚¬λ“€μ΄ μ œμ‘°ν•˜λŠ” ν•˜λ“œμ›¨μ–΄μ— 이 κΈ°λŠ₯을 μ§€μ›ν•˜κ³  μžˆλ‹€.

 

VM을 늘릴 λ•Œλ§ˆλ‹€ λΆˆν•„μš”ν•˜κ²Œ OSλ₯Ό λ§Œλ“€μ–΄μ•Όν•˜λ―€λ‘œ ν™•μž₯성이 λ–¨μ–΄μ§€λ©°, λ©”λͺ¨λ¦¬λ‚˜ μžμ›λ“€μ΄ μ²˜μŒλΆ€ν„° μ •ν•΄μ§„ 채 μ‹€ν–‰λ˜λ―€λ‘œ μœ λ™μ μœΌλ‘œ 관리할 수 μ—†λ‹€λŠ” 단점이 μžˆλ‹€.

 

μ»¨ν…Œμ΄λ„ˆ

μ»¨ν…Œμ΄λ„ˆ 방식은 호슀트 OS μƒμ—μ„œ μ»¨ν…Œμ΄λ„ˆλΌλŠ” 것을 μ‚¬μš©ν•΄ κ°€μƒν™”ν•˜μ—¬ 마치 λ³„λ„μ˜ μ„œλ²„μ²˜λŸΌ μ‚¬μš©ν•œλ‹€. μ»¨ν…Œμ΄λ„ˆλŠ” λ¦¬μ†ŒμŠ€κ°€ 각각 λΆ„λ¦¬λœ ν”„λ‘œμ„ΈμŠ€λ‹€. 게슀트 OS듀이 각각의 컀널 곡간을 κ°€μ§€λ˜ VM 방식과 달리 호슀트 OS의 컀널 곡간을 κ³΅μœ ν•˜λ©° λ…λ¦½λœ 파일 μ‹œμŠ€ν…œ, CPU/λ©”λͺ¨λ¦¬, ν”„λ‘œμ„ΈμŠ€ 곡간 등을 μ‚¬μš©ν•  수 μžˆλ‹€λŠ” 차이점이 μžˆλ‹€.

 

VM 은 λ‹¨μˆœνžˆ OS μ•ˆμ— 독립적인 λ‹€λ₯Έ OSλ₯Ό 계속 μ¦κ°€μ‹œν‚€λŠ” 방식이라 μžμ›μ„ λΉ„νš¨μœ¨μ μœΌλ‘œ μ‚¬μš©ν•˜κ³ , μ»¨ν…Œμ΄λ„ˆλŠ” OS μœ„μ— μ†Œν”„νŠΈμ›¨μ–΄μ²˜λŸΌ μ‹€ν–‰λ˜μ–΄ 비ꡐ적 μžμ›μ„ 덜 μž‘μ•„λ¨Ήκ³  속도도 λΉ λ₯΄λ‹€.

 

컀널을 κ³΅μœ ν–ˆμ„ λ•Œμ˜ μž₯점

  • μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰κ³Ό μ •μ§€ 속도가 빠름.
  • VM만 μ‚¬μš©ν•˜λŠ” κ²½μš°μ™€ λΉ„κ΅ν–ˆμ„ λ•Œ 훨씬 λ§Žμ€ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•  수 있고 λ¦¬μ†ŒμŠ€λ₯Ό ν•œ κ³³μ—μ„œ μ‰½κ²Œ 관리할 수 μžˆλ‹€.
컀널(kernel)μ΄λž€ OS의 핡심이 λ˜λŠ” ν”„λ‘œκ·Έλž¨μœΌλ‘œ, μžμ› ν• λ‹Ή/ν”„λ‘œμ„ΈμŠ€ μ œμ–΄/λ©”λͺ¨λ¦¬ μ œμ–΄/μ‹œμŠ€ν…œ 콜 λ“± μ‹œμŠ€ν…œμ˜ λͺ¨λ“  것을 ν†΅μ œν•˜λŠ” 역할을 ν•œλ‹€.
λ°˜μ‘ν˜•