

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 가상화 환경에서 VM을 내보내기 위한 구성
<a name="prepare-vm-image"></a>

VM을 Amazon EC2에 가져오기 전에, 가상화 환경에서 VM을 내보내야 합니다. VM을 내보내기 전에 다음 지침에 따라 VM을 구성합니다.

**Topics**
+ [일반 구성](#prepare-vm-image-general)
+ [Linux/Unix 구성](#prepare-vm-image-linux)
+ [Windows 구성](#prepare-vm-image-windows)

## 일반 구성
<a name="prepare-vm-image-general"></a>

가상화 환경에서 VM을 내보내기 전에 VM에서 다음을 구성해야 합니다. 또한 추가 필수 구성을 위하여 운영 체제에 따라 섹션을 검토해야 합니다.
+ VM상에 안티바이러스나 침입 탐지 소프트웨어가 있다면 모두 비활성화합니다. 이들 서비스는 가져오기 작업이 완료된 후에 다시 사용 설정할 수 있습니다.
+ VMware VM에서 VMware Tools를 제거합니다.
+ CD-ROM 드라이브를 모두 제거합니다(가상 및 물리 드라이브).
+ 소스 VM에 동작하는 DHCP 클라이언트 서비스가 있어야 합니다. 서비스가 시작할 수 있고 관리상 비활성화되지 않아야 합니다. 현재 소스 VM에 할당된 모든 정적 IP 주소는 가져오기 도중에 제거됩니다. 가져온 인스턴스가 Amazon VPC에서 실행될 때 서브넷의 IPv4 주소 범위에서 기본 프라이빗 IP 주소를 받습니다. 인스턴스 시작 시 사용자가 기본 프라이빗 IP 주소를 지정하지 않으면 사용자 서브넷 IPv4 범위 내의 IP 주소가 할당됩니다. 자세한 내용은 [VPC 및 서브넷 크기 조정](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#VPC_Sizing)을 참조하세요.

## Linux/Unix 구성
<a name="prepare-vm-image-linux"></a>

가상화 환경에서 Linux VM을 내보내기 전에 Linux VM에서 다음을 구성해야 합니다. 이 섹션에서는 이미 [일반 구성](#prepare-vm-image-general) 섹션을 검토했음을 가정합니다.
+ 원격 액세스를 위한 Secure Shell(SSH)을 사용 설정합니다.
+ 호스트 방화벽(Linux **iptables** 등)을 구성하여 사용하는 경우, SSH 액세스가 허용되었는지 확인합니다. 그렇지 않으면 가져오기가 완료된 후 인스턴스에 액세스할 수 없습니다.
+ 구성을 확인하여 인스턴스 가져오기를 마친 후에 비 루트 사용자에게 퍼블릭 키 기반의 SSH를 통한 인스턴스 액세스를 허용하도록 설정합니다. 암호 기반 SSH와 SSH 루트 로그인을 동시에 사용하는 것도 가능하지만 권장되지는 않습니다. 퍼블릭 키와 비 루트 사용자를 함께 사용하는 편이 보안면에서 낫기 때문에 이 방법을 추천합니다. VM Import에서는 가져오기 프로세스에서 `ec2-user` 계정을 구성하지 않습니다.
+ Linux VM에서 GRUB(GRUB legacy) 또는 GRUB 2를 부트로더로 사용하도록 설정합니다.
+ Linux VM에서 루트 파일 시스템에 EXT2, EXT3, EXT4, Btrfs, JFS 또는 XFS를 사용하도록 설정합니다.
+ Linux VM이 예측 가능한 네트워크 인터페이스 디바이스 이름을 사용하고 있지 않아야 합니다.
+ VM을 종료하고 가상화 환경에서 내보냅니다.

## Windows 구성
<a name="prepare-vm-image-windows"></a>

가상화 환경에서 Windows VM을 내보내기 전에 Windows VM에서 다음을 구성해야 합니다. 이 섹션에서는 이미 [일반 구성](#prepare-vm-image-general) 섹션을 검토했음을 가정합니다.
+ 원격 액세스를 위한 RDP(원격 데스크톱)을 사용 설정합니다.
+ 호스트 방화벽(Windows 방화벽 등)을 구성하여 사용하는 경우, RDP 액세스가 허용되었는지 확인합니다. 그렇지 않으면 가져오기가 완료된 후에 인스턴스에 액세스할 수 없습니다.
+ Administrator 계정 및 다른 모든 사용자가 적합한 수준의 암호를 사용하고 있는지를 확인합니다. 암호가 없는 계정이 하나라도 존재하면 가져오기 프로세스가 실패할 수 있습니다.
+ VM에 .NET Framework 4.5 이상을 설치합니다. 필요에 따라 VM에 .NET Framework가 설치됩니다.
+ Windows VM 상의 자동 로그온(Autologon)을 설정 해제합니다.
+ [**제어판**] > [**시스템**] > [**Windows 업데이트**]를 차례대로 엽니다. 왼쪽 창에서 [**설정 변경**]을 선택합니다. 원하는 설정을 선택합니다. 여기에서 [**업데이트를 다운로드하지만 설치 여부는 직접 선택**](기본값)을 선택할 경우 업데이트를 확인할 때 일시적으로 인스턴스의 CPU 리소스가 50\~99% 소비될 수도 있습니다. 이러한 업데이트 확인은 대부분 인스턴스 시작 후 몇 분이 지나면 실행됩니다. 설치를 기다리는 Microsoft 업데이트가 있거나 컴퓨터에서 재부팅시 소프트웨어 설치가 설정된 상태가 아니어야 합니다.
+ 필요에 따라 다음 핫픽스를 적용합니다.
  + [Windows에서 RealTimeIsUniversal 레지스트리 항목을 설정한 경우 시스템 시간을 변경할 수 없습니다.](https://support.microsoft.com/en-us/topic/you-cannot-change-system-time-if-realtimeisuniversal-registry-entry-is-enabled-in-windows-78cf9fbe-eeca-4b06-a67a-2dacdf5189f9)
  + [Windows Server 2008, Windows 7 또는 Windows Server 2008 R2에 대한 DST 전환 중 높은 CPU 사용량](https://support.microsoft.com/en-us/topic/high-cpu-usage-during-dst-changeover-in-windows-server-2008-windows-7-or-windows-server-2008-r2-5c8a8dee-3510-cf7b-8296-05c13fd23bed)
+ RealTimeIsUniversal 레지스트리 키를 설정합니다. 자세한 내용은 **Amazon EC2 사용 설명서에서 [Amazon EC2 인스턴스에 대한 시간 설정](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html)을 참조하세요.
+ VM을 가져오기 전 또는 가져온 후에 Windows Server VM 이미지에서 시스템 준비(Sysprep)를 실행합니다.
  + VM을 가져오기 전에 Sysprep을 실행하면, 가져오기 과정에서 최종 사용자 사용권 계약(EULA)에 자동으로 동의하는 응답 파일(`unattend.xml`)이 VM에 추가되고 로캘이 EN-US로 설정됩니다.
  + VM을 가져온 후에 Sysprep을 실행하는 경우, EC2Launch(Windows Server 2016 이상) 또는 EC2Config(Windows Server 2012 R2 이하)를 사용하여 Sysprep을 실행하는 것이 좋습니다.

**기본 응답 파일(`unattend.xml`) 대신 직접 응답 파일을 작성하려면**

  1. 아래의 샘플 파일을 복사한 다음 사용하는 운영 체제 아키텍처에 따라 **processorArchitecture** 파라미터를 **x86** 또는 **amd64**로 설정합니다.

     ```
     <?xml version='1.0' encoding='UTF-8'?>
     <unattend xmlns:wcm='https://schemas.microsoft.com/WMIConfig/2002/State' xmlns='urn:schemas-microsoft-com:unattend'>
      <settings pass='oobeSystem'>
       <component versionScope='nonSxS' processorArchitecture='{{x86 or amd64}}' name='Microsoft-Windows-International-Core' publicKeyToken='31bf3856ad364e35' language='neutral'>
        <InputLocale>en-US</InputLocale>
        <SystemLocale>en-US</SystemLocale>
        <UILanguage>en-US</UILanguage>
        <UserLocale>en-US</UserLocale>
       </component> 
       <component versionScope='nonSxS' processorArchitecture='{{x86 or amd64}}' name='Microsoft-Windows-Shell-Setup' publicKeyToken='31bf3856ad364e35' language='neutral'>
        <OOBE>
         <HideEULAPage>true</HideEULAPage>
         <SkipMachineOOBE>true</SkipMachineOOBE>
         <SkipUserOOBE>true</SkipUserOOBE>
        </OOBE>
       </component>
      </settings>
     </unattend>
     ```

  1. `unattend.xml` 이름을 사용하여 `C:\Windows\Panther` 디렉터리에 파일을 저장합니다.

  1. **/oobe** 및 **/generalize** 옵션을 사용하여 Sysprep을 실행합니다. 이러한 옵션은 Windows 설치에서 모든 고유 시스템 정보를 제거하고 관리자 암호를 재설정하라는 메시지를 표시합니다.

  1. VM을 종료하고 가상화 환경에서 내보냅니다.