Amazon Web Services 한국 블로그
AWS Fault Injection Service – 다중 지역 및 다중 AZ 애플리케이션 복원력 입증
AWS Fault Injection Service(FIS)는 카오스 엔지니어링을 대규모로 실행하는 데 도움을 줍니다. 오늘 AWS는 AWS 가용 영역에서 정전이 발생하거나 한 AWS 리전에서 다른 리전으로의 연결이 끊긴 경우에도 애플리케이션이 정상적으로 작동한다는 것을 입증할 수 있는 새로운 시나리오를 출시합니다.
이 시나리오를 사용하여 문제가 발생했을 때 (단일 리전이든 다중 리전이든 관계없이) 애플리케이션이 정상적으로 작동한다는 확신을 얻을 수 있고, 직접 및 간접 종속성을 보다 효과적으로 파악하는 데 도움이 되며, 복구 시간을 테스트할 수 있는 실험을 수행할 수 있습니다. 애플리케이션을 테스트하고 정상적으로 작동하는지 확인한 후에는 실험 결과를 규정 준수 목적으로 사용할 수 있습니다. FIS를 AWS Resilience Hub의 다른 부분과 함께 사용하면 애플리케이션의 전반적인 복원 태세를 자세히 파악하는 데 도움이 될 수 있습니다.
시나리오 소개
AWS는 AWS 애플리케이션에서 통제된 실험을 수행할 수 있도록 2021년에 FIS를 출시했습니다. 해당 출시 소식을 알리기 위해 작성한 게시물에서 실험 템플릿을 만들어 실험을 수행하는 데 사용하는 방법을 보여드린 바 있습니다. 이 실험은 특정 유형의 지정된 AWS 리소스 그룹에 영향을 미치는 강력한 저수준 작업을 사용하여 구축됩니다. 예를 들어 다음 작업은 EC2 인스턴스 및 오토 스케일링에 대해 작동합니다.
최근 AWS는 이러한 작업을 빌딩 블록으로 삼아 AWS FIS 시나리오 라이브러리를 출시했습니다. 이 라이브러리의 각 시나리오는 애플리케이션의 복원력을 테스트하는 데 사용할 수 있는 이벤트 또는 조건을 정의합니다.
각 시나리오는 실험 템플릿을 만드는 데 사용됩니다. 시나리오를 그대로 사용하거나, 템플릿을 기반으로 삼아 원하는 대로 사용자 지정하거나 개선할 수 있습니다.
시나리오는 동일한 AWS 계정 또는 다른 AWS 계정의 리소스를 대상으로 할 수 있습니다.
새 시나리오
배경 정보를 알아보았으니, 이제 새 시나리오를 살펴보겠습니다.
AZ 가용성: 정전 – 이 시나리오는 EC2 인스턴스(EKS 및 ECS 클러스터의 인스턴스 포함), EBS 볼륨, 오토 스케일링, VPC 서브넷, Amazon ElastiCache for Redis 클러스터 및 Amazon Relational Database Service(RDS) 클러스터를 비롯하여 단일 가용 영역에 있는 일련의 대상 리소스를 일시적으로 ‘연결 해제’합니다. 대부분의 경우 둘 이상의 가용 영역에 리소스가 있는 애플리케이션에서 실행하지만, 예상한 결과로서 가동 중단이 발생한 상태로 단일 AZ 앱에서도 실행할 수 있습니다. 단일 AZ를 대상으로 하며, 실험 중에 지정된 IAM 역할 세트 또는 오토 스케일링이 새 인스턴스를 시작하거나 중지된 인스턴스를 시작하는 것을 못하게 할 수도 있습니다.
새로운 작업 및 대상 경험을 사용하면 시나리오의 작업과 해당 작업의 영향을 받는 AWS 리소스의 유형 등 모든 관련 정보를 한눈에 쉽게 확인할 수 있습니다.
시나리오에는 실험 템플릿을 사용자 지정하는 데 사용되는 파라미터가 포함되어 있습니다.
고급 파라미터 – 타겟팅 태그를 사용하면 실험 대상 리소스를 찾는 데 사용할 태그 키와 값을 제어할 수 있습니다.
크로스 리전: 연결 – 이 시나리오는 테스트 리전의 애플리케이션이 대상 리전의 리소스에 액세스하지 못하게 합니다. 여기에는 VPC에 연결된 EC2 인스턴스, ECS 작업, EKS 포드 및 Lambda 함수의 트래픽이 포함됩니다. 또한 Transit Gateway와 VPC 피어링 연결을 통한 트래픽 흐름은 물론, 리전 간 S3 및 DynamoDB 복제도 포함됩니다. 이 시나리오는 기본적으로 다음과 같습니다.
이 시나리오는 (disruptionDuration 파라미터를 변경하지 않는 한) 3시간 동안 실행되며, 지정된 방식으로 테스트 리전을 대상 리전과 격리합니다. 여기에는 격리된 리전에서 영향을 받는 AWS 리소스를 선택하는 데 사용되는 태그를 제어할 고급 파라미터가 사용됩니다.
이 시나리오에서 사용된 중단 및 일시 중지 작업은 그 자체로도 유용할 수 있습니다.
일례로, aws:s3:bucket-pause-replication 작업을 사용하여 리전 내에서 복제를 일시 중지할 수 있습니다.
알아야 할 사항
다음은 새 시나리오에 대해 알아야 할 몇 가지 사항입니다.
리전 – 새 시나리오는 FIS가 지원되는 모든 상용 AWS 리전에서 추가 요금 없이 사용할 수 있습니다.
요금 – 실행한 실험에 소요된 작업 시간(분)을 기준으로 요금을 지불합니다. 자세한 내용은 AWS Fault Injection Service 요금 페이지를 참조하세요.
명칭 – 이 서비스는 이전의 AWS Fault Injection Simulator라는 명칭에서 변경되었습니다.
— Jeff;