컨테이너(Container)란?

Notepad96

·

2021. 9. 14. 04:24

300x250

 

 


1. 컨테이너(Container)란?

 

컨테이너(Container)는 다른 프로세스와 분리되어 실행되며 하나의 인스턴스라 할 수 있다.

 

출처: https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/

 

ㄴ 전통적 방식


애플리케이션 서버를 실행하기 위하여 이전 전통적인 방식은 한 물리 서버에서 다수의 애플리케이션을 실행하였다. 이와 같은 방식은 여러개의 애플리케이션이 리소스를 사용하기 때문에 리소스가 부족할 수도 있고 이를 해결하기 위하여 서버 스펙을 높게 한다면, 리소스를 사용하지 않아 비용적으로 손해가 발생한다. 또한 배포를 위해 서버를 종료하면 실행중인 모든 애플리케이션이 종료하게되는 아주 비효율적인 방식이다.

 


ㄴ 가상화 방식


위 전통적 방식의 문제들을 해결하기 위하여 가상화가 도입되었다. 이는 기존에 동일한 서버를 사용하였다면 가상화를 사용하여 VM으로 서버를 분리하였다. 이 때문에 애플리케이션마다 서버를 분리할 수 있게되었다. 리소스를 많이 사용하는 애플리케이션은 많은 리소스를 할당하고, 리소스를 적게 사용하는 애플리케이션은 적은 리소스를 할당하면 리소스 사용 효율성 또한 높일 수 있는 이전 방식의 단점들을 해결해 주었다.

 

 

ㄴ 컨테이너 방식


그림을 보면 알 수 있듯이 가상화 방식에서는 VM을 나눌 때 각 VM마다 OS를 갖는다. 하지만 컨테이너는 다르게 애플리케이션 간에 OS(운영체제) 또한 공유를 한다. 이로 인하여 VM보다 더욱 가벼워 확장성이 뛰어나며 이식성 또한 뛰어나는 등 다양한 이점이 있어 많은 곳에서 사용되어지고 있다.


 


2. 컨테이너(Container) 사용 이유

 

ㄴ 인프라(리소스) 사용률 향상


물리 서버나 가상 서버 위에서 여러 컨테이너를 만들어 사용할 수 있으며 리소스를 효율적으로 배분할 수 있다. 또한, 쿠버네티스를 사용하여 컨테이너들을 관리함으로써 작업들을 자동화하고 관리할 수 있다.

 

ㄴ 동일한 실행 환경


애플리케이션 실행을 위하여 필요한 SW가 있다면 이를 포함시켜 컨테이너를 만들게하거나 라이브러리를 사용할 때 이를 위한 세팅이 필요할 때와 같이 자동으로 동일한 환경의 컨테이너를 구축하여 예상치 못한 에러 발생을 줄인다.

 

ㄴ 시간의 효율성


가상화 방식보다 가벼워 더욱 빠르게 서버를 늘리거나 줄일 수 있으며 이미지를 사용하여 간단하게 컨테이너를 생성해낼 수 있다. 또한, 버전 맞추기 같은 설정 작업을 하지 않아도 되므로 빠르게 확장이 가능하다.

 

 


3. 참 조

 

쿠버네티스란 무엇인가?

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하

kubernetes.io

 

300x250