컨테이너, 단순한 리눅스 프로세스가 아니라고?

by DD
3주 전
조회수 22

OCI(Open Container Initiative) 표준에 따르면, 컨테이너는 격리된 실행 환경이며, VM도 OCI 컨테이너가 될 수 있음

리눅스 컨테이너(Linux Container)가 널리 사용되지만, 보안 강화를 위해 VM 기반 컨테이너(VM-based Container)가 주목받고 있음

FirecrackergVisor는 VM 컨테이너의 경량화 및 보안 강화를 위한 기술적 시도임

커뮤니티에서는 컨테이너의 정의와 구현 방식에 대한 다양한 의견이 존재하며, 특히 I/O 성능과 VM 컨테이너의 활용에 대한 관심이 높음

OCI 표준의 중요성

본문은 OCI(Open Container Initiative) 표준이 컨테이너 기술의 상호 운용성(Interoperability)을 보장하는 핵심 요소임을 강조한다. OCI는 컨테이너 이미지 형식과 런타임에 대한 표준을 정의하여, 다양한 환경에서 컨테이너의 이식성(Portability)을 확보한다. 특히, OCI 표준은 Docker를 비롯한 여러 컨테이너 런타임의 기반이 되며, VM 기반 컨테이너(VM-based Container)와 같은 새로운 기술의 등장을 가능하게 한다.

리눅스 컨테이너와 VM 컨테이너의 비교

리눅스 컨테이너는 네임스페이스(Namespace)와 cgroup을 사용하여 프로세스를 격리하지만, VM 컨테이너는 하이퍼바이저(Hypervisor)를 통해 하드웨어를 가상화하여 더 강력한 격리(Isolation)를 제공한다. VM 기반 컨테이너(VM-based Container)는 보안이 중요한 워크로드에 적합하며, Firecracker와 gVisor와 같은 기술을 통해 경량화 및 성능 개선을 시도하고 있다. 하지만, VM 컨테이너는 리눅스 컨테이너에 비해 시작 시간(Startup Time)이 길고, 자원 사용량이 많다는 단점이 있다.

Firecracker와 gVisor의 기술적 특징

Firecracker는 마이크로VM(MicroVM)을 생성하여 서버리스(Serverless) 환경에서 보안(Security)과 성능을 동시에 잡으려는 시도이다. Firecracker는 KVM(Kernel-based Virtual Machine)을 사용하여 경량 VM을 생성하며, Kata Containers와 같은 OCI 런타임과 통합되어 사용된다. gVisor는 사용자 공간에서 리눅스 커널의 일부를 에뮬레이션하여 격리(Isolation)를 제공하는 OCI 런타임이다. gVisor는 runsc 런타임을 통해 도커(Docker) 및 쿠버네티스(Kubernetes)와 통합되어 사용될 수 있으며, Firecracker에 비해 호환성 문제가 있을 수 있다.

컨테이너 I/O 성능과 VM 컨테이너의 역할

댓글에서는 컨테이너의 I/O 성능이 중요한 요소임을 지적하며, VM 컨테이너가 I/O 병목 현상을 해결하는 데 기여할 수 있음을 시사한다. VM 기반 컨테이너(VM-based Container)는 호스트 OS의 I/O 자원을 직접 사용하지 않고, 가상화된 하드웨어를 통해 I/O를 처리하므로, 보안을 강화하면서도 I/O 성능을 최적화할 수 있다. 특히, 데이터 격리 아키텍처(Data Isolation Architecture)가 필요한 경우 VM 컨테이너가 효과적인 선택이 될 수 있다.

Containers Aren’t Just Linux Processes