Post

RTO (Recovery Time Objective)

재해 복구에서 '얼마나 빨리 복구할 것인가'를 정의하는 지표

개념 설명:

RTO는 시스템이 중단된 후 정상 운영 상태로 복구되는 데 허용되는 최대 시간을 의미한다.

  • 비슷한 개념과 비교:
    • RPO (Recovery Point Objective): 데이터 손실 허용 범위 (예: 마지막 백업 시점까지의 데이터)
    • RTO: 서비스 복구에 걸리는 시간
전략RTO 수준특징
Hot Standby매우 짧음시스템이 실시간으로 복제되어 즉시 전환 가능
Warm Standby짧음일부 시스템이 준비되어 있고 빠르게 확장 가능
Pilot Light중간핵심 인프라만 실행 중, 나머지는 부팅 필요
Backup & Restore가장 경제적이지만 복구에 시간 오래 걸림
  • 사용이 적합한 환경:
    • Hot Standby: 금융, 실시간 트랜잭션 서비스 등 다운타임 허용 불가한 환경
    • Backup & Restore: 개발/테스트 환경, 비즈니스 영향이 적은 시스템
  • 사용 방법:
    • Hot Standby 예시 구성 (AWS 기준):
      • enginrect.com 운영 중인 메인 시스템과 동일한 구성을 타 리전에 두고, DB 복제 및 로드밸런서 구성
      • 장애 시 Route53로 트래픽 전환
1
2
3
4
aws rds create-db-instance-read-replica \
  --db-instance-identifier enginrect-db-replica \
  --source-db-instance-identifier enginrect-db \
  --region ap-northeast-2
  • 장애 발생 시 Route53에서 다음과 같이 트래픽을 전환:
    1
    2
    3
    
    aws route53 change-resource-record-sets \
    --hosted-zone-id {ZONE-ID} \
    --change-batch file://failover.json
    
  • failover.json
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    {
    "Comment": "Failover to backup region",
    "Changes": [
      {
        "Action": "UPSERT",
        "ResourceRecordSet": {
          "Name": "enginrect.com",
          "Type": "A",
          "SetIdentifier": "backup-region",
          "Failover": "SECONDARY",
          "TTL": 60,
          "ResourceRecords": [
            {
              "Value": "xx.xx.xx.xx"
            }
          ]
        }
      }
    ]
    }
    
This post is licensed under CC BY 4.0 by the author.