

# EC2Launch와 함께 Windows Sysprep을 사용하여 AMI 생성
<a name="ec2launch-sysprep"></a>

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

EC2Launch는 AMI에서 이미지 준비 프로세스를 자동화하고 보호하는 기본 응답 파일과 배치 파일을 Windows Sysrep에 제공합니다. 이 파일을 수정하는 것은 선택 사항입니다. 이 파일은 기본적으로 `C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep` 디렉터리에 있습니다.

**중요**  
Windows Sysprep을 사용하여 인스턴스 백업을 생성하지 마세요. Windows Sysprep은 시스템에 특정한 정보를 제거합니다. 이 정보를 제거하면 인스턴스 백업에서 의도하지 않은 결과가 발생할 수 있습니다.

**Topics**
+ [Windows Sysprep에 대한 EC2Launch 응답 및 배치 파일](#ec2launch-sysprep-answer-batch)
+ [EC2Launch와 함께 Windows Sysprep 실행](#ec2launch-sysprep-running)
+ [사용자 지정 AMI 시작 시 Server 2016 이후에 대한 메타데이터/KMS 경로 업데이트](#update-metadata-KMS)

## Windows Sysprep에 대한 EC2Launch 응답 및 배치 파일
<a name="ec2launch-sysprep-answer-batch"></a>

Windows Sysprep에 대한 EC2Launch 응답 파일과 배치 파일에는 다음 내용이 포함됩니다.

`Unattend.xml`  
이 파일은 기본 응답 파일입니다. `SysprepInstance.ps1`을 실행하거나 사용자 인터페이스에서 **ShutdownWithSysprep**을 선택하는 경우 시스템이 이 파일에서 설정을 읽습니다.

`BeforeSysprep.cmd`  
EC2Launch가 Windows Sysprep을 실행하기 전에 이 배치 파일이 명령을 실행하도록 사용자 지정합니다.

`SysprepSpecialize.cmd`  
Windows Sysprep 특수화 단계 중에 명령을 실행하려면 이 배치 파일을 사용자 지정합니다.

## EC2Launch와 함께 Windows Sysprep 실행
<a name="ec2launch-sysprep-running"></a>

데스크톱 환경에서 Windows Server 2016 이후를 전체 설치할 때 **EC2 Launch Settings** 애플리케이션을 사용하여 EC2Launch와 함께 Windows Sysprep을 수동으로 실행할 수 있습니다.

**EC2Launch Settings 애플리케이션을 사용하여 Windows Sysprep 실행**

1. Amazon EC2 콘솔에서 Windows Server 2016 이후 AMI를 찾거나 생성합니다.

1. AMI에서 Windows 인스턴스를 시작합니다.

1. Windows 인스턴스에 연결하고 인스턴스를 사용자 지정합니다.

1. **EC2LaunchSettings** 애플리케이션을 검색하여 실행합니다. 기본적으로 `C:\ProgramData\Amazon\EC2-Windows\Launch\Settings` 디렉터리에 위치합니다.  
![\[EC2 Launch Settings 애플리케이션\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/ec2launch-sysprep.png)

1. 필요에 따라 옵션을 선택하거나 취소합니다. 이러한 설정은 `LaunchConfig.json` 파일에 저장되어 있습니다.

1. **Administrator 암호**에서 다음 중 하나를 수행합니다.
   + **임의(Random)**를 선택합니다. EC2Launch는 암호를 생성하고 사용자의 키를 사용하여 암호를 암호화합니다. 인스턴스가 재부팅 또는 중지되었다가 시작된 경우 이 암호가 그대로 유지되도록 시스템은 인스턴스가 시작된 후 이 설정을 비활성화합니다.
   + **지정(Specify)**을 선택하고 시스템 요구 사항을 충족하는 암호를 입력합니다. 암호는 `LaunchConfig.json`에 일반 텍스트로 저장되며 Windows Sysprep에서 관리자 암호를 설정한 후에 삭제됩니다. 지금 종료하면 암호는 지금 바로 설정됩니다. EC2Launch는 사용자의 키를 사용하여 암호를 암호화합니다.
   + **DoNothing**을 선택하고 `unattend.xml` 파일에 암호를 지정합니다. `unattend.xml`에 암호를 지정하지 않으면 관리자 계정이 비활성화됩니다.

1. **Sysprep을 이용해 종료(Shutdown with Sysprep)**를 선택합니다.

**EC2Launch를 사용하여 Windows Sysprep을 수동으로 실행**

1. Amazon EC2 콘솔에서 복제하려는 Windows Server 2016 이후 Datacenter 에디션 AMI를 찾거나 만듭니다.

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

1. 인스턴스를 사용자 지정합니다.

1. `LaunchConfig.json` 파일에서 설정을 지정합니다. 이 파일은 기본적으로 `C:\ProgramData\Amazon\EC2-Windows\Launch\Config` 디렉터리에 위치합니다.

   `adminPasswordType`에 대해 다음 값 중 하나를 지정할 수 있습니다.  
`Random`  
EC2Launch는 암호를 생성하고 사용자의 키를 사용하여 암호를 암호화합니다. 인스턴스가 재부팅 또는 중지되었다가 시작된 경우 이 암호가 그대로 유지되도록 시스템은 인스턴스가 시작된 후 이 설정을 비활성화합니다.  
`Specify`  
`adminPassword`에 지정한 암호가 EC2Launch에 사용됩니다. 암호가 시스템 요구 사항에 맞지 않으면 EC2Launch에서 임의의 암호를 대신 생성합니다. 암호는 `LaunchConfig.json`에 일반 텍스트로 저장되며 Windows Sysprep에서 관리자 암호를 설정한 후에 삭제됩니다. EC2Launch는 사용자의 키를 사용하여 암호를 암호화합니다.  
`DoNothing`  
`unattend.xml` 파일에 지정한 암호가 EC2Launch에 사용됩니다. `unattend.xml`에 암호를 지정하지 않으면 관리자 계정이 비활성화됩니다.

1. (선택 사항) `unattend.xml` 및 기타 구성 파일에서 설정을 지정합니다. 설치에 참가하려는 경우 이 파일을 변경할 필요가 없습니다. 파일은 기본적으로 `C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep` 디렉터리에 위치합니다.

1. Windows PowerShell에서 `./InitializeInstance.ps1 -Schedule`을 실행합니다. 스크립트는 기본적으로 `C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts` 디렉터리에 위치합니다. 이 스크립트는 다음 부팅 중에 초기화하도록 인스턴스를 예약합니다. 다음 단계에서 `SysprepInstance.ps1` 스크립트를 실행하기 전에 이 스크립트를 실행해야 합니다.

1. Windows PowerShell에서 `./SysprepInstance.ps1`을 실행합니다. 스크립트는 기본적으로 `C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts` 디렉터리에 위치합니다.

인스턴스에서 로그오프되고 인스턴스가 종료됩니다. Amazon EC2 콘솔에서 [**인스턴스(Instances)**] 페이지를 보면 인스턴스 상태가 [`Running`]에서 [`Stopping`]으로 바뀐 다음 [`Stopped`]로 바뀌는 것을 확인할 수 있습니다. 이 시점에서는 이 인스턴스에서 안전하게 AMI를 생성할 수 있습니다.

## 사용자 지정 AMI 시작 시 Server 2016 이후에 대한 메타데이터/KMS 경로 업데이트
<a name="update-metadata-KMS"></a>

사용자 지정 AMI를 시작할 때 Server 2016 이후에 대한 메타데이터/KMS 경로를 업데이트하려면 다음과 같이 하세요.
+ EC2LaunchSettings GUI(C:\$1ProgramData\$1Amazon\$1EC2-Windows\$1Launch\$1Settings\$1Ec2LaunchSettings.exe)를 실행하고 Windows Sysprep을 사용하여 종료하는 옵션을 선택합니다.
+ EC2LaunchSettings를 실행하고 Windows Sysprep 없이 종료한 다음 AMI를 생성합니다. 그러면 다음번 부팅할 때 EC2 시작 초기화 작업을 실행하도록 설정되며, 해당 인스턴스의 서브넷을 토대로 경로가 설정됩니다.
+ [PowerShell](ec2launch-config.md#ec2launch-inittasks)에서 AMI를 생성하기 전에 EC2 시작 초기화 작업을 수동으로 다시 예약합니다.
**중요**  
작업을 다시 예약하기 전에 기본 암호 재설정 동작을 적어 두세요.
+ Windows 정품 인증 또는 인스턴스 메타데이터 오류와의 통신이 발생하는 실행 중인 인스턴스에서 경로를 업데이트하려면 [“Windows를 정품 인증할 수 없음”](common-messages.md#activate-windows)을 참조하세요.