Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

インスタンスの終了

不要になったインスタンスは削除できます。これは、インスタンスの削除 と呼ばれます。インスタンスの状態が shutting-down または terminated に変わったら、そのインスタンスへの課金は停止します。

インスタンスを削除した後に、接続または再起動することはできません。ただし、同じ AMI から別のインスタンスを起動することができます。インスタンスを停止および再起動するか、または休止する場合は、「インスタンスの停止と起動」または「Linux インスタンスの休止」を参照してください。詳細については、「再起動、停止、休止、終了の違い」を参照してください。

インスタンスの削除

インスタンスの削除後、インスタンスはしばらくの間コンソールに表示されたままですが、エントリは自動的に削除されます。終了したインスタンスのエントリを自分で削除することはできません。インスタンスを削除すると、タグやボリュームなどのリソースはインスタンスから徐々に関連付けが解除されるため、しばらくすると削除されたインスタンスでこれらのリソースが表示されなくなる可能性があります。

インスタンスが終了すると、そのインスタンスに関連付けられたすべてのインスタンスストアボリュームのデータが削除されます。

デフォルトでは、インスタンスの削除時に Amazon EBS のルートデバイスボリュームが自動的に削除されます。ただし、起動時にアタッチした追加の EBS ボリューム、または既存のインスタンスにアタッチした EBS ボリュームがある場合、デフォルトでは、インスタンスの削除後もそれらのボリュームは保持されます。この動作はボリュームの DeleteOnTermination 属性によって制御されますが、変更できます。詳細については、「インスタンスの削除で Amazon EBS ボリュームを保持する」を参照してください。

AWS マネジメントコンソール、CLI、および API を使用している他のユーザーによって、誤ってインスタンスを終了されないようにできます。この機能は、Amazon EC2 instance store-backed インスタンスと Amazon EBS-backed インスタンスの両方で使用できます。各インスタンスには、デフォルト値の false である DisableApiTermination 属性があります (インスタンスは Amazon EC2 によって終了される場合があります)。インスタンスの実行中または停止中に、このインスタンス属性を変更できます (Amazon EBS-backed インスタンスの場合)。詳細については、「インスタンスの削除保護の有効化」を参照してください。

システムをシャットダウンするオペレーティングシステムコマンドを使用して、インスタンスからシャットダウンが開始されたときに、インスタンスを停止または終了するかどうかを制御できます。詳細については、「インスタンスによって起動されたシャットダウン動作の変更」を参照してください。

インスタンスの終了時にスクリプトを実行した場合、シャットダウンスクリプトが実行されることを保証する方法がないため、異常な終了が発生する場合があります。Amazon EC2 はインスタンスを正常にシャットダウンして、システムシャットダウンスクリプトが実行されるように試みますが、特定のイベント (ハードウェア障害など) ではシステムシャットダウンスクリプトが実行されないことがあります。

インスタンスを削除するとどうなるか (API)

terminate-instances コマンドを使用して EC2 インスタンスが削除された場合、OS レベルで以下が登録されています。

  • API リクエストは、ボタンのクリックイベントをゲストに送信します。

  • ボタンのクリックイベントの結果、さまざまなシステムサービスが停止されます。systemd はシステムの適切なシャットダウンを処理します。適切なシャットダウンは、ハイパーバイザーからの ACPI シャットダウンボタンのクリックイベントによってトリガーされます。

  • ACPI のシャットダウンが開始されます。

  • このインスタンスは、適切なシャットダウンプロセスが終了したときにシャットダウンされます。設定可能な OS シャットダウン時間はありません。

インスタンスを削除する

インスタンスは AWS マネジメントコンソール またはコマンドラインを使用して終了できます。

コンソールを使用してインスタンスを終了するには

  1. インスタンスを終了する前に、終了時に Amazon EBS ボリュームが削除され、必要な任意のデータをインスタンスストアボリュームから Amazon EBS または Amazon S3 にコピーしていることを確認して、データが失われないことを確認します。

  2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

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

  4. 該当インスタンスを選択し、[Actions]、[Instance State]、[Terminate] の順に選択します。

  5. 確認を求めるメッセージが表示されたら、[Yes, Terminate] を選択します。

コマンドラインを使用してインスタンスを削除するには

次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセス を参照してください。

インスタンスの削除保護の有効化

デフォルトでは、Amazon EC2 コンソール、コマンドラインインターフェイス、または API を使用して、インスタンスを終了できます。Amazon EC2 を使用してインスタンスを誤って終了できないようにするには、インスタンスの終了保護を有効にできます。DisableApiTermination 属性は、インスタンスがコンソール、CLI、または API を使用して終了できるかどうかを制御します。デフォルトでは、インスタンスの削除保護は無効になっています。インスタンスが実行中またはインスタンスが停止中に、インスタンスを起動する際に、この属性の値を設定できます (Amazon EBS-backed インスタンスの場合)。

DisableApiTermination 属性が設定された場合、InstanceInitiatedShutdownBehavior 属性はインスタンスからシャットダウンを開始して (システムシャットダウン用のオペレーティングシステムコマンドを使用)、インスタンスを終了できます。詳細については、「インスタンスによって起動されたシャットダウン動作の変更」を参照してください。

制限

スポットインスタンス の削除保護を有効にすることはできません。スポットインスタンス は、スポット料金が スポットインスタンス への支払金額を超えると終了します。しかし、スポットインスタンス の中断を処理するようにアプリケーションを準備できます。詳細については、「スポットインスタンス の中断」を参照してください。

