Linux インスタンスの休止 - Amazon Elastic Compute Cloud

Linux インスタンスの休止

インスタンスを休止すると、Amazon EC2 によってオペレーティングシステムに休止の実行 (suspend-to-disk) が指示されます。休止により、インスタンスメモリ (RAM) の内容が Amazon Elastic Block Store (Amazon EBS) ルートボリュームに保存されます。Amazon EC2 は、インスタンスのルートボリュームおよびアタッチされた EBS データボリュームを保持します。インスタンスを再起動すると、以下のようになります。

  • EBS ルートボリュームは前の状態に復元されます。

  • RAM の内容が再ロードされます。

  • インスタンスで以前に実行されていたプロセスが再開されます。

  • 以前にアタッチされていたデータボリュームが再アタッチされ、インスタンスがそのインスタンス ID を保持します。

インスタンスは、休止が有効になっており休止の前提条件を満たしている場合のみ、休止状態にすることができます。

インスタンスまたはアプリケーションが、ブートストラップし、メモリフットプリントを構築して完全に生産性を発揮するのに時間がかかる場合は、休止を使用してインスタンスを事前ウォーミングできます。インスタンスを事前ウォーミングするには、次の操作を行います。

  1. 休止を有効にしてインスタンスを起動します。

  2. インスタンスを必要な状態に移行させます。

  3. インスタンスを休止し、必要に応じて同じ状態に回復されるようにします。

休止したインスタンスが 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。

  • インスタンス 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) またはプロビジョンド IOPS SSD (io1 または io2)。プロビジョンド IOPS SSD (io1 または io2) ボリュームタイプを選択した場合、休止の最適なパフォーマンスを実現するには、適切な 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 のコピー」を参照してください。

  • 起動時に休止を有効にする - 既存のインスタンス (実行中または停止状態) で休止を有効にすることはできません。詳細については、「インスタンスの休止の有効化」を参照してください。

  • 購入オプション - この機能は オンデマンドインスタンス および リザーブドインスタンス でのみ使用できます。スポットインスタンス では使用できません。詳細については、「中断した スポットインスタンス の休止」を参照してください。

制約事項

  • 以下のアクションは、休止ではサポートされません。

    • 休止したインスタンスのタイプまたはサイズを変更する

    • 休止が有効にされているインスタンスからスナップショットまたは AMI を作成する

    • 休止したインスタンスからスナップショットまたは AMI を作成する

  • インスタンスを休止すると、インスタンスストアボリューム上のデータは失われます。

  • RAM が 150 GB を超えるインスタンスを休止することはできません。

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

Amazon Linux 2

Amazon Linux 2 AMI で休止がサポートされるように設定するには

  1. 次のコマンドを使用して、最新のカーネル 4.14.138-114.102 以降に更新します。

    [ec2-user ~]$ sudo yum update kernel
  2. 次のコマンドを使用してリポジトリから ec2-hibinit-agent パッケージをインストールします。

    [ec2-user ~]$ sudo yum install ec2-hibinit-agent
  3. 次のコマンドを実行して、インスタンスを再起動します。

    [ec2-user ~]$ sudo reboot
  4. 次のコマンドを実行して、カーネルバージョンが 4.14.138-114.102 以降に更新されていることを確認します。

    [ec2-user ~]$ uname -a
  5. インスタンスを停止し、AMI を作成します。詳細については、「インスタンスからの Linux AMI の作成」を参照してください。

Amazon Linux

Amazon Linux AMI で休止がサポートされるように設定するには

  1. 次のコマンドを使用して、最新のカーネルを 4.14.77-70.59 以降に更新します。

    [ec2-user ~]$ sudo yum update kernel
  2. 次のコマンドを使用してリポジトリから ec2-hibinit-agent パッケージをインストールします。

    [ec2-user ~]$ sudo yum install ec2-hibinit-agent
  3. 次のコマンドを実行して、インスタンスを再起動します。

    [ec2-user ~]$ sudo reboot
  4. 次のコマンドを実行して、カーネルバージョンが 4.14.77-70.59 以降に更新されていることを確認します。

    [ec2-user ~]$ uname -a
  5. インスタンスを停止し、AMI を作成します。詳細については、「インスタンスからの Linux AMI の作成」を参照してください。

Ubuntu 18.04 - Bionic

Ubuntu 18.04 LTS AMI で休止がサポートされるように設定するには

  1. 次のコマンドを使用して、最新のカーネルを 4.15.0-1044 以降に更新します。

    [ec2-user ~]$ sudo apt update [ec2-user ~]$ sudo apt dist-upgrade
  2. 次のコマンドを使用してリポジトリから ec2-hibinit-agent パッケージをインストールします。

    [ec2-user ~]$ sudo apt install ec2-hibinit-agent
  3. 次のコマンドを実行して、インスタンスを再起動します。

    [ec2-user ~]$ sudo reboot
  4. 次のコマンドを実行して、カーネルバージョンが 4.15.0-1044 以降に更新されていることを確認します。

    [ec2-user ~]$ uname -a
