컨테이너란 무엇일까요?

컨테이너는 애플리케이션 코드, 런타임, 시스템 라이브러리, 시스템 툴 등 어느 환경에서든 실행되는 데 필요한 파일과 의존성을 모두 갖추고 있는 소프트웨어 패키지입니다. 컨테이너는 운영 체제를 가상화함으로써 개발, 테스트, 프로덕션 환경 또는 개인 디바이스에서 퍼블릭 클라우드 또는 프라이빗 데이터 센터에 이르는 모든 컴퓨팅 환경에서 실행할 수 있습니다.

컨테이너는 어떻게 작동하나요?

컨테이너에는 여러 구성요소가 포함됩니다.

  • 컨테이너 이미지는 컨테이너를 실행하는 데 필요한 모든 정보가 포함된 완전하고, 정적이며, 가볍고 실행 가능한 소프트웨어 패키지입니다. 컨테이너 이미지 형식에는 여러 가지가 있으며, 가장 일반적인 형식은 OCI(Open Container Initiative)입니다.
  • 컨테이너 엔진은 리포지토리에서 컨테이너 이미지에 접속해 실행합니다. 가장 일반적인 컨테이너 엔진에는 Docker, CRI-O, Containerd, runC, LXD, RKT가 있습니다. 컨테이너 엔진은 개인 디바이스, 물리적 서버 또는 클라우드를 포함한 모든 컨테이너 호스트에서 실행할 수 있습니다.
  • 컨테이너는 컨테이너 엔진에서 실행되는 컨테이너 이미지입니다. 호스트 운영 체제(일반적으로 Linux, Mac 또는 Microsoft Windows)는 컨테이너의 CPU, 메모리, 스토리지 등 리소스에 접속하는 능력을 제한해 컨테이너가 과도한 양의 물리적 리소스를 소비하지 못하도록 합니다.
  • 컨테이너 스케줄러 및 오케스트레이션 기술은 컨테이너의 배포와 실행을 관리합니다.

컨테이너화란 무엇일까요?

컨테이너화는 소프트웨어 코드를 운영 체제, 라이브러리, 설정 파일 및 코드 실행에 필요한 기타 의존성과 하나로 묶는 작업입니다. 컨테이너화된 애플리케이션은 소프트웨어 개발에 ‘한 번 구축하고 어디서나 실행’하는 접근 방식을 제공함으로써 개발자가 애플리케이션을 보다 빠르고 안전하게 만들고 배포할 수 있도록 지원합니다.

컨테이너가 필요한 이유는 무엇인가요?

디지털 전환(/glossary/what-is-digital-transformation 링크)으로 인해 전 세계가 상호 연결됨에 따라 애플리케이션은 다양한 환경에서 실행되어야 하는 경우가 많습니다. 과거에는 많은 애플리케이션이 한 환경에서 다른 환경으로 이동할 때 수정 없이 올바르게 실행되지 않았는데, 이는 일반적으로 기본 인프라와 의존성의 설정 차이 때문이었습니다.

컨테이너는 애플리케이션을 실행하는 데 필요한 모든 것이 포함된 경량 인프라에 소프트웨어를 패키징해 이 문제를 해결합니다. 이러한 방식으로 컨테이너를 사용하면 개발자와 IT 팀은 코드를 수정할 필요 없이 환경 전반에 소프트웨어를 배포할 수 있습니다. 결과적으로 IT 팀은 다양한 머신과 환경에서 일관된 동작을 보장할 수 있습니다. 개발자는 수정된 코드가 다양한 환경과 호환되지 않을지 걱정하지 않고 코드를 변경하고 컨테이너에 새로운 의존성을 추가할 수 있습니다.

컨테이너와 가상 머신은 어떻게 다른가요?

