EC2Launch v2와 함께 Windows Sysprep을 사용하여 AMI 생성 - Amazon Elastic Compute Cloud

EC2Launch v2와 함께 Windows Sysprep을 사용하여 AMI 생성

EC2Launch v2 에이전트가 설치된 인스턴스에서 이미지를 생성하면 이미지가 준비될 때 EC2Launch v2가 특정 작업을 수행합니다. 여기에는 Windows Sysprep 작업이 포함됩니다. 자세한 내용은 Windows Sysprep 단계 섹션을 참조하세요.

Windows Sysprep 작업

Windows Sysprep과 EC2Launch v2는 이미지를 준비할 때 다음 작업을 수행합니다.

  1. EC2Launch 설정(EC2Launch settings) 대화 상자에서 Sysprep을 이용해 종료(Shutdown with Sysprep)를 선택하면 시스템은 ec2launch sysprep 명령을 실행합니다.

  2. EC2Launch v2는 unattend.xml에서 레지스트리 값을 읽어 HKEY_USERS\.DEFAULT\Control Panel\International\LocaleName 파일의 내용을 편집합니다. 이 파일은 C:\ProgramData\Amazon\EC2Launch\sysprep 디렉터리에 있습니다.

  3. 시스템이 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가 연결을 허용하고 관리자 암호가 비어 있는 짧은 시간이 있기 때문입니다.

  4. 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 단계

  1. 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

  2. 시스템이 EC2Launch v2를 실행합니다.

Sysprep 이후

Windows Sysprep이 완료된 후 EC2Launch v2는 콘솔에 다음 메시지를 출력합니다.

Windows sysprep configuration complete.

그 다음에 EC2Launch v2는 다음 작업을 수행합니다.

  1. agent-config.yml 파일의 내용을 읽고 구성된 작업을 실행합니다.

  2. preReady 스테이지의 모든 작업을 실행합니다.

  3. 실행이 완료된 후에는 Windows is ready라는 메시지를 인스턴스 시스템 로그에 전송합니다.

  4. PostReady 스테이지의 모든 작업을 실행합니다.

EC2Launch v2에 대한 자세한 내용은 EC2Launch v2 에이전트를 사용하여 EC2 Windows 인스턴스 시작 중 태스크 수행 섹션을 참조하세요.

EC2Launch v2와 함께 Windows Sysprep 실행

Windows Sysprep과 EC2Launch v2를 이용해 표준화된 AMI를 생성하려면 다음 절차를 수행하세요.

  1. Amazon EC2 콘솔에서 복제하려는 AMI를 찾습니다.

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

  3. 사용자 지정 설정

    1. Windows 시작 메뉴에서 Amazon EC2Launch 설정(Amazon EC2Launch settings)을 검색하고 선택합니다. Amazon EC2Launch 설정(EC2Launch settings) 대화 상자의 옵션 및 설정에 대한 자세한 내용은 Windows 인스턴스에 대한 EC2Launch v2 설정 구성 단원을 참조하세요.

    2. 변경 사항이 있는 경우 종료하기 전에 저장을 선택합니다.

  4. 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