

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

# 자습서: AWS FIS를 사용하여 인스턴스에서 CPU 스트레스 실행
<a name="fis-tutorial-run-cpu-stress"></a>

 AWS Fault Injection Service(AWS FIS)를 사용하여 애플리케이션이 CPU 스트레스를 처리하는 방법을 테스트할 수 있습니다. 이 자습서를 사용하여 AWS FIS를 사용하여 인스턴스에서 CPU 스트레스를 실행하는 사전 구성된 SSM 문서를 실행하는 실험 템플릿을 생성합니다. 이 자습서에서는 인스턴스의 CPU 사용률이 구성된 임계값을 초과할 경우 중지 조건을 사용하여 실험을 중단합니다.

자세한 내용은 [사전 구성된 AWS FIS SSM 문서](actions-ssm-agent.md#fis-ssm-docs) 단원을 참조하십시오.

## 사전 조건
<a name="run-cpu-stress-prerequisites"></a>

 AWS FIS를 사용하여 CPU 스트레스를 실행하려면 먼저 다음 사전 조건을 완료하세요.

**IAM 역할 생성**  
역할을 생성하고 AWS FIS가 사용자를 대신하여 `aws:ssm:send-command` 작업을 사용할 수 있도록 하는 정책을 연결합니다. 자세한 내용은 [AWS FIS 실험을 위한 IAM 역할](getting-started-iam-service-role.md) 단원을 참조하십시오.

**AWS FIS에 대한 액세스 확인**  
 AWS FIS에 액세스할 수 있는지 확인합니다. 자세한 내용을 알아보려면 [AWS FIS 정책 예제](security_iam_id-based-policy-examples.md)를 참조하세요.

**테스트 EC2 인스턴스 준비**
+ 사전 구성된 SSM 문서의 요구에 따라 Amazon Linux 2 또는 Ubuntu를 사용하여 EC2 인스턴스를 시작합니다.
+ 인스턴스는 SSM으로 관리해야 합니다. 인스턴스가 SSM으로 관리되는지 확인하려면 [플릿 관리자 콘솔](https://console.aws.amazon.com/systems-manager/managed-instances)을 여세요. 인스턴스가 SSM으로 관리되지 않는 경우, SSM 에이전트가 설치되어 있고 인스턴스에 **AmazonSSMManagedInstanceCore** 정책이 적용된 IAM 역할이 연결되어 있는지 확인하세요. 설치된 SSM 에이전트를 확인하려면 인스턴스에 연결하고 다음 명령을 실행합니다.

  **Amazon Linux 2**

  ```
  yum info amazon-ssm-agent
  ```

  **Ubuntu**

  ```
  apt list amazon-ssm-agent
  ```
+ 인스턴스에 대한 세부 모니터링을 활성화합니다. 추가 비용을 지불하면 데이터를 1분 기간으로 사용할 수 있습니다. 인스턴스를 선택하고 **작업**, **모니터링 및 문제 해결**, **세부 모니터링 관리**를 선택합니다.

## 1단계: 중지 조건에 대한 CloudWatch 경보 생성
<a name="getting-started-create-alarms"></a>

CPU 사용률이 지정한 임계값을 초과하는 경우 실험을 중지할 수 있도록 CloudWatch 경보를 구성합니다. 다음 절차는 대상 인스턴스의 CPU 사용률 50%로 임계값을 설정합니다. 자세한 내용은 [중지 조건](stop-conditions.md) 단원을 참조하십시오.

**CPU 사용률이 임계값을 초과할 때 알려주는 경보를 만들려면**

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

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

1. 대상 인스턴스를 선택하고 **작업**, **모니터링 및 문제 해결**, **CloudWatch 경보 관리**를 선택합니다.

1. **경보 알림**에서 토글을 사용하여 Amazon SNS 알림을 끕니다.

1. **경보 임계값**의 경우 다음 설정을 사용하세요.
   + **샘플 그룹화 기준**: **최대값**
   + **샘플링할 데이터 유형**: **CPU 사용률**
   + **퍼센트**: **50**
   + **기간**: **1 Minute**

1. 경보 구성이 완료되면 **생성**을 선택합니다.

## 2단계: 실험 템플릿 만들기
<a name="run-cpu-stress-create-template"></a>

 AWS FIS 콘솔을 사용하여 실험 템플릿을 생성합니다. 템플릿에서 실행할 다음 작업을 지정합니다. [aws:ssm:send-command/AWSFIS-Run-CPU-Stress](actions-ssm-agent.md#awsfis-run-cpu-stress).

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

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

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

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

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

   1. **설명 및 이름**에 템플릿에 대한 설명을 입력합니다.

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

1. **작업**에서 다음을 수행합니다.

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

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

   1. **작업 유형**으로는 **aws:ssm:send-command/AWSFIS-Run-CPU-Stress**를 선택합니다. 그러면 SSM 문서의 ARN이 **문서 ARN**에 자동으로 추가됩니다.

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

   1. **작업 파라미터**, **문서 파라미터**에 다음을 입력합니다.

      ```
      {"DurationSeconds":"120"}
      ```

   1. **작업 파라미터** **지속 시간**에 5분(PT5M)을 지정합니다.

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

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

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

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

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

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

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

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

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

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

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

1. **중지 조건**의 경우, 1단계에서 생성한 CloudWatch 경보를 선택합니다.

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

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

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

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

```
{
    "description": "Test CPU stress predefined SSM document",
    "targets": {
        "testInstance": {
            "resourceType": "aws:ec2:instance",
            "resourceArns": [
                "arn:aws:ec2:{{region}}:{{123456789012}}:instance/{{instance_id}}"
            ],
            "selectionMode": "ALL"
        }
    },
    "actions": {
        "runCpuStress": {
            "actionId": "aws:ssm:send-command",
            "parameters": {
                "documentArn": "arn:aws:ssm:{{region}}::document/AWSFIS-Run-CPU-Stress",
                "documentParameters": "{\"DurationSeconds\":\"120\"}",
                "duration": "PT5M"
            },
            "targets": {
                "Instances": "testInstance"
            }
        }
    },
    "stopConditions": [
        {
            "source": "aws:cloudwatch:alarm",
            "value": "arn:aws:cloudwatch:{{region}}:{{123456789012}}:alarm:awsec2-{{instance_id}}-GreaterThanOrEqualToThreshold-CPUUtilization"
        }
    ],
    "roleArn": "arn:aws:iam::{{123456789012}}:role/{{AllowFISSSMActions}}",
    "tags": {}
}
```

## 3단계: 실험 시작
<a name="run-cpu-stress-start-experiment"></a>

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

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

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

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

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

1. **실험 시작**을 선택합니다. 확인 메시지가 표시되면 **start**를 입력합니다. **실험 시작**을 선택합니다.

## 4단계: 실험 진행 상황 추적하기
<a name="run-cpu-stress-track-experiment"></a>

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

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

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

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

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

## 5단계: 실험 결과 확인
<a name="run-cpu-stress-verify-experiment-results"></a>

실험이 실행되는 동안 인스턴스의 CPU 사용률을 모니터링할 수 있습니다. CPU 사용률이 임계값에 도달하면 경보가 트리거되고 중지 조건에 따라 실험이 중단됩니다.

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

1. **중지 조건** 탭을 선택합니다. 녹색 테두리와 녹색 체크 표시 아이콘은 경보의 초기 상태가 `OK`임을 나타냅니다. 빨간색 선은 경보 임계값을 나타냅니다. 더 자세한 그래프를 원하면 위젯 메뉴에서 **확대**를 선택합니다.  
![약 50%의 낮은 활동 기간 후 CPU 사용률이 100%로 급증했음을 보여주는 그래프입니다.](http://docs.aws.amazon.com/ko_kr/fis/latest/userguide/images/stop-conditions-pane-ok.png)

1. CPU 사용률이 임계값을 초과하면 **중지 조건** 탭의 빨간색 테두리와 빨간색 느낌표 아이콘이 경보 상태가 `ALARM`로 변경되었음을 나타냅니다. **세부 정보** 창에서는 실험 상태가 **중지됨**입니다. 상태를 선택하면 “중지 조건에 따라 실험이 중단됨”이라는 메시지가 표시됩니다.  
![시간 경과에 따른 CPU 사용률을 보여주는 그래프로, 50%의 빨간색 임계값 선이 있습니다.](http://docs.aws.amazon.com/ko_kr/fis/latest/userguide/images/stop-conditions-pane-in-alarm.png)

1. CPU 사용률이 임계값 아래로 감소하면 녹색 테두리와 녹색 체크 표시 아이콘은 경보 상태가 `OK`로 변경되었음을 나타냅니다.

1. (선택 사항) 위젯 메뉴에서 **경보에서 보기**를 선택합니다. 그러면 CloudWatch 콘솔에서 경보 세부 정보 페이지가 열리고, 여기에서 경보에 대한 자세한 내용을 확인하거나 경보 설정을 편집할 수 있습니다.

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

이 실험용으로 생성한 테스트 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**를 입력한 다음 **실험 템플릿 삭제**를 선택합니다.