가상머신(VM)은 또 다른 형태의 가상화 컴퓨팅 모델입니다. VM은 하이퍼바이저를 사용하여 서버를 실행하는 데 필요한 물리적 하드웨어를 가상화하며, 각 VM에는 애플리케이션, 라이브러리, 의존성과 함께 게스트 운영 체제가 포함되어 있습니다. VM은 특히 여러 VM이 각각 자체 게스트 OS와 함께 동일한 물리적 서버에서 실행될 때, 상당한 양의 시스템 리소스를 소모할 수 있습니다.

반면 컨테이너 기술은 하드웨어 수준이 아닌 OS 수준에서 가상화되며, 여러 컨테이너가 동일한 호스트 OS 또는 시스템 커널을 공유합니다. 따라서 컨테이너는 OS 커널을 공유하기 때문에 VM이 필요로 하는 메모리의 일부만 사용합니다. 이 덕분에 컨테이너는 몇 초 만에 실행을 시작할 수 있는 반면, VM은 몇 분이 걸릴 수도 있습니다.

컨테이너는 무엇을 하도록 설계되었나요?

컨테이너는 다양한 사용 사례를 지원합니다.

  • DevOps. 컨테이너를 통해 애플리케이션 개발 팀은 DevOps, CI/CD(지속적인 통합 및 배포), 서버리스 프레임워크에 클라우드 네이티브 개발 모델을 도입할 수 있습니다.
  • 마이크로서비스. 컨테이너의 가벼운 특성은 소프트웨어가 여러 개의 작고 느슨하게 결합된 서비스로 구성되는 마이크로서비스 아키텍처에 이상적입니다.
  • 클라우드 컴퓨팅. 컨테이너는 어디서나 일관된 성능을 제공하기 때문에 워크로드가 퍼블릭 클라우드와 프라이빗 데이터 센터 환경 간에 이동할 수 있는 멀티클라우드하이브리드 클라우드 배포에 이상적입니다.
  • 클라우드 전환. 컨테이너는 IT 팀이 클라우드 전환을 준비할 때 애플리케이션을 최신화하는 데 자주 사용됩니다. 컨테이너는 전환 중에 리팩터링될 서비스에도 이상적인 선택지입니다.

컨테이너의 장점은 무엇인가요?

컨테이너는 다음과 같은 다양한 장점을 기업에 제공합니다.

  • 효율성 향상. 호스트와 동일한 운영 체제 커널을 공유하기 때문에 컨테이너는 VM보다 효율적입니다.
  • 더욱 쉬운 관리. 컨테이너를 사용하면 애플리케이션을 신속하게 배포, 패치, 확장할 수 있습니다.
  • 워크로드 이식성. IT 팀은 컨테이너를 통해 Linux, Windows 또는 Mac 운영 체제, VM 또는 물리적 서버, 개별 디바이스, 온프레미스 데이터 센터, 클라우드 등 어디서나 워크로드를 배포하고 실행할 수 있습니다.
  • 일관된 성능. 컨테이너는 여러 운영 체제와 플랫폼에서 안정적인 성능을 제공합니다.
  • 오버헤드 감소. 기존 컴퓨터와 VM에 비해 컨테이너는 메모리, CPU, 스토리지에 대한 시스템 리소스 요구사항이 훨씬 적습니다. 그러므로 동일한 인프라에서 더 많은 컨테이너를 지원할 수 있습니다.
  • 최적화된 활용. 컨테이너는 마이크로서비스 아키텍처를 구현함으로써 애플리케이션 구성요소를 세분화해 배포하고 확장하기 쉽게 만들어 줘서, 단일 구성요소가 워크로드를 관리할 수 없을 때 전체 애플리케이션을 확장할 필요가 없습니다.

컨테이너 오케스트레이션이란 무엇인가요?

컨테이너 오케스트레이션은 기업 전반에서 여러 컨테이너 배포를 관리하는 작업입니다. 컨테이너 오케스트레이터는 프로비저닝 및 배포, 리소스 할당, 가동 시간 유지 관리, 수직 확장 및 축소, 서비스 검색, 네트워킹, 스토리지, 보안 등의 작업을 포함해 컨테이너 관리의 수명 주기를 자동화하는 플랫폼입니다.

