가상화 기술이란, 하나의 물리적 하드웨어 및 리소스를 가상으로 분할함으로써 가상 컴퓨터를 생성하는 기술이다.
# 서버
- 서버는 클라이언트에게 요청받은 무엇인가를 제공하는 것이다.
- 서버는 물리적 하드웨어 환경을 칭할수도, 논리적 소프트웨어 환경을 칭할수도 있다.
- 서버는 클라이언트의 요청을 수행할 때 물리적 하드웨어의 리소스를 사용한다.
# 엔터프라이즈 서버 운영
- 기업에서 주로 운영하는 서버는 3개로 구성된다.
- WEB: 기업의 서비스 또는 솔루션을 제공하는 웹페이지
- WAS: 기업의 서비스 또는 솔루션을 구동하는 서버
- DB: 그룹웨어나 외부 서비스와 연동하고 데이터를 저장하는 DB 서버
# 엔터프라이즈 서버 운영방식
- 서버 운영방식에는 3가지가 존재한다.
- 베어메탈: 하나의 물리적 환경을 서버로 사용하고, 그 위에 운영체제 및 모든 애플리케이션을 설치, 운영한다.
- 하이퍼바이저: 물리적환경을 논리적으로 분할하고, 분할된 서버에 각각의 애플리케이션을 운영한다.
- 컨테이너: 물리적환경은 공유하지만, 커널로 리소스를 제어함으로써 컨테이너화 시킨 서버에 애플리케이션을 운영한다.
# 베어메탈 vs 하이퍼바이저 vs 컨테이너
- 베어메탈:
- 가상화 계층 없이 하드웨어의 모든 리소스를 애플리케이션이 직접 접근하면서 성능 손실이 발생하지 않는다.
- 주로 단일 애플리케이션을 사용할 때 사용하며, 고성능 수행에 적합하다.
- 리소스 스케일링이 어렵고 확장성이 떨어진다.
- 다중 애플리케이션을 실행할 경우 소프트웨어 간 간섭 문제가 발생할 수 있다.
- 하이퍼바이저:
- 물리적 환경을 분할하고 격리시킨 가상화 기술이다.
- 리소스를 분할하고, 실행 환경 자체가 격리되기때문에 애플리케이션이 사용하는 리소스는 할당받은 한도 내에서만 사용된다.
- 격리된 환경에서 실행되는 애플리케이션 간 간섭 또는 영향이 없다.
- 호스트 OS와 다른 게스트OS를 가질 수 있으며,
게스트OS의 커널이 호스트OS의 커널에 system call을 날림으로써 리소스를 사용하게 된다. - 이런 커널 간 통신 리드타임으로 인해 호스트OS 위에서 구동하는 애플리케이션의 속도는 느려진다.
- 컨테이너:
- 하이퍼바이저는 리소스를 분할하고 게스트OS 및 각각의 커널을 갖는 반면,
컨테이너는 호스트OS와 그 커널 하나를 모든 가상환경이 공유하도록 하는 기술이다. - 즉, 컨테이너는 게스트OS가 없으며 호스트OS의 커널을 모든 컨테이너가 사용한다.
- 컨테이너는 호스트OS의 커널에 system call을 날려 리소스를 자체적으로 분할, 격리해 사용한다.
- 따라서, 하이퍼바이저와 다르게 커널간 통신의 리드타임이 발생하지 않고 오버헤드가 적다
- 하이퍼바이저는 리소스를 분할하고 게스트OS 및 각각의 커널을 갖는 반면,
반응형
'Tools > Docker' 카테고리의 다른 글
<Docker> 이미지 빌드 지시어 (1) | 2024.10.14 |
---|---|
<Docker> 이미지 커밋과 빌드 (3) | 2024.10.14 |
<Docker> 레이어 (0) | 2024.10.12 |
<Docker> 이미지 (0) | 2024.07.24 |
<Docker> 도커 아키텍처 (0) | 2024.07.22 |