Ubuntu 16.04 - Xenial

Ubuntu 16.04 LTS AMI で休止がサポートされるように設定するには

  1. 次のコマンドを使用して、最新のカーネルを 4.15.0-1058-aws 以降に更新します。

    [ec2-user ~]$ sudo apt update [ec2-user ~]$ sudo apt install linux-aws-hwe
    注記

    linux-aws-hwe カーネルパッケージは、Canonical によって完全にサポートされています。このパッケージは、Ubuntu 16.04 LTS の標準サポートが 2021 年 4 月に終了するまで、定期的な更新を受け取り、拡張セキュリティメンテナンスサポートが 2024 年に終了するまで、追加のセキュリティ更新プログラムを受け取ります。詳細については、「Ubuntu 16.04 LTS 用 Amazon EC2 の休止機能が利用可能に」を参照してください。

  2. 次のコマンドを使用してリポジトリから ec2-hibinit-agent パッケージをインストールします。

    [ec2-user ~]$ sudo apt install ec2-hibinit-agent
  3. 次のコマンドを実行して、インスタンスを再起動します。

    [ec2-user ~]$ sudo reboot
  4. 次のコマンドを実行して、カーネルバージョンが 4.15.0-1058-aws 以降に更新されていることを確認します。

    [ec2-user ~]$ uname -a

インスタンスの休止の有効化

インスタンスを休止するには、最初に休止を有効にする必要があります。休止を有効にするには、インスタンスの起動時に有効にする必要があります。

重要

インスタンスの起動後に、そのインスタンスの休止を有効または無効にすることはできません。

Console

コンソールを使用して休止を有効にするには

  1. インスタンス起動ウィザードを使用してインスタンスを起動する」の手順に従います。

  2. [Amazon マシンイメージ (AMI)] ページで、休止をサポートする AMI を選択します。サポート対象の AMI の詳細については、「休止の前提条件」を参照してください。

  3. [インスタンスタイプの選択] ページで、サポート対象のインスタンスタイプを選択し、[次の手順: インスタンスの詳細の設定] を選択します。サポート対象のインスタンスタイプの詳細については、「休止の前提条件」を参照してください。

  4. [インスタンスの詳細設定] ページの [Stop - Hibernate Behavior (停止 - 休止動作)] で、[Enable hibernation as an additional stop behavior (追加の停止動作として休止を有効にする)] チェックボックスをオンにします。

  5. [ストレージの追加] ページで、ルートボリュームに関する次の情報を指定します。

    • [サイズ (GiB)] に、EBS ルートボリュームのサイズを入力します。ボリュームは、RAM の内容を格納して予想使用量に対応できるだけのサイズにする必要があります。

    • [ボリュームタイプ] で、サポートされている EBS ボリュームタイプである汎用 SSD (gp2) またはプロビジョンド IOPS SSD (io1 または io2) を選択します。

    • [暗号化] で、ボリュームの暗号化キーを選択します。この AWS リージョンでデフォルトで暗号化を有効にした場合、デフォルトの暗号化キーが選択されます。

    ルートボリュームの前提条件の詳細については、「休止の前提条件」を参照してください。

  6. ウィザードに従って続行します。[Review Instance Launch (インスタンス作成の確認)] ページでオプションの確認が終了したら、[Launch (起動)] を選択します。詳細については、「インスタンス起動ウィザードを使用してインスタンスを起動する」を参照してください。

AWS CLI

AWS CLI を使用して休止を有効にするには

run-instances コマンドを使用して、インスタンスを起動します。--block-device-mappings file://mapping.json パラメータを使用して EBS ルートボリュームのパラメータを指定し、--hibernation-options Configured=true パラメータを使用して休止状態を有効にします。

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type m5.large \ --block-device-mappings file://mapping.json \ --hibernation-options Configured=true \ --count 1 \ --key-name MyKeyPair

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

[ { "DeviceName": "/dev/xvda", "Ebs": { "VolumeSize": 30, "VolumeType": "gp2", "Encrypted": true } } ]
注記

DeviceName の値は、AMI に関連付けられているルートデバイス名と一致する必要があります。ルートデバイス名を確認するには、次のように describe-images コマンドを使用します。

aws ec2 describe-images --image-id ami-0abcdef1234567890

この AWS リージョンで暗号化をデフォルトで有効にした場合は、"Encrypted": true を省略できます。

PowerShell

AWS Tools for Windows PowerShell を使用して休止を有効にするには

