본문 바로가기

PRODUCT/OS

컨테이너 기본 이미지로 Red Hat Universal Base Image(UBI)를 선택해야 하는 이유

 엔터프라이즈 컴퓨팅 환경에서 컨테이너 플랫폼의 위상이 높아지고 있습니다. Red Hat OpenShift 같은 엔터프라이즈 컨테이너 플랫폼은 기업이 오랜 기간 운영해온 애플리케이션을 현대화(Application Modernization) 하는 동시에 클라우드 네이티브(Cloud Native) 앱 운영 기반 역할을 합니다. 엔터프라이즈 애플리케이션의 과거, 현재, 미래를 잇는 역할을 엔터프라이즈 컨테이너 플랫폼이 하는 것이라 이해할 수 있습니다. 여기에 더해 엔터프라이즈 컨테이너 플랫폼은 하이브리드 멀티 클라우드 환경에 일관성을 부여하는 역할도 합니다. 예를 들어 많은 기업이 Red Hat OpenShift를 중심에 놓고 온프레미스, 하이브리드, 퍼블릭 클라우드 등 환경 구분 없이 컨테이너를 배포하고 운영합니다. 이번 포스팅에서는 다양한 컴퓨팅 환경을 대상으로 컨테이너 기반 앱을 개발해 배포하는 데 있어 전제 조건이라 할 수 있는 컨테이너 기본 이미지(Container Base Images)로 많은 조직이 Red Hat UBI(Universal Base Image)를 선택해야 하는 이유를 알아보겠습니다.

 

이미지 표준화의 역사

 

레드햇은 표준 이미지의 중요성을 오래 전부터 강조하였습니다. 레드햇은 2000년대 초반부터 컨설팅 조직과 파트너를 통해 RHEL(Red Hat Enterprise Linux)를 사용하는 조직이 표준 운영 환경(SOE)을 구축할 수 있도록 지원하였습니다. 그리고 2014년 RHEL 7이 출시되었을 때 RHEL 이미지를 제공하기 시작하였습니다. SOE의 이점은 모두가 인정합니다.

 

레드햇 SOE는 조직이 일관되고 안정적인 IT 환경을 만들기 위해 정의한 컴퓨터 운영체제와 소프트웨어 구성 요소들의 집합을 말합니다. 이는 조직 내 모든 서버에서 같은 운영체제, 소프트웨어 및 설정을 사용하여 일관성을 보장합니다. 또한, 레드햇 SOE는 검증된 구성 요소를 사용해 시스템의 안정성을 높이고, 정기적인 보안 패치와 업데이트로 보안을 강화합니다. 이를 통해 시스템 관리의 효율성을 높이고, 각종 규정을 잘 따르는 시스템 환경을 구축할 수 있습니다.

 

UBI는 표준 환경의 범위를 컨테이너로 규정한 것이라 보면 됩니다. SOE와 UBI의 차이는 다음 표와 같이 정리할 수 있습니다.

구분 레드햇 SOE 레드햇 UBI
목적 표준화된 IT 환경 구축 컨테이너 기반 애플리케이션 개발 및 배포
적용 대상 물리적 서버, 가상 서버 컨테이너
핵심 요소 운영체제, 소프트웨어 구성 기본 이미지 세트, 언어 런타임 이미지 세트, 공통 애플리케이션 종속성을 충족하는 YUM 저장소 관련 패키지 세트
라이프사이클 5년 이상 10년 이상
비용 구독 기반 무료

 

컨테이너 기본 이미지의 중요성

 

그렇다면 레드햇은 왜 UBI를 제공하는 것일까요? 컨테이너화된 애플리케이션의 개발 및 배포 과정에서 컨테이너 기본 이미지를 사용하는 것은 몇 가지 중요한 이유를 꼽아 볼 수 있습니다. 먼저 컨테이너 기본 이미지는 모든 사용자에게 일관된 작업 환경을 제공합니다. 이런 일관성은 개발과 운영 효율 개선과 작업과 운영 시간 단축 등의 효과를 제공합니다. 다음으로 최적화 과정을 거친 표준 이미지는 컨테이너 크기를 줄이고 성능을 높여 배포와 실행에 필요한 자원이나 비용을 줄이는 데 도움이 됩니다.

 

보안도 표준화의 장점입니다. 기본 이미지는 지속해서 보안 패치와 업데이트가 적용되어 보안 강화에 큰 도움이 됩니다. 마지막으로 표준 이미지는 DevOps 체계 아래 빠르게 개발과 운영 사이클이 돌아가는 현장에서 여러 이해관계자 간 협업을 위한 공통된 기준 역할을 합니다. 여러 부서와 팀이 작업을 할 때 발생할 수 있는 혼란을 줄이고 협업을 원활히 하는 데 있어 ‘표준’의 중요성은 따로 강조할 필요가 없을 것입니다.

 

