본문으로 건너뛰기

컨테이너란 무엇입니까?

항목

이 페이지 공유하기

컨테이너는 운영 체제 가상화의 한 형태입니다. 단일 컨테이너는 작은 마이크로서비스 또는 소프트웨어 프로세스에서 대규모 애플리케이션까지 모든 것을 실행하는 데 사용될 수 있습니다. 컨테이너 내부에는 필요한 모든 실행 파일, 바이너리 코드, 라이브러리 및 구성 파일이 들어 있습니다. 서버 또는 머신 가상화 접근 방식과 달리 컨테이너에는 운영 체제 이미지가 포함되어 있지 않습니다. 그렇기 때문에 더 가볍고 이동성이 우수하며 오버헤드가 현저히 낮습니다. 대규모 애플리케이션 구현에서는 여러 컨테이너를 하나 이상의 컨테이너 클러스터로 구현할 수 있습니다. 이러한 클러스터는 Kubernetes와 같은 컨테이너 오케스트레이터로 관리할 수 있습니다.

컨테이너의 이점

컨테이너는 개발자의 로컬 노트북부터 온프레미스 데이터 센터 및 클라우드에 이르는 여러 환경에서 애플리케이션을 구축, 테스트, 구현 및 재구현할 수 있는 효율적인 방법입니다. 컨테이너의 이점은 다음과 같습니다.

  • 더 적은 오버헤드
    컨테이너에는 운영 체제 이미지가 포함되지 않으므로 기존 환경 또는 하드웨어 가상 머신 환경보다 시스템 리소스가 적게 필요합니다.
  • 이동성 향상
    컨테이너에서 실행되는 애플리케이션은 여러 운영 체제 및 하드웨어 플랫폼에 쉽게 구현할 수 있습니다.
  • 보다 일관된 운영
    DevOps 팀에서 컨테이너에 애플리케이션을 구현하면 구현 위치와 관계없이 동일하게 실행됩니다.
  • 효율성 향상
    컨테이너를 사용하면 애플리케이션의 구현, 패치 적용 또는 확장이 더 빨라집니다.
  • 더 우수한 애플리케이션 개발
    컨테이너는 애자일 및 DevOps 작업을 지원하여 개발, 테스트 및 운영 주기를 단축합니다.

컨테이너 사용 사례

조직에서 컨테이너를 사용하는 일반적인 방법은 다음과 같습니다.

  • 기존 애플리케이션을 최신 클라우드 아키텍처로 "리프트 앤 시프트"
    일부 조직의 경우는 컨테이너를 사용하여 기존 애플리케이션을 더 현대적인 환경으로 마이그레이션합니다. 이 방식은 운영 체제 가상화의 몇 가지 기본적인 이점을 제공하지만, 모듈식 컨테이너 기반 애플리케이션 아키텍처의 모든 이점을 제공하는 것은 아닙니다.
  • 컨테이너에 맞게 기존 애플리케이션 리팩토링
    리팩토링은 리프트 앤 시프트 마이그레이션보다 훨씬 더 많은 시간과 노력이 필요하지만 컨테이너 환경의 이점을 최대한 활용할 수 있습니다.
  • 새로운 컨테이너 네이티브 애플리케이션 개발
    이 접근 방식은 리팩토링과 마찬가지로 컨테이너의 모든 이점을 활용할 수 있습니다.
  • 마이크로서비스 아키텍처에 대한 더 나은 지원 제공
    개별 컨테이너 구성 요소를 사용하면 분산된 애플리케이션과 마이크로서비스를 더욱 쉽게 격리, 구현 및 확장할 수 있습니다.
  • 지속적인 통합 및 구현(CI/CD)을 위한 DevOps 지원 제공
    컨테이너 기술은 동일한 컨테이너 이미지를 사용한 간소화된 구축, 테스트 및 구현을 지원합니다.
  • 반복 업무 및 작업을 보다 쉽게 구현
    컨테이너는 ETL 함수 또는 배치 작업과 같이 백그라운드에서 실행되는 하나 이상의 유사한 프로세스를 지원하도록 구축됩니다.

Docker 및 Kubernetes와 컨테이너의 관계

컨테이너 환경에서 일하는 사용자는 컨테이너를 구축 및 관리하는 데 사용되는 2가지 주요 툴과 플랫폼에 관해 들어봤을 것입니다. Docker와 Kubernetes입니다.

Docker는 컨테이너 내부에서 소프트웨어를 생성 및 구축하는 데 널리 사용되는 런타임 환경입니다. Docker는 Docker 이미지, 즉 COW(copy-on-write) 스냅샷을 사용하여 개발에서 테스트 및 운영까지 다양한 환경에 컨테이너식 애플리케이션 또는 소프트웨어를 구현합니다. Docker는 Linux, Microsoft Windows, 기타 온프레미스 또는 클라우드 기반 인프라를 비롯한 가장 일반적인 운영 환경 내의 개방형 표준 및 기능을 기반으로 구축되었습니다.

