개발노트
목록

CentOS에서 Rocky Linux 10으로! 왜 옮겨야 할까? 장점 완벽 분석 & MariaDB 설치 가이드

RockyLinux10 CentOS마이그레이션 MariaDB설치 리눅스서버 서버안정성 방화벽설정 RHEL호환 리눅스장점 RockyLinux특징 서버관리
Server 2025.04.30 21 회 읽음
Server 12일 전 21


CentOS의 아쉬움, Rocky Linux 10이 채우다

그동안 안정적인 서버 운영을 위해 CentOS를 애용하셨겠지만, Red Hat의 CentOS Stream 정책 변경으로 인해 많은 사용자들이 변화를 모색하고 있습니다. 더 이상 CentOS가 RHEL(Red Hat Enterprise Linux)의 다운스트림 역할을 하지 않게 되면서, 안정적인 장기 지원(LTS) 버전을 원하는 사용자들에게는 아쉬움이 남았습니다.

바로 이 지점에서 Rocky Linux가 등장합니다. Rocky Linux는 CentOS 창립자인 Gregory Kurtzer가 주도하여 RHEL의 완전한 오픈소스 바이너리 호환을 목표로 탄생한 운영체제입니다. 즉, CentOS의 정신을 계승하면서도 RHEL과 동일한 안정성과 신뢰성을 제공한다는 것이 가장 큰 장점입니다.



Rocky Linux 10, 무엇이 더 좋아졌을까? 

CentOS에서 Rocky Linux 10으로 전환했을 때 체감할 수 있는 주요 장점들은 다음과 같습니다.

  • 변함없는 안정성과 호환성: Rocky Linux 10은 RHEL 10과 100% 바이너리 호환을 목표로 합니다. 이는 기존 CentOS 환경에서 사용하던 애플리케이션과 설정 변경 없이 그대로 Rocky Linux 10에서도 작동할 가능성이 매우 높다는 것을 의미합니다. 마이그레이션 과정에서의 부담을 크게 줄여줍니다.
  • 장기적인 안정적인 지원: Rocky Linux는 RHEL과 마찬가지로 장기간의 업데이트와 보안 지원을 제공합니다. 이는 서버 운영의 안정성을 확보하고, 장기적인 관점에서 비용 효율성을 높여줍니다.
  • 커뮤니티 주도의 활발한 개발: Rocky Linux는 기업의 영향력에서 벗어나 커뮤니티 주도로 개발됩니다. 이는 사용자들의 피드백을 적극적으로 반영하고, 더욱 투명하고 개방적인 운영체제 생태계를 만들어갑니다.
  • 최신 기술의 빠른 도입 (예상): Rocky Linux 10은 RHEL 10을 기반으로 하므로, RHEL의 최신 기술과 기능들을 빠르게 경험할 수 있을 것으로 기대됩니다. 이는 서버 환경을 최신 기술 트렌드에 맞춰 유지하고, 성능 향상을 도모하는 데 유리합니다. (현재 RHEL 10은 개발 중이며, Rocky Linux 10의 구체적인 특징은 RHEL 10 출시 이후 더욱 명확해질 것입니다)
  • CentOS 사용자에게 친숙한 환경: Rocky Linux는 CentOS와 유사한 구조와 명령어를 사용하므로, 기존 CentOS 사용자들은 큰 어려움 없이 새로운 환경에 적응할 수 있습니다.



Rocky Linux 10에 MariaDB 설치하기

이제 Rocky Linux 10에 MariaDB를 설치하는 방법을 알아보겠습니다.

yum update 명령을 통해 패키지를 먼저 업데이트 합니다.  # dnf install mariadb-server mariadb 명령어로 mariadb를 설치하고 서비스를 시작하고 실행 상태를 확인 합니다.

# yum update
# dnf install mariadb-server mariadb
# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb

초기 MariaDB 설정을 강화합니다.

# sudo mysql_secure_installation


MariaDb 접속을 통해 테스트를 합니다. 초기 비번은 설정되어 있지 않아 비밀번호 입력 부분에서는 엔터 키를 입력하면 바로 진입이 됩니다.

mysql -u root -p



방화벽 설정하기

모든 포트를 닫아 놓는 경우 보안에 취약할 수 있어 3306 포트를 여는 방법을 소개 합니다. 다른 포트를 작성해도 되며 필요에 따라 외부 포트를 차단해도 됩니다.

# sudo dnf install firewalld
Last metadata expiration check: 0:15:34 ago on Fri May  2 11:45:24 2025.
Dependencies resolved.
===================================================================================================================
 Package                           Architecture        Version                        Repository              Size
===================================================================================================================
Installing:
 firewalld                         noarch              1.3.4-9.el9_5                  baseos                 452 k
Installing dependencies:
 firewalld-filesystem              noarch              1.3.4-9.el9_5                  baseos                 8.6 k
 ipset                             x86_64              7.11-11.el9_5                  baseos                  41 k
 ipset-libs                        x86_64              7.11-11.el9_5                  baseos                  68 k
 iptables-nft                      x86_64              1.8.10-11.el9_5                baseos                 187 k
 libnftnl                          x86_64              1.2.6-4.el9_4                  baseos                  87 k
 nftables                          x86_64              1:1.0.9-3.el9                  baseos                 421 k
 python3-firewall                  noarch              1.3.4-9.el9_5                  baseos                 355 k
 python3-nftables                  x86_64              1:1.0.9-3.el9                  baseos                  21 k
