

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

# 자습서: AWS FIS를 사용하여 인스턴스 중지 및 시작 테스트
<a name="fis-tutorial-stop-instances"></a>

 AWS Fault Injection Service(AWS FIS)를 사용하여 애플리케이션이 인스턴스 중지 및 시작을 처리하는 방법을 테스트할 수 있습니다. 이 자습서를 사용하여 AWS FIS `aws:ec2:stop-instances` 작업을 사용하여 인스턴스 하나와 두 번째 인스턴스를 중지하는 실험 템플릿을 생성합니다.

## 사전 조건
<a name="stop-instances-prerequisites"></a>

이 자습서를 완료하려면 다음을 수행합니다.
+ 계정에서 두 개의 테스트 EC2 인스턴스를 시작합니다. 인스턴스를 시작한 후 두 인스턴스의 ID를 기록합니다.
+  AWS FIS 서비스가 사용자를 대신하여 `aws:ec2:stop-instances` 작업을 수행할 수 있도록 IAM 역할을 생성합니다. 자세한 내용은 [AWS FIS 실험을 위한 IAM 역할](getting-started-iam-service-role.md) 단원을 참조하십시오.
+  AWS FIS에 액세스할 수 있는지 확인합니다. 자세한 내용을 알아보려면 [AWS FIS 정책 예제](security_iam_id-based-policy-examples.md)를 참조하세요.

## 1단계: 실험 템플릿 만들기
<a name="stop-instances-create-template"></a>

 AWS FIS 콘솔을 사용하여 실험 템플릿을 생성합니다. 템플릿에서 각각 3분 동안 순차적으로 실행되는 두 개의 작업을 지정합니다. 첫 번째 작업은 AWS FIS가 임의로 선택하는 테스트 인스턴스 중 하나를 중지합니다. 두 번째 작업은 두 테스트 인스턴스를 모두 중지합니다.

**실험 템플릿 만들기**

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. **작업 추가**를 선택합니다.

   1. 작업의 이름을 입력합니다. 예를 들면 **stopOneInstance**를(을) 입력합니다.

   1. **작업 유형**으로는 **aws:ec2:stop-instances**를 선택합니다.

   1. **대상**의 경우 AWS FIS가 생성하는 대상을 그대로 유지합니다.

   1. **작업 파라미터**의 경우 **기간 이후 인스턴스 시작**은 3분(PT3M)으로 지정합니다.

   1. **저장(Save)**을 선택합니다.

1. **대상**에서 다음을 수행합니다.

   1. 이전 단계에서 AWS FIS가 자동으로 생성한 대상에 대해 **편집**을 선택합니다.

   1. 기본 이름을 좀 더 이해하기 쉬운 이름으로 바꾸세요. 예를 들면 **oneRandomInstance**를(을) 입력합니다.

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

   1. **대상 메서드**의 경우 **리소스 ID**를 선택한 다음, 두 테스트 인스턴스의 ID를 선택합니다.

   1. **선택 모드**에서는 **개수**를 선택합니다. **리소스 수**에 **1**를 입력합니다.

   1. **저장(Save)**을 선택합니다.

1. **대상 추가**를 선택하고 다음과 같이 합니다.

   1. 대상의 이름을 입력합니다. 예를 들면 **bothInstances**를(을) 입력합니다.

   1. **리소스 유형**에서 **aws:ec2:instance**를 선택합니다.

   1. **대상 메서드**의 경우 **리소스 ID**를 선택한 다음, 두 테스트 인스턴스의 ID를 선택합니다.

   1. **선택 모드**에서는 **모두**를 선택합니다.

   1. **저장(Save)**을 선택합니다.

1. **작업** 섹션에서 **작업 추가**를 선택합니다. 다음을 수행합니다.

   1. **이름**에서 작업의 이름을 입력합니다. 예를 들면 **stopBothInstances**를(을) 입력합니다.

   1. **작업 유형**으로는 **aws:ec2:stop-instances**를 선택합니다.

   1. **다음 시간 후 시작**에서 추가한 첫 번째 작업(**stopOneInstance**)을 선택합니다.

   1. **대상**에서, 추가한 두 번째 대상(**bothInstances**)을 선택합니다.

   1. **작업 파라미터**의 경우 **기간 이후 인스턴스 시작**은 3분(PT3M)으로 지정합니다.

   1. **저장(Save)**을 선택합니다.

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

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

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

1. (선택 사항) **태그**의 경우 **새 태그 추가**를 선택하고 태그 키와 태그 값을 지정합니다. 추가한 태그는 템플릿을 사용하여 실행되는 실험이 아니라 실험 템플릿에 적용됩니다.

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

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

