쿠버네티스는 '대규모 인프라' 적합…도커스웜은 '중소 인프라' 안성맞춤
클라우드 네이티브(Cloud-native)의 핵심은 컨테이너를 사용해 애플리케이션의 독립적 실행이 가능한 환경을 구축하고 이를 통해 CI/CD(Continuous Integration/Continuous Delivery) 개발방법론을 적용하는 것이다. 오늘날 이러한 환경을 범용적으로 갖출 수 있도록 한 일등공신은 역시 도커(docker)다.
한 호스트에서 컨테이너를 실행시키는 데는 도커가 매우 적합한 솔루션이다. 다만 복수의 호스트에서 컨테이너를 실행하고 관리하려면 도커만으로는 아무래도 수작업이 많아진다. 이미지 레지스트리도 호스트의 로컬 디스크에 둘 수 없고 공용으로 운영해야 한다. 특정 호스트에 문제가 생겼을 때는 다른 호스트로 애플리케이션을 다시 배포해야 한다.
어떤 경우에는 호스트별 부하가 균등하지 않을 수도 있는데 이를 적절하게 관리해주지 않으면 컨테이너 클러스터 운영이 힘들어진다. 또한 서비스의 볼륨이 증가하게 되면 단일 호스트로 운영하는 것은 불가능하다. 제대로 서비스를 운영하려면 이런 문제들을 반드시 해결해야 한다.
다시 말해 하나의 호스트에서 컨테이너를 운영하는 것과 비교했을 때 복수의 호스트에서 컨테이너를 운영하려면 더 복잡하고 많은 기능이 필요하다. 이런 이슈들을 해소하기 위해 도커 스웜(docker swarm), 쿠버네티스, 아파치 메소스(Apache Mesos), 노마드(Nomad), 디에고(Diego) 등의 컨테이너 오케스트레이션 툴이 등장하기 시작했다.
현시점에서 이 시장을 선도하는 솔루션은 명백히 쿠버네티스라 할 수 있다. 아마존웹서비스(AWS), 마이크로소프트(MS) 등 글로벌 클라우드 서비스 공급자(CSP)들도 모두 관리형 쿠버네티스 서비스를 지원하고 있다. 컨테이너를 사용해보면 별도의 오케스트레이션 도구가 없는 상태에서 실제 서비스를 운영하기란 매우 불편하다는 것을 금방 깨닫게 된다.
사실 쿠버네티스는 구글 내부에서 사용하던 핵심 운영 요소 중 하나인 보그(Borg)에서 유래한 것이다. 개념과 구조의 상당 부분을 보그에서 가져왔다고 알려져 있다. 구글과 같은 IT 대기업 내부에서 인프라 운영에 사용할 정도이니 그 유용성과 효용은 이미 검증되었다고 볼 수 있을 것이다.
하지만 쿠버네티스 사용에는 큰 걸림돌이 있다. 강력한 만큼 복잡하다. 초반에는 개념을 잡는 것이 어려워 학습에 많은 시간이 걸린다는 점이다. 사실 쿠버네티스는 최소 수천에서 수만, 수십만에 이르는 대규모의 인프라를 효율적으로 운영하기 위해 고안된 솔루션이기 때문에 상대적으로 규모가 작은 스타트업이나 중소기업에는 불필요한 부분도 있다.
이에 비해 도커 스웜은 사용법이 좀 더 간단하다. 도커 엔진 자체에 통합되어 있어 도커만 설치되어 있으면 바로 사용할 수 있다. 서비스 규모가 크지 않아 여러 대, 혹은 수십 대 정도의 호스트로 운용할 계획이라면 쿠버네티스보다 도커 스웜이 좀 더 적합할 것이다.
특히 컨테이너 클러스터 설치와 운영에 투입할 인력이 부족하다면 더욱 그렇다. 기능 면에서는 쿠버네티스에 비해 다소 아쉬운 부분이 있으나, 작은 규모에서의 일반적 작업에는 크게 모자람이 없다. 만약 컨테이너 클러스터를 설치하기조차 어렵고 귀찮다면 CSP들이 제공하는 매니지드 컨테이너(Managed Container) 서비스를 사용할 수도 있다.
대표적으로 AWS의 ECS나 EKS를 들 수 있다. ECS는 AWS가 제공하는 고유의 서비스로, 컨테이너 클러스터를 직접 구축하지 않고도 콘솔에서의 작업 몇 번으로 바로 사용할 수 있어 매우 간편하다. EKS는 쿠버네티스가 필요하나 클러스터를 직접 구축하고 운용하고 싶지는 않은 고객을 위한 서비스다. 복잡한 설치나 설정 절차 없이 쿠버네티스 클러스터를 바로 생성하고 사용할 수 있어 운영자 부담을 대폭 줄여준다.
컨테이너는 그 자체로 많은 기능과 효용을 가지고 있으나 그 잠재력을 극대화하려면 적절한 오케스트레이션 도구가 반드시 필요하다. 현재 가장 각광받고 있는 것은 쿠버네티스이지만 모든 소비자에게 이 솔루션이 맞는다고 단정할 수는 없다. 각자의 상황과 서비스 규모, 운영 역량에 맞추어 적절한 솔루션을 선택하면 될 것이다.
<자료제공:클라우드 전문기업 케이아이엔엑스(KINX)> 노규남 CTO bardroh@kinx.net