네트워크

54. 컨테이너 - 패스트캠퍼스 백엔드 부트캠프 3기

gkss2tpt 2025. 1. 22. 11:47

1. 애플리케이션 동작 환경을 가상으로 구축하는 기술

  • 컨테이너는 애플리케이션 동작 환경을 가상화하여 구축하는 기술이지만 현재는 가상 서버에서도 활용한다.
  • 하나의 OS상에 여러 애플리케이션의 동작 환경을 가상으로 구축하는 기술로 게스트 OS를 제외하고 애플리케이션과 그 동작 환경을 컨테이너 엔진이 가상화해서 실행
  • 가상화된 애플리케이션 및 동작 환경 하나하나를 컨테이너라고 부른다.
  • 각각의 컨테이너는 독립적으로 동작하기 때문에 다른 컨테이너에 직접 액세스 할 수 없다.
  • 컨테이너 사이의 통신에는 가상 네트워크 브리지를 사용한다.
  • 가상 네트워크 브리지 : 컨테이너 마다 설정되는 가상 NIC(네트워크 인터페이스 카드), 가상 스위치, 가상 라우터 기능을 모은 가상 네트워크의 브리지 기능
  • 도커 : 클라우드 환경에서 이용되는 컨테이너 엔진 중 하나
  • 쿠버네티스 : 네트워크를 이용하여 여러 개의 컨테이너 엔진(도커)을 관리할 수 있다.
  • 컨테이너와 가상머신(VM)의 비교
    • 가상머신(VM):
      • 구성 요소: 하이퍼바이저(Hypervisor) 위에 각기 독립된 게스트 OS(Operating System)가 설치된 상태로 동작합니다.
      • 동작 방식: 각 VM은 자체적인 운영체제를 포함하고, 호스트 OS와는 별개로 독립적으로 실행됩니다.
      • 장점: 완전한 격리와 다양한 운영체제 지원.
      • 단점: 무겁고, 자원 소모가 많으며, 시작 시간이 길다.
    • 컨테이너:
      • 구성 요소: 호스트 OS의 커널을 공유하면서, 애플리케이션과 그 동작에 필요한 모든 종속성(라이브러리, 설정 파일 등)을 패키징한 단일 단위로 실행됩니다.
      • 동작 방식: 컨테이너 엔진(Docker, Kubernetes 등)이 호스트 OS 위에서 직접 컨테이너를 실행하며, 별도의 게스트 OS를 포함하지 않습니다.
      • 장점: 가볍고, 빠르게 시작하며, 효율적인 자원 사용.
      • 단점: 호스트 OS에 의존적이며, 운영체제 수준의 격리는 VM에 비해 덜하다.