Amazon Web Services 한국 블로그

Amazon Application Recovery Controller 리전 스위치 소개: 다중 리전 애플리케이션 복구 서비스

저는 여러 AWS 리전에서 주요 애플리케이션을 운영하는 많은 기업 조직과 함께 일해 왔습니다. 이들 기업에서 종종 공통된 주요 사안으로 리전 장애 조치 전략에 대한 확신의 부족을 들 수 있습니다. 해당 전략이 필요할 때 제대로 작동하는지, 모든 종속 항목이 식별되었는지, 팀이 절차를 충분히 연습했는지 여부 등을 확신하지 못합니다. 기존 접근 방식으로는 리전 스위치에 대한 준비 여부도 확신하지 못할 수 있습니다.

그래서 오늘 완전관리형 고가용성 기능인 Amazon Application Recovery Controller(ARC) 리전 스위치를 발표하게 되어 정말 기쁩니다. 이 기능을 사용하면 조직에서 리전 스위치를 자신 있게 계획, 연습 및 조율하여 교차 리전 복구 작업에 대한 불확실성을 제거할 수 있습니다. 리전 스위치를 사용하면 AWS에서 다중 리전 애플리케이션에 대한 복구를 조율할 수 있습니다. 애플리케이션 운영을 한 AWS 리전에서 다른 AWS 리전으로 전환해야 하는 경우 여러 AWS 서비스 및 계정에서 복구 작업을 조정하고 자동화할 수 있는 중앙 집중식 솔루션을 제공합니다.

많은 고객이 가용성 요구 사항을 충족하기 위해 여러 AWS 리전에 비즈니스 크리티컬 애플리케이션을 배포합니다. 운영 이벤트가 한 리전의 애플리케이션에 영향을 미치는 경우 다른 리전으로 운영을 전환하려면 컴퓨팅, 데이터베이스, DNS와 같은 다양한 AWS 서비스 전반에서 여러 단계를 조정해야 합니다. 애플리케이션이 진화함에 따라 이러한 조정을 위해 일반적으로 정기적인 테스트와 업데이트가 필요한 복잡한 스크립트를 구축하고 유지 관리해야 합니다. 또한 여러 애플리케이션에서 리전 스위치의 진행 상황을 조율 및 추적하고 규정 준수를 위해 성공적인 복구의 증거를 제공하려면 종종 수동 데이터 수집이 필요할 수도 있습니다.

리전 스위치는 리전 데이터 플레인 아키텍처에 기반하며 리전 스위치 계획은 활성화된 리전에서 실행됩니다. 이러한 설계를 통해 전환 시 영향을 받는 리전에 대한 종속성을 없애 전환하려는 원래 리전과는 독립적으로 실행이 수행되므로 복구 프로세스의 복원력이 개선됩니다.

ARC 리전 스위치를 통해 복구 계획 구축
ARC 리전 스위치를 통해 리전 사이에서 애플리케이션을 전환하는 데 필요한 특정 단계를 정의하는 복구 계획을 생성할 수 있습니다. 각 계획에는 AWS 리소스에서 작업을 나타내는 실행 블록이 포함되어 있습니다. 출시 시점을 기준으로 리전 스위치는 9가지 유형의 실행 블록을 지원합니다.

  • ARC 리전 스위치 계획 실행 블록 – 다른 리전 스위치 계획을 참조하여 활성화하려는 리전으로 여러 애플리케이션을 전환하는 순서를 조율할 수 있습니다.
  • Amazon EC2 Auto Scaling 실행 블록 – 소스 리전 용량의 지정된 비율에 맞게 대상 리전의 Amazon EC2 컴퓨팅 리소스 규모를 조정합니다.
  • ARC 라우팅 제어 실행 블록 – DNS 상태 확인을 사용하여 트래픽을 리디렉션하도록 라우팅 제어 상태를 변경합니다.
  • Amazon Aurora 글로벌 데이터베이스 실행 블록 – Amazon Aurora Global Database에 대해 데이터 손실 가능성이 있는 데이터베이스 장애 조치 또는 데이터 손실 없이 전환을 수행합니다.
  • 수동 승인 실행 블록 – 팀원이 작업을 진행하기 전에 검토하고 승인할 수 있는 승인 체크포인트를 복구 워크플로에 추가합니다.
  • 사용자 지정 작업 AWS Lambda 실행 블록 – 활성화 또는 비활성화 상태의 리전에서 Lambda 함수를 실행하여 사용자 지정 복구 단계를 추가합니다.
  • Amazon Route 53 상태 확인 실행 블록 – 장애 조치 중에 애플리케이션 트래픽을 리디렉션할 리전을 지정할 수 있습니다. 리전 스위치 계획을 실행할 때 Amazon Route 53 상태 확인 상태가 업데이트되고 DNS 구성을 기반으로 트래픽이 리디렉션됩니다.
  • Amazon Elastic Kubernetes Service(Amazon EKS) 리소스 규모 조정 실행 블록 – 소스 리전 용량의 지정된 비율에 맞게 복구 중 대상 리전의 Kubernetes 포드 규모를 조정합니다.
  • Amazon Elastic Container Service(Amazon ECS) 리소스 규모 조정 실행 블록 – 소스 리전 용량의 지정된 비율에 맞게 대상 리전의 ECS 작업 규모를 조정합니다.

