본문 바로가기
Infra & Tools/CI & CD

가상화 기술과 도커

by 깐니 2022. 6. 2.

OS

하드웨어 리소스를 관리하는 소프트웨어.
사용자와 하드웨어 사이 매개체 역할을 함.


가상화 기술이란 ?


하드웨어 리소스를 추상화하여 소프트웨어화 하는 기술.
(예를 들어, 가상화 기술을 통해, 또다른 운영환경 (CPU 1코어, Memory 2G, Ubuntu 16.04) 처럼 소프트웨어를 만듬)

→ 하드웨어 리소스를 추상화했기 때문에 서비스에 자원을 자유롭게 할당할 수 있음.
→ OS에 관계없이 동일한 환경에서 소프트웨어를 구동할 수 있음.
→ 특정 리소스만큼 할당된 가상화 공간을 제공받음.



가상화 기술 종류

  • VM (Virtual Machine)


→ VM은 하드웨어를 가상화하는 기술 중 하나로, 컴퓨터에 기본적으로 설치한 OS 위에 Hypervisor라는 소프트웨어를 통해 여러 OS (Guest OS)를 띄우고, 컴퓨팅 리소스를 제어할 수 있음.

이렇게 만든 각각의 환경에서 애플리케이션을 독립적으로 실행할 수 있음.
→ 그러나, 용량을 많이 차지한다. : 운영체제를 비롯한 실행 환경에 필요한 파일들을 이미지 로 저장하고 있음. (이미지의 용량이 큼)
→ 그러나, 실행환경의 부가적인 설정들을 완전히 구현하기 어려움.

⇒ VM은 이미지마다 전용 운영체제가 있기 때문에, 안정적인 프로세스 격리가 가능하지만, 이미지 용량이 크고 속도가 느림.




  • 컨테이너 (Container)


컨테이너는 원래 리눅스 OS에 내장된 기술로, 단일 컴퓨터에서 프로세스들을 독립적으로 실행할 수 있는 기술임.
컨테이너는 Host OS 커널을 공유하기 때문에 가볍고 빠름.

기존 VM은 하이퍼바이저라는 소프트웨어 위에 OS를 추가로 실행해야하는데, 컨테이너 기술은 OS 커널과 컨테이너를 연결해주는 컨테이너 엔진(도커)만 있으면 됨.
→ 그러나, 컨테이너는 실제로 격리된 환경이 아닌, Host OS를 바라보는 가상으로 격리된 프로세스이기때문에, Host OS 커널에 장애가 발생하면 영향을 받을 수 밖에 없기때문에 보안적으로 취약하다는 문제가 있음.

⇒ 컨테이너 기술은 VM과 달리, Guest OS를 가지지 않기때문에 상대적으로 가볍고 빠름.





도커 (Docker)


도커는 컨테이너를 실행하기 위한 컨테이너 엔진임.

도커의 ‘컨테이너
→ 컨테이너는 논리적으로 격리된 프로세스를 의미

도커의 ‘이미지
→ 컨테이너를 실행하기 위한 정보 (소스코드, 라이브러리) 를 의미

⇒ 도커는 컨테이너 기술을 쉽게 실행하고 관리할 수 있도록 돕는 오픈소스 플랫폼.

'Infra & Tools > CI & CD' 카테고리의 다른 글

배포란 ?  (0) 2022.06.02
모놀리스와 마이크로서비스  (0) 2022.06.02
CI & CD 에 대해 알아보자.  (0) 2020.07.26