Cloud Engineering/Linux 🐧

ν΄λΌμš°λ“œ μ„œλ²„ 가상화와 μ»¨ν…Œμ΄λ„ˆ 기술

minjiwoo 2022. 12. 12. 11:06
728x90

Container Technology

1. μ»¨ν…Œμ΄λ„ˆλž€
μ΅œκ·Όμ—λŠ” μ»¨ν…Œμ΄λ„ˆκ°€ λ“±μž₯ν–ˆλ‹€. Host λ‘œλΆ€ν„° κ²©λ¦¬λ˜μ–΄ 독립적인 ν™˜κ²½μ˜ 이미지 νŒŒμΌλ‘œλΆ€ν„° μ‹€ν–‰λ˜λŠ” ν”„λ‘œμ„ΈμŠ€μ΄λ‹€. namespace와 cgroup κΈ°μˆ μ„ μ‚¬μš©ν•œλ‹€. 
μ›λž˜ VM도 OS λ₯Ό μ΄λ―Έμ§€ν™”ν•΄μ„œ λ§Œλ“€μ§€λ§Œ μ»¨ν…Œμ΄λ„ˆμ—μ„œ λ§ν•˜λŠ” μ΄λ―Έμ§€λŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ 이미지이닀. 
λ‚΄κ°€ 앱을 λŒλ¦΄λ•Œ ν•„μš”ν•œ 라이브러리, μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ 자체λ₯Ό μ΄λ―Έμ§€ν™”ν•΄μ„œ λ§Œλ“€μ–΄λ†“μ€ 것이닀. 

2. μ»¨ν…Œμ΄λ„ˆμ™€ VM의 μ’…λ₯˜
Linux LXC : OS λ‚΄μ—μ„œ μž‘λ™ν•˜λŠ” κ²½λŸ‰ν™”λœ VM κ΅¬ν˜„. 
Docker : Docker μΆœμ‹œ μ΄ν›„λ‘œ μ»¨ν…Œμ΄λ„ˆκ°€ 각광받기 μ‹œμž‘ν•¨. κ°œλ°œμžλ“€μ΄ λ‹€μ–‘ν•œ OSμ—μ„œ μž‘λ™ν•˜λŠ” λ™μΌν•œ 개발 ν™˜κ²½μ„ κ΅¬ν˜„ν•˜λŠ” 것이 λͺ©μ . Docker Image λž€ 싀행에 ν•„μš”ν•œ λͺ¨λ“  것을 ν¬ν•¨ν•˜μ—¬ docker format 파일둜 μƒμ„±ν•˜λŠ” 것이닀. 
App code, runtime, system tools, system libraries => image 둜 λ§Œλ“ λ‹€. 그리고 imageλŠ” μ»¨ν…Œμ΄λ„ˆλ‘œ λ“€μ–΄κ°„λ‹€. 

3. VM vs Docker Container 
VM (Virtual Machine): GuestOSκ°€ ν•„μš”ν•˜μ—¬ μ˜€λ²„ν—€λ“œ λ°œμƒν•  수 있음. κ·Έλ ‡μ§€λ§Œ OSκ°€ μžˆμ–΄μ„œ 관리성이 μ’‹λ‹€. 
Containers (ex) Docker) : GuestOSμ—μ„œ μ‚¬μš©λ˜λŠ” λ¦¬μ†ŒμŠ€ λΆˆν•„μš”. Hypervisor둜 μΈν•œ μ˜€λ²„ν—€λ“œ κ°μ†Œ. 
μ•„μ§κΉŒμ§€ μ»¨ν…Œμ΄λ„ˆμ˜ 관리성이 쒋지 μ•Šμ•„μ„œ, VM을 μ“°λŠ” κ²½μš°λ„ 있음. 

4. Container Network
μ»¨ν…Œμ΄λ„ˆ 내뢀에 μžˆλŠ” λ„€νŠΈμ›Œν¬λŠ” 호슀트 λ¬Όλ¦¬μ£Όμ†Œμ™€ λ‹€λ₯΄λ‹€. 
Port Forwarding을 ν†΅ν•΄μ„œ host μ£Όμ†Œμ™€ μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ˜ μ£Όμ†Œλ₯Ό μ—°κ²°ν•΄μ€€λ‹€. namespace μ•ˆμ—μ„œ μ‘°μ •ν•  λΆ€λΆ„, λ°”κΉ₯μ—μ„œ μ‘°μ •ν•  뢀뢄을 μ •ν•΄μ£Όλ©΄ 기쑴의 λ„€νŠΈμ›Œν¬ μž‘λ™λ°©μ‹κ³Ό μœ μ‚¬ν•˜λ‹€. 

