CentOS 지원 종료 – 새로운 OS선택이 아닌 컨테이너로의 전환
CentOS 지원 종료에 대응하는 스마트한 방법! 다른 OS 선택이 아닌 컨테이너로의 전환을 통해 유연성과 효율성을 확보하세요.
들어가며…
안녕하세요 오픈마루입니다.
2020년 12월, Red Hat은 2024년 6월 30일부로 CentOS Linux 7에 대한 지원을 종료한다는 계획을 밝혔습니다.
Red Hat은 CentOS Linux7를 사용중이라면 업데이트, 보안 패치, 신규 기능을 계속해서 받아볼 수 있도록 새로운 운영 체제(OS)로 마이그레이션을 안내하기도 했는데요.
현재 사용중인 입장에서는 Red Hat Enterprise Linux 마이그레이션이 좋을지, Rocky Linux, Ubuntu 등 타 오픈소스 리눅스로 전환하는 것이 좋을지 등 고민이 많으실거라 생각이 됩니다.
하지만 다른 오픈소스 OS로 교체하고 마이그레이션을 한다고 근본적인 문제가 해결되지는 않습니다. OS에 구애받지 않기 위해서는 하드웨어 및 OS로부터 완전히 자유로워질 수 있는 컨테이너 기술 기반의 환경으로 변화가 필요한데요.
오늘은 OS에 구애받고싶지 않은 분들을 위한 방법으로 컨테이너에 대한 이야기를 해볼까 합니다.
컨테이너와 가상머신(VM)의 차이
안녕하세요 오픈마루입니다.
가상머신과 컨테이너는 둘 다 소프트웨어 개발과 배포를 위한 환경을 구축하는 데 사용되는 기술입니다. 가상머신과 컨테이너 모두 여러 응용 프로그램을 하나의 시스템에서 실행하고자 하는 목적으로 사용됩니다.
가상머신은 전체 운영 체제를 가상화하므로 더 많은 오버헤드가 발생할 수 있고, 컨테이너는 공유 커널을 사용하므로 더 가볍고 빠르며 효율적입니다. 현재 이슈가 되고 있는 CentOS Linux 7은 가상머신에서 주로 서버 가상화를 위해 사용되며 이를 통해 여러 대의 서버를 단일 머신에서 실행하고 리소스를 효율적으로 관리할 수 있었습니다.
여러 개의 가상머신을 관리하고 각각의 운영체제와 응용 프로그램을 업데이트하는 등 복잡한 유지보수 과정이 필요합니다.
가상머신(Virtual Machine, VM)
- 호스트 컴퓨터에서 소프트웨어를 실행하기 위한 가상 환경을 제공
- 호스트 시스템 위에 가상화된 하드웨어를 생성하고, 그 위에 게스트 운영 체제를 설치하여 독립된 환경을 제공
- 하이퍼바이저(Hypervisor)라는 소프트웨어를 사용하여 호스트 시스템의 자원을 가상 환경으로 나눔
- 각 가상머신은 자체 운영 체제, 라이브러리 및 응용 프로그램을 가질 수 있으며, 서로 간섭 없이 독립적으로 실행
컨테이너(Container)
- 응용 프로그램과 그 의존성을 패키징하고 실행하기 위한 방법
- 컨테이너는 호스트 운영 체제의 리소스를 공유하면서 각각의 컨테이너가 격리된 환경에서 실행
- 컨테이너는 가상화보다 가볍고 빠르며, 더 빠른 시작 시간을 제공
- 컨테이너는 Docker와 같은 플랫폼을 통해 관리되며, 컨테이너 이미지를 사용하여 응용 프로그램을 패키징 및 배포 가능
- 컨테이너는 런타임 환경과 함께 필요한 모든 것을 포함하므로, 배포가 일관되고 높은 이식성을 가짐
단독주택 가상머신과 아파트 컨테이너
더 쉬운 비유를 들어볼까요? 물리/가상서버는 단독주택, 클라우드 네이티브(컨테이너 기술 기반)는 아파트에 비유할 수 있는데요.
단독주택은 기반 인프라를 집주인이 직접 관리해야하고, 1주택에 보통 1가구가 거주하니 토지 대비 집적도가 낮습니다. 그리고 관리사무소가 없으니 누군가가 대신 관리해주는 것도 없죠. 물리/가상 서버도 단독주택과 마찬가지인데요. 컴퓨터 리소스만 제공할뿐 사용자가 소프트웨어 설치 등 직접 관리해야하고, 가상화 기반으로 동작하다보니 Guest OS 반드시 있어야 하니 집적도도 상대적으로 낮습니다.
아파트는 엘리베이터, 복도, 계단과 같은 인프라를 입주민과 함께 사용하고 건설할 때부터 시공사로부터 제공받습니다. 또한, 토지 대비 다가구가 살기 때문에 집적도도 높습니다. 그리고 관리사무소가 있어서 아파트 거주 환경에 관련한 관리도 대신 해주죠. 컨테이너 기술을 기반으로 구축되는 클라우드 네이티브도 비슷합니다. 아파트에서 거주하면서 반드시 필요한 엘리베이터, 복도, 계단 등의 인프라같이 애플리케이션 운영에 필요한 기능들을 제공받고 플랫폼 사용자들과 공유해서 사용합니다. 그리고 컨테이너 기반이다보니 Guest OS와 불필요한 소프트웨어가 없어서 상대적으로 집적도가 훨씬 높으며 플랫폼에 의하여 자동으로 관리됩니다.
OS 부팅 시간이 필요 없는 컨테이너
가상화 환경에서는 게스트 OS가 있는 특징이 있습니다. 그렇기 때문에 가상머신을 기동시키는데에는 일반적으로 OS를 기동하는것과 같은 소요시간이 필요합니다.
가상머신의 부팅 절차를 살펴보면 하드웨어 초기화를 해야하고 부트로더가 실행됩니다. 정상적으로 동작한다면 리눅스 커널이 실행되고 최종적으로 systemd에 등록한 서비스가 동작합니다. 이때 최소한으로 부팅 절차가 수행된다 해도 대략적으로 50초 정도의 시간이 걸립니다.
반면, 컨테이너 환경에서 운영 체제(OS)의 필요성이 없습니다. 컨테이너는 독립적으로 실행되며 필요한 모든 라이브러리, 실행 파일 및 설정을 포함하고 있습니다. 이는 컨테이너가 호스트 운영 체제의 리소스를 공유하면서 동작하기 때문입니다.
그렇기에 하드웨어 초기화, 부트로더 실행, 커널 실행의 절차가 생략됩니다. 서비스인 웹서버만 동작하기에 짧게는 1초만에 컨테이너를 실행할 수 있습니다.
OS가 필요없는 컨테이너 환경은 개발자와 운영팀이 애플리케이션을 개발하고 배포할 때 운영 체제의 버전이나 구성에 대해 걱정할 필요가 없음을 의미합니다. 또한 컨테이너 환경에서는 여러 애플리케이션을 한 대의 머신에서 실행할 수 있으며, 각 애플리케이션은 서로 격리되어 있습니다. 이는 애플리케이션 간의 충돌을 방지하고 보안을 강화할 수 있는 장점을 제공합니다.
따라서 컨테이너 환경에서는 운영 체제의 필요성을 완전히 제거할 수 있으며, 애플리케이션을 더욱 효율적으로 관리하고 배포할 수 있습니다.
마치며…
가상머신과 컨테이너의 차이와 컨테이너 환경의 장점을 살펴보았습니다. 가상머신은 단독주택과 같이 직접적인 구축 및 관리가 필요하며, 시작 시간이 오래 걸리는 경향이 있습니다. 반면에 컨테이너는 아파트와 같이 자동화된 관리가 가능하며, 빠른 시작과 확장, 이식성이 뛰어나다는 것을 확인했습니다.
컨테이너의 빠른 시작 시간과 뛰어난 이식성은 개발자들이 애플리케이션을 더 신속하게 개발하고 배포할 수 있도록 돕습니다. 또한, 컨테이너는 클라우드 환경에서의 확장성과 유연성을 제공하여 요구 사항의 변화에 신속하게 대응할 수 있습니다. 이러한 이유로 많은 기업과 개발팀에게 필수적인 도구로 자리 잡고 있습니다.
그러므로 CentOS 지원 종료에 따라 컨테이너 전환을 고려해보시는 것도 좋은 대안 중 하나라고 생각합니다.
컨테이너 전환에 대해 궁금한 사항이 있거나 관련한 제품 문의를 원한다면 오픈마루로 연락주세요.
OWASP ZAP – DevOps를 위한 Self 웹 취약점 점검 도구 소개
/in Container, Kubernetes, Linux/by 오픈마루 마케팅3Dogfooding – 사용자 입장에서 제품이나 서비스의 품질과 UX를 확인할 수 있습니다.
/in OpenShift, Red Hat, Seminar/by 오픈마루 마케팅3Apache , Tomcat , JBoss , Wildfly 설치 보고서
/in Kubernetes, OpenShift, Red Hat/by 실장 님