TT Lab

한국어 English 日本語

시작하기
블로그

블로그

Red Hat vs Ubuntu 서버 운영 비교: 엔터프라이즈 관점 의사결정 가이드

들어가며

"Red Hat이냐, Ubuntu냐"는 리눅스 서버를 운영하는 조직이라면 반드시 마주치는 질문이다. 단순한 취향이 아니라 라이선스 비용, 기술 지원 SLA, 보안 패치 주기, 인증/컴플라이언스, 인력 풀 등 비즈니스에 직접 영향을 미치는 의사결정이다.

이 글에서는 RHEL(Red Hat Enterprise Linux) 계열과 Ubuntu Server를 엔터프라이즈 운영 관점에서 항목별로 비교하고, 워크로드별 추천 기준을 정리한다.


1. 배포판 계보와 현재 생태계

Red Hat 계열

Fedora (업스트림) → RHEL (엔터프라이즈) → CentOS Stream (중간 스트림)
                                       → Rocky Linux (커뮤니티 RHEL 클론)
                                       → AlmaLinux (커뮤니티 RHEL 클론)

Debian 계열

Debian (업스트림) → Ubuntu (Canonical) → Ubuntu LTS (장기 지원)
                                       → Ubuntu Pro (확장 보안)

2. 핵심 비교표

항목RHEL 9 / Rocky 9Ubuntu 24.04 LTS
커널5.14 (백포트)6.8
패키지 매니저DNF (yum 후속)APT
패키지 형식RPMDEB
Init 시스템systemdsystemd
기본 파이썬3.93.12
SELinux/AppArmorSELinux (기본 Enforcing)AppArmor (기본 Enabled)
방화벽firewalldufw / nftables
기본 지원 기간10년 (RHEL) / 10년 (Rocky)5년 (LTS)
확장 지원ELS 최대 13년Ubuntu Pro 12년
라이선스 비용RHEL: 서버당 연간 구독 / Rocky: 무료무료 (Pro 별도)
인증·컴플라이언스FIPS 140-2/3, CC, STIGFIPS 140-2 (Pro), CIS
컨테이너 기반 이미지UBI (Universal Base Image)ubuntu:24.04
클라우드 지원AWS, Azure, GCP 전체AWS, Azure, GCP 전체

3. 패키지 관리 비교

DNF (Red Hat 계열)

# 패키지 검색·설치·제거
dnf search nginx
dnf install -y nginx
dnf remove nginx

# 패키지 정보·파일 목록
dnf info nginx
rpm -ql nginx

# 보안 업데이트만 적용
dnf update --security

# 모듈 스트림 (RHEL 8+)
dnf module list nodejs
dnf module enable nodejs:20
dnf module install nodejs:20/common

# 트랜잭션 이력·롤백
dnf history
dnf history undo 15

# 저장소 관리
dnf repolist
dnf config-manager --add-repo https://repo.example.com/el9/

APT (Ubuntu)

# 패키지 검색·설치·제거
apt search nginx
apt install -y nginx
apt remove nginx
apt purge nginx  # 설정 파일까지 삭제

# 패키지 정보·파일 목록
apt show nginx
dpkg -L nginx

# 보안 업데이트만 적용
apt update
apt upgrade -y -o Dpkg::Options::="--force-confold"  # 기존 설정 유지
# 또는 unattended-upgrades 활용

# 자동 보안 업데이트 설정
apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades

# PPA 관리
add-apt-repository ppa:deadsnakes/ppa
apt update

# 버전 고정
apt-mark hold nginx
apt-mark unhold nginx

패키지 관리 비교 요약

기능DNF (RHEL)APT (Ubuntu)
트랜잭션 롤백dnf history undo직접 지원 없음
모듈 스트림dnf modulePPA / Snap
보안 패치 분리--security 플래그unattended-upgrades
의존성 해결libsolvapt 내장
오프라인 설치dnf download + createrepoapt-offline / dpkg -i
병렬 다운로드기본 지원apt 2.0+ 기본 지원

4. 보안 모델 비교

SELinux (RHEL 계열)

MAC(Mandatory Access Control) 기반으로 프로세스가 접근할 수 있는 파일·포트·시스템 콜을 정책으로 제한한다.

