컨테이너 오케스트레이션이란 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하는 것을 말합니다.
컨테이너 오케스트레이션을 사용해 다음과 같은 작업을 자동화하고 관리할 수 있습니다.
Kubernetes, AWS ECS, Apache Mesos, Docker Swarm등 다양한 컨테이너 오케스트레이션 도구들이 있습니다.
그중에서 오늘은 도커 스웜에 대해서 알아보도록 하겠습니다.
보통의 도커 사용법은 하나의 호스트를 기준으로 합니다. docker ps, run, create등과 같은 명령어들은 모두 하나의 컨테이너를 대상으로 실행됩니다.
그러나 실제로 도커를 운영 환경에 적용한다고 한다면 하나의 호스트에 도커를 설치해 운영하는 것은 조금 벅찬 일일 수도 있습니다.
예를 들어 하나의 호스트에서 도커를 설치해 사용하다가 CPU나 메모리, 디스크 같은 리소스가 부족해지면 어떻게 해결할까요?
가장 원시적인 방법으로는 더 좋은 성능의 서버를 산다가 될 수 있겠지만 리소스가 부족할 때마다 새로운 서버를 구매하는 것은 비용적인 부담이 매우 클 것입니다.
따라서 이를 해결하기 위해 가장 많이 사용되는 방법은 여러 대의 서버를 하나의 클러스터로 묶어 리소스를 병렬로 확장하는 것입니다.
도커 스웜은 이처럼 서로다른 호스트에 있는 여러 대의 컨테이너를 하나의 묶어 마치 하나의 호스트인 것처럼 사용할 수 있도록 도와주는 컨테이너 오케스트레이션 도구입니다.
도커 스웜은 다음과 같은 구조로 이루어져있습니다.
도커 스웜에는 두 가지 종류가 있습니다. 바로 스웜 클래식과 스웜 모드 입니다.
스웜 클래식과 스웜 모드의 가장 큰 차이점은 바로 그 목적에 있습니다.
스웜 클래식은 여러 대의 도커 서버를 하나의 지점에서 사용할 수 있도록 단일 접근점을 제공한다면 스웜 모드는 마이크로서비스 아키텍처의 컨테이너를 다루기 위한 클러스터링 기능에 초점을 맞추고 있습니다.
스웜 클래식과 스웜 모드의 다른 차이점은 다음과 같습니다.