Amazon Web Services 한국 블로그

AWS Resilience Hub – 애플리케이션 복원력 측정 및 개선 기능 출시

애플리케이션의 복원력을 정의, 추적 및 관리할 수 있도록 설계된 새로운 AWS 서비스인 AWS Resilience Hub를 소개합니다.

고객에게 서비스를 제공하기 위해 복원력이 뛰어난 애플리케이션을 구축하고 관리하고 있습니다. 분산 시스템을 구축하는 것은 어렵고, 운영 상태로 유지하는 것은 훨씬 더 어렵습니다. 문제는 시스템의 장애 발생 여부가 아닌, 장애가 발생하는 시기이며, 그 문제에 대비하기를 원할 것입니다.

복원력 목표는 일반적으로 장애 복구에 걸리는 시간인 복구 시간 목표(RTO)와 인시던트 후 데이터가 손실될 수 있는 최대 시간대인 복구 시점 목표(RPO)라는 두 가지 지표로 측정합니다. 비즈니스 및 애플리케이션에 따라 초, 분, 시간 또는 일 단위로 측정할 수 있습니다.

AWS Resilience Hub를 사용하면 각 애플리케이션에 대한 RTO 및 RPO 목표를 정의할 수 있습니다. 그런 다음 애플리케이션의 구성을 평가하여 요구 사항을 충족하는지 확인합니다. 실행 가능한 권장 사항과 복원력 점수를 제공하여 시간 경과에 따른 애플리케이션의 복원 진행 상황을 추적하는 데 도움이 됩니다. Resilience HubAWS 관리 콘솔을 통해 액세스할 수 있는 사용자 지정 가능한 단일 대시보드 환경을 제공하여 평가를 실행하고, 사전 구축된 테스트를 실행하며, 문제를 식별하고 운영자에게 알리기 위한 경보를 구성할 수 있습니다.

AWS Resilience HubAWS CloudFormation에서 배포한 애플리케이션(SAM CDK 애플리케이션 포함)을 검색하며, 이는 교차 리전 및 교차 계정 스택에 포함되어 있습니다. 또한 Resilience HubResource Groups태그에서 애플리케이션을 검색하거나 AWS Service Catalog AppRegistry에 이미 정의된 애플리케이션 중에서 선택합니다.

여기서 ‘애플리케이션’이라는 용어는 애플리케이션 소프트웨어나 코드만을 의미하는 것이 아니라, 네트워킹, 가상 머신, 데이터베이스 등 애플리케이션을 호스팅하는 전체 인프라 스택을 의미합니다.

복원력 평가 및 권장 사항
AWS Resilience Hub의 복원력 평가는 AWS Well-Architected Framework의 모범 사례를 활용하여 애플리케이션의 구성 요소를 분석하고 불완전한 인프라 설정, 잘못된 구성 또는 추가 구성 개선의 기회에 의해 야기되는 잠재적인 복원력 약점을 발견합니다. Resilience Hub는 애플리케이션의 복원력을 개선하기 위한 실행 가능한 권장 사항을 제공합니다.

예를 들어 Resilience Hub는 애플리케이션의 Amazon Relational Database Service(RDS), Amazon Elastic Block Store(EBS)Amazon Elastic File System(Amazon EFS) 백업 일정이 복원력 정책에 정의한 애플리케이션의 RPO 및 RTO를 충족하기에 충분하다는 것을 확인합니다. 불충분할 경우 RPO 및 RTO 목표를 충족하기 위한 개선을 권장합니다.

복원력 평가에서는 표준 운영 절차(SOP)라고 하는 애플리케이션에 대한 AWS Systems Manager 문서로 복구 절차를 생성하는 데 도움이 되는 코드 단편을 생성합니다. 또한 Resilience Hub는 권장 Amazon CloudWatch 모니터 및 경보 목록을 생성하여 배포 후 애플리케이션의 복원력 상태에 대한 모든 변경 사항을 신속하게 식별할 수 있도록 지원합니다.