5. 가상화 기술 
μ„œλ²„, μŠ€ν† λ¦¬μ§€, λ„€νŠΈμ›Œν¬ λ“±μ˜ ITλ¦¬μ†ŒμŠ€λ₯Ό 물리적 μ„±μ§ˆμ΄λ‚˜ 경계λ₯Ό 가리고, 논리적인 λ¦¬μ†ŒμŠ€ 이용 λ‹¨μœ„λ‘œ λ³€ν™˜ν•΄μ„œ μ œκ³΅ν•˜λŠ” 기술 

5-1. 가상화 기술의 λͺ©μ 
- 인프라λ₯Ό λ‹¨μˆœν™” μ‹œν‚΄ (μ‚¬μš©μžλŠ” μ–΄λ–€ 인프라인지 λͺ°λΌλ„ μ‚¬μš©κ°€λŠ₯ν•˜λ‹€. )
- λΆˆν•„μš”ν•œ μž₯λΉ„ 증섀 방지, 유휴 μž₯λΉ„μ˜ ν™œμš©λ₯ μ„ λ†’μž„ 
- μ„œλΉ„μŠ€ μž₯μ•  신속 λŒ€μ‘ κ°€λŠ₯ 
- TCO (Total Cost of Ownership) λ₯Ό μ ˆκ°ν•  수 μžˆλ‹€. 즉 관리 λΉ„μš©μ„ μ ˆκ°ν•  수 μžˆλ‹€. 
- μ‹ μ†ν•œ ν™•μž₯ κ°€λŠ₯ 

5-2. 가상화 기술의 μ’…λ₯˜
- μ„œλ²„ 가상화, μŠ€ν† λ¦¬μ§€ 가상화, λ„€νŠΈμ›Œν¬ 가상화 
- κ³΅μœ ν•΄μ„œ μ‚¬μš©ν•˜λŠ” μžμ›μΈλ°, 내것을 λ‹€λ₯Έ κ²ƒμœΌλ‘œλΆ€ν„° λΆ„λ¦¬μ‹œν‚€κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” κΈ°μˆ μ΄λ‹€.

 


μ„œλ²„ 가상화 


1. μ„œλ²„κ°€μƒν™” μ’…λ₯˜
1) Bare-Metal Hypervisor가상화
μ„œλ²„ μœ„μ— λ°”λ‘œ Hypervisorκ°€ μžˆλ‹€. 즉, HostOSκ°€ ν•„μš”μ—†μœΌλ©°, HostOS μ˜μ—­μ— λŒ€ν•œ CPU μŠ€μΌ€μ€„λ§μ„ ν•˜μ§€ μ•Šμ•„λ„ 되기 λ•Œλ¬Έμ— μ˜€λ²„ν—€λ“œκ°€ 적닀. 
각 VM별 관리가 μœ μ—°ν•¨ 
자체적인 관리 κΈ°λŠ₯이 μ—†μ–΄μ„œ λ³„λ„μ˜ 관리 μ†”λ£¨μ…˜μ΄ ν•„μš”ν•¨. 

2) Hosted Hypervisor 가상화
Host OSκ°€ ν•„μš”ν•¨ .
HostOS 상에 가상머신을 λ°°μΉ˜ν•˜λ―€λ‘œ μ˜€λ²„ν—€λ“œκ°€ λ°œμƒν•¨ 
VM생성이 κ°„λ‹¨ν•˜λ‹€. 
λ‹€μ–‘ν•œ 관리 μ†”λ£¨μ…˜μ΄ μžˆλ‹€. 

