

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

# 자습서: 연결 이벤트 시뮬레이션
<a name="fis-tutorial-disrupt-connectivity"></a>

 AWS Fault Injection Service(AWS FIS)를 사용하여 다양한 연결 이벤트를 시뮬레이션할 수 있습니다. AWS FIS는 다음 방법 중 하나로 네트워크 연결을 차단하여 연결 이벤트를 시뮬레이션합니다.
+ `all` - 서브넷으로 들어오고 나가는 모든 트래픽을 거부합니다. 이 옵션은 서브넷의 네트워크 인터페이스로 들어오고 나가는 트래픽을 포함하여 서브넷 내 트래픽을 허용한다는 점에 유의하세요.
+ `availability-zone` - 다른 가용 영역에 있는 서브넷으로 들어오고 나가는 VPC 내부 트래픽을 거부합니다.
+ `dynamodb` - 현재 리전의 DynamoDB 리전 엔드포인트로 들어오고 나가는 트래픽을 거부합니다.
+ `prefix-list` - 지정된 접두사 목록으로 들어오고 나가는 트래픽을 거부합니다.
+ `s3` - 현재 리전의 Amazon S3 리전 엔드포인트로 들어오고 나가는 트래픽을 거부합니다.
+ `s3express` - 대상 서브넷의 AZ에서 Amazon S3 Express One Zone의 영역 엔드포인트와 주고받는 트래픽을 거부합니다. 대상 서브넷은 현재 S3 Express One Zone을 사용할 수 있는 AZs에 있어야 합니다. 자세한 내용은 [S3 Express One Zone 가용 영역 및 리전을 참조하세요.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Endpoints.html)
+ `vpc` - VPC로 들어오고 나가는 트래픽을 거부합니다.

이 자습서를 사용하여 AWS FIS `aws:network:disrupt-connectivity` 작업을 사용하여 대상 서브넷에서 Amazon S3와의 연결 손실을 도입하는 실험 템플릿을 생성합니다.

