πŸ“¦Β μ»¨ν…Œμ΄λ„ˆ(OS μˆ˜μ€€ 가상화), VM과의 차이

μ„€ν˜„μ•„Β·2025λ…„ 4μ›” 15일

https://www.redhat.com/ko/topics/containers/containers-vs-vms

λ„μ»€λŠ” 유λͺ…ν•œ μ»¨ν…Œμ΄λ„ˆ μ„œλΉ„μŠ€λ‹€. 레츠꼬

μ»¨ν…Œμ΄λ„ˆμ™€ 가상 머신은 μ»΄ν“¨νŒ… ν™˜κ²½μ„ κ°€μƒν™”ν•˜λŠ” 두 κ°€μ§€ μ ‘κ·Ό 방식이닀. ν•˜μ§€λ§Œ λͺ©μ κ³Ό 방식이 μ‘°κΈˆμ”© λ‹€λ₯΄λ‹€. 이λ₯Ό λΉ„κ΅ν•˜λ©° μ»¨ν…Œμ΄λ„ˆλ₯Ό μ€‘μ‹¬μœΌλ‘œ 닀뀄보겠닀.

μ»¨ν…Œμ΄λ„ˆμ™€ κ°€μƒλ¨Έμ‹ μ˜ 차이λ₯Ό μ•„μ£Ό κ°„λ‹¨νžˆ λ§ν•˜μžλ©΄,

가상 머신은 OS(게슀트 OS)λ₯Ό ν¬ν•¨ν•˜μ—¬ μ‹€μ œ μ»΄ν“¨ν„°μ²˜λŸΌ CPU, RAM, λ©”λͺ¨λ¦¬ 등을 λ…λ¦½μ μœΌλ‘œ κ°€μ§„λ‹€.
μ»¨ν…Œμ΄λ„ˆλŠ” OSλ₯Ό κ³΅μœ ν•˜μ—¬ 가볍고 λΉ λ₯΄κ²Œ λ…λ¦½λœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰ ν™˜κ²½μ„ κ°€μ§„λ‹€.

가상 λ¨Έμ‹  Virtual Machine

가상 머신은 인프라와 μ‹œμŠ€ν…œ κ΄€λ¦¬μžκ°€ νš¨μœ¨μ„±μ„ 높이렀고 μˆ˜ν–‰ν–ˆλ˜ 업무에 쀑점을 λ‘”λ‹€. κ·Έλž˜μ„œ 인증/μ ‘κ·Ό μ œμ–΄λ₯Ό 일괄 μ²˜λ¦¬ν•œλ‹€λ˜κ°€, λ³΄μ•ˆ 정책을 ν•œ λ²ˆμ— μ„€μ •ν•  수 μžˆλ‹€. λ˜ν•œ 백업에 μš©μ΄ν•˜λ‹€. ν•˜μ§€λ§Œ, VMλ§ˆλ‹€ λ³„λ„μ˜ OSκ°€ ν•„μš”ν•˜μ—¬ λΆ€νŒ… 속도가 λΆ„ λ‹¨μœ„λ‘œ ꡉμž₯히 λŠλ¦¬λ‹€.

μ§€λ‚œ ν¬μŠ€νŒ…μ—μ„œ μžμ„Έν•œ λ‚΄μš©μ„ λ‹€λ€˜μœΌλ‹ˆ 참고해도 μ’‹λ‹€.

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

반면 μ»¨ν…Œμ΄λ„ˆλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμžμ— μ΄ˆμ μ„ λ§žμΆ”μ–΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜λŠ” 데 ν•„μš”ν•œ λͺ¨λ“  ꡬ성 μš”μ†Œμ™€ ν™˜κ²½μ„ ν•˜λ‚˜μ˜ 가볍고 독립적인 λ‹¨μœ„λ‘œ 포μž₯ν•œ κΈ°μˆ μ΄λ‹€.

ν˜‘μ—…μ„ ν•˜λ‹€λ³΄λ©΄,,

β€˜μ–΄? 이거 λ‚΄ PCμ—μ„œλŠ” μ™œ μ•ˆ λ˜μ§€?’ β†’ β€˜λ‚΄ PCμ—μ„œλŠ” λ˜λŠ”λ°?’ 와 같은 일듀이 μΌμ–΄λ‚œλ‹€.

