

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS FIS 시나리오 라이브러리 작업
<a name="scenario-library"></a>

시나리오는 애플리케이션이 실행되는 컴퓨팅 리소스의 중단과 같이 고객이 애플리케이션의 복원력을 테스트하기 위해 적용할 수 있는 이벤트 또는 조건을 정의합니다. 시나리오는 AWS에서 생성하고 소유하며, 일반적인 애플리케이션 장애에 대해 사전 정의된 대상 그룹과 장애 조치(예: 자동 크기 조정 그룹 내 인스턴스 30% 중지)를 제공하여 차별화되지 않은 작업의 부담을 최소화합니다.

시나리오는 콘솔 전용 시나리오 라이브러리를 통해 제공되며 AWS FIS 실험 템플릿을 사용하여 실행합니다. 시나리오를 사용하여 실험을 실행하려면 라이브러리에서 시나리오를 선택하고 워크로드 세부 정보와 일치하는 파라미터를 지정한 다음 계정에 실험 템플릿으로 저장합니다.

**Topics**
+ [시나리오 보기](#viewing-a-scenario)
+ [시나리오 사용](#using-a-scenario)
+ [시나리오 내보내기](#exporting-a-scenario)
+ [시나리오 참조](scenario-library-scenarios.md)

## 시나리오 보기
<a name="viewing-a-scenario"></a>

콘솔을 사용하여 시나리오 보기

1. 에서 AWS FIS 콘솔을 엽니다[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/).

1. 탐색 창에서 **시나리오 라이브러리**를 선택합니다.

1. 특정 시나리오에 대한 정보를 보려면 시나리오 카드를 선택하여 분할 패널을 불러옵니다.
   + 페이지 하단의 분할 패널에 있는 **설명** 탭에서 시나리오에 대한 간략한 설명을 볼 수 있습니다. 또한 필요한 대상 리소스의 요약과 시나리오에 사용할 리소스를 준비하기 위해 취해야 하는 조치가 포함된 사전 요구 사항에 대한 간략한 요약을 찾을 수 있습니다. 마지막으로 시나리오의 대상 및 작업에 대한 추가 정보뿐만 아니라 기본 설정으로 실험이 성공적으로 실행될 때의 예상 기간도 확인할 수 있습니다.
   + 페이지 하단의 분할 패널에 있는 **콘텐츠** 탭에서 시나리오에서 생성될 실험 템플릿의 일부가 채워진 버전을 미리 볼 수 있습니다.
   + 페이지 하단의 분할 패널에 있는 **세부 정보** 탭에서 시나리오 구현 방법에 대한 자세한 설명을 찾을 수 있습니다. 여기에는 시나리오의 개별 측면을 근사화하는 방법에 대한 자세한 정보가 포함될 수 있습니다. 해당하는 경우, 어떤 지표를 중지 조건으로 사용하고 관찰성을 제공하여 실험에서 배울 수 있는지에 대해서도 읽어볼 수 있습니다. 마지막으로 결과 실험 템플릿을 확장하는 방법에 대한 권장 사항을 찾을 수 있습니다.

## 시나리오 사용
<a name="using-a-scenario"></a>

콘솔을 사용하여 시나리오 사용:

1. 에서 AWS FIS 콘솔을 엽니다[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/).

1. 탐색 창에서 **시나리오 라이브러리**를 선택합니다.

1. 특정 시나리오에 대한 정보를 보려면 시나리오 카드를 선택하여 분할 패널을 불러옵니다.

1. 시나리오를 사용하려면 시나리오 카드를 선택하고 **시나리오로 템플릿 생성**을 선택합니다.

1. **실험 템플릿 생성** 보기에서 누락된 항목을 모두 채웁니다.

   1. 일부 시나리오에서는 여러 작업 또는 대상에서 공유되는 파라미터를 편집할 수 있습니다. 이 기능은 공유 파라미터 편집에 의한 변경을 포함하여 시나리오를 변경하면 비활성화됩니다. 이 기능을 사용하려면 **공유 파라미터 편집** 버튼을 선택합니다. 모달에서 파라미터를 편집하고 **저장** 버튼을 선택합니다.

   1. 일부 실험 템플릿에는 작업 또는 대상 파라미터가 누락되어 있을 수 있으며, 각 작업 및 대상 카드에 강조 표시되어 있습니다. 각 카드의 **편집** 버튼을 선택하고 누락된 정보를 추가한 다음 카드에서 **저장** 버튼을 선택합니다.

   1. 모든 템플릿에는 **서비스 액세스** 실행 역할이 필요합니다. 이 실험 템플릿에 대해 기존 역할을 선택하거나 새로운 역할을 생성할 수 있습니다.

   1. 기존 AWS CloudWatch 경보를 선택하여 하나 이상의 선택적 **중지 조건**을 정의하는 것이 좋습니다. [AWS FIS에 대한 중지 조건](stop-conditions.md)에 대해 자세히 알아보세요. 경보가 아직 구성되지 않은 경우 [Amazon CloudWatch 경보 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)의 지침에 따라 나중에 실험 템플릿을 업데이트할 수 있습니다.

   1. Amazon CloudWatch Logs 또는 Amazon S3 버킷에 대한 선택적 실험 **로그**를 활성화하는 것이 좋습니다. [AWS FIS에 대한 실험 로깅](monitoring-logging.md)에 대해 자세히 알아봅니다. 적절한 리소스가 아직 구성되지 않은 경우 나중에 실험 템플릿을 업데이트할 수 있습니다.

1. **실험 템플릿 생성**에서 **실험 템플릿 생성**을 선택합니다.

1.  AWS FIS 콘솔의 **실험 템플릿** 보기에서 **실험 시작**을 선택합니다. [AWS FIS 실험 템플릿 관리AWS FIS 실험 관리](experiments.md)에 대해 자세히 알아보세요.

## 시나리오 내보내기
<a name="exporting-a-scenario"></a>

시나리오는 콘솔 전용 환경입니다. 실험 템플릿과 비슷하지만 시나리오는 완전한 실험 템플릿이 아니므로 AWS FIS로 직접 가져올 수 없습니다. 시나리오를 자체 자동화의 일부로 사용하려는 경우 다음 두 가지 경로 중 하나를 사용할 수 있습니다.

1. 의 단계에 따라 유효한 AWS FIS 실험 템플릿을 [시나리오 사용](#using-a-scenario) 생성하고 해당 템플릿을 내보냅니다.

1. [시나리오 보기](#viewing-a-scenario)의 절차를 따르고, 3단계에 **콘텐츠** 탭에서 시나리오 콘텐츠를 복사 및 저장한 다음 누락된 파라미터를 수동으로 추가하여 유효한 실험 템플릿을 생성합니다.

# 시나리오 참조
<a name="scenario-library-scenarios"></a>

시나리오 라이브러리에 포함된 시나리오는 가능한 경우 [태그](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html)를 사용하도록 설계되었으며, 각 시나리오는 시나리오 설명의 **사전 조건** 및 **작동 방식** 섹션에서 필수 태그를 설명합니다. 미리 정의된 태그로 리소스에 태그를 지정하거나 공유 파라미터 편집 환경을 사용하여 자체 태그를 설정할 수 있습니다( 참조[시나리오 사용](scenario-library.md#using-a-scenario)).

이 참조에서는 AWS FIS 시나리오 라이브러리의 일반적인 시나리오에 대해 설명합니다. AWS FIS 콘솔을 사용하여 지원되는 시나리오를 나열할 수도 있습니다.

자세한 내용은 [AWS FIS 시나리오 라이브러리 작업](scenario-library.md) 단원을 참조하십시오.

AWS FIS는 다음과 같은 Amazon EC2 시나리오를 지원합니다. 이러한 시나리오는 [태그](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html)를 사용하는 인스턴스를 대상으로 합니다. 자체 태그를 사용하거나 시나리오에 포함된 기본 태그를 사용할 수 있습니다. 이러한 시나리오 중 일부는 [SSM 문서를 사용](https://docs.aws.amazon.com//fis/latest/userguide/actions-ssm-agent.html)합니다.
+ **EC2 스트레스: 인스턴스 오류** - 하나 이상의 EC2 인스턴스를 중지하여 인스턴스 오류가 미치는 영향을 살펴봅니다.

  현재 리전에서 특정 태그가 부착된 인스턴스를 대상으로 합니다. 이 시나리오에서는 이러한 인스턴스를 중지하고 작업 기간이 끝날 때(기본적으로 5분) 다시 시작합니다.
+ **EC2 스트레스: 디스크** - 디스크 사용률 증가가 EC2 기반 애플리케이션에 미치는 영향을 살펴봅니다.

  이 시나리오에서는 특정 태그가 부착된 현재 리전의 EC2 인스턴스를 대상으로 합니다. 이 시나리오에서는 작업 기간 동안 대상 EC2 인스턴스에 주입되는 디스크 사용량 증가를 사용자 지정할 수 있습니다(기본적으로 각 디스크 스트레스 작업에 대해 5분).
+ **EC2 스트레스: CPU** - CPU 증가가 EC2 기반 애플리케이션에 미치는 영향을 살펴봅니다.

  이 시나리오에서는 특정 태그가 부착된 현재 리전의 EC2 인스턴스를 대상으로 합니다. 이 시나리오에서는 작업 기간 동안 대상 EC2 인스턴스에 주입되는 CPU 스트레스 양 증가를 사용자 지정할 수 있습니다(기본적으로 각 CPU 스트레스 작업에 대해 5분).
+ **EC2 스트레스: 메모리** - 메모리 사용률 증가가 EC2 기반 애플리케이션에 미치는 영향을 살펴봅니다.

  이 시나리오에서는 특정 태그가 부착된 현재 리전의 EC2 인스턴스를 대상으로 합니다. 이 시나리오에서는 작업 기간 동안 대상 EC2 인스턴스에 주입되는 메모리 스트레스 양 증가를 사용자 지정할 수 있습니다(기본적으로 각 메모리 스트레스 작업에 대해 5분).
+ **EC2 스트레스: 네트워크 지연 시간** - 네트워크 지연 시간 증가가 EC2 기반 애플리케이션에 미치는 영향을 살펴봅니다.

  이 시나리오에서는 특정 태그가 부착된 현재 리전의 EC2 인스턴스를 대상으로 합니다. 이 시나리오에서는 작업 기간 동안 대상 EC2 인스턴스에 주입되는 네트워크 지연 시간 증가를 사용자 지정할 수 있습니다(기본적으로 각 지연 시간 작업에 대해 5분).

AWS FIS는 다음과 같은 Amazon EKS 시나리오를 지원합니다. 이 시나리오는 Kubernetes 애플리케이션 레이블을 사용하는 EKS 포드를 대상으로 합니다. 자체 레이블을 사용하거나 시나리오에 포함된 기본 레이블을 사용할 수 있습니다. FIS를 사용하는 EKS에 대한 자세한 내용은 [EKS 포드 작업](eks-pod-actions.md) 단원을 참조하세요.
+ **EKS 스트레스: 포드 삭제** - 하나 이상의 포드를 삭제하여 EKS 포드 오류의 영향을 살펴보세요.

  이 시나리오에서는 애플리케이션 레이블과 연결된 현재 리전의 포드를 대상으로 합니다. 이 시나리오에서는 일치하는 모든 포드를 종료합니다. 포드의 재생성은 kubernetes 구성에 의해 제어됩니다.
+ **EKS 스트레스: CPU** - CPU 증가가 EKS 기반 애플리케이션에 미치는 영향을 살펴봅니다.

  이 시나리오에서는 애플리케이션 레이블과 연결된 현재 리전의 포드를 대상으로 합니다. 이 시나리오에서는 작업 기간 동안 대상 EKS 포드에 주입되는 CPU 스트레스 양 증가를 사용자 지정할 수 있습니다(기본적으로 각 CPU 스트레스 작업에 대해 5분).
+ **EKS 스트레스: 디스크** - 디스크 사용률 증가가 EKS 기반 애플리케이션에 미치는 영향을 살펴봅니다.

  이 시나리오에서는 애플리케이션 레이블과 연결된 현재 리전의 포드를 대상으로 합니다. 이 시나리오에서는 작업 기간 동안 대상 EKS 포드에 주입되는 디스크 스트레스 양 증가를 사용자 지정할 수 있습니다(기본적으로 각 CPU 스트레스 작업에 대해 5분).
+ **EKS 스트레스: 메모리** - 메모리 사용률 증가가 EKS 기반 애플리케이션에 미치는 영향을 살펴봅니다.

  이 시나리오에서는 애플리케이션 레이블과 연결된 현재 리전의 포드를 대상으로 합니다. 이 시나리오에서는 작업 기간 동안 대상 EKS 포드에 주입되는 메모리 스트레스 양 증가를 사용자 지정할 수 있습니다(기본적으로 각 메모리 스트레스 작업에 대해 5분).
+ **EKS 스트레스: 네트워크 지연 시간** - 네트워크 지연 시간 증가가 EKS 기반 애플리케이션에 미치는 영향을 살펴봅니다.

  이 시나리오에서는 애플리케이션 레이블과 연결된 현재 리전의 포드를 대상으로 합니다. 이 시나리오에서는 작업 기간 동안 대상 EKS 포드에 주입되는 네트워크 지연 시간 증가를 사용자 지정할 수 있습니다(기본적으로 각 지연 시간 작업에 대해 5분).

AWS FIS는 단일 AZ, 다중 AZ 및 다중 리전 애플리케이션에 대해 다음 시나리오를 지원합니다. 이러한 시나리오는 여러 리소스 유형을 대상으로 합니다.
+ **AZ Availability: Power Interruption** - 가용 영역(AZ)에서 전원이 완전히 중단되었을 때 예상되는 증상을 입력합니다. [AZ Availability: Power Interruption](az-availability-scenario.md)에 대해 자세히 알아보세요.
+ **AZ: Application Slowdown** - 단일 가용 영역(AZ) 내의 리소스 간에 지연 시간을 추가하여 애플리케이션 속도를 늦춥니다. [AZ: Application Slowdown](az-application-slowdown-scenario.md)에 대해 자세히 알아보세요.
+ **Cross-AZ: Traffic Slowdown** - 패킷 손실을 주입하여 가용 영역(AZs. [Cross-AZ: Traffic Slowdown](cross-az-traffic-slowdown-scenario.md)에 대해 자세히 알아보세요.
+ **Cross-Region: Connectivity** - 실험 리전에서 대상 리전으로의 애플리케이션 네트워크 트래픽을 차단하고 리전 간 데이터 복제를 일시 중지합니다. [Cross-Region: Connectivity](cross-region-scenario.md)를 사용하는 방법에 대해 자세히 알아보세요.

AWS FIS 는 Amazon EBS 볼륨에 대해 다음 시나리오를 지원합니다. 이러한 시나리오는 태그를 사용하여 볼륨을 대상으로 합니다. 자체 태그를 사용하거나 시나리오에 포함된 기본 태그를 사용할 수 있습니다. 대상 볼륨은 동일한 가용 영역에 있어야 합니다. 자세한 내용은 [Amazon EBS에서 결함 테스트를](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-fis.html) 참조하세요.
+ **EBS: Sustained Latency** - 영구 I/O 지연 시간이 애플리케이션에 미치는 영향을 살펴봅니다.

  이 시나리오에서는 특정 태그가 연결된 현재 가용 영역의 볼륨을 대상으로 합니다. 이 시나리오에서는 15분 동안 단일 지연 시간 작업을 사용하여 볼륨에 대한 읽기 작업의 50%와 쓰기 작업의 100%에서 500ms의 일정한 지연 시간을 주입합니다. 이 시나리오에서는 주입된 지연 시간, 주입된 I/O의 백분율 및 작업 기간을 사용자 지정할 수 있습니다.
+ **EBS: Increasing Latency** - 애플리케이션에 대한 I/O 지연 시간 증가의 영향을 살펴봅니다.

  이 시나리오에서는 특정 태그가 연결된 현재 가용 영역의 볼륨을 대상으로 합니다. 이 시나리오에서는 15분 동안 5개의 지연 시간 작업을 사용하여 볼륨에 대한 읽기 작업의 10%와 쓰기 작업의 25%에서 50ms, 200ms, 700ms, 1초 및 15초의 지연 시간을 증가시킵니다. 이 시나리오에서는 각 지연 시간 작업에 대해 주입된 지연 시간, 주입된 I/O의 백분율 및 작업 기간을 사용자 지정할 수 있습니다.
+ **EBS: Intermittent Latency** - 간헐적인 I/O 지연 시간 스파이크가 애플리케이션에 미치는 영향을 살펴봅니다.

  이 시나리오에서는 특정 태그가 연결된 현재 가용 영역의 볼륨을 대상으로 합니다. 이 시나리오에서는 볼륨에 대한 읽기 및 쓰기 I/O 작업의 0.1%에 30초, 10초 및 20초의 급격한 간헐적 지연 시간 스파이크 3개를 주입합니다.이 경우 3개의 지연 시간 작업을 사용하고 15분 동안 각 스파이크 사이에 복구 간격을 둡니다. 이 시나리오에서는 각 지연 시간 작업에 대해 주입된 지연 시간, 주입된 I/O의 백분율 및 작업 기간을 사용자 지정할 수 있습니다.
+ **EBS: Decreasing Latency** - 애플리케이션에 대한 I/O 지연 시간 감소의 영향을 살펴봅니다.

  이 시나리오에서는 특정 태그가 연결된 현재 가용 영역의 볼륨을 대상으로 합니다. 이 시나리오에서는 15분 동안 5개의 지연 시간 작업을 사용하여 볼륨에 대한 읽기 및 쓰기 작업의 10%에서 20초, 5초, 900ms, 300ms 및 40ms의 지연 시간을 줄입니다. 이 시나리오에서는 각 지연 시간 작업에 대해 주입된 지연 시간, 주입된 I/O의 백분율 및 작업 기간을 사용자 지정할 수 있습니다.

# AZ Availability: Power Interruption
<a name="az-availability-scenario"></a>

 AZ Availability: Power Interruption 시나리오를 사용하여 가용 영역(AZ)에서 전원이 완전히 중단될 때 예상되는 증상을 유도할 수 있습니다.

이 시나리오는 한 번의 완전한 AZ 전원 중단 시 다중 AZ 애플리케이션이 예상대로 작동하는 것을 입증하는 데 사용할 수 있습니다. 여기에는 영역 컴퓨팅(Amazon EC2, EKS 및 ECS) 손실, AZ에서 컴퓨팅 크기 조정 없음, 서브넷 연결 손실, RDS 장애 조치, ElastiCache 장애 조치, S3 Express One Zone 디렉터리 버킷에 대한 액세스 손상, 응답하지 않는 EBS 볼륨이 포함됩니다. 기본적으로 대상이 발견되지 않는 작업은 건너뛰게 됩니다.

## 작업
<a name="az-availability-scenario-actions"></a>

다음 작업을 함께 취하면 단일 AZ에서 완전한 정전 시 예상되는 여러 가지 증상이 나타납니다. AZ 가용성: 전원 중단은 단일 AZ 전원 중단 중에 영향을 받을 것으로 예상되는 서비스에만 영향을 줍니다. 기본적으로 시나리오는 30분 동안 전원 중단 증상을 주입한 다음 추가로 30분 동안 복구 중에 발생할 수 있는 증상을 주입합니다.

### Stop-Instances
<a name="az-availability-scenario-actions-stop-instances"></a>

AZ 전원이 중단되는 동안 영향을 받는 AZ의 EC2 인스턴스는 종료됩니다. 전원이 복구되면 인스턴스가 재부팅됩니다. AZ Availability: Power Interruption에는 중단 기간 동안 영향을 받는 AZ의 모든 인스턴스를 중지하는 [aws:ec2:stop-instances](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#stop-instances)가 포함됩니다. 기간이 지나면 인스턴스가 다시 시작됩니다. Amazon EKS에서 관리하는 EC2 인스턴스를 중지하면 종속된 EKS 포드가 삭제됩니다. Amazon ECS에서 관리하는 EC2 인스턴스를 중지하면 종속된 ECS 태스크가 중지됩니다.

이 작업은 영향을 받는 AZ에서 실행 중인 EC2 인스턴스를 대상으로 합니다. 기본적으로 이 작업은 값이 `StopInstances`인 `AzImpairmentPower`라는 이름의 태그가 있는 인스턴스를 대상으로 합니다. 이 태그를 인스턴스에 추가하거나 실험 템플릿에서 기본 태그를 사용자 지정 태그로 바꿀 수 있습니다. 기본적으로 유효한 인스턴스를 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

### Stop-ASG-Instances
<a name="az-availability-scenario-actions-stop-asg-instances"></a>

AZ 전원이 중단되는 동안 영향을 받는 AZ의 Auto Scaling 그룹에서 관리하는 EC2 인스턴스가 종료됩니다. 전원이 복구되면 인스턴스가 재부팅됩니다. AZ Availability: Power Interruption에는 중단 기간 동안 영향을 받는 AZ에서 Auto Scaling으로 관리되는 인스턴스를 포함한 모든 인스턴스를 중지하는 [aws:ec2:stop-instances](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#stop-instances)가 포함됩니다. 기간이 지나면 인스턴스가 다시 시작됩니다.

이 작업은 영향을 받는 AZ에서 실행 중인 EC2 인스턴스를 대상으로 합니다. 기본적으로 이 작업은 값이 `IceAsg`인 `AzImpairmentPower`라는 이름의 태그가 있는 인스턴스를 대상으로 합니다. 이 태그를 인스턴스에 추가하거나 실험 템플릿에서 기본 태그를 사용자 지정 태그로 바꿀 수 있습니다. 기본적으로 유효한 인스턴스를 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

### 인스턴스 시작 일시 중지
<a name="az-availability-scenario-actions-pause-instance-launches"></a>

AZ 전원이 중단되는 동안에는 AZ에서 용량을 프로비저닝하기 위한 EC2 API 호출이 실패합니다. 특히 `ec2:StartInstances` `ec2:CreateFleet` `ec2:RunInstances` 등의 API가 영향을 받습니다. AZ Availability: Power Interruption includes에는 영향을 받는 AZ에서 새 인스턴스가 프로비저닝되지 않도록 하기 위해 [aws:ec2:api-insufficient-instance-capacity-error](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#api-ice)가 포함됩니다.

이 작업은 인스턴스 프로비저닝에 사용되는 IAM 역할을 대상으로 합니다. 이러한 역할은 ARN을 사용하여 타겟팅해야 합니다. 기본적으로 유효한 IAM 역할을 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

### ASG 스케일링 일시 중지
<a name="az-availability-scenario-actions-pause-asg-scaling"></a>

 AZ 전원 중단 시 Auto Scaling 컨트롤 플레인이 AZ에서 손실된 용량을 복구하기 위해 호출하는 EC2 API는 실패합니다. 특히 `ec2:StartInstances` `ec2:CreateFleet` `ec2:RunInstances` 등의 API가 영향을 받습니다. AZ Availability: Power Interruption에는 영향을 받는 AZ에서 새 인스턴스를 프로비저닝할 수 없도록 하는 [aws:ec2:asg-insufficient-instance-capacity-error](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#asg-ice)가 포함됩니다. 또한 영향을 받는 AZ에서 Amazon EKS 및 Amazon ECS를 확장할 수 없습니다.

이 작업은 Auto Scaling 그룹을 대상으로 합니다. 기본적으로 이 작업은 값이 `IceAsg`인 `AzImpairmentPower`라는 이름의 태그가 있는 Auto Scaling 그룹을 대상으로 합니다. 이 태그를 Auto Scaling 그룹에 추가하거나 실험 템플릿에서 기본 태그를 사용자 지정 태그로 바꿀 수 있습니다. 기본적으로 유효한 Auto Scaling 그룹을 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

### 네트워크 연결 일시 중지
<a name="az-availability-scenario-actions-pause-network-connectivity"></a>

AZ 전원이 중단되는 동안에는 AZ의 네트워킹을 사용할 수 없습니다. 이 경우 일부 AWS 서비스는 영향을 받는 AZ의 프라이빗 엔드포인트를 사용할 수 없음을 반영하여 DNS를 업데이트하는 데 최대 몇 분 정도 걸릴 수 있습니다. 이 시간 동안 DNS 조회에서 액세스할 수 없는 IP 주소가 반환될 수 있습니다. AZ Availability: Power Interruption에는 영향을 받는 AZ의 모든 서브넷에 대한 모든 네트워크 연결을 2분 동안 차단하는 [aws:network:disrupt-connectivity](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#network-actions-reference)가 포함됩니다. 이렇게 하면 대부분의 애플리케이션에서 시간 초과 및 DNS 새로 고침이 강제로 실행됩니다. 2분 후에 이 작업을 종료하면 AZ를 계속 사용할 수 없는 동안 리전 서비스 DNS를 나중에 복구할 수 있습니다.

이 작업은 서브넷을 대상으로 합니다. 기본적으로 이 작업은 값이 `DisruptSubnet`인 `AzImpairmentPower`라는 이름의 태그가 있는 클러스터를 대상으로 합니다. 이 태그를 서브넷에 추가하거나 실험 템플릿에서 기본 태그를 사용자 지정 태그로 바꿀 수 있습니다. 기본적으로 유효한 서브넷을 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

### 장애 조치 RDS
<a name="az-availability-scenario-actions-failover-rds"></a>

AZ 전원이 중단되는 동안 영향을 받는 AZ의 RDS 노드는 종료됩니다. 영향을 받는 AZ의 단일 AZ RDS 노드는 완전히 사용할 수 없게 됩니다. 다중 AZ 클러스터의 경우, 쓰기 노드는 영향을 받지 않는 AZ로 장애 조치되고 영향을 받는 AZ의 읽기 노드는 사용할 수 없게 됩니다. 다중 AZ 클러스터의 경우, AZ Availability: Power Interruption에는 쓰기기가 영향을 받는 AZ에 있는 경우 장애 조치할 [aws:rds:failover-db-cluster](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#failover-db-cluster)가 포함됩니다.

이 작업은 RDS 클러스터를 대상으로 합니다. 기본적으로 이 작업은 값이 `DisruptRds`인 `AzImpairmentPower`라는 이름의 태그가 있는 클러스터를 대상으로 합니다. 이 태그를 클러스터에 추가하거나 실험 템플릿에서 기본 태그를 사용자 지정 태그로 바꿀 수 있습니다. 기본적으로 유효한 클러스터를 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

### ElastiCache 복제 그룹 일시 중지
<a name="az-availability-scenario-actions-pause-elasticache"></a>

AZ 전원 중단 중에는 AZ의 ElastiCache 노드를 사용할 수 없습니다. AZ Availability: Power Interruption에는 영향을 받는 AZ에서 ElastiCache 노드를 종료하기 위한 [aws:elasticache:replicationgroup-interrupt-az-power](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#interrupt-elasticache)가 포함되어 있습니다. 중단 기간 동안 영향을 받는 AZ에 새 인스턴스가 프로비저닝되지 않으므로 복제 그룹은 감소된 용량을 유지합니다.

이 작업은 ElastiCache 복제 그룹을 대상으로 합니다. 기본적으로 이름이 이고 값이 인 태그가 `AzImpairmentPower` 있는 복제 그룹을 대상으로 합니다`ElasticacheImpact`. 이 태그를 복제 그룹에 추가하거나 실험 템플릿에서 기본 태그를 자체 태그로 바꿀 수 있습니다. 기본적으로 유효한 복제 그룹을 찾을 수 없는 경우이 작업은 건너뜁니다. 영향을 받는 AZ에 노드가 있는 복제 그룹만 유효한 대상으로 간주됩니다.

### ARC 영역 자동 전환 시작
<a name="az-availability-scenario-actions-zonal-autoshift"></a>

AZ 전원 중단이 시작된 후 5분이 지나면 복구 작업은 남은 25분 동안 리소스 트래픽을 지정된 AZ에서 `aws:arc:start-zonal-autoshift` 자동으로 이동합니다. 이 기간이 지나면 트래픽이 원래 AZ로 다시 이동합니다. 실제 AZ 전력 중단 중에는 자동 전환이 활성화된 경우 장애가 AWS 감지되고 리소스 트래픽이 이동합니다. 이 교대 근무 시기는 다르지만 장애 발생 시점으로부터 5분 후에 발생할 것으로 예상됩니다.

이 작업은 Amazon Application Recovery Controller(ARC) 자동 전환 지원 리소스를 대상으로 합니다. 기본적으로 태그 키`AzImpairmentPower`와 값를 사용하여 리소스를 대상으로 합니다`RecoverAutoshiftResources`. 이 태그를 리소스에 추가하거나 실험 템플릿에서 기본 태그를 자체 태그로 바꿀 수 있습니다. 예를 들어 애플리케이션별 태그를 사용할 수 있습니다. 기본적으로 유효한 리소스를 찾을 수 없는 경우이 작업은 건너뜁니다.

### EBS I/O 일시 중지
<a name="az-availability-scenario-actions-pause-ebs-io"></a>

AZ 전원 중단 후 전원이 복구되면 극히 일부 인스턴스에서 EBS 볼륨이 응답하지 않는 현상이 발생할 수 있습니다. AZ Availability: Power Interruption에는 [aws:ebs:pause-io](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#ebs-actions-reference)가 포함되어 EBS 볼륨 1개를 응답하지 않는 상태로 남겨둡니다.

기본적으로 인스턴스가 종료된 후에도 지속되도록 설정된 볼륨만 대상이 됩니다. 이 작업은 값이 `APIPauseVolume`인 `AzImpairmentPower`라는 태그가 있는 볼륨을 대상으로 합니다. 이 태그를 볼륨에 추가하거나 실험 템플릿에서 기본 태그를 사용자 지정 태그로 바꿀 수 있습니다. 기본적으로 유효한 볼륨을 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

### S3 Express One Zone 디렉터리 버킷에 대한 연결 중단
<a name="az-availability-scenario-actions-pause-network-connectivity-s3-express"></a>

AZ 전원 중단 중에는 AZ의 S3 Express One Zone 디렉터리 버킷에 저장된 데이터에 액세스할 수 없습니다. AZ 가용성: 전원 중단에는 실험 기간 동안 영향을 받는 AZ의 서브넷과 One Zone 디렉터리 버킷 간의 연결을 방해하는 [aws:network:disrupt-connectivity](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#network-actions-reference)가 포함되어 있어 영역 엔드포인트 데이터 영역 API 작업에 시간 초과가 발생합니다. 컴퓨팅이 AZ의 스토리지와 함께 배치될 때 중단을 테스트하려면이 작업을 사용합니다.

이 작업은 서브넷을 대상으로 합니다. 기본적으로 값이 인 태그`AzImpairmentPower`가 있는 서브넷을 대상으로 합니다`DisruptSubnet`. 이 태그를 서브넷에 추가하거나 실험 템플릿에서 기본 태그를 사용자 지정 태그로 바꿀 수 있습니다. 기본적으로 유효한 서브넷을 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

## 제한 사항
<a name="az-availability-scenario-limitations"></a>
+ 이 시나리오에는 [중지 조건](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions.html)이 포함되어 있지 않습니다. 애플리케이션에 맞는 올바른 중지 조건을 실험 템플릿에 추가해야 합니다.
+  대상 AZ에서는 EC2에서 실행되는 Amazon EKS 포드가 EC2 워커 노드와 함께 종료되고 새 EC2 노드의 시작이 차단됩니다. 하지만 AWS Fargate에서 실행되는 Amazon EKS 포드는 지원되지 않습니다.
+  대상 AZ에서는 EC2에서 실행되는 Amazon ECS 태스크가 EC2 워커 노드와 함께 종료되고 새 EC2 노드의 시작이 차단됩니다. 하지만 AWS Fargate에서 실행되는 Amazon ECS 태스크는 지원되지 않습니다.
+ 읽기 가능한 대기 DB 인스턴스 2개가 있는 [Amazon RDS 다중AZ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html#multi-az-db-clusters-migrating-to-with-read-replica)는 지원되지 않습니다. 이 경우 인스턴스가 종료되고, RDS가 장애 조치되며, 영향을 받는 AZ에서 용량이 즉시 다시 프로비저닝됩니다. 영향을 받는 AZ의 읽기 가능한 대기는 계속 사용할 수 있습니다.

## 요구 사항
<a name="az-availability-scenario-requirements"></a>
+  AWS FIS [실험 역할에](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html) 필요한 권한을 추가합니다.
+ 리소스 태그는 실험의 대상이 되는 리소스에 적용해야 합니다. 자체 태그 지정 규칙 또는 시나리오에 정의된 기본 태그를 사용할 수 있습니다.

## 권한
<a name="az-availability-scenario-permissions"></a>

ARC 영역 자동 전환은 IAM 서비스 연결 역할을 `AWSServiceRoleForZonalAutoshiftPracticeRun` 사용하여 사용자를 대신하여 영역 전환을 수행합니다. 이 역할은 IAM 관리형 정책를 사용합니다[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSZonalAutoshiftPracticeRunSLRPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSZonalAutoshiftPracticeRunSLRPolicy.html). 역할을 수동으로 생성할 필요가 없습니다. AWS Management Console AWS CLI, 또는 AWS SDK의 AZ 전원 중단 시나리오에서 실험 템플릿을 생성하면 ARC가 서비스 연결 역할을 생성합니다. 자세한 내용은 [ARC에서 영역 자동 전환에 서비스 연결 역할 사용을 참조하세요](https://docs.aws.amazon.com/r53recovery/latest/dg/using-service-linked-roles-zonal-autoshift.html).

다음 정책은 AZ Availability: Power Interruption 시나리오로 실험을 실행하는 데 필요한 권한을 AWS FIS에 부여합니다. 이 정책은 [실험 역할](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html)에 연결되어야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowFISExperimentLoggingActionsCloudwatch",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:PutResourcePolicy",
                "logs:DescribeResourcePolicies",
                "logs:DescribeLogGroups"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:network-acl/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateNetworkAcl",
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkAcl",
            "Resource": "arn:aws:ec2:*:*:network-acl/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkAclEntry",
                "ec2:DeleteNetworkAcl"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:network-acl/*",
                "arn:aws:ec2:*:*:vpc/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkAcl",
            "Resource": "arn:aws:ec2:*:*:vpc/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeManagedPrefixLists",
                "ec2:DescribeSubnets",
                "ec2:DescribeNetworkAcls"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:ReplaceNetworkAclAssociation",
            "Resource": [
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:network-acl/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "rds:FailoverDBCluster"
            ],
            "Resource": [
                "arn:aws:rds:*:*:cluster:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "rds:RebootDBInstance"
            ],
            "Resource": [
                "arn:aws:rds:*:*:db:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticache:DescribeReplicationGroups",
                "elasticache:InterruptClusterAzPower"
            ],
            "Resource": [
                "arn:aws:elasticache:*:*:replicationgroup:*"
            ]
        },
        {
            "Sid": "TargetResolutionByTags",
            "Effect": "Allow",
            "Action": [
                "tag:GetResources"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant"
            ],
            "Resource": [
                "arn:aws:kms:*:*:key/*"
            ],
            "Condition": {
                "StringLike": {
                    "kms:ViaService": "ec2.*.amazonaws.com"
                },
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVolumes"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:PauseVolumeIO"
            ],
            "Resource": "arn:aws:ec2:*:*:volume/*"
        },
        {
            "Sid": "AllowInjectAPI",
            "Effect": "Allow",
            "Action": [
                "ec2:InjectApiError"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "ec2:FisActionId": [
                        "aws:ec2:api-insufficient-instance-capacity-error",
                        "aws:ec2:asg-insufficient-instance-capacity-error"
                    ]
                }
            }
        },
        {
            "Sid": "DescribeAsg",
            "Effect": "Allow",
            "Action": [
                "autoscaling:DescribeAutoScalingGroups"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## 시나리오 콘텐츠
<a name="az-availability-scenario-content"></a>

다음 콘텐츠는 시나리오를 정의합니다. 이 JSON을 저장하여 AWS Command Line Interface(AWS CLI)에서 [create-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/create-experiment-template.html) 명령을 사용하여 [실험 템플릿](https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates.html)을 만드는 데 사용할 수 있습니다. 최신 버전의 시나리오를 보려면 FIS 콘솔의 시나리오 라이브러리를 방문하세요.

```
{
    "targets": {
        "IAM-role": {
            "resourceType": "aws:iam:role",
            "resourceArns": [],
            "selectionMode": "ALL"
        },
        "EBS-Volumes": {
            "resourceType": "aws:ec2:ebs-volume",
            "resourceTags": {
                "AzImpairmentPower": "ApiPauseVolume"
            },
            "selectionMode": "COUNT(1)",
            "parameters": {
                "availabilityZoneIdentifier": "us-east-1a"
            },
            "filters": [
                {
                    "path": "Attachments.DeleteOnTermination",
                    "values": [
                        "false"
                    ]
                }
            ]
        },
        "EC2-Instances": {
            "resourceType": "aws:ec2:instance",
            "resourceTags": {
                "AzImpairmentPower": "StopInstances"
            },
            "filters": [
                {
                    "path": "State.Name",
                    "values": [
                        "running"
                    ]
                },
                {
                    "path": "Placement.AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "selectionMode": "ALL"
        },
        "ASG": {
            "resourceType": "aws:ec2:autoscaling-group",
            "resourceTags": {
                "AzImpairmentPower": "IceAsg"
            },
            "selectionMode": "ALL"
        },
        "ASG-EC2-Instances": {
            "resourceType": "aws:ec2:instance",
            "resourceTags": {
                "AzImpairmentPower": "IceAsg"
            },
            "filters": [
                {
                    "path": "State.Name",
                    "values": [
                        "running"
                    ]
                },
                {
                    "path": "Placement.AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "selectionMode": "ALL"
        },
        "Subnet": {
            "resourceType": "aws:ec2:subnet",
            "resourceTags": {
                "AzImpairmentPower": "DisruptSubnet"
            },
            "filters": [
                {
                    "path": "AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "selectionMode": "ALL",
            "parameters": {}
        },
        "RDS-Cluster": {
            "resourceType": "aws:rds:cluster",
            "resourceTags": {
                "AzImpairmentPower": "DisruptRds"
            },
            "selectionMode": "ALL",
            "parameters": {
                "writerAvailabilityZoneIdentifiers": "us-east-1a"
            }
        },
        "ElastiCache-Cluster": {
            "resourceType": "aws:elasticache:replicationgroup",
            "resourceTags": {
                "AzImpairmentPower": "DisruptElasticache"
            },
            "selectionMode": "ALL",
            "parameters": {
                "availabilityZoneIdentifier": "us-east-1a"
            }
        }
    },
    "actions": {
        "Pause-Instance-Launches": {
            "actionId": "aws:ec2:api-insufficient-instance-capacity-error",
            "parameters": {
                "availabilityZoneIdentifiers": "us-east-1a",
                "duration": "PT30M",
                "percentage": "100"
            },
            "targets": {
                "Roles": "IAM-role"
            }
        },
        "Pause-EBS-IO": {
            "actionId": "aws:ebs:pause-volume-io",
            "parameters": {
                "duration": "PT30M"
            },
            "targets": {
                "Volumes": "EBS-Volumes"
            },
            "startAfter": [
                "Stop-Instances",
                "Stop-ASG-Instances"
            ]
        },
        "Stop-Instances": {
            "actionId": "aws:ec2:stop-instances",
            "parameters": {
                "completeIfInstancesTerminated": "true",
                "startInstancesAfterDuration": "PT30M"
            },
            "targets": {
                "Instances": "EC2-Instances"
            }
        },
        "Pause-ASG-Scaling": {
            "actionId": "aws:ec2:asg-insufficient-instance-capacity-error",
            "parameters": {
                "availabilityZoneIdentifiers": "us-east-1a",
                "duration": "PT30M",
                "percentage": "100"
            },
            "targets": {
                "AutoScalingGroups": "ASG"
            }
        },
        "Stop-ASG-Instances": {
            "actionId": "aws:ec2:stop-instances",
            "parameters": {
                "completeIfInstancesTerminated": "true",
                "startInstancesAfterDuration": "PT30M"
            },
            "targets": {
                "Instances": "ASG-EC2-Instances"
            }
        },
        "Pause-network-connectivity": {
            "actionId": "aws:network:disrupt-connectivity",
            "parameters": {
                "duration": "PT2M",
                "scope": "all"
            },
            "targets": {
                "Subnets": "Subnet"
            }
        },
        "Failover-RDS": {
            "actionId": "aws:rds:failover-db-cluster",
            "parameters": {},
            "targets": {
                "Clusters": "RDS-Cluster"
            }
        },
        "Pause-ElastiCache": {
            "actionId": "aws:elasticache:replicationgroup-interrupt-az-power",
            "parameters": {
                "duration": "PT30M"
            },
            "targets": {
                "ReplicationGroups": "ElastiCache-Cluster"
            }
        }
    },
    "stopConditions": [
        {
            "source": "aws:cloudwatch:alarm",
            "value": ""
        }
    ],
    "roleArn": "",
    "tags": {
        "Name": "AZ Impairment: Power Interruption"
    },
    "logConfiguration": {
        "logSchemaVersion": 2
    },
    "experimentOptions": {
        "accountTargeting": "single-account",
        "emptyTargetResolutionMode": "skip"
    },
    "description": "Affect multiple resource types in a single AZ, targeting by tags and explicit ARNs, to approximate power interruption in one AZ."
}
```

# AZ: Application Slowdown
<a name="az-application-slowdown-scenario"></a>

 AZ: Application Slowdown 시나리오를 사용하여 단일 가용 영역(AZ) 내의 리소스 간에 추가 지연 시간을 도입할 수 있습니다. 이 지연 시간으로 인해 애플리케이션 속도가 느려지는 많은 증상, 즉 부분 중단이 발생하며, 회색 장애라고도 합니다. 대상 리소스 간의 네트워크 흐름에 지연 시간을 추가합니다. 네트워크 흐름은 요청, 응답 및 서버, 컨테이너 및 서비스 간의 기타 통신을 전달하는 데이터 패킷인 컴퓨팅 리소스 간의 트래픽을 나타냅니다. 시나리오는 관찰성 설정을 검증하고, 경보 임계값을 조정하고, 속도 저하에 대한 애플리케이션 민감도를 검색하고, AZ 대피와 같은 중요한 운영 결정을 연습하는 데 도움이 될 수 있습니다.

 기본적으로 시나리오는 선택한 AZ 내의 대상 리소스 간 네트워크 흐름의 100%에 30분 동안 200ms의 지연 시간을 추가합니다. AWS FIS 콘솔의 **공유 파라미터 편집** 대화 상자를 사용하여 시나리오 수준에서 다음 파라미터를 조정한 다음 기본 작업에 적용할 수 있습니다.
+  가용 영역 - 시나리오에서 손상시킬 AZ를 선택할 수 있습니다.
+  밀리초(ms) 지연 시간 - 애플리케이션의 민감도와 요구 사항에 따라 이를 조정합니다. 예를 들어 더 민감한 애플리케이션의 경우 지연 시간을 더 낮게 설정하거나 제한 시간 처리를 테스트하도록 더 높게 설정할 수 있습니다. 현재 애플리케이션 지연 시간의 배수를 기준으로 사용하는 것이 좋습니다.
+  흐름 백분율 - 트래픽의 하위 집합을 손상하도록 줄입니다. 예를 들어 네트워크 흐름의 25%에 영향을 미치는 200ms 지연 시간을 추가하여 훨씬 더 미세한 테스트를 수행할 수 있습니다.
+  기간 - 실험이 실행되는 기간을 설정합니다. 더 빠른 테스트를 위해 단축하거나 더 오래 지속되는 테스트를 실행할 수 있습니다. 예를 들어 손상된 조건에서 복구 메커니즘을 테스트하려면 기간을 2시간으로 설정합니다.
+  리소스 대상 지정 - 태그(EC2 인스턴스 또는 EC2 또는 Fargate의 ECS 작업의 경우) 또는 레이블(ECEC2의 EKS 포드의 경우)을 사용하여 전체 시나리오에 대한 대상 리소스를 정의할 수 있습니다. 자체 태그와 레이블을 지정하거나 시나리오에 제공된 기본값을 사용할 수 있습니다. 태그 또는 레이블을 사용하지 않으려면 다른 파라미터를 지정하여 대상 리소스에 대한 작업을 편집할 수 있습니다.
+  사용자 지정 - EC2 또는 ECS 리소스를 대상으로 지정하지 않으려면 작업을 기본 태그와 함께 그대로 둘 수 있습니다. 실험에서 대상으로 지정할 리소스를 찾지 못하며 작업을 건너뜁니다. 그러나 EKS 리소스를 대상으로 지정하지 않으려면 EKS 클러스터 식별자를 제공해야 하므로 시나리오에서 EKS 작업 및 대상을 완전히 제거해야 합니다. 보다 세분화된 사용자 지정을 위해 실험 템플릿에서 개별 작업을 직접 수정할 수 있습니다.

## 작업
<a name="az-application-slowdown-scenario-actions"></a>

 다음 작업을 함께 수행하면 네트워크 흐름에 추가 지연 시간을 도입하여 단일 AZ에서 애플리케이션 속도 저하의 많은 증상을 생성한 다음 애플리케이션을 통해 전파할 수 있습니다. 이러한 작업은 병렬로 실행되며, 각 작업은 기본적으로 30분 동안 200ms의 지연 시간을 추가합니다. 이 기간이 지나면 지연 시간이 정상 수준으로 돌아갑니다. 시나리오를 실행하려면 EC2 인스턴스, ECS 작업 또는 EKS 포드 중 하나 이상의 리소스 유형이 필요합니다.

### ECS 네트워크 지연 시간
<a name="az-application-slowdown-scenario-actions-ecs-network-latency"></a>

 AZ: Application Slowdown에는 ECS 작업에 지연 시간을 도입하기 위한 [aws:ecs:task-network-latency](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#task-network-latency)가 포함되어 있습니다. 작업은 선택한 AZ의 작업을 대상으로 합니다. 기본적으로 태그 [https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) 이름이 이고 값이 인 태스크`AZApplicationSlowdown`를 대상으로 합니다`LatencyForECS`. 기본 태그를 자체 태그로 바꾸거나 태스크에 시나리오 태그를 추가할 수 있습니다. 유효한 작업을 찾을 수 없는 경우이 작업은 건너뜁니다. ECS에서 실험을 실행하기 전에 [ECS 작업 작업에 대한 설정 단계를](https://docs.aws.amazon.com/fis/latest/userguide/ecs-task-actions.html) 따라야 합니다.

### EKS 네트워크 지연 시간
<a name="az-application-slowdown-scenario-actions-eks-network-latency"></a>

 AZ: Application Slowdown에는 EKS 포[드의 지연 시간을 도입하기 위한 aws:eks:eks:pod-network-latency](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#pod-network-latency)가 포함되어 있습니다. 작업은 선택한 AZ의 포드를 대상으로 합니다. 기본적으로 key=value 형식의 레이블이 있는 클러스터 내의 포드를 대상으로 합니다. 제공된 기본 레이블은 입니다`AZApplicationSlowdown=LatencyForEKS`. 기본 레이블을 자체 레이블로 바꾸거나 포드에이 레이블을 추가할 수 있습니다. 유효한 포드를 찾을 수 없는 경우이 작업은 건너뜁니다. EKS에서 실험을 실행하기 전에 [EKS 포드 작업에 대한 설정 단계를](https://docs.aws.amazon.com/fis/latest/userguide/eks-pod-actions.html) 따라야 합니다.

### EC2 네트워크 지연 시간
<a name="az-application-slowdown-scenario-actions-ec2-network-latency"></a>

 AZ: Application Slowdown은 [aws:ssm:send-command](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#ssm-send-command) 작업을 사용하여 [AWSFIS-Run-Network-Latency-Sources](https://docs.aws.amazon.com/fis/latest/userguide/actions-ssm-agent.html#awsfis-run-network-latency-sources) 문서를 실행하여 EC2 인스턴스에 지연 시간을 도입합니다. 작업은 선택한 AZ의 인스턴스를 대상으로 합니다. 기본적으로 값이 인 [태그](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)`AZApplicationSlowdown`가 있는 인스턴스를 대상으로 합니다`LatencyForEC2`. 기본 태그를 자체 태그로 바꾸거나이 태그를 인스턴스에 추가할 수 있습니다. 유효한 인스턴스를 찾을 수 없는 경우이 작업은 건너뜁니다. SSM을 사용하여 EC2에서 실험을 실행하기 전에 [ AWS Systems Manager 에이전트를 구성](https://docs.aws.amazon.com/fis/latest/userguide/actions-ssm-agent.html)해야 합니다.

## 제한 사항
<a name="az-application-slowdown-scenario-limitations"></a>
+  이 시나리오에는 [중지 조건](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions.html)이 포함되어 있지 않습니다. 애플리케이션에 맞는 올바른 중지 조건을 실험 템플릿에 추가해야 합니다.

## 요구 사항
<a name="az-application-slowdown-scenario-requirements"></a>
+  AWS FIS [실험 역할에](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html) 필요한 권한을 추가합니다.
+  선택한 AZ 내에서 EC2 인스턴스, ECS 작업 또는 EKS 포드의 세 가지 유형 중 하나 이상의 리소스를 대상으로 지정해야 합니다.
+  시나리오의 모든 대상은 동일한 VPC에 있어야 합니다.

## 권한
<a name="az-application-slowdown-scenario-permissions"></a>

 이 시나리오를 실행하려면 FIS가 실험에서 대상으로 하는 리소스 유형에 대한 역할 및 관리형 정책을 수임하도록 허용하는 신뢰 정책이 있는 IAM 역할이 필요합니다. EC2, ECS 및 EKS. AZ: Application Slowdown 시나리오에서 실험 템플릿을 생성하면 FIS는 신뢰 정책 및 다음 AWS 관리형 정책을 사용하여 역할을 생성합니다.
+  [AWSFaultInjectionSimulatorEC2Access](https://docs.aws.amazon.com/fis/latest/userguide/security-iam-awsmanpol.html#AWSFaultInjectionSimulatorEC2Access) 
+  [AWSFaultInjectionSimulatorECSAccess](https://docs.aws.amazon.com/fis/latest/userguide/security-iam-awsmanpol.html#AWSFaultInjectionSimulatorECSAccess) 
+  [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/fis/latest/userguide/security-iam-awsmanpol.html#AWSFaultInjectionSimulatorEKSAccess) 

 기존 [IAM 역할을](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html) 사용하여 AZ: Application Slowdown 시나리오를 실행하는 경우 다음 정책을 연결하여 AWS FIS에 필요한 권한을 부여할 수 있습니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DescribeTasks",
            "Effect": "Allow",
            "Action": "ecs:DescribeTasks",
            "Resource": "*"
        },
        {
            "Sid": "DescribeContainerInstances",
            "Effect": "Allow",
            "Action": "ecs:DescribeContainerInstances",
            "Resource": "arn:aws:ecs:*:*:container-instance/*/*"
        },
        {
            "Sid": "DescribeInstances",
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        },
        {
            "Sid": "DescribeSubnets",
            "Effect": "Allow",
            "Action": "ec2:DescribeSubnets",
            "Resource": "*"
        },
        {
            "Sid": "DescribeCluster",
            "Effect": "Allow",
            "Action": "eks:DescribeCluster",
            "Resource": "arn:aws:eks:*:*:cluster/*"
        },
        {
            "Sid": "TargetResolutionByTags",
            "Effect": "Allow",
            "Action": "tag:GetResources",
            "Resource": "*"
        },
        {
            "Sid": "SendCommand",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ssm:*:*:managed-instance/*",
                "arn:aws:ssm:*:*:document/*"
            ]
        },
        {
            "Sid": "ListCommands",
            "Effect": "Allow",
            "Action": [
                "ssm:ListCommands"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CancelCommand",
            "Effect": "Allow",
            "Action": [
                "ssm:CancelCommand"
            ],
            "Resource": "*"
        }
    ]
}
```

## 시나리오 콘텐츠
<a name="az-application-slowdown-scenario-content"></a>

 다음 콘텐츠는 시나리오를 정의합니다. 이 JSON을 저장하여 AWS Command Line Interface(AWS CLI)에서 [create-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/create-experiment-template.html) 명령을 사용하여 [실험 템플릿](https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates.html)을 만드는 데 사용할 수 있습니다. 시나리오의 최신 버전을 보려면 FIS 콘솔에서 시나리오 라이브러리를 방문하여 **콘텐츠** 탭으로 이동합니다.

```
{
    "tags": {
        "Name": "AZ: Application Slowdown"
    },
    "description": "Add latency between resources within a single AZ.",
    "actions": {
        "LatencyForEKS": {
            "actionId": "aws:eks:pod-network-latency",
            "parameters": {
                "delayMilliseconds": "200",
                "duration": "PT30M",
                "flowsPercent": "100",
                "interface": "DEFAULT",
                "kubernetesServiceAccount": "fis-service-account",
                "sources": "us-east-1a"
            },
            "targets": {
                "Pods": "TargetsForEKS"
            }
        },
        "LatencyForEC2": {
            "actionId": "aws:ssm:send-command",
            "parameters": {
                "duration": "PT30M",
                "documentArn": "arn:aws:ssm:us-east-1::document/AWSFIS-Run-Network-Latency-Sources",
                "documentParameters": "{\"DelayMilliseconds\":\"200\",\"Sources\":\"us-east-1a\",\"Interface\":\"DEFAULT\",\"TrafficType\":\"egress\",\"DurationSeconds\":\"1800\",\"FlowsPercent\":\"100\",\"InstallDependencies\":\"True\"}"
            },
            "targets": {
                "Instances": "TargetsForEC2"
            }
        },
        "LatencyForECS": {
            "actionId": "aws:ecs:task-network-latency",
            "parameters": {
                "delayMilliseconds": "200",
                "duration": "PT30M",
                "flowsPercent": "100",
                "installDependencies": "true",
                "sources": "us-east-1a",
                "useEcsFaultInjectionEndpoints": "true"
            },
            "targets": {
                "Tasks": "TargetsForECS"
            },
            "startAfter": []
        }
    },
    "targets": {
        "TargetsForEKS": {
            "parameters": {
                "availabilityZoneIdentifier": "us-east-1a",
                "clusterIdentifier": "",
                "namespace": "default",
                "selectorType": "labelSelector",
                "selectorValue": "AZApplicationSlowdown=LatencyForEKS"
            },
            "resourceType": "aws:eks:pod",
            "selectionMode": "ALL"
        },
        "TargetsForEC2": {
            "filters": [
                {
                    "path": "Placement.AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "resourceTags": {
                "AZApplicationSlowdown": "LatencyForEC2"
            },
            "resourceType": "aws:ec2:instance",
            "selectionMode": "ALL"
        },
        "TargetsForECS": {
            "filters": [
                {
                    "path": "AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "resourceTags": {
                "AZApplicationSlowdown": "LatencyForECS"
            },
            "resourceType": "aws:ecs:task",
            "selectionMode": "ALL"
        }
    },
    "experimentOptions": {
        "accountTargeting": "single-account",
        "emptyTargetResolutionMode": "skip"
    },
    "stopConditions": [
        {
            "source": "none"
        }
    ]
}
```

# Cross-AZ: Traffic Slowdown
<a name="cross-az-traffic-slowdown-scenario"></a>

 교차 AZ: 트래픽 속도 저하 시나리오를 사용하여 패킷 손실을 주입하여 가용 영역(AZs. 패킷 손실은 회색 장애라고도 하는 부분 중단인 교차 AZ 통신을 손상시킵니다. 대상 리소스 간의 네트워크 흐름에 패킷 손실을 주입합니다. 네트워크 흐름은 요청, 응답 및 서버, 컨테이너 및 서비스 간의 기타 통신을 전달하는 데이터 패킷인 컴퓨팅 리소스 간의 트래픽을 나타냅니다. 시나리오는 관찰성 설정을 검증하고, 경보 임계값을 조정하고, 교차 AZ 통신에서 애플리케이션 민감도 및 종속성을 검색하고, AZ 대피와 같은 중요한 운영 결정을 연습하는 데 도움이 될 수 있습니다.

 기본적으로 시나리오는 30분 동안 선택한 AZ의 대상 리소스에 대한 아웃바운드 네트워크 흐름의 100%에 15% 패킷 손실을 주입합니다. AWS FIS 콘솔의 **공유 파라미터 편집** 대화 상자를 사용하여 시나리오 수준에서 다음 파라미터를 조정한 다음 기본 작업에 적용할 수 있습니다.
+  가용 영역 - 손상시킬 AZ를 선택할 수 있으며 패킷 손실이 해당 AZ에서 리전 내의 다른 AZs로 주입됩니다.
+  패킷 손실 - 5% 이상과 같은 미세한 중단 테스트의 경우 패킷 손실을 낮게 조정하여 총 연결 영향의 경우 50% 또는 100%와 같은 심각한 통신 성능 저하 및 복구 메커니즘을 테스트합니다.
+  흐름 백분율 - 트래픽의 하위 집합을 손상하도록 줄입니다. 예를 들어 네트워크 흐름의 25%에 영향을 미치는 15% 패킷 손실을 주입하여 훨씬 더 미세한 테스트를 수행할 수 있습니다.
+  기간 - 실험이 실행되는 기간을 설정합니다. 더 빠른 테스트를 위해 단축하거나 더 오래 지속되는 테스트를 실행할 수 있습니다. 예를 들어 손상된 조건에서 복구 메커니즘을 테스트하는 데 도움이 되도록 기간을 2시간으로 설정합니다.
+  리소스 대상 지정 - 태그(EC2 인스턴스 또는 EC2 또는 Fargate의 ECS 작업의 경우) 또는 레이블(ECEC2의 EKS 포드의 경우)을 사용하여 전체 시나리오에 대한 대상 리소스를 정의할 수 있습니다. 자체 태그와 레이블을 지정하거나 시나리오에 제공된 기본값을 사용할 수 있습니다. 태그 또는 레이블을 사용하지 않으려면 다른 파라미터를 지정하여 대상 리소스에 대한 작업을 편집할 수 있습니다.
+  사용자 지정 - EC2 또는 ECS 리소스를 대상으로 지정하지 않으려면 작업을 기본 태그와 함께 그대로 둘 수 있습니다. 실험에서 대상으로 지정할 리소스를 찾지 못하며 작업을 건너뜁니다. 그러나 EKS 리소스를 대상으로 지정하지 않으려면 EKS 클러스터 식별자를 제공해야 하므로 시나리오에서 EKS 작업 및 대상을 완전히 제거해야 합니다. 보다 세분화된 사용자 지정을 위해 실험 템플릿에서 개별 작업을 직접 수정할 수 있습니다.

## 작업
<a name="cross-az-traffic-slowdown-scenario-actions"></a>

 다음 작업은 대상 AZs에서 네트워크 계층의 리전에 있는 다른 AZ로의 아웃바운드 통신에 패킷 손실을 도입하여 AZs 간 트래픽 속도 저하의 증상을 생성하는 데 도움이 됩니다. 이러한 작업은 병렬로 실행되며, 각 작업은 기본적으로 30분 동안 15% 패킷 손실을 주입합니다. 이 기간이 지나면 통신이 정상으로 돌아갑니다. 시나리오를 실행하려면 선택한 AZ에 EC2 인스턴스, ECS 작업 또는 EKS 포드 중 하나 이상의 리소스 유형이 필요합니다.

### ECS 네트워크 패킷 손실
<a name="cross-az-traffic-slowdown-scenario-actions-ecs-network-packet-loss"></a>

 교차 AZ: 트래픽 속도 저하에는 ECS 작업에 대한 패킷 손실을 주입하기 위한 [aws:ecs:task-network-packet-loss](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#task-network-packet-loss)가 포함됩니다. 작업은 선택한 AZ의 작업을 대상으로 하며 리전의 다른 모든 AZs 대한 아웃바운드 통신을 손상시킵니다. 작업을 편집하고 `Sources` 필드에서 AZs를 추가하거나 제거하여 영향 범위를 추가로 사용자 지정할 수 있습니다. 기본적으로 태그 [https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) 이름이 이고 값이 인 작업을 대상으로 `CrossAZTrafficSlowdown` 합니다`PacketLossForECS`. 기본 태그를 자체 태그로 바꾸거나 태스크에 시나리오 태그를 추가할 수 있습니다. 유효한 작업을 찾을 수 없는 경우이 작업은 건너뜁니다. ECS에서 실험을 실행하기 전에 [ECS 작업 작업에 대한 설정 단계를](https://docs.aws.amazon.com/fis/latest/userguide/ecs-task-actions.html) 따라야 합니다.

### EKS 네트워크 패킷 손실
<a name="cross-az-traffic-slowdown-scenario-actions-eks-network-packet-loss"></a>

 교차 AZ: 트래픽 속도 저하에는 EKS 포[드의 패킷 손실을 주입하기 위한 aws:eks:eks:pod-network-packet-loss](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#pod-network-packet-loss)가 포함됩니다. 작업은 선택한 AZ의 포드를 대상으로 하며 리전의 다른 모든 AZs에 대한 아웃바운드 통신을 손상시킵니다. 작업을 편집하고 `Sources` 필드에서 AZs를 추가하거나 제거하여 영향 범위를 추가로 사용자 지정할 수 있습니다. 기본적으로 key=value 형식의 레이블이 있는 클러스터 내의 포드를 대상으로 합니다. 제공된 기본 레이블은 입니다`CrossAZTraffic=PacketLossForEKS`. 기본 레이블을 자체 레이블로 바꾸거나 포드에이 레이블을 추가할 수 있습니다. 유효한 포드를 찾을 수 없는 경우이 작업은 건너뜁니다. EKS에서 실험을 실행하기 전에 [EKS 포드 작업에 대한 설정 단계를](https://docs.aws.amazon.com/fis/latest/userguide/eks-pod-actions.html) 따라야 합니다.

### EC2 네트워크 패킷 손실
<a name="cross-az-traffic-slowdown-scenario-actions-ec2-network-packet-loss"></a>

 Cross-AZ: Traffic Slowdown은 [aws:ssm:send-command](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#ssm-send-command) 작업을 사용하여 [AWSFIS-Run-Network-Packet-Loss-Sources](https://docs.aws.amazon.com/fis/latest/userguide/actions-ssm-agent.html#awsfis-run-network-packet-loss-sources) 문서를 실행하여 EC2 인스턴스에 대한 패킷 손실을 주입하고 리전의 다른 모든 AZs에 대한 아웃바운드 통신을 손상시킵니다. 작업을 편집하고 `Sources` 필드에서 AZs를 추가하거나 제거하여 영향 범위를 추가로 사용자 지정할 수 있습니다. 작업은 선택한 AZ의 인스턴스를 대상으로 합니다. 기본적으로 값이 인 [태그](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)`CrossAZTrafficSlowdown`가 있는 인스턴스를 대상으로 합니다`PacketLossForEC2`. 기본 태그를 자체 태그로 바꾸거나이 태그를 인스턴스에 추가할 수 있습니다. 유효한 인스턴스를 찾을 수 없는 경우이 작업은 건너뜁니다. SSM을 사용하여 EC2에서 실험을 실행하기 전에 [ AWS Systems Manager 에이전트를 구성](https://docs.aws.amazon.com/fis/latest/userguide/actions-ssm-agent.html)해야 합니다.

## 제한 사항
<a name="cross-az-traffic-slowdown-scenario-limitations"></a>
+  이 시나리오에는 [중지 조건](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions.html)이 포함되어 있지 않습니다. 애플리케이션에 맞는 올바른 중지 조건을 실험 템플릿에 추가해야 합니다.

## 요구 사항
<a name="cross-az-traffic-slowdown-scenario-requirements"></a>
+  AWS FIS [실험 역할에](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html) 필요한 권한을 추가합니다.
+  선택한 AZ 내에서 EC2 인스턴스, ECS 작업 또는 EKS 포드의 세 가지 유형 중 하나 이상의 리소스를 대상으로 지정해야 합니다.
+  시나리오의 모든 대상은 동일한 VPC에 있어야 합니다.

## 권한
<a name="cross-az-traffic-slowdown-scenario-permissions"></a>

 이 시나리오를 실행하려면 FIS가 실험에서 대상으로 하는 리소스 유형에 대한 역할 및 관리형 정책을 수임하도록 허용하는 신뢰 정책이 있는 IAM 역할이 필요합니다. EC2, ECS 및 EKS. 교차 AZ: 트래픽 속도 저하 시나리오에서 실험 템플릿을 생성하면 FIS는 신뢰 정책 및 다음 AWS 관리형 정책을 사용하여 역할을 생성합니다.
+  [AWSFaultInjectionSimulatorEC2Access](https://docs.aws.amazon.com/fis/latest/userguide/security-iam-awsmanpol.html#AWSFaultInjectionSimulatorEC2Access) 
+  [AWSFaultInjectionSimulatorECSAccess](https://docs.aws.amazon.com/fis/latest/userguide/security-iam-awsmanpol.html#AWSFaultInjectionSimulatorECSAccess) 
+  [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/fis/latest/userguide/security-iam-awsmanpol.html#AWSFaultInjectionSimulatorEKSAccess) 

 기존 [IAM 역할을](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html) 사용하여 교차 AZ: 트래픽 속도 저하 시나리오를 실행하는 경우 다음 정책을 연결하여 AWS FIS에 필요한 권한을 부여할 수 있습니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DescribeTasks",
            "Effect": "Allow",
            "Action": "ecs:DescribeTasks",
            "Resource": "*"
        },
        {
            "Sid": "DescribeContainerInstances",
            "Effect": "Allow",
            "Action": "ecs:DescribeContainerInstances",
            "Resource": "arn:aws:ecs:*:*:container-instance/*/*"
        },
        {
            "Sid": "DescribeInstances",
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        },
        {
            "Sid": "DescribeSubnets",
            "Effect": "Allow",
            "Action": "ec2:DescribeSubnets",
            "Resource": "*"
        },
        {
            "Sid": "DescribeCluster",
            "Effect": "Allow",
            "Action": "eks:DescribeCluster",
            "Resource": "arn:aws:eks:*:*:cluster/*"
        },
        {
            "Sid": "TargetResolutionByTags",
            "Effect": "Allow",
            "Action": "tag:GetResources",
            "Resource": "*"
        },
        {
            "Sid": "SendCommand",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ssm:*:*:managed-instance/*",
                "arn:aws:ssm:*:*:document/*"
            ]
        },
        {
            "Sid": "ListCommands",
            "Effect": "Allow",
            "Action": [
                "ssm:ListCommands"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CancelCommand",
            "Effect": "Allow",
            "Action": [
                "ssm:CancelCommand"
            ],
            "Resource": "*"
        }
    ]
}
```

## 시나리오 콘텐츠
<a name="cross-az-traffic-slowdown-scenario-content"></a>

 다음 콘텐츠는 시나리오를 정의합니다. 이 JSON을 저장하여 AWS Command Line Interface(AWS CLI)에서 [create-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/create-experiment-template.html) 명령을 사용하여 [실험 템플릿](https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates.html)을 만드는 데 사용할 수 있습니다. 시나리오의 최신 버전을 보려면 FIS 콘솔에서 시나리오 라이브러리를 방문하여 **콘텐츠** 탭으로 이동합니다.

```
{
    "tags": {
        "Name": "Cross-AZ: Traffic Slowdown"
    },
    "description": "Inject packet loss to disrupt and slow down traffic between AZs.",
    "actions": {
        "PacketLossForEC2": {
            "actionId": "aws:ssm:send-command",
            "parameters": {
                "duration": "PT30M",
                "documentArn": "arn:aws:ssm:us-east-1::document/AWSFIS-Run-Network-Packet-Loss-Sources",
                "documentParameters": "{\"Sources\":\"us-east-1b,us-east-1c,us-east-1d,us-east-1e,us-east-1f\",\"LossPercent\":\"15\",\"Interface\":\"DEFAULT\",\"TrafficType\":\"egress\",\"DurationSeconds\":\"1800\",\"FlowsPercent\":\"100\",\"InstallDependencies\":\"True\"}"
            },
            "targets": {
                "Instances": "TargetsForEC2"
            }
        },
        "PacketLossForECS": {
            "actionId": "aws:ecs:task-network-packet-loss",
            "parameters": {
                "sources": "us-east-1b,us-east-1c,us-east-1d,us-east-1e,us-east-1f",
                "lossPercent": "15",
                "duration": "PT30M",
                "flowsPercent": "100",
                "installDependencies": "true",
                "useEcsFaultInjectionEndpoints": "true"
            },
            "targets": {
                "Tasks": "TargetsForECS"
            }
        },
        "PacketLossForEKS": {
            "actionId": "aws:eks:pod-network-packet-loss",
            "parameters": {
                "sources": "us-east-1b,us-east-1c,us-east-1d,us-east-1e,us-east-1f",
                "lossPercent": "15",
                "duration": "PT30M",
                "flowsPercent": "100",
                "interface": "DEFAULT",
                "kubernetesServiceAccount": "fis-service-account"
            },
            "targets": {
                "Pods": "TargetsForEKS"
            }
        }
    },
    "targets": {
        "TargetsForEC2": {
            "filters": [
                {
                    "path": "Placement.AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "resourceTags": {
                "CrossAZTrafficSlowdown": "PacketLossForEC2"
            },
            "resourceType": "aws:ec2:instance",
            "selectionMode": "ALL"
        },
        "TargetsForECS": {
            "filters": [
                {
                    "path": "AvailabilityZone",
                    "values": [
                        "us-east-1a"
                    ]
                }
            ],
            "resourceTags": {
                "CrossAZTrafficSlowdown": "PacketLossForECS"
            },
            "resourceType": "aws:ecs:task",
            "selectionMode": "ALL"
        },
        "TargetsForEKS": {
            "parameters": {
                "availabilityZoneIdentifier": "us-east-1a",
                "clusterIdentifier": "",
                "namespace": "default",
                "selectorType": "labelSelector",
                "selectorValue": "CrossAZTrafficSlowdown=PacketLossForEKS"
            },
            "resourceType": "aws:eks:pod",
            "selectionMode": "ALL"
        }
    },
    "experimentOptions": {
        "accountTargeting": "single-account",
        "emptyTargetResolutionMode": "skip"
    },
    "stopConditions": [
        {
            "source": "none"
        }
    ]
}
```

# Cross-Region: Connectivity
<a name="cross-region-scenario"></a>

Cross-Region: Connectivity 시나리오를 사용하여 실험 리전에서 대상 리전으로의 애플리케이션 네트워크 트래픽을 차단하고 Amazon S3 및 Amazon DynamoDB 다중 리전 글로벌 테이블에 대한 리전 간 복제를 일시 중지할 수 있습니다. 교차 리전: 연결은 실험을 실행하는 리전(실험 리전)에서의 아웃바운드 애플리케이션 트래픽에 영향을 미칩니다.** 실험 리전(대상 리전)에서 격리하려는 리전으로부터의 상태 비저장 인바운드 트래픽은 차단되지 않을 수 있습니다.**** WS 관리형 서비스의 트래픽은 차단되지 않을 수 있습니다.

이 시나리오는 실험 리전에서 대상 리전의 리소스에 액세스할 수 없는 경우 다중 리전 애플리케이션이 예상대로 작동하는지 시연하는 데 사용할 수 있습니다. 여기에는 전송 게이트웨이와 라우트 테이블을 대상으로 실험 리전에서 대상 리전으로의 네트워크 트래픽을 차단하는 것이 포함됩니다. 또한 S3 및 DynamoDB 글로벌 테이블에 대한 교차 리전 복제를 일시 중지합니다. 기본적으로 대상이 발견되지 않는 작업은 건너뛰게 됩니다.

## 작업
<a name="cross-region-scenario-actions"></a>

다음 작업은 함께 포함된 AWS 서비스에 대한 교차 리전 연결을 차단합니다. 작업은 병렬로 실행됩니다. 기본적으로 시나리오는 3시간 동안 트래픽을 차단하며, 최대 12시간까지 늘릴 수 있습니다.

### Transit Gateway 연결 중단
<a name="cross-region-scenario-actions-disrupt-transit-gateway-connectivity"></a>

Cross Region: Connectivity에는 실험 리전의 VPC에서 전송 게이트웨이로 연결된 대상 리전의 VPC로의 교차 리전 네트워크 트래픽을 차단하기 위한 [aws:network:transit-gateway-disrupt-cross-region-connectivity](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#network-actions-reference)가 포함됩니다.**** 이 작업은 실험 리전 내의 VPC 엔드포인트에 대한 액세스에는 영향을 미치지 않지만, 실험 리전에서 대상 리전의 VPC 엔드포인트로 향하는 트래픽을 차단합니다.******

이 작업은 **실험 리전과 **대상 리전을 연결하는 전송 게이트웨이를 대상으로 합니다. 기본적으로 이 작업은 값이 `Allowed`인 `DisruptTransitGateway`라는 이름의 [태그](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-transit-gateways.html#tgw-tagging)가 있는 전송 게이트웨이를 대상으로 합니다. 이 태그를 전송 게이트웨이에 추가하거나 실험 템플릿에서 기본 태그를 사용자 지정 태그로 바꿀 수 있습니다. 기본적으로 유효한 전송 게이트웨이를 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

### 서브넷 연결 중단
<a name="cross-region-scenario-actions-disrupt-subnet-connectivity"></a>

Cross Region: Connectivity에는 실험 리전의 VPC에서 대상 리전의 퍼블릭 AWS IP 블록으로의 교차 리전 네트워크 트래픽을 차단하기 위한 [aws:network:route-table-disrupt-cross-region-connectivity](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#network-actions-reference)가 포함됩니다.**** 이러한 퍼블릭 IP 블록에는 대상 리전의 AWS 서비스 엔드포인트(예: S3 리전 엔드포인트)와 관리형 서비스용 AWS IP 블록(예: 로드 밸런서 및 Amazon API Gateway에 사용되는 IP 주소)이 포함됩니다.** 이 작업은 실험 리전에서 대상 리전으로의 교차 리전 VPC 피어링 연결을 통한 네트워크 연결도 차단합니다.**** 이는 실험 리전 내의 VPC 엔드포인트에 대한 액세스에는 영향을 미치지 않지만, 실험 리전에서 대상 리전의 VPC 엔드포인트로 향하는 트래픽을 차단합니다.******

이 작업은 실험 리전의 서브넷을 대상으로 합니다. 기본적으로 이 작업은 값이 `Allowed`인 `DisruptSubnet`라는 이름의 [태그](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)가 있는 서브넷을 대상으로 합니다. 이 태그를 서브넷에 추가하거나 실험 템플릿에서 기본 태그를 사용자 지정 태그로 바꿀 수 있습니다. 기본적으로 유효한 서브넷을 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

### VPC 엔드포인트 연결 중단
<a name="cross-region-scenario-actions-disrupt-vpc-endpoint-connectivity"></a>

Cross Region: Connectivity 에는 대상 VPC 엔드포인트와 연결된 서비스에 대한 [aws:network:disrupt-vpc-endpoint](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#network-actions-reference) 중단 연결이 포함됩니다. 예를 들어 VPC 엔드포인트가 com.amazonaws.us-east-1.ec2에 대한 프라이빗 링크를 생성하면 해당 서비스에 대한 연결이 중단됩니다.

이 작업은 실험 리전의 VPC 엔드포인트를 대상으로 합니다. 기본적으로 값이 인 DisruptVpcEndpoint라는 [태그](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)가 있는 인터페이스 VPC 엔드포인트를 대상으로 합니다`Allowed`. 이 태그를 VPC 엔드포인트에 추가하거나 실험 템플릿에서 기본 태그를 자체 태그로 바꿀 수 있습니다. 기본적으로 유효한 VPC 엔드포인트를 찾을 수 없는 경우이 작업은 건너뜁니다.

### S3 복제 일시 중지
<a name="cross-region-scenario-actions-pause-s3-replication"></a>

Cross Region: Connectivity에는 대상 버킷에 대해 실험 리전에서 대상 리전으로의 S3 복제를 일시 중지하는 [aws:s3:bucket-pause-replication](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#s3-actions-reference-fis)이 포함됩니다.**** 대상 리전에서 실험 리전으로의 복제는 영향을 받지 않습니다.**** 시나리오가 종료되면 일시 중지된 시점부터 버킷 복제가 다시 시작됩니다. 복제가 모든 객체를 동기화 상태로 유지하는 데 걸리는 시간은 실험 기간과 버킷에 대한 객체 업로드 속도에 따라 달라질 수 있습니다.

이 작업은 대상 리전의 S3 버킷에 [교차 리전 복제](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html)(CPR)를 사용하도록 설정한 실험 리전의 S3 버킷을 대상으로 합니다. 기본적으로 이 작업은 값이 `Allowed`인 `DisruptS3`라는 이름의 [태그](https://docs.aws.amazon.com/AmazonS3/latest/userguide/view-bucket-properties.html)가 있는 버킷을 대상으로 합니다. 이 태그를 버킷에 추가하거나 실험 템플릿에서 기본 태그를 사용자 지정 태그로 바꿀 수 있습니다. 기본적으로 유효한 버킷을 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

### DynamoDB 복제 일시 중지
<a name="cross-region-scenario-actions-pause-dynamodb-replication"></a>

Cross-Region: Connectivity에는 실험 리전과 대상 리전을 포함한 다른 모든 리전 간의 복제를 일시 중지하는 [aws:dynamodb:global-table-pause-replication](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#dynamodb-actions-reference)이 포함됩니다. 이렇게 하면 실험 리전 안팎으로의 복제는 방지되지만 다른 리전 간의 복제에는 영향을 미치지 않습니다.** 시나리오가 종료되면 일시 중지된 시점부터 테이블 복제가 다시 시작됩니다. 복제가 모든 데이터를 동기화 상태로 유지하는 데 걸리는 시간은 실험 기간과 테이블 변경 속도에 따라 달라질 수 있습니다.

이 작업은 DynamoDB 다중 리전을 강력하게 대상으로 하며 실험 리전에서 최종적으로 일관된 전역 테이블을 모두 대상으로 합니다. 기본적으로 이 작업은 값이 `Allowed`인 `DisruptDynamoDb`라는 이름의 [태그](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html)가 있는 테이블을 대상으로 합니다. 이 태그를 테이블에 추가하거나 실험 템플릿에서 기본 태그를 사용자 지정 태그로 바꿀 수 있습니다. 기본적으로 유효한 글로벌 테이블을 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

### MemoryDB 다중 리전 복제 일시 중지
<a name="cross-region-scenario-actions-pause-memorydb-multi-region-replication"></a>

Cross-Region: Connectivity 에는 실험 리전의 리전 멤버 클러스터에서 대상 다중 리전 클러스터의 나머지 클러스터로의 복제를 일시 중지하는 [aws:memorydb:multi-region-cluster-pause-replication](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html#memorydb-actions-reference)이 포함되어 있습니다. 다른 리전 멤버 클러스터 간의 복제는 영향을 받지 않습니다. 시나리오가 종료되면 일시 중지된 시점부터 복제가 재개됩니다. 복제가 멤버 클러스터 간에 데이터를 동기화하는 시간은 실험 기간과 클러스터에 기록된 데이터 속도에 따라 달라집니다.

이 작업은 실험 리전에 리전 멤버가 있는 MemoryDB 다중 리전 클러스터를 대상으로 합니다. 기본적으로 값이 인 [태그](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html)가 있는 다중 리전 클러스터`DisruptMemoryDB`를 대상으로 합니다`Allowed`. 이 태그를 다중 리전 클러스터에 추가하거나 실험 템플릿에서 기본 태그를 자체 태그로 바꿀 수 있습니다. 기본적으로 유효한 클러스터를 찾을 수 없는 경우 이 작업은 건너뛰게 됩니다.

## 제한 사항
<a name="cross-region-scenario-limitations"></a>
+ 이 시나리오에는 [중지 조건](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions.html)이 포함되어 있지 않습니다. 애플리케이션에 맞는 올바른 중지 조건을 실험 템플릿에 추가해야 합니다.

## 요구 사항
<a name="cross-region-scenario-requirements"></a>
+ AWS FIS [실험 역할](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html)에 필요한 권한을 추가합니다.
+ 리소스 태그는 실험의 대상이 되는 리소스에 적용해야 합니다. 자체 태그 지정 규칙 또는 시나리오에 정의된 기본 태그를 사용할 수 있습니다.

## 권한
<a name="cross-region-scenario-permissions"></a>

다음 정책은 Cross-Region: Connectivity 시나리오로 실험을 실행하는 데 필요한 권한을 AWS FIS에 부여합니다. 이 정책은 [실험 역할](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role.html)에 연결되어야 합니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RouteTableDisruptConnectivity1",
            "Effect": "Allow",
            "Action": "ec2:CreateRouteTable",
            "Resource": "arn:aws:ec2:*:*:route-table/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity2",
            "Effect": "Allow",
            "Action": "ec2:CreateRouteTable",
            "Resource": "arn:aws:ec2:*:*:vpc/*"
        },
        {
            "Sid": "RouteTableDisruptConnectivity21",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:route-table/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateRouteTable",
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity3",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateNetworkInterface",
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity4",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:prefix-list/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateManagedPrefixList",
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity5",
            "Effect": "Allow",
            "Action": "ec2:DeleteRouteTable",
            "Resource": [
                "arn:aws:ec2:*:*:route-table/*",
                "arn:aws:ec2:*:*:vpc/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity6",
            "Effect": "Allow",
            "Action": "ec2:CreateRoute",
            "Resource": "arn:aws:ec2:*:*:route-table/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity7",
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkInterface",
            "Resource": "arn:aws:ec2:*:*:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity8",
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkInterface",
            "Resource": [
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        },
        {
            "Sid": "RouteTableDisruptConnectivity9",
            "Effect": "Allow",
            "Action": "ec2:DeleteNetworkInterface",
            "Resource": "arn:aws:ec2:*:*:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity10",
            "Effect": "Allow",
            "Action": "ec2:CreateManagedPrefixList",
            "Resource": "arn:aws:ec2:*:*:prefix-list/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity11",
            "Effect": "Allow",
            "Action": [
                "ec2:DeleteManagedPrefixList",
                "ec2:ModifyManagedPrefixList"
            ],
            "Resource": "arn:aws:ec2:*:*:prefix-list/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "EC2DescribeResources",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeVpcs",
                "ec2:DescribeVpcPeeringConnections",
                "ec2:DescribeManagedPrefixLists",
                "ec2:DescribeSubnets",
                "ec2:DescribeRouteTables",
                "ec2:DescribeVpcEndpoints",
                "ec2:DescribeTransitGatewayPeeringAttachments",
                "ec2:DescribeTransitGatewayAttachments",
                "ec2:DescribeTransitGateways",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        },
        {
            "Sid": "RouteTableDisruptConnectivity14",
            "Effect": "Allow",
            "Action": "ec2:ReplaceRouteTableAssociation",
            "Resource": [
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:route-table/*"
            ]
        },
        {
            "Sid": "RouteTableDisruptConnectivity15",
            "Effect": "Allow",
            "Action": "ec2:GetManagedPrefixListEntries",
            "Resource": "arn:aws:ec2:*:*:prefix-list/*"
        },
        {
            "Sid": "RouteTableDisruptConnectivity16",
            "Effect": "Allow",
            "Action": "ec2:AssociateRouteTable",
            "Resource": [
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:route-table/*"
            ]
        },
        {
            "Sid": "RouteTableDisruptConnectivity17",
            "Effect": "Allow",
            "Action": "ec2:DisassociateRouteTable",
            "Resource": "arn:aws:ec2:*:*:route-table/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "RouteTableDisruptConnectivity18",
            "Effect": "Allow",
            "Action": "ec2:DisassociateRouteTable",
            "Resource": "arn:aws:ec2:*:*:subnet/*"
        },
        {
            "Sid": "RouteTableDisruptConnectivity19",
            "Effect": "Allow",
            "Action": "ec2:ModifyVpcEndpoint",
            "Resource": "arn:aws:ec2:*:*:route-table/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "TransitGatewayDisruptConnectivity1",
            "Effect": "Allow",
            "Action": [
                "ec2:DisassociateTransitGatewayRouteTable",
                "ec2:AssociateTransitGatewayRouteTable"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:transit-gateway-route-table/*",
                "arn:aws:ec2:*:*:transit-gateway-attachment/*"
            ]
        },
        {
            "Sid": "S3CrossRegion1",
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*"
        },
        {
            "Sid": "S3CrossRegion3",
            "Effect": "Allow",
            "Action": "s3:PauseReplication",
            "Resource": "arn:aws:s3:::*",
            "Condition": {
                "StringLike": {
                    "s3:DestinationRegion": "*"
                }
            }
        },
        {
            "Sid": "S3CrossRegion4",
            "Effect": "Allow",
            "Action": [
                "s3:GetReplicationConfiguration",
                "s3:PutReplicationConfiguration"
            ],
            "Resource": "arn:aws:s3:::*",
            "Condition": {
                "BoolIfExists": {
                    "s3:isReplicationPauseRequest": "true"
                }
            }
        },
        {
            "Sid": "DynamoDbPauseReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:DescribeTable",
                "dynamodb:PutResourcePolicy",
                "dynamodb:GetResourcePolicy",
                "dynamodb:DeleteResourcePolicy"
            ],
            "Resource": [
                "arn:aws:dynamodb:*:*:table/*"
            ]
        },
        {
            "Sid": "DynamoDbMrscPauseReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:InjectError"
            ],
            "Resource": ["*"]
        },
        {
            "Sid": "ResolveResourcesViaTags",
            "Effect": "Allow",
            "Action": "tag:GetResources",
            "Resource": "*"
        },
        {
            "Sid": "MemDbCrossRegion",
            "Effect": "Allow",
            "Action": [
                "memorydb:DescribeMultiRegionClusters",
                "memorydb:PauseMultiRegionClusterReplication"
            ],
            "Resource": [
                "arn:aws:memorydb::*:multiregioncluster/*"
            ]
        },
        {
            "Sid": "DisruptVPCE1",
            "Effect": "Allow",
            "Action": "ec2:CreateSecurityGroup",
            "Resource": [
                "arn:aws:ec2:*:*:vpc/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        },
        {
            "Sid": "DisruptVPCE2",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:security-group/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateSecurityGroup",
                    "aws:RequestTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "DisruptVPCE3",
            "Effect": "Allow",
            "Action": [
                "ec2:DeleteSecurityGroup",
                "ec2:RevokeSecurityGroupEgress"
            ],
            "Resource": "arn:aws:ec2:*:*:security-group/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/managedByFIS": "true"
                }
            }
        },
        {
            "Sid": "DisruptVPCE4",
            "Effect": "Allow",
            "Action": "vpce:AllowMultiRegion",
            "Resource": "arn:aws:ec2:*:*:vpc-endpoint/*"
        },
        {
            "Sid": "ModifyVPCE",
            "Effect": "Allow",
            "Action": "ec2:ModifyVpcEndpoint",
            "Resource": [
                "arn:aws:ec2:*:*:vpc-endpoint/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        }
    ]
}
```

## 시나리오 콘텐츠
<a name="cross-region-scenario-content"></a>

다음 콘텐츠는 시나리오를 정의합니다. 이 JSON을 저장하여 AWS Command Line Interface(AWS CLI)에서 [create-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/create-experiment-template.html) 명령을 사용하여 [실험 템플릿](https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates.html)을 만드는 데 사용할 수 있습니다. 최신 버전의 시나리오를 보려면 FIS 콘솔의 시나리오 라이브러리를 방문하세요.

```
{
        "targets": {
                "Transit-Gateway": {
                        "resourceType": "aws:ec2:transit-gateway",
                        "resourceTags": {
                                "TgwTag": "TgwValue"
                        },
                        "selectionMode": "ALL"
                },
                "Subnet": {
                        "resourceType": "aws:ec2:subnet",
                        "resourceTags": {
                                "SubnetKey": "SubnetValue"
                        },
                        "selectionMode": "ALL",
                        "parameters": {}
                },
                "VPC-Endpoint": {
                    "resourceType": "aws:ec2:vpc-endpoint",
                    "resourceTags": {
                        "DisruptPrivateLink": "Allowed"
                    },
                    "selectionMode": "ALL"
                },
                "S3-Bucket": {
                        "resourceType": "aws:s3:bucket",
                        "resourceTags": {
                                "S3Impact": "Allowed"
                        },
                        "selectionMode": "ALL"
                },
                "DynamoDB-Global-Table": {
                        "resourceType": "aws:dynamodb:global-table",
                        "resourceTags": {
                                "DisruptDynamoDb": "Allowed"
                        },
                        "selectionMode": "ALL"
                },
                "MemoryDB-Multi-Region-Cluster": {
                    "resourceType": "aws:memorydb:multi-region-cluster",
                    "resourceTags": {
                        "DisruptMemoryDb": "Allowed"
                    },
                    "selectionMode": "ALL"
                }
        },
        "actions": {
                "Disrupt-Transit-Gateway-Connectivity": {
                        "actionId": "aws:network:transit-gateway-disrupt-cross-region-connectivity",
                        "parameters": {
                                "duration": "PT3H",
                                "region": "eu-west-1"
                        },
                        "targets": {
                                "TransitGateways": "Transit-Gateway"
                        }
                },
                "Disrupt-Subnet-Connectivity": {
                        "actionId": "aws:network:route-table-disrupt-cross-region-connectivity",
                        "parameters": {
                                "duration": "PT3H",
                                "region": "eu-west-1"
                        },
                        "targets": {
                                "Subnets": "Subnet"
                        }
                },
                "Disrupt-Vpc-Endpoint": {
                        "actionId": "aws:network:disrupt-vpc-endpoint",
                        "parameters": {
                                "duration": "PT3H"
                        },
                        "targets": {
                                "VPCEndpoints": "VPC-Endpoint"
                        }
                },
                "Pause-S3-Replication": {
                        "actionId": "aws:s3:bucket-pause-replication",
                        "parameters": {
                                "duration": "PT3H",
                                "region": "eu-west-1"
                        },
                        "targets": {
                                "Buckets": "S3-Bucket"
                        }
                },
                "Pause-DynamoDB-Replication": {
                        "actionId": "aws:dynamodb:global-table-pause-replication",
                        "parameters": {
                                "duration": "PT3H"
                        },
                        "targets": {
                                "Tables": "DynamoDB-Global-Table"
                        }
                },
                "Pause-MemoryDB-Multi-Region-Cluster-Replication": {
                    "actionId": "aws:memorydb:multi-region-cluster-pause-replication",
                    "parameters": {
                        "duration": "PT3H",
                        "region": "eu-west-1"
                    },
                    "targets": {
                        "MultiRegionClusters": "MemoryDB-Multi-Region-Cluster"
                    }
                }
        },
        "stopConditions": [
                {
                        "source": "none"
                }
        ],
        "roleArn": "",
        "logConfiguration": {
                "logSchemaVersion": 2
        },
        "tags": {
                "Name": "Cross-Region: Connectivity"
        },
        "experimentOptions": {
                "accountTargeting": "single-account",
                "emptyTargetResolutionMode": "skip"
        },
        "description": "Block application network traffic from experiment Region to target Region and pause cross-Region replication"
}
```