2. Hypervisor λž€ ?
ν”„λ‘œμ„Έμ„œλ‚˜ λ©”λͺ¨λ¦¬μ™€ 같은 λ‹€μ–‘ν•œ 컴퓨터 μžμ›μ— μ„œλ‘œ λ‹€λ₯Έ 각쒅 OS의 μ ‘κ·Ό 방법을 ν†΅μ œν•˜λŠ” 얇은 κ³„μΈ΅μ˜ μ†Œν”„νŠΈμ›¨μ–΄ 
λ‹€μˆ˜μ˜ OSλ₯Ό ν•˜λ‚˜μ˜ 컴퓨터 μ‹œμŠ€ν…œμ—μ„œ 가동할 수 있게 ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ‘œ CPU와 OSμ‚¬μ΄μ˜ 미듀웨어
ν•˜λ‚˜μ˜ μ»΄ν“¨ν„°μ—μ„œ μ„œλ‘œ λ‹€λ₯Έ OSλ₯Ό μ‚¬μš©ν•˜λŠ” 가상 컴퓨터λ₯Ό λ§Œλ“€ 수 μžˆλŠ” 효과적인 가상화 엔진 

HostOSκ°€ μ—†λŠ” 것을 확인할 수 μžˆλ‹€.



가상화 μœ ν˜•

1. 전가상화

μ‹œμŠ€ν…œ 전체λ₯Ό μ™„μ „νžˆ κ°€μƒν™”ν•˜μ—¬ μ‹œμŠ€ν…œμ˜ Bios λΆ€ν„° CPU, Memory, I/O 등을 μ™„μ „νžˆ κ°€μƒν™”ν•˜λŠ” 방법 
- μž₯점 : ν•˜λ“œμ›¨μ–΄λ₯Ό μ™„μ „νžˆ 가상화 ν•˜λ―€λ‘œ, GuestOSλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³  λ‹€μ–‘ν•œ OSλ₯Ό μ‚¬μš©ν•  수 있음. κ°€μƒλ¨Έμ‹ μ˜ μœ μ§€λ³΄μˆ˜κ°€ 용이 
- 단점 : μ „ 가상화λ₯Ό μ‹€ν˜„ν•˜κΈ° μœ„ν•΄μ„œ CPU의 Virtualization Technology λ₯Ό μ‚¬μš©ν•˜λ―€λ‘œ μ„±λŠ₯ μ €ν•˜κ°€ λ°œμƒν•  수 있음. 
- μ’…λ₯˜ : KVM 
     KVM은 게슀트 운영체제의 μˆ˜μ •μ΄ ν•„μš”μ—†λ‹€. 
     Linux 자체λ₯Ό 호슀트 OS둜 μ‚¬μš©ν•œλ‹€. -> ν•˜λ‚˜ν•˜λ‚˜κ°€ λ¦¬λˆ…μŠ€ single process 처럼 μž‘λ™ν•¨. 

2. λ°˜κ°€μƒν™” 

ν•˜λ“œμ›¨μ–΄ 전체λ₯Ό 가상화 ν•˜λŠ” λŒ€μ‹ μ—, 가상화가 적용된 λ¦¬λˆ…μŠ€ 컀널을 μ‹œμŠ€ν…œ λΆ€νŒ… μ‹œ 적용. λͺ¨λ“  μž₯치λ₯Ό κ°€μƒν™”ν•˜λŠ” 것은 μ•„λ‹˜. 
- μž₯점 : 가상머신이 직접 ν•˜λ“œμ›¨μ–΄λ₯Ό μ œμ–΄ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, ν•˜μ΄νΌλ°”μ΄μ €μ—κ²Œ requestν•˜κ³ , ν•˜μ΄νΌλ°”μ΄μ €κ°€ ν•˜λ“œμ›¨μ–΄λ₯Ό μ œμ–΄ν•œλ‹€. λ”°λΌμ„œ 높은 μ„±λŠ₯을 μœ μ§€ν•  수 μžˆλ‹€. 
- 단점 : 반 가상화λ₯Ό μ‹€ν˜„ν•˜κΈ° μœ„ν•΄ 가상머신OS의 컀널 일뢀뢄을 μˆ˜μ •ν•΄μ•Ό 함. μœ μ§€λ³΄μˆ˜κ°€ 어렀움. 
- μ’…λ₯˜ : Xen
    λ°˜κ°€μƒν™”/전가상화 λͺ¨λ‘ κ΅¬ν˜„ κ°€λŠ₯. 
    게슀트 운영체제의 μˆ˜μ •μ΄ ν•„μš”ν•˜λ‹€. 
    μ „ 가상화에 λΉ„ν•΄ 처리 μ˜€λ²„ν—€λ“œκ°€ 적닀. 

728x90