-
Tech Blog
고가용성은 현대의 데이터베이스 시스템에서 핵심 요소로 자리 잡았습니다. 사용자들은 서비스의 지속적인 가용성과 안정성을 요구하며, 이를 위해 데이터베이스 시스템은 장애나 오류 상황에서도 끊김 없는 서비스를 제공할 수 있어야 합니다. MySQL은 이러한 요구에 부합하기 위해 다양한 고가용성 옵션을 제공하고 있습니다. 이번 포스팅에서는 MySQL의 고가용성 솔루션 중 하나인 InnoDB Cluster에 대해 소개하겠습니다. MySQL이란 MySQL은 오라클에서 개발, 배포 및 지원되고 있는 오픈소스 관계형 데이터베이스(RDBMS)입니다. 성능이 좋고, 신뢰성이 높으며 확장 및 사용이 용이하다는 특징이 있습니다. 이런 특성으로 인해 전 세계에서 가장 대표적으로 사용되는 오픈소스 DBMS 중 하나로 자리잡았습니다. MySQL은 듀얼 라이센스 모델을 채택하고 있어, 개인이나 기업은 자신의 요구에 맞는 버전을 선택할 수 있습니다. 커뮤니티 버전은 무료로 제공되지만, 기술 지원이나 일부 기능에는 제한이 있습니다. 반면 엔터프라이즈 버전은, MySQL 엔터프라이즈 백업 및 MySQL 엔터프라이즈 모니터와 같은 추가적인 기능을 제공하고, 오라클의 글로벌 지원을 받을 수 있습니다. 또한, SQL과 NoSQL에 모두 대응하며, 복잡한 데이터 처리부터 단순한 고속 Key-Value 작업까지 폭넓은 용도로 활용할 수 있습니다. 하둡(Hadoop)이나 카산드라(Cassandra)와 같은 빅데이터 시스템과의 연동성 및 상호 운용성 또한 뛰어납니다. 현재 MySQL은 지속적으로 혁신을 거듭하며 새로운 버전을 내놓고 있으며, ‘8.3.0 Innovation’이라는 최신 버전에는 여러 새로운 기능이 포함되어 있습니다. 이처럼 지속적인 업데이트와 발전을 통해, MySQL은 데이터베이스 시장에서 중요한 자리를 차지하고 있습니다. MySQL의 고가용성 구성 방안 고가용성(High Availability, HA)이란 시스템이 장애 또는 오류가 발생해도 사용자에게 서비스를 계속 제공할 수 있는 능력을 의미합니다. MySQL 데이터베이스가 고가용성을 갖추면 사용자가 데이터베이스에 접속하고 데이터를 조회, 추가, 수정, 삭제할 수 있는 서비스가 계속해서 제공됩니다. MySQL은 다양한 고가용성 구성 옵션을 제공하는데, 이 중 대표적으로 ①OS HA 솔루션을 활용한 OS 클러스터 방식과 ②오픈소스 솔루션인 MHA 및 MMM을 사용하는 방식이 있습니다. OS 클러스터는 일반적으로 Active-Standby 또는 Active-Passive 구조로 설정됩니다. 이 시스템은 ‘heartbeat’ 신호를 통해 서버의 상태를 지속적으로 체크합니다. 만약 주 서버에 문제가 발생하면, 준비 상태에 있는 스탠바이 서버가 활성 상태로 전환되어 서비스를 지속할 수 있게 됩니다. 반면, MHA와 MMM은 MySQL의 복제 기능을 기반으로 합니다. 이들은 데이터 동기화를 위한 추가 솔루션 없이도, 복제 구성을 활용해 높은 가용성을 달성합니다. Manager 서버가 시스템 장애를 감지하면, 자동으로 'Failover(장애 극복)'를 실행하여 서비스의 연속성을 보장합니다. 여기서 Failover란 시스템에서 이상이 생겼을 때 대체 시스템으로 자동 전환되는 기능을 말합니다. 다만 앞서 설명한 서드파티 솔루션을 사용할 때는 몇 가지 이슈가 있습니다. Failover 기능을 구현하기 위해 OS 클러스터 솔루션이 필요한데, 이는 추가적인 구축 비용을 발생시킵니다. 이런 시스템에서는 한 번에 하나의 노드만이 Active 활성 상태를 유지할 수 있습니다. 또한 장애 발생 시 Standby 또는 Slave 서버로의 Failover 과정이 수십 초에서 수분 정도의 서비스 지연을 야기할 수 있습니다. 그리고 장애가 발생한 후 원래의 Master 서버를 복구하더라도, Auto-Rejoin 기능이 없어 수동으로 노드를 재결합시키고, 장애 이후 발생한 데이터를 수동으로 동기화해야 하는 번거로움이 있습니다. 특히 MMM과 MHA 같은 오픈소스 솔루션의 경우, 공식적인 벤더 지원이 부족하여 문제 발생 시 신속한 해결이 어려운 경우가 많습니다. 이러한 서드파티 도구들이 갖고 있는 다양한 문제점들을 해결하며 더 나은 지원을 제공하는 것이 바로 InnoDB Cluster의 역할입니다. InnoDB Cluster는 이러한 모든 이슈에 대한 솔루션을 내장하고 있어, 고가용성 구성을 더욱 간편하고, 효율적으로 관리할 수 있게 해줍니다. InnoDB Cluster란? InnoDB Cluster란 ‘분산된 고가용성 데이터베이스 솔루션’이라고 정의할 수 있습니다. InnoDB Cluster는 적어도 3개의 MySQL 서버 인스턴스로 구성되어 고가용성을 제공함과 동시에 시스템 확장성까지 고려한 구조를 가지고 있습니다. InnoDB Cluster는 완전히 새로운 제품을 개발한 것이 아니라, 기존에 검증된 MySQL 제품들을 통합해 만들어낸 솔루션입니다. 특히, InnoDB Cluster는 기존 Master-Slave 복제 방식에서는 제공하지 못했던 내결함성 과 자동 장애 복구 기능을 갖추고 있어, 데이터베이스 시스템의 안정성을 대폭 강화했습니다. 더 나아가 MySQL Shell을 통해 데이터베이스 인스턴스 관리를 손쉽게 할 수 있으며, 장애 발생 시 신속한 감지와 빠른 복구를 통해, 데이터 손실의 위험을 최소화할 수 있습니다. InnoDB Cluster의 주요 장점 중 하나는 다양한 구성 옵션을 제공한다는 점입니다. Single Primary 모드는 단일 Read/Write 인스턴스를 갖습니다. 반면에 Multi Primary 모드에서는 모든 인스턴스가 Read/Write 작업을 처리할 수 있습니다. InnoDB Cluster의 또 다른 중요한 특징은 자동 Failover 기능입니다. 이는 주 ‘데이터베이스 인스턴스’에 장애가 발생해도 다른 인스턴스가 자동으로 승격되어 데이터 손실 없이 시스템을 운영할 수 있도록 합니다. MySQL Router가 포함되어 있어, 읽기 및 쓰기 요청을 분산하여 처리할 수 있습니다. 클러스터 서버 장애 발생 시, 인스턴스 구성의 수에 따라 쿼럼(정족수)을 유지하여 클러스터의 안정성을 보장합니다. 예를 들어, 3개 인스턴스로 구성된 클러스터는 1대까지 장애가 발생해도 문제없이 작동하며, 5대 또는 7대와 같이 홀수로 구성된 클러스터는 더 많은 장애를 견딜 수 있습니다. InnoDB Cluster 구성 시 최소 3대의 인스턴스가 필요하며, 홀수로 구성하는 것이 권장됩니다. 5.7 미만 버전의 MySQL은 지원되지 않으며, 안정적이고 향상된 InnoDB Cluster의 기능을 사용하려면 8.0 이상 버전을 사용하실 것을 권장 드립니다. InnoDB 엔진만이 클러스터에 적용되며, 단일 또는 복제 구성과 비교했을 때, 약간의 성능 차이가 있을 수 있습니다. 이는 데이터를 즉시 동기화하는 방식과 네트워크 성능이 영향을 미치기 때문입니다. 따라서 서비스 요구사항에 맞추어 적절한 구성을 선택하는 것이 중요합니다. 이처럼 InnoDB Cluster를 사용하면 고가용성을 확보하고 데이터베이스 시스템의 안정성을 대폭 강화할 수 있습니다. 이 솔루션은 다양한 구성 옵션과 자동 장애 복구 기능을 통해 기업 및 조직들이 높은 수준의 가용성을 달성할 수 있도록 도와줍니다. InnoDB Cluster 구성에 대해 더 알아보고 싶으시다면, 락플레이스와 상담하세요! <작성: 락플레이스 DB팀>
2024.05.14
-
Tech Blog
레드햇 엔터프라이즈 리눅스 마이그레이션 지금 ‘CentOS 리눅스 7.9’나 ‘레드햇 엔터프라이즈 리눅스 7’을 사용하신다면, 이제 마이그레이션을 준비하셔야 합니다. 오는 6월 30일에 CentOS의 EOL(End of Life)가 시작되고, RHEL 7이 EOM(End of Maintenance)에 도달하기 때문이죠. EOL은 제품 판매 및 모든 지원, 유지보수 활동이 중단되는 것을 말합니다. EOM은 제품에 대한 정기적인 유지보수가 중단되는 것을 말하죠. 용어에 약간의 차이는 있지만, 결과적으로 두 소프트웨어를 이용하는 기업은 안정성과 보안 측면에서의 이슈를 방지하기 위해 서둘러 제품 업그레이드를 진행해야 하는 상황입니다. 오늘은 구 버전의 리눅스를 최신 버전으로 마이그레이션하는 전략에 대해 소개하겠습니다. 운영체제 마이그레이션을 준비해야 하는 이유 EOL, 혹은 EOM이 선언된 구 버전의 운영체제를 계속 사용하는 것은 운영 측면에서 많은 문제를 발생시킬 수 있습니다. 가장 대표적인 것이 ‘보안 취약성’입니다. 앞으로 보안 업데이트를 받을 수 없기 때문에, 새롭게 발견되는 취약점이 있어도 패치를 할 수 없어 쉽게 위협에 노출될 수 있습니다. 공급 업체가 공식 지원을 하지 않아 문제 발생 시 도움을 받기 어려워지는 것도 문제입니다. 새로운 소프트웨어가 구 버전의 운영체제를 지원하지 않음에 따라 소프트웨어 호환성도 낮아집니다. 이 경우 최신 애플리케이션을 실행하거나 새 소프트웨어를 사용할 때 어려움을 겪을 수 있습니다. 최신 RHEL로의 마이그레이션 최신 RHEL을 사용하는 것은 보안, 성능, 안정성 등 다양한 측면에서 이점을 가져옵니다. 먼저 CentOS 7.9 또는 RHEL 7을 최신 버전인 RHEL 8 또는 9로 업그레이드하면, 2024년 6월 이후에도 5년 간 안정적인 지원을 받을 수 있게 됩니다. 레드햇은 제품 보안 전담팀을 통해 각종 위험요소를 모니터링·식별·관리하며 보안 업데이트 및 패치를 지속 제공하고 있기 때문에 보안성이 향상됩니다. 또한 레드햇은 수천개의 소프트웨어, 클라우드, 하드웨어 파트너와의 제휴를 통해 고객 환경에서 사용중인 기술과 레드햇 제품이 원활히 연동하도록 지원하고 있으며, 새로운 RHEL 버전에 최신 하드웨어 및 소프트 기술을 지원하고 있습니다. 운영체제를 업데이트 하기 위해서는 두 가지 방법을 사용할 수 있습니다. 현재 사용 중인 하드웨어 자원을 그대로 유지하는 것, 또는 새로운 장비를 도입해 최신 버전의 운영체제를 배포하는 것인데요. 새로운 서버에 배포하는 것이 여러모로 이점이 있지만, 아직 서버 사용 연한이 남아 있다면 하드웨어를 유지하는 것도 고려해야겠죠. 기업은 원하는 방식을 선택하면 됩니다. 현재 리눅스 버전에 따른 마이그레이션 절차 Convert2RHEL 유틸리티를 이용한 마이그레이션CentOS를 최신 버전 RHEL로 손쉽게 업그레이드하기 위해 Convert2RHEL 유틸리티를 사용하는 방법을 알아보겠습니다. CentOS 7.9 이전 버전을 실행 중인 경우 가장 먼저 해야 할 일은 모든 패키지를 최신 마이너 릴리스로 업데이트하는 것입니다. 사용 가능한 최신 버전의 모든 패키지와 함께 CentOS Linux 7.9를 실행하면 Convert2RHEL 리포지토리를 구성할 수 있습니다. 레드햇 GPG 키와 Convert2RHEL 서버의 SSL 인증서를 다운로드한 후, Convert2RHEL 리포지토리 파일을 설치하면 됩니다. 그 후 Convert2RHEL 유틸리티를 설치합니다. Leapp 도구를 이용한 마이그레이션RHEL7을 최신 버전 RHEL로 업그레이드하는 경우, Leapp 도구를 이용하면 간단히 작업할 수 있습니다. Leapp은 레드햇에서 개발한 도구로, 주요 버전 간의 마이그레이션 프로세스를 간소화해줍니다. 마이그레이션을 위해서는 우선 유효한 레드햇 서브스크립션이 있는지, 하드웨어 및 소프트웨어 구성이 최신 버전 RHEL에서 지원되는지 여부 등 요구사항을 확인합니다. 다음으로 마이그레이션 프로세스 중에 문제가 발생할 경우를 대비해 시스템 데이터를 백업해야 합니다. 이후 나서 RHEL 7 시스템을 최신 마이너 버전으로 업데이트하고, 모든 업데이트를 적용한 다음 Leapp 설치를 진행합니다. 운영체제 마이그레이션은 전략적으로 접근해야 합니다. 특히 RHEL 8이나 9를 도입하는 것은 EOL이나 EOM 대비 이상의 가치가 있습니다. 최신 버전의 RHEL 도입은 하이브리드 클라우드 시대를 대비하기 위한 전환점이 될 수 있습니다. 새 버전들은 도커 컨테이너에 대한 기본 지원을 포함하고 있어 온프레미스 및 클라우드 환경 전반에서 컨테이너화된 애플리케이션을 쉽게 배포하고 관리할 수 있도록 하고 있기 때문입니다. 락플레이스는 레드햇의 프리미어 비즈니스 파트너로서, 기업이 RHEL를 통해 하이브리드 클라우드 시대에 적합한 환경을 구축할 수 있도록 컨설팅 및 기술 지원을 제공하고 있습니다. 최신 RHEL 마이그레이션 전략 및 수립에 고민이 있으시다면, 락플레이스와 상담하세요!
2024.02.21
-
Tech Blog
4차 산업혁명시대, 대한민국 산업계는 생산 과정에 디지털 자동화 솔루션을 접목한 '스마트팩토리'를 주목하고 있습니다. 이를 구현하기 위한 핵심 기술은 '디지털 트윈'입입니다. 디지털 트윈을 실제 현장에 적용하는 것은 IT기술과 운영 기술(OT)의 융합 작업으로, 특히 IT 기술이 중요한 역할을 수행하고 있습니다. 오늘 포스팅에서는 디지털 트윈의 필요성과, 레드햇이 제공하는 솔루션을 통한 디지털 트윈 구현에 대해 알아보겠습니다. 디지털 트윈의 정의와 필요성 디지털 트윈은 현실세계에 존재하는 사물이나 시스템을 가상 공간에서 3D 모델로 구현하고, 데이터를 기반으로 상호작용하는 것을 말합니다. 이 개념이 등장한 것은 1960년대입니다. 미국 NASA에서는 우주선에 대한 각종 테스트를 진행해야 하는데, 실제 우주선을 가지고 실험을 진행하지 못한다는 한계가 있었습니다. 이를 넘어서기 위해 물리적인 우주선과 동일한 조건의 가상 우주선을 만들어 각종 연구와 테스트를 수행하고자 하는 아이디어가 제시되었습니다. 이 개념을 지멘스 등 주요 자동화 솔루션 업체들이 주목하기 시작했습니다. 특히 공장 자동화에 있어서, 디지털 트윈이 사용되면 각종 자동화 장치 및 설비로 구축한 공정을 그대로 가상의 공간에 복제해 장비 시운전, 공정 최적화, 품질 개선 등에 대한 테스트를 진행할 수 있게 됩니다. 이를 통해 설비 운영과 공정 개선 측면에서 제조 업체의 민첩성을 높일 수 있습니다. 레드햇이 바라보는 디지털 트윈 레드햇은 디지털 트윈을 설계하고 구현할 때 세 가지 개념을 고려해야 한다고 말합니다. 1. 제어 평면 (Control Plane)제어 평면은 디지털 트윈의 제어 및 관리를 담당합니다. 예를 들어 사용자 인터페이스, API 연계, 우선순위 지정 및 스케줄링, 각각의 디지털 트윈 환경의 수명 주기 및 상태 관리 등을 진행합니다. 제어 평면 구현을 위해서는 API 게이트웨이, 엑세스 제어, 작업 스케줄러, 작업 컨트롤러, 임시 데이터 저장소, 메시징 프레임워크 등이 필요합니다. 2. 데이터 평면 (Data Plane)데이터 평면은 디지털 트윈 환경에서 생성되는 데이터의 저장과 검색을 담당합니다. 디지털 트윈 환경을 위한 데이터 파이프라인 구축과 운영지원, 메타데이터 관리를 수행합니다. 이 뿐만 아니라, 시뮬레이션을 통해 생성되는 데이터 세트를 활용해 인공지능 모델을 통한 예측도 가능합니다. 데이터 평면 구현을 위해서는 구성요소나 환경 정의 등에 대한 데이터 저장소 구축, 데이터스트림 처리를 위한 API 연계가 필요합니다. 3. 환경 평면 (Environment Plane)환경 평면은 현실세계의 사물과 환경을 디지털 트윈에 모델링하는 역할을 합니다. 이 평면은 실제 환경의 변화를 추적하고, 디지털 트윈과 실제 시스템 간의 비교 및 동기화를 가능하게 합니다. 레드햇 솔루션과 디지털 트윈 구현 레드햇은 '레드햇 엔터프라이즈 리눅스(RHEL)', '레드햇 오픈시프트' 등의 솔루션을 통해 디지털 환경 구현을 지원하고 있습니다. 기업용 리눅스 운영 체제인 RHEL은 안정성과 신뢰성이 높습니다. 이를 통해 디지털 트윈 환경에서 중요한 데이터와 애플리케이션을 안전하게 운영할 수 있도록 돕습니다. 또한 다양한 시스템, 데이터베이스, 애플리케이션 및 클라우드 환경과 통합할 수 있어서 디지털 트윈 환경을 확장하고 다른 기술 및 시스템과 간단히 통합할 수 있도록 합니다. 쿠버네티스 기반 플랫폼인 레드햇 오픈시프트는 컨테이너화 된 애플리케이션을 쉽게 관리, 배포, 확장할 수 있는 도구와 서비스를 제공함으로써 디지털 트윈을 구현할 수 있도록 지원합니다. 또한 모니터링 및 로깅 도구를 통해 애플리케이션 및 서비스의 상태를 실시간으로 추적하고 이를 디지털 트윈에 반영할 수 있도록 지원합니다. 레드햇 오픈시프트의 장점에 대해서 더 자세히 설명해보겠습니다. 레드햇 오픈시프트는 앞서 언급한 제어 평면과 디지털 평면을 만드는 데에 큰 역할을 합니다. 디지털 트윈을 구현할 때, 다양한 종류와 장비를 연결해야 할 필요성이 있습니다. 레드햇 오픈시프트는 x86 아키텍처 뿐만 아니라 ARM 등 다른 플랫폼도 지원하기 때문에, 전자 제어 장치나 원격 측정 장치 등 다양한 장비를 디지털 환경에서 연결할 때 유용합니다. 마이크로소프트 윈도우 기반의 구성요소 같은 경우에도 '레드햇 오픈시프트 for 윈도우 컨테이너', '오픈시프트 가상화' 기능을 활용하면 쉽게 연결 가능합니다. 여러 기기가 데이터를 주고받아야 하는 상황에서도, 레드햇 오픈시프트는 여러 네트워크 인터페이스를 가질 수 있는 'Multus CNI(컨테이너 네트워크 인터페이스)' 플러그인을 지원하기 때문에 네트워크와 통신 분야에서 장점이 있습니다. 하나의 네트워크는 디지털 트윈의 제어 평면 및 디지털 평면과 통신하는데 사용하고, 다른 인터페이스는 별도의 네트워크에 있는 레드햇 오픈시프트 SDN에서 호스팅되는 구성요소와 통신할 수 있습니다. 마지막으로, 레드햇 오픈시프트 데이터 파운데이션을 통해 데이터 저장을 할 수 있습니다. 스트리밍 데이터 처리를 해야 한다면 Red Hat AMQ Streams를 사용하여 Kafka 클러스터를 만들 수 있습니다. 임시 데이터 처리에는 Red Hat Data Grid 기술을 활용할 수 있습니다. 제조업 현장을 혁신하는 디지털 트윈 구현에 있어서 레드햇 솔루션은 많은 장점을 제공합니다. 개방형 표준 기술을 중심으로 IT와 운영 기술의 통합을 계획 중이라면, 레드햇 솔루션을 고려하시기를 추천합니다. 락플레이스는 레드햇의 프리미어 비즈니스 파트너로서, 전문지식과 풍부한 경험을 갖추고 있습니다. 레드햇 솔루션을 통한 디지털 트윈 구축에 대해 더 자세히 알아보고 싶으시다면? 락플레이스와 상담하세요!
2023.11.15