[마이크로서비스 취약성 최소화] 컨테이너 샌드박싱: Kata 컨테이너

IMKUNYOUNG·2024년 6월 27일
0

CKS

목록 보기
54/70
post-thumbnail

컨테이너 기술은 애플리케이션 배포와 운영에서 큰 혁신을 가져왔지만, 보안과 격리 문제는 여전히 해결해야 할 과제입니다. 이에 대한 해결책 중 하나로, Kata 컨테이너가 주목받고 있습니다. 이번 글에서는 Kata 컨테이너가 어떻게 컨테이너 샌드박싱을 달성하는지, 그리고 gVisor와 비교하여 어떤 접근 방식을 취하는지 살펴보겠습니다.

가상 머신을 활용한 컨테이너 격리

우리는 가상 머신(VM)이 자원을 격리하는 데 탁월하다는 것을 이미 알고 있습니다. 그렇다면 컨테이너를 격리하기 위해 가상 머신을 사용하면 어떨까요? 바로 이 아이디어가 Kata 컨테이너의 핵심입니다. Kata는 각 컨테이너를 별도의 가상 머신에 설치하여 격리합니다.

이렇게 하면 각 컨테이너는 내부에서 자체 커널을 실행하게 됩니다. gVisor처럼, 이는 모든 컨테이너 애플리케이션이 동일한 운영 체제 커널과 직접 통신할 때 발생하는 문제를 제거합니다. 이제 각 컨테이너는 자신의 작은 컨테이너와만 상호작용합니다. 만약 그것이 충돌하거나 오용되더라도, 시스템 전체가 다운되는 것이 아니라 그 특정 컨테이너만 문제가 발생하게 됩니다.

성능 및 자원에 대한 우려

여기서 당연한 질문이 생깁니다. 매번 컨테이너를 배포할 때마다 가상 머신을 생성하는 데 상당한 시간이 걸리지 않을까요? 그리고 성능에 대한 우려가 있지 않을까요?

Kata가 생성하는 가상 머신은 경량화되어 있으며 성능에 중점을 둡니다. 하지만 성능이 최적화되었더라도, 가상 머신의 추가적인 격리로 인해 전통적인 컨테이너에 비해 약간의 성능 페널티가 있을 것입니다. 이제 각각의 컨테이너는 약간 더 많은 메모리와 컴퓨팅 자원을 필요로 합니다.

하드웨어 가상화 지원 필요성

Kata 컨테이너의 또 다른 중요한 점은 하드웨어 가상화 지원이 필요하다는 것입니다. 이는 일반적인 클라우드 서비스 제공자에서 실행할 수 없을 수도 있다는 것을 의미합니다. 클라우드 Compute 인스턴스는 이미 가상 머신입니다.

만약 Kata를 사용하려고 한다면, 기본적으로 가상 머신 안에 또 다른 가상 머신을 실행하려는 것입니다. 이것을 중첩 가상화라고 합니다. 이는 대부분의 CSP에서 지원하지 않습니다. 몇 가지 예외가 있습니다. 예를 들어, Google Cloud는 중첩 가상화를 지원하지만 수동으로 활성화해야 합니다.

또한, 지원이 되더라도 중첩 가상화의 성능은 일반적으로 매우 저조합니다. 물론, 전용 물리 서버나 클라우드 상의 베어 메탈 서버를 사용할 수 있다면, 이러한 성능 문제 없이 Kata 컨테이너를 실행할 수 있습니다.

마무리

Kata 컨테이너는 컨테이너 보안과 격리를 향상시키기 위한 혁신적인 접근 방식을 제공합니다. 각 컨테이너를 별도의 가상 머신에 설치함으로써, 보안과 안정성을 크게 향상시킬 수 있습니다. 그러나 성능 페널티와 하드웨어 가상화 지원 필요성은 고려해야 할 중요한 요소입니다. 적절한 인프라를 갖추고 있다면, Kata 컨테이너는 매우 강력한 도구가 될 수 있습니다.

0개의 댓글