리전 스위치는 30분마다 리소스 구성과 WS Identity and Access Management(IAM) 권한을 확인하여 계획을 지속적으로 검증합니다. 실행 중에 리전 스위치는 각 단계의 진행 상황을 모니터링하고 자세한 로그를 제공합니다. 리전 스위치 대시보드와 실행 세부 정보 페이지 하단에서 실행 상태를 볼 수 있습니다.

리전 스위치를 사용하면 비용과 신뢰성의 균형을 맞출 수 있으므로 대기 리소스를 준비하는 방식에 유연성을 제공합니다. 리전 스위치 규모 조정 실행 블록을 사용하여 복구 중 대상 리전에서 컴퓨팅 용량의 원하는 목표 비율을 구성할 수 있습니다. 복구 중 트래픽 급증이 예상되는 주요 애플리케이션의 경우 용량을 100% 넘게 확장하도록 선택하거나 비율을 낮게 설정해 전체 실행 시간을 단축할 수도 있습니다. 하지만 규모 조정 실행 블록 중 하나를 사용한다고 해서 용량이 보장되는 것은 아니며 실제 리소스 가용성은 복구 시점을 기준으로 대상 리전의 용량에 따라 달라진다는 점에 유의해야 합니다. 최상의 결과를 얻으려면 복구 계획을 정기적으로 테스트하고 대기 리전에 적절한 Service Quotas을 유지하는 것이 좋습니다.

ARC 리전 스위치에는 여러 기업 및 리전에서 리전 스위치 계획 상태를 모니터링하는 데 사용할 수 있는 글로벌 대시보드가 포함되어 있습니다. 또한 현재 콘솔의 리전 내 실행만 표시하는 리전별 실행 대시보드도 있습니다. 이 대시보드는 각 리전에서 고가용성으로 설계되어 운영 이벤트 중에 사용할 수 있습니다.

리전 스위치를 사용하면 리전 스위치 계획을 포함하는 계정과는 분리된 계정에서 리소스를 호스팅할 수 있습니다. 계획에서 해당 계획을 호스팅하는 계정과는 다른 계정의 리소스를 사용하는 경우 리전 스위치는 executionRole을 사용하여 crossAccountRole을 수임해 해당 리소스에 액세스합니다. 또한 AWS Resource Access Manager(AWS RAM)를 사용하여 리전 스위치 계획을 중앙 집중화하고 여러 계정에서 공유할 수 있으므로 조직 전체에서 복구 계획을 효율적으로 관리할 수 있습니다.

이제 작동 방식을 살펴보겠습니다.
리전 스위치 계획을 생성하고 실행하는 방법을 보여 드리겠습니다. 이 데모는 세 부분으로 구성됩니다. 먼저 리전 스위치 계획을 생성합니다. 그런 다음 워크플로를 정의합니다. 마지막으로 트리거를 구성합니다.

1단계: 계획 생성

AWS Management Console의 Application Recovery Controller 섹션으로 이동합니다. 왼쪽 탐색 메뉴에서 리전 스위치를 선택합니다. 그런 다음 리전 스위치 계획 생성을 선택합니다.

ARC 리전 스위치 - 1

계획 이름을 지정한 후 다중 지역 복구 접근 방식(액티브/패시브 또는 액티브/액티브)을 지정합니다. 액티브/패시브 모드에서는 두 개의 애플리케이션 복제본이 두 리전에 배포되고 트래픽은 액티브 리전으로만 라우팅됩니다. 패시브 리전의 복제본은 리전 스위치 계획을 실행하여 활성화할 수 있습니다.

그런 다음 기본 리전대기 리전을 선택합니다. 선택적으로 원하는 목표 복구 시간(RTO)을 입력할 수도 있습니다. 서비스는 이 값을 사용하여 원하는 RTO를 기준으로 리전 스위치 계획 실행에 걸리는 시간에 대한 인사이트를 얻을 수 있습니다.

ARC 리전 스위치 - 계획 생성

계획 실행 IAM 역할을 입력합니다. 이 역할을 통해 실행 중에 리전 스위치에서 AWS 서비스를 직접 호출할 수 있습니다. 선택한 역할에 서비스에서 간접 호출할 수 있는 권한이 있고 ARC가 작동하는 데 필요한 최소 권한 집합이 포함되어 있는지 확인합니다. 자세한 내용은 설명서의 IAM 권한 섹션을 참조하세요.

ARC 리전 스위치 - 계획 생성 22단계: 워크플로 생성

2개의 계획 평가 상태 알림이 녹색이면 워크플로를 생성합니다. 먼저 워크플로 구축을 선택합니다.


ARC 리전 스위치 - 상태

