EC2Launch v2와 함께 Windows Sysprep을 사용하여 AMI 생성
EC2Launch v2 에이전트가 설치된 인스턴스에서 이미지를 생성하면 이미지가 준비될 때 EC2Launch v2가 특정 작업을 수행합니다. 여기에는 Windows Sysprep 작업이 포함됩니다. 자세한 내용은 Windows Sysprep 단계 섹션을 참조하세요.
Windows Sysprep 작업
Windows Sysprep과 EC2Launch v2는 이미지를 준비할 때 다음 작업을 수행합니다.
-
EC2Launch 설정(EC2Launch settings) 대화 상자에서 Sysprep을 이용해 종료(Shutdown with Sysprep)를 선택하면 시스템은
ec2launch sysprep
명령을 실행합니다. -
EC2Launch v2는
unattend.xml
에서 레지스트리 값을 읽어HKEY_USERS\.DEFAULT\Control Panel\International\LocaleName
파일의 내용을 편집합니다. 이 파일은C:\ProgramData\Amazon\EC2Launch\sysprep
디렉터리에 있습니다. -
시스템이
BeforeSysprep.cmd
를 실행합니다. 이 명령은 다음과 같은 레지스트리 키를 생성합니다.reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
레지스트리 키는 RDP 연결이 다시 활성화될 때까지 RDP 연결을 비활성화합니다. RDP 연결을 비활성화하는 것은 필수적인 보안 조치입니다. 왜냐하면 Windows Sysprep이 실행된 이후 첫 번째 부팅 세션 동안 RDP가 연결을 허용하고 관리자 암호가 비어 있는 짧은 시간이 있기 때문입니다.
-
EC2Launch v2 서비스는 다음 명령을 실행하여 Windows Sysprep을 호출합니다.
sysprep.exe /oobe /generalize /shutdown /unattend: "C:\ProgramData\Amazon\EC2Launch\sysprep\unattend.xml"
일반화 단계
-
EC2Launch v2는 컴퓨터 이름과 SID 같은 이미지 고유 정보 및 설정을 삭제합니다. 인스턴스가 도메인의 멤버인 경우에는 도메인에서 삭제됩니다.
unattend.xml
응답 파일은 이 단계에 영향을 미치는 다음의 설정을 포함합니다.-
PersistAllDeviceInstalls: 이 설정은 Windows 설치로 하여금 장치를 제거하고 재구성하지 못하도록 함으로써 이미지 준비 과정을 가속화하는데, 이는 Amazon AMI는 특정 드라이버가 실행되는 것을 요구하고 그 드라이버들을 재검색하는 데 시간이 걸리기 때문입니다.
-
DoNotCleanUpNonPresentDevices: 이 설정은 현재 존재하지 않는 장비들에 대한 플러그-앤-플레이 정보를 담고 있습니다.
-
-
Windows Sysprep은 AMI를 생성하기 위한 준비를 하는 과정에서 OS를 종료합니다. 시스템은 새 인스턴스를 시작하거나 원본 인스턴스를 시작합니다.
특수화 단계
시스템은 컴퓨터 이름과 SID와 같은 OS 특정 요건을 생성합니다. 시스템은 또한 unattend.xml
응답 파일에 지정된 구성에 기반을 두어 다음 작업을 수행합니다.
-
CopyProfile: Windows Sysprep을 구성해 내장된 관리자 프로파일을 비롯한 모든 사용자 프로파일을 삭제할 수 있습니다. 이 설정은 내장된 관리자 계정을 보유하고 있어서 계정에 대한 어떤 사용자 지정도 새 이미지로 전달됩니다. 기본 값은
True
입니다.CopyProfile은 기본 프로파일을 기존의 로컬 관리자 프로파일로 바꿉니다. Windows Sysprep를 실행한 후 로그인한 모든 계정은 첫 로그인 시 해당 프로파일 및 콘텐츠의 사본을 받게 됩니다.
새 이미지로 전달하고자 하는 사용자 프로파일에 대한 특정한 사용자 지정이 없다면 이 설정을
False
로 변경하세요. Windows Sysprep은 모든 사용자 프로파일을 삭제하며, 이를 통해 시간과 디스크 공간을 절약합니다. -
TimeZone: 표준 시간대는 UTC(협정 세계시)로 기본 설정되어 있습니다.
-
Synchronous command with order 1: 시스템은 다음 명령을 실행하여 관리자 계정을 활성화하고 암호 요건을 지정합니다.
net user Administrator /ACTIVE:YES /LOGONPASSWORDCHG:NO /EXPIRES:NEVER /PASSWORDREQ:YES
-
Synchronous command with order 2: 시스템은 관리자 암호를 암호화합니다. 이 보안 조치는
setAdminAccount
작업을 구성하지 않으면 Windows Sysprep이 완료된 후 인스턴스에 액세스할 수 없도록 설계되어 있습니다.시스템은 로컬 시작 에이전트 디렉터리(
C:\Program Files\Amazon\EC2Launch\
)에서 다음 명령을 실행합니다.EC2Launch.exe internal randomize-password --username Administrator
-
원격 데스크톱 연결을 활성화하기 위해 시스템은 터미널 서버
fDenyTSConnections
레지스트리 키를 false로 설정합니다.
OOBE 단계
-
EC2Launch v2 응답 파일을 사용하여 다음과 같은 구성을 지정합니다.
-
<InputLocale>en-US</InputLocale>
-
<SystemLocale>en-US</SystemLocale>
-
<UILanguage>en-US</UILanguage>
-
<UserLocale>en-US</UserLocale>
-
<HideEULAPage>true</HideEULAPage>
-
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
-
<ProtectYourPC>3</ProtectYourPC>
-
<BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>
-
<TimeZone>UTC</TimeZone>
-
<RegisteredOrganization>Amazon.com</RegisteredOrganization>
-
<RegisteredOwner>EC2</RegisteredOwner>
참고
일반화 및 특수화 단계에서 EC2Launch v2는 OS의 상태를 모니터링합니다. EC2Launch v2는 OS가 Sysprep 단계에 있다는 것을 탐지하면 시스템 로그에 다음 메시지를 출력합니다.
Windows is being configured. SysprepState=IMAGE_STATE_UNDEPLOYABLE
-
-
시스템이 EC2Launch v2를 실행합니다.
Sysprep 이후
Windows Sysprep이 완료된 후 EC2Launch v2는 콘솔에 다음 메시지를 출력합니다.
Windows sysprep configuration complete.
그 다음에 EC2Launch v2는 다음 작업을 수행합니다.
-
agent-config.yml
파일의 내용을 읽고 구성된 작업을 실행합니다. -
preReady
스테이지의 모든 작업을 실행합니다. -
실행이 완료된 후에는
Windows is ready
라는 메시지를 인스턴스 시스템 로그에 전송합니다. -
PostReady
스테이지의 모든 작업을 실행합니다.
EC2Launch v2에 대한 자세한 내용은 EC2Launch v2 에이전트를 사용하여 EC2 Windows 인스턴스 시작 중 태스크 수행 섹션을 참조하세요.
EC2Launch v2와 함께 Windows Sysprep 실행
Windows Sysprep과 EC2Launch v2를 이용해 표준화된 AMI를 생성하려면 다음 절차를 수행하세요.
-
Amazon EC2 콘솔에서 복제하려는 AMI를 찾습니다.
-
실행을 시작해서 Windows 인스턴스에 연결합니다.
-
사용자 지정 설정
-
Windows 시작 메뉴에서 Amazon EC2Launch 설정(Amazon EC2Launch settings)을 검색하고 선택합니다. Amazon EC2Launch 설정(EC2Launch settings) 대화 상자의 옵션 및 설정에 대한 자세한 내용은 Windows 인스턴스에 대한 EC2Launch v2 설정 구성 단원을 참조하세요.
-
변경 사항이 있는 경우 종료하기 전에 저장을 선택합니다.
-
-
Sysprep을 이용해 종료 또는 Sysprep을 이용하지 않고 종료를 선택합니다.
Windows Sysprep 실행 및 인스턴스 종료 여부 확인 요청을 받을 때 예를 클릭합니다. EC2Launch v2는 Windows Sysprep을 실행합니다. 그런 다음 인스턴스에서 로그오프되고 인스턴스가 종료됩니다. Amazon EC2 콘솔에서 [인스턴스(Instances)] 페이지를 보면 인스턴스 상태가 [Running
]에서 [Stopping
]으로 바뀐 다음 다시 [Stopped
]로 바뀌는 것을 확인할 수 있습니다. 이 지점에서는 안전하게 현재 인스턴스에서 AMI를 생성할 수 있습니다.
다음 명령을 사용해서 명령줄에서 Windows Sysprep 도구를 수동으로 호출할 수 있습니다.
"%programfiles%\amazon\ec2launch\ec2launch.exe" sysprep --shutdown=true