インスタンスの終了時にデータを保持する - Amazon Elastic Compute Cloud

インスタンスの終了時にデータを保持する

Amazon EC2 インスタンスが終了すると、データをインスタンスストアボリュームまたは Amazon EBS ボリュームに保存できます。このトピックでは、インスタンスの終了後もデータが保持されるようにする方法について説明します。

インスタンスの終了がルートボリュームとデータボリュームに与える影響

インスタンスストアボリューム

インスタンスが終了すると、インスタンスストアボリュームは自動的に削除され、データが失われます。インスタンスのライフタイムを超えてこのデータを保持するには、インスタンスを終了する前に、Amazon EBS ボリューム、Amazon S3 バケット、Amazon EFS ファイルシステムなどの永続的なストレージに手動でコピーしてください。詳細については、「Amazon EC2 インスタンスのストレージオプション」を参照してください。

Amazon EBS ボリューム

インスタンスが終了すると、各ボリュームの DeleteOnTermination 属性の値に応じて EBS ボリュームは削除または保持されます。

  • [はい] (コンソール) / true (CLI) – インスタンスが終了すると、ボリュームは削除されます。

  • [いいえ] (コンソール) / false (CLI) – インスタンスが終了すると、ボリュームは保持されます。保持されたボリュームは、引き続き料金が発生します。

    注記

    インスタンスが終了した後、保持されたボリュームのスナップショットを作成するか、別のインスタンスにアタッチできます。不要な料金の発生を回避するには、ボリュームを削除する必要があります。

EBS ボリュームのデフォルトの削除動作

デフォルト DeleteOnTermination 値はボリュームタイプ、起動時または起動後にボリュームがアタッチされたか、ボリュームのアタッチに使用された方法 (コンソールまたは CLI) によって異なります。

ボリュームタイプ アタッチ時 アタッチ方法 インスタンス終了時のデフォルの動作
ルートボリューム 起動時 コンソールまたは CLI 削除
ルートボリューム After launch コンソールまたは CLI Preserve
データボリューム 起動時 コンソール Preserve
データボリューム 起動時 CLI 削除
データボリューム After launch コンソールと CLI Preserve

ボリューム永続性設定を確認する

EBS ボリュームの起動時のデフォルト値は、AMI で設定された DeleteOnTermination 属性によって決まります。インスタンスの起動時に値を変更し、AMI 設定をオーバーライドできます。インスタンスを起動した後、DeleteOnTermination 属性のデフォルト設定を確認することをお勧めします。

インスタンスの終了時に Amazon EBS ボリュームが削除されるかどうか確認する方法
  1. Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/ を開いてください。

  2. ナビゲーションペインで、[インスタンス] を選択してください。

  3. インスタンスを選択します。

  4. [ストレージ] タブを選択します。

  5. [ブロックデバイス] で、右にスクロールして [終了時に削除] の列を確認します。

    • [はい] の場合、ボリュームはインスタンスの終了時に削除されます。

    • [いいえ] の場合、ボリュームはインスタンスの終了時に削除されません。削除されていないボリュームは、引き続き料金が発生します。

起動時にルートボリュームが存続するように変更する

インスタンスを起動するときに、EBS ルートボリュームの DeleteOnTermination 属性を変更できます。データボリュームに次の手順を使用することもできます。

Console
起動時にインスタンスのルートボリュームが存続するように変更するには
  1. 手順に従ってインスタンスを起動しますが、次のステップを完了してルートボリュームを存続するように変更するまでインスタンスを起動しないでください。

  2. [ストレージを設定] ペインで [アドバンスト] を選択します。

  3. [EBS ボリューム] で、ルートボリュームの情報を展開します。

  4. [終了時に削除] には、[いいえ] を選択します。

  5. [Summary] (概要) パネルでインスタンスの設定を確認し、[Launch instance] (インスタンスを起動) を選択してください。詳細については、「コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する」を参照してください。

AWS CLI
起動時にインスタンスのルートボリュームが存続するように変更するには

run-instances コマンドを使用して、ブロックデバイスマッピングの DeleteOnTermination の値を変更します。

--block-device-mappings オプションを追加します。

--block-device-mappings file://mapping.json

mapping.json では、デバイス名を指定し (例: /dev/sda1 または /dev/xvda)、DeleteOnTerminationfalse を指定します。

[ { "DeviceName": "device_name", "Ebs": { "DeleteOnTermination": false } } ]
PowerShell
起動時にインスタンスのルートボリュームが存続するように変更するには

New-EC2Instance コマンドレットを使用して、ブロックデバイスマッピングの DeleteOnTermination の値を 変更します。

-BlockDeviceMapping オプションを追加します。

-BlockDeviceMapping $bdm

bdm では、デバイス名を指定し (例: /dev/sda1 または /dev/xvda)、DeleteOnTerminationfalse を指定します。

$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice $ebd.DeleteOnTermination = false $bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $bdm.DeviceName = "/dev/sda1" $bdm.Ebs = $ebd

実行中のインスタンスのルートボリュームが存続するように変更する

実行中のインスタンスの EBS ルートボリュームが永続するように、変更できます。データボリュームに次の手順を使用することもできます。

AWS CLI
ルートボリュームを永続的に変更するには

modify-instance-attribute コマンドを使用します。

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

mapping.json では、デバイス名を指定し (例: /dev/sda1 または /dev/xvda)、--DeleteOnTerminationfalse を指定します。

[ { "DeviceName": "device_name", "Ebs": { "DeleteOnTermination": false } } ]
PowerShell
ルートボリュームを永続的に変更するには

Edit-EC2InstanceAttribute コマンドレットを使用します。

-BlockDeviceMapping オプションを追加します。

-BlockDeviceMapping $bdm

bdm では、デバイス名を指定し (例: /dev/sda1 または /dev/xvda)、DeleteOnTerminationfalse を指定します。

$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice $ebd.DeleteOnTermination = false $bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $bdm.DeviceName = "/dev/sda1" $bdm.Ebs = $ebd