EC2Launch v2 설정 - Amazon Elastic Compute Cloud

EC2Launch v2 설정

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

EC2Launch v2 설정 대화 상자를 사용하여 설정 변경

다음 절차는 EC2Launch v2 설정 대화 상자를 사용하여 설정을 사용하거나 비활성화하는 방법을 설명합니다.

참고

agent-config.yml 파일에서 사용자 정의 태스크를 잘못 구성하고 Amazon EC2Launch 설정 대화 상자를 열려고 하는 경우 오류가 발생합니다. 스키마 예제는 예: agent-config.yml 섹션을 참조하세요.

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

  2. 시작 메뉴에서 모든 프로그램을 선택한 다음 EC2Launch 설정으로 이동합니다.

    EC2 시작 설정 애플리케이션입니다.
  3. EC2Launch 설정 대화 상자의 일반 탭에서 다음 설정을 활성화 또는 비활성화할 수 있습니다.

    1. 컴퓨터 이름 설정

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

    2. 부트 볼륨 확장

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

    3. 관리자 계정 설정

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

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

      1. Random

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

      2. Specify

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

      3. Do not set

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

    4. SSM 서비스 시작

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

      Run Command를 사용하여 기존 인스턴스가 최신 버전의 EC2Launch v2 서비스와 SSM Agent를 사용하도록 업그레이드할 수 있습니다. 자세한 내용은 AWS Systems Manager 사용 설명서에서 Run Command를 사용하여 SSM Agent 업데이트를 참조하세요.

    5. ENA 최적화

      이 옵션을 선택하면 ENA 수신측 조정 및 수신 대기열 깊이 설정이 AWS에 맞게 최적화되도록 ENA 설정이 구성됩니다. 자세한 내용은 RSS CPU 선호도 구성 섹션을 참조하세요.

    6. SSH 활성화

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

    7. 점보 프레임 활성화

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

    8. 이미징 준비

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

  4. DNS 접미사 탭에서, 정규화된 도메인 이름을 제공하지 않고 EC2에서 실행되는 서버의 DNS를 확인할 수 있도록 DNS 접미사 목록의 추가 여부를 선택할 수 있습니다. DNS 접미사는 변수 $REGION$AZ를 포함할 수 있습니다. 아직 존재하지 않는 접미사만 목록에 추가됩니다.

    EC2 시작 설정 애플리케이션입니다.
  5. 월페이퍼 탭에서 배경 이미지로 인스턴스 월페이퍼를 구성하고 표시할 월페이퍼에 대한 인스턴스 세부 정보를 지정할 수 있습니다. Amazon EC2는 로그인할 때마다 세부 정보를 생성합니다.

    다음 컨트롤로 월페이퍼를 구성할 수 있습니다.

    • 월페이퍼에 인스턴스 세부 정보 표시 - 이 확인란은 월페이퍼의 인스턴스 세부 정보 표시를 활성화하거나 비활성화합니다.

    • 이미지 경로(.jpg) - 월페이퍼 배경으로 사용할 이미지의 경로를 지정합니다.

    • 월페이퍼에 표시할 속성 선택 - 월페이퍼에 표시하려는 인스턴스 세부 정보의 확인란을 선택합니다. 월페이퍼에서 인스턴스 세부 정보를 제거하려면 확인란 선택을 취소합니다.

    • 월페이퍼에 인스턴스 태그 표시 - 월페이퍼에 인스턴스 태그를 표시하려면 다음 설정 중 하나를 선택합니다.

      • 없음 - 월페이퍼에 인스턴스 태그를 표시하지 않습니다.

      • 모두 표시 - 월페이퍼에 모든 인스턴스 태그를 표시합니다.

      • 필터링된 항목 표시 - 월페이퍼에 지정된 인스턴스 태그를 표시합니다. 이 설정을 선택하면 인스턴스 태그 필터 상자에서 배경화면에 표시할 인스턴스 태그를 추가할 수 있습니다.

        참고

        월페이퍼에 태그를 표시하려면 메타데이터에서 태그를 활성화해야 합니다. 인스턴스 태그 및 메타데이터에 대한 자세한 내용은 인스턴스 메타데이터의 인스턴스 태그 작업 섹션을 참조하세요.

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

    이름, 문자파티션은 선택적인 필드입니다. 파티션에 값을 지정하지 않으면 2TB보다 큰 스토리지 볼륨은 gpt 파티션 유형으로 초기화되고 2TB보다 작은 스토리지 볼륨은 mbr 파티션 유형으로 초기화됩니다. 디바이스가 구성되고 NTFS 이외의 디바이스에 파티션 테이블이 포함되어 있거나 디스크의 처음 4KB에 데이터가 포함된 경우 디스크를 건너뛰고 작업이 기록됩니다.

    EC2 시작 설정 애플리케이션입니다.

