백업과 재해 복구 전략

RTO/RPO 개념, AWS Backup, EBS/RDS 스냅샷, 4가지 DR 전략을 초보자도 이해할 수 있는 비유로 설명합니다.

백업과 재해 복구(DR)는 "최악의 상황이 닥쳤을 때 얼마나 빨리 정상으로 돌아올 수 있는가"를 다루는 분야입니다.

일상으로 비유하면, 중요한 서류를 복사해두고(백업), 화재 시 어디로 대피하고 무엇을 먼저 챙길지 계획해두는 것(DR 전략)과 같습니다. 미리 준비해두지 않으면 실제 재난이 닥쳤을 때 혼란만 커집니다. 기업의 IT 시스템에서도 마찬가지입니다.

 

RTO와 RPO — 재해 복구의 두 핵심 지표

모든 재해 복구 계획의 출발점은 두 가지 질문입니다.

RTO(Recovery Time Objective, 복구 시간 목표): "시스템이 다운된 후 서비스를 다시 시작하는 데 최대 얼마의 시간이 허용되는가?" 예를 들어 RTO 4시간이면, 장애 발생 후 4시간 안에 서비스를 복구해야 한다는 의미입니다. 쇼핑몰로 비유하면 "불이 났어도 4시간 안에 다시 영업을 시작해야 한다"입니다.

RPO(Recovery Point Objective, 복구 시점 목표): "장애 발생 시 얼마만큼의 데이터 손실을 감수할 수 있는가?" 예를 들어 RPO 1시간이면, 최대 1시간치 데이터를 잃어도 괜찮다는 뜻입니다. 반대로 말하면 최소 1시간마다 백업해야 한다는 의미이기도 합니다. 쇼핑몰로 비유하면 "화재로 오늘 오전 9시부터 지금까지의 주문 기록이 사라져도 된다"입니다.

| 지표 | 질문 | 예시 | |------|------|------| | RTO | 얼마나 빨리 복구해야 하나? | 4시간 내 서비스 재개 | | RPO | 얼마의 데이터 손실을 허용하나? | 최대 1시간치 데이터 손실 |

RTO와 RPO가 짧을수록 비용이 많이 듭니다. "1분 안에 복구, 데이터 손실 0" 수준은 Active-Active처럼 가장 비싼 방식이 필요합니다.

 

AWS Backup — 여러 서비스 백업을 한 곳에서

AWS에는 EC2, RDS, DynamoDB, EFS, S3 등 수십 가지 서비스가 있습니다. 각 서비스마다 따로 백업을 설정하면 관리가 복잡해집니다. AWS Backup은 이 모든 서비스의 백업을 단일 서비스에서 중앙 집중식으로 관리하게 해줍니다.

핵심 구성요소

백업 플랜(Backup Plan)은 "언제, 얼마나 자주, 얼마나 오래 보관할지"를 정의하는 정책입니다. 예를 들어 "매일 오전 2시에 백업, 30일간 보관, 90일 후 저렴한 스토리지로 이동"처럼 설정합니다.

백업 볼트(Backup Vault)는 백업 데이터를 저장하는 논리적 컨테이너입니다. 백업을 은행 금고에 넣는다고 생각하면 됩니다.

크로스 리전 백업은 다른 AWS 리전으로 백업을 자동 복제합니다. 서울 리전에 재해가 발생해도 도쿄나 싱가포르 리전의 백업으로 복구할 수 있습니다.

크로스 계정 백업은 다른 AWS 계정으로 백업을 공유합니다. 메인 계정이 해킹되거나 실수로 삭제되어도 별도 계정에 백업이 안전하게 보관됩니다.

AWS Backup Vault Lock — 백업 데이터 보호

Vault Lock을 설정하면 백업 데이터를 삭제하거나 수정할 수 없게 됩니다. 악의적인 내부 직원이나 랜섬웨어 공격으로부터 백업을 보호합니다. WORM(Write Once Read Many, 한 번 쓰고 여러 번 읽기) 방식으로 규정 준수 요건을 충족합니다. 한번 설정하면 관리자도 해제할 수 없습니다.

 

EBS 스냅샷 — 디스크의 특정 시점 사진

스냅샷은 EBS 볼륨의 특정 시점 상태를 캡처한 백업입니다. 컴퓨터 게임의 "저장하기"처럼 그 시점으로 돌아갈 수 있게 해줍니다.

중요한 특징들:

증분 스냅샷: 첫 번째 스냅샷은 전체를 복사하지만, 이후 스냅샷은 이전 스냅샷과 달라진 부분만 저장합니다. 용량과 비용을 크게 절약할 수 있습니다.

Fast Snapshot Restore(FSR): 보통 스냅샷으로 볼륨을 복원하면 처음에 성능이 낮다가 점차 올라갑니다. FSR을 활성화하면 복원 즉시 최대 성능을 발휘합니다. 추가 비용이 있지만, 재해 복구 시 빠른 서비스 재개가 필요할 때 유용합니다.