μ΄λŠ” 각자 개발 ν™˜κ²½μ΄ λ‹¬λΌμ„œμ΄λ‹€. μ»¨ν…Œμ΄λ„ˆλŠ” μ΄λŸ¬ν•œ 개발 ν™˜κ²½μ„ ν¬ν•¨ν•˜μ—¬ μ–΄λ””μ„œλ‚˜ λ˜‘κ°™μ΄ 잘 λŒμ•„κ°€κ²Œ λ§Œλ“œλŠ” λ›°μ–΄λ‚œ 이식성을 κ°€μ§„ μ»¨ν…Œμ΄λ„ˆ 이미지 λ‹¨μœ„λ‘œ μ €μž₯λœλ‹€. λ”°λΌμ„œ κ°œλ°œμžλŠ” μΌκ΄€λœ ν™˜κ²½μ—μ„œ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜κ³ , μ„œλ‘œ μ»¨ν…Œμ΄λ„ˆ 이미지λ₯Ό κ³΅μœ ν•˜μ—¬ ν˜‘λ ₯ν•˜λŠ” 것이 κ°€λŠ₯ν•˜λ‹€.

κ°€μƒλ¨Έμ‹ κ³ΌλŠ” λ‹€λ₯΄κ²Œ 전체 운영체제λ₯Ό ν¬ν•¨ν•˜μ§€ μ•Šκ³  호슀트 운영체제의 컀널을 κ³΅μœ ν•˜λ©΄μ„œ μž‘λ™ν•˜κΈ° λ•Œλ¬Έμ— 속도가 λΉ λ₯΄κ³  μžμ› μ†Œλͺ¨κ°€ 적닀.

μ»¨ν…Œμ΄λ„ˆλŠ” μš΄μ˜ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ κ·Έ 자체둜, VM에 λΉ„ν•΄ 훨씬 λΉ λ₯΄κ³  κ°€λ³κ²Œ μ‹€ν–‰ κ°€λŠ₯ν•˜λ‹€. κ°œλ°œμžκ°€ 개발, ν…ŒμŠ€νŠΈ, 배포λ₯Ό μžλ™ν™” ν•˜λŠ” 데 μœ μš©ν•˜κ²Œ 쓰인닀.

μΉ΄μΉ΄μ˜€ν†‘ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μž„μ˜λ‘œ μ»¨ν…Œμ΄λ„ˆλ‘œ λ‚˜λˆ„μ–΄λ³΄μž.

  • 친ꡬ λͺ©λ‘ κΈ°λŠ₯을 λ‹΄λ‹Ήν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ
  • μ±„νŒ…λ°© κΈ°λŠ₯을 κ°–μΆ˜ μ»¨ν…Œμ΄λ„ˆ
  • μ„ λ¬Όν•˜κΈ° κΈ°λŠ₯을 μœ„ν•œ μ»¨ν…Œμ΄λ„ˆ

이처럼 κΈ°λŠ₯λ³„λ‘œ μ»¨ν…Œμ΄λ„ˆλ₯Ό λ‚˜λˆ„μ–΄ κ°œλ°œν•˜κ³  μš΄μ˜ν•  수 μžˆλ‹€. ν•„μš”ν•œ κΈ°λŠ₯만 λΉ λ₯΄κ²Œ μˆ˜μ •ν•˜κ±°λ‚˜ 배포할 수 μžˆλ‹€.

μ»¨ν…Œμ΄λ„ˆλ‘œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό 쒅속성을 νŒ¨ν‚€μ§•ν•˜λ©΄ 개발자 λ…ΈνŠΈλΆ, 데이터 μ„Όν„°, ν΄λΌμš°λ“œ, μ—£μ§€ λ“± ν•„μš”ν•œ μœ„μΉ˜ μ–΄λ””λ‘œλ“  배포가 κ°€λŠ₯ν•˜λ©° λ™μΌν•˜κ²Œ μž‘λ™ν•œλ‹€ .μ»¨ν…Œμ΄λ„ˆν™”λœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λΉŒλ“œ, 배포, κ΄€λ¦¬ν•˜λŠ” μ˜€ν”ˆμ†ŒμŠ€ ν”Œλž«νΌμΈ

DockerλŠ” μˆ˜λ…„κ°„ μ»¨ν…Œμ΄λ„ˆ 기술 μ§„ν™”μ˜ μ£Όμš” 역할을 λ‹΄λ‹Ήν•΄ μ™”λ‹€.

μž‘λ™ 방식

가상 λ¨Έμ‹  Virtual Machine

