웹 컨테이너, 도커, 쿠버네티스
컨테이너를 도입해야 한다.
쿠버네티스로 전환해야 한다.
라는 말을 흔히 많이 듣는다.
그렇다면 컨테이너란 무엇일까?
컨테이너 = 서버
컨테이너는 서버의 한 종류이다.
서버는 프로그램 소프트웨어가 실행되는 하드웨어를 의미한다. 간단하게 컴퓨너랑 비슷한 개념이다.
회사는 서비스를 제공하기 위해서 소프트웨어를 운영하고 있다. 이 소프트웨어는 개발자가 개발을 해서 작업의 결과물이고 개발자는 자신의 PC에서 소프트웨어를 개발할 때 소스코드를 임시 소프트웨어로 만들어서 자신의 PC에서 실행하고 테스트 과정을 거친다. 결과물로 만들어진 소프트웨어는 고객에게 서비스로 제공하기 위해서 개발자의 PC가 아닌 인터넷 어딘가에 실행이 되어야한다. 즉 만들어진 소프트웨어는 개발자 개인 PC가 아닌 바로 서버에서 실행이 된다.
그렇다면 서버는 대체 어디에 있을까? 서버는 회사의 서버실에 있을 수도 있고 클라우드 같은 온라인 서버를 사용할 수 도 있다. 그런데 PC에서 개발한 소프트웨어는 보통은 메모리가 2 ~ 4기가만 있어도 충분히 실행할 수 있지만 서버실에 있는 서버는 사양이 아주 좋은 컴퓨터이다. 보통 32GB ~ 64GB 메모리를 가지고 있기 때문에 하나의 서버에서 아주 많은 소프트웨어를 실행해야 한다.
보통 본인의 PC에서 엑셀과 메모장 등 여러가지 프로그램을 실행하지만 it서비스로 제공되는 소프트웨어는 중요하게 여겨져야한다. 브라우저는 튕기면 다시 실행하면 되지만 회사의 소프트웨어가 다운되면 서비스의 장애로 이어지게 된다. 그래서 하나의 서버에는 하나의 소프트웨어만 실행하는 것이 안전하다.
그러면 64GB 컴퓨터에서 4GB 소프트웨어 하나만 실행하면 공간 낭비 아닐까?
그래서 보통 it회사들은 가상화라는 기술을 사용해서 하나의 서버에서 여러개의 소프트웨어를 이용한다.
예를 들어 건물에는 공간을 구분하는 벽이 없어 임대인을 한명바께 못받는다고 한다. 하나의 소프트웨어만 운영하는 문제와 비슷한 경우이다. 건물주는 여러명의 임대인을 받아 월세도 많이 받고 상권 활성화도 시켜야 하는데 한명의 임대인만 받는다면 너무 비효율적이다.
그래서 건물에는 임시로 벽을 세워두고 > 공간을 분리 > 여러명이 사용할 수 있도록 하게 한다.
서버도 마찬가지로 이렇게 임시로 벽을 세워서 소프트웨어가 실행되는 공간을 분리하는 기술이 있다.
* 소프트웨어가 실행되는 공간을 분리하는 기술: 가상화 기술이라고 한다.
가상화기술을 사용하면 하나의 컴퓨터에서 여러개의 소프트웨어를 안전하게 실행할 수 있게 된다.
가성화 기술은 아주 오래 전부터 프로그램을 운영하는 방식이였다.
가상머신 (VM) Virtual Machine
이 가상머신 방식은 프로그램을 실행하고 업그레이드하는데 오래걸린다는 단점이 있다.
컨테이너도 마찬가지로 가상화기술이다. 한대의 서버에서 여러개의 프로그램을 안전하게 실행할 수 있게 된다.
같은 방식이지만 컨테이너가 주목 받는 이유는 기존의 가상머신 방식보다 가볍고 빠르기 때문이다.
다시 건물 이야기로 돌아와서 가벽으로 벽도 치고, 임대인이 바뀌면 공사도 다시 해야한다.
여기서 획기적이 생각이 나타나게 된다. 임대인이 살 수 있는 컨테이너를 만들어 놓고 입주할 때마다 컨테이너를 통째로 옮겨서 건물안에 넣는 것이다. 이렇게 하면 공사할 필요도 없이 컨테이너만 안으로 옮기면 되고 입주기간이 끝나면 컨테이너만 통째로 처분해버리면 된다. 그래서 가상머신 기술을 사용할 때 전통적으로 사용하던 가상머신 방식에서 컨테이너 방식으로 전환되고 있다.
정리하자면 컨테이너를 사용하면 한대의 서버에서 여러개의 소프트웨어를 안전하게 실행할 수 있고 전통적인 방식보다 더 효율적으로 소프트웨어를 운영할 수 있다.
하지만 건물주가 직접 컨테이너를 만드는 것은 아주 비효율적이다. 인테리어, 청소 등 여러가지로 손을 보게 된다면 컨테이너를 사용하는 의미가 없어지게 된다. 그래서 나온 도커는 컨테이너를 관리해주는 전문가이다. 건물주는 단순히 도커에게 만들어 달라고 지시만 하면 된다. 도커가 알아서 번거로운일을 처리해준다. 정리하자면 도커는 컨테이너를 관리해주기 위한 일종의 프로그램이다. 내 pc에서 도커를 설치하면 컨테이너를 쉽게 다룰 수 있게 된다.
그러다 건물이 3개로 늘어나고 매일매일 입주자가 들어오게 됐다. 그래서 각각 건물에 컨테이너를 관리하는 도커 전문가를 배체했다. 각 건물에 명령을 지시해야 하는 도커가 세개나 늘어나게 됐다. 이대로는 사업을 지속적으로 운영하는데 힘들어 보인다. 그래서 쿠버네티스라는 매니저를 고용하기로 했다.
쿠버네티스는 도커가 실행중인 여러대의 서버를 관리하기 위한 도구이다. 그래서 오케스트레이션이라고 한다.
오케스트라의 지휘자처럼 여러대의 서버에서 실행중인 도커에 지시를 내려준다. 쿠버네티스는 아주 똑똑한 직원이라 사소한 것 하나하나 마다 일일이 명령을 하지 않아도 된다. 내가 원하는 상태만 문서로 정리해준다면 쿠버네티스가 알아서 컨테이너를 관리해준다.
1. 컨테이너를 사용하면 한 대의 서버에서 여러 개의 소프트웨어를 안전하고 효율적으로 운영할 수 있다.
2. 도커는 컨테이너를 관리하기 위한 도구로 일종의 프로그램이다.
3. 쿠버네티스는 서버가 여러 대 있는 환경에서 각각의 서버의 도커에게 대신 지시해주는 오케스트레이션 도구이다.
'서버,웹 프로젝트관련' 카테고리의 다른 글
웹 프로그램 개요 (0) | 2024.09.28 |
---|
댓글