컨테이너는 서버 자원과 무관하지 않다

컨테이너를 "가상화"라고 부르다 보니 마치 서버 성능과 무관하게 마법처럼 동작한다고 오해하기 쉽다.
하지만 컨테이너는 호스트 서버의 실제 CPU, 메모리, 디스크를 그대로 나눠 쓴다. 서버가 CPU 2코어, 메모리 4GB뿐이라면, 그 위에 컨테이너를 아무리 많이 띄워도 실제로 쓸 수 있는 자원의 총량은 그대로다.
컨테이너가 요구하는 자원(이미지 안 애플리케이션이 얼마나 무거운가)과 서버가 공급할 수 있는 자원(실제 하드웨어 역량), 이 둘이 맞아떨어져야 서비스가 제대로 돌아간다. 그리고 바로 이 관계가 운영비용에 직접 영향을 준다.
VM 시절의 비용 구조

컨테이너 이전, VM으로만 서비스를 운영하던 시절을 생각해보자. 애플리케이션 하나를 배포하려면 VM 한 대를 새로 띄워야 했다. VM은 OS 전체(커널 포함)를 통째로 새로 켜는 방식이라, VM 한 대가 최소한으로 필요로 하는 메모리와 디스크만 해도 상당하다. 작은 애플리케이션 하나를 돌리기 위해 VM 한 대를 통째로 할당하면, 그 VM의 자원 중 상당 부분은 실제로 쓰이지 않고 낭비된다.
예를 들어 실제로는 CPU 0.5코어, 메모리 512MB만 있으면 충분한 애플리케이션인데, VM 한 대의 최소 사양이 CPU 1코어, 메모리 2GB라면 이미 절반 이상의 자원이 그냥 놀고 있는 셈이다. 이 낭비된 자원도 결국 클라우드 사용료로 청구된다.
컨테이너가 비용 구조를 바꾸는 방식
컨테이너는 커널을 공유하기 때문에 이런 낭비가 크게 줄어든다. 서버 한 대(혹은 VM 한 대) 위에서 여러 애플리케이션을 각각 별도의 VM 없이 컨테이너 단위로 촘촘하게 밀어넣을 수 있다. 아까 예로 든 CPU 0.5코어짜리 애플리케이션이라면, 딱 그만큼의 자원만 컨테이너에 할당하고 나머지 자원은 다른 컨테이너가 쓰도록 남겨둘 수 있다.
즉 같은 물리 자원 위에 VM을 여러 대 띄우는 것보다, 컨테이너를 여러 개 띄우는 쪽이 자원 활용률이 훨씬 높다. 활용률이 높다는 건 "같은 돈으로 더 많은 애플리케이션을 돌릴 수 있다"는 뜻이고, 이는 곧 서버 대수(혹은 VM 대수) 자체를 줄일 수 있다는 의미로 이어진다.
오토스케일링과 결합했을 때의 비용 효과
여기에 Kubernetes 같은 오케스트레이션 도구가 더해지면 비용 효율은 한 단계 더 올라간다. 트래픽이 적을 때는 컨테이너 수를 최소한으로 줄여두고, 트래픽이 몰릴 때만 컨테이너를 자동으로 늘린다. 컨테이너는 VM보다 훨씬 빨리(수 초 이내) 뜨고 사라지기 때문에, "필요한 순간에만 자원을 쓰고 바로 반납하는" 유연함이 VM 기반 오토스케일링보다 훨씬 정교해진다.

VM 기반 오토스케일링은 새 VM이 완전히 부팅되기까지 수십 초에서 1분 이상 걸리는 경우가 많아, 트래픽 급증에 대응하는 속도에 한계가 있다.
반면 컨테이너는 이미 떠 있는 서버(VM) 위에서 즉시 늘어나기 때문에 대응 속도가 빠르고, 그만큼 "혹시 몰라서 미리 넉넉하게 띄워두는" 여유 자원을 줄일 수 있다. 이 여유 자원을 줄이는 것 자체가 곧 비용 절감이다.
다만 공짜는 아니다

물론 컨테이너가 비용 효율만 가져다주는 건 아니다. 여러 컨테이너가 자원을 촘촘하게 나눠 쓰다 보면, 한 컨테이너가 예상보다 자원을 많이 써버려 다른 컨테이너에 영향을 주는 상황(Noisy Neighbor)이 생길 수 있다. 이를 막기 위해 컨테이너마다 자원 사용 상한(리소스 limit)을 설정해줘야 하는데, 이 설정을 잘못하면 오히려 자원을 필요 이상으로 여유 있게 잡아 비용 절감 효과가 줄어들 수도 있다.
또한 Kubernetes 같은 오케스트레이션 도구 자체를 운영하는 데도 별도의 인력과 학습 비용이 들어간다. 컨테이너 기반 구조가 무조건 저렴한 게 아니라, "자원 활용률을 얼마나 세밀하게 관리할 수 있느냐"에 따라 절감 효과가 크게 갈린다는 뜻이다.
정리

컨테이너의 운영비용 절감 효과는 결국 세 가지에서 나온다.
첫째, VM보다 가벼워서 같은 자원으로 더 많은 애플리케이션을 밀도 있게 돌릴 수 있다는 점.
둘째, 빠르게 뜨고 사라지기 때문에 트래픽 변화에 맞춰 자원을 정교하게 조절할 수 있다는 점.
셋째, 그만큼 "혹시 몰라서" 미리 잡아두는 여유 자원을 줄일 수 있다는 점이다.
다만 이 절감 효과는 자동으로 따라오는 게 아니라, 컨테이너별 자원 제한을 적절히 설정하고 오케스트레이션을 제대로 운영해야 실제로 실현된다.
'Cloud, IT Infra > Docker & Kubernetes' 카테고리의 다른 글
| 이제야 알 것 같은 — Docker와 Kubernetes를 인프라 관점에서 보기 (0) | 2026.07.14 |
|---|---|
| 하이퍼바이저, 그리고 VM vs 컨테이너 (0) | 2026.07.13 |
| Kubernetes 실습 (1) | 2025.12.30 |
| Docker 실습 (0) | 2025.12.30 |
| Docker란? (0) | 2025.11.07 |