컨테이너는 애플리케이션을 이식 가능한 형태로 만들고 지원하도록 설계된 가상화 기술입니다. 즉, 다양한 플랫폼에 애플리케이션을 쉽게 배포할 수 있게 해 줍니다. 컨테이너는 애플리케이션 코드 자체, 애플리케이션 실행에 필요한 라이브러리 등의 종속성, 애플리케이션과 그 종속성을 위한 런타임 환경 등 애플리케이션에 필요한 모든 요소를 하나로 패키징하여, 플랫폼 간에 이동하고 독립적으로 실행할 수 있는 형태로 만듭니다. 컨테이너는 일반적인 OS 런타임 환경에서 애플리케이션을 추상화한 것입니다.

Docker는 가장 잘 알려진 컨테이너 구현 형식입니다. 하지만 rkt/CoreOS, containerd, Hyper‑V 컨테이너와 같은 다른 컨테이너 기술뿐 아니라 cgroups 및 namespaces와 같은 하위 수준의 기술도 있습니다. 이 두 기술은 컨테이너 엔진과 유사하게 애플리케이션을 격리하는 데 사용되지만, 컨테이너와 같은 방식으로 격리된 이식성을 제공하지는 않습니다. Docker나 rkt 같은 플랫폼 도구를 사용하여 컨테이너를 직접 관리할 수도 있지만, 대부분의 배포에서는 컨테이너 관리를 위해 Kubernetes 같은 오케스트레이션 도구를 사용합니다. 필수는 아니지만 Kubernetes는 프로덕션급 컨테이너 배포를 위한 표준 도구로 자리 잡고 있습니다.

컨테이너는 애플리케이션을 더 작고 독립적인 구성 요소로 분할하여 인프라 소유자와 개발자 간에 역할을 나눌 수 있게 해 주므로 매우 널리 사용되는 아키텍처 방식이 되었습니다. 개발 단계에서는 여러 팀이 다양한 구성 요소를 병렬로 작업할 수 있고, 배포 단계에서는 특정 컨테이너를 플랫폼 간에 이동할 수 있다는 이점이 있습니다. 또한 컨테이너는 변경 불가능한 플랫폼을 제공할 수 있어 애플리케이션 및 인프라 관리자에게 더욱 간소화된 도구를 제공합니다. 이를 통해 개발자는 해당 요구 사항을 직접 관리하지 않고도 정해진 요구 사항에 맞춰 애플리케이션 컨테이너를 게시할 수 있습니다.

‘애플리케이션 컨테이너화’라는 용어는 애플리케이션을 표준 Linux 런타임 환경에서 다양한 환경에서 실행할 수 있는 독립형 형태로 마이그레이션하는 프로세스를 의미하는 데 흔히 사용됩니다. 많은 기업이 이미 컨테이너화 여정을 상당히 진행했으며, 기본 컨테이너 또는 Kubernetes와 같은 도구를 활용하는 보다 포괄적인 컨테이너 관리 전략으로의 마이그레이션을 시작했습니다.

NGINX는 어떻게 도움이 될까요?

모든 NGINX 제품은 컨테이너에서 실행할 수 있습니다. 여기에는 NGINX Open Source, NGINX Plus(선택적으로 NGINX App Protect 포함), NGINX Unit, NGINX Service Mesh, NGINX Ingress Controller가 포함됩니다. 또는 컨테이너 기술을 기반으로 구축됩니다(NGINX Controller).

지금 바로 문의하여 최신 애플리케이션 제공을 어떻게 지원해 드릴 수 있는지 알아보세요.