Windows 인스턴스용 EC2Launch v2 설정 구성
Windows 인스턴스용 EC2Launch v2 설정 구성
이 섹션에는 EC2Launch v2 설정을 구성하는 방법에 대한 정보가 들어 있어요.
출처: 문서
본문
관련 주제 (Topics)
- EC2Launch v2 설정 대화 상자로 설정 변경 (Change settings using the EC2Launch v2 settings dialog box)
- CLI로 EC2Launch v2 구성 (Configure EC2Launch v2 using the CLI)
- EC2Launch v2 작업 구성 (EC2Launch v2 task configuration)
- EC2Launch v2 종료 코드와 재부팅 (EC2Launch v2 exit codes and reboots)
- EC2Launch v2와 Sysprep (EC2Launch v2 and Sysprep)
EC2Launch v2 설정 대화 상자로 설정 변경하기 (Change settings using the EC2Launch v2 settings dialog box)
다음 절차는 EC2Launch v2 설정 대화 상자를 사용해 설정을 활성화하거나 비활성화하는 방법을 설명해요.
참고:
agent-config.yml파일에서 커스텀 작업을 잘못 구성하고 Amazon EC2Launch 설정 대화 상자를 열려고 시도하면 오류가 발생합니다. 예시 스키마는 Example: agent-config.yml을 참고하세요.
- Windows 인스턴스를 실행하고 연결합니다.
- 시작 메뉴에서 All Programs을 선택하고 EC2Launch settings로 이동합니다. Shutdown with Sysprep 또는 Shutdown without Sysprep을 선택하기 전에 종료를 실행할 때 적용하려는 변경 사항을 저장했는지 확인하세요.
- EC2Launch 설정 대화 상자의 General 탭에서 다음 설정을 활성화하거나 비활성화할 수 있어요.
- Set Computer Name — 이 설정을 활성화하면(기본적으로 비활성화) 매 부팅마다 현재 호스트 이름을 원하는 호스트 이름과 비교합니다. 호스트 이름이 일치하지 않으면 호스트 이름이 재설정되고, 시스템은 선택적으로 재부팅해 새 호스트 이름을 적용합니다. 커스텀 호스트 이름을 지정하지 않으면 16진수 형식의 프라이빗 IPv4 주소(예:
ip-AC1F4E6)로 생성됩니다. 기존 호스트 이름이 수정되지 않게 하려면 이 설정을 활성화하지 마세요. - Extend Boot Volume — 이 설정은 Disk 0/Volume 0을 동적으로 확장해 분할되지 않은 공간을 포함시킵니다. 인스턴스가 커스텀 크기의 루트 볼륨에서 부팅될 때 유용할 수 있어요.
- Set Administrator Account — 활성화하면 로컬 머신에 생성되는 관리자 계정의 사용자 이름과 비밀번호 속성을 설정할 수 있습니다. 이 기능을 활성화하지 않으면 Sysprep 후 시스템에 관리자 계정이 생성되지 않습니다.
adminPasswordtype이 Specify일 때만adminPassword에 비밀번호를 제공하세요.- 비밀번호 유형은 다음과 같이 정의됩니다.
- Random — EC2Launch가 비밀번호를 생성하고 사용자의 키로 암호화합니다. 시스템은 인스턴스가 실행된 후 이 설정을 비활성화하여, 인스턴스가 재부팅되거나 중지·시작되어도 이 비밀번호가 유지되게 합니다.
- Specify — EC2Launch가
adminPassword에 지정한 비밀번호를 사용합니다. 비밀번호가 시스템 요구사항을 충족하지 않으면 EC2Launch가 대신 임의의 비밀번호를 생성합니다. 비밀번호는agent-config.yml에 일반 텍스트로 저장되며 Sysprep이 관리자 비밀번호를 설정한 후 삭제됩니다. EC2Launch는 비밀번호를 사용자의 키로 암호화합니다. - Do not set — EC2Launch가
unattend.xml파일에 지정한 비밀번호를 사용합니다.unattend.xml에 비밀번호를 지정하지 않으면 관리자 계정이 비활성화됩니다.
- 비밀번호 유형은 다음과 같이 정의됩니다.
- Start SSM Service — 선택하면 Sysprep 후 Systems Manager 서비스가 시작되도록 활성화됩니다. EC2Launch v2는 앞서 설명한 모든 작업을 수행하며, SSM Agent는 Run Command와 State Manager 같은 Systems Manager 기능에 대한 요청을 처리합니다.
- Run Command를 사용해 기존 인스턴스를 최신 버전의 EC2Launch v2 서비스와 SSM Agent로 업그레이드할 수 있어요. 자세한 내용은 AWS Systems Manager 사용 설명서의 Update SSM Agent using Run Command 문서를 참고하세요.
- Optimize ENA — 선택하면 ENA 설정이 AWS에 최적화되도록 구성됩니다(ENA Receive Side Scaling과 Receive Queue Depth 설정). 자세한 내용은 Configure Receive side scaling CPU affinity 문서를 참고하세요.
- Enable SSH — 이 설정은 이후 Windows 버전에서 원격 시스템 관리를 위해 OpenSSH를 활성화합니다.
- Enable Jumbo Frames — 선택하면 Jumbo Frames를 활성화합니다. Jumbo Frames는 네트워크 통신에 의도치 않은 영향을 줄 수 있으므로, 활성화하기 전에 Jumbo Frames가 시스템에 미치는 영향을 이해해야 해요. Jumbo Frames에 대한 자세한 내용은 Jumbo frames (9001 MTU) 문서를 참고하세요.
- Prepare for Imaging — EC2 인스턴스를 Sysprep과 함께 또는 없이 종료할지 선택합니다. EC2Launch v2로 Sysprep을 실행하려면 Shutdown with Sysprep을 선택합니다.
- Set Computer Name — 이 설정을 활성화하면(기본적으로 비활성화) 매 부팅마다 현재 호스트 이름을 원하는 호스트 이름과 비교합니다. 호스트 이름이 일치하지 않으면 호스트 이름이 재설정되고, 시스템은 선택적으로 재부팅해 새 호스트 이름을 적용합니다. 커스텀 호스트 이름을 지정하지 않으면 16진수 형식의 프라이빗 IPv4 주소(예:
- DNS Suffix 탭에서 정규화된 도메인 이름을 제공하지 않고 EC2에서 실행되는 서버의 DNS 해석을 위한 DNS 접미사 목록을 추가할지 선택할 수 있어요. DNS 접미사에는
$REGION과$AZ변수가 포함될 수 있습니다. 이미 존재하지 않는 접미사만 목록에 추가됩니다. - Wallpaper 탭에서 배경 이미지로 인스턴스 월페이퍼를 구성하고 월페이퍼에 표시할 인스턴스 세부 정보를 지정할 수 있어요. Amazon EC2는 로그인할 때마다 세부 정보를 생성합니다.
-
다음 컨트롤로 월페이퍼를 구성할 수 있어요.
- Display instance details on wallpaper – 이 확인란은 월페이퍼에 인스턴스 세부 정보 표시를 활성화하거나 비활성화합니다.
- Image path (.jpg) – 월페이퍼 배경으로 사용할 이미지의 경로를 지정합니다.
- Select attributes to display on wallpaper – 월페이퍼에 표시하려는 인스턴스 세부 정보의 확인란을 선택합니다. 월페이퍼에서 제거하려는 이전에 선택한 인스턴스 세부 정보의 확인란은 선택 해제합니다.
- Display Instance Tags on wallpaper – 월페이퍼에 인스턴스 태그를 표시하려면 다음 설정 중 하나를 선택합니다.
- None – 월페이퍼에 인스턴스 태그를 표시하지 않습니다.
- Show all – 월페이퍼에 모든 인스턴스 태그를 표시합니다.
- Show filtered – 월페이퍼에 지정된 인스턴스 태그를 표시합니다. 이 설정을 선택하면 Instance tag filter 상자에 월페이퍼에 표시할 인스턴스 태그를 추가할 수 있어요.
참고: 월페이퍼에 태그를 표시하려면 메타데이터에서 태그를 활성화해야 합니다. 인스턴스 태그와 메타데이터에 대한 자세한 내용은 View tags for your EC2 instances using instance metadata 문서를 참고하세요.
-
- Volumes 탭에서 인스턴스에 연결된 볼륨을 초기화할지 선택합니다. 활성화하면 추가 볼륨에 드라이브 문자를 설정하고 사용 가능한 공간을 사용하도록 확장합니다. All을 선택하면 모든 스토리지 볼륨이 초기화됩니다. Devices를 선택하면 목록에 지정된 장치만 초기화됩니다. 초기화할 각 장치의 장치를 입력해야 해요. EC2 콘솔에 나열된 장치(예:
xvdb또는/dev/nvme0n1)를 사용합니다. 드롭다운 목록에 인스턴스에 연결된 스토리지 볼륨이 표시됩니다. 인스턴스에 연결되지 않은 장치를 입력하려면 텍스트 필드에 입력합니다.- Name, Letter, Partition은 선택 필드예요. Partition에 값을 지정하지 않으면 2TB보다 큰 스토리지 볼륨은
gpt파티션 유형으로, 2TB보다 작은 볼륨은mbr파티션 유형으로 초기화됩니다. 장치가 구성되어 있고, non-NTFS 장치에 파티션 테이블이 있거나 디스크의 처음 4KB에 데이터가 있으면 디스크를 건너뛰고 작업이 기록됩니다.
- Name, Letter, Partition은 선택 필드예요. Partition에 값을 지정하지 않으면 2TB보다 큰 스토리지 볼륨은
CLI로 EC2Launch v2 구성하기 (Configure EC2Launch v2 using the CLI)
CLI(Command Line Interface)를 사용해 EC2Launch 설정을 구성하고 서비스를 관리할 수 있어요. 다음 섹션에는 EC2Launch v2를 관리하는 데 사용할 수 있는 CLI 명령의 설명과 사용 정보가 들어 있습니다.
참고: EC2Launch v2 CLI 실행 파일인
EC2Launch.exe는C:\Program Files\Amazon\EC2Launch\에 있습니다. 기본적으로 이 디렉터리는 Windows PATH에 없어요. 이 섹션의 예시에 표시된ec2launch명령 형식은 셸이 직접 인식하지 못하는 약식 표현입니다. 명령을 실행하려면 실행 파일의 전체 경로를 사용하거나 먼저 설치 디렉터리로 변경하세요. 다음 PowerShell 예시는 호출 연산자와 함께 전체 경로를 사용합니다.& "C:\Program Files\Amazon\EC2Launch\EC2Launch.exe" status
명령 (Commands)
collect-logsget-agent-configlist-volumesresetrunstatussysprepvalidateversionwallpaper
collect-logs
EC2Launch의 로그 파일을 수집하고, 파일을 압축하며, 지정된 디렉터리에 배치합니다.
예시
ec2launch collect-logs -o C:\Mylogs.zip
사용법
ec2launch collect-logs [flags]
플래그
-h, --help— collect-logs 도움말-o, --output string— 압축된 출력 로그 파일 경로
get-agent-config
agent-config.yml을 지정된 형식(JSON 또는 YAML)으로 출력합니다. 형식을 지정하지 않으면 agent-config.yml이 이전에 지정된 형식으로 출력됩니다.
예시
ec2launch get-agent-config -f json
사용법
ec2launch get-agent-config [flags]
플래그
-h, --help— get-agent-config 도움말-f, --format string— agent-config 파일의 출력 형식:json,yaml
list-volumes
임시(ephemeral) 및 EBS 볼륨을 포함해 인스턴스에 연결된 모든 스토리지 볼륨을 나열합니다.
예시
ec2launch list-volumes
사용법
ec2launch list-volumes
플래그
-h, --help— list-volumes 도움말
reset
이 작업의 주요 목적은 다음 실행을 위해 에이전트를 재설정하는 것이에요. 이를 위해 reset 명령은 로컬 EC2Launch 디렉터리에서 EC2Launch v2의 모든 에이전트 상태 데이터를 삭제합니다(EC2Launch v2 directory structure 참고). Reset은 선택적으로 서비스와 Sysprep 로그를 삭제합니다.
스크립트 동작은 에이전트가 스크립트를 실행하는 모드, 즉 inline 또는 detached에 따라 달라져요.
- Inline (기본값) — EC2Launch v2 에이전트가 스크립트를 한 번에 하나씩 실행합니다(
detach: false). 기본 설정입니다.-
참고: 인라인 스크립트가
reset또는sysprep명령을 발행하면 즉시 실행되어 에이전트를 재설정합니다. 현재 작업이 끝나면 에이전트는 추가 작업을 실행하지 않고 종료됩니다. 예를 들어 명령을 발행하는 작업 뒤에 startSsm 작업(기본적으로 사용자 데이터 실행 후 포함됨)이 이어졌다면 해당 작업은 실행되지 않고 Systems Manager 서비스는 시작되지 않아요.
-
- Detached — EC2Launch v2 에이전트가 다른 작업과 동시에 스크립트를 실행합니다(
detach: true).-
참고: 분리된 스크립트가
reset또는sysprep명령을 발행하면 그 명령은 에이전트가 끝날 때까지 기다린 뒤 실행됩니다. executeScript 뒤의 작업은 계속 실행됩니다.
-
예시
ec2launch reset -c
사용법
ec2launch reset [flags]
플래그
-c, --clean— reset 전에 인스턴스 로그 정리-h, --help— reset 도움말
run
EC2Launch v2를 실행합니다.
예시
ec2launch run
사용법
ec2launch run [flags]
플래그
-h, --help— run 도움말
status
EC2Launch v2 에이전트의 상태를 가져옵니다. 선택적으로 에이전트가 끝날 때까지 프로세스를 차단합니다. 프로세스 종료 코드가 에이전트 상태를 결정합니다.
0– 에이전트가 실행되어 성공했습니다.1– 에이전트가 실행되었지만 실패했어요.2– 에이전트가 여전히 실행 중입니다.3– 에이전트가 알 수 없는 상태입니다. 에이전트 상태가 실행 중 또는 중지 상태가 아닙니다.4– 에이전트 상태 검색 시도 중 오류가 발생했습니다.5– 에이전트가 실행 중이 아니고 마지막으로 알려진 실행 상태를 알 수 없습니다. 다음 중 하나를 의미할 수 있어요.state.json과previous-state.json이 모두 삭제되었습니다.previous-state.json이 손상되었습니다.- reset 명령 실행 후의 에이전트 상태입니다.
예시
ec2launch status -b
참고:
status명령은 콘솔에 짧은 메시지(예:agent ran successfully)를 씁니다. 하지만 위에 나열된 프로세스 종료 코드 값이 에이전트 상태를 결정하며, 그 메시지가 아니에요. PowerShell에서 종료 코드를 보려면 명령 실행 후$LASTEXITCODE자동 변수를 읽으세요. 예를 들어:& "C:\Program Files\Amazon\EC2Launch\EC2Launch.exe" status; "ExitCode=$LASTEXITCODE"
ExitCode=0출력은 에이전트가 성공적으로 실행되었음을 나타냅니다.
사용법
ec2launch status [flags]
플래그
-b, --block— 에이전트 실행이 끝날 때까지 프로세스를 차단-h, --help— status 도움말
sysprep
이 작업의 주요 목적은 다음 실행을 위해 에이전트를 재설정하는 것이에요. 이를 위해 sysprep 명령은 에이전트 상태를 재설정하고, unattend.xml 파일을 업데이트하며, RDP를 비활성화하고, Sysprep을 실행합니다.
스크립트 동작은 에이전트가 스크립트를 실행하는 모드, 즉 inline 또는 detached에 따라 달라져요.
- Inline (기본값) — EC2Launch v2 에이전트가 스크립트를 한 번에 하나씩 실행합니다(
detach: false). 기본 설정입니다.-
참고: 인라인 스크립트가
reset또는sysprep명령을 발행하면 즉시 실행되어 에이전트를 재설정합니다. 현재 작업이 끝나면 에이전트는 추가 작업을 실행하지 않고 종료됩니다.
-
- Detached — EC2Launch v2 에이전트가 다른 작업과 동시에 스크립트를 실행합니다(
detach: true).-
참고: 분리된 스크립트가
reset또는sysprep명령을 발행하면 그 명령은 에이전트가 끝날 때까지 기다린 뒤 실행됩니다. executeScript 뒤의 작업은 계속 실행됩니다.
-
예시
ec2launch sysprep
사용법
ec2launch sysprep [flags]
플래그
-c, --clean— sysprep 전에 인스턴스 로그 정리-h, --help— Sysprep 도움말-s, --shutdown— sysprep 후 인스턴스 종료
validate
에이전트 구성 파일 C:\ProgramData\Amazon\EC2Launch\config\agent-config.yml을 검증합니다.
예시
ec2launch validate
사용법
ec2launch validate [flags]
플래그
-h, --help— validate 도움말
version
실행 파일 버전을 가져옵니다.
예시
ec2launch version
사용법
ec2launch version [flags]
플래그
-h, --help— version 도움말
wallpaper
제공된 월페이퍼 경로(.jpg 파일)로 새 월페이퍼를 설정하고 선택한 인스턴스 세부 정보를 표시합니다.
구문 (Syntax)
ec2launch wallpaper ^
--path="C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg" ^
--all-tags ^
--attributes=hostName,instanceId,privateIpAddress,publicIpAddress,ipv6Address,instanceSize,availabilityZone,architecture
입력 (Inputs)
파라미터 (Parameters)
--allowed-tags [tag-name-1, tag-name-n]— (선택) 월페이퍼에 표시할 인스턴스 태그 이름의 Base64로 인코딩된 JSON 배열입니다. 이 태그 또는--all-tags를 사용할 수 있지만 둘 다는 사용할 수 없어요.--attributes attribute-string-1, attribute-string-n— (선택) 월페이퍼에 설정을 적용할 월페이퍼 속성 문자열의 쉼표로 구분된 목록입니다.[--path | -p] path-string— (필수) 월페이퍼 배경 이미지 파일 경로를 지정합니다.
플래그 (Flags)
--all-tags— (선택) 월페이퍼에 모든 인스턴스 태그를 표시합니다. 이 태그 또는--allowed-tags를 사용할 수 있지만 둘 다는 사용할 수 없어요.[--help | -h]— wallpaper 명령에 대한 도움말을 표시합니다.
EC2Launch v2 작업 구성 (EC2Launch v2 task configuration)
이 섹션에는 agent-config.yml과 사용자 데이터에 대한 구성 스키마, 작업, 세부 정보, 예시가 포함됩니다.
작업과 예시 (Tasks and examples)
- Schema: agent-config.yml
- 구성 실행 또는 재부팅 중 실행되는 EC2Launch v2 사용자 데이터 스크립트 구성 (Configure EC2Launch v2 user data scripts)
Schema: agent-config.yml
agent-config.yml 파일의 구조는 아래에 표시됩니다. 같은 스테이지에서 작업을 반복할 수 없다는 점에 유의하세요. 작업 속성은 뒤따르는 작업 설명을 참고하세요.
문서 구조: agent-config.yml
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
다음 예시는 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 사용자 데이터 스크립트 구성하기
다음 JSON과 YAML 예시는 사용자 데이터의 문서 구조를 보여줍니다. Amazon EC2는 문서에 지정한 tasks 배열에 이름이 나열된 각 작업을 구문 분석합니다. 각 작업에는 자체 속성과 요구사항 집합이 있습니다. 자세한 내용은 Task definitions for EC2Launch v2 startup tasks 문서를 참고하세요.
참고: 사용자 데이터의 tasks 배열에는 작업이 한 번만 나타나야 합니다.
문서 구조: 사용자 데이터
JSON
{
"version": "1.1",
"tasks": [
{
"task": "string",
"inputs": {
...
},
},
...
]
}
YAML
version: 1.1
tasks:
- task: string
inputs:
...
...
예시: 사용자 데이터
사용자 데이터에 대한 자세한 내용은 How Amazon EC2 handles user data for Windows instances 문서를 참고하세요.
다음 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>
참고: detach 태그는 이전 실행 에이전트에서 지원되지 않아요.
변경 로그: 사용자 데이터
다음 표는 사용자 데이터의 변경 사항을 나열하고, 적용되는 EC2Launch v2 에이전트 버전에 상호 참조합니다.
| 사용자 데이터 버전 | 세부 정보 | 도입 버전 |
|---|---|---|
| 1.1 | · 사용자 데이터 작업이 에이전트 구성 파일의 PostReady 스테이지 이전에 실행됩니다. · Systems Manager Agent를 시작하기 전에 사용자 데이터를 실행합니다(EC2Launch v1 및 EC2Config와 같은 동작).* |
EC2Launch v2 버전 2.0.1245 |
| 1.0 | · 더 이상 사용되지 않을 예정입니다. · 사용자 데이터 작업이 에이전트 구성 파일의 PostReady 스테이지 이후에 실행됩니다. EC2Launch v1과 역호환되지 않습니다. · Systems Manager Agent 시작과 사용자 데이터 작업 사이의 경합 조건(race condition)의 영향을 받습니다. |
EC2Launch v2 버전 2.0.0 |
* 기본
agent-config.yml파일과 함께 사용할 때.
EC2Launch v2 종료 코드와 재부팅 (EC2Launch v2 exit codes and reboots)
EC2Launch v2를 사용해 스크립트가 종료 코드를 처리하는 방식을 정의할 수 있어요. 기본적으로 스크립트에서 실행되는 마지막 명령의 종료 코드가 전체 스크립트의 종료 코드로 보고됩니다. 예를 들어 스크립트에 세 개의 명령이 있고 첫 번째 명령은 실패했지만 나머지는 성공했다면, 마지막 명령이 성공했으므로 실행 상태가 성공으로 보고됩니다.
스크립트가 인스턴스를 재부팅하게 하려면, 재부팅이 스크립트의 마지막 단계일 때도 스크립트에 exit 3010을 지정해야 해요. exit 3010은 EC2Launch v2에 인스턴스를 재부팅하고, 3010이 아닌 종료 코드를 반환할 때까지 또는 최대 재부팅 횟수에 도달할 때까지 스크립트를 다시 호출하라고 지시합니다. EC2Launch v2는 작업당 최대 5번의 재부팅을 허용합니다. Restart-Computer 같은 다른 메커니즘으로 스크립트에서 인스턴스를 재부팅하려 시도하면 스크립트 실행 상태가 불일치할 수 있어요. 예를 들어 재시작 루프에 빠지거나 재시작을 수행하지 않을 수 있습니다.
이전 에이전트와 호환되는 XML 사용자 데이터 형식을 사용한다면 사용자 데이터가 의도한 것보다 더 많이 실행될 수 있어요. 자세한 내용은 트러블슈팅 섹션의 Service runs user data more than once 문서를 참고하세요.
EC2Launch v2와 Sysprep
EC2Launch v2 서비스는 재사용할 수 있는 커스터마이즈된 Windows AMI를 만들 수 있게 해주는 Microsoft 도구인 Sysprep을 실행합니다. EC2Launch v2가 Sysprep을 호출할 때 %ProgramData%\Amazon\EC2Launch의 파일을 사용해 수행할 작업을 결정합니다. 이 파일들은 EC2Launch 설정 대화 상자를 통해 간접적으로 편집하거나, YAML 편집기나 텍스트 편집기로 직접 편집할 수 있어요. 하지만 EC2Launch 설정 대화 상자에서 사용할 수 없는 일부 고급 설정은 직접 편집해야 합니다.
설정을 업데이트한 인스턴스에서 AMI를 만들면 새 설정이 새 AMI에서 실행되는 모든 인스턴스에 적용됩니다. AMI 만들기에 대한 정보는 Create an Amazon EBS-backed AMI 문서를 참고하세요.