오케스트레이션은 컨테이너가 배포되는 위치와 여러 컨테이너에 워크로드가 할당되는 방식에 대한 가시성과 제어 기능을 제공합니다. 오케스트레이션을 사용하면 컨테이너를 수동으로 관리할 필요가 없으며 IT 팀이 컨테이너 그룹에 정책을 선택적으로 또는 집합적으로 적용할 수 있습니다.

쿠버네티스는 가장 잘 알려진 컨테이너 오케스트레이션 플랫폼으로 퍼블릭 클라우드, 온프레미스, 엣지 네트워크 등 모든 인프라에 배포할 수 있습니다. Red Hat® OpenShift®는 컨테이너 구축을 위한 셀프서비스 환경과 함께 모든 인프라에서 풀스택의 자동화된 운영을 제공하는 엔터프라이즈용 쿠버네티스 플랫폼입니다.

컨테이너에 대한 보안 위협은 무엇인가요?

컨테이너는 IT 팀이 소프트웨어를 어디서든 배포하고 애플리케이션을 빠르게 실행할 수 있게 해주지만, 동시에 새로운 보안 우려를 야기하기도 합니다. 개발자와 IT 팀은 공격자가 컨테이너를 악용하지 못하도록 하기 위해 다음과 같은 몇 가지 조치를 취할 수 있습니다.

  • 보안 모범 사례를 적용하고 애플리케이션/코드 수준에서 검증 추가
  • 쿠버네티스와 같은 보안 서비스에서 컨테이너 실행
  • 클러스터 수준에서 네트워크 제한을 추가해 무단 트래픽 필터링
  • 클라우드 수준에서 안전하고 안정적인 컨테이너 플랫폼 선택
  • 컨테이너 이미지에서 멀웨어 스캔
  • 컨테이너 레지스트리에 강력한 제어 적용
  • 보안 툴을 사용해 컨테이너 런타임 중에 활성화될 수 있는 취약점 해결

FAQ

컨테이너는 수십 년 전에 처음 등장했지만, 오늘날 컴퓨팅 시대의 요구사항을 충족하기 위해 2013년에 Docker에 의해 재도입되었습니다.

Docker는 공통 운영 체제에서 컨테이너를 구축하고, 배포하고, 관리하기 위한 오픈 소스 플랫폼입니다. Docker 플랫폼은 OS 커널의 리소스 격리를 사용해 컨테이너를 패키징, 프로비저닝, 실행해 동일한 운영 체제에서 여러 컨테이너를 실행합니다.

쿠버네티스는 컨테이너화된 애플리케이션, 워크로드, 서비스를 자동화, 배포, 확장, 관리하기 위한 오픈 소스 컨테이너 오케스트레이션 플랫폼입니다.

OCI(Open Container Initiative)는 Linux Foundation의 개방형 거버넌스 조직으로, 컨테이너 형식과 런타임에 대한 개방형 산업 표준을 만드는 데 전념합니다.

고객이 Akamai를 선택하는 이유

Akamai는 온라인 비즈니스를 지원하고 보호하는 사이버 보안 및 클라우드 컴퓨팅 기업입니다. 시장을 대표하는 보안 솔루션, 탁월한 위협 인텔리전스, 글로벌 운영 팀이 모든 곳에서 기업 데이터와 애플리케이션을 보호하는 심층적 방어 기능을 제공합니다. Akamai의 풀스택 클라우드 컴퓨팅 솔루션은 세계에서 가장 분산된 플랫폼을 통해 성능과 경제성을 제공합니다. 글로벌 기업들은 비즈니스 성장에 필요한 업계 최고의 안정성, 확장성, 전문성을 제공하는 Akamai를 믿고 신뢰합니다.

Akamai 보안 솔루션 둘러보기