예기치 않은 중단으로 인한 총 비용이 매년 기하급수적으로 증가하고 있습니다. Ponemon Institute가 2016년 실시한 연구에 따르면 계획되지 않은 중단의 평균 총 비용은 분당 $8,851로, 2013년 이후 32% 증가했고 2010년 이후 81% 증가했습니다. EMA Research의 2022년 연구에 따르면 이 수치는 $12,900까지 상승했습니다. 이러한 지표는 재해가 발생했을 때 다운타임과 데이터 손실을 최대한 줄이기 위해 조직이 견고하고 잘 계획된 재해 복구 전략을 갖추는 것이 얼마나 중요한지를 보여줍니다.
비즈니스 연속성을 보장하고 미션 크리티컬 시스템을 예기치 않은 장애로부터 보호하는 것은 특히 시스템 규모가 커짐에 따라 시간이 많이 소요되고 비용이 많이 들며 유지 관리가 어려울 수 있습니다. 또한 재해 복구(DR) 솔루션에 연간 수십만 달러에서 수백만 달러의 비용이 드는 것도 드문 일이 아니며, 이는 조직 내 IT 예산에 상당한 부담을 주고 있습니다. 그러나 DR 인프라를 설정하고 유지 관리하는 것이 그렇게 번거롭거나 비용이 많이 들 필요는 없습니다. 여기서 DR 계획 내에서 인프라를 코드로(IaC) 활용하는 것이 중요합니다.
이 블로그 게시물은 HashiCorp Terraform을 사용하여 인프라 프로비저닝 프로세스를 코드화함으로써 비용 효율적이고 실용적이며 일관된 방식으로 DR 환경을 효과적으로 설정, 테스트 및 검증하는 방법을 보여줍니다.
☑️ 재해 복구 전략 및 용어
Terraform이 DR 관련 인프라를 프로비저닝하고 관리하는 데 어떻게 도움이 되는지 살펴보기 전에, 복구 시간 목표(RTO)와 복구 지점 목표(RPO)의 개념을 이해하고, 이들이 서로 어떻게 다른지, 그리고 조직의 특정 DR 전략에 어떻게 적용되어야 하는지 이해하는 것이 중요합니다.
- · 복구 시간 목표(RTO): 계획되지 않은 중단이 발생한 후 조직의 미션에 부정적인 영향을 미치기 전에 비즈니스 운영을 복구하는 데 필요한 시간을 의미합니다.
- · 복구 지점 목표(RPO): RPO는 비즈니스가 감당할 수 있는 데이터 손실량을 시간 단위로 측정한 것입니다. 이는 일반적으로 비즈니스 요구 사항에 따라 몇 분에서 몇 시간까지 다양할 수 있습니다.
가장 인기 있는 재해 복구 전략 중 일부를 이해하는 것도 필요합니다. 아래 목록은 가장 저렴한 전략부터 시작하여 목록을 내려갈수록 더 비용이 많이 드는 전략으로 구성되어 있습니다. 조직의 DR 전략 내에서 이러한 방법들의 조합을 동시에 사용하는 것을 일반적으로 볼 수 있다는 점을 명심하세요. 예를 들어, 컨테이너/VM 클러스터 오케스트레이터는 일반적으로 Pilot Light 방법론을 활용하는 반면, 데이터베이스 인프라는 백업 및 데이터 복구 방법을 사용할 수 있습니다.
- 1. 백업 및 데이터 복구: 여기서 다루는 가장 단순하고 비용이 적게 드는 DR 전략입니다. 이 방법은 시스템/데이터를 다른 위치에 백업하고, 재해 발생 시 백업에서 기존 또는 새 시스템으로 데이터를 복원하는 것을 포함합니다. 이는 간단하고 비용 효율적인 전략일 수 있습니다. 그러나 데이터의 양과 복구 프로세스에 따라 높은 RTO 및/또는 RPO로 이어질 수 있습니다.
- 2. Pilot Light: Pilot Light 환경의 목표는 프로덕션 환경의 최소한의 복사본을 다른 위치에서 핵심 구성 요소/서비스만 실행하는 것입니다. 재해가 발생하면 추가로 필요한 구성 요소가 프로비저닝되고 프로덕션 용량으로 확장됩니다. 이 전략은 일반적으로 백업/데이터 복구 옵션보다 빠르지만, 복잡성과 비용도 더 높아집니다.
- 3. Active/Passive: 이 전략에서는 프로덕션 환경의 완전히 기능하는 복제본이 보조 위치에 생성됩니다. 이는 지금까지 논의된 모든 옵션 중 더 비용이 많이 들고 복잡한 전략입니다. 그러나 이전의 모든 방법에 비해 가장 빠른 복구 시간과 최소한의 데이터 손실을 제공합니다.
- 4. 다중 지역 Active/Active: 여기서는 시스템/애플리케이션이 여러 지리적 지역에 분산되도록 구축됩니다. 한 지역이 실패하면 트래픽이 자동으로 다른 정상 지역으로 리디렉션됩니다. 이는 모든 전략 중 가장 복잡하고 비용이 많이 듭니다. 또한 가장 높은 수준의 복원력과 가용성을 제공하면서 미션 크리티컬 애플리케이션을 전체 지역 중단으로부터 보호합니다.