기업들이 레드햇 UBI를 선택해야 이유

 

컨테이너 기본 이미지는 현재 주류로 사용하는 운영체제와 컨테이너 플랫폼이 무엇이냐에 따라 선택 기준이 달라질 수 있습니다. 컨테이너 호스트로 RHEL, OpenShift를 사용하고 있다면? 최선의 선택은 바로 UBI입니다. UBI는 컨테이너 기본 이미지 구축과 관리 부담 없이 기업이 표준화를 수행할 수 있도록 돕습니다. 만약 UBI가 없다면? 기업은 운영체제 기본 이미지를 사용하거나, Docker나 Buildah 같은 이미지 빌딩 도구를 이용해 컨테이너 기본 이미지를 만들어야 합니다. 그리고 Git이나 Docker Registry 같은 버전 관리 도구로 이미지를 관리해야 합니다. RHEL, OpenShift 환경에서 UBI를 이용하면 이런 수고를 덜 수 있습니다. UBI는 엔터프라이즈 컴퓨팅 환경에 여러모로 잘 맞습니다. 주요 특징을 알아보겠습니다. 

 

UBI는 엔터프라이즈 수준의 안정성을 제공합니다. 보안도 걱정 없습니다. 레드햇은 정기적인 보안 업데이트와 패치를 통해 UBI를 지원합니다. 이는 애플리케이션을 최신의 보안 상태로 유지하는 데 도움이 됩니다. 다음으로 UBI는 다양한 프로그래밍 언어와 애플리케이션 스택을 지원합니다. 개발자는 필요한 도구와 라이브러리를 쉽게 추가할 수 있으며, 레드햇의 방대한 문서와 커뮤니티 지원을 활용할 수 있습니다. 이외에도 UBI 기반의 애플리케이션은 RHEL, OpenShift을 비롯한 다양한 플랫폼에서 운영될 수 있으며 온프레미스를 넘어 하이브리드 멀티 클라우드 환경까지 운영을 지원합니다. 이처럼 장점이 많은 UBI는 라이선스 제한 없이 사용할 수 있습니다.

 

 

 

UBI 둘러보기

 

UBI는 크게 기본 이미지, 언어 런타임 이미지, YUM 저장소 관련 패키지 세트로 구분할 수 있습니다. 먼저 기본 이미지 세트는 다음과 같이 4개의 이미지로 구성됩니다.

 

  • ubi-micro: 아주 작은 용량의 컨테이너 이미지로, 최소한의 시스템으로 구성되어 있습니다.
  • ubi-minimal: 필수적인 기능만 포함한 경량 이미지로, 보안과 성능에 초점을 맞추고 있습니다.
  • ubi Standard: 표준 운영체제 기능을 모두 포함한 이미지로, 대부분의 일반적인 용도에 적합합니다.
  • ubi-init: 애플리케이션 초기화에 필요한 도구와 스크립트를 포함한 이미지로, 복잡한 초기화가 필요한 애플리케이션에 유용합니다.

 다음으로 언어 런타임 이미지 세트는  Node.js, Ruby, Python, PHP, Perl 등 다양한 프로그래밍 언어의 실행 환경을 포함한 이미지 세트입니다. 각각의 언어에 최적화된 환경을 제공하여, 개발자가 편리하게 애플리케이션을 개발하고 배포할 수 있도록 도와줍니다. 마지막으로 YUM 저장소의 관련 패키지 세트는 공통 애플리케이션 종속성을 충족하는 다양한 패키지들이 포함된 저장소입니다. 이를 통해 필요한 소프트웨어 패키지를 쉽게 설치하고 관리할 수 있습니다.

 

 

 

참고로 UBI의 모든 컨텐츠는 RHEL의 일부입니다. 이게 뜻하는 바는? RHEL의 안정성과 보안을 그대로 제공한다는 의미입니다. 또한, UBI를 사용해 만든 컨테이너는 RHEL이나 OpenShift 환경에서 실행될 경우 레드햇의 지원을 받을 수 있습니다. 이는 직접 기본 컨테이너 이미지를 만들어 사용하는 것과 비교할 수 없는 혜택이라 할 수 있습니다.

 

 

RHEL나 OpenShift를 컨테이너 호스트 환경으로 이용하고 있다면? 레드햇이 제공하는 컨테이너 호환성 메트릭을 참조해 UBI 이미지 버전을 확인할 수 있습니다. 조직에 최적화된 UBI 활용 방법을 안내받고 싶다면, 락플레이스가 도움을 드리겠습니다.