Linux インスタンスの休止
インスタンスを休止すると、Amazon EC2 によってオペレーティングシステムに休止の実行 (suspend-to-disk) が指示されます。休止により、インスタンスメモリ (RAM) の内容が Amazon Elastic Block Store (Amazon EBS) ルートボリュームに保存されます。Amazon EC2 は、インスタンスのルートボリュームおよびアタッチされた EBS データボリュームを保持します。インスタンスを再起動すると、以下のようになります。
-
EBS ルートボリュームは前の状態に復元されます。
-
RAM の内容が再ロードされます。
-
インスタンスで以前に実行されていたプロセスが再開されます。
-
以前にアタッチされていたデータボリュームが再アタッチされ、インスタンスがそのインスタンス ID を保持します。
インスタンスは、休止が有効になっており、休止の前提条件を満たしている場合のみ、休止状態にすることができます。
インスタンスまたはアプリケーションが、ブートストラップし、メモリフットプリントを構築して完全に生産性を発揮するのに時間がかかる場合は、休止を使用してインスタンスを事前ウォーミングできます。インスタンスを事前ウォーミングするには、次の操作を行います。
-
休止を有効にしてインスタンスを起動します。
-
インスタンスを必要な状態に移行させます。
-
インスタンスを休止し、必要に応じて同じ状態に回復されるようにします。
休止したインスタンスが stopped
状態にある場合、インスタンスの使用量に対して料金は発生しません。RAM の内容が EBS ルートボリュームに転送されて、インスタンスが stopping
状態にある間は、インスタンスの使用量に対して料金が発生します。(この点は、休止せずにインスタンスを停止した場合と異なります。) データ転送に対して料金は発生しません。ただし、EBS ボリュームのストレージに対しては、RAM の内容のストレージも含めて、料金が発生します。
インスタンスが必要なくなった場合、stopped
(休止) 状態にある場合を含め、いつでも終了することができます。詳細については、「インスタンスの終了」を参照してください。
Windows インスタンスでの休止の使用については、「Windows インスタンスの休止」 (Windows インスタンスの Amazon EC2 ユーザーガイド) を参照してください。
スポットインスタンス の休止の詳細については、「中断した スポットインスタンス の休止」を参照してください。
目次
休止の概要
次の図は、休止処理の基本的な概要を示しています。