다음은 EC2Launch 대화 상자에 입력한 설정에서 생성된 구성 YAML 파일의 예입니다.

version: 1.0 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 - memory - network - stage: postReady tasks: - task: startSsm

EC2Launch v2 디렉터리 구조

EC2Launch v2는 다음 디렉터리에 설치되어야 합니다.

  • 서비스 바이너리: %ProgramFiles%\Amazon\EC2Launch

  • 서비스 데이터(설정, 로그 파일 및 상태 파일): %ProgramData%\Amazon\EC2Launch

참고

기본적으로 Windows는 파일과 폴더를 C:\ProgramData 아래에 숨깁니다. EC2Launch v2 디렉터리와 파일을 보려면 Windows 탐색기에 경로를 입력하거나 숨겨진 파일과 폴더를 표시하도록 폴더 속성을 변경해야 합니다.

%ProgramFiles%\Amazon\EC2Launch 디렉터리에는 바이너리와 지원 라이브러리가 들어 있습니다. 여기에는 다음과 같은 하위 디렉터리가 포함됩니다.

  • settings

    • EC2LaunchSettingsUI.exe - agent-config.yml 파일을 수정하기 위한 사용자 인터페이스

    • YamlDotNet.dll - 사용자 인터페이스에서 일부 작업을 지원하기 위한 DLL

  • tools

    • ebsnvme-id.exe - 인스턴스에서 EBS 볼륨의 메타데이터를 검사하기 위한 도구

    • AWSAcpiSpcrReader.exe - 사용할 올바른 COM 포트를 결정하기 위한 도구

    • EC2LaunchEventMessage.dll - EC2Launch에 대한 Windows 이벤트 로깅을 지원하기 위한 DLL

  • service

    • EC2LaunchService.exe — 시작 에이전트가 서비스로 실행될 때 시작되는 Windows 서비스 실행 파일.

  • EC2Launch.exe - 주요 EC2Launch 실행 파일

  • EC2LaunchAgentAttribution.txt - EC2Launch 내에서 사용되는 코드의 저작권 표시

%ProgramData%\Amazon\EC2Launch 디렉터리에는 다음 하위 디렉터리가 포함됩니다. 로그, 구성 및 상태를 포함하여 서비스에서 생성된 모든 데이터가 이 디렉터리에 저장됩니다.

  • config - 구성

    서비스 구성 파일은 이 디렉터리에 agent-config.yml로 저장됩니다. 서비스에서 실행되는 기본 태스크를 수정, 추가 또는 제거하도록 이 파일을 업데이트할 수 있습니다. 이 디렉터리에 파일을 생성할 권한은 권한 에스컬레이션을 방지하기 위해 관리자 계정으로 제한됩니다.

  • log - 인스턴스 로그

    서비스(agent.log), 콘솔(console.log), 성능(bench.log) 및 오류(error.log)에 대한 로그가 이 디렉터리에 저장됩니다. 서비스의 후속 실행 시 로그 파일이 추가됩니다.

  • state - 서비스 상태 데이터

    서비스가 실행할 작업을 결정하는 데 사용하는 상태가 여기에 저장됩니다. Sysprep 이후에 서비스가 이미 실행되었는지 여부를 나타내는 .run-once 파일이 있습니다(따라서 빈도가 한 번인 태스크는 다음 실행 시 건너뜀). 이 하위 디렉터리에는 각 태스크의 상태를 추적하는 state.jsonprevious-state.json이 포함되어 있습니다.

  • sysprep - Sysprep

    이 디렉터리에는 재사용할 수 있는 사용자 지정 Windows AMI를 만들 때 Sysprep에서 수행할 작업을 결정하는 데 사용되는 파일이 포함되어 있습니다.

CLI를 사용하여 EC2Launch v2 구성

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

collect-logs

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

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

사용량

ec2launch collect-logs [flags]

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

예제 2

