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 起動イメージを生成するには、2 つの設定ファイルが必要です。

  • meta-data — このファイルには、VM のホスト名と静的ネットワーク設定が含まれます。

  • user-data — このファイルを使用して、ユーザーアカウントを設定し、パスワード、キーペア、およびアクセスメカニズムを指定します。デフォルトでは、Amazon Linux 2 VM イメージでは、ec2-user のユーザーアカウントを作成します。デフォルトのユーザーアカウントのパスワードを設定するには、user-data 設定ファイルを使用します。

seed.iso 起動ディスクを作成するには

  1. seedconfig という名前の新しいフォルダを作成し、meta-data および user-data 設定ファイルを保存します。

  2. meta-data 設定ファイルを作成します。

    1. VM のホスト名を追加します。

      local-hostname: vm_hostname
    2. カスタムのネットワーク設定 (例: ネットワークインターフェイス名) を指定します。

      #network-interfaces: | # iface interface_name inet static

    たとえば、以下のコードブロックは、VM ホスト名 (amazonlinux.onprem) を指定する meta-data 設定ファイルの内容を表します。デフォルトのネットワークインターフェイス (eth0) を設定し、必要なネットワークデバイスの静的 IP アドレスを指定します。

    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: | 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. (オプション) 他にも作成する場合はユーザーアカウントを追加し、アクセスメカニズム、パスワード、キーペアを指定します。サポートされるディレクティブについては、「モジュール」を参照してください。

    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

    たとえば、以下のコードブロックは、3 名のユーザーを追加する user-data 設定ファイルの内容を表します。この設定ファイルを使用して、デフォルトの ec2-user ユーザーアカウントのカスタムパスワードを設定し、起動時のネットワーク設定への cloud-init の適用を無効にします。

    #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-data および user-data 設定ファイルを、ステップ 1 で作成した seedconfig フォルダに置きます。

  5. meta-data および user-data 設定ファイルを使用して、seed.iso 起動イメージを作成します。

    Linux の場合は、genisoimage などのツールを使用します。seedconfig フォルダに移動し、次のコマンドを実行します。

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

    macOS の場合は、hdiutil などのツールを使用します。seedconfig フォルダの 1 つ上に移動し、次のコマンドを実行します。

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

ステップ 2: Amazon Linux 2 VM イメージのダウンロード

サポートされている仮想化プラットフォームごとに異なる Amazon Linux 2 VM イメージをお使いいただけます。選択したプラットフォームに合う VM イメージをダウンロードします。

ステップ 3: 新しい VM を起動して接続する

新しい VM を起動して接続するには、seed.iso 起動イメージ (ステップ 1 で作成済み) と Amazon Linux 2 VM イメージ (ステップ 2 でダウンロード済み) が必要です。

注記

初回起動時に seed.iso 起動イメージを VM に接続する必要があります。

VM を起動したら、user-data 設定ファイルで定義されているユーザーアカウントのいずれかを使用してログインします。起動イメージは、VM の初回ログイン後に切断することができます。