実行中のインスタンスを休止すると、次の処理が実行されます。
-
休止を開始すると、インスタンスは
stopping
状態に移行します。Amazon EC2 は、休止 (suspend-to-disk) を実行するようにオペレーティングシステムに指示します。休止に伴ってすべてのプロセスがフリーズされ、RAM の内容が EBS ルートボリュームに保存されます。その後に、通常のシャットダウンが実行されます。 -
シャットダウンプロセスが完了した後、インスタンスは
stopped
状態に移行します。 -
EBS ボリュームはインスタンスにアタッチされたままとなり、保存された RAM の内容も含めて、データは保持されます。
-
Amazon EC2 インスタンスストアボリュームはインスタンスにアタッチされたままになりますが、インスタンスストアボリューム上のデータは失われます。
-
殆どの場合、インスタンスは基盤となる新しいホストコンピュータが起動したときに移行されます。これは、インスタンスを停止して起動した場合と同じです。
-
インスタンスを起動すると、インスタンスのブートアッププロセスが実行され、オペレーティングシステムが EBS ルートボリュームから RAM の内容を読み取ります。次に、プロセスのフリーズが解除されて以前の状態が回復されます。
-
インスタンスのプライベート IPv4 アドレスとすべての IPv6 アドレスは保持されます。インスタンスを起動すると、インスタンスは引き続きプライベート IPv4 アドレスとすべての IPv6 アドレスを保持します。
-
Amazon EC2 はパブリック IPv4 アドレスを解放します。インスタンスを開始すると、Amazon EC2 は新しいパブリック IPv4 アドレスをインスタンスに割り当てます。
-
インスタンスには関連付けられた Elastic IP アドレスが保持されます。休止されているインスタンスに関連付けられた Elastic IP アドレスに対して課金されます。EC2-Classic を利用した場合、インスタンスを休止すると、Elastic IP アドレスとインスタンスの関連付けが解除されます。詳細については、「EC2-Classic」を参照してください。
-
ClassicLink インスタンスを休止すると、今までリンクされていた VPC とのリンクが解除されます。インスタンスを起動した後に再び VPC にリンクする必要があります。詳細については、「ClassicLink」を参照してください。
休止と再起動、停止、および終了の違いについては、「再起動、停止、休止、削除の違い」を参照してください。
休止の前提条件
インスタンスを休止するには、以下の前提条件を設定する必要があります。
-
サポートされるインスタンスファミリー
-
C3、C4、C5
-
I3
-
M3、M4、M5、M5a、M5ad
-
R3、R4、R5、R5a、R5ad
-
T2、T3、T3a
-
-
インスタンス RAM サイズ - 150 GB 未満である必要があります。
-
インスタンスサイズ - ベアメタルインスタンスにはサポートされていません。
-
サポートされる AMI (休止状態をサポートする HVM AMI である必要があります):
-
Amazon Linux 2 AMI (2019 年 8 月 29 日以降にリリース)
-
Amazon Linux AMI 2018.03 (2018 年 11 月 16 日以降にリリース)
-
Ubuntu 18.04 LTS - Bionic AMI (シリアル 20190722.1 以降でリリース)*
-
Ubuntu 16.04 LTS - Xenial AMI。* (追加設定 は必須です。)
*Ubuntu 18.04 LTS - Bionic and Ubuntu 16.04 LTS - Xenial を使用するインスタンスでは、KASLR を無効にすることをお勧めします。詳細については、「インスタンスでの KASLR の無効化 (Ubuntu のみ)」を参照してください。
独自の AMI が休止をサポートするように設定するには、「休止をサポートするための既存の AMI の設定」を参照してください。
他のバージョンの Ubuntu および他のオペレーティングシステムはまもなくサポートされる予定です。
Windows のサポートされる AMI の詳細については、「休止の前提条件」 (Windows インスタンスの Amazon EC2 ユーザーガイド) を参照してください。
-
-
ルートボリュームタイプ - インスタンスストアボリュームではなく、EBS ボリュームにする必要があります。
-
サポートされている EBS ボリュームタイプ - 汎用 SSD (
gp2
およびgp3
) または プロビジョンド IOPS SSD (gp2
およびgp3
)。プロビジョンド IOPS SSD ボリュームタイプを選択した場合、休止の最適なパフォーマンスを実現するには、適切な IOPS で EBS ボリュームをプロビジョニングする必要があります。詳細については、「Amazon EBS ボリュームの種類」を参照してください。 -
EBS ルートボリュームサイズ - RAM の内容を保存し、OS やアプリケーションなどの予想される使用量に対応できる大きさにする必要があります。休止を有効にすると、RAM を保存するために起動時にルートボリュームでスペースが割り当てられます。
-
EBS ルートボリュームの暗号化 - 休止を使用するには、休止時にメモリ内にある機密性の高いコンテンツを保護するためにルートボリュームを暗号化する必要があります。RAM データを EBS ルートボリュームに移動する場合は、常に暗号化します。ルートボリュームの暗号化は、インスタンスの起動時に適用されます。ルートボリュームが暗号化された EBS ボリュームであることを確認するには、次の 3 つのオプションのいずれかを使用します。
-
EBS の「シングルステップ」暗号化: 暗号化されていない AMI から暗号化された EBS-Backed EC2 インスタンスを起動し、同時に休止状態を有効にすることができます。詳細については、「EBS-backed AMI での暗号化の利用」を参照してください。
-
デフォルトでの EBS 暗号化: EBS 暗号化をデフォルトで有効にして、AWS アカウントで作成されたすべての新しい EBS ボリュームを暗号化できます。この方法では、インスタンスの起動時に暗号化のインテントを指定することなく、インスタンスの休止を有効にすることができます。詳細については、「デフォルトでの暗号化」を参照してください。
-
暗号化された AMI: 暗号化された AMI を使用してインスタンスを起動することで、EBS 暗号化を有効にすることができます。暗号化されたルートスナップショットが AMI にない場合は、それを新しい AMI にコピーして暗号化をリクエストできます。詳細については、「コピー時に暗号化されていないイメージを暗号化する」および「AMI のコピー」を参照してください。
-
-
起動時に休止を有効にする - 既存のインスタンス (実行中または停止状態) で休止を有効にすることはできません。詳細については、「インスタンスの休止の有効化」を参照してください。
-
購入オプション - この機能は オンデマンドインスタンス および リザーブドインスタンス でのみ使用できます。スポットインスタンス では使用できません。詳細については、「中断した スポットインスタンス の休止」を参照してください。
の制限事項
-
インスタンスを休止すると、インスタンスストアボリューム上のデータは失われます。
-
RAM が 150 GB を超えるインスタンスを休止することはできません。
-
休止状態になっている、または休止状態が有効になっているインスタンスからスナップショットまたは AMI を作成すると、インスタンスに接続できないことがあります。
-
休止状態が有効になっているインスタンスのインスタンスタイプまたはサイズを変更することはできません。
-
Auto Scaling グループであるインスタンスまたは Amazon ECS が使用中のインスタンスを休止することはできません。インスタンスが Auto Scaling グループにあり、そのインスタンスを休止しようとしている場合、Amazon EC2 Auto Scaling サービスは停止したインスタンスを異常と判断し、そのインスタンスを終了して代わりのインスタンスを起動する場合があります。詳細については、Amazon EC2 Auto Scaling ユーザーガイドの「Auto Scaling インスタンスのヘルスチェック」を参照してください。
-
60 日間以上にわたる休止はサポートしていません。60 日より長くインスタンスを保持するには、休止したインスタンスを起動し、停止して、また起動する必要があります。
-
当社では、継続的にプラットフォームをアップグレードやセキュリティパッチで更新しており、休止されている既存のインスタンスと競合する可能性があります。シャットダウンまたは再起動を実行して必要なアップグレードとセキュリティパッチを適用できるように、休止されているインスタンスの起動が必要になる重要な更新については、通知を受け取ります。
休止をサポートするための既存の AMI の設定
独自の AMI を使用して起動したインスタンスを休止するには、最初に休止を有効にするように AMI を設定する必要があります。詳細については、「Amazon Linux インスタンスでのインスタンスソフトウェアの更新」を参照してください。
サポートされる AMI (Ubuntu 16.04 LTS を除く) のいずれかを使用する場合、またはサポートされる AMI のいずれかに基づいて AMI を作成する場合は、休止をサポートするように AMI を設定する必要はありません。これらの AMI は、休止をサポートするように事前に設定されています。休止をサポートするために Ubuntu 16.04 LTS を設定するには、linux-aws-hwe カーネルパッケージバージョン 4.15.0-1058-aws 以降および ec2-hibinit-agent をインストールする必要があります。設定ステップについては、下の [Ubuntu 16.04 - Xenial] タブを選択します。
インスタンスの休止の有効化
インスタンスを休止するには、最初に休止を有効にする必要があります。休止を有効にするには、インスタンスの起動時に有効にする必要があります。
インスタンスの起動後に、そのインスタンスの休止を有効または無効にすることはできません。
インスタンスでの KASLR の無効化 (Ubuntu のみ)
Ubuntu 16.04 LTS - Xenial または Ubuntu 18.04 LTS - Bionic (シリアル 20190722.1 以降でリリース) で新しく起動されたインスタンスで休止を使用するには、KASLR (Kernel Address Space Layout Randomization) を無効にするようお勧めします。Ubuntu 16.04 LTS または Ubuntu 18.04 LTS では、デフォルトで KASLR が有効になっています。KASLR は、Linux カーネルに対する標準的なセキュリティ機能であり、カーネルのベースアドレス値をランダム化することにより、未知のメモリアクセス脆弱性による露出と影響を軽減するために役立ちます。KASLR が有効になっている場合は、インスタンスを休止後に再開できないこともあります。
KASLR の詳細については、Ubuntu の機能に関する記述
Ubuntu で起動したインスタンスで KASLR を無効にするには
-
SSH を使用してインスタンスに接続します。詳細については、「SSH を使用した Linux インスタンスへの接続」を参照してください。
-
適切なエディタで、
/etc/default/grub.d/50-cloudimg-settings.cfg
ファイルを開きます。次の例のように、GRUB_CMDLINE_LINUX_DEFAULT
行を編集して、行末にnokaslr
オプションを追加します。GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295 nokaslr"
-
ファイルを保存し、エディタを終了します。
-
grub 設定を再構築するには、次のコマンドを実行します。
[ec2-user ~]$
sudo update-grub
-
インスタンスを再起動します。
[ec2-user ~]$
sudo reboot
-
次のコマンドの実行時に、
nokaslr
が追加されていることを確認します。[ec2-user ~]$
cat /proc/cmdline
コマンドの出力には、
nokaslr
オプションが含まれている必要があります。
インスタンスの休止
インスタンスは、休止が有効になっており、休止の前提条件を満たしている場合に、休止することができます。インスタンスを休止できない場合、通常のシャットダウンが実行されます。
休止したインスタンスの起動
休止したインスタンスは、停止したインスタンスを起動するのと同じ方法で起動します。
休止のトラブルシューティング
次の情報を使用して、インスタンスを休止するときに発生する可能性がある問題の診断や修復を行います。
起動直後に休止できません
インスタンスの起動後にすぐ休止しようとすると、エラーが発生します。
起動後、休止するまで約 2 分待つ必要があります。
stopping
から stopped
への移行に時間がかかりすぎ、起動後にメモリ状態が復元されません
休止しているインスタンスが stopping
状態から stopped
に移行するのに時間がかかり過ぎ、メモリの状態が起動後に復元されない場合は、休止が正しく設定されていない可能性があります。
インスタンスのシステムログをチェックして、休止に関連するメッセージを探します。システムログにアクセスするには、インスタンスに接続するか、get-console-output コマンドを使用します。hibinit-agent
からログ行を見つけます。ログ行が失敗を示している場合、またはログ行がない場合、起動時に休止の設定に失敗している可能性が高いと思われます。
たとえば、メッセージ「hibinit-agent: Insufficient disk space.
Cannot create setup for hibernation. Please allocate a larger root
device.
」は、インスタンスのルートボリュームの大きさが十分ではないことを示しています。
hibinit-agent
の最後のログ行が hibinit-agent: Running: swapoff /swap
である場合、休止は正常に設定されています。
これらのプロセスで何もログが表示されない場合、AMI が休止をサポートしていない可能性があります。サポート対象の AMI の詳細については、「休止の前提条件」を参照してください。独自の AMI を使用した場合は、休止をサポートするための既存の AMI の設定 に関する指示に従っていることを確認します。
インスタンスの stopping 状態での停止
インスタンスを休止し、stopping
状態で止まったように見える場合は、インスタンスを強制終了できます。詳細については、「インスタンスの停止に関するトラブルシューティング」を参照してください。