AWS 상에서의 다중 리전 장애 복구 전략
2022년 4분기 SK C&C 데이터센터 화재로 인한 카카오톡의 서비스 장애가 발생했다. 이는 SK C&C 판교 데이터 센터의 UPS 랙에서 화재가 발생해 비롯된 상황으로 무려 127시간 30분 간 이어졌다. 약 5.5일의 서비스 장애 기간 동안 카카오톡에 연계된 서비스 (카카오 로그인, 카카오 메일, 카카오T 등) 전부 먹통되며 유료 서비스 이용자 보상금 추정 금액만 400억원을 초과했다. 이처럼 정보화 사회 속에서 IT 인프라에 대한 장애는 매우 치명적이다. 한편 AWS는 이러한 IT 인프라 장애 대응을 위한 다양한 방안이 마련되어 있다.
가용 영역 (Availability Zone)
가용 영역이란 1개 이상의 데이터센터로 구성되어있는 AWS 인프라 단위인데, 각 가용 영역은 지진, 홍수 등의 자연재해의 영향을 받지 않도록 서로 떨어져있다. 허나 이는 100km 거리를 넘지 않으며, 각 가용 영역간 통신은 모드 암호화되어있다. 각 가용 영역 내 통신은 매우 빠르고 쾌적하다.
리전 (Region)
AWS의 리전은 각 지리적 영역 내 격리되고 물리적으로 분리된 여러개의 AZ로 이루어져있다. 각 리전에는 최소 3개 이상의 AZ가 존재하며 가장 많은 리전을 보유한 N.Virginia 리전의 경우 최대 6개의 AZ가 존재한다. 각 리전 내 IT 인프라에 대한 장애 대응은 AZ 레벨에서 이루어진다. 여러 AZ에 동일한 서비스를 분산 구성하여 인프라를 구성하면 IT 인프라 장애로부터 더욱 안전하게 서비스를 제공할 수 있다.
대부분의 경우 리전 내 DR 구성을 통해 서비스 장애를 예방할 수 있다. 허나 고객의 요구사항에 따라 리전 내 DR 구성을 넘어 리전 간 DR 구성이 필요한 경우도 발생한다. 이 글에서는 리전 내 DR을 넘어 리전 간 DR 구성 전략을 다룬다.
다중 리전 DR 전략 리뷰에 앞서 기본적인 DR 전략에 대해 간략히 살펴보자. DR에는 크게 2가지 전략 및 4가지 방안이 존재한다.
RPO (Recovery Point Objective) & RTO (Recovery Time Obejctive)
RPO는 복구 시점에 대한 목표로 장애 발생 후 복구되는 마지막 데이터를 의미한다. RTO은 복구 시간에 대한 목표로 최종적으로 서비스가 제공되는 시점을 의미한다. 순서를 정리하면 RPO 장애 RTO 순으로 되는데, RPO와 장애 사이 시간이 길수록 Data loss가 많고, RTO와 장애 사이 시간이 길수록 Down time이 길어진다. 이러한 RPO, RTO 사이 시간에 따라 Restore & Backup, Pilot Light, Warm Standby, Multi Site 총 4가지 DR 전략을 수립할 수 있다.
R&B, PL, WS 방안의 경우 Active Passive 전략으로 다운 타임이 발생한다. 각 방안 별 다운 타임은 R&B의 경우 N시간, PL의 경우 NN분, WS의 경우 N분 이내이다. 한편 Active Active 전략인 Multi Site 방안의 경우 다운 타임이 없으며 거의 0에 가까운 데이터 손실이 발생한다. DR 전략 및 방안에 있어 Active Active 전략의 Multi Site 방안이 좋아 보이지만, 이는 많은 Active Passive 전략 및 방안 대비 많은 비용이 발생한다는 단점이 있다. 이러한 DR 전략 및 방안에 대해서는 아래 표를 통해 한 눈에 확인할 수 있다.
다음으로는 위 DR 전략들을 바탕으로 일반적인 웹 애플리케이션에 대한 멀티 리전 DR 사례를 살펴본다.
위 구성도는 Active Passive 전략 중 Backup & Restore 방안을 통해 DR 환경을 구성한 사례다. 먼저 EC2의 경우 Cross Region AMI Copy를 통해 EC2 백업 및 복원 환경을 구성하고, EBS 및 RDS의 경우 스냅샷을 S3에 저장한 뒤 해당 S3 버킷을 Cross Region Replication 정책을 구성한 형태로 데이터 백업 및 복원 환경을 구성하였다. EFS의 경우 AWS 매니지드 서비스인 AWS Backup 서비스를 통해 백업 및 복원 환경을 구성하였다.
다음으로 위 구성도는 Active Passive 전략 중 Pilot Light 방안을 통해 DR 환경을 구성한 사례다. 리전 A를 메인 환경으로 사용하되, A 리전에서 장애가 발생했을 시 B 리전으로 자동 라우팅 되도록 Route53을 구성하였다. 다만 리전 B에서는 해당 인프라들이 비활성화 된 상태로, 장애 발생 시 인프라가 프로비저닝되기까지 다운 타임이 존재한다.
세 번째로 위 구성도는 Active Passive 전략 중 Warm Standby 방안을 통해 DR 환경을 구성한 사례다. PL 방안과 마찬가지로 리전 A를 메인 환경으로 사용하되, PL 방안과 달리 리전 B에 활성화된 워크로드를 상시 실행시킨다. 리전 A에 장애가 발생했을 시 모든 트래픽이 B 리전으로 넘어가며, 요청 건수에 맞춰 애플리케이션 리소스가 자동으로 스케일 업된다. WS 방안은 PL 방안과 마찬가지로 인프라 프로비저닝까지 약간의 다운 타임이 발생할 수 있으나, PL 대비 그 시간이 짧다.
마지막으로 위 구성도는 Active — Active 전략 중 Multi Site 방안을 통해 DR 환경을 구성한 사례이다. MS 환경의 경우 리전 A 및 B 모두 활성화 및 사전 프로비저닝된 환경을 갖추고 있다. 각 환경은 Route53의 지리 근접 라우팅 정책에 의해 전달된다. 이 경우 일반적으로 사용자가 위치한 지역에 근접한 리전으로 자동 라우팅되나, 한 리전에 장애가 발생하는 경우 자동으로 다른 리전으로 자동 라우팅된다. MS 환경은 0에 근접한 다운 타임 환경으로 서비스 장애를 거의 체감할 수 없다. 허나 많은 비용이 발생하기에 비지니스 크리티컬 서비스에 한해 사용을 권장한다.
지금까지 멀티 리전 환경에서의 DR 전략에 대해 다뤄보았다. 이 글이 각 기업의 멀티 리전 DR 전략 수립에 도움이 되었길 바라며 이만 글을 마친다.
SAINTPARK
Next Article