그러나 컨테이너식 애플리케이션은 복잡해질 수 있습니다. 운영 환경에는 수십만 개의 개별 컨테이너가 필요할 수 있습니다. 이 경우 Docker와 같은 컨테이너 런타임 환경에서는 다른 툴을 사용하여 가동 중인 모든 컨테이너를 조정 또는 관리하는 것이 유용합니다.

가장 널리 사용되는 툴 중 하나는 Docker를 비롯한 여러 컨테이너 런타임 환경을 인식하는 컨테이너 오케스트레이터인 Kubernetes입니다.

Kubernetes는 여러 컨테이너의 작업을 조율합니다. 필요한 컴퓨팅, 네트워크, 스토리지 리소스 양 등 컨테이너식 애플리케이션의 기본 인프라 리소스 사용과 같은 영역을 관리합니다. Kubernetes와 같은 오케스트레이션 툴을 사용하면 라이브 운영 환경에서 컨테이너 기반 워크로드를 더욱 쉽게 자동화하고 확장할 수 있습니다.

컨테이너 vs. 가상 머신(VM)

컨테이너 기술을 가상 머신(VM) 또는 서버 가상화 기술과 혼동하는 경우가 있습니다. 몇 가지 기본적인 유사점이 있긴 하지만 컨테이너는 VM과 매우 다릅니다.

가상 머신은 하이퍼바이저 환경에서 실행되며 각 가상 머신에는 관련 바이너리, 라이브러리 및 애플리케이션 파일과 함께 자체 게스트 운영 체제가 포함되어 있어야 합니다. 따라서 많은 양의 시스템 리소스 및 오버헤드가 소모되며, 특히 동일한 물리적 서버에서 여러 VM이 실행되고 있고 각각 고유한 게스트 OS가 있는 경우에는 더욱 그렇습니다.

반면, 각 컨테이너는 동일한 호스트 OS 또는 시스템 커널을 공유하므로 크기가 훨씬 더 가볍고 대개 메가바이트 정도에 불과합니다. 다시 말해 컨테이너를 시작하는 데 몇 초 밖에 걸리지 않습니다. 반대로 일반적인 VM의 크기는 기가바이트 단위이며 시작하는 데 몇 분이 필요합니다.

컨테이너와 가상 머신의 차이점 계속 읽어보기

NetApp 및 컨테이너

NetApp은 컨테이너 기술을 믿고 있으며, 모든 위치에서 모든 애플리케이션에 대해 영구 스토리지를 제공 및 관리하는 검증된 툴과 혁신을 위해 노력하고 있습니다. 이 작업의 한 가지 주요 예는 Trident의 개발입니다. Trident를 사용하면 컨테이너식 애플리케이션에서 온디맨드 영구 스토리지를 훨씬 더 쉽게 사용할 수 있습니다.

NetApp은 소프트웨어 개발의 속도 및 민첩성을 더욱 높여 DevOps를 가속할 방법을 적극적으로 찾고 있습니다. 스토리지와 같은 인프라 리소스는 쉽게 사용할 수 있어야 합니다. NetApp은 다양한 플랫폼에서 애플리케이션을 손쉽게 확장하고 구현할 수 있도록 컨테이너 관리 솔루션 및 기타 다양한 기능을 제공하는 데 주력합니다.

NetApp의 컨테이너 솔루션 자세히 알아보기

관련 솔루션 및 제품

지속적인 통합 및 지속적인 공급

가상화된 워크로드를 단순화하고 자동화하여 디지털 혁신의 속도를 높이십시오. 효율적인 자동화 솔루션으로 성장을 가로막는 장벽을 제거하십시오.

DevOps 솔루션

보안 커뮤니케이션을 고객 인사이트로 전환

API 플랫폼 공급자인 Bandwidth는 매일 수백만 명의 사람들에게 영향을 미치는 음성, 메시징 및 119 서비스를 제공합니다. 대역폭 개발자들은 회사의 플랫폼을 발전시키고 새로운 서비스를 시장에 더 빨리 출시하기 위해 끊임없이 혁신을 거듭하고 있습니다.

NetApp 플래시 및 MetroCluster IP를 사용하여 파일을 어디서나 액세스할 수 있도록 보장하는 스위스 은행

PostFinance는 스위스 시장에 맞게 특별히 개발 또는 조정된 미래 지향적인 툴과 기술을 사용합니다. NetApp® 시스템은 안전한 은행 거래를 위한 파일 데이터를 제공하고 영구 스토리지로 금융 상품 및 서비스 개발을 가속화합니다.  

Person looking at monitor and analyzing