개요.
안녕하세요. 팀 껌딱지에서 백엔드파트를 맡고 있는 건우입니다.
오늘은 백엔드 파트에서 고객과의 신뢰도를 높이기 위한 방법에 대해 이야기해보겠습니다.
기획과 개발 단계에서는 새로운 고객을 유입시키거나 기존 고객이 다시 서비스를 사용하도록 유도하기 위해 노력합니다. 하지만 이후 서비스를 운영할 때 고객 만족도와 제품에 대한 신뢰도를 높이는 데 있어 가장 중요한 것은 무엇일까요?
저의 생각은 서비스가 중단 없이 연속적으로 운영될 수 있는 고가용성(HA) 시스템을 구축하는 것입니다.
따라서 이번 글에서는 고가용성의 의미와 이를 달성하기 위한 대표적인 방법인 이중화에 대해 설명드리겠습니다.
고가용성 (High Availability).
우선 가용성이 무엇일까요?
가용성(可用性, 영어: availability)이란 서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용 가능한 정도를 말한다. (출처 : 위키백과)
사전적 정의로는 위와 같이 나타내고 있습니다.
그렇다면 고가용성은? 서버와 네트워크, 프로그램 등의 시스템이 오랜기간동안 정상 운영이 가능하도록 하는 것 입니다.
고가용성을 유지하기 위해 사용하는 기본 컨셉이 바로 이중화입니다.
대표적인 서버의 이중화 전략에 대해서 알아보겠습니다.
서버의 이중화 전략은 크게 두가지로 나누어 집니다.
Active Standby
첫 번째로 Active Standby 구조입니다.
서버가 Activce서버와 Standby 서버로 구성되며 평소에는 Activce 서버로 운영됩니다.
하지만 장애 발생 시 대기 중이던 Standby 서버를 사용하여 대응하며,
Active 서버는 데이터를 Standby 서버와 동기화하고 장애 발생 시 다시 대응 가능한 상태를 유지하게 됩니다.
Active Active
다음으로는 Active Active 구조입니다.
서버가 두대 모두 Active서버로 구성되며
평소에는 두대 모두 운영되며 LB를 통해 트래픽을 분산합니다. 서버 한대가 장애가 발생하게 되면
나머지 서버가 서비스를 제공하게 됩니다.
그래서 어떤 방식이 좋은가?
각 방식마다의 장단점이 있어 현 서비스의 맞는 방식을 사용해야합니다.
트래픽 요청이 많아 LB(Load Balancing)이 필요한 경우 Active Active 구조를 사용하는 것이 좋고,
장애가 많이 발생하거나 서비스의 전환이 필요한 경우 Active Standby 구조를 사용하는 것이 좋다고 생각합니다.
마치며.
고가용성 시스템을 구축하고 유지하기에는 서비스의 규모가 작고 비용이 많이 들기 때문에 구현하지 않을 수 있지만,
추후 서버에 장애가 발생하거나, 시스템을 업그레이드나 변경 시 HA를 구성해놓았다면 작업 중에도 서비스는 정상적으로 운용되기 때문에 고객은 불편함을 겪지 않고 관리자 또한 서버에 대한 걱정을 덜 수 있게됩니다.
기술적인 문제와 비용적인 문제(가장 큰 문제..)를 고려하여 저희 서비스에도 HA를 구성하여 안정적으로 서비스가 운영될 수 있도록 노력해보겠습니다!
'우리들의 성장일지' 카테고리의 다른 글
Spring Bean 수동/자동 등록 (Feat.BeanConfig & Spring IoC 컨테이너) (0) | 2024.09.04 |
---|---|
[팀 껌딱지] 우리 팀은 티켓 주도 개발을 이렇게 사용해요! (0) | 2024.08.01 |
[팀 껌딱지] PWA 만들기 (0) | 2024.07.31 |
[팀 껌딱지] 서비스 블루프린트(Service Blueprint)란? (0) | 2024.07.09 |
[팀 껌딱지] 운영 DB에 변경 쿼리 날릴 땐 꼭 트랜잭션을 사용해 줘요 (0) | 2024.04.29 |