Linux 배포판 선택

bluehope·2023년 1월 4일
0

개발환경설정

목록 보기
3/6
post-thumbnail

개발환경 구성을 위해 Linux 서버를 구축하기로 했다면, 다양한 Linux의 배포판에 대해 파악하고, 선택이 필요하다. 우선 Linux는 Linus Torvalds 가 개발한 OS(Operating System, 운영체제)으로 컴퓨터가 동작하기 위한 운영체제이다. 운영체제는 사용자의 하드웨어, 시스템의 자원을 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어로, 입출력과 메모리 할당과 같은 하드웨어 기능에 대하여 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할을 하며, 하드웨어를 접근하기 위해 응용 프로그램에 파일 시스템 등의 서비스를 추상화하여 제공한다. 또한 여러 개의 응용 프로그램을 실행하고 있는 동안, 모든 프로세스들을 스케줄링하여 동시에 수행될 수 있도록 한다. Linux는 이런 역할을 수행하는 OS의 한 종류로 PC에서 많이 본 MS Windows나, 삼성 갤럭시 시리즈에서 채용한 Android OS 등과 경쟁하고 있다. 그러나 Linux의 역할에는 운영체제로의 역할 뿐만 아니라 실제로 컴퓨터를 사용하기 위한 다양한 추가 기능들이 같이 패키지로 되어 있어야 사용이 가능하다. 그렇지 않다면 Linux 커널을 우선 설치하고, 필요한 각종 응용 프로그램들을 각각 받아서 설치해야하므로 매우 번거러울 수 밖에 없다. 더욱이 각 응용 프로그램들은 상호 의존적인 경우가 많고, 각 버전별 지원이 다르므로 험난한 설치 과정이 불가피하게 된다. 따라서 Linux에서 동작하는 다양한 응용 프로그램들을 하나로 묶어 패키지를 만든 것이 Linux 배포판이다.
내가 처음 리눅스를 설치하던 199x년의 기억으로는 당연히 Red Hat 배포판을 설치했어야 했고, 일부 fedora, debian, slackware 등이 사용되었던 것 같다. 지금은 Linux의 시장이 확대되면서 Red Hat사의 RHEL(Red Hat Enterprise Linux)은 상용 SW에 걸맞은 지원에 대한 라이선스 비용을 받고 있어 아마도 많은 기업들에서 연간 유지 보수 비용을 지불하면서 사용하고 있을 것이고, 무료로 사용이 가능한 Ubuntu, CentOS 등 다양한 배포판들의 춘추전국시대가 되고 있는 듯 하다.
모든 배포판들을 확인할 수는 없으니, 가장 대중적으로 많이 사용되는 것들을 위주로 정리해 보자. Atlantic 이라는 사이트에서 Top 10 Linux Distributions에 대해서 간략히 정리해 보고, 최종적으로 Rocky Linux를 선택한 이유를 정리한다.

1. Ubuntu

Ubuntu 는 아마도 가장 많은 사용자를 가지고 있는 리눅스 배포판일 것이다. 서버용 에디션, 데스크탑PC용 에디션 등으로 구성되어 있는 무료 배포판이나, Canonical Advantage 사에서 유료 지원도 가능해서 기업 등에서도 선택하여 사용할 수 있다. '전 세계 사람 누구나 어렵지 않게 Linux를 사용하자' 라는 의도로 만들어졌다고 하며, Ubuntu란 남아프리카의 반투어로 '네가 있으니 내가 있다'라는 윤리 사상을 일컫는 말로 공동체 정신, 인류애를 뜻하는 단어라고 한다. 후술할 Debian에서 이어받은 APT를 통해 소프트웨어의 설치/관리/제거를 쉽게 할 수 있기 때문에 개인 데스크탑으로 많이 이용되고 있으며, 개발 서버용으로도 사용할 수 있는 배포판이다.

2. Rocky Linux

Rocky Linux는 시장에서 급격히 성장하고 있는 배포판으로 RHEL의 소스코드를 사용하는 버전으로 안정적인 서비스 지원이 가능하다는 장점이 있다. Rocky Linux는 Redhat사에서 CentOS에 대한 변경 정책으로 인해 상업적 이용이 가능한 서버용 OS를 지원하기 위해 2020년에 시작된 프로젝트이다. Rocky Linux는 CentOS가 이전에 했던 역할처럼 RHEL 의 오픈소스를 가져와 다시 빌드하고 패키징하는 것을 목표로 하기 때문에, CentOS를 대체하기에 개발 서버용으로 사용하는데 적합하다.