# 상태 확인
getenforce          # Enforcing / Permissive / Disabled
sestatus            # 상세 상태

# 컨텍스트 확인
ls -Z /var/www/html
ps -eZ | grep nginx

# 불리언 토글
getsebool -a | grep httpd
setsebool -P httpd_can_network_connect on

# 문제 진단
ausearch -m avc -ts recent
sealert -a /var/log/audit/audit.log

# 커스텀 정책 모듈
audit2allow -a -M my_policy
semodule -i my_policy.pp

AppArmor (Ubuntu)

경로 기반 MAC으로 프로필 파일을 통해 프로그램별 접근 권한을 정의한다.

# 상태 확인
aa-status
apparmor_status

# 프로필 모드 전환
aa-enforce /etc/apparmor.d/usr.sbin.nginx
aa-complain /etc/apparmor.d/usr.sbin.nginx

# 로그 기반 프로필 생성
aa-genprof /usr/sbin/myapp
aa-logprof

보안 모델 비교

항목SELinuxAppArmor
접근 제어 방식레이블 기반 (inode)경로 기반
학습 곡선높음낮음
기본 정책 범위매우 광범위주요 서비스 위주
컨테이너 격리탁월 (MCS)기본 수준
정책 디버깅audit2why, sealertaa-logprof
엔터프라이즈 인증STIG, CC, FIPS 필수CIS Benchmark

실전 조언: SELinux를 Disabled로 끄는 것은 안티패턴이다. 문제가 생기면 Permissive로 전환하고 로그를 분석하여 정책을 조정하라.


5. 시스템 관리 명령어 매핑

작업RHEL / RockyUbuntu
서비스 시작/정지systemctl start nginxsystemctl start nginx
부팅 시 서비스 활성화systemctl enable nginxsystemctl enable nginx
방화벽 포트 열기firewall-cmd --add-port=80/tcp --permanent && firewall-cmd --reloadufw allow 80/tcp
네트워크 설정nmcli / nmtuinetplan apply
호스트명 변경hostnamectl set-hostnamehostnamectl set-hostname
시간 동기화chronysystemd-timesyncd / chrony
사용자 생성useradd -m -s /bin/bash useradduser user
디스크 파티션fdisk / partedfdisk / parted
LVM 관리lvm 기본 내장apt install lvm2
커널 파라미터sysctl -psysctl -p

6. 컨테이너와 클라우드 네이티브

컨테이너 베이스 이미지

항목UBI 9 (Red Hat)ubuntu:24.04
이미지 크기~215MB~78MB
Minimal 변형ubi9-minimal (~100MB)ubuntu:24.04 자체가 경량
Micro 변형ubi9-micro (~35MB)-
재배포자유 (UBI EULA)자유
보안 스캔Red Hat 취약점 DBCanonical USN
패키지 매니저microdnf / dnfapt
# RHEL 계열 멀티스테이지
FROM registry.access.redhat.com/ubi9/ubi-minimal:latest AS builder
RUN microdnf install -y java-17-openjdk-headless && microdnf clean all
COPY target/app.jar /app.jar

