インスタンスの停止と起動 - Amazon Elastic Compute Cloud

インスタンスの停止と起動

インスタンスにルートデバイスとして Amazon EBS ボリュームがある場合、そのインスタンスを停止して起動できます。インスタンスにはそのインスタンス ID が保持されますが、「停止したインスタンスの変更」セクションで述べられているように変更される可能性があります。インスタンスを停止すると、インスタンスはシャットダウンします。インスタンスを起動すると、通常、インスタンスは基盤となる新しいホストコンピュータに移行され、新しいパブリック IPv4 アドレスが割り当てられます。

インスタンスを停止しても、そのインスタンスは削除されません。インスタンスが必要なくなったら、終了することができます。詳細については、「インスタンスの終了」を参照してください。インスタンスを休止状態にしてインスタンスメモリ (RAM) の内容を保存する場合は、を参照してください。オンデマンドインスタンスまたはスポットインスタンスを休止状態にするインスタンスライフサイクルアクションの違いについては、を参照してください。再起動、停止、休止、削除の違い

AWS は、再起動、停止/開始、またはリタイアなど、インスタンスのイベントを予定できます。管理対象イベントの種類とAWS、予定されているイベントに関する通知を表示および受信する方法については、を参照してくださいインスタンスの予定されたイベント

次の図は、Amazon EC2 インスタンスを停止したときに失われるものと残るものを示しています。インスタンスが停止すると、アタッチされたインスタンスストアボリュームと、それらのボリュームに保存されているデータ、インスタンス RAM に保存されているデータ、およびインスタンスに Elastic IP アドレスが関連付けられていない場合は割り当てられたパブリック IPv4 アドレスがすべて失われます。インスタンスには、割り当てられたプライベート IPv4 アドレス、インスタンスに関連付けられた Elastic IP アドレス、すべての IPv6 アドレス、アタッチされている Amazon EBS ボリューム、およびそれらのボリューム上のデータが保持されます。


			インスタンスが停止すると、パブリック IPv4 アドレス、RAM、およびインスタンスストレージデータは失われます。

インスタンスの起動と停止に関連するコスト

インスタンスの停止と起動には以下のコストがかかります。

停止 — インスタンスの状態が shutting-down または terminated に変わると、そのインスタンスの料金は発生しなくなります。停止したインスタンスの使用料やデータ転送料は請求されません。Amazon EBS ストレージボリュームの保存には料金がかかります。

Starting — 停止したインスタンスを再起動するたびに、1 分間分の最低料金が課金されます。1 分経過した後は、使用した秒数のみ課金されます。例えば、インスタンスを 20 秒間実行して停止した場合は、1 分間分課金されます。インスタンスを 3 分 40 秒実行した場合は、ちょうど 3 分 40 秒間分課金されます。

実行中および停止中のインスタンスをすべて検索

Amazon EC2 グローバルビューでは、すべてにわたって、実行中と停止中のすべての AWS リージョン のインスタンスを 1 つのページで確認できます。これは、インベントリを取得し、忘れられたインスタンスを見つけるのに特に有用です。グローバルビューを使用する方法については、「Amazon EC2 Global View」を参照してください。

インスタンスを停止するための前提条件

停止できるのは Amazon EBS-Backed インスタンスだけです。インスタンスストアボリュームにバッキングされたインスタンスは、[停止] アクションをサポートしません。2 つのボリュームタイプの違いをよりよく理解するには、を参照してくださいAmazon EC2 インスタンスのストレージオプション

インスタンスのルートデバイスタイプを確認するには、Amazon EC2 コンソールまたはを使用できます。AWS CLI

Amazon EC2 console

Amazon EC2 コンソールで [インスタンス] ペインを開き、インスタンスを選択します。[ルートデバイスタイプ] は、[ストレージ] タブの [ルートデバイスの詳細] に表示されます。

AWS CLI

インスタンスのルートデバイスタイプを確認するには、describe-instances AWS CLI コマンドを実行して RootDeviceType の出力を確認します: ebs または instance-store。詳細については、「AWS CLI コマンドリファレンス」の「describe-instances」を参照してください。

インスタンスを手動で停止して起動する

コンソールまたはコマンドラインを使用して、Amazon EBS-Backed インスタンスを起動および停止できます。

警告

