반응형

도커를 배우기 시작하면 컨테이너라는 용어를 듣게 됩니다. 컨테이너는 무엇을 의미하는 걸까요? 도커 개념 정리를 시작해 봅시다. vm과 차이를 알아보고, 컨테이너 모델을 살펴보며 어떠한 장점들이 있는지 생각해봅시다.


vm(가상머신)을 사용할 때 단점

먼저 VM을 사용할때를 생각해 보겠습니다. 우리는 현재 물리적 서버를 한대 가지고 있다고 가정해 봅시다. 이 서버 위에는 네 가지의 비즈니스 앱을 올리고 싶습니다.

가상 머신 위에 각 앱들을 설치한다면 4개의 가상머신에 또 각각 운영체제를 깔아야 할 것입니다.

각 vm의 프로세스는 리소스, cpu, 메모리 및 디스크를 독립적인 os를 실행하기 위해 할당해줘야 합니다. 심지어 앱이 실행중이 아니어도 서버의 리소스를 빼앗아 버리게 됩니다. vm의 운영체제가 이러한 리소스를 훔치기 때문입니다. 뿐만 아니라 4개의 운영체제 라이선스가 필요할 수도 있습니다. 꽤 낭비가 심해 보이지 않나요? 각각의 운영체제가 필요 없이 서버 하드웨어에서 직접 안전하게 애플리케이션을 실행할 수 있다면 얼마나 좋을까요?

 

Container(컨테이너) 모델, 장점

여기서 이번 포스트의 주제인 컨테이너가 vm의 문제점을 해결하기 위해 등장했습니다. 기본적으로 가장 아랫단은 물리적 서버로 시작합니다. 이 서버 위에 4개의 앱을 올리고 싶습니다.

이제 vm 대신 하나의 운영체제를 설치하겠습니다.

그런 다음 4개의 컨테이너를 만들고, 그 컨테이너 안에 각각 앱을 올려놓겠습니다.

위 그림이 컨테이너 모델입니다. 각각의 컨테이너들은 운영체제의 일부입니다. 각 컨테이너 안에서 앱을 1대 1로 실행합니다. 그리고 가상 머신보다 컨테이너들은 더 적은 리소스를 차지하게 됩니다. vm을 썼을 때는 각각 가상 cpu, 가상 ram, 가상 디스크, 가상 네트워크 카드 등이 존재하게 되고, 더구나 운영체제를 설치해야 합니다. 이 운영체제에는 CapEx 및 OpEx 비용이 존재하게 됩니다. 즉 패치, 업그레이드, 오퍼레이터 지원, 모든 비용이 다 들어갑니다.

 

컨테이너의 모델을 살펴보면 운영체제는 단지 하나일 뿐입니다. 따라서 실제 서버를 가져와서 한 개의 운영체제만 설치하고 보안 관리해주면 됩니다. 그런 다음 컨테이너 내부에서 앱을 실행하게 됩니다. vm에서 썼던 불필요한 것들이 사라진 걸 볼 수 있는데요. 사라진만큼 추가적으로 서버 비용 없이 다른 비즈니스 앱을 늘릴 수 있는 여유공간이 생겼습니다.

 

장점은 그것뿐만이 아닙니다. 이 컨테이너에 들어있는 앱들은 엄청나게 빨리 시작됩니다. 앱을 시작할 때 가상 머신이 없고 또한 추가되는 운영체제가 없기 때문에 상황에 따라 요구사항을 빨리 해결하고 재시동할 수 있습니다. 컨테이너에 있는 애플리케이션은 하나의 운영체제를 안전하게 공유합니다.


장점을 알아보니 Container라는 녀석을 사용하지 않을 이유가 없어 보이는 것 같습니다. 다음 포스트도 Docker의 개념 정리가 이어집니다.

여기까지 읽어주셔서 감사합니다.

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기