brunch

서버를 이중화(HA) 구성하는 이유

그리고 실제 겪은 장애 이야기

by 프로그램 다운로드

아직도 HA(High Availability, 고가용성) 구성을 하지 않고 서비스하는 경우를 종종 본다. "여기서 그냥 버티면 되지, 무슨 이중화야" 하는 식으로 말이다. 하지만 현실은 그렇게 녹록지 않다.


서버에 문제가 발생하면, 대체할 장치가 없을 경우 전체 서비스가 그대로 멈춰버린다. 실제로 나도 초창기에는 "뭐 괜찮겠지" 하며 가볍게 넘겼다가 뼈아픈 경험을 한 적이 있다.


가장 기본적인 이중화 구성은 "Active-Standby" 방식이다. 하나가 서비스를 담당하고 있다가, 문제가 생기면 대기하고 있던 서버가 즉시 역할을 넘겨받아 서비스를 이어가는 구조다.


현재 우리 회사에서는 HAProxy를 메인으로 사용하고, AWS ALB(Application Load Balancer)와 조합하여 이중화를 구축해 환경을 안정적으로 관리하고 있다.


나에게 HA의 진정한 가치를 일깨워준 사건이 있었다. 3년 전, 한창 트래픽이 몰리던 시절, 사소한 네트워크 설정 오류 하나로 대규모 장애를 겪었다. 당시에는 HA 구성 없이 단일 서버만 믿고 운영하고 있었고, 그 결과 전체 서비스가 다운되는 참사를 겪었다.


그때 깨달았다. 장애는 생각보다 쉽게 찾아오고, 준비가 없으면 피해는 걷잡을 수 없다는 걸. Active-Standby 같은 간단한 이중화라도 있었더라면, 고객들은 서비스를 끊김 없이 사용할 수 있었을 것이다.

그 이후, 나는 모든 시스템 설계 시 HA 구성을 최우선으로 고려하게 됐다. 이제는 '문제가 생기더라도 서비스는 계속 돌아가야 한다'는 철학이 몸에 배었다.


정리하자면, 지금까지의 내용을 통해 알 수 있는 핵심은 아래와 같다.

HA는 장애를 예방하는 것이 아니라, 장애가 발생했을 때 피해를 최소화하기 위한 필수 조건이다.

HA는 고객의 신뢰와 만족도를 지키기 위해 필요하다.

HA는 비용이 아니라, 서비스의 생존을 위한 투자다.

기억하자. 서버는 언젠가 반드시 문제를 일으킨다. 이걸 부정하는 대신, 대비하는 것이 진짜 운영자의 자세다.

keyword
작가의 이전글구글 클래스룸 링크 무료 다운로드 바로가기