Data Lifecycle Manager(DLM): 스냅샷 생성과 삭제 일정을 자동화합니다. "매일 자정에 스냅샷 생성, 7일이 지나면 자동 삭제"처럼 설정합니다.

크로스 리전 복사: 다른 리전으로 스냅샷을 복사하여 재해 복구에 대비합니다.

암호화: 암호화된 EBS 볼륨의 스냅샷은 자동으로 암호화됩니다.

 

RDS 백업 — 데이터베이스 보호

자동 백업 vs 수동 스냅샷

| 구분 | 자동 백업 | 수동 스냅샷 | |------|----------|-----------| | 생성 방법 | 매일 자동으로 생성 (백업 윈도우 설정) | 사용자가 직접 버튼 클릭 | | 보존 기간 | 0~35일 (기본 7일, 최대 35일) | 직접 삭제할 때까지 영구 보존 | | 특정 시점 복원 | 가능 (5분 단위까지) | 스냅샷 생성 시점으로만 복원 | | DB 삭제 시 | 같이 삭제됨 | 유지됨 |

핵심 포인트: RDS 자동 백업의 보존 기간은 최대 35일입니다. 35일보다 오래 보관해야 하는 규정이 있다면 수동 스냅샷을 사용해야 합니다.

!자동 백업 vs 수동 스냅샷

Aurora의 특별한 백업 기능

Aurora는 데이터를 S3에 연속적으로 백업합니다. 그 덕분에 1초 단위로 특정 시점 복원(PITR)이 가능합니다. 일반 RDS는 5분 단위인 것과 비교하면 훨씬 정밀합니다.

Backtrack은 Aurora만의 독특한 기능입니다. 데이터베이스를 새 인스턴스로 복원하는 것이 아니라, 현재 데이터베이스를 과거의 특정 시점으로 되감는(in-place rewind) 방식입니다. 실수로 대규모 데이터를 삭제했을 때 빠르게 되돌릴 수 있습니다.

 

S3 버전 관리와 복제

S3도 데이터 보호를 위한 여러 기능을 제공합니다.

버전 관리(Versioning): 활성화하면 파일을 수정하거나 삭제할 때 이전 버전을 모두 보존합니다. 실수로 파일을 삭제해도 이전 버전에서 복구할 수 있습니다. 대신 저장 비용이 늘어납니다.

교차 리전 복제(CRR, Cross-Region Replication): 객체를 다른 리전의 버킷으로 자동 복제합니다. DR 목적이나 규정 준수(일부 법령은 데이터를 특정 지역 외에도 백업하도록 요구)에 사용합니다.

동일 리전 복제(SRR, Same-Region Replication): 같은 리전 내 다른 버킷으로 복제합니다. 여러 환경(개발, 스테이징, 운영)에 같은 데이터를 배포하거나 로그를 중앙 집계할 때 사용합니다.

S3 Object Lock: WORM 방식으로 객체를 보호합니다. 설정된 보존 기간 동안 객체를 삭제하거나 덮어쓸 수 없습니다. 규정 준수나 법적 보관 요건을 충족할 때 사용합니다.

 

DR 전략 — 4가지 재해 복구 방식

재해 복구에는 비용과 복구 속도를 트레이드오프로 하는 4가지 전략이 있습니다.

Backup & Restore (백업과 복원)

가장 저렴하지만 복구가 가장 느린 방법입니다. 백업을 주기적으로 저장해두고, 재해가 발생하면 그 백업에서 처음부터 환경을 재구성합니다.

비유: 화재 후 보험금을 받아서 처음부터 가게를 다시 짓는 것입니다.

RTO: 수 시간. RPO: 마지막 백업 이후 데이터 손실.

Pilot Light (파일럿 라이트)

가스 난로의 파일럿 불꽃처럼, 핵심 시스템만 최소한으로 항상 켜두는 방식입니다. 예를 들어 데이터베이스는 항상 DR 리전에서 실시간 복제 상태로 유지하되, 앱 서버는 꺼두다가 재해 시 빠르게 시작합니다.

비유: 예비 주방에 가스는 켜두고 조리 기구를 준비해둔 상태에서, 재해 시 조리사만 투입하는 것입니다.

RTO: 수십 분~몇 시간. RPO: 수 분.

Warm Standby (웜 스탠바이)

DR 리전에 완전한 환경을 갖추되, 실제 운영보다 작은 규모로 항상 가동합니다. 재해 시 규모를 빠르게 키워 전체 트래픽을 처리합니다.

비유: 예비 가게를 50% 규모로 영업 중이다가, 본 가게가 화재 나면 예비 가게 규모를 100%로 확장하는 것입니다.

RTO: 수 분. RPO: 수 초~수 분.

Active-Active (액티브-액티브, Multi-Site)

블로그 목록으로 돌아가기