지속적인 복원력 검증
복원력 평가의 권장 사항을 통합하도록 애플리케이션 및 SOP가 업데이트된 후에는 Resilience Hub를 사용하여 애플리케이션이 프로덕션에 릴리스되기 전에 복원력 목표를 충족하는지 테스트하고 확인할 수 있습니다. Resilience Hub는 AWS에서 장애 투입 실험을 실행하기 위한 완전관리형 서비스인 AWS Fault Injection Simulator (FIS)와 통합됩니다. FIS는 네트워크 오류 또는 데이터베이스에 대해 너무 많이 열린 연결과 같은 실제 장애에 대한 장애 투입 시뮬레이션을 제공합니다. 또한 Resilience Hub는 개발 팀이 지속적인 복원력 검증을 위해 복원력 평가 및 테스트를 CI/CD 파이프라인에 통합할 수 있는 API를 제공합니다. 복원력 검증을 CI/CD 파이프라인에 통합하면 애플리케이션의 기본 인프라에 대한 어떤 변경 사항으로 인해 복원력이 손상되지 않도록 할 수 있습니다.

가시성
AWS Resilience Hub는 전체 애플리케이션 포트폴리오 복원력 상태
에 대한 종합적인 뷰를 대시보드를 통해 제공합니다. 애플리케이션의 복원력을 추적하는 데 도움이 되도록 Resilience Hub
Amazon CloudWatchAWS Fault Injection Simulator(FIS)와 같은 서비스의 복원력 이벤트(예: 사용할 수 없는 데이터베이스 또는 실패한 복원력 검증), 알림 및 인사이트를 수집하고 구성합니다. 또한 Resilience Hub는 권장 복원력 테스트, 경보 및 복구 SOP의 실행 수준을 나타내는 척도인 복원력 점수를 생성합니다. 이 점수는 시간 경과에 따른 복원력 향상을 측정하는 데 사용할 수 있습니다.

직관적인 대시보드는 문제에 대한 경고를 전송하고, 개선 단계를 권장하며, 애플리케이션 복원력을 관리할 수 있는 단일 환경을 제공합니다. 예를 들어 CloudWatch 경보가 트리거되면 Resilience Hub는 사용자에게 경고를 보내고 배포할 복구 절차를 권장합니다.

AWS Resilience Hub 작업
단일 EC2 인스턴스와 RDS 데이터베이스로 구성된 복원력이 없는 애플리케이션을 개발했습니다. Resilience Hub에서 이 애플리케이션을 평가하고 싶습니다. AWS 계정에 이 애플리케이션을 배포하는 CDK 스크립트는 내 GitHub 리포지토리에서 사용할 수 있습니다. CDK v2(npm install -g aws-cdk@next)를 설치하고 스택을 배포하기만 하세요(cdk bootstrap && cdk deploy --all).

Resilience Hub를 사용하는 경우 다음 네 단계가 있습니다.

  • 먼저 평가할 애플리케이션을 추가합니다. CloudFormation 스택, AppRegistry, Resource Groups 또는 다른 기존 애플리케이션으로 시작할 수 있습니다.
  • 둘째, 복원력 정책을 정의합니다. 정책 문서에서는 애플리케이션, 인프라, 전체 가용 영역 또는 전체 AWS 리전에 영향을 줄 수 있는 인시던트에 대한 RTO 및 RPO 목표를 설명합니다.
  • 셋째, 애플리케이션에 대한 평가를 실행합니다. 평가에서는 정책 위반(있는 경우)을 나열하고 CloudWatch 경보, 표준 운영 절차 문서 또는 장애 투입 실험 템플릿 생성과 같은 일련의 권장 사항을 제공합니다.
  • 마지막으로, 제공된 모든 권장 사항을 설정하거나 정기적으로 실험을 실행하여 애플리케이션의 복원력 상태를 확인할 수 있습니다.

준비
시작하려면 브라우저를 열고 AWS 관리 콘솔로 이동합니다. AWS Resilience Hub를 선택하고 애플리케이션 추가를 선택합니다.

Resilience Hub 애플리케이션 추가

샘플 앱은 네트워크, 데이터베이스 및 EC2 인스턴스의 세 가지 CloudFormation 스택과 함께 배포됩니다.  이 세 개의 스택을 선택하고 화면 하단에서 다음을 선택합니다.

Resilience Hub 클라우드 포메이션 추가

Resilience Hub는 애플리케이션의 복원력에 영향을 줄 수 있는 이러한 스택에 의해 생성된 리소스를 감지하며, 평가에 포함하거나 제외할 리소스를 선택하고 다음을 클릭합니다. 이 예시에서는 NAT 게이트웨이, 데이터베이스 인스턴스 및 EC2 인스턴스를 선택합니다.

Resilience Hub 리소스 선택