インスタンスを停止すると、インスタンスストアボリューム上のデータは消去されます。インスタンスを停止する前に、必要なデータをインスタンスストアボリュームから永続的ストレージ (Amazon EBS や Amazon S3 など) にコピーしていることを確認します。インスタンスストアボリュームにバッキングされたインスタンスは、[停止] アクションをサポートしません。

Console
Amazon EBS-Backed インスタンスを停止および起動するには
  1. AWS Management Console にサインインし、Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  3. [Instance state (インスタンスの状態)]、[Stop instance (インスタンスの停止)] の順に選択します。このオプションが無効になっている場合は、インスタンスが既に停止しているか、またはルートボリュームがインスタンスストアボリュームです。

  4. 確認を求められたら、[Stop] を選択します。インスタンスが停止するまで、数分かかる場合があります。

  5. (オプション) インスタンスが停止されている間、特定のインスタンス属性を変更できます。詳細については、「停止したインスタンスの変更」を参照してください。

  6. 停止されているインスタンスを開始するには、インスタンスを選択後、[インスタンスの状態][インスタンスの開始] の順に選択します。

  7. インスタンスが running 状態になるまで、数分かかる場合があります。

Command line
Amazon EBS-Backed インスタンスを停止および起動するには

以下のいずれかのコマンドを実行します:

インスタンスから halt コマンドを使用しても、シャットダウンは開始されません。haltコマンドを使用すると、インスタンスは終了せず、代わりに CPU をに配置して HLT CPU 操作を一時停止します。インスタンスは実行状態のままです。

インスタンスを自動的に停止して起動する

次のサービスを使用して、インスタンスの停止と起動を自動化できます。

AWS でインスタンススケジューラを使用する

インスタンススケジューラを AWS で使用して、EC2 インスタンスの開始と停止を自動化することができます。詳細については、「CloudFormation で Instance Scheduler を使用して EC2 インスタンスをスケジュールするにはどうすればよいですか?」を参照してください。追加料金が適用されることに注意してください。

AWS Lambda および Amazon EventBridge ルールを使用する

Lambda と EventBridge ルールを使用して、スケジュール上のインスタンスを停止および開始することができます。詳細については、「Lambda を使用して、Amazon EC2 インスタンスを一定の間隔で停止および起動するにはどうすればよいですか?」を参照してください。

Amazon EC2 Auto Scaling

アプリケーションの負荷を処理できる Amazon EC2 インスタンスの数が適切であることを確認するには、Auto Scaling グループを作成します。 Amazon EC2 Auto Scalingアプリケーションが常にトラフィック需要を処理する適切な容量を確保し、必要な場合にのみインスタンスを起動することでコストを節約できます。不要なインスタンスを停止するのではなく、Amazon EC2 Auto Scaling終了させることに注意してください。自動スケーリンググループを設定するには、「Amazon EC2 Auto Scalingをはじめる」を参照してください。

インスタンスを停止するとどうなるか

インスタンスを停止すると、変更はインスタンスの OS レベルで登録され、一部のシステムリソースは失われ、一部は存続します。

インスタンスを停止すると、OSレベルで以下のように登録されます
  • API リクエストは、ボタンのクリックイベントをゲストに送信します。

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

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

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

  • インスタンス OS が数分以内に正常にシャットダウンされない場合は、ハードシャットダウンが実行されます。

  • インスタンスが実行を停止します。

  • インスタンスのステータスが stopping になり、その後 stopped になります。

  • [自動スケーリング] インスタンスがAuto Scalingグループにある場合、インスタンスが running 以外のAmazon EC 2状態にある場合、またはステータスチェックのステータスが impaired になった場合、Amazon EC2 Auto Scaling はインスタンスを異常と見なして置き換えます。詳細については、「Amazon EC2 Auto Scaling ユーザーガイド」の「Auto Scaling インスタンスのヘルスチェック」を参照してください。

インスタンスを停止すると、次のものが失われます。
  • RAM に保存されているデータ。

  • インスタンスストアボリュームに保存されているデータは失われます。

  • 起動時または開始時に Amazon EC2 がインスタンスに自動的に割り当てられたパブリック IPv4 アドレス。パブリック IPv4 アドレスに変更を加えないようにするには、インスタンスに Elastic IP アドレスを関連付けます。

