다중 인스턴스 + 서킷 브레이커 + 지수 백오프 재시도 + 인스턴스별 모니터링 경험
팀 프로젝트에서 서버 한 대에 모든 요청을 처리하다가 장애가 생기는 경험을 하면서 고가용성 설계에 관심을 갖게 됐습니다. 중복화가 기본이라는 걸 배웠고, 로드밸런서 뒤에 여러 인스턴스를 두는 구조를 만들어서 한 대가 내려가도 서비스가 이어지게 했습니다. 장애 격리 측면에서는 하나의 마이크로서비스 장애가 전체로 번지지 않도록 서킷 브레이커 패턴을 배웠습니다. 재시도 로직에서는 지수 백오프를 적용해서 장애 상황에서 재시도 폭풍이 생기지 않도록 했습니다. 관측도 중요해서, 인스턴스별 상태와 에러율을 개별로 추적해서 특정 인스턴스만 비정상인 경우를 빠르게 감지하게 했습니다.
고가용성은 장애가 났을 때 대응하는 게 아니라 장애가 나도 버티는 구조를 미리 만드는 것이라는 걸 배웠습니다.