본문 바로가기
자료수집/IT 기술분석

가상화와 리눅스 컨테이너

by 3604 2023. 7. 17.
728x90

출처: https://ceo-uk22.tistory.com/105

가상화란

전통적으로 하드웨어에 바인딩된 리소스를 사용하여 유용한 IT 서비스를 만들 수 있게 해주는 기술

사용자 또는 환경에 기능을 분산하여 물리적 시스템의 전체 용량을 사용

 

 

가상화를 사용하면, 하드웨어의 많은 자원을 효율적으로 사용가능하다.

 

가상화 작업을 통해, 하나의 하드웨어를 통해서 2개 이상 (여러 개)의 서버를 분할하여
관리할 수 있다.

 

 

가상화의 역사

가상화의 역사

현재는 클라우드 컴퓨팅으로 가상화가 발달되어 있다.

클라우드 컴퓨팅은 클라우드 서비스로, 무선으로 다른 곳에 위치한 서버에 접근하여 서버를 사용할 수 있게 해준다.

대표적으로 AWS, Naver Cloud, Google Cloud 등등이 있다.

 

 

하이퍼바이저 - 가상화의 핵심

하이퍼바이저는 가상 머신을 생성하고, 실행하는 소프트웨어이다.

메모리나 프로세싱과 같은 리소스를 (하드웨어 자원을) 가상으로 공유하여 하나의 호스트 컴퓨터에서 여러 게스트 가상 머신을 지원한다.

 

하이퍼바이저를 통해 가상화를 진행하고,
하드웨어를 통해 여러 게스트 가상머신을 만들어준다. - 정확한 개념이 아니기에, 참고만 하는 걸 권장한다.

 

 

하이퍼바이저의 종류

 

Type1. 하이퍼바이저

경량의 운영 체제처럼 작동하며 호스트의 하드웨어에서 직접 실행한다.

 

 

 

Type2. 하이퍼바이저

다른 컴퓨터 프로그램처럼 운영 체제에서 소프트웨어 계층으로 실행

 

 

리눅스 컨테이너란

어플리케이션을 개발이 완료되고, 공유 호스트 서버에 올릴 때 (배포할 때는)

리눅스 컨테이너를 만들어서 어플리케이션 실행에 필요한 라이브러리, 실행 파일들을 Push한다.

그렇게되면, 리눅스 컨테이너로 서버에 Push할 때의 리눅스 이미지로 고정하여 서버의 가상 머신으로 구동이 되게 된다.

 

왼쪽은 리눅스 컨테이너로 가상 머신을 구동 중 & 오른쪽은 하이퍼바이저를 통해 별도의 가상머신들을 구동 중

 

리눅스 컨테이너를 통해 어플리케이션 실행 파일의 모듈 버전 불일치 에러를 극복할 수 있다.

예를 들어, 2003년에 만든 어플리케이션을 호스트 OS의 공유 가상머신으로 구동한다면,
공유 가상머신의 리눅스 이미지를 업데이트하면, 2003년에 만든 어플리케이션은 현재 작동할 수 없게되어진다.

요약해서,
리눅스 컨테이너를 통해 어플리케이션을 하나의 리눅스 이미지로 구현되도록 묶어
서버에 호스트 서버에 올려다고 생각하면 된다. - 정확한 개념이 아니기에, 참고만하는 걸 권장한다.

혹시라도, 개념에 대한 오개념이 있다면, 댓글로 남겨주시면 감사하겠습니다.

 

 

 

 

 

# 리눅스 컨테이너를 만드는 툴 - Docker

Docker를 통해 호스트 서버에 리눅스 컨테이너를 생성할 수 있도록 해준다.

리눅스 컨테이너를 통해 하나의 운영체제에 여러 번의 가상화를 진행하는데,

이때 리눅스 컨테이너의 차이점은 하나의 가상머신은 하나의 어플리케이션만 작동한다.

 

 

(AWS EC2 서버도 Docker를 사용해 리눅스 컨테이너를 생성해준다.)

 

Amazon ECS에서 사용할 컨테이너 이미지 생성 - Amazon Elastic Container Service

Amazon ECS에서 사용할 컨테이너 이미지 생성 Amazon ECS는 작업 정의에 Docker 이미지를 사용하여 컨테이너를 시작합니다. Docker는 사용자가 컨테이너에서 분산 애플리케이션을 구축, 실행, 테스트 및

docs.aws.amazon.com

임베디드 가상화

 

# 자동차 내부의 임베디드는 다음과 같이 가상화되어 실현된다.

자동차 내부에서 지도 및 길찾기는 임베디드 가상화를 통해 진행된다.

 

 

 

728x90
반응형