✉️ [email protected] / KakaoTalk
^ 저의 발자취를 볼 수 있습니다. 흥미로운 연락 환영합니다. 😄
사내 MHA4MySQL의 초기 매뉴얼은 보안 취약점이 존재하는 부분들을 포함하고 있었습니다. 특히, MHA 클러스터에 특화된 사용자에게 무분별한 권한을 부여하는 등 보안 관련 문제가 있었습니다. 이러한 이유로 저는 첫 입사 후 수습 발표 과제로 MHA4MySQL 매뉴얼 작성을 맡게 되었습니다.
이 과정에서 주된 작업은 보안 강화를 목표로 했습니다. MHA 클러스터 전용 사용자에게 필요한 권한만 부여하고, 불필요한 권한을 제한하여 보안 취약성을 최소화했습니다. 기존 매뉴얼에서 발견된 보안 이슈에 대한 해결책을 명확하게 제시하고, 이를 구현하는 방법을 상세히 설명했습니다.
뿐만 아니라, MHA의 의존 라이브러리들을 버전별로 정리하고, 폐쇄망과 같이 특수한 환경에서 사용할 수 있도록 createrepo와 같은 로컬 레포지토리 생성 방법을 제공했습니다.
제안한 보안 강화 방법과 새로운 매뉴얼은 뒤이어 사내에서 공식적으로 채택되었습니다. 이후 해당 매뉴얼은 사내에서 공식적으로 사용 중이며, 보다 안전하고 효율적인 MHA4MySQL 클러스터 운영에 기여하고 있습니다.
오픈소스 솔루션을 활용하는 과정에서, 특히 상용 버전을 운용하지 않고도 효율적인 데이터베이스 관리와 클러스터링을 위한 도구로서 MHA는 탁월한 선택이었습니다. 그러나 MySQL에서의 로드 밸런싱과 프록시 역할을 위해선 엔터프라이즈 제품군인 MySQL Router만이 선택지였습니다.
이에 따라, 저는 HAProxy와 MHA를 조합하여 커뮤니티 버전의 도구로 고객사의 요구를 완벽히 충족시킬 수 있는 방안을 찾아냈습니다. 이 결합은 MySQL 클러스터에서의 로드 밸런싱 및 프록시 역할을 하기에 매우 효과적이었습니다. 마찬가지로, 해당 매뉴얼 또한 사내에서 채택되어 현재도 활용 중입니다. 이 매뉴얼은 HAProxy와 MHA의 통합 방법과 설정, 그리고 커뮤니티 버전 도구를 어떻게 사용해야 하는지에 대한 내용을 상세히 담고 있습니다. 이를 통해 고객사의 요구를 신속하게 해결하고, 안정적인 데이터베이스 운영을 지원하며 성공적인 프로젝트를 이끌어가고 있습니다.
현재 재직 중인 회사에서의 핵심 수익 모델은 고객사의 MySQL/MariaDB 구축 및 유지보수 서비스입니다.
이 중에서도 저희 팀의 주된 업무는 주기적인 정기점검입니다. 이 점검은 DBMS의 상태와 운영체제(OS) 관련 측면을 평가하여 안정성과 성능을 확인하는 것을 목적으로 합니다. 이 과정에서 엔지니어들은 DBMS 상태 및 OS 정보를 확인하기 위해 커맨드를 실행하고, 로그를 분석하여 점검보고서를 작성합니다.
이 반복적인 작업으로 지칠 때가 종종 있었습니다. 그래서 저는 이러한 점검 과정을 자동화하기 위해 Bash Shell Script를 개발하였습니다. 이 스크립트는 커맨드 실행과 로그 분석을 자동화하여 점검보고서를 자동으로 생성하게 됩니다. 이러한 정기 정검 문서 자동화를 통해, 1년에 약 1000시간 이상의 엔지니어 투입 공수 절감하였고, 단순 반복 업무를 지양하고 고급 지원(성능, 쿼리 튜닝 등)에 좀 더 집중할 수 있었습니다. 또한, 상반기 동안 우수한 업적을 이루어내어 우수사원으로 선정되었습니다.
GitHub - yeongdonge/dbHealthCheckBash
지식을 나누고 공유함으로써 그 가치는 점점 확장되어, 작게는 동료들에게서부터 크게는 회사 전체에 큰 긍정적인 영향을 미친다고 생각합니다. 만약 자신만이 가지고 있는 독특한 기술을 보유하고 있다면, 그 기술을 타인의 시각에서 볼 수 없어서 객관적인 판단이 어려울 수 있습니다. 지식을 나누고 공유하는 과정을 통해 자신의 능력을 성찰하고 회고하는 것은 자기 성장을 위한 가장 효과적인 방법 중 하나라고 생각합니다. 언젠가는 제 손이 더 큰 영향력을 행사하여 사회적으로 긍정적인 변화를 가져오고 싶습니다.