클라우드 확산 따라 주목받는 ‘컨테이너’
상태바
클라우드 확산 따라 주목받는 ‘컨테이너’
  • 윤현기 기자
  • 승인 2019.01.11 08:32
  • 댓글 0
이 기사를 공유합니다

설치 OS 영향 없이 동일한 환경 이용…민첩한 서비스 개발·배포 가능

클라우드가 확산됨에 따라 컨테이너(Container) 기술이 주목받고 있다. 가상화 기술의 일종인 컨테이너는 애플리케이션 실행에 필요한 파일과 라이브러리(lib)를 패키지화한 후, 필요할 때마다 이를 실행시켜 동일한 환경을 이용할 수 있도록 하는 역할을 한다.

하드웨어를 기반으로 하는 서버 가상화 등은 가상머신(VM)을 이용해 게스트(Guest)OS를 설치하고 애플리케이션을 구동해야 했던 것과 달리, 컨테이너는 OS에 영향 받지 않고 실행 파일과 라이브러리만 가상화하기 때문에 VM 대비 가볍다는 장점이 있다.

이로 인해 하이퍼바이저(Hypervisor)나 게스트OS로 인한 오버헤드(Overhead)가 없으며, 컨테이너를 구동하면 안에 담긴 애플리케이션이 바로 시작되기 때문에 빠른 서비스 제공이 가능하다. 또한 인스턴스 증가 시 추가적인 설정을 필요로 하지 않는다는 것도 강점이다. 이처럼 컨테이너 기술은 민첩한 서비스 개발·배포를 위한 클라우드 환경에 적합하기 때문에, 클라우드가 성장하면서 빠르게 확산되고 있다.

민첩한 서비스 개발·배포 지원
컨테이너는 제품 수출입 시에 활용하는 철제 포장 용기인 ‘컨테이너’와 역할이 같다. 애플리케이션 실행에 필요한 파일과 라이브러리 등을 간편하게 패키지화할 수 있으며, 자유롭게 이동시킬 수 있다. 이식성도 뛰어나다.

개발과 배포에 대한 장벽이 사라진 만큼 빠른 개발·서비스 환경을 구축할 수 있다. 패키지에 OS가 포함되지 않기에 크기가 작으며, 여러 대의 호스트에 포팅하는 것도 용이하다.

컨테이너를 구현하는 기술에는 여러 가지가 있지만, 가장 대표적인 것이 도커(Docker)다. 도커는 이미지 생성과 배포·관리에 특화된 기능을 제공한다. 이미지 버전 관리도 제공하며, 중앙 저장소에 이미지를 올리고 받을 수도 있다.

이는 서비스 운영 환경에도 혁신을 가져왔다. 일일이 서버에 사용 환경을 설정하는 것 대신, 운영 환경을 이미지로 생성해 서버에 배포하는 방식을 활용할 수 있게 됐기 때문이다. 서비스가 업데이트 됐을 시에도 운영 환경 자체를 변경하지 않고, 이미지를 새로 생성해 배포할 수 있어 간편하다.

이 같은 특징으로 인해 도커 컨테이너는 클라우드 환경에서 핵심적인 기능으로 자리 잡게 됐으며, 아마존웹서비스(AWS), 마이크로소프트 애저(MS Azure), 구글 클라우드 플랫폼(GCP), IBM 클라우드 등 주요 퍼블릭 클라우드 서비스 사업자들도 공식적으로 도커를 지원한다.

국내 기업들도 컨테이너 기술 개발에 한창이다. SK(주) C&C는 클라우드 컨테이너 서비스 ‘클라우드 제트 서비스 플랫폼(Cloud Z Service Platform)’을 출시했으며, 나무기술은 컨테이너 기반의 멀티 클라우드 관리 플랫폼 ‘칵테일’을 통해 국내외 시장 공략에 적극 나서고 있다. 티맥스오에스는 컨테이너 기반 가상화를 지원하는 클라우드 플랫폼 ‘프로존’을 선보였다.

▲ 쿠버네티스 아키텍처

관리 자동화 방안 고안해야
컨테이너 기술에도 단점은 존재한다. 호스트 운영체제의 커널을 공유하기 때문에 호스트 운영체제에 실행 환경이 묶이는 것과 생성된 컨테이너 수가 작을 경우 운영자가 관리하기 쉽지만 그 수가 많아질 경우 운영자가 일일이 컨트롤하기 어렵다는 것이다. 이때 컨테이너 관리·오케스트레이션 도구를 별도로 이용하기도 한다.

도커와 같은 컨테이너 기술은 필요한 애플리케이션과 라이브러리를 컨테이너에 담아 쉽게 이동시키고 어디서든지 간단하게 실행할 수 있는 도구와 환경을 제공했다. 그러나 기업에서 단순히 하나의 컨테이너만 활용하는 것은 아니며, 엔터프라이즈급의 규모일 경우 여러 대의 호스트에서 수많은 컨테이너들이 이용된다.

엔드 유저에게 서비스가 이뤄지려면 이들이 서로 호출되고 엮이는 과정이 필요하지만, 수가 많으면 많을수록 사람이 이를 관리하는 것은 불가능해진다. 이 같은 문제를 해결하기 위해 등장한 것이 쿠버네티스(Kubernetes)다.

쿠버네티스는 구글이 도커 컨테이너를 관리하기 위해 개발했으며, 오픈소스로 공개한 기술이다. 쿠버네티스는 멀티 호스트상의 멀티 컨테이너를 조직화하고 연결하기 위한 스케줄링, 셀프 힐링, 오토 스케일링, 서비스 디스커버리, 로드밸런싱 등의 역할을 자동으로 처리해줌으로써 빠른 애플리케이션 서비스가 이뤄질 수 있도록 돕는다.



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.