컨테이너란 무엇입니까?

hi·2023년 1월 21일
0

CNA

목록 보기
2/4
post-thumbnail

컨테이너 이미지란 무엇입니까?

일반적으로 클라우드 네이티브한 애플리케이션은 컨테이너 이미지로 패키징되고 오케스트레이션에 의해 관리됩니다. 컨테이너는 컨테이너 전용 파일 시스템을 통해 컨테이너 이미지를 제공받으며, 컨테이너 이미지는 애플리케이션 코드, 의존성 라이브러리, 실행 환경 등 애플리케이션 실행에 필요한 모든 것을 가지고 있는 이진 데이터입니다. 컨테이너 이미지는 수정이 불가능하며 컨테이너 레지스트리 (ex, Docker Hub)와 같은 스토어에 보관할 수 있습니다. 컨테이너는 컨테이너 이미지를 통해 컨테이너 인스턴스 형태로 실행되며 이는 컨테이너 런타임 엔진에서 실행됩니다.


VM과 컨테이너에는 어떤 차이점이 있습니까?

VM은 하이퍼바이저를 통해 호스트의 리소스 (ex, CPU, Memory)를 사용하여 게스트 운영체제를 실행합니다. 반면 컨테이너는 컨테이너 런타임 엔진에서 실행하며 호스트의 커널과 프로세서, 메모리를 다른 컨테이너와 함께 사용합니다. 따라서 컨테이너 환경에서 실행되는 애플리케이션은 VM환경에서 처럼 독립적이며, VM에 비해 컴퓨팅 자원을 더 효율적으로 사용할 수 있으며, 실행에 필요한 런타임 환경을 더 작게 만들고 불필요한 실행 환경 설정 등을 제거할 수 있습니다. 또한 VM에 비해 훨씬 가볍게 실행시킬 수 있습니다. 현재 이런 컨테이너 환경을 제공하는 플랫폼은 도커 Docker라고 할 수 있습니다.


컨테이너화란 무엇입니까?

마이크로서비스나 애플리케이션을 컨테이너 환경에서 실행할 수 있도록 만드는 것을 컨테이너화 (Containerization)라고 합니다. 컨테이너화를 통해 마이크로서비스는 좀 더 옮기기 쉽고 여러 환경에서 동일하게 실행되도록 만들 수 있습니다. 이를 이식성이라고도 부릅니다. 이는 벤더에 종속되어 발생할 수 있는 리스크를 줄이고 신속한 배포를 가능케 합니다. 따라서 컨테이너는 마이크로서비스를 캡슐화하여 독립적이고 자율적이며 확장성 있는 서비스로 만드는 핵심 기술입니다. 컨테이너화된 마이크로서비스는 다른 마이크로서비스를 방해하지 않고 다른 서비스로 대체하거나 업그레이드할 수 있습니다. 하지만 마이크로서비스를 컨테이너화해서 컨테이너 환경에서 실행하는 것은 클라우드 네이티브 애플리케이션의 라이프사이클 일부분에 불과하기에 실행되는 컨테이너를 관리해줄 오케스트레이션이 필요합니다. 다음 글에선 쿠버네티스라 일컬어지는 컨테이너 오케스트레이션의 개념에 대해 다루어 보도록 하겠습니다.

0개의 댓글