

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

# 를 사용하여 관리 작업 자동화 AWS OpsHub
<a name="automate-task"></a>

 AWS OpsHub 를 사용하여 Snowball Edge에서 자주 수행하는 운영 작업을 자동화할 수 있습니다. 가상 서버 재시작, Amazon EC2 호환 인스턴스 중지 등과 같이 리소스에서 수행할 반복적인 활동에 대해 작업을 만들 수 있습니다. 운영 작업을 안전하게 수행하고 AWS 리소스에서 작업을 대량으로 실행하는 자동화 문서를 제공합니다. 일반적인 IT 워크플로우를 예약할 수도 있습니다.

**참고**  
클러스터에서는 작업 자동화가 지원되지 않습니다.  
작업을 사용하려면 Amazon EC2 Systems Manager 서비스를 먼저 시작해야 합니다. 자세한 내용은 [Snowball Edge에서 Snowball Edge 디바이스 관리 활성화를](https://docs.aws.amazon.com/snowball/latest/developer-guide/aws-sdm.html#enable-sdm) 참조하세요.

**Topics**
+ [를 사용하여 작업 생성 및 시작 AWS OpsHub](#create-task)
+ [에서 작업 세부 정보 보기 AWS OpsHub](#view-task)
+ [에서 작업 삭제 AWS OpsHub](#delete-task)

## 를 사용하여 작업 생성 및 시작 AWS OpsHub
<a name="create-task"></a>

작업을 생성할 때 작업을 실행할 리소스 유형을 지정한 다음 작업을 실행하는 지침이 포함된 작업 문서를 제공합니다. 작업 문서는 YAML 또는 JSON 형식입니다. 그런 다음 작업에 필요한 파라미터를 제공하고 작업을 시작합니다.

**태스크를 만들려면**

1. 대시보드의 **Launch task(작업 시작)** 섹션에서 **Get started(시작하기)**를 선택하여 **Tasks(작업)** 페이지를 엽니다. 작업을 생성한 경우 **Tasks(작업)** 아래에 표시됩니다.

1. **Create task(작업 생성)**를 선택하고 작업에 대한 세부 정보를 제공합니다.

1. **Name(이름)**에 고유한 작업 이름을 입력합니다.
**작은 정보**  
이름은 3\$1128자 이내로 작성해야 합니다. 유효한 문자는 `a-z`, `A-Z`, `0-9`, `.`, `_` 및 `-`입니다.

1. 선택적으로 **Target type - optional(대상 유형 - 선택 사항)** 목록에서 대상 유형을 선택할 수 있습니다. 작업을 실행할 리소스 유형입니다.

   예를 들어, Amazon EC2 호환 인스턴스에서 실행할 태스크에는 **/AWS::EC2::Instance**를 지정하고 모든 리소스 유형에서 실행할 작업에는 **/**를 지정할 수 있습니다.

1. **콘텐츠** 섹션에서 **YAML** 또는 **JSON**을 선택하고 작업을 실행하는 스크립트를 제공합니다. YAML 또는 JSON 형식의 두 가지 옵션이 있습니다. 예를 보려면 [의 작업 예제 AWS OpsHub](#task-examples) 섹션을 참조하십시오.

1. **생성(Create)**을 선택합니다. 그러면 생성한 작업이 **Tasks(작업)** 페이지에 나타납니다.

**작업을 시작하려면**

1. 대시보드의 **Launch task(작업 시작)** 섹션에서 **Get started(시작하기)**를 선택하여 **Tasks(작업)** 페이지를 엽니다. 작업이 **Tasks(작업)**아래에 나타납니다.

1. 작업을 선택하여 **Start task(작업 시작)** 페이지를 엽니다.

1. 대상에서 실행하도록 **Simple execution(단순 실행)**을 선택합니다.

   여러 대상에서 안전하게 실행하고 동시성 및 오류 임계값을 정의하려면 **Rate control(속도 제어)**을 선택합니다. 이 옵션의 경우 **Rate control(속도 제어)** 섹션에서 추가 대상 및 오류 임계값 정보를 제공합니다.

1. 필요한 입력 파라미터를 제공하고 **Start task(작업 시작)**를 선택합니다.

   작업의 상태가 **Pending(대기 중)**으로 나타나며 작업이 성공적으로 실행되면 **Success(성공)**로 변경됩니다.

### 의 작업 예제 AWS OpsHub
<a name="task-examples"></a>

다음 예시는 Amazon EC2 호환 인스턴스를 다시 시작합니다. 두 개의 입력 파라미터 `endpoint` 및 `instance ID`가 필요합니다.

*YAML 예*

```
description: Restart EC2 instance
schemaVersion: '0.3'
parameters:
  Endpoint:
    type: String
    description: (Required) EC2 Service Endpoint URL
  Id:
    type: String
    description: (Required) Instance Id
mainSteps:
  - name: restartInstance
    action: aws:executeScript
    description: Restart EC2 instance step
    inputs:
      Runtime: python3.7
      Handler: restart_instance
      InputPayload:
        Endpoint: "{{ Endpoint }}"
        Id: "{{ Id }}"
      TimeoutSeconds: 30
      Script: |-
        import boto3
        import time
        def restart_instance(payload, context):
            ec2_endpoint = payload['Endpoint']
            instance_id = payload['Id']
            ec2 = boto3.resource('ec2', endpoint_url=ec2_endpoint)
            instance = ec2.Instance(instance_id)
            if instance.state['Name'] != 'stopped':
                instance.stop()
                instance.wait_until_stopped()
            instance.start()
            instance.wait_until_running()
            return {'InstanceState': instance.state}
```

*JSON 예*

```
{
  "description" : "Restart EC2 instance",
  "schemaVersion" : "0.3",
  "parameters" : {
    "Endpoint" : {
      "type" : "String",
      "description" : "(Required) EC2 Service Endpoint URL"
    },
    "Id" : {
      "type" : "String",
      "description" : "(Required) Instance Id"
    }
  },
  "mainSteps" : [ {
    "name" : "restartInstance",
    "action" : "aws:executeScript",
    "description" : "Restart EC2 instance step",
    "inputs" : {
      "Runtime" : "python3.7",
      "Handler" : "restart_instance",
      "InputPayload" : {
        "Endpoint" : "{{ Endpoint }}",
        "Id" : "{{ Id }}"
      },
      "TimeoutSeconds" : 30,
      "Script" : "import boto3\nimport time\ndef restart_instance(payload, context):\n    
            ec2_endpoint = payload['Endpoint']\n    instance_id = payload['Id']\n    
            ec2 = boto3.resource('ec2', endpoint_url=ec2_endpoint)\n    
            instance = ec2.Instance(instance_id)\n    
            if instance.state['Name'] != 'stopped':\n        
            instance.stop()\n        
            instance.wait_until_stopped()\n    
            instance.start()\n    
            instance.wait_until_running()\n    
            return {'InstanceState': instance.state}"
    }
  } ]
}
```

## 에서 작업 세부 정보 보기 AWS OpsHub
<a name="view-task"></a>

작업을 실행하는 데 필요한 설명 및 파라미터와 같은 관리 작업의 세부 정보를 볼 수 있습니다.

**작업의 세부 정보를 보려면**

1. 대시보드의 **Launch task(작업 시작)** 섹션에서 **Get started(시작하기)**를 선택하여 **Tasks(작업)** 페이지를 엽니다.

1. **Tasks(작업)** 페이지에서 세부 정보를 보려는 작업을 찾아 선택합니다.

1. **View details(세부 정보 보기)**를 선택하고 탭 중 하나를 선택하여 세부 정보를 확인합니다. 예를 들어 **Parameters(파라미터)** 탭에는 스크립트의 입력 파라미터가 표시됩니다.

## 에서 작업 삭제 AWS OpsHub
<a name="delete-task"></a>

관리 작업을 삭제하려면 다음 단계를 수행하십시오.

**작업을 삭제하려면**

1. 대시보드의 **Launch task(작업 시작)** 섹션에서 **Get started(시작하기)**를 선택하여 **Tasks(작업)** 페이지를 엽니다.

1. 삭제할 작업을 찾습니다. 작업을 선택한 다음 **Delete(삭제)**를 선택합니다.