**(선택사항) 실험 템플릿 JSON을 보려면**  
**내보내기** 탭을 선택합니다. 다음은 이전 콘솔 절차에서 생성한 JSON 예제입니다.

```
{
    "description": "Test instance stop and start",
    "targets": {
        "bothInstances": {
            "resourceType": "aws:ec2:instance",
            "resourceArns": [
                "arn:aws:ec2:region:123456789012:instance/instance_id_1",
                "arn:aws:ec2:region:123456789012:instance/instance_id_2"
            ],
            "selectionMode": "ALL"
        },
        "oneRandomInstance": {
            "resourceType": "aws:ec2:instance",
            "resourceArns": [
                "arn:aws:ec2:region:123456789012:instance/instance_id_1",
                "arn:aws:ec2:region:123456789012:instance/instance_id_2"
            ],
            "selectionMode": "COUNT(1)"
        }
    },
    "actions": {
        "stopBothInstances": {
            "actionId": "aws:ec2:stop-instances",
            "parameters": {
                "startInstancesAfterDuration": "PT3M"
            },
            "targets": {
                "Instances": "bothInstances"
            },
            "startAfter": [
                "stopOneInstance"
            ]
        },
        "stopOneInstance": {
            "actionId": "aws:ec2:stop-instances",
            "parameters": {
                "startInstancesAfterDuration": "PT3M"
            },
            "targets": {
                "Instances": "oneRandomInstance"
            }
        }
    },
    "stopConditions": [
        {
            "source": "none"
        }
    ],
    "roleArn": "arn:aws:iam::123456789012:role/AllowFISEC2Actions",
    "tags": {}
}
```

## 2단계: 실험 시작
<a name="stop-instances-start-experiment"></a>

실험 템플릿 생성을 완료하면 이를 사용하여 실험을 시작할 수 있습니다.

**실험을 시작하려면**

1. 방금 만든 실험 템플릿의 세부정보 페이지로 이동해야 합니다. 그렇지 않으면 **실험 템플릿**을 선택한 다음 실험 템플릿의 ID를 선택하여 세부 정보 페이지를 엽니다.

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

1. (선택 사항) 실험에 태그를 추가하려면 **새 태그 추가**를 선택하고 태그 키와 태그 값을 입력합니다.

1. **실험 시작**을 선택합니다. 확인 메시지가 나타나면 **start**을 입력하고 **실험 시작**을 선택합니다.

## 3단계: 실험 진행 상황 추적하기
<a name="stop-instances-track-experiment"></a>

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

**실험 진행 상황 추적하기**

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

1. 실험 상태를 보려면 **세부 정보** 창에서 **상태**를 확인하세요. 자세한 내용은 [실험 상태](view-experiment-progress.md#experiment-states)를 참조하세요.

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

## 4단계: 실험 결과 확인
<a name="stop-instances-verify-experiment-result"></a>

예상대로 실험에 의해 인스턴스가 중지되고 시작되었는지 확인할 수 있습니다.

**실험 결과를 확인하려면**

1. 새 브라우저 탭 또는 창에 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다. 이렇게 하면 Amazon EC2 콘솔에서 실험 결과를 보면서 AWS FIS 콘솔에서 실험 진행 상황을 계속 추적할 수 있습니다.

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

1. 첫 번째 작업의 상태가 **보류** 중에서 **실행** 중(AWS FIS 콘솔)으로 변경되면 대상 인스턴스 중 하나의 상태가 **실행** 중에서 **중지됨**(Amazon EC2 콘솔)으로 변경됩니다.

1. 3분 후 첫 번째 작업의 상태는 **완료됨**으로 변경되고, 두 번째 작업의 상태는 **실행 중**으로 변경되며, 다른 대상 인스턴스의 상태는 **중지됨**으로 변경됩니다.

1. 3분 후 두 번째 작업의 상태는 **완료됨**으로 변경되고, 대상 인스턴스의 상태는 **실행 중**으로 변경되며, 실험의 상태는 **완료됨**으로 변경됩니다.

## 5단계: 정리
<a name="stop-instances-cleanup"></a>

이 실험용으로 생성한 테스트 EC2 인스턴스가 더 이상 필요하지 않으면 종료할 수 있습니다.

**인스턴스를 종료하려면**

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

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

1. 테스트 인스턴스를 모두 선택하고 **Instance state**(인스턴스 상태), **Terminate instance**(인스턴스 종료)를 선택합니다.

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

실험 템플릿이 더 이상 필요하지 않으면 삭제할 수 있습니다.

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

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

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

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

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