インスタンスを停止しても、次のものは保持されます。
  • アタッチされた Amazon EBS ボリューム。

  • Amazon EBS ボリュームに保存されているデータ。

  • プライベート IPv4 アドレス。

  • IPv6 アドレス。

  • インスタンスに関連付けられた Elastic IP アドレス。インスタンスが停止すると、関連する Elastic IP アドレスに対する課金が始まります

Mac インスタンスを停止するとどうなるかについては、「Mac インスタンスを停止して終了する」を参照してください。

インスタンスを起動するとどうなるか

インスタンスを起動すると、変更はインスタンスレベルで登録されます。

EC2 インスタンスを起動すると、次のことが起こります。
  • ほとんどの場合、基盤となる新しいホストコンピュータにインスタンスが移行します (ただし、専有ホスト設定でインスタンスがホストに割り当てられた場合などは、現在のホストにインスタンスが残ります)。

  • パブリック IPv4 アドレスを受信するようにインスタンスが設定されている場合、Amazon EC2 は新しいパブリック IPv4 アドレスをインスタンスに割り当てます。パブリック IPv4 アドレスに変更を加えないようにするには、インスタンスに Elastic IP アドレスを関連付けます。

停止したインスタンスの変更

インスタンスが停止している間、他のボリュームと同様にそのルートボリュームを扱い、変更することができます (ファイルシステムの問題を修復したり、ソフトウェアを更新したりするなど)。

以下のインスタンスの属性は停止されると、変更できます。
  • インスタンスタイプ

  • ユーザーデータ

  • Kernel

  • RAM ディスク

インスタンスの実行中にこれらの属性を変更しようとすると、Amazon EC2 が IncorrectInstanceState エラーを返します。

Amazon EC2 コンソールまたは AWS CLI を使用して、停止したインスタンスの次の属性を変更できます:
  • インスタンスタイプ

  • ユーザーデータ

  • EBS 最適化

Amazon EC2 コンソールを使用した以下の属性の変更はサポートされていません。
  • DeleteOnTermination

  • Kernel

  • RAM ディスク

インスタンス属性を変更

インスタンス属性は Amazon EC2 コンソールまたはコマンドラインを使用して更新できます。

Console
AWS Management Console で以下を変更するには 次のリソースを参照してください。

インスタンスタイプ

インスタンスタイプを変更する

ユーザーデータ

ユーザーデータおよびコンソール

EBS 最適化

EBS 最適化の変更

DeleteOnTerminationルートボリュームの属性

実行中のインスタンスのブロックデバイスマッピングの更新 。この属性を変更するためにインスタンスを停止する必要はありません。

Command line
コマンドラインを使用してインスタンス属性を変更するには

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

インスタンスのルートボリュームを変更

次の手順を実行すると、インスタンスのルートボリュームを変更できます。

  1. ボリュームをストップどインスタンスからデタッチします。

  2. 実行中のインスタンスに EBS ボリュームを接続する

  3. ボリュームタイプの変更

  4. ボリュームを実行インスタンスからデタッチします。

  5. 停止したインスタンスにボリュームを再接続します。

インスタンスのブロックデバイスマッピングにルートデバイスとして指定されたストレージデバイス名を使用して、ボリュームを接続解除していることを確認します。ボリュームをデタッチしてインスタンスにアタッチする方法の詳細な手順については、Linux インスタンスから Amazon EBS ボリュームをデタッチします。 および インスタンスへの Amazon EBS ボリュームのアタッチ を参照してください。ブロックデバイスマッピングを指定する方法の詳細については、ブロックデバイスマッピング を参照してください。

停止保護を有効にします

インスタンスが誤って停止するのを防ぐために、インスタンスに対する停止保護を有効にすることができます。停止保護は、インスタンスを偶発的な終了からも保護します。

Amazon EC2 ModifyInstanceAttribute API の DisableApiStop 属性は、Amazon EC2 コンソール、AWS CLI、Amazon EC2 API を使用してインスタンスを停止できるかどうかを制御します。この属性の値は、インスタンスの起動時、インスタンスの実行中、またはインスタンスの停止時に設定できます。