☑️ DR 전략에 Terraform을 사용하는 이유
과거에 DR 도구를 선택하고 사용하는 과정을 거쳤다면 다음 문제 중 하나 이상을 경험했을 가능성이 높습니다.
- · 비용: 앞서 언급했듯이 재해 복구 도구는 매우 비용이 많이 들 수 있습니다. 라이선스 비용과 중복된 유휴 인프라를 유지하는 지속적인 비용은 IT 예산에 상당한 부담이 될 수 있습니다.
- · 유연성 부족: DR 도구 세트는 일반적으로 특정 플랫폼에 묶여 있습니다. 이로 인해 여러 클라우드 제공업체에 걸쳐 DR 전략을 설정할 때 추가적인 복잡성과 유연성 감소가 발생합니다. 이는 주요 퍼블릭 클라우드 중 하나의 관리형 솔루션을 활용할 때도 마찬가지입니다. 클라우드 특정 DR 솔루션을 활용하는 것이 처음에는 편리할 수 있지만, 향후 확장할 때 멀티 클라우드 및 하이브리드 전략에 대한 옵션이 제한될 것입니다.
- · 성능: 이러한 도구들은 성능과 복구 속도 면에서도 매우 느릴 수 있습니다. 레거시 DR 솔루션은 일반적으로 느리고 오류가 발생하기 쉬운 복잡한 메커니즘에 의존하므로 원하는 RTO와 RPO를 달성하기 어렵습니다.
Terraform은 이러한 모든 문제를 해결할 뿐만 아니라 재해 복구 전략 내에서 활용될 때 몇 가지 주요한 이점을 제공합니다.
- · 자동화: Terraform을 사용하면 전체 인프라 배포 및 복구 프로세스를 자동화할 수 있어 수동 개입의 필요성을 최소화하고 인적 오류의 위험을 크게 줄일 수 있습니다. 이는 또한 DR 인프라 설정의 일관성과 반복 가능성을 보장합니다.
- · 반복 가능성: Terraform을 사용하면 인프라를 코드로 접근하는 사고방식을 채택하게 되어, 인프라를 코드화된 방식으로 한 번 정의함으로써 여러 환경에 걸쳐 일관된 인프라 구성을 보장할 수 있습니다. 이는 구성 드리프트를 완화하고 DR 환경이 프로덕션 설정을 정확하게 미러링하도록 보장합니다.
- · 확장성: Terraform을 사용하면 필요에 따라 환경을 쉽게 확장할 수 있어, DR 인프라 계획을 실제 시나리오를 처리할 수 있는지 확인하면서 규모에 맞게 테스트할 수 있습니다.
- · 비용 효율성: Terraform을 사용하면 필요에 따라 임시 리소스를 동적으로 프로비저닝하고 제거할 수 있어, 대부분의 시간 동안 유휴 상태로 있는 리소스로 인한 지속적인 비용 대신 DR 연습 중에 사용된 리소스에 대해서만 비용을 지불하므로 인프라 비용이 크게 절감됩니다.
- · 유연성: Terraform은 클라우드에 구애받지 않는 솔루션이므로 단일 클라우드 제공업체 내의 다른 가용 영역이나 지역에서 인프라를 스핀업할 수 있을 뿐만 아니라 여러 클라우드 제공업체에 걸쳐 리소스를 프로비저닝하고 관리할 수 있습니다.
☑️ Terraform을 활용한 DR 전략 구현 방법
이전에 소개한 DR 전략을 다시 살펴보며 Terraform을 어떻게 활용할 수 있는지 예제를 통해 알아보겠습니다.
- 1. 백업 및 데이터 복구 : Terraform의 -refresh-only 플래그를 사용하면 인프라를 변경하지 않고 Terraform 상태 파일을 실제 인프라 상태와 동기화할 수 있습니다. 이는 백업 또는 복구 작업 후 Terraform 상태를 최신 상태로 유지하여 구성 드리프트를 줄이는 데 유용합니다.
- 2. 파일럿 라이트 및 액티브/패시브 : Terraform의 조건문을 활용하면 파일럿 라이트 환경에서 필요한 최소한의 구성 요소만 배포하고, 다른 리소스는 비활성 상태로 유지할 수 있습니다. 액티브/패시브 DR 전략에서도 Terraform을 활용하여 환경을 on/off로 설정하고, DR 이벤트 발생 시 리소스를 전체 프로덕션 수준으로 확장하도록 자동화할 수 있습니다.
- 3. 멀티 리전 액티브/액티브 : Terraform 모듈을 활용하면 여러 리전에 걸쳐 인프라 구성 요소를 캡슐화하고 재사용할 수 있습니다. 이는 대규모 멀티 리전 환경에서 일관성을 유지하는 데 중요한 역할을 하며, 인프라 관리의 복잡성을 줄이고 단일 소스의 진실성을 보장합니다. 예를 들어, 지역별 매개변수를 사용하여 동일한 인프라 구성을 여러 리전에 배포할 수 있습니다.
또한 Terraform의 import 명령어를 활용하면 기존 인프라를 Terraform 관리 하에 통합하여 DR 전략을 더욱 효과적으로 구축할 수 있습니다.
☑️ 기타 고려사항
Terraform을 활용하여 DR 인프라를 프로비저닝할 때 고려해야 할 추가 사항은 다음과 같습니다.
- · 애플리케이션 설치 시간: Terraform에 의존하지 않는 애플리케이션은 DR 장애 복구(failover) 수행 시 추가적인 설치 및 설정 시간이 필요할 수 있습니다. 이를 고려하여 RTO(복구 시간 목표)를 설정해야 합니다.
- · DNS 전파 시간: DNS 변경 사항이 전파되는 데 시간이 소요될 수 있습니다. 계획된 장애 복구(failover) 전에 DNS 레코드의 TTL(Time-To-Live) 값을 미리 낮추어 이를 완화할 수 있습니다.
- · 백업: Terraform은 데이터 백업 기능을 제공하지 않으며, 기존 백업 시스템을 대체할 수 없습니다. DR 전략 외에도 요구 사항을 충족하는 강력한 백업 전략을 마련해야 합니다.
▶ 하시코프 테라폼(HashiCorp Terraform) : 자세히보기
HashiCorp Terraform은 조직이 클라우드, 프라이빗 데이터 센터, SaaS 인프라를 프로비저닝하고 수명 주기 전반에 걸쳐 모든 것을 지속적으로 관리하는 표준화된 자동화 워크플로를 통해 인프라 투자를 극대화하도록 지원합니다.
클라우드네트웍스는 전담팀을 통해 볼트, 테라폼을 포함한 하시코프 제품군의 구축 및 기술지원 서비스를 제공합니다. 하시코프에 대한 문의사항은 공식 파트너사인 클라우드네트웍스로 연락 부탁드립니다.