3. Red Hat Enterprise Linux (RHEL)

앞에서 이미 언급했지만, RHEL은 리눅스 배포판의 대명사 수준이었다. 옛날에는 무료로 배포하였으나, 지금의 RHEL은 별도 비용을 받아야 하는 구조로 다양한 기업에서 안정적 서비스를 제공하기 위해 사용하는 버전이다. Red Hat은 다양한 open-source software 개발에서 큰 역할을 하고 있으며, 최근 시장에서 게임 체인저 역할을 하는 Ansible, OpenStack, OpenShift 등에 대한 개발을 진행하고 있는 만큼 안정적인 지원과 유연한 사용이 가능할 수 있다는 장점이 있다. 그러나 비용 지불이 필요하기 때문에 CentOS나 Rocky Linux 등을 활용하는 것이 합리적이다.

4. Debian

Debian 은 FSF(Free Software Foundation)의 GNU프로젝트로 거의 모든 하드웨어에서 동작할 수 있도록 넓은 범위에서 안정적으로 사용할 수 있도록 만들어지는 배포판으로 비자유(즉, 상용 혹은 유료) 소프트웨어를 적극적으로 배제하고 있다. 또한 상업 회사가 아닌 FSF에서 주도하는 배포판이다 보니 판형 올림(버전업그레이드)가 상대적으로 느리다는 단점이 있고, 기업체에서 사용하기에 필요한 상업 지원이 어려운 문제가 있다. 이는 Debian이 패키지에 포함하는 소프트웨어들을 다른 배포판들에 비해 상당히 보수적으로 채용하기 때문이라고 한다. 그러나 APT 등의 기술을 이용하여 다양한 응용 프로그램을 손쉽게 사용/유지보수 할 수 있도록 지원하고 있다. Debian은 앞서 언급한 Ubuntu나, Raspberian 등으로 확장되고 있어 개발 환경에는 적합할 수 있는 배포판이다.

5. Kali Linux

Kali Linux는 Offensive Security사에서 만든 Debian 기반의 해킹/보안 관련 기능을 적극 수용한 운영체제로 모의 해킹 분야에서 최대 규모를 자랑하는 만큼 많은 툴 - AircrackNG, Metasploit, John the Ripper, Nessus, Nmap, SQLMap, Wireshark 등 -을 기본적으로 포함하고 있다. 특정한 목적을 위주로 구성된 배포판으로 개발용 서버 설정이라는 목적에는 적합하지 않다.

6. SUSE Linux

SUSE Linux 는 기업에서 mission-critical applications을 안정적으로 지원하기 위해 주로 사용되는 배포판이다. Red Hat처럼 SUSE도 OpenStack, Kubernetes 등의 다양한 툴의 자체 버전을 제공하는 등 기업용으로 사용하는데 적합하다. 나름 메이저 배포판이지만, Ubuntu 계열과 Red Hat 계열에게 밀리고 있는 상황으로, 개발용 서버 설정이라는 목적에 적합한 배포판이다.

7. Arch Linux

Arch Linux는 완전히 동작하는 가벼운 배포판으로, 가장 빠르게 업데이트가 진행되고 있는 배포판이라고 한다. 가볍게 사용자가 요구하는 기능만 동작할 수 있도록 구성할 수 있으나, 충분한 검증이 이뤄지기 전에 업데이트가 되는 수준이라 기업용으로는 우려가 될 수 있으나, 반면에 문제가 확인되면 가장 빠르게 조치되는 장점이 있어 대응에 오히려 유리할 수도 있다. 처음 설치된 OS에서 Pac-Man 이라는 응용 프로그램 분배 도구를 사용하여 사용자가 직접 OS에 필요한 기능을 추가가 가능하여 가벼운 OS로 구성에 적합하다. 그러나 OS의 설정 등에 대한 것이 목적이 아닌 개발이 목적인 경우에는 이미 서버용으로 잘 구성된 배포판을 사용하는 것이 보다 합리적이다.

8. Raspbian