New-EC2Instance コマンドを使用してインスタンスを起動します。EBS ルートボリュームを指定します。最初にブロックデバイスマッピングを定義し、次に -BlockDeviceMappings パラメータを使用してそれをコマンドに追加します。-HibernationOptions_Configured $true パラメータを使用して休止を有効にします。

PS C:\> $ebs_encrypt = New-Object Amazon.EC2.Model.BlockDeviceMapping PS C:\> $ebs_encrypt.DeviceName = "/dev/xvda" PS C:\> $ebs_encrypt.Ebs = New-Object Amazon.EC2.Model.EbsBlockDevice PS C:\> $ebs_encrypt.Ebs.VolumeSize = 30 PS C:\> $ebs_encrypt.Ebs.VolumeType = "gp2" PS C:\> $ebs_encrypt.Ebs.Encrypted = $true PS C:\> New-EC2Instance ` -ImageId ami-0abcdef1234567890 ` -InstanceType m5.large ` -BlockDeviceMappings $ebs_encrypt ` -HibernationOptions_Configured $true ` -MinCount 1 ` -MaxCount 1 ` -KeyName MyKeyPair
注記

DeviceName の値は、AMI に関連付けられているルートデバイス名と一致する必要があります。ルートデバイス名を確認するには、次のように Get-EC2Image コマンドを使用します。

Get-EC2Image -ImageId ami-0abcdef1234567890

この AWS リージョンで暗号化をデフォルトで有効にした場合は、ブロックデバイスマッピングから Encrypted = $true を省略できます。

 

新しいコンソール

コンソールを使用して、インスタンスで休止が有効かどうかを表示するには

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

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

  3. インスタンスを選択し、[Details (詳細)] タブの [Instance details (インスタンスの詳細)] セクションで、[Stop-hibernate behavior (停止 - 休止動作)] を確認します。[有効] は、インスタンスが休止に対して有効であることを示します。

古いコンソール

コンソールを使用して、インスタンスで休止が有効かどうかを表示するには

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

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

  3. インスタンスを選択し、詳細ペインの [Stop - Hibernation behavior (停止 - 休止動作)] を確認します。[有効] は、インスタンスが休止に対して有効であることを示します。

AWS CLI

AWS CLI を使用して、インスタンスで休止が有効かどうかを表示するには

describe-instances コマンドを使用し、--filters "Name=hibernation-options.configured,Values=true" パラメータを指定して、休止が有効になっているインスタンスをフィルタリングします。

aws ec2 describe-instances \ --filters "Name=hibernation-options.configured,Values=true"

次の出力フィールドは、インスタンスで休止が有効になっていることを示しています。

"HibernationOptions": { "Configured": true }
PowerShell

AWS Tools for Windows PowerShell を使用して、インスタンスで休止が有効になっていることを確認するには

Get-EC2Instance コマンドを使用し、-Filter @{ Name="hibernation-options.configured"; Value="true"} パラメータを指定して、休止が有効になっているインスタンスをフィルタリングします。

Get-EC2Instance ` -Filter @{ Name="hibernation-options.configured"; Value="true"}

休止が有効になっている EC2 インスタンスが出力に一覧表示されます。

インスタンスでの 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 を無効にするには

  1. SSH を使用してインスタンスに接続します。詳細については、「SSH を使用した Linux インスタンスへの接続」を参照してください。

  2. 適切なエディタで、/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"
  3. ファイルを保存し、エディタを終了します。

  4. grub 設定を再構築するには、次のコマンドを実行します。

    [ec2-user ~]$ sudo update-grub
  5. インスタンスを再起動します。

    [ec2-user ~]$ sudo reboot
  6. 次のコマンドの実行時に、nokaslr が追加されていることを確認します。

    [ec2-user ~]$ cat /proc/cmdline

    コマンドの出力には、nokaslr オプションが含まれている必要があります。

インスタンスの休止

インスタンスは、休止が有効になっており休止の前提条件を満たしている場合に、休止することができます。インスタンスを休止できない場合、通常のシャットダウンが実行されます。

新しいコンソール

コンソールを使用して Amazon EBS-Backed インスタンスを休止するには

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

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

  3. インスタンスを選択し、[Instance state (インスタンスの状態)]、[Hibernate instance (インスタンスの休止)] の順に選択します。[Hibernate instance (インスタンスの休止)] が無効になっている場合は、インスタンスが既に休止または停止しているか、休止できません。詳細については、「休止の前提条件」を参照してください。

  4. 確認を求めるメッセージが表示されたら、[休止] を選択します。インスタンスが休止するまで、数分かかる場合があります。インスタンスが休止に入るとき、インスタンスの状態が [Stopping (停止中)] に変わり、インスタンスが休止すると [Stopped (停止)] になります。