다음 PowerShell 명령은 agent-config 파일을 편집하고 JSON 형식으로 저장하는 방법을 보여줍니다.

$config = & "$env:ProgramFiles/Amazon/EC2Launch/EC2Launch.exe" --format json | ConvertFrom-Json $jumboFrame =@" { "task": "enableJumboFrames" } "@ $config.config | %{if($_.stage -eq 'postReady'){$_.tasks += (ConvertFrom-Json -InputObject $jumboFrame)}} $config | ConvertTo-Json -Depth 6 | Out-File -encoding UTF8 $env:ProgramData/Amazon/EC2Launch/config/agent-config.yml

사용량

ec2launch get-agent-config [flags]

Flags

-h, --help

get-agent-config에 대한 도움말

-f, --format string

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

list-volumes

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

ec2launch list-volumes

사용량

ec2launch list-volumes

Flags

-h, --help

list-volumes에 대한 도움말

reset

이 태스크의 주요 목표는 에이전트가 다음에 실행될 때 에이전트를 재설정하는 것입니다. 이 목표를 위해 reset 명령은 로컬 EC2Launch 디렉터리에서 EC2Launch v2의 모든 에이전트 상태 데이터를 삭제합니다(EC2Launch v2 디렉터리 구조 단원 참조) 재설정할 경우 서비스 및 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

EC2Launch v2를 실행합니다.

ec2launch run

사용량

ec2launch run [flags]

Flags

-h, --help

run에 대한 도움말

status

EC2Launch v2 에이전트의 상태를 가져옵니다. 필요한 경우 에이전트가 완료될 때까지 프로세스를 차단합니다. 에이전트 상태는 프로세스 종료 코드에 따라 결정됩니다.

  • 0 – 에이전트가 실행되었고 성공했습니다.

  • 1 – 에이전트가 실행되었지만 실패했습니다.

  • 2 – 에이전트가 여전히 실행 중입니다.

  • 3 – 에이전트가 알 수 없는 상태입니다. 에이전트가 실행 중이 아니거나 중지된 상태입니다.

  • 4 – 에이전트 상태를 검색하는 동안 오류가 발생했습니다.

  • 5 – 에이전트가 실행 중이 아니며 마지막으로 알려진 실행 상태를 알 수 없습니다. 이는 다음 중 하나를 의미할 수 있습니다.

    • state.jsonprevious-state.json 모두 삭제되었습니다.

    • previous-state.json이 손상되었습니다.

    reset 명령을 실행한 후의 에이전트 상태입니다.

예:

ec2launch status -b

사용량

ec2launch status [flags]

Flags

-b,--block

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

-h,--help

status에 대한 도움말

sysprep

이 태스크의 주요 목표는 에이전트가 다음에 실행될 때 에이전트를 재설정하는 것입니다. 이를 위해 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 후에 인스턴스 종료

검증

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

ec2launch validate

사용량

ec2launch validate [flags]

Flags

-h , --help

validate에 대한 도움말

version

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

ec2launch version

사용량

ec2launch version [flags]

Flags

-h, --help

version에 대한 도움말

wallpaper

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

구문

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

입력

파라미터
--allowed-tags [tag-name-1, tag-name-n]

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

--attributes attribute-string-1, attribute-string-n

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

[--path | -p] path-string

(필수) wallpaper 배경 이미지 파일 경로를 지정합니다.

플래그
--all-tags

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

[--help | -h]

wallpaper 명령에 대한 도움말을 표시합니다.

EC2Launch v2 태스크 구성

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

스키마: agent-config.yml

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

문서 구조: agent-config.yml

JSON

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

YAML

version: 1.0 config: - stage: string tasks: - task: string inputs: ... ... ...

예: agent-config.yml

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

version: 1.0 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 - memory - network - stage: postReady tasks: - task: startSsm

스키마: 사용자 데이터

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

참고

작업은 사용자 데이터 작업 배열에 한 번만 나타나야 합니다.

문서 구조: 사용자 데이터

JSON

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

YAML

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

예: 사용자 데이터

사용자 데이터에 대한 자세한 내용은 Amazon EC2가 Windows 인스턴스의 사용자 데이터를 처리하는 방법 섹션을 참조하세요.

다음 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>
참고

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

변경 로그: 사용자 데이터

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