FROM registry.access.redhat.com/ubi9/ubi-micro:latest
COPY --from=builder /usr/lib/jvm /usr/lib/jvm
COPY --from=builder /app.jar /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
# Ubuntu 멀티스테이지
FROM ubuntu:24.04 AS builder
RUN apt-get update && apt-get install -y --no-install-recommends \
    openjdk-17-jre-headless && rm -rf /var/lib/apt/lists/*
COPY target/app.jar /app.jar

FROM gcr.io/distroless/java17-debian12
COPY --from=builder /app.jar /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]

Kubernetes 호환성

두 배포판 모두 Kubernetes를 완벽히 지원한다. 차이는 주로 관리형 서비스 기본 OS에서 나타난다.

클라우드관리형 K8s 노드 기본 OS
AWS EKSAmazon Linux 2023 (RHEL 계열) / Bottlerocket
Azure AKSUbuntu (기본) / Azure Linux (CBL-Mariner)
GCP GKEContainer-Optimized OS (Chromium 기반) / Ubuntu

7. 라이선스·비용·지원 비교

항목RHELRocky LinuxUbuntu LTSUbuntu Pro
라이선스 비용연 $799~$13,000+/서버무료무료소규모 무료, 엔터프라이즈 유료
기술 지원Red Hat 24/7커뮤니티커뮤니티Canonical 24/7
SLA1~4시간 응답없음없음1시간 응답
보안 패치Red Hat SecurityRHEL 동기화Canonical USN확장 보안 (12년)
컴플라이언스FIPS, CC, STIG, HIPAAFIPS (자체 인증)CISFIPS, CIS, DISA-STIG
교육·인증RHCSA, RHCE--CUA (Canonical)

실제 비용 시뮬레이션 (100대 서버 기준)

시나리오연간 비용 (추정)
RHEL Standard (100대)$80,000~$130,000
Rocky Linux + 외부 기술 지원$20,000~$50,000
Ubuntu LTS (커뮤니티)$0 (인력 비용 별도)
Ubuntu Pro (100대)$25,000~$50,000

8. 워크로드별 추천

워크로드추천 배포판근거
금융·의료 (규제 산업)RHELFIPS/CC/STIG 인증, 감사 이력
SAP / Oracle DBRHEL벤더 공식 지원
스타트업 웹 서비스Ubuntu LTS커뮤니티·최신 패키지·비용
Kubernetes 워크로드Ubuntu 또는 Rocky클라우드 네이티브 생태계
ML/AI 워크로드UbuntuNVIDIA 드라이버·CUDA 우선 지원
레거시 Java 서비스RHEL / RockyJBoss/WildFly 인증
CI/CD 러너UbuntuGitHub Actions, GitLab Runner 기본
내부 도구 서버Rocky / AlmaLinuxRHEL 호환 + 무료

9. 마이그레이션 체크리스트

CentOS → Rocky Linux / AlmaLinux

# Rocky Linux 마이그레이션 (in-place)
curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
chmod +x migrate2rocky.sh
./migrate2rocky.sh -r  # 변환 실행

# 검증
cat /etc/os-release
rpm -qa | grep rocky
dnf check

Ubuntu ↔ RHEL 전환 시 확인사항

확인 항목세부 내용
패키지 매핑apt 패키지 → dnf 패키지 이름 매핑 목록 작성
서비스 설정systemd 유닛 파일 경로·옵션 검증
보안 정책AppArmor 프로필 → SELinux 정책 변환
네트워크netplan → NetworkManager 전환
방화벽ufw 룰 → firewalld 룰 전환
자동화 스크립트Ansible playbook의 apt → dnf 모듈 교체
모니터링에이전트 패키지·로그 경로 확인
백업/복구스냅샷 또는 이미지 백업 후 전환

10. 의사결정 플로우차트

조직에 규제 컴플라이언스(FIPS, CC, STIG) 요구사항이 있는가?
├── Yes → RHEL (또는 Ubuntu Pro FIPS)
└── No
    ├── 벤더 인증이 필요한 상용 소프트웨어를 운영하는가? (SAP, Oracle 등)
    │   ├── Yes → RHEL
    │   └── No
    │       ├── 24/7 벤더 기술 지원이 필요한가?
    │       │   ├── Yes + 예산 있음 → RHEL 또는 Ubuntu Pro
    │       │   └── No
    │       │       ├── RHEL 호환이 필요한가? (사내 RPM, 기존 인프라)
    │       │       │   ├── Yes → Rocky Linux / AlmaLinux
    │       │       │   └── No → Ubuntu LTS
    │       │       └──
    │       └──
    └──

마무리

"최고의 배포판"은 없다. 조직의 규제 요건, 기술 역량, 예산, 기존 인프라에 맞는 배포판이 올바른 선택이다. 핵심은 다음 세 가지다.

  1. 컴플라이언스가 요구되면 RHEL이 가장 안전한 선택이다.
  2. 비용을 줄이면서 RHEL 호환을 원하면 Rocky/AlmaLinux를 검토하라.
  3. 최신 에코시스템과 커뮤니티 활력을 원하면 Ubuntu LTS가 합리적이다.

어떤 배포판을 선택하든, 패치 관리·보안 정책·자동화는 배포판과 무관하게 반드시 갖춰야 할 기본기다.

로그인하면 좋아요를 누를 수 있습니다

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다