μ™Όμͺ½ 사진이 가상 λ¨Έμ‹ μ˜ ꡬ쑰이닀. ν•˜μ΄νΌλ°”μ΄μ € μœ„μ— 각각의 μš΄μ˜μ²΄μ œκ°€ 깔리고, κ·Έ μœ„μ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹€ν–‰λœλ‹€.

λ‹€μ‹œ 말해, μ»¨ν…Œμ΄λ„ˆλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜κΈ° μœ„ν•œ λͺ¨λ“  것을 ν•˜λ‚˜μ˜ μž‘μ€ μ»¨ν…Œμ΄λ„ˆμ²˜λŸΌ 포μž₯ν•œ 것이닀.
즉, host OS μœ„μ— hypervisorλΌλŠ” μ†Œν”„νŠΈμ›¨μ–΄κ°€ 각 guest osλ₯Ό κ΄€λ¦¬ν•˜λ©° λŒλ¦°λ‹€.

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

였λ₯Έμͺ½ 사진은 μ»¨ν…Œμ΄λ„ˆμ˜ ꡬ쑰이닀. μš΄μ˜μ²΄μ œλŠ” ν•˜λ‚˜μ΄κ³ , κ·Έ μœ„μ— 곡유된 컀널과 λŸ°νƒ€μž„μ„ 기반으둜 μ—¬λŸ¬ 개의 μ»¨ν…Œμ΄λ„ˆκ°€ μ‹€ν–‰λœλ‹€. 각 μ»¨ν…Œμ΄λ„ˆλŠ” μ•±κ³Ό 라이브러리만 λ“€κ³ μžˆλ‹€.

λ‹€μ‹œ 말해, κ°€μƒν™”λŠ” ν•˜λ‚˜μ˜ 물리적인 컴퓨터λ₯Ό μ—¬λŸ¬ 개의 가상 μ»΄ν“¨ν„°λ‘œ λ‚˜λˆ„μ–΄ μ‚¬μš©ν•˜λŠ” κΈ°μˆ μ΄λ‹€. ν•˜μ΄νΌλ°”μ΄μ €λΌλŠ” μ†Œν”„νŠΈμ›¨μ–΄κ°€ 물리 컴퓨터 μœ„μ— μ„€μΉ˜λ˜μ–΄ CPU, λ©”λͺ¨λ¦¬, λ””μŠ€ν¬ λ“±μ˜ μžμ›μ„ μ—¬λŸ¬ 가상 머신에 ν• λ‹Ήν•œλ‹€.
OSκΉŒμ§€ λ‹΄μ§€λŠ” μ•ŠμœΌλ©°, host OSλ₯Ό 같이 μ“°λŠ” ꡬ쑰이닀.

μ–΄λŠ κΈ°μˆ μ„ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”κ°€

가상 λ¨Έμ‹  Virtual Machine

  • κΈ°μ‘΄, λ ˆκ±°μ‹œ 및 λͺ¨λ†€λ¦¬μ‹ μ›Œν¬λ‘œλ“œ 수용
  • μœ„ν—˜ν•œ 개발 사이클 뢄리
  • μΈν”„λΌΒ λ¦¬μ†ŒμŠ€(예: λ„€νŠΈμ›Œν¬, μ„œλ²„, 데이터) ν”„λ‘œλΉ„μ €λ‹
  • ν•œ OSμ—μ„œ λ‹€λ₯Έ μ’…λ₯˜μ˜ OS μ‹€ν–‰(예:Β Linuxμ—μ„œ Unix μ‹€ν–‰)

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

  • ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λΉŒλ“œ
  • λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ νŒ¨ν‚€μ§•
  • DevOps λ˜λŠ” CI/CD μ‚¬λ‘€λ‘œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 톡합
  • ν™•μž₯ κ°€λŠ₯ν•œ IT ν”„λ‘œμ νŠΈλ₯Ό λ‹€μ–‘ν•œ IT ν’‹ν”„λ¦°νŠΈ μ „λ°˜μœΌλ‘œ 이동

λ² μ–΄ λ©”νƒˆκ³Ό μ»¨ν…Œμ΄λ„ˆ

가상 λ¨Έμ‹ κ³Ό μ»¨ν…Œμ΄λ„ˆλŠ” λ² μ–΄ λ©”νƒˆ μ„œλ²„λ₯Ό λΉ„λ‘―ν•œ λ‹€μ–‘ν•œ μœ ν˜•μ˜ 인프라에 배포할 수 μžˆλ‹€.