계획에서는 리전 스위치 실행 블록을 사용하여 애플리케이션을 복구하는 특정 워크플로를 구축할 수 있습니다. 순차적으로 또는 병렬로 실행되는 실행 블록으로 워크플로를 구축하여 여러 애플리케이션 또는 리소스가 활성화 상태의 리전으로 복구되는 순서를 조율할 수 있습니다. 계획은 특정 리전을 활성화하거나 비활성화할 수 있는 이러한 워크플로로 구성됩니다.

이 데모에서는 그래픽 편집기를 사용하여 워크플로를 생성합니다. 하지만 JSON으로 워크플로를 정의할 수도 있습니다. 이 형식은 워크플로 정의를 소스 코드 관리 시스템(SCMS)에 및 코드형 인프라(IaC)(예: AWS CloudFormation) 도구에 인프라를 저장하려는 경우 또는 자동화에 더 적합합니다.

ARC - 워크플로 정의

워크플로 빌더 제목 옆에 있는 해당 탭을 선택하여 디자인 보기 및 코드 보기를 번갈아 사용할 수 있습니다. JSON 보기는 읽기 전용입니다. 그래픽 편집기를 사용해 워크플로를 설계하고 이에 상응하는 JSON을 복사하여 IaC 프로젝트 파일과 함께 저장했습니다.

ARC - 코드로 워크플로 정의

리전 스위치는 30분마다 복구 전략을 검증하는 평가를 시작합니다. 워크플로에 정의된 모든 작업이 실행 시 성공하는지 정기적으로 확인합니다. 이 사전 검증에서는 여러 계정 및 리전에서 IAM 권한 및 리소스 상태를 비롯한 다양한 요소를 평가합니다. 리전 스위치는 이러한 종속성을 지속적으로 모니터링하여 복구 계획을 실행 가능한 상태로 유지하고 실제 스위치 작업에 영향을 미치기 전에 잠재적 문제를 식별하는 데 도움이 됩니다.

그러나 테스트되지 않은 백업을 완전히 신뢰할 수 없는 것처럼 테스트를 거치지 않은 복구 계획도 제대로 검증되었다고 볼 수 없습니다. 지속적인 평가가 강력한 토대를 제공하지만, 계획을 테스트 시나리오에서 정기적으로 실행하여 계획의 효과를 확인하고 실제 복구 시간을 파악하며 팀이 복구 절차를 숙지할 수 있도록 하는 것이 좋습니다. 이 실습 테스트는 재해 복구 전략에 대한 확신을 유지하는 데 필수적입니다.

3단계: 트리거 생성

트리거는 방금 생성한 워크플로를 활성화하기 위한 조건을 정의합니다. 일련의 CloudWatch 경보로 표현됩니다. 경보 기반 트리거는 선택 사항입니다. 수동 트리거와 함께 리전 스위치를 사용할 수도 있습니다.

콘솔의 리전 스위치 페이지에서 트리거 탭을 선택하고 트리거 추가를 선택합니다.

ARC - 트리거

계획에 정의된 각 리전에 대해 트리거 추가를 선택하여 리전을 활성화할 트리거를 정의합니다.ARC - 트리거 2마지막으로 리전 스위치가 리전 활성화를 트리거하는 데 사용할 경보 및 해당 상태(정상 또는 경보)를 선택합니다.

ARC - 트리거 3

이제 리전 스위치를 사용하여 리전을 전환하려는 계획의 실행을 테스트할 준비가 되었습니다. 활성화하는 리전(워크플로의 대상 리전)에서 계획을 실행하고 해당 특정 리전의 데이터 플레인을 사용하는 것이 중요합니다.

다음은 AWS Command Line Interface(AWS CLI)를 사용하여 계획을 실행하는 방법입니다.

aws arc-region-switch start-plan-execution \
--plan-arn arn:aws:arc-region-switch::111122223333:plan/resource-id \
--target-region us-west-2 \
--action activate

요금 및 가용성
릴전 스위치는 모든 상용 AWS 리전에서 계획당 매월 70 USD의 요금으로 이용할 수 있습니다. 각 계획에는 최대 100개의 실행 블록이 포함될 수 있습니다. 또는 상위 계획을 생성하여 최대 25개의 하위 계획을 조율할 수 있습니다.

다중 리전 복구 솔루션을 구축하고 유지 관리하는 데 필요한 엔지니어링 노력을 직접 살펴보면서 고객이 이러한 프로세스를 자동화하는 데 리전 스위치가 어떻게 도움이 되는지 알게 되어 매우 기뻤습니다. ARC 리전 스위치를 시작하려면 ARC 콘솔로 이동하고 첫 번째 리전 스위치 계획을 생성하세요. 리전 스위치에 대한 자세한 내용은 Amazon Application Recovery Controller(ARC) 설명서를 참조하세요. 또한 AWS 계정 팀으로 다중 리전 애플리케이션에 대해 리전 스위치를 사용하는 방법을 문의할 수 있습니다.

다중 리전 애플리케이션의 복원력을 강화하기 위해 리전 스위치를 사용하는 여러분의 이야기를 들을 수 있기를 기대하겠습니다.

– seb