

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

# 를 사용하여 사용자 지정 구성 요소를 개발하도록 수동 설정 AWSTOE
<a name="toe-get-started"></a>

 AWS Task Orchestrator and Executor (AWSTOE) 애플리케이션은 구성 요소 정의 프레임워크 내에서 명령을 생성, 검증 및 실행하는 독립 실행형 애플리케이션입니다. AWS 서비스는 AWSTOE 를 사용하여 워크플로를 오케스트레이션하고, 소프트웨어를 설치하고, 시스템 구성을 수정하고, 이미지 빌드를 테스트할 수 있습니다.

다음 단계에 따라 AWSTOE 애플리케이션을 수동으로 설치하고 이를 독립형 애플리케이션으로 사용하여 사용자 지정 구성 요소를 개발합니다. Image Builder 콘솔 또는 AWS CLI 명령을 사용하여 사용자 지정 구성 요소를 생성하는 경우 Image Builder가 이러한 단계를 자동으로 처리합니다. 자세한 내용은 [Image Builder로 사용자 지정 구성 요소 생성](create-component.md) 단원을 참조하십시오.

**Topics**
+ [AWSTOE 설치 다운로드의 서명 확인](awstoe-verify-sig.md)
+ [1단계: 설치 AWSTOE](#toe-start-install)
+ [2단계: AWS 자격 증명 설정](#toe-start-credentials)
+ [3단계: 구성 요소 문서를 로컬로 개발](#toe-start-develop)
+ [4단계: AWSTOE 구성 요소 검증](#toe-start-validate)
+ [5단계: AWSTOE 구성 요소 실행](#toe-start-run)

## 1단계: 설치 AWSTOE
<a name="toe-start-install"></a>

로컬에서 구성 요소를 개발하려면 AWSTOE 애플리케이션을 다운로드하여 설치합니다.

1. 

**AWSTOE 애플리케이션 다운로드**

   설치하려면 아키텍처 및 플랫폼에 적합한 다운로드 링크를 AWSTOE선택합니다. 애플리케이션 다운로드 링크의 전체 목록은 [AWSTOE 다운로드](toe-component-manager.md#toe-downloads) 섹션을 참조하세요.
**중요**  
AWS 는 TLS 버전 1.0 및 1.1에 대한 지원을 단계적으로 중단합니다. AWSTOE 다운로드를 위해 S3 버킷에 액세스하려면 클라이언트 소프트웨어가 TLS 버전 1.2 이상을 사용해야 합니다. 자세한 내용은 [AWS 보안 블로그 게시물](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/)을 참조하세요.

1. 

**서명 확인**

   다운로드를 확인하는 단계는 AWSTOE 애플리케이션을 설치한 후 실행하는 서버 플랫폼에 따라 다릅니다. Linux 서버에서 다운로드를 확인하려면 [Linux 또는 macOS에서 서명 확인](awstoe-verify-sig.md#awstoe-verify-sig-linux) 섹션을 참조하세요. Windows 서버에서 다운로드를 확인하려면 [윈도우에서 서명 확인](awstoe-verify-sig.md#awstoe-verify-sig-win) 섹션을 참조하세요.

**참고**  
AWSTOE 는 다운로드 위치에서 직접 호출됩니다. 별도의 설치 단계는 필요 없습니다. 또한는 로컬 환경을 변경할 AWSTOE 수 있습니다.  
구성 요소 개발 중에 변경 사항을 격리하려면 EC2 인스턴스를 사용하여 AWSTOE 구성 요소를 개발하고 테스트하는 것이 좋습니다.

## 2단계: AWS 자격 증명 설정
<a name="toe-start-credentials"></a>

 AWSTOE 는 다음과 AWS 서비스같은 작업을 실행할 때 Amazon S3 및 Amazon CloudWatch와 같은 다른에 연결하기 위한 AWS 자격 증명이 필요합니다.
+ 사용자가 제공한 Amazon S3 경로에서 AWSTOE 문서 다운로드.
+ `S3Download` 또는 `S3Upload` 작업 모듈을 실행합니다.
+ 활성화된 경우 CloudWatch로 로그를 스트리밍합니다.

EC2 인스턴스 AWSTOE 에서를 실행하는 경우 실행은 EC2 인스턴스에 연결된 IAM 역할과 동일한 권한을 AWSTOE 사용합니다.

EC2용 IAM 역할에 대한 자세한 내용은 [Amazon EC2의 IAM 역할](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)을 참조하세요.

다음 예제에서는 `AWS_ACCESS_KEY_ID` 및 `AWS_SECRET_ACCESS_KEY` 환경 변수를 사용하여 AWS 자격 증명을 설정하는 방법을 보여줍니다.

Linux, macOS 또는 Unix에서 이러한 변수를 설정하려면 `export`를 사용합니다.

```
export AWS_ACCESS_KEY_ID=your_access_key_id
```

```
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

PowerShell을 사용하여 Windows에서 이러한 변수를 설정하려면 `$env`(을)를 사용합니다.

```
$env:AWS_ACCESS_KEY_ID=your_access_key_id
```

```
$env:AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

명령 프롬프트를 사용하여 Windows에서 이러한 변수를 설정하려면 `set`(을)를 사용합니다.

```
set AWS_ACCESS_KEY_ID=your_access_key_id
```

```
set AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

## 3단계: 구성 요소 문서를 로컬로 개발
<a name="toe-start-develop"></a>

구성 요소는 일반 텍스트 YAML 문서를 사용하여 작성됩니다. 문서 구문에 대한 자세한 내용은 [사용자 지정 AWSTOE 구성 요소에 구성 요소 문서 프레임워크 사용](toe-use-documents.md) 섹션을 참조하세요.

다음은 시작하는 데 도움이 되는 *Hello World* 구성 요소 문서의 예입니다.

------
#### [ Linux ]

이 안내서의 Linux 구성 요소 예제 중 일부는 `hello-world-linux.yml`이라는 구성 요소 문서 파일을 참조합니다. 다음 문서를 사용하여 이러한 예제를 시작할 수 있습니다.

```
name: Hello World
description: This is hello world testing document for Linux.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------
#### [ Windows ]

이 안내서의 Windows 구성 요소 예제 중 일부는 `hello-world-windows.yml`이라는 구성 요소 문서 파일을 참조합니다. 다음 문서를 사용하여 이러한 예제를 시작할 수 있습니다.

```
name: Hello World
description: This is Hello World testing document for Windows.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the test phase.'
```

------
#### [ macOS ]

이 안내서의 일부 macOS 구성 요소 예제는 `hello-world-macos.yml`이라는 구성 요소 문서 파일을 참조합니다. 다음 문서를 사용하여 이러한 예제를 시작할 수 있습니다.

```
name: Hello World
description: This is hello world testing document for macOS.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------

## 4단계: AWSTOE 구성 요소 검증
<a name="toe-start-validate"></a>

애플리케이션을 사용하여 로컬에서 AWSTOE 구성 요소의 구문을 AWSTOE 검증할 수 있습니다. 다음 예제에서는 구성 요소를 실행하지 않고 구문을 검증하는 AWSTOE 애플리케이션 `validate` 명령을 보여줍니다.

**참고**  
 AWSTOE 애플리케이션은 현재 운영 체제의 구성 요소 구문만 검증할 수 있습니다. 예를 들어 Windows에서 `awstoe.exe`(을)를 실행하는 경우, `ExecuteBash` 작업 모듈을 사용하는 Linux 문서의 구문을 검증할 수 없습니다.

Linux 또는 macOS

```
awstoe validate --documents /home/user/hello-world.yml
```

Windows

```
awstoe.exe validate --documents C:\Users\user\Documents\hello-world.yml
```

## 5단계: AWSTOE 구성 요소 실행
<a name="toe-start-run"></a>

 AWSTOE 애플리케이션은 `--phases` 명령줄 인수를 사용하여 지정된 문서의 단계를 하나 이상 실행할 수 있습니다. `--phases`의 지원되는 값은 `build`, `validate` 및 `test`입니다. 여러 단계 값을 쉼표로 구분된 값으로 입력할 수 있습니다.

단계 목록을 제공하면 AWSTOE 애플리케이션이 각 문서의 지정된 단계를 순차적으로 실행합니다. 예를 들어,는의 `build` 및 `validate` 단계를 `document1.yaml`실행한 다음의 `build` 및 `validate` 단계를 AWSTOE 실행합니다`document2.yaml`.

로그를 안전하게 저장하고 문제 해결을 위해 보관하려면 Amazon S3에 로그 스토리지를 구성하는 것이 좋습니다. Image Builder에서 로그를 게시하기 위한 Amazon S3 위치는 인프라 구성에 지정됩니다. 이 인프라 구성에 대한 자세한 내용은 [Image Builder 인프라 구성 관리](manage-infra-config.md) 섹션을 참조하세요.

단계 목록이 제공되지 않은 경우 AWSTOE 애플리케이션은 YAML 문서에 나열된 순서대로 모든 단계를 실행합니다.

단일 또는 여러 문서에서 특정 단계를 실행하려면, 다음 명령을 사용합니다.

단일 단계

```
awstoe run --documents hello-world.yml --phases build
```

여러 단계

```
awstoe run --documents {{hello-world.yml}} --phases build,test
```

**문서 실행**  
단일 문서에서 모든 단계를 실행합니다.

```
awstoe run --documents {{documentName.yaml}}
```

여러 문서의 모든 단계 실행

```
awstoe run --documents {{documentName1.yaml}},{{documentName2.yaml}}
```

Amazon S3 정보를 입력하여 사용자 정의 로컬 경로에서 AWSTOE 로그 업로드(권장)

```
awstoe run --documents {{documentName.yaml}} --log-s3-bucket-name {{amzn-s3-demo-destination-bucket}} --log-s3-key-prefix {{S3KeyPrefix}} --log-s3-bucket-owner {{S3BucketOwner}} --log-directory {{local_path}}
```

단일 문서에서 모든 단계를 실행하고, 콘솔에 모든 로그를 표시합니다.

```
awstoe run --documents {{documentName.yaml}} --trace
```

명령 예

```
awstoe run --documents {{s3://bucket/key/doc.yaml}} --phases {{build,validate}}
```

고유 ID로 문서 실행

```
awstoe run --documents {{documentName.yaml}} --execution-id {{user-provided-id}} --phases {{build,test}}
```

에 대한 도움말 보기 AWSTOE

```
awstoe --help
```