Amazon Elastic Compute Cloud
Linux 인스턴스용 사용 설명서

Amazon Linux 2를 온프레미스 가상 머신으로 실행

온프레미스 개발 및 테스트를 위해 Amazon Linux 2 가상 머신(VM) 이미지를 사용합니다. 이러한 이미지는 다음 가상 플랫폼에서 사용할 수 있습니다.

  • VMware

  • KVM

  • VirtualBox(Oracle VM)

  • Microsoft Hyper-V

지원되는 가상화 플랫폼 중 하나에서 Amazon Linux 2 가상 머신 이미지를 사용하려면 다음 작업을 수행해야 합니다.

1단계: seed.iso 부팅 이미지 준비

seed.iso 부팅 이미지에는 네트워크 구성, 호스트 이름, 사용자 데이터와 같이 새 VM을 부팅하는 데 필요한 초기 구성 정보가 포함되어 있습니다.

참고

seed.iso 부팅 이미지에는 VM을 부팅하는 데 필요한 구성 정보만 포함하고 Amazon Linux 2 운영 체제 파일은 포함하지 않습니다.

seed.iso 부팅 이미지를 생성하려면 다음과 같은 구성 파일 두 개가 필요합니다.

  • meta-data - 이 파일에는 VM에 대한 호스트 이름과 정적 네트워크 설정이 포함됩니다.

  • user-data - 이 파일에서는 사용자 계정을 구성하고 이 계정의 암호, 키 페어 및 액세스 메커니즘을 지정합니다. 기본적으로 Amazon Linux 2 VM 이미지에서는 ec2-user 사용자 계정을 생성합니다. user-data 구성 파일을 사용하여 기본 사용자 계정의 암호를 설정합니다.

seed.iso 부팅 디스크를 생성하려면

  1. seedconfig라는 새 폴더를 생성하여 meta-datauser-data 구성 파일을 저장합니다.

  2. meta-data 구성 파일을 생성합니다.

    1. VM의 호스트 이름을 추가합니다.

      local-hostname: vm_hostname
    2. 네트워크 인터페이스 이름과 같은 사용자 지정 네트워크 설정을 지정합니다.

      #network-interfaces: | # iface interface_name inet static

    예를 들어 다음 코드 블록에서는 VM 호스트 이름(meta-data)을 지정하고, 기본 네트워크 인터페이스(amazonlinux.onprem)를 구성하며 필요한 네트워크 디바이스에 대해 정적 IP 주소를 지정하는 eth0 구성 파일의 내용을 보여줍니다.

    local-hostname: amazonlinux.onprem # eth0 is the default network interface enabled in the image. You can configure static network settings with an entry like the following. network-interfaces: | auto eth0 iface eth0 inet static address 192.168.1.10 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.254
  3. user-data 구성 파일을 생성합니다.

    1. 다음과 같이 기본 ec2-user 사용자 계정에 일반 텍스트 형식으로 사용자 지정 암호를 지정합니다.

      #cloud-config #vim:syntax=yaml users: # A user by the name `ec2-user` is created in the image by default. - default chpasswd: list: | ec2-user:plain_text_password # In the above line, do not add any spaces after 'ec2-user:'.

      참고

      plain_text_password 자리 표시자는 사용자가 선택한 일반 텍스트 암호로 교체해야 합니다.

    2. (선택 사항) 추가 사용자 계정을 생성하고 이 계정의 액세스 메커니즘, 암호 및 키 페어를 지정합니다. 지원되는 명령에 대한 자세한 정보는 Modules를 참조하십시오.

    3. (선택 사항) 기본적으로 cloud-init은 VM이 부팅될 때마다 네트워크 설정을 적용합니다. cloud-init이 부팅 때마다 네트워크 설정을 적용하지 않도록 하고 첫 번째 부팅 중에 적용된 네트워크 설정을 보관하도록 하려면 user-data 구성 파일에 다음 코드를 추가하십시오.

      # NOTE: Cloud-init applies network settings on every boot by default. To retain network settings from first boot, add following ‘write_files’ section: write_files: - path: /etc/cloud/cloud.cfg.d/80_disable_network_after_firstboot.cfg content: | # Disable network configuration after first boot network: config: disabled

    예를 들어 다음 코드 블록에서는 추가 사용자 세 명을 생성하고 기본 user-data 사용자 계정에 대해 사용자 지정 암호를 지정하며 cloud-init이 부팅 때마다 네트워크 설정을 적용하지 않도록 하는 ec2-user 구성 파일의 내용을 보여줍니다.

    #cloud-config # vim:syntax=yaml users: # A user by the name ec2-user is created in the image by default. - default # The following entry creates user1 and assigns a plain text password. # Please note that the use of a plain text password is not recommended from security best practices standpoint. - name: user1 groups: sudo sudo: ['ALL=(ALL) NOPASSWD:ALL'] plain_text_passwd: myp@ssw0rd lock_passwd: false # The following entry creates user2 and attaches a hashed password to the user. # Hashed passwords can be generated with the following command on Amazon Linux 2: # python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass()))' - name: user2 passwd: hashed-password lock_passwd: false # The following entry creates user3, disables password-based login and enables an SSH public key. - name: user3 ssh-authorized-keys: - ssh-public-key-information lock_passwd: true chpasswd: list: | ec2-user:myp@ssw0rd # In the above line, do not add any spaces after 'ec2-user:'. # NOTE: Cloud-init applies network settings on every boot by default. To retain network settings from first boot, uncomment the following ‘write_files’ section: #write_files: - path: /etc/cloud/cloud.cfg.d/80_disable_network_after_firstboot.cfg content: | # Disable network configuration after first boot network: config: disabled
  4. meta-datauser-data 구성 파일을 1단계에서 생성된 seedconfig 폴더로 옮깁니다.

  5. seed.isometa-data 구성 파일을 사용하여 user-data 부팅 이미지를 생성합니다.

    Linux의 경우 genisoimage와 같은 도구를 사용합니다. seedconfig 폴더로 이동하여 다음 명령을 실행합니다.

    $ genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data

    macOS의 경우 hdiutil과 같은 도구를 사용합니다. seedconfig 폴더에서 한 수준 위로 이동하여 다음 명령을 실행합니다.

    $ hdiutil makehybrid -o seed.iso -hfs -joliet -iso -default-volume-name cidata seedconfig/

2단계: Amazon Linux 2 VM 이미지 다운로드

Amazon에서는 지원되는 가상화 플랫폼 각각에 대해 서로 다른 Amazon Linux 2 VM 이미지를 제공합니다. 선택한 플랫폼에 대해 다음과 같이 정확한 VM 이미지를 다운로드합니다.

3단계: 새 VM 부팅 및 연결

새 VM을 부팅하여 이에 연결하려면 seed.iso 부팅 이미지(1단계에서 생성됨)와 Amazon Linux 2 VM 이미지(2단계에서 다운로드함)가 있어야 합니다.

참고

최초 부팅 시 seed.iso 부팅 이미지를 VM에 연결해야 합니다.

seed.iso는 최초 부팅 시에만 평가됩니다.

VM이 부팅된 후에 user-data 구성 파일에 정의된 사용자 계정 중 하나를 사용해 로그인합니다. 처음 로그인한 후에 VM에 연결된 부팅 이미지를 연결 해제할 수 있습니다.