DisableApiTermination 属性では、Amazon EC2 Auto Scaling によるインスタンスの終了は防止されません。Auto Scaling グループ内のインスタンスについては、Amazon EC2 の終了の防止ではなく Amazon EC2 Auto Scaling の次の機能を使用します。

  • Auto Scaling グループ内のインスタンスがスケールイン時に終了されないようにするには、インスタンスの保護を使用します。詳細については、「インスタンスの保護」 (Amazon EC2 Auto Scaling ユーザーガイド) を参照してください。

  • Amazon EC2 Auto Scaling による異常なインスタンスの終了を防止するには、ReplaceUnhealthy プロセスを停止します。詳細については、『Amazon EC2 Auto Scaling ユーザーガイド』の「スケーリングプロセスの中断と再開」を参照してください。

  • Amazon EC2 Auto Scaling によってどのインスタンスを最初に終了するかを指定するには、終了ポリシーを選択します。詳細については、「終了ポリシーのカスタマイズ」 (Amazon EC2 Auto Scaling ユーザーガイド) を参照してください。

起動時にインスタンスに対する終了保護を有効にするには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ダッシュボードで、[Launch Instance] を選択し、ウィザードの指示に従います。

  3. [Configure Instance Details] ページで、[Enable termination protection] チェックボックスをオンにします。

実行中または停止中のインスタンスの削除保護を有効にするには

  1. インスタンスを選択し、[Actions]、[Instance Settings] を選択した後、[Change Termination Protection] を選択します。

  2. [Yes, Enable] を選択します。

実行中または停止中のインスタンスの削除保護を無効にするには

  1. インスタンスを選択し、[Actions]、[Instance Settings] を選択した後、[Change Termination Protection] を選択します。

  2. [Yes, Disable] を選択します。

コマンドラインを使用して終了保護を有効または無効にするには

次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセス を参照してください。

インスタンスによって起動されたシャットダウン動作の変更

デフォルトでは、Amazon EBS-backed インスタンスからシャットダウンを開始すると (shutdownpoweroff などのコマンドを使用)、インスタンスが停止します (halt を使用しても、poweroff コマンドは実行されません。使用した場合も、インスタンスは終了しません。代わって、CPU が HLT に配置され、インスタンスは実行されたままになります)。代わりに終了できるように、インスタンスの InstanceInitiatedShutdownBehavior 属性を使用して、この動作を変更できます。インスタンスの実行中または停止中に、この属性を更新できます。

InstanceInitiatedShutdownBehavior 属性は Amazon EC2 コンソールまたはコマンドラインを使用して更新できます。InstanceInitiatedShutdownBehavior 属性は、インスタンス自体のオペレーティングシステムからシャットダウンを実行する場合にのみ適用されます。これは StopInstances API または Amazon EC2 コンソールを使用してインスタンスを停止する場合には適用されません。

コンソールを使用してインスタンスのシャットダウン動作を変更するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

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

  3. インスタンスを選択し、[Actions]、[Instance Settings] を選択した後、[シャットダウン動作の変更] を選択します。現在の動作は既に選択されています。

  4. 動作を変更するには、[シャットダウン動作] リストからオプションを選択し、[Apply] を選択します。

    
						[Change Shutdown Behavior] ダイアログボックス

コマンドラインを使用してインスタンスのシャットダウン動作を変更するには

次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセス を参照してください。

インスタンスの削除で Amazon EBS ボリュームを保持する

インスタンスが終了すると、Amazon EC2 はアタッチされた各 Amazon EBS ボリュームの DeleteOnTermination 属性の値を使用して、ボリュームを保持するか削除するかを決定します。DeleteOnTermination 属性のデフォルト値は、ボリュームがインスタンスのルートボリュームであるかどうかによって異なります。

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

デフォルトでは、インスタンスに EBS ボリュームをアタッチするときは、DeleteOnTermination 属性が false に設定されます。したがって、デフォルトではこれらのボリュームが保持されます。不要な料金の発生を防ぐために、ボリュームを削除する必要があります。詳細については、「Amazon EBS ボリュームの削除」を参照してください。インスタンスが終了したら、保持されたボリュームのスナップショットを作成するか、別のインスタンスにアタッチできます。

使用中の EBS ボリュームの DeleteOnTermination 属性の値を確認するには、インスタンスのブロックデバイスマッピングを参照します。詳細については、「インスタンスブロックデバイスマッピングの EBS ボリュームの表示」を参照してください。

インスタンスの起動時またはインスタンスの実行中に、ボリュームの DeleteOnTermination 属性の値を変更することができます。

コンソールを使用した起動時のルートボリュームの永続的な変更

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

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

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. コンソールダッシュボードで、[Launch Instance] を選択します。

  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 ] を選択します。

インスタンスの詳細ペインでルートデバイスボリュームの詳細を表示することにより、設定を確認できます。[Block devices] の隣にあるルートデバイスボリュームのエントリをクリックします。デフォルトでは、[Delete on termination] は [True] です。デフォルトの動作を変更した場合は、[Delete on termination] が [False] になっています。

コマンドラインを使用した起動時のルートボリュームの永続的な変更

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

たとえば、run-instances コマンドに次のオプションを追加します。

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

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

[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false, "SnapshotId": "snap-1234567890abcdef0", "VolumeType": "gp2" } } ]

コマンドラインを使用して実行中のインスタンスのルートボリュームが存続するように変更する

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

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

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

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

[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false } } ]

トラブルシューティング

インスタンスが通常より長く shutting-down 状態になっている場合、最終的に Amazon EC2 サービス内の自動プロセスによってクリーンアップ (終了) されます。詳細については、「インスタンスの削除 (シャットダウン) のトラブルシューティング」を参照してください。