

# Windows 인스턴스에 대한 EC2Launch v2 설정 구성
<a name="ec2launch-v2-settings"></a>

이 섹션에서는 EC2Launch v2에 대한 설정을 구성하는 방법을 설명합니다.

**Topics**
+ [EC2Launch v2 설정 대화 상자를 사용하여 설정 변경](#ec2launch-v2-ui)
+ [CLI를 사용하여 EC2Launch v2 구성](#ec2launch-v2-cli)
+ [EC2Launch v2 태스크 구성](#ec2launch-v2-task-configuration)
+ [EC2Launch v2 종료 코드 및 재부팅](#ec2launch-v2-exit-codes-reboots)
+ [EC2Launch v2 및 Sysprep](#ec2launch-v2-sysprep)

## EC2Launch v2 설정 대화 상자를 사용하여 설정 변경
<a name="ec2launch-v2-ui"></a>

다음 절차는 EC2Launch v2 설정 대화 상자를 사용하여 설정을 사용하거나 비활성화하는 방법을 설명합니다.
**참고**  
agent-config.yml 파일에서 사용자 정의 태스크를 잘못 구성하고 Amazon EC2Launch 설정 대화 상자를 열려고 하는 경우 오류가 발생합니다. 스키마 예제는 [예: `agent-config.yml`](#ec2launch-v2-example-agent-config) 섹션을 참조하세요.

1. 실행을 시작해서 Windows 인스턴스에 연결합니다.

1. 시작 메뉴에서 **모든 프로그램**을 선택한 다음 **EC2Launch 설정**으로 이동합니다. **Sysprep으로 종료** 또는 **Sysprep 없이 종료**를 선택하기에 앞서, 적용하려는 변경 사항을 모두 저장한 후에 종료를 실행해야 합니다.  
![\[EC2 시작 설정 애플리케이션입니다.\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/ec2launchv2-settings.png)

1. **EC2Launch 설정** 대화 상자의 **일반** 탭에서 다음 설정을 활성화 또는 비활성화할 수 있습니다.

   1. **컴퓨터 이름 설정**

      이 설정을 활성화하면(기본적으로 비활성화됨) 부팅 때마다 현재 호스트 이름이 원하는 호스트 이름과 비교됩니다. 호스트 이름이 일치하지 않는 경우 호스트 이름이 재설정되고, 선택적으로 시스템이 재부팅되어 새 호스트 이름을 선택합니다. 사용자 지정 호스트 이름을 지정하지 않으면 16진수 형식의 프라이빗 IPv4 주소(예: `ip-AC1F4E6`)를 사용하여 생성됩니다. 기존 호스트 이름이 변경되는 것을 방지하려면 이 설정을 활성화하지 마세요.

   1. **부트 볼륨 확장**

      이 설정은 파티션 처리되지 않은 공간을 모두 포함하도록 동적으로 `Disk 0`/`Volume 0`을 확장합니다. 이는 인스턴스가 사용자 설정 크기를 가진 루트 볼륨에서 부팅될 때 유용할 수 있습니다.

   1. **관리자 계정 설정**

      이 기능이 활성화되면 로컬 시스템에 생성된 관리자 계정의 사용자 이름 및 암호 속성을 설정할 수 있습니다. 이 기능이 활성화되지 않으면 Sysprep 이후에 시스템에서 관리자 계정이 생성되지 않습니다. `adminPassword`이 `adminPasswordtype`인 경우에만 `Specify`에 암호를 입력합니다.

      암호 유형은 다음과 같이 정의됩니다.

      1. `Random`

         EC2Launch는 암호를 생성하고 사용자의 키를 사용하여 암호를 암호화합니다. 인스턴스가 재부팅 또는 중지되었다가 시작된 경우 이 암호가 그대로 유지되도록 시스템은 인스턴스가 시작된 후 이 설정을 비활성화합니다.

      1. `Specify`

         에 지정한 암호가 EC2Launch에 사용됩니다`adminPassword` 암호가 시스템 요구 사항에 맞지 않으면 EC2Launch에서 임의의 암호를 대신 생성합니다. 암호는 `agent-config.yml`에 일반 텍스트로 저장되며 Sysprep에서 관리자 암호를 설정한 후에 삭제됩니다. EC2Launch는 사용자의 키를 사용하여 암호를 암호화합니다.

      1. `Do not set`

         unattend.xml 파일에 지정한 암호가 EC2Launch에 사용됩니다. unattend.xml에 암호를 지정하지 않으면 관리자 계정이 비활성화됩니다.

   1. **SSM 서비스 시작**

      선택하면 Systems Manager 서비스가 사용되어 다음 Sysprep이 시작됩니다. EC2Launch v2는 [앞서](ec2launch-v2.md#ec2launch-v2-tasks) 설명한 모든 작업을 수행하며 SSM Agent는 Run Command 및 State Manager와 같은 Systems Manager 기능에 대한 요청을 처리합니다.

      Run Command를 사용하여 기존 인스턴스가 최신 버전의 EC2Launch v2 서비스와 SSM Agent를 사용하도록 업그레이드할 수 있습니다. 자세한 내용은 *AWS Systems Manager 사용 설명서*에서 [Run Command를 사용하여 SSM Agent 업데이트](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command-tutorial-update-software.html)를 참조하세요.

   1. **ENA 최적화**

      이 옵션을 선택하면 ENA 수신측 조정 및 수신 대기열 깊이 설정이 AWS에 맞게 최적화되도록 ENA 설정이 구성됩니다. 자세한 내용은 [수신 측 조정 CPU 선호도 구성](enhanced-networking-os.md#windows-rss-cpu-affinity) 섹션을 참조하세요.

   1. **SSH 활성화**

      이 설정을 사용하면 최신 Windows 버전에서 원격 시스템 관리가 가능하도록 OpenSSH가 활성화됩니다.

   1. **점보 프레임 활성화**

      점보 프레임을 활성화하려면 선택합니다. 점보 프레임은 네트워크 통신에 의도하지 않은 영향을 줄 수 있으므로 점보 프레임을 활성화하기 전에 시스템에 미칠 수 있는 영향을 파악해야 합니다. 점보 프레임에 대한 자세한 내용은 [점보 프레임(9001 MTU)](network_mtu.md#jumbo_frame_instances) 섹션을 참조하세요.

   1. **이미징 준비**

      EC2 인스턴스를 종료할 때 Sysprep을 실행할지 아니면 실행하지 않을지를 선택합니다. EC2Launch v2에서 Sysprep을 실행하려면 [**Sysprep을 실행하여 종료(Shutdown with Sysprep)**]를 선택합니다.

1. **DNS 접미사** 탭에서, 정규화된 도메인 이름을 제공하지 않고 EC2에서 실행되는 서버의 DNS를 확인할 수 있도록 DNS 접미사 목록의 추가 여부를 선택할 수 있습니다. DNS 접미사는 변수 `$REGION` 및 `$AZ`를 포함할 수 있습니다. 아직 존재하지 않는 접미사만 목록에 추가됩니다.  
![\[EC2 시작 설정 애플리케이션입니다.\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/ec2launchv2-dns.png)

1. **월페이퍼** 탭에서 배경 이미지로 인스턴스 월페이퍼를 구성하고 표시할 월페이퍼에 대한 인스턴스 세부 정보를 지정할 수 있습니다. Amazon EC2는 로그인할 때마다 세부 정보를 생성합니다.

   다음 컨트롤로 월페이퍼를 구성할 수 있습니다.
   + **월페이퍼에 인스턴스 세부 정보 표시** - 이 확인란은 월페이퍼의 인스턴스 세부 정보 표시를 활성화하거나 비활성화합니다.
   + **이미지 경로(.jpg)** - 월페이퍼 배경으로 사용할 이미지의 경로를 지정합니다.
   + **월페이퍼에 표시할 속성 선택** - 월페이퍼에 표시하려는 인스턴스 세부 정보의 확인란을 선택합니다. 월페이퍼에서 인스턴스 세부 정보를 제거하려면 확인란 선택을 취소합니다.
   + **월페이퍼에 인스턴스 태그 표시** - 월페이퍼에 인스턴스 태그를 표시하려면 다음 설정 중 하나를 선택합니다.
     + **없음** - 월페이퍼에 인스턴스 태그를 표시하지 않습니다.
     + **모두 표시** - 월페이퍼에 모든 인스턴스 태그를 표시합니다.
     + **필터링된 항목 표시** - 월페이퍼에 지정된 인스턴스 태그를 표시합니다. 이 설정을 선택하면 **인스턴스 태그 필터** 상자에서 배경화면에 표시할 인스턴스 태그를 추가할 수 있습니다.
**참고**  
월페이퍼에 태그를 표시하려면 메타데이터에서 태그를 활성화해야 합니다. 인스턴스 태그 및 메타데이터에 대한 자세한 내용은 [인스턴스 메타데이터를 사용하여 EC2 인스턴스의 태그 보기](work-with-tags-in-IMDS.md) 섹션을 참조하세요.  
![\[EC2 시작 설정 월페이퍼 탭.\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/ec2launchv2-wallpaper-02.png)

1. **볼륨** 탭에서 인스턴스에 연결된 볼륨을 초기화할지 여부를 선택합니다. 활성화하면 추가 볼륨의 드라이브 문자가 설정되고 사용 가능한 공간을 사용하도록 확장됩니다. **모두**를 선택하면 모든 스토리지 볼륨이 초기화됩니다. **디바이스**를 선택하면 목록에 지정된 디바이스만 초기화됩니다. 초기화할 각 디바이스에 대해 디바이스를 입력해야 합니다. EC2 콘솔에 나열된 디바이스(예: `xvdb` 또는 `/dev/nvme0n1`)를 사용합니다. 드롭다운 목록에는 인스턴스에 연결된 스토리지 볼륨이 표시됩니다. 인스턴스에 연결되지 않은 디바이스를 입력하려면 텍스트 필드에 디바이스를 입력합니다.

   **이름**, **문자** 및 **파티션**은 선택적인 필드입니다. **파티션**에 값을 지정하지 않으면 2TB보다 큰 스토리지 볼륨은 `gpt` 파티션 유형으로 초기화되고 2TB보다 작은 스토리지 볼륨은 `mbr` 파티션 유형으로 초기화됩니다. 디바이스가 구성되고 NTFS 이외의 디바이스에 파티션 테이블이 포함되어 있거나 디스크의 처음 4KB에 데이터가 포함된 경우 디스크를 건너뛰고 작업이 기록됩니다.  
![\[EC2 시작 설정 애플리케이션입니다.\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/ec2launchv2-volumes.png)

## CLI를 사용하여 EC2Launch v2 구성
<a name="ec2launch-v2-cli"></a>

CLI(명령줄 인터페이스)를 사용하여 EC2Launch 설정을 구성하고 서비스를 관리할 수 있습니다. 다음 섹션에서는 EC2Launch v2를 관리하는 데 사용할 수 있는 CLI 명령에 대한 설명과 사용법 정보를 제공합니다.

**Topics**
+ [collect-logs](#ec2launch-v2-collect-logs)
+ [get-agent-config](#ec2launch-v2-get-agent-config)
+ [list-volumes](#ec2launch-v2-list-volumes)
+ [reset](#ec2launch-v2-reset)
+ [run](#ec2launch-v2-run)
+ [status](#ec2launch-v2-settings-status)
+ [sysprep](#ec2launch-v2-settings-sysprep)
+ [검증](#ec2launch-v2-validate)
+ [버전](#ec2launch-v2-version)
+ [wallpaper](#ec2launch-v2-wallpaper)

### collect-logs
<a name="ec2launch-v2-collect-logs"></a>

EC2Launch에 대한 로그 파일을 수집하고, 파일을 압축하여 지정된 디렉터리에 배치합니다.

**예제**

```
ec2launch collect-logs -o C:\Mylogs.zip
```

**사용량**

`ec2launch collect-logs [flags]`

**Flags**

`-h`, `--help`

`collect-logs`에 대한 도움말

`-o`, `--output string`

압축된 출력 로그 파일 경로

### get-agent-config
<a name="ec2launch-v2-get-agent-config"></a>

`agent-config.yml`을 지정된 형식(JSON 또는 YAML)으로 인쇄합니다. 형식이 지정되지 않은 경우 `agent-config.yml`은 이전에 지정한 형식으로 인쇄됩니다.

**예제**

```
ec2launch get-agent-config -f json
```

**사용량**

`ec2launch get-agent-config [flags]`

**Flags**

`-h`, `--help`

`get-agent-config`에 대한 도움말

`-f`, `--format string`

`agent-config` 파일의 출력 형식: `json`, `yaml` 

### list-volumes
<a name="ec2launch-v2-list-volumes"></a>

휘발성 및 EBS 볼륨을 포함하여 인스턴스에 연결된 모든 스토리지 볼륨을 나열합니다.

**예제**

```
ec2launch list-volumes
```

**사용량**

`ec2launch list-volumes`

**Flags**

`-h`, `--help`

`list-volumes`에 대한 도움말

### reset
<a name="ec2launch-v2-reset"></a>

이 태스크의 주요 목표는 에이전트가 다음에 실행될 때 에이전트를 재설정하는 것입니다. 이 목표를 위해 **reset** 명령은 로컬 `EC2Launch` 디렉터리에서 EC2Launch v2의 모든 에이전트 상태 데이터를 삭제합니다([EC2Launch v2 디렉터리 구조](ec2launch-v2.md#ec2launch-v2-directory) 단원 참조) 재설정할 경우 서비스 및 Sysprep 로그가 선택적으로 삭제됩니다.

스크립트 동작은 에이전트가 스크립트를 실행하는 모드 (인라인 모드 또는 분리 모드)에 따라 달라집니다.

인라인(기본값)  
EC2Launch v2 에이전트는 한 번에 하나씩(`detach: false`) 스크립트를 실행합니다. 이것이 기본 설정입니다.  
인라인 스크립트가 **reset** 또는 **sysprep** 명령을 내리면 해당 명령이 즉시 실행되고 에이전트가 재설정됩니다. 현재 태스크가 끝나면 에이전트가 추가 태스크를 실행하지 않고 종료됩니다.  
예를 들어 명령을 실행하는 태스크 뒤에 `startSsm` 태스크(사용자 데이터 실행 후 기본적으로 포함됨)가 뒤따르는 경우 해당 태스크가 실행되지 않고 Systems Manager 서비스도 시작되지 않습니다.

분리됨  
EC2Launch v2 에이전트는 다른 태스크(`detach: true`)와 동시에 스크립트를 실행합니다.  
분리된 스크립트가 **reset** 또는 **sysprep** 명령을 내리면 해당 명령은 실행되기 전에 에이전트가 완료될 때까지 기다립니다. ExecuteScript 이후의 태스크는 계속 실행됩니다.

**예제**

```
ec2launch reset -c
```

**사용량**

`ec2launch reset [flags]`

**Flags**

`-c`, `--clean`

`reset` 전에 인스턴스 로그 정리

`-h`, `--help`

`reset`에 대한 도움말

### run
<a name="ec2launch-v2-run"></a>

EC2Launch v2를 실행합니다.

**예제**

```
ec2launch run
```

**사용량**

`ec2launch run [flags]`

**Flags**

`-h`, `--help`

`run`에 대한 도움말

### status
<a name="ec2launch-v2-settings-status"></a>

EC2Launch v2 에이전트의 상태를 가져옵니다. 필요한 경우 에이전트가 완료될 때까지 프로세스를 차단합니다. 에이전트 상태는 프로세스 종료 코드에 따라 결정됩니다.
+ `0` – 에이전트가 실행되었고 성공했습니다.
+ `1` – 에이전트가 실행되었지만 실패했습니다.
+ `2` – 에이전트가 여전히 실행 중입니다.
+ `3` – 에이전트가 알 수 없는 상태입니다. 에이전트가 실행 중이 아니거나 중지된 상태입니다.
+ `4` – 에이전트 상태를 검색하는 동안 오류가 발생했습니다.
+ `5` – 에이전트가 실행 중이 아니며 마지막으로 알려진 실행 상태를 알 수 없습니다. 이는 다음 중 하나를 의미할 수 있습니다.
  + `state.json` 및 `previous-state.json` 모두 삭제되었습니다.
  + `previous-state.json`이 손상되었습니다.

  [`reset`](#ec2launch-v2-reset) 명령을 실행한 후의 에이전트 상태입니다.

**예시:**

```
ec2launch status -b
```

**사용량**

`ec2launch status [flags]`

**Flags**

`-b`,`--block`

에이전트 실행이 완료될 때까지 프로세스를 차단합니다.

`-h`,`--help`

`status`에 대한 도움말

### sysprep
<a name="ec2launch-v2-settings-sysprep"></a>

이 태스크의 주요 목표는 에이전트가 다음에 실행될 때 에이전트를 재설정하는 것입니다. 이를 위해 **sysprep** 명령은 에이전트 상태를 재설정하고, `unattend.xml` 파일을 업데이트하고, RDP를 비활성화하고, Sysprep을 실행합니다.

스크립트 동작은 에이전트가 스크립트를 실행하는 모드 (인라인 모드 또는 분리 모드)에 따라 달라집니다.

인라인(기본값)  
EC2Launch v2 에이전트는 한 번에 하나씩(`detach: false`) 스크립트를 실행합니다. 이것이 기본 설정입니다.  
인라인 스크립트가 **reset** 또는 **sysprep** 명령을 내리면 해당 명령이 즉시 실행되고 에이전트가 재설정됩니다. 현재 태스크가 끝나면 에이전트가 추가 태스크를 실행하지 않고 종료됩니다.  
예를 들어 명령을 실행하는 태스크 뒤에 `startSsm` 태스크(사용자 데이터 실행 후 기본적으로 포함됨)가 뒤따르는 경우 해당 태스크가 실행되지 않고 Systems Manager 서비스도 시작되지 않습니다.

분리됨  
EC2Launch v2 에이전트는 다른 태스크(`detach: true`)와 동시에 스크립트를 실행합니다.  
분리된 스크립트가 **reset** 또는 **sysprep** 명령을 내리면 해당 명령은 실행되기 전에 에이전트가 완료될 때까지 기다립니다. ExecuteScript 이후의 태스크는 계속 실행됩니다.

**예시:**

```
ec2launch sysprep
```

**사용량**

`ec2launch sysprep [flags]`

**Flags**

`-c`,`--clean`

`sysprep` 전에 인스턴스 로그 정리

`-h`,`--help`

Sysprep에 대한 도움말

`-s`,`--shutdown`

`sysprep` 후에 인스턴스 종료

### 검증
<a name="ec2launch-v2-validate"></a>

`agent-config` 파일 `C:\ProgramData\Amazon\EC2Launch\config\agent-config.yml`을 검증합니다

**예제**

```
ec2launch validate
```

**사용량**

`ec2launch validate [flags]`

**Flags**

-h` `, `--help` 

`validate`에 대한 도움말

### 버전
<a name="ec2launch-v2-version"></a>

실행 가능한 버전을 가져옵니다.

**예제**

```
ec2launch version
```

**사용량**

`ec2launch version [flags]`

**Flags**

`-h`, `--help`

`version`에 대한 도움말

### wallpaper
<a name="ec2launch-v2-wallpaper"></a>

제공된 월페이퍼 경로(.jpg 파일)로 새 월페이퍼를 설정하고 선택한 인스턴스 세부 정보를 표시합니다.

#### 구문
<a name="lv2-wallpaper-syntax"></a>

```
ec2launch wallpaper ^
--path="C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg" ^
--all-tags ^
--attributes=hostName,instanceId,privateIpAddress,publicIpAddress,ipv6Address,instanceSize,availabilityZone,architecture
```

#### 입력
<a name="lv2-wallpaper-inputs"></a>파라미터

**--allowed-tags [*tag-name-1*, *tag-name-n*]**  
(선택 사항) 월페이퍼에 표시할 인스턴스 태그 이름의 Base64로 인코딩된 JSON 배열입니다. 이 태그 또는 `--all-tags`를 사용할 수 있지만 둘 다 사용할 수는 없습니다.

**--attributes *attribute-string-1*, *attribute-string-n***  
(선택 사항) 월페이퍼에 설정을 적용하기 위한 쉼표로 구분된 `wallpaper` 속성 문자열 목록입니다.

**[--path \$1 -p] *path-string***  
(필수) `wallpaper` 배경 이미지 파일 경로를 지정합니다.플래그

**--all-tags**  
(선택 사항) 월페이퍼에 모든 인스턴스 태그를 표시합니다. 이 태그 또는 `--allowed-tags`를 사용할 수 있지만 둘 다 사용할 수는 없습니다.

**[--help \$1 -h]**  
**wallpaper** 명령에 대한 도움말을 표시합니다.

## EC2Launch v2 태스크 구성
<a name="ec2launch-v2-task-configuration"></a>

이 섹션에는 `agent-config.yml` 및 사용자 데이터에 대한 구성 스키마, 작업, 세부 정보, 예시가 나와 있습니다.

**Topics**
+ [스키마: `agent-config.yml`](#ec2launch-v2-schema-agent-config)
+ [시작 또는 재부팅 중 실행되는 EC2Launch v2 사용자 데이터 스크립트 구성](#ec2launch-v2-schema-user-data)

### 스키마: `agent-config.yml`
<a name="ec2launch-v2-schema-agent-config"></a>

`agent-config.yml` 파일의 구조는 아래에 나와 있습니다. 동일한 단계에서는 작업을 반복할 수 없습니다. 작업 속성에 대해서는 다음 작업 설명을 참조하세요.

#### 문서 구조: agent-config.yml
<a name="ec2launch-v2-schema-agent-config-doc-structure"></a>

**JSON**

```
{
	"version": "1.1",
	"config": [
		{
			"stage": "string",
			"tasks": [
				{
					"task": "string",
					"inputs": {
						...
					}
				},
				...
			]
		},
		...
	]
}
```

**YAML**

```
version: 1.1
config:
- stage: string
  tasks:
  - task: string
	inputs:
	  ...
  ...
...
```

#### 예: `agent-config.yml`
<a name="ec2launch-v2-example-agent-config"></a>

다음 예에서는 `agent-config.yml` 구성 파일에 대한 설정을 보여줍니다.

```
version: 1.1
config:
- stage: boot
  tasks:
  - task: extendRootPartition
- stage: preReady
  tasks:
  - task: activateWindows
    inputs:
      activation:
        type: amazon
  - task: setDnsSuffix
    inputs:
      suffixes:
      - $REGION.ec2-utilities.amazonaws.com
  - task: setAdminAccount
    inputs:
      password:
        type: random
  - task: setWallpaper
    inputs:
      path: C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg
      attributes:
      - hostName
      - instanceId
      - privateIpAddress
      - publicIpAddress
      - instanceSize
      - availabilityZone
      - architecture
- stage: postReady
  tasks:
  - task: startSsm
```

### 시작 또는 재부팅 중 실행되는 EC2Launch v2 사용자 데이터 스크립트 구성
<a name="ec2launch-v2-schema-user-data"></a>

다음 JSON 및 YAML 예는 사용자 데이터의 문서 구조를 보여줍니다. Amazon EC2는 문서에서 지정한 `tasks` 배열에 이름이 지정된 각 작업을 구문 분석합니다. 각 작업에는 일련의 자체 속성 및 요구 사항이 있습니다. 자세한 내용은 [EC2Launch v2 시작 태스크에 대한 태스크 정의](ec2launch-v2-task-definitions.md)를 참조하세요.

**참고**  
태스크는 사용자 데이터 태스크 배열에 한 번만 나타나야 합니다.

#### 문서 구조: 사용자 데이터
<a name="ec2launch-v2-schema-user-data-doc-structure"></a>

**JSON**

```
{
	"version": "1.1",
	"tasks": [
		{
			"task": "string",
			"inputs": {
				...
			},
		},
		...
	]
}
```

**YAML**

```
version: 1.1
tasks:
- task: string
  inputs:
    ...
...
```

#### 예: 사용자 데이터
<a name="ec2launch-v2-example-user-data"></a>

사용자 데이터에 대한 자세한 내용은 [Amazon EC2가 Windows 인스턴스의 사용자 데이터를 처리하는 방법](user-data.md#ec2-windows-user-data) 섹션을 참조하세요.

다음 YAML 문서 예제는 EC2Launch v2가 파일을 생성하기 위해 사용자 데이터로 실행하는 PowerShell 스크립트를 보여줍니다.

```
version: 1.1
tasks:
- task: executeScript
  inputs:
  - frequency: always
    type: powershell
    runAs: localSystem
    content: |-
      New-Item -Path 'C:\PowerShellTest.txt' -ItemType File
```

이전 버전의 시작 에이전트와 호환되는 사용자 데이터에 XML 형식을 사용할 수 있습니다. EC2Launch v2는 스크립트를 `UserData` 단계에서 `executeScript` 태스크로 실행합니다. EC2Launch v1 및 EC2Config 동작을 준수하기 위해 사용자 데이터 스크립트는 기본적으로 첨부/인라인 프로세스로 실행됩니다.

스크립트 실행 방식을 사용자 지정하기 위해 선택적 태그를 추가할 수 있습니다. 예를 들어 인스턴스가 시작될 때와 인스턴스가 재부팅될 때 사용자 데이터 스크립트를 실행하려면 다음 태그를 사용할 수 있습니다.

`<persist>true</persist>`

**예시:**

```
<powershell>
  $file = $env:SystemRoot + "\Temp" + (Get-Date).ToString("MM-dd-yy-hh-mm")
  New-Item $file -ItemType file
</powershell>
<persist>true</persist>
```

`<powershellArguments>` 태그를 사용하여 하나 이상의 PowerShell 인수를 지정할 수 있습니다. 인수가 전달되지 않은 경우 EC2Launch v2는 기본적으로 `-ExecutionPolicy Unrestricted` 인수를 추가합니다.

**예시:**

```
<powershell>
  $file = $env:SystemRoot + "\Temp" + (Get-Date).ToString("MM-dd-yy-hh-mm")
  New-Item $file -ItemType file
</powershell>
<powershellArguments>-ExecutionPolicy Unrestricted -NoProfile -NonInteractive</powershellArguments>
```

XML 사용자 데이터 스크립트를 분리된 프로세스로 실행하려면 사용자 데이터에 다음 태그를 추가하세요.

`<detach>true</detach>`

**예시:**

```
<powershell>
  $file = $env:SystemRoot + "\Temp" + (Get-Date).ToString("MM-dd-yy-hh-mm")
  New-Item $file -ItemType file
</powershell>
<detach>true</detach>
```

**참고**  
분리 태그는 이전 시작 에이전트에서 지원되지 않습니다.

#### 변경 로그: 사용자 데이터
<a name="ec2launch-v2-versions-user-data"></a>

다음 표에는 사용자 데이터에 대한 변경 사항이 나열되어 있으며 해당 변경 사항이 적용되는 EC2Launch v2 에이전트 버전과 상호 참조합니다.


| 사용자 데이터 버전 | 세부 정보 | 소개 | 
| --- | --- | --- | 
| 1.1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2launch-v2-settings.html) | EC2Launch v2 버전 2.0.1245 | 
| 1.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2launch-v2-settings.html) | EC2Launch v2 버전 2.0.0 | 

\$1 기본 `agent-config.yml` 파일과 함께 사용하는 경우.

## EC2Launch v2 종료 코드 및 재부팅
<a name="ec2launch-v2-exit-codes-reboots"></a>

EC2Launch v2를 사용하여 스크립트에서 종료 코드를 처리하는 방법을 정의할 수 있습니다. 기본적으로 스크립트에서 실행된 마지막 명령의 종료 코드는 전체 스크립트의 종료 코드로 보고됩니다. 예를 들어 스크립트에 3개의 명령이 포함되어 있는 경우 첫 번째 명령이 실패하고 다음 명령이 성공하면 최종 명령이 성공했기 때문에 실행 상태가 `success`로 보고됩니다.

스크립트로 인스턴스를 재부팅하려면 스크립트의 마지막 단계가 재부팅인 경우에도 스크립트에 `exit 3010`을 지정해야 합니다. `exit 3010`은 EC2Launch v2에 `3010`이 아닌 종료 코드가 반환되거나 최대 재부팅 횟수에 도달할 때까지 인스턴스를 재부팅하고 스크립트를 다시 호출하도록 지시합니다. EC2Launch v2는 태스크당 최대 5번의 재부팅을 허용합니다. `Restart-Computer`와 같은 다른 메커니즘을 사용하여 스크립트에서 인스턴스를 재부팅하려고 하면 스크립트 실행 상태가 일관되지 않습니다. 예를 들어 다시 시작 루프에서 멈추거나 다시 시작을 수행하지 않을 수 있습니다.

이전 에이전트와 호환되는 XML 사용자 데이터 형식을 사용하는 경우 사용자 데이터가 의도한 것보다 더 많이 실행될 수 있습니다. 자세한 내용은 문제 해결 섹션의 [서비스가 사용자 데이터를 두 번 이상 실행함](ec2launchv2-troubleshooting.md#ec2launchv2-troubleshooting-user-data-more-than-once) 섹션을 참조하세요.

## EC2Launch v2 및 Sysprep
<a name="ec2launch-v2-sysprep"></a>

EC2Launch v2 서비스에서는 재사용할 수 있는 사용자 정의된 Windows AMI를 생성하는 데 사용할 수 있는 Microsoft 도구인 Sysprep을 실행합니다. EC2Launch v2가 Sysprep을 호출하면 Sysprep은 `%ProgramData%\Amazon\EC2Launch` 안의 파일을 사용하여 어느 작업을 수행할지 결정합니다. 이러한 파일은 **EC2Launch 설정** 대화 상자를 사용하여 간접적으로 편집하거나, YAML 편집기 또는 텍스트 편집기를 사용하여 직접 편집할 수 있습니다. 그러나 **EC2Launch 설정** 대화 상자에서 사용할 수 없는 몇 가지 고급 설정이 있으며, 이러한 항목은 직접 편집해야 합니다.

설정을 업데이트한 후에 인스턴스에서 AMI를 생성하면 새로운 설정은 그 새로운 AMI에서 실행하는 모든 인스턴스에 적용됩니다. AMI 생성에 대한 자세한 내용은 [Amazon EBS 지원 AMI 생성](creating-an-ami-ebs.md) 섹션을 참조하세요.