사용자 데이터 버전 Details 소개
1.1
  • 사용자 데이터 작업은 에이전트 구성 파일의 PostReady 단계 이전에 실행됩니다.

  • Systems Manager Agent를 시작하기 전에 사용자 데이터를 실행합니다(EC2Launch v1 및 EC2Config와 동일한 동작).*

EC2Launch v2 버전 2.0.1245
1.0
  • 사용 중지됩니다.

  • 사용자 데이터 작업은 에이전트 구성 파일의 PostReady 단계 이후에 실행됩니다. 이것은 EC2Launch v1과 하위 호환되지 않습니다.

  • Systems Manager Agent 시작 및 사용자 데이터 작업 간의 경합 상태에 영향을 받았습니다.

EC2Launch v2 버전 2.0.0

* 기본 agent-config.yml 파일과 함께 사용하는 경우.

태스크 정의

각 작업에는 일련의 자체 속성 및 요구 사항이 있습니다. 자세한 내용은 문서에 포함할 개별 작업을 참조하세요.

activateWindows

AWS KMS 서버 집합에 대해 Windows를 활성화합니다. 인스턴스가 기존 보유 라이선스 사용(BYOL)으로 감지되면 활성화를 건너뜁니다.

Frequency - once

AllowedStages - [PreReady]

Inputs -

activation: (맵)

type: (문자열) 사용할 활성화 유형, 으로 설정amazon

task: activateWindows inputs: activation: type: amazon

enableJumboFrames

네트워크 어댑터의 최대 전송 단위(MTU)를 늘리는 점보 프레임을 활성화합니다. 자세한 내용은 점보 프레임(9001 MTU) 섹션을 참조하세요.

Frequency — always

AllowedStages - [PostReady, UserData]

Inputs - none

task: enableJumboFrames

enableOpenSsh

Windows OpenSSH를 활성화하고 인스턴스의 퍼블릭 키를 인증된 키 폴더에 추가합니다.

Frequency - once

AllowedStages - [PreReady, UserData]

Inputs - none

다음 예에서는 인스턴스에서 OpenSSH를 활성화하고 인스턴스의 퍼블릭 키를 인증된 키 폴더에 추가하는 방법을 보여줍니다. 이 구성은 Windows Server 2019 이상 버전을 실행하는 인스턴스에서만 작동합니다.

task: enableOpenSsh

executeProgram

선택적 인수와 지정된 빈도를 사용하여 프로그램을 실행합니다.

단계: PreReady, PostReady, UserData 단계에서 executeProgram 작업을 실행할 수 있습니다.

주파수: 구성 가능, 입력 참조.

입력

다음과 같이 런타임 매개변수를 구성할 수 있습니다.

주파수(문자열)

(필수) 다음 값 중 정확히 하나를 지정할 수 있습니다.

  • once

  • always

경로(문자열)

(필수) 실행할 실행 파일 경로입니다.

인수(문자열 목록)

(선택 사항) 프로그램에 입력으로 제공할 쉼표로 구분된 인수 목록입니다.

runAs(문자열)

(필수) localSystem로 설정해야 합니다.

출력

모든 작업은 로그 파일 항목을 agent.log 파일에 기록합니다. executeProgram작업의 추가 출력은 다음과 같이 동적으로 이름이 지정된 폴더에 별도로 저장됩니다.

%LocalAppData%\Temp\EC2Launch#########\outputfilename.tmp

출력 파일의 정확한 경로가 agent.log 파일에 포함됩니다. 예를 들면 다음과 같습니다.

Program file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\ExecuteProgramInputs.tmp Output file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Output.tmp Error file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Err.tmp
executeProgram 작업의 출력 파일
ExecuteProgramInputs.tmp

실행 파일의 경로와 executeProgram 작업이 실행될 때 전달되는 모든 입력 매개 변수를 포함합니다.

Output.tmp

executeProgram 작업이 실행되는 프로그램의 런타임 출력을 포함합니다.

Err.tmp

executeProgram 작업이 실행되는 프로그램의 런타임 오류 메시지를 포함합니다.

예제

다음 예는 executeProgram 작업이 있는 인스턴스의 로컬 디렉터리에서 실행 파일을 실행하는 방법을 보여줍니다.

예 1: 한 인수로 실행 파일 설정

이 예에서는 설치 실행 파일을 자동 모드로 실행하는 executeProgram 작업을 보여줍니다.

