Amazon EC2 インスタンスのルートデバイスボリューム - Amazon Elastic Compute Cloud

Amazon EC2 インスタンスのルートデバイスボリューム

インスタンスを起動するときは、ルートデバイスボリュームに格納されているイメージを使用してインスタンスがブートされます。Windows インスタンスを起動すると、その EBS スナップショットからルート EBS ボリュームが作成され、インスタンスにアタッチされます。

永続化するようにルートボリュームを設定する

デフォルトでは、インスタンスを終了するとルートボリュームは削除されます (DeleteOnTermination属性は true)。コンソールを使用して、インスタンスの起動時に DeleteOnTermination を変更できます。既存のインスタンスのこの属性を変更するには、コマンドラインを使用する必要があります。

インスタンスの起動時に永続化するためのルートボリュームの設定

Amazon EC2 コンソールまたはコマンドラインツールを使用して、インスタンスの起動時に永続化するようにルートボリュームを設定できます。

Console
コンソールを使用してインスタンスの起動時に永続化するようにルートボリュームを設定するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで [インスタンス]、[インスタンスの作成] の順に選択します。

  3. [Choose an Amazon Machine Image (AMI)] ページで、使用する AMI を選択し、[Select] を選択します。

  4. ウィザードにしたがって [Choose an Instance Type] ページと [Configure Instance Details] ページを設定します。

  5. [Add Storage] ページで、ルートボリュームの [Delete On Termination] の選択を解除します。

  6. ウィザードの残りのページを完了した後、[Launch] を選択します。

AWS CLI
AWS CLI を使用してインスタンスの起動時に永続化するようにルートボリュームを設定するには

run-instances コマンドを使用して、DeleteOnTermination 属性を false に設定するブロックデバイスマッピングを含めます。

C:\> aws ec2 run-instances --block-device-mappings file://mapping.json ...other parameters...

mapping.json で、以下を指定します。

[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false } } ]
Tools for Windows PowerShell
Tools for Windows PowerShell を使用してインスタンスの起動時に永続化するようにルートボリュームを設定するには

New-EC2Instance コマンドを使用して、DeleteOnTermination 属性を false に設定するブロックデバイスマッピングを含めます。

C:\> $ebs = New-Object Amazon.EC2.Model.EbsBlockDevice C:\> $ebs.DeleteOnTermination = $false C:\> $bdm = New-Object Amazon.EC2.Model.BlockDeviceMapping C:\> $bdm.DeviceName = "dev/xvda" C:\> $bdm.Ebs = $ebs C:\> New-EC2Instance -ImageId ami-0abcdef1234567890 -BlockDeviceMapping $bdm ...other parameters...

既存のインスタンスで永続化するためのルートボリュームの設定

コマンドラインツールのみを使用して、実行中のインスタンスで永続化するようにルートボリュームを設定できます。

AWS CLI
AWS CLI を使用して、既存のインスタンスで永続化するようにルートボリュームを設定するには

DeleteOnTermination 属性を false に設定するブロックデバイスマッピングを指定して modify-instance-attribute コマンドを使用します。

aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --block-device-mappings file://mapping.json

mapping.json で、以下を指定します。

[ { "DeviceName": "/dev/xvda", "Ebs": { "DeleteOnTermination": false } } ]
Tools for Windows PowerShell
AWS Tools for Windows PowerShell を使用して、既存のインスタンスで永続化するようにルートボリュームを設定するには

DeleteOnTermination 属性を false に設定するブロックデバイスマッピングを指定して Edit-EC2InstanceAttribute コマンドを使用します。

C:\> $ebs = New-Object Amazon.EC2.Model.EbsInstanceBlockDeviceSpecification C:\> $ebs.DeleteOnTermination = $false C:\> $bdm = New-Object Amazon.EC2.Model.InstanceBlockDeviceMappingSpecification C:\> $bdm.DeviceName = "/dev/xvda" C:\> $bdm.Ebs = $ebs C:\> Edit-EC2InstanceAttribute -InstanceId i-1234567890abcdef0 -BlockDeviceMapping $bdm

ルートボリュームが永続化するように設定されていることの確認

Amazon EC2 コンソールまたはコマンドラインツールを使用して、ルートボリュームが永続化するように設定されていることを確認できます。

Console
Amazon EC2 コンソールを使用してルートボリュームが永続化するように設定されていることを確認するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで [インスタンス] を選択してから、インスタンスを選択します。

  3. [ストレージ] タブの [ブロックデバイス] で、ルートボリュームのエントリを見つけます。[合わせて削除] が No の場合、ボリュームは永続化するように設定されます。

AWS CLI
AWS CLI を使用してルートボリュームが永続化するように設定されていることを確認するには

describe-instances コマンドを使用して、DeleteOnTermination レスポンス要素の BlockDeviceMappings 属性が false に設定されていることを確認します。

C:\> aws ec2 describe-instances --instance-id i-1234567890abcdef0
... "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": false, "VolumeId": "vol-1234567890abcdef0", "AttachTime": "2013-07-19T02:42:39.000Z" } } ...
Tools for Windows PowerShell
AWS Tools for Windows PowerShell を使用してルートボリュームが永続化するように設定されていることを確認するには

Get-EC2Instance コマンドを使用して、DeleteOnTermination レスポンス要素の BlockDeviceMappings 属性が false に設定されていることを確認します。

C:\> (Get-EC2Instance -InstanceId i-i-1234567890abcdef0).Instances.BlockDeviceMappings.Ebs

ルートボリュームの初期サイズの変更

デフォルトでは、ルートボリュームのサイズはスナップショットのサイズによって決まります。次のようにインスタンスのブロックデバイスマッピングを使用して、ルートボリュームの初期サイズを増やすことができます。

  1. AMI ブロックデバイスマッピングの EBS ボリュームの表示 の説明に従って、AMI で指定されているルートボリュームのデバイス名を決定します。

  2. AMI ブロックデバイスマッピングで指定されたスナップショットのサイズを確認します。

  3. インスタンス起動時のブロックデバイスマッピングの更新 の説明に従って、インスタンスブロックデバイスマッピングを使用してルートボリュームのサイズを上書きし、スナップショットサイズよりも大きいボリュームサイズを指定します。

例えば、インスタンスブロックデバイスマッピングの次のエントリは、ルートボリュームのサイズ /dev/xvda を 100 GiB に増やします。スナップショット ID は AMI ブロックデバイスマッピングで既に指定されているため、インスタンスブロックデバイスマッピングでスナップショット ID を省略できます。

{ "DeviceName": "/dev/xvda", "Ebs": { "VolumeSize": 100 } }

詳細については、「ブロックデバイスマッピング」を参照してください。