고가용성을 위한 대표적인 기술 조합을 경험과 연결해 설명한다
고가용성을 위해 제가 직접 적용해본 방법은 로드밸런서를 통한 트래픽 분산과 데이터베이스 복제였습니다. 학부 팀 프로젝트에서 단일 서버로 배포했다가 발표 당일 서버가 다운된 경험이 있습니다. 원인은 DB 연결이 한 개 서버에 몰린 것이었고, 그때 처음으로 단일 장애점(SPOF)의 의미를 실감했습니다. 이후 토이 프로젝트에서 Nginx를 로드밸런서로 구성하고, 앱 서버를 2개로 분리하는 구조를 실습했습니다. DB는 Read Replica를 하나 추가해서 읽기 부하를 분산했습니다. 실제 트래픽이 없는 환경이라 장애를 인위적으로 만들어서 테스트했는데, 서버 하나를 내렸을 때 나머지 서버가 요청을 받는지 확인하는 과정이 생각보다 복잡했습니다. 신뢰성 면에서는 헬스체크 엔드포인트를 만들어서 로드밸런서가 응답 없는 서버를 자동으로 제외하도록 설정했습니다. 아직 실서비스 규모는 아니지만, 구조적으로 단일 장애점을 없애는 것이 고가용성의 출발이라는 걸 배웠습니다.