컨테이너, 애플리케이션 배포·라이프 사이클 관리 복잡성 낮춰
상태바
컨테이너, 애플리케이션 배포·라이프 사이클 관리 복잡성 낮춰
  • 윤현기 기자
  • 승인 2018.01.12 08:31
  • 댓글 0
이 기사를 공유합니다

소프트웨어 패키징 통해 빠른 설치·뛰어난 이식성 제공 … 클라우드 핵심 기능 차지

2018년 이후 가장 수요가 높을 것으로 예측되는 기술로는 인공지능(AI), 디지털 보안, 사물인터넷(IoT) 등이 꼽힌다. 특히 인공지능은 디지털 보안과 사물인터넷과 관련한 문제 해결에 핵심적인 역할을 수행할 전망으로 다양한 분야에 접목되면서 인공지능에 대한 투자가 빠르게 늘고 있다. 뿐만 아니라 소프트웨어 정의, 클라우드, 5G 등 IT 인프라의 정의를 새롭게 써내려가고 있는 상황으로 2018년은 4차 산업혁명을 위한 기반 인프라가 본격적으로 조성되는 한해가 될 전망이다. 특히 가트너는 기업의 80%가 2021년까지 혁신을 위한 경쟁에서 도태되거나 자체적 혁신에 실패함으로써 시장 점유율의 약 10%를 잃을 것으로 예상하는 등 기업의 디지털 트렌스포이션은 선택이 아닌 필수가 됐다. 기업의 디지털 경제 시대 생존법이자 성장동력으로 주목받는 새로운 기술과 트렌드를 짚어본다. <편집자>

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

하드웨어 기반의 가상화가 가상머신(VM)을 이용해 게스트(Guest) OS를 설치하고 구동해야 했던 것과 달리 컨테이너는 호스트(Host) OS를 그대로 이용하면서 애플리케이션과 라이브러리만 가상화하기 때문에 VM 대비 가벼운 것이 특징이다.

이로 인해 하이퍼바이저나 게스트 OS로 인한 오버헤드가 없으며, 컨테이너가 구동되면 그 안에 담긴 애플리케이션이 바로 시작되기 때문에 빠른 서비스 제공이 가능하다. 또한 인스턴스 증가 시 추가적인 설정을 필요로 하지 않는다는 것도 강점이다.

클라우드 확산으로 컨테이너 기술 각광
컨테이너는 물건들을 이동시킬 때 사용하는 철제 포장 용기 ‘컨테이너’와 비슷한 역할을 한다. 각 컨테이너 안에는 다양한 물품들을 실을 수 있으며, 규격화 돼 있어 내부 물품 종류에 상관없이 선박이나 기차, 차량 등 다양한 운송 수단을 통해 옮겨 실을 수 있는 것과 마찬가지다.

컴퓨팅 환경에서도 컨테이너를 이용하면 빠른 개발 환경을 구축할 수 있다는 것이 장점이다. 용량이 작기에 배포가 쉬우며, 여러 대의 호스트에 포팅하는 것도 쉽다. 또한 애플리케이션 실행에 필요한 파일과 라이브러리만 패키징하는 방식이기에 뛰어난 이식성을 자랑한다.

컨테이너를 구현하는 기술에는 여러 가지가 있지만, 가장 대표적인 것이 도커(Docker)다. 도커는 게스트 OS를 설치하지 않는 것과 더불어 하드웨어 가상화 계층이 없기에 메모리 접근이나 파일 시스템, 네트워크 전송 속도가 VM에 비해 빠르다. 아울러 호스트와 도커 컨테이너 사이의 성능 차이가 크지 않다는 특징도 있다.

도커 컨테이너, 클라우드 환경에서 핵심 기능 수행
도커가 가진 주요 특징 중 하나는 이미지 생성과 배포·관리에 특화돼 있다는 점이다. 이미지 버전 관리도 제공하며, 중앙 저장소에 이미지를 올리고 받을 수도 있다.

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

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

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

자동화 통한 속도 향상
도커와 같은 컨테이너 기술은 필요한 애플리케이션과 라이브러리를 컨테이너에 담아 쉽게 이동시키고 어디서든지 간단하게 실행할 수 있는 도구와 환경을 제공했다.

그러나 기업에서 단순히 하나의 컨테이너만 활용하는 것은 아니며, 엔터프라이즈급의 규모일 경우 여러 대의 호스트에서 수많은 컨테이너들이 이용된다. 엔드 유저에게 서비스가 이뤄지려면 이들이 서로 호출되고 엮이는 과정이 필요하지만, 수가 많으면 많을수록 사람이 이를 관리하는 것은 불가능해진다.

이 같은 문제를 해결하기 위해 등장한 것이 쿠버네티스(Kubernetes)다. 쿠버네티스는 구글이 도커 컨테이너를 관리하기 위해 개발했으며, 오픈소스 프로젝트를 통해 공개했다.

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



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