grep

DevOps

컨테이너 서비스 소개

NHN

2020년 8월 12일

원문에서 보기 ↗

지난 6월 말, TOAST에서는 컨테이너 기반의 서비스 구축에 필요한 두 가지 상품을 출시하였습니다. 하나는 컨테이너 이미지를 개인화된 비공개 저장소를 통해 사용할 수 있도록 해주는 컨테이너 레지스트리 서비스이며, 또 하나는 컨테이너 운용을 위해 널리 사용되는 쿠버네티스를 만들어 주는 서비스입니다. 이 글에서는 두 상품을 소개하는 자리를 가져보려고 합니다.

컨테이너 레지스트리 서비스

컨테이너를 이용한 서비스 환경을 구축 및 운영하는 과정에 있어서 필요한 것 중 하나를 꼽으라면 컨테이너 이미지 저장소라고 할 수 있습니다. 컨테이너 레지스트리(보통 도커 레지스트리로 널리 알려져 있음)는 다양한 컨테이너 이미지들의 저장소(repository)들을 모아서 관리해 주는 서비스입니다.

컨테이너를 처음 접하게 되면, 각종 문서 등을 통해 소개되는 도커 허브(hub.docker.com)에서 다양한 이미지를 받아서 사용해 본 경험이 있을 겁니다. 도커 허브와 같은 공개 레지스트리를 이용하면 잘 알려진 애플리케이션들(예를 들어 nginx, redis 등)에 대한 이미지를 쉽게 찾아서 사용할 수 있는 장점이 있습니다. 하지만, 내가 만든 컨테이너 이미지를 이와 같은 공개 레지스트리에 저장하는 경우, 이는 다른 사람들에게도 노출될 수 있음을 의미합니다.

이렇게 개인(혹은 조직)이 만든 이미지가 공개적으로 노출되는 것을 피하고 싶은 경우, 비공개 레지스트리를 직접 구축해서 활용하는 방법도 있습니다. 하지만, 비공개 레지스트리를 직접 구축하는 경우 다음과 같은 여러 가지 고민거리가 발생하게 됩니다.

물론, 간단한 개발 환경에서 사용할 목적이라면 큰 고민 없이 아무 서버 한 대에 docker registry를 구동시키고, 로컬 파일 시스템에 그냥 저장되도록 하면 됩니다. 하지만, 실 서비스를 위한 개발 및 배포 환경에서의 사용이 목적이라면, 그렇게 단순하게 접근할 수만은 없는 문제가 됩니다.

이런 귀찮은 부분을 해결하는 데 도움이 되도록 TOAST에서는 컨테이너 레지스트리 서비스를 제공합니다. 컨테이너 레지스트리 서비스를 통해 사용자는 자신만의 비공개 레지스트리를 만들어서 자유롭게 이용할 수 있습니다.

TOAST 컨테이너 레지스트리 서비스의 주요 특징은 다음과 같습니다.

[참고]
사용자의 비공개 레지스트리는 TOAST 환경(예를 들어 TOAST 인스턴스)에서만 사용 가능한 것이 아닙니다.
인터넷 이용이 가능한 환경에서는 어디서든 사용 가능합니다.

아래의 그림은 사용자가 TOAST 인스턴스에서 생성한 이미지를 레지스트리에 이미지를 저장하고, 이를 다시 다른 곳(예를 들어 AWS)의 인스턴스에서 가져다 사용하는 과정을 보여줍니다. 1.png

TOAST 컨테이너 레지스트리 사용에 대한 구체적인 내용은 사용 가이드(링크)를 참고해 주세요.

쿠버네티스 서비스

쿠버네티스는 구글의 오랜 컨테이너 운용 노하우를 기반으로 만들어진 오픈소스 컨테이너 오케스트레이션 플랫폼입니다. (쿠버네티스에 대한 개요는 '쿠버네티스란 무엇인가?'에서 자세히 살펴보실 수 있습니다)

다양한 컨테이너 오케스트레이션 플랫폼(docker swarm, apache mesos 등)이 존재하지만, 쿠버네티스는 사실상 업계 표준으로 자리매김 했습니다. 따라서, 컨테이너 기반의 서비스 구축을 고민하는 개발자(혹은 조직)라면 당연히 쿠버네티스의 도입을 함께 고려할 수밖에 없습니다.

쿠버네티스를 한 번이라도 직접 설치해 보신 경험이 있다면, 그 과정이 절대 쉽지만은 않았을 겁니다. 또한, 쿠버네티스 그 자체를 운영하는 부분도 큰 부담으로 다가올 수 있습니다.

TOAST 쿠버네티스 서비스는 관리형 쿠버네티스 클러스터를 제공합니다. 간단한 사용자 조작을 통해 쿠버네티스 클러스터가 생성되며, 클러스터의 컨트롤 플레인(마스터 컴포넌트)은 TOAST 쿠버네티스 서비스에서 관리합니다. 이를 통해 사용자는 앞서 말한 번거로운 부분을 줄일 수 있고, 더욱 자신의 서비스 구성 및 운영에 집중할 수 있게 됩니다.

또한, 사용자 클러스터는 TOAST에서 제공되는 block storage 및 load balancer 등과 동적으로 연동되는 형태로 사용 가능합니다. 사용자 필요에 따라 다양한 퍼시스턴트 볼륨 및 로드밸런서 타입 서비스(쿠버네티스 리소스 일종)를 자유롭게 이용할 수 있습니다.

TOAST 쿠버네티스 서비스의 주요 특징은 다음과 같습니다.

아래의 그림은 TOAST 쿠버네티스 서비스를 통해 제공되는 쿠버네티스 클러스터의 구성을 간략히 보여줍니다. 또한, 인터넷을 통해 클러스터 사용자가 kubectl을 통해 명령을 내리거나, 혹은 인터넷을 통해 쿠버네티스에서 실행 중인 서비스에 대해 TOAST 로드밸런서를 통해 접근하는 모습도 보여주고 있습니다. 2.png

TOAST 쿠버네티스 서비스 사용에 대한 구체적인 내용은 사용 가이드(링크)를 참고해 주세요.

맺음말

본 글에서는 신규 컨테이너 서비스 2종에 대해 간단히 소개하는 자리를 마련해 봤습니다. 새롭게 출시한 상품이라 아직 부족한 부분이 많을 수 있습니다. 꾸준한 개선을 통해 보다 사용자에게 도움이 되는 서비스로 발전시켜 나갈 수 있도록 하겠습니다.