Installing weak dependencies:
 libcap-ng-python3                 x86_64              0.8.2-7.el9                    appstream               29 k

Transaction Summary
===================================================================================================================
Install  10 Packages

Total download size: 1.6 M
Installed size: 6.4 M
Is this ok [y/N]: y
Downloading Packages:
(1/10): firewalld-filesystem-1.3.4-9.el9_5.noarch.rpm                               60 kB/s | 8.6 kB     00:00
(2/10): firewalld-1.3.4-9.el9_5.noarch.rpm                                         2.7 MB/s | 452 kB     00:00
(3/10): python3-firewall-1.3.4-9.el9_5.noarch.rpm                                  884 kB/s | 355 kB     00:00
(4/10): libnftnl-1.2.6-4.el9_4.x86_64.rpm                                          335 kB/s |  87 kB     00:00
(5/10): iptables-nft-1.8.10-11.el9_5.x86_64.rpm                                    623 kB/s | 187 kB     00:00
(6/10): ipset-libs-7.11-11.el9_5.x86_64.rpm                                        1.1 MB/s |  68 kB     00:00
(7/10): ipset-7.11-11.el9_5.x86_64.rpm                                             1.0 MB/s |  41 kB     00:00
(8/10): python3-nftables-1.0.9-3.el9.x86_64.rpm                                    432 kB/s |  21 kB     00:00
(9/10): nftables-1.0.9-3.el9.x86_64.rpm                                            2.3 MB/s | 421 kB     00:00
(10/10): libcap-ng-python3-0.8.2-7.el9.x86_64.rpm                                  160 kB/s |  29 kB     00:00
-------------------------------------------------------------------------------------------------------------------
Total                                                                              2.5 MB/s | 1.6 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Running scriptlet: firewalld-1.3.4-9.el9_5.noarch                                                            1/1
  Preparing        :                                                                                           1/1
  Installing       : libnftnl-1.2.6-4.el9_4.x86_64                                                            1/10
  Installing       : iptables-nft-1.8.10-11.el9_5.x86_64                                                      2/10
  Running scriptlet: iptables-nft-1.8.10-11.el9_5.x86_64                                                      2/10
  Installing       : nftables-1:1.0.9-3.el9.x86_64                                                            3/10
  Running scriptlet: nftables-1:1.0.9-3.el9.x86_64                                                            3/10
  Installing       : python3-nftables-1:1.0.9-3.el9.x86_64                                                    4/10
  Installing       : python3-firewall-1.3.4-9.el9_5.noarch                                                    5/10
  Installing       : libcap-ng-python3-0.8.2-7.el9.x86_64                                                     6/10
  Installing       : ipset-libs-7.11-11.el9_5.x86_64                                                          7/10
  Installing       : ipset-7.11-11.el9_5.x86_64                                                               8/10
  Installing       : firewalld-filesystem-1.3.4-9.el9_5.noarch                                                9/10
  Installing       : firewalld-1.3.4-9.el9_5.noarch                                                          10/10
  Running scriptlet: firewalld-1.3.4-9.el9_5.noarch                                                          10/10
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.

  Verifying        : python3-firewall-1.3.4-9.el9_5.noarch                                                    1/10
  Verifying        : firewalld-filesystem-1.3.4-9.el9_5.noarch                                                2/10
  Verifying        : firewalld-1.3.4-9.el9_5.noarch                                                           3/10
  Verifying        : iptables-nft-1.8.10-11.el9_5.x86_64                                                      4/10
  Verifying        : libnftnl-1.2.6-4.el9_4.x86_64                                                            5/10
  Verifying        : ipset-libs-7.11-11.el9_5.x86_64                                                          6/10
  Verifying        : ipset-7.11-11.el9_5.x86_64                                                               7/10
  Verifying        : python3-nftables-1:1.0.9-3.el9.x86_64                                                    8/10
  Verifying        : nftables-1:1.0.9-3.el9.x86_64                                                            9/10
  Verifying        : libcap-ng-python3-0.8.2-7.el9.x86_64                                                    10/10

Installed:
  firewalld-1.3.4-9.el9_5.noarch                         firewalld-filesystem-1.3.4-9.el9_5.noarch
  ipset-7.11-11.el9_5.x86_64                             ipset-libs-7.11-11.el9_5.x86_64
  iptables-nft-1.8.10-11.el9_5.x86_64                    libcap-ng-python3-0.8.2-7.el9.x86_64
  libnftnl-1.2.6-4.el9_4.x86_64                          nftables-1:1.0.9-3.el9.x86_64
  python3-firewall-1.3.4-9.el9_5.noarch                  python3-nftables-1:1.0.9-3.el9.x86_64

Complete!

#sudo systemctl start firewalld
#sudo systemctl enable firewalld
#sudo firewall-cmd --state

포트를 엽니다.

sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload


변경된 방화벽을 확인합니다.

sudo firewall-cmd --list-all



외부 접속을 위한 사용자 추가하기

데이터 베이스 툴이나 외부에서 모든 아이피에서 접근이 가능한 계정을 만드는 방법을 안내 합니다.  일반적으로는 IP를 명시해서 해당 서버에서만 데이터베이스에서 접근할 수 있도록 하는 게 보안에 도움이 됩니다.

저는 필요에 따라 TCP 포트만 열어주고 사용하지 않을 때에는 삭제하여 관리하고 있습니다.


CREATE USER 'external_user'@'%' IDENTIFIED BY '강력한_비밀번호';
GRANT ALL PRIVILEGES ON *.* TO 'external_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;


목록