VM((Virtual Machine)은 일반적으로 크기가 기가바이트 단위입니다. 일반적으로 VM은 자체 OS를 포함하고 있어 리소스 집약적인 기능 여러 개를 동시에 수행할 수 있습니다. VM에서 사용할 수 있는 리소스가 늘어남에 따라 VM은 전체 서버, OS, 데스크탑, 데이터베이스, 네트워크를 추상화, 분할, 복제, 에뮬레이션할 수 있습니다.
가상머신의 Hypervisor는 물리적 서버의 OS 위에 여러 다른 독립적인 OS가 가상적(virtually)으로 돌아가는 구조이다. 각각의 OS는 서로에 대해서 알지 못하며 base OS (물리적 서버의 OS)도 알지 못한다.장점은 물리적 서버의 리소스를 더 효율적으로 사용할수 있다는 것에 있다.
컨테이너(container)는 일반적으로 크기가 메가바이트 단위입니다. 앱보다 크거나 실행하는 데 필수적인 모든 파일이 컨테이너에 패키징되는 것은 아니며, 특정 작업을 수행하는 단일 기능(마이크로서비스라고 함)이 컨테이너에 패키징되는 경우가 많습니다. 컨테이너는 경량화 속성과 공유 운영 체제(OS)로 인해 여러 환경 간에 매우 쉽게 이동할 수 있습니다.
컨테이너(container)는 hypervisor 가상화와 틀리게 OS의 커널 위의 유저 공간(user space)에서 실행된다. 즉 완전히 독립적인 운영체제를 가상화 하는 것이 아니라 독립적인 user space를 가상화 한다고 생각하면 쉽다. 즉 하나의 호스트 서버에서 여러 독립적인 user space 인스턴스1)들을 가상적으로 실행할 수 있게 되는 것이다. 이러한 가상화 기술의 장점은 hypervisor 가상화 보다 훨씬 가볍기 때문에 빠르고 쉽게 독립적인 가상 환경을 실행시킬수 있다.
컨테이너로 실행된 프로세스는 커널을 공유하지만 격리 기술 덕분에 호스트 머신에게는 프로세스로 인식되고 컨테이너 관점에서는 마치 독립적인 환경을 가진 가상 머신처럼 보입니다.
컨테이너는 크게 시스템 컨테이너와 애플리케이션 컨테이너로 나뉩니다. 대표적인 애플리케이션 컨테이너 런타임으로는 도커가 있습니다.애플리케이션 컨테이너는 컨테이너 기술을 활용해 하나의 애플리케이션(프로세스)를 실행하는 것을 목표로 합니다. 단 하나의 프로세스만 실행한다는 점에서 확장이 쉽고 관리 요소가 거의 없습니다.
1) 인스턴스(instance):추상적으로 정의된 개념에 대하여 실체적인 값이나 개체를 형성하는 것을 이르는 말
'First step > web depeloper step1' 카테고리의 다른 글
CS 상식 (0) | 2021.12.27 |
---|---|
Docker (명령어 모음) (0) | 2021.12.26 |
역참조 ,join 이해해보기 (0) | 2021.12.17 |
Unit Test (0) | 2021.12.15 |
select, prefetch related (0) | 2021.12.08 |