古いコンソール

コンソールを使用して Amazon EBS-Backed インスタンスを休止するには

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

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

  3. インスタンスを選択し、[操作]、[インスタンスの状態]、[停止] の順に選択します。[Stop - Hibernate (停止 - 休止)] が無効になっている場合は、インスタンスが既に休止または停止しているか、休止できません。詳細については、「休止の前提条件」を参照してください。

  4. 確認ダイアログボックスで [Yes, Stop - Hibernate (停止する - 休止)] を選択します。インスタンスが休止するまで、数分かかる場合があります。インスタンスが休止に入るとき、インスタンスの状態が [停止中] に変わり、インスタンスが休止すると [停止] になります。

AWS CLI

AWS CLI を使用して Amazon EBS-Backed インスタンスを休止するには

stop-instances コマンドを使用して --hibernate パラメータを指定します。

aws ec2 stop-instances \ --instance-ids i-1234567890abcdef0 \ --hibernate
PowerShell

AWS Tools for Windows PowerShell を使用して Amazon EBS-Backed インスタンスを休止するには

Stop-EC2Instance コマンドを使用して、-Hibernate $true パラメータを指定します。

Stop-EC2Instance ` -InstanceId i-1234567890abcdef0 ` -Hibernate $true

 

新しいコンソール

コンソールを使用して、インスタンスで休止が開始されたかどうかを表示するには

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

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

  3. インスタンスを選択し、[Details (詳細)] タブの [Instance Details (インスタンスの詳細)] セクションで、[State transition message (状態遷移メッセージ)] を確認します。Client.UserInitiatedHibernate: User initiated hibernate というメッセージは、インスタンスで休止が開始されたことを示します。

古いコンソール

コンソールを使用して、インスタンスで休止が開始されたかどうかを表示するには

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

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

  3. インスタンスを選択し、詳細ペインの [状態遷移の理由メッセージ] を確認します。Client.UserInitiatedHibernate: User initiated hibernate というメッセージは、インスタンスで休止が開始されたことを示します。

AWS CLI

AWS CLI を使用して、インスタンスで休止が開始されたかどうかを表示するには

describe-instances コマンドを使用して、state-reason-code フィルターを指定し、休止が開始されたインスタンスを確認します。

aws ec2 describe-instances \ --filters "Name=state-reason-code,Values=Client.UserInitiatedHibernate"

出力の次のフィールドは、そのインスタンスで休止が開始されたことを示しています。

"StateReason": { "Code": "Client.UserInitiatedHibernate" }
PowerShell

AWS Tools for Windows PowerShell を使用して、インスタンスで休止が開始されたかどうかを確認するには

Get-EC2Instance コマンドを使用し、state-reason-code フィルタを指定して休止が開始されたインスタンスを確認します。

Get-EC2Instance ` -Filter @{Name="state-reason-code";Value="Client.UserInitiatedHibernate"}

休止が開始された EC2 インスタンスが出力に一覧表示されます。

休止したインスタンスの起動

休止したインスタンスは、停止したインスタンスを起動するのと同じ方法で起動します。

新しいコンソール

コンソールを使用して、休止したインスタンスを起動するには

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

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

  3. 休止したインスタンスを選択し、[Instance state (インスタンスの状態)]、[Start instance (インスタンスの開始)] の順に選択します。インスタンスが running 状態になるまで、数分かかる場合があります。この間、インスタンスの ステータスチェック では、インスタンスが起動するまで、インスタンスは失敗状態にあるように表示されます。

古いコンソール

コンソールを使用して、休止したインスタンスを起動するには

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

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

  3. 休止したインスタンスを選択し、[操作]、[インスタンスの状態]、[開始] の順に選択します。インスタンスが running 状態になるまで、数分かかる場合があります。この間、インスタンスの ステータスチェック では、インスタンスが起動するまで、インスタンスは失敗状態にあるように表示されます。

AWS CLI

AWS CLI を使用して、休止したインスタンスを起動するには

start-instances コマンドを使用します。

aws ec2 start-instances \ --instance-ids i-1234567890abcdef0
PowerShell

AWS Tools for Windows PowerShell を使用して、休止したインスタンスを起動するには

Start-EC2Instance コマンドを使用します。

Start-EC2Instance ` -InstanceId i-1234567890abcdef0

休止のトラブルシューティング

次の情報を使用して、インスタンスを休止するときに発生する可能性がある問題の診断や修復を行います。

起動直後に休止できません

インスタンスの起動後にすぐ休止しようとすると、エラーが発生します。

起動後、休止するまで約 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 状態で止まったように見える場合は、インスタンスを強制終了できます。詳細については、「インスタンスの停止に関するトラブルシューティング」を参照してください。