Amazon EC2 インスタンスのルートデバイスボリューム
インスタンスを起動するときは、ルートデバイスボリュームに格納されているイメージを使用してインスタンスがブートされます。Windows インスタンスを起動すると、その EBS スナップショットからルート EBS ボリュームが作成され、インスタンスにアタッチされます。
デフォルトでは、インスタンスを終了するとルートボリュームは削除されます (DeleteOnTermination
属性は true
)。コンソールを使用して、インスタンスの起動時に DeleteOnTermination
を変更できます。既存のインスタンスのこの属性を変更するには、コマンドラインを使用する必要があります。
Amazon EC2 コンソールまたはコマンドラインツールを使用して、インスタンスの起動時に永続化するようにルートボリュームを設定できます。
- Console
-
コンソールを使用してインスタンスの起動時に永続化するようにルートボリュームを設定するには
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
ナビゲーションペインで [インスタンス]、[インスタンスの作成] の順に選択します。
-
[Choose an Amazon Machine Image (AMI)] ページで、使用する AMI を選択し、[Select] を選択します。
-
ウィザードにしたがって [Choose an Instance Type] ページと [Configure Instance Details] ページを設定します。
-
[Add Storage] ページで、ルートボリュームの [Delete On Termination] の選択を解除します。
-
ウィザードの残りのページを完了した後、[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 コンソールまたはコマンドラインツールを使用して、ルートボリュームが永続化するように設定されていることを確認できます。
- New console
-
Amazon EC2 コンソールを使用してルートボリュームが永続化するように設定されていることを確認するには
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
ナビゲーションペインで [インスタンス] を選択してから、インスタンスを選択します。
-
[ストレージ] タブの [ブロックデバイス] で、ルートボリュームのエントリを見つけます。[合わせて削除] が No
の場合、ボリュームは永続化するように設定されます。
- Old console
-
Amazon EC2 コンソールを使用してルートボリュームが永続化するように設定されていることを確認するには
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
ナビゲーションペインで [インスタンス] を選択してから、インスタンスを選択します。
-
[説明] タブで、[ルートデバイス] のエントリを選択します。[Delete on termination (合わせて削除)] が False
の場合、ボリュームは永続化するように設定されます。
- 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
ルートボリュームの初期サイズの変更
デフォルトでは、ルートボリュームのサイズはスナップショットのサイズによって決まります。次のようにインスタンスのブロックデバイスマッピングを使用して、ルートボリュームの初期サイズを増やすことができます。
例えば、インスタンスブロックデバイスマッピングの次のエントリは、ルートボリュームのサイズ /dev/xvda
を 100 GiB に増やします。スナップショット ID は AMI ブロックデバイスマッピングで既に指定されているため、インスタンスブロックデバイスマッピングでスナップショット ID を省略できます。
{
"DeviceName": "/dev/xvda",
"Ebs": {
"VolumeSize": 100
}
}
詳細については、「ブロックデバイスマッピング」を参照してください。