PallyCon > 콘텐츠 보안  > PallyCon 재해 복구(Disaster Recovery, DR) 시스템
Introducing PallyCon DR(Disaster Recover) system

PallyCon 재해 복구(Disaster Recovery, DR) 시스템

지난 해 11월에 발생한 AWS 서울 리전의 대규모 장애로 인하여 클라우드 플랫폼을 기반으로 운영되는 서비스의 안정성이 다시 이슈화 되었습니다. 한 지역(Region) 내의 시스템을 이중화, 삼중화하여 일부 시스템의 장애를 대비하는 고가용성(High Availability, HA) 시스템만으로는 이렇게 지역 전체에 발생하는 문제에 대처할 수 없으며, 이에 따라 멀티 리전을 이용한 재해 복구(DR) 시스템의 필요성이 대두되고 있습니다.

 

본 문서는 클라우드 플랫폼의 대규모 장애에 자동으로 대처하고 피해를 최소화하기 위하여 PallyCon 클라우드 서비스에 멀티 리전 DR 시스템을 적용한 사례를 소개합니다.

PallyCon DR 시스템 소개

 

PallyCon DR 시스템은 평상 시에 서울 리전을 메인으로 서비스하며, 서울 리전의 장애 발생 시 모니터링(Health Check) 기능을 통해 백업 리전인 도쿄 리전으로 서비스를 자동 전환 시킵니다.

Amazon Route53에서 주기적으로 AWS 서울 리전의 서비스 상태를 점검하여 장애 발생 시 서비스 DNS를 도쿄 리전으로 전환하게 됩니다.

Health Check 기능

 

PallyCon DR System Health check function
주기 30초 (최소 10초 가능)
지역 서울, 도쿄
방법 DRM 라이선스 요청 URL 등 특정 API를 통해 해당 리전의 데이터베이스 접속 상태까지 정상인지를 점검
Failover 조건 3분간 지속적으로 서비스 장애가 감지될 경우, 도쿄 리전으로 전환됨. 이후 서울 리전의 장애가 복구되어 3분간 지속적으로 서비스 정상 상태가 감지될 경우, 다시 서울 리전으로 복귀

Alarming 기능

 

Health Check 결과는 Amazon CloudWatch에 저장되며, CloudWatch의 SNS Alarm 기능과 연동하여 관리자에게 재해 복구 처리에 대한 알림 메일이 발송됩니다.

DR 운영 환경 서버 구성 및 제약

 

PallyCon 서비스에서 사용하는 데이터베이스는 실시간 Cross Region Replica 복제가 이루어지며, 장애 발생으로 도쿄 리전에서 서비스하는 동안은 Read Only 상태로 기존 정보 조회 및 라이선스 발급이 가능하여 고객사의 서비스에 장애로 인한 영향을 최소화할 수 있습니다.

 

다만 지역간 데이터베이스 Multi-Master 처리가 불가하여 장애 발생 중에는 신규 콘텐츠 패키징 등의 데이터 추가 작업은 수행할 수 없습니다.(장애 복구 이후에 가능)

 

도쿄 리전의 백업 시스템은 기본적으로 주요 서버들을 1대 씩 최소 인스턴스로 운영하나, 트래픽에 따라서 오토스케일링을 통해 자동으로 확장 가능합니다.

DR Infra 자동 구성 및 배포

 

AWS Cloudformation 혹은 Terraform을 이용하여 반복적인 DR Infra 구성 및 배포를 빠르고, 정확하게 처리합니다.

 

AMI 등 변경된 자원에 대한 비동기 복사가 되며, AMI 변경에 대한 launch configuration 재구성, Auto Scaling 배포 등과 같은 반복적인 DR Infra 자동 구성 및 배포 작업도 처리됩니다.

결론

 

각종 온라인 서비스에 AWS와 같은 클라우드 플랫폼의 사용이 보편화되고, 기존의 온프레미스 솔루션에서 클라우드 SaaS(Solution-as-a-Service)로 전환이 가속화되고 있습니다. 자사의 서비스 뿐만 아니라 해당 서비스에서 이용하는 SaaS 솔루션도 재해 복구 시스템이 적용되어 있는지 확인해야 합니다.

 

PallyCon 멀티 리전 DR 시스템은 클라우드 플랫폼의 특정 지역 전체에 걸쳐 발생하는 대규모 장애 발생 시에도 약 3분 이내에 정상적인 서비스를 제공합니다. 이에 따라 장애로 인한 고객사의 비즈니스 연속성이나 재정에 대한 피해를 최소화할 수 있습니다.