task: executeProgram inputs: - frequency: always path: C:\Users\Administrator\Desktop\setup.exe arguments: ['-quiet']
예 2: 두 인수를 사용한 VLC 실행 파일

이 예에서는 입력 매개 변수로 전달된 두 인수를 사용하여 VLC 실행 파일을 실행하는 executeProgram 작업을 보여줍니다.

task: executeProgram inputs: - frequency: always path: C:\vlc-3.0.11-win64.exe arguments: ['/L=1033','/S'] runAs: localSystem

executeScript

선택적 인수와 지정된 빈도를 사용하여 스크립트를 실행합니다. 스크립트 동작은 에이전트가 스크립트를 실행하는 모드 (인라인 모드 또는 분리 모드)에 따라 달라집니다.

인라인(기본값)

EC2Launch v2 에이전트는 한 번에 하나씩(detach: false) 스크립트를 실행합니다. 이것이 기본 설정입니다.

참고

인라인 스크립트가 reset 또는 sysprep 명령을 내리면 해당 명령이 즉시 실행되고 에이전트가 재설정됩니다. 현재 태스크가 끝나면 에이전트가 추가 태스크를 실행하지 않고 종료됩니다.

예를 들어 명령을 실행하는 태스크 뒤에 startSsm 태스크(사용자 데이터 실행 후 기본적으로 포함됨)가 뒤따르는 경우 해당 태스크가 실행되지 않고 Systems Manager 서비스도 시작되지 않습니다.

분리됨

EC2Launch v2 에이전트는 다른 태스크(detach: true)와 동시에 스크립트를 실행합니다.

참고

분리된 스크립트가 reset 또는 sysprep 명령을 내리면 해당 명령은 실행되기 전에 에이전트가 완료될 때까지 기다립니다. ExecuteScript 이후의 태스크는 계속 실행됩니다.

단계: PreReady, PostReady, UserData 단계에서 executeScript 작업을 실행할 수 있습니다.

주파수: 구성 가능, 입력 참조.

입력

다음과 같이 런타임 매개변수를 구성할 수 있습니다.

주파수(문자열)

(필수) 다음 값 중 정확히 하나를 지정할 수 있습니다.

  • once

  • always

유형(문자열)

(필수) 다음 값 중 정확히 하나를 지정할 수 있습니다.

  • batch

  • powershell

인수(문자열 목록)

(선택 사항) 쉘에 전달할 문자열 인수 목록입니다. type: batch에는 이 매개변수가 지원되지 않습니다. 인수가 전달되지 않은 경우 EC2Launch v2는 기본적으로 -ExecutionPolicy Unrestricted 인수를 추가합니다.

내용(문자열)

(필수) 스크립트 콘텐츠.

runAs(문자열)

(필수) 다음 값 중 정확히 하나를 지정할 수 있습니다.

  • admin

  • localSystem

분리(부울)

(선택 사항) EC2Launch v2 에이전트는 기본적으로 스크립트를 한 번에 하나씩(detach: false) 실행합니다. 스크립트를 다른 작업과 동시에 실행하려면 값을 true(detach: true)로 설정합니다.

참고

스크립트 종료 코드(3010 포함)는 detachtrue로 설정되면 아무런 효과가 없습니다.

출력

모든 작업은 로그 파일 항목을 agent.log 파일에 기록합니다. executeScript 작업이 실행되는 스크립트의 추가 출력은 다음과 같이 동적으로 이름이 지정된 폴더에 별도로 저장됩니다.

%LocalAppData%\Temp\EC2Launch#########\outputfilename.ext

출력 파일의 정확한 경로가 agent.log 파일에 포함됩니다. 예를 들면 다음과 같습니다.

Program file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\UserScript.ps1 Output file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Output.tmp Error file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Err.tmp
executeScript 작업의 출력 파일
UserScript.ext

executeScript 작업이 실행한 스크립트를 포함합니다. 파일 확장자는 다음과 같이 executeScript 태스크의 type 파라미터에 지정한 스크립트 유형에 따라 달라집니다.

  • 유형이 batch인 경우 파일 확장자는 .bat입니다.

  • 유형이 powershell인 경우 파일 확장자는 .ps1입니다.

Output.tmp

executeScript 작업이 실행하는 스크립트의 런타임 출력을 포함합니다.

Err.tmp

executeScript 작업이 실행하는 스크립트의 런타임 오류 메시지를 포함합니다.

예제

