241125 CS 스터디

apple-mint·2024년 11월 25일

CS study

목록 보기
11/15

가상 머신과 컨테이너

1) 가상 머신

(1) 정의 및 특징

  • 소프트웨어적으로 만들어 낸 가상의 컴퓨터
  • 기존 운영체제와는 독립된 환경을 구축하고 해당 환경에서 애플리케이션을 작동시킬 수 있음
  • 하드웨어 수준의 자원 격리 및 가상화를 제공함
  • 클라우드 컴퓨팅 및 인공지능과 같이 최근 고도화된 기술 대부분은 가상 머신 개념에 뿌리를 두고 있음
  • 장점
    • 리소스 활용도 및 ROI 개선
    • 주어진 워크로드 요구 사항에 빠르게 반응
    • 네트워크 물리적 컴퓨터 간 재배치가 가능하므로 이식성이 뛰어남
    • 쉽게 가상 머신을 복제할 수 있어 유연성이 높음
    • 생성하고 설정하는 것이 쉬우므로 악성 소프트웨어에 민감하게 대처 가능
    • 물리적 서버 수가 줄어들어 지속 가능성이 높음
  • 단점
    • 호스트 컴퓨터에서 사용할 수 있는 하드웨어 리소스에 따라 성능이 달라짐
    • 구성 및 관리가 복잡해질 수 있음
    • 하나의 물리적 컴퓨터에 의존하므로 단일 장애 지점 발생 가능성이 있음

(2) 작동 방식

가상 머신 작동 방식

  • 하이퍼바이저라는 소프트웨어를 통해 가상 머신을 만들고 실행함
  • 가상 머신이 실행되는 물리적 머신을 호스트, 호스트에서 실행되는 가상 머신을 게스트라고 함
  • 하이퍼바이저는 컴퓨팅, 메모리, 스토리지와 같은 호스트 머신의 물리적 리소스를 필요에 따라 프로비저닝(가상 머신을 생성하고 설정)하고 게스트 가서 머신에 동적할 수 있는 풀로 추상화하여 전반적인 유연성과 효율성을 높임

2) 컨테이너

(1) 정의 및 특징

  • 구동하려는 애플리케이션을 실행할 수 있는 환경까지 감싸서 어디서든 쉽게 실행할 수 있도록 하는 가상화 및 자원 격리 기술
  • 애플리케이션을 실행하는 데에 필요한 모든 구성 요소와 기능을 갖춘 소프트웨어 단위
  • 기본적으로 동일한 운영체제(커널)을 공유함
  • 주어진 특정 프로세스를 실행하는 데에 필요한 자원만을 격리
  • 장점
    • 하나의 OS 위에서 동작하므로 OS를 매번 설치할 필요가 없음
    • 하나의 컨테이너가 매우 작으므로 가상 머신에 비해 가벼움
    • 컨테이너를 모든 종속성을 수반하므로 다음 컴퓨팅 환경에서 이식 가능함
    • 플랫폼 전반에 걸친 배포 이식성, 일관성, 작은 크기의 조합으로 마이크로서비스 아키텍처를 활성화할 수 있음
    • 시스템 리소스에 대한 의존도가 낮아 빠르게 관리하고 배포할 수 있음
  • 단점
    • 특정 프로그램의 문제로 OS 문제가 유발될 경우 다른 프로그램까지 시스템이 중단될 가능성이 있음
    • 다른 OS와의 호환성 문제가 발생할 수 있음
    • 컨테이너 간 리소스 공유로 보안 취약점 발생 가능

(2) 작동 방식

컨테이너 작동 방식

  • 도커와 같은 컨테이너 런타임이라는 컨테이너를 다루는 도구를 사용
  • OS 커널을 공유하는 가상화라고 표현할 수 있음
  • 컨테이너 내 모든 요소를 패키징하여 모든 라이브러리와 종속성을 포함한 파일인 컨테이너 이미지를 사용하여 배포
  • 특정 애플리케이션 실행에 필요한 라이브러리를 비롯한 코드, 파일 등이 모두 담겨 있는 통 혹은 특정 애플리케이션 실행에 필요한 모든 것들의 묶음으로 봐도 무방함
  • 보통 수백 개의 컨테이너가 탄력적으로 결합되어 있는데 이를 효율적으로 관리하기 위해 쿠버네티스와 같은 컨테이너 오케스트레이션 플랫폼을 사용함

참고

0개의 댓글