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

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

ユースケースによっては、Amazon EC2 インスタンスが終了したときに、インスタンスストアボリュームまたは Amazon EBS ボリュームにデータを保存したい場合があるでしょう。インスタンスストアボリューム上のデータは、インスタンスが終了すると消滅します。インスタンスストアボリュームに保存されているデータを、インスタンスのライフタイムを超えて保持する必要がある場合は、そのデータを Amazon EBS ボリューム、Amazon S3 バケット、Amazon EFS ファイルシステムなどのより永続的なストレージに手動でコピーする必要があります。詳細については、「Amazon EC2 インスタンスのストレージオプション」を参照してください。

Amazon EBS ボリュームのデータについて、Amazon EC2 はアタッチされた各 Amazon EBS ボリュームの DeleteOnTermination 属性の値を使用して、ボリュームを保持するか削除するかを決定します。

DeleteOnTermination 属性のデフォルト値は、ボリュームがインスタンスのルートボリュームであるか、インスタンスにアタッチされているルート以外のボリュームであるかによって異なります。

ルートボリューム

デフォルトでは、インスタンスを起動すると、インスタンスのルートボリュームの DeleteOnTermination 属性は true に設定されます。したがって、デフォルトではインスタンスの終了時に、インスタンスのルートボリュームが削除されます。

ルート以外のボリューム

デフォルトでは、インスタンスにルート以外の EBS ボリュームをアタッチするときは、DeleteOnTermination 属性が false に設定されます。したがって、デフォルトではこれらのボリュームが保持されます。

注記

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

DeleteOnTermination 属性は、AMI の作成者とインスタンスを起動するユーザーが設定できます。AMI の作成者またはインスタンスを起動したユーザーによって属性が変更された場合、元の AMI のデフォルト設定は新しい設定に上書きされます。AMI でインスタンスを起動したら、DeleteOnTermination 属性のデフォルト設定を確認することをお勧めします。

インスタンスの終了時に Amazon EBS ボリュームが削除されるかどうかを確認するには、インスタンスの詳細ペインでボリュームの詳細を表示します。ブロックデバイスの下にある、ストレージタブを右にスクロールしてボリュームの終了時に削除設定を確認します。

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

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

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

コンソールを使用して、インスタンスの起動時に DeleteOnTermination 属性を変更できます。実行中のインスタンスのこの属性を変更するには、コマンドラインを使用する必要があります。

起動時にルートボリュームが存続するように変更するには、次のいずれかの方法を使用します。

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

  2. [ストレージ (ボリューム)] で、ルートボリュームの下の情報を展開します。

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

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

Command line
コマンドラインを使用して、起動時にインスタンスのルートボリュームが存続するように変更するには

EBS-backed インスタンスの起動時に、次のコマンドのいずれかを使用して、ルートデバイスボリュームが存続するように変更することができます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセスを参照してください。

永続化するボリュームのブロックデバイスマッピングで、--DeleteOnTermination を含め、false を指定します。

例えば、ボリュームを永続化するには、run-instances コマンドに次のオプションを追加します。

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

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

[ { "DeviceName": "device_name", "Ebs": { "DeleteOnTermination": false } } ]

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

次のいずれかのコマンドを使用して、実行中の EBS-backed インスタンスのルートデバイスボリュームを永続化するように変更できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセスを参照してください。

例えば、以下のコマンドを使用します。

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 } } ]