다음 예에서는 executeScript 작업에서 인라인 스크립트를 실행하는 방법을 보여줍니다.

예 1: Hello world 출력 텍스트 파일

이 예에서는 PowerShell 스크립트를 실행하여 C: 드라이브에 “Hello world” 텍스트 파일을 만드는 executeScript 작업을 보여줍니다.

task: executeScript inputs: - frequency: always type: powershell runAs: admin content: |- New-Item -Path 'C:\PowerShellTest.txt' -ItemType File Set-Content 'C:\PowerShellTest.txt' "Hello world"
예 2: 두 스크립트 실행

이 예에서는 executeScript 작업이 둘 이상의 스크립트를 실행할 수 있으며 스크립트 유형이 반드시 일치할 필요는 없음을 보여줍니다.

첫 번째 스크립트(type: powershell)는 현재 인스턴스에서 실행 중인 프로세스의 요약을 C: 드라이브에 있는 텍스트 파일에 기록합니다.

두 번째 스크립트(batch)는 시스템 정보를 Output.tmp 파일에 기록합니다.

task: executeScript inputs: - frequency: always type: powershell content: | Get-Process | Out-File -FilePath C:\Process.txt runAs: localSystem - frequency: always type: batch content: | systeminfo
예 3: 재부팅을 통한 멱등성 시스템 구성

이 예에서는 멱등성 스크립트 실행을 통해 각 단계 사이에 재부팅하여 다음 시스템 구성을 수행하는 executeScript 작업을 보여 줍니다.

  • 컴퓨터 이름을 변경합니다.

  • 도메인에 컴퓨터를 결합합니다.

  • Telnet을 활성화합니다.

스크립트는 각 작업이 한 번만 실행되도록 합니다. 이렇게 하면 재부팅 루프가 방지되고 스크립트가 멱등성을 갖습니다.

task: executeScript inputs: - frequency: always type: powershell runAs: localSystem content: |- $name = $env:ComputerName if ($name -ne $desiredName) { Rename-Computer -NewName $desiredName exit 3010 } $domain = Get-ADDomain if ($domain -ne $desiredDomain) { Add-Computer -DomainName $desiredDomain exit 3010 } $telnet = Get-WindowsFeature -Name Telnet-Client if (-not $telnet.Installed) { Install-WindowsFeature -Name "Telnet-Client" exit 3010 }

extendRootPartition

루트 볼륨을 확장하여 디스크에서 사용 가능한 공간을 모두 사용합니다.

Frequency - once

AllowedStages - [Boot]

Inputs - none

task: extendRootPartition

initializeVolume

인스턴스에 연결된 빈 볼륨을 활성화 및 분할되도록 초기화합니다. 시작 에이전트에서는 볼륨이 비어 있지 않은 것이 감지되면 초기화를 건너뜁니다. 볼륨의 처음 4KiB가 비어 있거나 볼륨에 Windows에서 인식 가능한 드라이브 레이아웃이 없으면 볼륨이 비어 있는 것으로 간주합니다.

letter 입력 파라미터는 드라이브가 이미 초기화되었는지 여부와 관계없이 이 태스크를 실행할 때 항상 적용됩니다.

initializeVolume에서는 다음과 같은 작업을 수행합니다.

  • 디스크의 offlinereadonly 속성을 false로 설정합니다.

  • 파티션을 생성합니다. partition 입력 파라미터에 파티션 유형이 지정되지 않으면 다음과 같은 기본값이 적용됩니다.

    • 디스크 크기가 2TB 미만이면 파티션 유형을 mbr로 설정합니다.

    • 디스크 크기가 2TB 이상이면 파티션 유형을 gpt로 설정합니다.

  • 볼륨 형식을 NTFS로 지정합니다.

  • 볼륨 레이블을 다음과 같이 설정합니다.

    • name 입력 파라미터의 값을 사용합니다(지정된 경우).

    • 임시 볼륨이고 지정된 이름이 없으면 볼륨 레이블을 Temporary Storage Z로 설정합니다.

  • 임시 볼륨(Amazon EBS가 아닌 SSD 또는 HDD)이면 다음과 같은 내용으로 볼륨 루트에 Important.txt 파일을 생성합니다.

    This is an 'Instance Store' disk and is provided at no additional charge. *This disk offers increased performance since it is local to the host *The number of Instance Store disks available to an instance vary by instance type *DATA ON THIS DRIVE WILL BE LOST IN CASES OF IMPAIRMENT OR STOPPING THE INSTANCE. PLEASE ENSURE THAT ANY IMPORTANT DATA IS BACKED UP FREQUENTLY For more information, please refer to: Amazon EC2 인스턴스 스토어.
  • 드라이브 문자를 letter 입력 파라미터에 지정된 값으로 설정합니다.