복원력 정책을 생성하여 이 애플리케이션과 연결합니다. 정책 템플릿 중에서 선택하거나 정책을 처음부터 생성할 수 있습니다. 정책에는 네 가지 유형의 인시던트에 대한 이름과 RTO 및 RPO 값이 포함됩니다. 즉, 배포 오류 또는 코드 수준의 버그와 같이 애플리케이션 자체에 영향을 미치는 인시던트, EC2 인스턴스의 충돌과 같이 애플리케이션 인프라에 영향을 미치는 인시던트, 가용 영역에 영향을 미치는 인시던트 및 전체 리전에 영향을 미치는 인시던트입니다. 값은 초, 분, 시간 또는 일 단위로 표시됩니다.

Resilience Hub 정책 생성

마지막으로 선택 사항을 검토하고 게시를 선택합니다.

평가
이 애플리케이션과 해당 정책이 게시되면 복원력 평가를 선택하여 평가를 시작합니다.

Resilience Hub 복원력 평가

놀랄 것도 없이 Resilience Hub에서 복원력 정책을 위반했다고 보고합니다.

Resilience Hub 정책 위반

보고서를 선택하여 세부 정보를 확인합니다.  대시보드는 리전, 가용 영역, 인프라 및 애플리케이션 수준 인시던트 예상 RTO/RPO가 내 정책과 비교해서 어떤지 보여줍니다.

Resilience Hub 평가 대시보드

복원력 권장 사항운영 권장 사항에 액세스합니다.

복원력 권장 사항에서 애플리케이션의 구성 요소가 복원력 정책을 준수하는지 확인합니다. 또한 가용 영역 RTO/RPO 최적화, 비용 최적화 또는 최소 변경을 위한 최적화에 대한 권장 사항도 알아봅니다.

Resilience Hub 최적화

운영 권장 사항의 첫 번째 탭에 CloudWatch에서 생성할 제안된 경보 목록이 표시됩니다.

Resilience Hub 알람

두 번째 탭에는 권장 표준 작동 절차가 나열되어 있습니다. Backup에서 복원과 같이 인프라에서 실행할 수 있는 Systems Manager 문서입니다.

Resilience Hub SOP

세 번째 탭(장애 투입 실험 템플릿)에서는 복원력을 테스트하기 위해 인프라에서 실행할 실험을 제안합니다. 실험은 FIS로 실행됩니다. 제안된 실험은 메모리 로드 투입 또는 프로세스 종료 투입입니다.

Resilience Hub - FIS

권장 사항 설정을 선택하면 Resilience Hub에서 CloudFormation 템플릿을 생성하여 경보를 생성하거나 제안된 SOP 또는 실험을 실행합니다.

Resilience Hub - 권장 사항 설정

후속 화면은 설명이 필요 없습니다. 생성된 템플릿은 템플릿 탭에서 실행하여 사용할 수 있습니다. 템플릿을 적용하고 애플리케이션의 복원력 점수에 어떤 영향을 미치는지 관찰합니다.

Resilience Hub 복원력 점수

샘플 애플리케이션을 배포하는 데 사용한 CDK 스크립트는 동일한 애플리케이션에 대해 고가용성 인프라도 생성합니다. 로드 밸런서, Auto Scaling 그룹 및 두 개의 노드가 있는 데이터베이스 클러스터가 있습니다. 연습으로 이 애플리케이션 스택에 대해 동일한 평가 보고서를 실행하고 결과를 비교합니다.

요금 및 가용성
AWS Resilience Hub는 현재 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 동부(버지니아 북부), 미국 서부(오레곤), 아시아 태평양(싱가포르), 아시아 태평양(도쿄), EU(아일랜드), EU(프랑크푸르트)에서 사용 가능합니다. 앞으로 더 많은 리전을 추가할 예정입니다.

평소와 같이 사용한 만큼만 지불하면 됩니다. 선결제 비용이나 최소 요금은 없습니다. Resilience Hub에 설명한 애플리케이션 수에 따라 요금이 부과됩니다. Resilience Hub는 6개월 동안 최대 3개의 애플리케이션까지 무료로 사용할 수 있습니다. 이후 Resilience Hub의 가격은 애플리케이션당 월 15.00 USD입니다. Resilience Hub에서 첫 번째 복원력 평가를 실행하면 측정이 시작됩니다. Resilience HubCloudWatch 경보와 같은 서비스를 프로비저닝할 수 있으므로 추가 요금이 부과될 수 있습니다. 요금 페이지를 방문하여 세부 정보를 확인하세요.

피드백을 주시고 오늘 첫 번째 복원력 대시보드를 구축하세요.

— seb