anott
기록
anott
  • 분류 전체보기
    • 오라클
    • SQL
    • 알고리즘
      • 백준저지
      • 프로그래머스
      • SWEA
    • 개발 관련
    • 프론트엔드
      • TypeScript, Next.js
      • React 공식문서 읽기
hELLO · Designed By 정상우.
anott

기록

카테고리 없음

백업, HA, DR

2024. 1. 21. 23:24

2022년 SK C&C 판교 데이터센터의 화재로 인해 카카오 서비스 장애가 발생했었다. 화재는 UPS(무정전 전원 장치(Uninterruptible Power Supply))가 원인이었는데, UPS는 데이터센터 정전 시 사용하는 보조배터리 같은 존재로 보면 될 것 같다. 그러나 당시 화재 원인보다는 카카오의 데이터 복구가 왜 오래 걸리는지, 데이터 손실이 왜 발생했는지 등이 더 주된 이슈였다. 나도 그때 DR을 처음으로 찾아봤던 것 같다.

나는 당시 DR이란 단순하게 DR이란 Disaster Recovery 약자이고, 장애가 났을 때 빠르게 전환할 수 있는 재해복구 시스템이다 라고 외우고 넘어갔었다. 그렇지만 이제는 DR에 대해 더 구체적으로 알아야 할 것 같아서 자세히 조사해 보았다. 찾다 보니 DR 하나를 정리하기보다는 백업, HA와 함께 정리하는 것이 맞는 것 같아 묶어서 글을 작성해 보았다.

 

백업, HA, DR

데이터를 복구하는 방법은 크게 백업, HA, DR이 있다.

 

백업

백업은 원본 데이터를 별도로 저장하는데, 데이터가 손실될 경우 복구할 때 사용한다.

백업은 다음과 같이 3가지로 구분될 수 있다.

전체 백업(Full Backup)은 특정 시점에서 모든 데이터를 복사하는 것을 의미하며 많은 저장 공간을 차지한다.

증분 백업(Incremental Backup)은 마지막 백업 이후 변경된 부분만 캡처하여 변경 사항만 백업한다. 마지막 백업은 전체 백업 또는 증분 백업이 될 수 있다. 전체 백업보다 빠르며, 완전한 복구를 위해서는 마지막 전체 백업 이후 모든 증분 백업이 필요하다.

차등 백업(Differential Backup)은 마지막 전체 백업 이후 증분 백업과 관계없이 발생한 모든 변경 부분을 캡처하여 백업한다. 증분 백업보다 적은 저장 공간이 필요하고 속도가 빠르다.

 

HA

HA는 고가용성(High Availability)을 의미하며, 다운타임(서비스 중단 시간)을 최소화하는 것이 목적이다. RAC, 클러스터링, 로드 밸런싱이 그 예시이다.

클러스터링은 여러 서버나 노드를 그룹화하여 단일 시스템처럼 작동하도록 한다.

로드 밸런싱은 트래픽을 여러 서버에게 고르게 분포하도록 한다.

RAC는 오라클의 클러스터형 데이터베이스 아키텍처이고, RAC로 구성되었다면 여러 인스턴스가 일을 처리하니 일종의 로드 밸런싱이라고 볼 수 있을 것 같다.

 

DR

DR은 대규모 재해로 인하여 서비스가 중단된 후 비즈니스 연속성을 보장하는 것이 목적이다. DR은 HA와 다르게 다른 장소에 구축된다고 보면 된다.

구성 종류는 Active-Active와 Active-Standby로 나눌 수 있다.

Active-Active는 RAC, 로드밸런싱 등처럼 서버를 여러 개를 두는 것이 예시이다. Active-Standby는 서비스 장애가 났을 때 Standby 서버로 이전하여 사용하는 것으로 볼 수 있다.

 

DR시스템은 추가적으로 다음과 같이 4가지로 나눌 수 있다.

미러 사이트(Mirror Site)는 업무 환경과 거의 동기화되거나 보조적으로 운영하며, RTO가 수분 이내이다.

핫 사이트(Hot Site)는 업무 환경과 거의 동일하게 대기 상태이며, 실시간 데이터 복제를 진행하기도 하며, RTO는 4시간 이내이다.

웜 사이트(Warm Site)는 백업 사이트라고 볼 수 있는데, RTO는 수일 이내이다.

콜드 사이트(Cold Site)는 재난 발생 시를 대비해 공간만 준비해 놓은 상태로 RTO는 수주~1개월 정도이다.

 

추가적으로 failover는 장애 등으로 인해 주 시스템이 사용이 불가능할 때 보조 시스템으로 전환하는 것을 뜻한다. 여기서 보조 시스템은 백업 또는 standby 시스템을 말한다.

failover는 자동 또는 수동으로 이루어질 수 있다. 자동 failover는 시스템이 자동으로 장애를 감지하여 넘어가는 것을 말하는데, 이를 위해 지속적인 모니터링 및 헬스 체크가 진행된다. 수동 failover는 관리자에 의해 수행된다.

failover를 원활하게 수행하기 위해 주 시스템에서 보조 시스템으로의 주기적인 백업이 이루어진다.

 

정리

따라서 백업은 필수적이고, HA는 로컬 환경 내에서 지속적으로 운영하도록 위한 장치이며, DR은 대규모 재해에 대응하기 위해 필요하다고 정리할 수 있을 것 같다.

다만 HA, DR을 모든 업무에 적용하는 것은 당연히 불가능하다. 왜냐하면 백업은 단순하게 백업하는 서버의 비용만 발생하지만, HA는 서버마다 추가적인 비용이 발생하고, DR은 데이터센터 비용까지 발생하기 때문이다. 상대적으로 덜 중요한 업무까지 추가적으로 HA, DR을 구축할 경우 너무나 큰 비용이 들 것이다.

 

 

 

출처

카카오, 재해복구 시스템 있었나 없었나

관련해서는 '카카오 먹통' 놀란 건 알겠는데…데이터복구 정책 또 산으로 갈라 [나기자의 데이터로 세상읽기] 

ICT 비상재해 복구 시스템에 쏠린 눈···카카오도, SK C&C도 안이했다

재해 복구

저작자표시 비영리 (새창열림)
    anott
    anott

    티스토리툴바