Raspbian(또는 Raspberry Pi OS) 는 Debian 기반의 Raspberry Pi 를 위한 배포판이다. 매우 작은 컴퓨터를 목표로 구성하여 가볍고, 작은 용량에 사용하기 적합한 배포판이나, 개발용 서버 설정이라는 목적에 적합하지 않다.

9. MX Linux

윈도우와 가장 비슷한 환경을 제공하는 배포판으로, 데스크탑 PC 사용에 적합한 내용들을 포함한 배포판이다. 따라서 개발용 서버 설정이라는 목적에 적합하지 않다.

10. Fedora

Fedora는 Red Hat에서 지원하는 배포판으로 RHEL 와 달리 무료로 배포되고 있는 배포판이다. 기존 Red Hat 이 무료이던 시절에 분리되어 기업용인 RHEL은 유료로 판매되고, Fedora는 무료로 제공되고 있다. 그러나 Fedora는 RHEL의 사전 개발 중인 버전처럼 되어 있어 Fedora 보다는 차라리 CentOS가 보다 더 적합할 수 있다.

번외, CentOS

CentOS는 RHEL의 무료버전인 것 처럼, RHEL과 호환 되는 안정적인 운영체제이다. CentOS는 RHEL 이 정식 발표된 후에 소스를 가져다가 다시 빌드해서 만드므로 100% 바이너리 호환성을 갖고 있으며, 제품 지원 기간(End of Service가 되면 보안 패치 등이 안되어 중요한 상용 인프라를 개발하는 쪽에서는 심각한 문제)이 길고 별도의 비용 지불이 필요 없어 Web Server, 개발 시스템 등에 사용하기에 적합 했다. 그러나 2020년 12월 9일에 발표된 Red Hat 의 정책 변경에 따라, CentOS 8은 2021년에 기술지원이 종료(다행히 CentOS 7은 2024년가지 기술 지원)되고, 22년부터는 CentOS Stream 이라는 운영체제로 대체되었다. CentOS와 CentOS Stream의 가장 중요한 차이는 CentOS는 RHEL 발표된 소스를 빌드해서 배포판을 제공하여 안정적인 배포판이었으나, CentOS Stream 은 RHEL 발표 이전에 먼저 배포되는 형태로, Fedora 에서 추가된 신기능이나 app 등을 선별해서 검증하는 일종의 베타 처럼 운영될 것이라는 점이다. 즉, RHEL과 동일한 수준의 안정성을 제공하던 CentOS는 더 이상 업그레이드가 제공되지 않고, RHEL 의 베타 버전 정도로 배포가 되기 때문에 기업에서 사용하기 적합하지 않은 상황이 되었다.

결론

일반적인 기업들은 RHEL을 많이 사용한다. 자체 Linux에 대한 기술 지원이 가능한 인력을 유지하기 쉽지 않기 때문에, 벤더사의 지원이 가능한 OS를 선호하기 때문이다. Red Hat 사에서 2019년에 공개한 The state of Linux in the public cloud for enterprises를 기반으로 public cloud에 설치된 OS의 점유율은 Linux 54%, Windows 43%, 그리고 기타가 3%이며, 54%를 점유한 Linux 중 별도 지원 구독 없이 무료로 사용하는 경우가 65%, 별도 지원 구독을 사용하는 경우가 35% 라고 한다. 유료 구독의 비율은 다음 그림처럼 다양한 벤더사가 점유하고 있다. Red Hat과 Ubuntu가 대세를 점유하고 있기는 하다. Subscription linux vendor allocation by workload on public cloud
Linux OS 중 전체적인 점유율을 보면 RHEL이 1등이고, Ubuntu나, Oracle Linux(JAVA나, MySQL 등을 Oracle에서 인수 한 뒤에 발생한 일들 때문에 고려 대상에서 제외), SUSE Linux등이 많은 부분을 차지하고 있다. 따라서 대세에 따른다면 RHEL이나 Ubuntu가 서버용으로 가장 많이 사용되는 것으로 보이므로, 그 중 하나를 선택하는 것이 합리적으로 보인다. 기업에서는 RHEL을 많이 사용하므로 RHEL과 가장 호환되는 CentOS가 합리적인 대안이 될 수 있으나, CentOS는 위에서 언급한 문제가 있어 Rocky Linux 로 전환하는 것이 합리적으로 판단했다.
Current status of each linux os in organization

Rocky Linux 를 사용하기로 했다는 결론

자료 출처:

profile
다시 시작해보자!

0개의 댓글