스테이지: PostReadyUserData 스테이지 동안 initializeVolume 태스크를 실행할 수 있습니다.

빈도: 항상입니다.

입력

다음과 같이 런타임 매개변수를 구성할 수 있습니다.

디바이스(맵 목록)

(조건부) 시작 에이전트에서 초기화하는 각 디바이스의 구성입니다. initialize 입력 파라미터가 devices로 설정되는 경우에 필요합니다.

  • 디바이스(문자열, 필수 사항) – 인스턴스 생성 중 디바이스를 식별합니다. 예: xvdb, xvdf 또는 \dev\nvme0n1.

  • 문자(문자열, 선택 사항) – 1자입니다. 할당할 드라이브 문자입니다.

  • 이름(문자열, 선택 사항) - 할당할 볼륨 이름입니다.

  • 파티션(문자열, 선택 사항) - 생성할 파티션 유형에 다음과 같은 값 중 하나를 지정하거나 볼륨 크기에 따라 시작 에이전트에서 기본값을 설정하도록 합니다.

    • mbr

    • gpt

초기화(문자열)

(필수) 다음 값 중 정확히 하나를 지정할 수 있습니다.

  • all

  • devices

예제

다음 예에서는 initializeVolume 태스크의 샘플 입력 구성을 보여줍니다.

예 1: 인스턴스에 대한 2개 볼륨 초기화

이 예에서는 인스턴스에 대한 2개의 보조 볼륨을 초기화하는 initializeVolume 태스크를 보여줍니다. 예에서 이름이 DataVolume2인 디바이스는 임시 디바이스입니다.

task: initializeVolume inputs: initialize: devices devices: - device: xvdb name: DataVolume1 letter: D partition: mbr - device: /dev/nvme0n1 name: DataVolume2 letter: E partition: gpt
예 2: 인스턴스에 연결된 EBS 볼륨 초기화

이 예에서는 인스턴스에 연결된 모든 빈 EBS 볼륨을 초기화하는 initializeVolume 태스크를 보여줍니다.

task: initializeVolume inputs: initialize: all

optimizeEna

현재 인스턴스 유형에 따라 ENA 설정을 최적화합니다. 인스턴스를 재부팅할 수 있습니다.

Frequency — always

AllowedStages - [PostReady, UserData]

Inputs - none

task: optimizeEna

setAdminAccount

로컬 시스템에 생성된 기본 관리자 계정의 속성을 설정합니다.

Frequency - once

AllowedStages - [PreReady]

Inputs -

name: (문자열) 관리자 계정의 이름

password: (맵)

type: (문자열) 암호 설정 전략. static, random 또는 doNothing

data: (문자열) type 필드가 정적인 경우 데이터 저장

task: setAdminAccount inputs: name: Administrator password: type: random

setDnsSuffix

검색 접미사 목록에 DNS 접미사를 추가합니다. 아직 존재하지 않는 접미사만 목록에 추가됩니다. 시작 에이전트가 DNS 접미사를 설정하는 방법에 대한 자세한 내용은 Windows 시작 에이전트용 DNS 접미사 구성 섹션을 참조하세요.

Frequency — always

AllowedStages - [PreReady]

Inputs -

suffixes: (문자열 목록) 하나 이상의 유효한 DNS 접미사 목록. 유효한 대체 변수는 $REGION$AZ

task: setDnsSuffix inputs: suffixes: - $REGION.ec2-utilities.amazonaws.com

setHostName

컴퓨터의 호스트 이름을 사용자 지정 문자열, 또는 hostName이 지정되지 않은 경우 프라이빗 IPv4 주소로 설정합니다.

Frequency — always

AllowedStages - [PostReady, UserData]

Inputs -

hostName: (문자열) 선택적 호스트 이름입니다. 이 이름은 다음과 같은 형식이어야 합니다.

  • 15자 이하여야 합니다.

  • 영숫자(a-z, A-Z, 0-9) 및 하이픈(-) 문자만 포함해야 합니다.

  • 전체가 숫자 문자로 구성되어서는 안 됩니다.

