1.Hypervisor Virtualization

하이퍼 바이저

→하나의 컴퓨터에서 여러 OS를 동시에 실행하기 위한 소프트웨어

→하나의 컴퓨터에서 하나의 OS만 운영하는 기존의 방식에서 발생하는 비효율적인 상황을 해결하기 위해 하이퍼 바이저를 이용한 가상화 기술을 도입

-하이퍼바이저 가상화를 통해 하나의 물리적 서버 위에 Host OS가 존재하고 그 위에 독립적인 다수의 OS(Vitual Machine)를 두어 낭비되는 서버 자원을 더 유연하게 사용 할 수 있게 됨

VMware, VirtualBox와 같은 대표적인 가상화 서비스가 존재

하지만 여러 Guest OS를 가상화하여 사용하는 방식은 간단하지만 기술적으로 너무 무겁다는 단점이 있음

각각의 독립적인 OS(Virtual Machine)를 실행시켜야 하기 때문에 부팅 시간이 길며 리소스를 많이 차지할 수 밖에 없음

2.컨테이너 가상화(Container Virtualization)

-리룩스 컨테이너(LXC)

-OS를 가상화하는 것이 아닌 운영체제 수준의 가상화 기술로 리눅스 커널을 공유하면서 프로세스를 격리된 환경에서 실행하기 때문에 하이퍼 바이저 가상화 방식보다 더욱 가볍고 빠르게 동작

-컨테이너 가상화 기술을 통해 하나의 서버에 다수의 컨테이너를 실행하면 컨테이너끼리 서로 영향을 끼치지 않고 독립적으로 실행

-실행중인 컨테이너에 접속하여 명령어 입력, 패키지 설치 등 다양한 작업을 할 수 있음

-CPU혹은 메모리를 제한 할 수 있으며 호스트 디렉토리에 마운트하여 내부 디렉토리로 사용 할 수 있음

-새로운 컨테이너를 만드는 시간은 OS를 가상화하는 기존의 방식과는 비교할 수 없이 빠름

-컨테이너를 실행하는데 필요한 모든 파일을 이미지로 만들어 놓고 제공하기 때문에 컨테이너 가상화 방식을 사용하면 개발 단계부터 테스트 및 프로덕션에 이르기까지 일관된 환경을 유지 할 수 있음