制限事項
  • 停止保護を有効にしても、shutdownpoweroff などのオペレーティングシステムコマンドによりインスタンスからシャットダウンを開始してインスタンスを誤って停止することは、防げません。

  • 停止保護を有効にしても、インスタンスにインスタンスを停止する予定されたイベントがある場合、AWS がインスタンスを停止するのを防ぐことはできません。

  • 停止保護を有効にしても、インスタンスが異常な場合やスケールインイベント中にAmazon EC2 Auto Scaling がインスタンスを終了するのを防ぐことはできません。スケールイン時に Auto Scaling グループが特定のインスタンスを終了できるかどうかを制御するには、インスタンスのスケールイン保護を使用します。

  • 停止保護は、インスタンスが誤って停止するのを防ぐだけでなく、コンソール、AWS CLI、または API を使用して誤って終了するのを防ぎます。ただし、DisableApiTermination 属性は自動的に変更されません。DisableApiStop 属性が false に設定されている場合、DisableApiTermination 属性の設定によって、コンソール、AWS CLI 、またはAPIを使用してインスタンスを終了できるかどうかが決まります。詳細については、「インスタンスの終了」を参照してください。

  • インスタンスストアでバックアップされたインスタンスの停止保護は有効にできません。

  • スポットインスタンスの停止保護は有効にできません。

  • 停止保護を有効または無効にすると、Amazon EC2 API は最終的な整合性モデルに従います。つまり、停止保護属性を設定するコマンドを実行した結果が、それ以降に実行するすべてのコマンドにすぐには表示されない場合があります。詳細については、「Amazon EC2 API Referenc」(Amazon EC2 API レファレンス) の「Eventual consistency」(結果整合性) を参照してください。

起動時にインスタンスに対する停止保護を有効にします

次のいずれかの方法を使用して、インスタンスを起動するときにインスタンスに対する停止保護を有効にできます。

Console
起動時にインスタンスに対する停止保護を有効にするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ダッシュボードで、[Launch Instance (インスタンスの起動)] を選択します。

  3. [new launch instance wizard] (新しいインスタンス起動ウィザード) でインスタンスを設定します。

  4. ウィザードで、[高度な詳細][保護停止][有効にする] を選択して、保護を停止します。

AWS CLI
起動時にインスタンスに対する停止保護を有効にするには

run-instancesAWS CLIコマンドを使用して、インスタンスを起動し、disable-api-stopパラメータを指定します。

aws ec2 run-instances \ --image-id ami-a1b2c3d4e5example \ --instance-type t3.micro \ --key-name MyKeyPair \ --disable-api-stop \ ...

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

次のいずれかの方法を使用して、インスタンスが実行中または停止したときにインスタンスに対する停止保護を有効にできます。

Console
実行中または停止中のインスタンスの停止保護を有効にするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. 左のナビゲーションペインで、[Instances] (インスタンス) をクリックします。

  3. インスタンスを選択してから、[アクション] > [インスタンスの設定] > [保護停止を変更する] を選択します。

  4. [Enable] (有効化) チェックボックスを選択し、[Save] (保存) を選択します。

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

modify-instance-attributeAWS CLIコマンドを使用して、disable-api-stopパラメターを指定します。

aws ec2 modify-instance-attribute \ --instance-id i-1234567890abcdef0 \ --disable-api-stop

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

次のいずれかの方法を使用して、実行中または停止したインスタンスに対する停止保護を無効にすることができます。

Console
実行中または停止中のインスタンスの停止保護を無効にするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. 左のナビゲーションペインで、[Instances] (インスタンス) をクリックします。

  3. インスタンスを選択してから、[Actions] (アクション)、[Instance Settings] (インスタンスの設定)、[Change Stop Protection] (停止保護の変更) を選択します。

  4. [Enable] (有効化) チェックボックスをオフにして、[Save] (保存) を選択します。

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

modify-instance-attributeAWS CLIコマンドを使用して、no-disable-api-stopパラメターを指定します。

aws ec2 modify-instance-attribute \ --instance-id i-1234567890abcdef0 \ --no-disable-api-stop

アプリケーションの応答をテストして停止して起動する

インスタンスが停止後に起動された場合のアプリケーションの応答をテストするには、AWS Fault Injection Service を使用します。詳細については、AWS Fault Injection Service ユーザーガイドを参照してください。

インスタンスの停止に関するトラブルシューティング

Amazon EBS-Backed インスタンスを停止し、stopping 状態に 「stuck」 が表示されている場合、インスタンスを強制終了できます。詳細については、「インスタンスの停止に関するトラブルシューティング」を参照してください。