λ² μ–΄ λ©”νƒˆμ΄λž€?

'λ² μ–΄ λ©”νƒˆ'은 물리적 ν•˜λ“œμ›¨μ–΄μ—μ„œ μ‹€ν–‰λ˜μ§€λ§Œ, μš΄μ˜μ„ μœ„ν•΄ ν•˜μ΄νΌλ°”μ΄μ €, 가상 λ¨Έμ‹  λ˜λŠ” μ»¨ν…Œμ΄λ„ˆν™”μ˜ 지원이 ν•„μš” μ—†λŠ” μ»΄ν“¨ν„°λ‚˜ μ„œλ²„λ₯Ό μ§€μΉ­ν•˜λŠ” μš©μ–΄λ‹€.

λ² μ–΄ λ©”νƒˆ μ„œλ²„λŠ” 짧은 λŒ€κΈ° μ‹œκ°„μœΌλ‘œ λŒ€μš©λŸ‰μ˜ 데이터λ₯Ό μ²˜λ¦¬ν•  수 μžˆμ–΄ λΉ λ₯΄κ³  κ°•λ ₯ν•˜λ‹€κ³  μ•Œλ €μ‘Œλ‹€. λ² μ–΄ λ©”νƒˆμ„ μ‚¬μš©ν•˜λŠ” μ‚¬μš©μžλŠ” μ„œλ²„ 인프라λ₯Ό μ™„μ „νžˆ μ œμ–΄ν•  수 있기 λ•Œλ¬Έμ— 자체 운영 체제λ₯Ό μ„ νƒν•˜κ³  ν•˜λ“œμ›¨μ–΄μ™€ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜μ—¬ νŠΉμ • μ›Œν¬λ‘œλ“œ μš”κ΅¬μ‚¬ν•­μ„ μΆ©μ‘±μ‹œν‚¬ 수 μžˆλ‹€.

λ² μ–΄ λ©”νƒˆ λ°°ν¬λŠ” μ„±λŠ₯κ³Ό 직접적인 ν•˜λ“œμ›¨μ–΄ μ•‘μ„ΈμŠ€κ°€ μ€‘μš”ν•œ 역할을 ν•˜λŠ” μ‹œλ‚˜λ¦¬μ˜€μ—μ„œ μœ μš©ν•œ 반면, μ»¨ν…Œμ΄λ„ˆλ‚˜ 가상 λ¨Έμ‹ κ³Ό 같은 μˆ˜μ€€μ˜ μœ μ—°μ„±κ³Ό λ¦¬μ†ŒμŠ€ κ΄€λ¦¬λŠ” μ œκ³΅ν•˜μ§€ λͺ»ν•  수 μžˆλ‹€.

λ² μ–΄ λ©”νƒˆμ— VM을 ν˜ΈμŠ€νŒ…ν•  수 μžˆλ‚˜μš”?

예, λ² μ–΄ λ©”νƒˆ μ„œλ²„λŠ” ν•˜μ΄νΌλ°”μ΄μ €μ™€ 가상화 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μΆ”κ°€ν•˜μ—¬ 가상 머신을 ν˜ΈμŠ€νŒ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ² μ–΄ λ©”νƒˆμ— μ»¨ν…Œμ΄λ„ˆλ₯Ό ν˜ΈμŠ€νŒ…ν•  수 μžˆλ‚˜μš”?

예, Docker, μΏ λ²„λ„€ν‹°μŠ€, Podmanκ³Ό 같은 ν”Œλž«νΌμ€ μ‚¬μš©μžκ°€ λ² μ–΄ λ©”νƒˆ μ„œλ²„λ₯Ό λΉ„λ‘―ν•œ μˆ˜λ§Žμ€ μΈν”„λΌμ—μ„œ 규λͺ¨μ— 맞게 μ»¨ν…Œμ΄λ„ˆλ₯Ό κ΄€λ¦¬ν•˜κ³  배포할 수 μžˆλ„λ‘ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

profile
μ–΄μ„œμ˜€μ„Έμš”! ☺️ ν›„νšŒ μ—†λŠ” 내일을 μœ„ν•΄ μ˜€λŠ˜μ„ μ—΄μ‹¬νžˆ μ‚΄μ•„κ°€λŠ” κ°œλ°œμžμž…λ‹ˆλ‹€.

0개의 λŒ“κΈ€