**Topics**
+ [사전 조건](#disrupt-connectivity-prerequisites)
+ [1단계: AWS FIS 실험 템플릿 생성](#disrupt-connectivity-step1)
+ [2단계: Amazon S3 엔드포인트에 대해 핑 전송](#disrupt-connectivity-step2)
+ [3단계: AWS FIS 실험 시작](#disrupt-connectivity-step3)
+ [4단계: AWS FIS 실험 진행 상황 추적](#disrupt-connectivity-step4)
+ [5단계: Amazon S3 네트워크 중단 확인](#disrupt-connectivity-step5)
+ [5단계: 정리](#disrupt-connectivity-step6)

## 사전 조건
<a name="disrupt-connectivity-prerequisites"></a>

이 자습서를 시작하기 전에에 적절한 권한이 있는 역할과 테스트 Amazon EC2 인스턴스 AWS 계정가 필요합니다.

**에서 권한이 있는 역할 AWS 계정**  
역할을 생성하고 AWS FIS가 사용자를 대신하여 `aws:network:disrupt-connectivity` 작업을 수행할 수 있도록 하는 정책을 연결합니다.

IAM 역할에는 다음의 정책이 필요합니다.
+  [AWSFaultInjectionSimulatorNetworkAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorNetworkAccess) – Amazon EC2 네트워킹 및 기타 필수 서비스에서 네트워크 인프라와 관련된 AWS FIS 작업을 수행하는 데 필요한 AWS FIS 서비스 권한을 부여합니다.

**참고**  
간소화를 위해이 자습서에서는 AWS 관리형 정책을 사용합니다. 프로덕션 사용 용도의 경우 사용 사례에 필요한 최소한의 권한만 부여하는 것이 좋습니다.  
IAM 역할을 생성하는 방법에 대한 자세한 내용은 [IAM 사용 설명서의 AWS FIS 실험을 위한 IAM 역할(AWS CLI)](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role) 또는 [IAM 역할 생성(콘솔)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user)을 참조하세요. ** 

**테스트 Amazon EC2 인스턴스**  
테스트 Amazon EC2 인스턴스를 시작하고 연결합니다. 다음 자습서를 사용하여 Amazon EC2 인스턴스를 시작하고 연결할 수 있습니다. *Amazon EC2 사용 설명서*의 [자습서: Amazon EC2 Linux 인스턴스 시작](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted).

## 1단계: AWS FIS 실험 템플릿 생성
<a name="disrupt-connectivity-step1"></a>

 AWS FIS를 사용하여 실험 템플릿을 생성합니다 AWS Management Console. AWS FIS 템플릿은 작업, 대상, 중지 조건 및 실험 역할로 구성됩니다. 템플릿 작동 방식에 대한 자세한 내용은 [AWS FIS용 실험 템플릿](https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates)을 참조하세요.

시작하기 전에 다음 항목이 준비되었는지 확인합니다.
+ 올바른 권한을 가진 IAM 역할.
+ Amazon EC2 인스턴스.
+ Amazon EC2 인스턴스의 서브넷 ID.

**실험 템플릿을 생성하는 방법**

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

1. 왼쪽 탐색 창에서 **실험 템플릿**을 선택합니다.

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

1. **1단계, 템플릿 세부 정보 지정**에서 다음을 수행합니다.

   1. **설명 및 이름**에와 같은 템플릿에 대한 설명을 입력합니다`Amazon S3 Network Disrupt Connectivity`.

   1. **다음을** 선택하고 **2단계, 작업 및 대상 지정**으로 이동합니다.

1. **작업**에서 **작업 추가**를 선택합니다.

   1. **이름**에 `disruptConnectivity`를 입력합니다.

   1. **작업 유형**에서 **aws:network:disrupt-connectivity**를 선택합니다.

   1. **작업 파라미터**에서 **기간**을 `2 minutes`로 설정합니다.

   1. **범위**에서 **s3**를 선택합니다.

   1. 상단에서 **저장**을 선택합니다.

1. **대상** 아래에서 자동으로 생성된 대상을 확인할 수 있습니다. **편집**을 선택합니다.

   1. **리소스 유형**이`aws:ec2:subnet`인지 확인하세요.

   1. **대상 메서드**에서 **리소스 ID**를 선택한 다음, [사전 조건](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-disrupt-connectivity.html#disrupt-connectivity-prerequisites) 단계에서 Amazon EC2 인스턴스를 생성할 때 사용한 서브넷을 선택합니다.

   1. **선택 모드**가 **모두**인지 확인하세요.

   1. **저장**을 선택합니다.

1. **다음을** 선택하여 **3단계, 서비스 액세스 구성**으로 이동합니다.

1. **서비스 액세스**에서 이 자습서의 [사전 조건](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-disrupt-connectivity.html#disrupt-connectivity-prerequisites)에 설명된 대로 생성한 IAM 역할을 선택합니다. 역할이 표시되지 않는 경우 해당 역할에 필요한 신뢰 관계가 있는지 확인하세요. 자세한 내용은 [AWS FIS 실험을 위한 IAM 역할](getting-started-iam-service-role.md) 단원을 참조하십시오.

1. **다음을** 선택하여 **4단계, 선택적 설정 구성**으로 이동합니다.

1. (선택 사항) **중지 조건** 아래에서 조건이 발생할 경우 실험을 중단할 CloudWatch 경보를 선택할 수 있습니다. 자세한 내용은 [AWS FIS의 중지 조건](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions)을 참조하세요.

1. (선택 사항) **로그**에서 Amazon S3 버킷을 선택하거나 CloudWatch로 실험에 사용할 로그를 보낼 수 있습니다.

1. **다음을** 선택하여 **5단계, 검토 및 생성**으로 이동합니다.

1. 템플릿을 검토하고 **실험 템플릿 생성을** 선택합니다. 확인 메시지가 표시되면를 입력한 `create`다음 **실험 템플릿 생성을** 선택합니다.

## 2단계: Amazon S3 엔드포인트에 대해 핑 전송
<a name="disrupt-connectivity-step2"></a>

Amazon EC2 인스턴스가 Amazon S3 엔드포인트에 도달할 수 있는지 확인하세요.

1. [사전 조건](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-disrupt-connectivity.html#disrupt-connectivity-prerequisites) 단계에 만든 Amazon EC2 인스턴스에 연결합니다.

   문제 해결을 위해 *Amazon EC2 사용 설명서*의 [인스턴스 연결 문제 해결](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting)을 참조하세요.

1. 인스턴스가 있는 AWS 리전 를 확인합니다. 이렇게 하려면 Amazon EC2 콘솔에 있거나 다음 명령을 실행합니다.

   ```
   hostname
   ```

   예를 들어 `us-west-2`에서 Amazon EC2 인스턴스를 시작한 경우 다음과 같은 출력이 표시됩니다.

   ```
   [ec2-user@ip-172.16.0.0 ~]$ hostname
   ip-172.16.0.0.us-west-2.compute.internal
   ```

1. 에서 Amazon S3 엔드포인트 ping AWS 리전. {{AWS 리전}}을 해당 리전으로 바꿉니다.

   ```
   ping -c 1 s3.{{AWS 리전}}.amazonaws.com
   ```

   출력의 경우 다음 예제와 같이 핑에 성공하여 패킷 손실이 0% 인 것을 볼 수 있습니다.

   ```
   PING s3.us-west-2.amazonaws.com (x.x.x.x) 56(84) bytes of data.
   64 bytes from s3-us-west-2.amazonaws.com (x.x.x.x: icmp_seq=1 ttl=249 time=1.30 ms
   
   --- s3.us-west-2.amazonaws.com ping statistics ---
   1 packets transmitted, 1 received, 0% packet loss, time 0ms
   rtt min/avg/max/mdev = 1.306/1.306/1.306/0.000 ms
   ```

## 3단계: AWS FIS 실험 시작
<a name="disrupt-connectivity-step3"></a>

방금 만든 실험 템플릿으로 실험을 시작합니다.

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

1. 왼쪽 탐색 창에서 **실험 템플릿**을 선택합니다.

1. 만든 실험 템플릿의 ID를 선택하여 세부 정보 페이지를 엽니다.

1. **실험 시작**을 선택합니다.

1. (선택 사항) 확인 페이지에서 실험에 사용할 태그를 추가합니다.

1. 확인 페이지에서 **실험 시작**을 선택합니다.

## 4단계: AWS FIS 실험 진행 상황 추적
<a name="disrupt-connectivity-step4"></a>

실험이 완료, 중지 또는 실패할 때까지 진행 중인 실험의 진행 상황을 추적할 수 있습니다.

1. 방금 시작한 실험의 세부정보 페이지로 이동해야 합니다. 그렇지 않은 경우 **실험**을 선택한 다음 실험의 ID를 선택하여 해당 세부정보 페이지를 여세요.

1. 실험 상태를 보려면 세부 정보 창에서 **상태**를 확인하세요. 자세한 내용은 [실험 상태](https://docs.aws.amazon.com/fis/latest/userguide/experiments.html#experiment-states)를 참조하세요.

1. 실험 상태가 **실행 중**이면 다음 단계로 이동합니다.

## 5단계: Amazon S3 네트워크 중단 확인
<a name="disrupt-connectivity-step5"></a>

Amazon S3 엔드포인트에 핑을 보내 실험 진행 상황을 확인할 수 있습니다.
+ Amazon EC2 인스턴스에서 사용자 AWS 리전의 Amazon S3 엔드포인트에 핑을 보냅니다. {{AWS 리전}}을 해당 리전으로 바꿉니다.

  ```
  ping -c 1 s3.{{AWS 리전}}.amazonaws.com
  ```

  출력의 경우 다음 예제와 같이 핑에 실패하여 패킷 손실이 100% 인 것을 볼 수 있습니다.

  ```
  ping -c 1 s3.us-west-2.amazonaws.com
  PING s3.us-west-2.amazonaws.com (x.x.x.x) 56(84) bytes of data.
  
  --- s3.us-west-2.amazonaws.com ping statistics ---
  1 packets transmitted, 0 received, 100% packet loss, time 0ms
  ```

## 5단계: 정리
<a name="disrupt-connectivity-step6"></a>

이 실험을 위해 만든 Amazon EC2 인스턴스나 AWS FIS 템플릿이 더 이상 필요하지 않은 경우 이 인스턴스를 제거할 수 있습니다.

**Amazon EC2 인스턴스를 제거하려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택합니다.

1. 테스트 인스턴스를 선택하고 **인스턴스 상태**, **인스턴스 종료**를 차례로 선택합니다.

1. 확인 메시지가 나타나면 **종료**를 선택합니다.



**AWS FIS 콘솔을 사용하여 실험 템플릿을 삭제하려면**

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

1. 탐색 창에서 **실험 템플릿**을 선택합니다.

1. 실험 템플릿을 선택한 다음 **작업**, **실험 템플릿 삭제를** 선택합니다.

1. 확인 메시지가 나타나면 `delete`를 입력한 다음 **실험 템플릿 삭제**를 선택합니다.