reboot: (부울) 호스트 이름이 변경될 때 재부팅이 허용되는지 여부를 나타냅니다.

task: setHostName inputs: reboot: true

setWallpaper

setwallpaper.lnk를 제외한 각 기존 사용자의 시작 폴더에 Default User 바로 가기 파일을 생성합니다. 이 바로 가기 파일은 사용자가 인스턴스를 부팅한 후 처음으로 로그인할 때 실행됩니다. 이 파일은 인스턴스 속성을 표시하는 사용자 지정 월페이퍼를 사용해 인스턴스를 설정합니다.

바로 가기 파일 경로는 다음과 같습니다.

$env:SystemDrive/Users/<user>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/setwallpaper.lnk
참고

setWallpaper 태스크를 제거해도 이 바로 가기 파일은 삭제되지 않습니다. 자세한 내용은 setWallpaper 태스크를 사용하지 않지만 재부팅 시 월페이퍼 재설정 단원을 참조하십시오.

스테이지: PreReadyUserData 스테이지 중에 배경화면을 구성할 수 있습니다.

빈도: always

월페이퍼 구성

다음 설정을 사용하여 월페이퍼를 구성할 수 있습니다.

입력

제공하는 입력 파라미터와 월페이퍼를 구성하기 위해 설정할 수 있는 속성:

속성(문자열 목록)

(선택 사항) 월페이퍼에 다음 속성 중 하나 이상을 추가할 수 있습니다.

  • architecture

  • availabilityZone

  • hostName

  • instanceId

  • instanceSize

  • memory

  • network

  • privateIpAddress

  • publicIpAddress

instanceTags

(선택 사항) 이 설정에 대해 다음 옵션 중 정확히 하나를 사용할 수 있습니다.

  • AllTags(문자열) - 월페이퍼에 모든 인스턴스 태그를 추가합니다.

    instanceTags: AllTags
  • instanceTags(문자열 목록) – 월페이퍼에 추가할 인스턴스 태그 이름의 목록을 지정합니다. 예:

    instanceTags: - Tag 1 - Tag 2
경로(문자열)

(필수) 월페이퍼 이미지에 사용할 로컬.jpg 형식 이미지 파일의 파일 이름 경로입니다.

다음 예제에서는 Tag 1Tag 2라는 인스턴스 태그와 함께 월페이퍼 배경 이미지의 파일 경로를 설정하는 월페이퍼 구성 입력과 인스턴스의 호스트 이름, 인스턴스 ID, 프라이빗 및 퍼블릭 IP 주소를 포함하는 속성을 보여줍니다.

task: setWallpaper inputs: path: C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg attributes: - hostName - instanceId - privateIpAddress - publicIpAddress instanceTags: - Tag 1 - Tag 2
참고

월페이퍼에 태그를 표시하려면 메타데이터에서 태그를 활성화해야 합니다. 인스턴스 태그 및 메타데이터에 대한 자세한 내용은 인스턴스 메타데이터의 인스턴스 태그 작업 섹션을 참조하세요.

startSsm

Sysprep 이후에 Systems Manager(SSM) 서비스를 시작합니다.

Frequency — always

AllowedStages - [PostReady, UserData]

Inputs - none

task: startSsm

sysprep

서비스 상태를 재설정하고, unattend.xml을 업데이트하고, RDP를 비활성화하고, Sysprep을 실행합니다. 이 태스크는 다른 모든 태스크가 완료된 후에만 실행됩니다.

Frequency - once

AllowedStages - [UserData]

Inputs -

clean: (부울) Sysprep을 실행하기 전에 인스턴스 로그 정리

shutdown: (부울) Sysprep을 실행 한 후 인스턴스 종료

task: sysprep inputs: clean: true shutdown: true

writeFile

대상에 파일을 씁니다.

Frequency - Inputs 참조

AllowedStages - [PostReady, UserData]

Inputs -

frequency: (문자열) once 또는 always 중 하나

destination: (문자열) 콘텐츠를 쓸 경로

content: (문자열) 대상에 쓸 텍스트

task: writeFile inputs: - frequency: once destination: C:\Users\Administrator\Desktop\booted.txt content: Windows Has Booted

EC2Launch v2 종료 코드 및 재부팅

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

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

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

EC2Launch v2 및 Sysprep

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

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