일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- java
- 알고리즘
- 웹 서버
- 유클리드 호제법
- PaaS
- 11004
- aws
- 온프레미스
- 프로그래머스
- 문자열 숫자 변환
- 짝수
- level1
- 최대공약수
- INT
- parseInt
- algorithm
- 리스트
- IaaS
- 프로젝트 생성
- IntelliJ
- Python
- valueof
- 2진수
- 최대공배수
- 데이터타입
- 백준
- SaaS
- 자료형
- 11652
- 홀수
- Today
- Total
Ga0Lee
[Devops] Containers 컨테이너란? - Containers vs VM 본문
VM (Virtual Machine)
VM은 하드웨어 기반의 여러 게스트 운영 체제로, 하이퍼바이저를 통해 에뮬레이션 된다.
VM은 하이퍼바이저 위에서 필요한 만큼의 자원이 할당된 가상의 컴퓨터로 각각의 VM은 서로간의 존재를 알 수 없으며 커널을 포함한 OS는 독립적으로 실행된다. 모놀리식 워크로드 패키징에 사용되는 기존 방식인 단일 컨테이너보다 훨씬 더 많은 작업을 실행할 수 있다. 하지만 시스템 구조적으로 봤을 때 각각의 OS를 띄워야 하기 때문에 Container와 비교했을 때 더 무거운 편이라고 할 수 있다. 또한 OS, 애플리케이션, 라이브러리에 의존하게 되어 이식성이 크게 저하된다.
VM은 다음 용도에 적합하다.
- 기존, 레거시 및 모놀리식 워크로드 수용
- 위험한 개발 사이클 분리
- 인프라 리소스 프로비저닝
- 다른 OS에서 또 다른 OS 실행
Container
애플리케이션 수준 구성이며 커널 하나를 공유하는 여러 가상 환경을 에뮬레이션한다.
Container는 별도의 격리된 환경에서 프로세스를 실행한다. Host 측에선 다른 프로세스와 다를 것이 없으나 Container 내부에서는 Host나 다른 Container의 존재를 알 수 없으므로 VM처럼 나름의 격리가 이루어진다고 볼 수 있다. 보통 마이크로서비스 단위로 구성되며, 실행에 필요한 모든 것(라이브러리, 파일, 환경변수 등)을 담고 있는 Image로부터 생성된다.
Container은 다음 용도에 적합하다.
- 클라우드 네이티브 애플리케이션 빌드
- 마이크로서비스 패키지
- DevOps 또는 CI/CD Practice 촉진
- 동일한 OS를 공유하는 다양한 IT 설치 공간에서 확장 가능한 IT 프로젝트로 전환
에뮬레이션(Emulation)이란?
하드웨어 리소스의 동작을 소프트웨어로 대신하는 가상화 방식
'DevOps' 카테고리의 다른 글
[Devops] GitOps CI/CD 구축하기(2) - Docker 설치 (0) | 2024.01.04 |
---|---|
[Devops] GitOps CI/CD 구축하기(1) - EC2 인스턴스 생성, 탄력적 IP 주소 할당 (1) | 2024.01.02 |
[Devops] Kubernetes 쿠버네티스란? (2) | 2023.08.23 |