brunch

You can make anything
by writing

C.S.Lewis

by 이동인 May 29. 2020

개발 완료 후 서비스 운영을 위해 꼭 챙겨야할 3가지

애플리케이션 모니터링

대규모 개발을 한다면 전문 운영팀이 서비스를 이관받아서 운영해 주지만 개발팀에서 열심히 만든 서비스를 직접 운영해야 하는 상황이라면 어떻게 서비스를 안정적으로 운영할지 고민됩니다. 시스템에서 운영있어 기본적인 지표로 고가용성을 사용합니다. 고가용성(高可用性, HA, High Availability)이란 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 말합니다. 고가용성은 흔히 가용한 시간의 비율을 99%, 99.9% 등과 같은 퍼센티지로 표현하는데, 1년에 계획 된 것 제외 5분 15초 이하의 장애시간을 허용한다는 의미의 파이브 나인스(five nines), 99.999%는 매우 높은 수준의 고가용성으로 많은 기업들이 목표로 하고 있습니다. 그럼 고가용성의 서비스를 만들기 위해 어떤 것들을 챙겨야 할지 알아보겠습니다. 


이중화

이중화 삼중화를 포함해 다중화를 하더라도 보통 이중화라는 표현을 사용합니다. 때문에 하나의 기능을 병렬로 움직이고 전환 또는 교체 할수 있도록 만들어 놓는 것을 이중화라고 합니다. 서버를 직접 운용한다면 전원, 네티트웍 등 물리적 이슈에 대한 이중화를 검토해야 합니다. 클라우드의 경우에도 중요 서비스에 대한 이중화를 권하고 있습니다. 클라우드 서비스 또한 고가용성을 내세우고 있지만 장애가 났을 때 손해를 완벽하게 배상하지 않습니다. 때문에 SLA를 꼼꼼히 살펴보는 것이 좋습니다. 예를 들어 은행처럼 중요한 데이터를 처리하는 경우에는 지진이나 화재등의 천재지변에 대응하기 위해 일정 거리를 넘어서는 지역에 이중화를 구성하는 등의 장애복구(DR, Data Recovery)에 대한 시나리오를 가지고 있습니다. 


감시

시스템이 정상적으로 동작하고 있는지 확인하는 것은 중요합니다. 하드웨어와 소프트웨어가 살아있는지 확인하는 생존감시가 가장 기초적인 감시방법입니다. 이외에도 로그, 성능, 네트웍을 감시해야 할 수도 있습니다. 


데이터 복구 및 복제

고장이나 장애가 발생하는 경우, 데이터를 복구하고 복제 할 수 있어야 합니다. 복구에 있어서는 데이터 뿐만아니라 OS나 미들웨어의 설정과 같은 시스템에 대한 백업도 고민해야 합니다. 


마무리

작은 서비스를 운영할 때는 장애 상황 대처에 대해 가볍게 생각할 수 있지만 서비스의 규모가 조금이라도 커지기 시작한다면 고가용성을 높이기 위해 방법을 고민해야 합니다. 이런 고가용성을 위해 이중화, 감시, 복구에 대한 지식들은 평소 꾸준히 쌓아 가시길 바랍니다.  


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari