AMI のブートモードを設定する - Amazon Elastic Compute Cloud

AMI のブートモードを設定する

register-image コマンドを使用して AMI を作成する際に、AMI のブートモードを uefilegacy-bios または uefi-preferred に設定することができます。

AMI ブートモードを uefi-preferred に設定すると、インスタンスは次のように起動します。

  • UEFI とレガシー BIOS の両方をサポートするインスタンスタイプ (例えば m5.large など) の場合、インスタンスは UEFI を使用して起動します。

  • レガシー BIOS のみをサポートするインスタンスタイプ (例えば m4.large など) の場合、インスタンスはレガシー BIOS を使用して起動します。

注記

AMI ブートモードを uefi-preferred に設定した場合、オペレーティングシステムは UEFI と Legacy BIOS の両方を起動する機能をサポートしている必要があります。

現在、register-image コマンドを使用して NitrotPM と UEFI Preferred の両方をサポートする AMI を作成することはできません。

警告

UEFI セキュアブートなどの一部の機能は、UEFI で起動するインスタンスでのみ使用できます。UEFI をサポートしないインスタンスタイプで uefi-preferred AMI ブートモードパラメータを使用すると、インスタンスはレガシー BIOS として起動し、UEFI 依存機能は無効になります。UEFI に依存する機能の可用性を重視する場合は、AMI ブートモードパラメータを uefi に設定します。

既存のレガシー BIOS ベースのインスタンスを UEFI に、または既存の UEFI ベースのインスタンスをレガシー BIOS に変換するには、いくつかの手順を実行する必要があります。まず、選択したブートモードをサポートするように、インスタンスのボリュームとオペレーティングシステムを変更します。次に、ボリュームのスナップショットを作成します。最後に、register-image を使用して、スナップショットから AMI を作成します。

create-image コマンドを使用して AMI のブートモードを設定することはできません。create-image を使用すると、AMI には、その作成に使用される EC2 インスタンスのブートモードが継承されます。例えば、レガシー BIOS で実行されている EC2 インスタンスから AMI を作成する場合、その AMI のブートモードは legacy-bios として設定されます。ブートモードが uefi-preferred に設定された AMI を使用して起動された EC2 インスタンスから AMI を作成すると、作成された AMI のブートモードも uefi-preferred に設定されます。

警告

AMI ブートモードパラメータを設定しても、オペレーティングシステムは指定されたブートモードに自動的に変更されません。これらのステップに進む前に、まずインスタンスのボリュームとオペレーティングシステムに対し、選択したブートモードを使用しての起動をサポートするよう適切な変更を行う必要があります。これを行わないと、作成された AMI は使用不能になります。ここでの変更内容は、オペレーティングシステムにより異なります。詳細については、オペレーティングシステムのマニュアルを参照してください。

AMI のブートモードを設定するには (AWS CLI)
  1. インスタンスのボリュームとオペレーティングシステムに対し、選択したブートモードでの起動をサポートするための適切な変更を加えます。ここでの変更内容は、オペレーティングシステムにより異なります。詳細については、オペレーティングシステムのマニュアルを参照してください。

    注記

    この手順を実行しないと、AMI は使用不可能になります。

  2. インスタンスのボリューム ID を、describe-instances コマンドを使用して確認します。次のステップでは、このボリュームのスナップショットを作成します。

    aws ec2 describe-instances --region us-east-1 --instance-ids i-1234567890abcdef0

    正常な出力

    ... "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "AttachTime": "", "DeleteOnTermination": true, "Status": "attached", "VolumeId": "vol-1234567890abcdef0" } } ...
  3. ボリュームのスナップショットを作成するには、create-snapshot コマンドを使用します。前のステップで取得したボリューム ID を使用します。

    aws ec2 create-snapshot --region us-east-1 --volume-id vol-1234567890abcdef0 --description "add text"

    正常な出力

    { "Description": "add text", "Encrypted": false, "OwnerId": "123", "Progress": "", "SnapshotId": "snap-01234567890abcdef", "StartTime": "", "State": "pending", "VolumeId": "vol-1234567890abcdef0", "VolumeSize": 30, "Tags": [] }
  4. 前のステップで出力されたスナップショット ID を書き留めます。

  5. スナップショットの作成状況が completed になるまで待ってから、次のステップに進みます。スナップショットの状態は、describe-snapshots コマンドを使用して照会できます。

    aws ec2 describe-snapshots --region us-east-1 --snapshot-ids snap-01234567890abcdef

    出力例

    { "Snapshots": [ { "Description": "This is my snapshot", "Encrypted": false, "VolumeId": "vol-049df61146c4d7901", "State": "completed", "VolumeSize": 8, "StartTime": "2019-02-28T21:28:32.000Z", "Progress": "100%", "OwnerId": "012345678910", "SnapshotId": "snap-01234567890abcdef", ...
  6. 新しい AMI を作成するには、register-image コマンドを使用します。前のステップで記録したスナップショット ID を使用します。

    • 起動モードを UEFI に設定するには、コマンドに --boot-mode パラメータを追加して uefi を値として指定します。

      aws ec2 register-image \ --region us-east-1 \ --description "add description" \ --name "add name" \ --block-device-mappings "DeviceName=/dev/sda1,Ebs={SnapshotId=snap-01234567890abcdef,DeleteOnTermination=true}" \ --architecture x86_64 \ --root-device-name /dev/sda1 \ --virtualization-type hvm \ --ena-support \ --boot-mode uefi
    • 起動モードを uefi-preferred に設定するには、コマンドに --boot-mode パラメータを追加して uefi-preferred を値として指定します。

      aws ec2 register-image \ --region us-east-1 \ --description "add description" \ --name "add name" \ --block-device-mappings "DeviceName=/dev/sda1,Ebs={SnapshotId=snap-01234567890abcdef,DeleteOnTermination=true}" \ --architecture x86_64 \ --root-device-name /dev/sda1 \ --virtualization-type hvm \ --ena-support \ --boot-mode uefi-preferred

    正常な出力

    { "ImageId": "ami-new_ami_123" }
  7. 新しく作成した AMI が、前のステップで指定したブートモードに設定されていることを確認するには、describe-images コマンドを使用します。

    aws ec2 describe-images --region us-east-1 --image-id ami-new_ami_123

    正常な出力

    { "Images": [ { "Architecture": "x86_64", "CreationDate": "2021-01-06T14:31:04.000Z", "ImageId": "ami-new_ami_123", "ImageLocation": "", ... "BootMode": "uefi" } ] }
  8. 新しく作成した AMI を使用して、新しいインスタンスを起動します。

    AMI ブートモードが uefi または legacy-bios の場合、この AMI から作成されたインスタンスは AMI と同じブートモードになります。AMI ブートモードが uefi-preferred の場合、インスタンスタイプが UEFI をサポートしていれば、インスタンスは UEFI を使用して起動します。それ以外の場合、インスタンスはレガシー BIOS を使用して起動します。詳細については、「考慮事項」を参照してください。

  9. 新しいインスタンスが想定通りのブートモードになっているかは、describe-instances コマンドにより確認できます。