본문 바로가기

쿠버네티스

[쿠버네티스] 물리 서버에서 클라우드 네이티브까지: 서버 인프라 격변의 중심 '컨테이너'

서버 인프라의 변화

 

현대의 인프라 시스템은 끊임없이 진화하고 있습니다. 물리 서버에서 가상 머신으로, 가상 머신에서 컨테이너로의 전환은 더 빠르고 유연한 서비스 제공이라는 목표 아래 이루어졌습니다. 최근 대부분의 스타트업, 그리고 수많은 대규모 서비스 운영 기업들은 하나같이 컨테이너 기반 인프라를 채택하고 있습니다.

 

 



ㅁ 전통적인 엔터프라이즈 환경에 배포
전통적인 엔터프라이즈 환경에서, 초기의 배포 구조는 애플리케이션을 물리 서버에서 직접 실행하는 방식이었습니다.

이 과정에서 각 애플리케이션의 리소스 한계를 명확히 정의하고 물리 서버를 개별적으로 관리해야 했기 때문에, 서버 유지 및 확장에 상당한 비용과 시간이 소요되었습니다. 개발자들은 코드 개발이 완료되면 해당 애플리케이션을 물리 서버에 직접 배포하였고, 이는 종종 환경 불일치와 운영상의 비효율을 초래하곤 했습니다.

 

 

ㅁ 가상 환경의 배포 

물리 서버 기반 배포의 한계를 해결하기 위해 가상화 기술이 도입되었습니다. 이를 통해 하나의 물리 서버의 CPU 자원을 여러 개의 가상 시스템이 공유하며, 애플리케이션을 서로 격리된 환경에서 실행할 수 있게 되었습니다. 가상화는 애플리케이션 격리성과 자원 활용의 효율성을 높이며, 인프라 운영 방식에 큰 변화를 가져왔습니다. 오늘날에도 많은 기업들은 컨테이너 기반 인프라보다는 가상화 환경에서의 배포 방식을 더 안정적이고 신뢰할 수 있는 선택지로 여기는 경향이 있습니다.

 


⚠️ 가상화 환경의 배포에 대한 문제점

가상화 환경에서의 배포는 빠른 확장(Scale-up)과 축소(Scale-down)가 어렵다는 한계가 있습니다. 트랜잭션이 집중될 수밖에 없는 시점에는 이를 감당하기 위해 사전에 리소스를 확장하거나 시스템을 이중화(Scale-out)하여 대용량 트래픽을 처리할 수 있는 구조를 미리 준비해야 합니다.


현재도 많은 고객사들이 온프레미스 또는 데이터센터(DC) 기반의 가상화 환경을 운영하고 있으며, 이러한 구조에서는 탄력적인 리소스 조절이 번거롭고 복잡하여, 빠르게 변화하는 비즈니스 요구에 즉각적으로 대응하기 어렵습니다.

결국, 이러한 비효율적인 인프라 운영 방식은 비즈니스 연속성 확보에 지속적인 부담을 주었고, 이를 극복하고자 등장한 해답이 바로 컨테이너 기반 인프라의 시대입니다.

 

 

 

ㅁ 컨테이너 환경의 배포

컨테이너는 VM과 유사 하지만, 격리 속성을 완화하여 어플리케이션 간에 운영체제(OS)를 공유하기에 컨테이너는 VM에 비해 상당히 가볍고 VM과 마찬가지로 컨테이너 자체에는 CPU점유율,메모리,프로세스 공간이 있어 VM보다 효율적인 시스템 운영이 가능하고 유동적인 트래픽 환경에서도 손쉬운 확장의 시대가 도래 하였습니다.

 

 

 


ㅁ VM과 Container는 어떤 차이가 있나요?

 

💡  Virtual-machines

 

 

⊙ 하이퍼바이저(Hypervisor)를 통해 호스트 시스템의 리소스를 분리하고 가상환경을 생성합니다.

⊙ OS를 가상화하고 독립된 가상환경을 제공하기에 추가적인 오버헤드와 리소스 사용이 요구됩니다.

⊙ 가상 머신은 독립된 운영체제를 가상화 하기에 높은 격리 수준을 제공하며, 각 머신은 독립된 환경에서 다른 가상 머신에 영향을 미치지 않습니다.

 


💡  Container

 


⊙ OS의 커널을 공유하므로 가볍고 빠른 실행속도를 가지며, APP 타임 및 확장성이 매우 우수합니다.

⊙ 호스트OS의 자원을 공유하므로 격리 수준은 가상머신에 비해 상대적으로 낮지만 각 컨테이 너가 독립된 파일 시스템과 네트워크 ,프로세스가 격리되어 다른 컨테이너와 분리됩니다.

⊙ 호스트 운영체제 위해서 독립된 프로세스로 실행되며 가상 머신처럼 전체 운영체제를 가상화 하지 않고 컨테이너화 된 어플리케이션은 필요한 라이브러리 및 종속성과 함께 패키징 됩니다.