개요
- 정의
- 시스템의 나머지 부분과 분리된 1개 이상의 프로세스 세트 - 배경
- LXC(LinuX Container)부터 시작
- LXC는 단일 머신에 여러 개 독립 리눅스 커널 컨테이너 실행을 위한 OS레벨의 가상화 기법 - 기능
- 전통적 테스트 환경 복제에 의존하는 개발 파이프라인보다 더 빠르고 편함
- 네트워크, 스토리지, 보안 등 서로 다른 환경으로 프로그램 실행에 각종 오류 발생
- 다른 환경으로 이동시 안정적으로 실행하기 위한 개념 - 하이퍼바이저 기반 가상화 기술을 대체하여 각광받음
- 컨테이너 이미지 배포가 새로운 운영체제 설치보다 훨씬 간편 / 비용이 저렴
- Guest OS가 필요한 하이퍼바이저와 달리, 컨테이너는 운영체제 없이 어플리케이션 실행에 필요한 모든 파일만 패키징한 형태
- 전통적 테스트 환경 복제에 의존하는 개발 파이프라인보다 더 빠르고 편함
컨테이너 장점/단점
- 경량화
- 하드웨어 레벨의 가상화인 VM과 달리 Guest OS와 하이퍼바이저가 없는 OS 레벨 가상화 구조
- OS가 포함되지 않아 수십MB에 불과
- 운영체제 부팅이 필요하지 않아 서비스 시작 시간도 빠름
- 가벼우므로 컨테이너에 대한 복제/배포가 용이
- 컴퓨팅 자원
- 컨테이너는 하나의 애플리케이션과 비슷한 수준의 자원만 필요
- 따라서, VM에 비해 시스템 성능 부하가 적은 편
- 실행중인 서비스에 자원 조절이 용이
- CPU 사용량 등을 판단하여 자동으로 자원을 확장/축소 가능
- 안정성
- 컨테이너는 Host OS 커널을 공유하는 구조
- 하나의 컨테이너에서 발생한 장애가 다른 컨테이너에 영향을 줄 수 있음
https://www.redhat.com/ko/topics/containers/whats-a-linux-container
https://m.blog.naver.com/shakey7/221600166205
'데이터 엔지니어링 > 클라우드' 카테고리의 다른 글
[클라우드] Service Discovery (0) | 2022.05.10 |
---|---|
[클라우드] 마이크로서비스 아키텍처 (0) | 2022.05.10 |
[클라우드] 클라우드 컴퓨팅 구분 (0) | 2022.05.08 |
[클라우드] 클라우드 인프라 (0) | 2022.04.07 |
[클라우드] 클라우드의 정의 및 구성요소 (0) | 2022.04.07 |