EC2 Hibernation 機能の仕組みと使い所完全ガイド

EC2 の Stop と区別される第 3 の状態「Hibernation(休止)」を整理。RAM 内容を EBS に書き戻して停止 → 起動時にプロセス・メモリ状態ごと復元する仕組み、Linux 150 GiB / Windows 16 GiB といった前提条件、暗号化必須・60 日制限・Auto Scaling 非対応などの制約、現場で生きるユースケース 5 つまでまとめる。

EC2 を「止めるけど次回はすぐ作業を再開したい」— その間にあるのが Hibernation(休止)。Stop と Terminate の中間に位置する第 3 の状態を、現場の使い所と一緒に整理する。


📑 目次

  1. 概要(端的に)
  2. Stop / Hibernate / Terminate の関係
  3. 仕組み:どうやって RAM を保存しているか
  4. 利用するための前提条件(チェックリスト)
  5. 操作手順(最短ルート)
  6. 現場で生きる活用パターン 5 つ
  7. 制約・注意事項
  8. メリット・デメリット
  9. ベストプラクティス
  10. Stop vs Hibernate の使い分け早見表
  11. 関連用語
  12. 関連サイト
  13. 🎓 試験での出題傾向

1. 概要(端的に)

EC2 Hibernation(休止)は、インスタンスの RAM 内容を EBS ルートボリュームに書き戻してから停止し、次回起動時にメモリ状態ごと復元する機能。ノート PC を閉じたときの「スリープではなく休止状態(suspend-to-disk)」と同じ発想で、OS・プロセス・ロード済みのライブラリ・JIT 最適化済みの JVM ヒープまで「そのまま」凍結できる。

通常の Stop が「電源を切るだけ(RAM は揮発)」なのに対し、Hibernation は 「次回起動でログイン直後の状態に戻る」 のが本質的な違い。長いブートアップやウォームアップが必要なアプリケーションでこそ真価を発揮する。


2. Stop / Hibernate / Terminate の関係

Amazon EC2 の停止系アクションは 3 つあり、それぞれ揮発するものと永続するものが違う。

Stop / Hibernate / Terminate の比較
評価項目
Stop
Hibernate 推奨
Terminate
RAM 内容 失われる EBS に保存 → 復元 失われる
実行中プロセス すべて終了 フリーズして復元 すべて終了
次回起動時の状態 通常ブート 直前の状態を復元 不可(再作成)
インスタンス自体 保持 保持 消滅
ルート EBS 保持 保持(拡張) 既定で削除
EC2 課金 停止 停止 消滅
EBS 課金 継続 継続(RAM サイズ分も) 削除されれば停止
パブリック IP 解放 解放 解放
事前準備 不要 起動時に有効化必須 不要
Hibernate は『状態保持つき Stop』。起動時の有効化忘れに注意。

特に重要なのが 「Hibernation は起動時にしか有効化できない」 という点。既存の停止中インスタンスに後付けでオンにすることはできない。


3. 仕組み:どうやって RAM を保存しているか

休止操作の裏側で起こっていることを順に追うと、Hibernation の特性が見えてくる。

  1. 休止トリガー:マネジメントコンソールで Stop - Hibernate 実行、または aws ec2 stop-instances --hibernate
  2. OS への通知:ハイパーバイザーがゲスト OS に suspend-to-disk を要求
  3. メモリダンプ:OS が全プロセスを凍結し、RAM 全域を EBS ルートボリューム上のスワップ/予約領域へ書き出す
  4. EBS 暗号化:書き出される内容は 必ず KMS で暗号化 される(強制)
  5. シャットダウン:通常の電源 OFF と同じ手順で停止
  6. 再起動時:起動シーケンスの初期段階で OS がスワップ領域を検出 → RAM へ書き戻し → 凍結を解除してプロセス再開

ポイントは EBS ルートボリュームに RAM サイズ分の余裕が必要 ということ。たとえば RAM 32 GiB のインスタンスなら、ルートボリュームに少なくとも 32 GiB 以上の空きを確保しておかないと休止に失敗する。多くの構築ガイドが「ルートボリュームは RAM の 2 倍を推奨」と言っているのはこれが理由。


4. 利用するための前提条件(チェックリスト)

AWS の公式前提条件ページに従って、休止を使うための条件を整理する。

4-1. インスタンス側

項目条件
インスタンスファミリ対応ファミリのみ(後述)/ベアメタルは不可
RAM サイズLinux 150 GiB 未満/Windows 16 GiB 以下/Spot 100 GiB 未満
仮想化タイプHVM のみ(PV は不可)
AMI休止対応 AMI(Amazon Linux 2/2023・Ubuntu・RHEL・Windows Server 各種公式 AMI は対応)
ブートモードUEFI Secure Boot 有効では不可

4-2. ストレージ側

項目条件
ルートボリュームEBS のみ(インスタンスストアは不可)
ルートボリューム暗号化必須KMS で暗号化された EBS を起動時にアタッチ)
ルートボリュームサイズRAM 内容を保存できる容量(実質 RAM サイズ+OS/アプリ領域)

4-3. 起動時オプション

--hibernation-options Configured=true起動時に明示 する必要がある。CloudFormation なら HibernationOptions プロパティで宣言できる。

aws ec2 run-instances \
  --image-id ami-xxxxxxxx \
  --instance-type m6i.large \
  --key-name my-key \
  --block-device-mappings 'DeviceName=/dev/xvda,Ebs={VolumeSize=30,Encrypted=true}' \
  --hibernation-options 'Configured=true'

4-4. 対応インスタンスファミリ(抜粋)

汎用・コンピューティング最適化が中心。AWS Graviton 系(M6g/M7g/M8g、C6g/C7g/C8g、T4g など)も 2024 年から対応した。

カテゴリ対応ファミリ(例)
汎用M3〜M8(M5a/M5d、M6a/M6i/M6g、M7a/M7g/M7i、M8a/M8g/M8i 等)/T2・T3・T3a・T4g
コンピューティング最適化C3〜C8(C5d、C6g/C6i/C6gn、C7g/C7i/C7gn、C8g/C8i 等)
メモリ最適化R3〜R8 系の一部(公式ドキュメントで都度確認)

対応ファミリ・インスタンスサイズは頻繁に拡張されるため、本番設計時は公式前提条件を必ず最新で確認すること。


5. 操作手順(最短ルート)

5-1. マネジメントコンソールから

  1. 起動ウィザード → 「Advanced details」→ 「Stop - Hibernate behavior」を Enable
  2. ルートボリュームを 暗号化済み EBS に設定(RAM サイズ+α 以上の容量を確保)
  3. インスタンスを起動して任意の作業を実施
  4. 「Actions」→「Instance state」→「Hibernate instance」

5-2. CLI から

# 休止
aws ec2 stop-instances --instance-ids i-0123456789abcdef0 --hibernate

# 起動(通常の start で OK。状態が復元される)
aws ec2 start-instances --instance-ids i-0123456789abcdef0

5-3. CloudFormation で宣言する場合

Resources:
  MyHibernatableInstance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-xxxxxxxx
      InstanceType: m6i.large
      HibernationOptions:
        Configured: true
      BlockDeviceMappings:
        - DeviceName: /dev/xvda
          Ebs:
            VolumeSize: 30
            Encrypted: true
            VolumeType: gp3

6. 現場で生きる活用パターン 5 つ

6-1. 長時間ウォームアップが必要な分析・ML ワークロード

JVM の JIT 最適化、Python のモデル事前読込、巨大インメモリキャッシュの構築— 数分〜数十分かかる「準備」を、休止 → 復帰で 数秒スキップ できる。検証用 EC2 や個人開発環境で特に効く。

6-2. 開発者個人用 EC2 の「使わない夜はサスペンド」

クラウド IDE や踏み台として開発者ごとに 1 台 EC2 を割り当てている場合、夜間〜週末は休止しておくと EC2 課金は停止しつつ、開いていたエディタ・ターミナル・実行中のプロセスは全部生き残る。朝起動すれば「昨日の続き」から再開できる。

6-3. Spot Interruption に備える「セーフネット」

EC2 Spot Instances は突然中断される可能性があるが、Hibernation を組み合わせると 中断通知から 2 分以内に休止 → 別容量で再開 という運用が可能になる。バッチ処理や CI ジョブで「中断されてもチェックポイントから再開」しなくて済むメリットは大きい(Spot Hibernate は RAM 100 GiB 未満などやや厳しい条件あり)。

6-4. ライセンス制約があるソフトの状態保持

商用ソフトでセッション初期化やライセンス認証に時間がかかる場合、Hibernation で「ライセンス検証済みの状態」を凍結しておけば、起動のたびに認証手続きを走らせずに済む。Windows + 重い CAD/EDA ツールでよく使われる。

6-5. デモ・ハンズオン環境の即時起動

ハンズオン研修用に 30〜40 台同時に起動する EC2 を、前夜に「環境構築済み」の状態で休止しておき、当日朝一斉に start することで、ブート+セットアップ時間を完全にスキップできる。


7. 制約・注意事項

7-1. 60 日制限

休止状態のまま放置できる期間は 最大 60 日。それを超えると AWS 側で再開できなくなるリスクがあるため、月次で「起動 → 停止 → 起動」サイクルを回すジョブを仕込んでおくのが定石。

7-2. 仕組み上できないこと

項目状況
Auto Scaling 配下EC2 Auto Scaling で起動するインスタンスは不可
ECS が使うインスタンスクラスターメンバーとしては不可
インスタンスストア起動ルートが Instance Store の場合は不可
ベアメタル不可(仮想化されていないため)
暗号化なし EBS不可(KMS 暗号化が強制)
UEFI Secure BootSecure Boot 有効では不可

7-3. パブリック IP は維持されない

Stop/Hibernate どちらも パブリック IPv4 は解放 される(Elastic IP を割り当てている場合のみ維持)。状態は復元されるが、外部接続経路は別途設計が必要。

7-4. メモリは EBS 上に書かれている

RAM の内容が 暗号化されているとはいえ EBS に物理的に存在する ことを忘れない。本番系で機密データを扱う場合は KMS のキーポリシー・キーローテーション・スナップショット権限まで含めて監査範囲に入れる。


8. メリット・デメリット


9. ベストプラクティス

  • ルートボリュームは RAM サイズの 2 倍以上を目安に確保する — RAM 領域に加え OS・アプリ・スワップ予約が同居するため、ギリギリで切ると休止が失敗する。
  • 暗号化 KMS キーは『EC2 用』として分離管理 — 既定の aws/ebs キーで始めて構わないが、本番では業務ごとの CMK に切り替えると監査・ローテーションがしやすい。
  • 60 日対策のスケジューラを必ず仕込むEventBridge で月次に start-instancesstop-instances --hibernate を回す Lambda を組んでおく。
  • Elastic IP を割り当てる — クライアントから接続される運用 EC2 で休止を使うなら、復帰後の IP 変化を避けるために EIP で固定する。
  • Spot × Hibernate は『中断耐性つき安価ジョブ』として割り切る — フル冗長な本番ではなく、CI、バッチ、検証環境で活かす。
  • Auto Scaling との競合に注意 — ASG 配下では Hibernation は使えない。スポットフリート・起動テンプレート・EC2 Image Builder と組み合わせる別パターンで設計する。
  • ログを CloudWatch で監視Stop - Hibernate の失敗イベントは見落とされがち。CloudTrail/CloudWatch でアラートを仕込んでおくと運用が安定する。

10. Stop vs Hibernate の使い分け早見表

シーン推奨理由
業務時間外に EC2 を止めてコストを下げたいStop単純で安価。EBS 容量も RAM ぶん追加不要
開発者個人 PC 替わりの EC2、明日の続きをやりたいHibernateエディタ・実行中プロセスをそのまま維持
Spot で動かしている長時間バッチHibernate中断時にチェックポイント不要
Auto Scaling 配下で需要に応じて増減Stop / TerminateHibernate は ASG では使えない
大量データを RAM に読み込んだ ML 推論サーバHibernate読み込み時間を完全スキップ
ECS / EKS のクラスターメンバーStop / TerminateHibernate は不可

11. 関連用語

  • Amazon EC2 — Hibernation はインスタンスの停止アクションの一種
  • Amazon EBS — RAM ダンプの保存先(容量+暗号化が要件)
  • EC2 AMI — 休止対応 AMI を選択する起点
  • EC2 Spot Instances — Spot Interruption の救命策として連携
  • EC2 Auto Scaling — Hibernation との非互換に注意
  • Elastic IP — 復帰後の IP 維持に必須
  • AWS KMS — ルート EBS 暗号化キーの管理元
  • EC2 Image Builder — Golden AMI 戦略との比較対象

12. 関連サイト

AWS 公式

参考記事



🎓 試験での出題傾向

試験重要度主な出題パターン
CLFStop と Terminate の違いを問う中で Hibernation の存在を確認する程度
SAASpot Interruption への対策、起動時間最小化アーキテクチャの選択肢
DVA開発者向けに「状態保持つき停止」の概念と CLI/CFn 設定
SOA制約(RAM 上限・暗号化必須・ASG 非対応・60 日制限)と運用設計

特に SOA / SAA では「長時間のウォームアップが必要なアプリを Spot で安く動かしたい」「ML 推論サーバの再起動時間を最小化したい」シナリオで、Hibernation・Auto Scaling・Spot・Golden AMI のどれを選ぶか問われる。「重い起動コストをスキップしたい → Hibernation/自動で増減させたい → Auto Scaling/OS イメージ自体を最適化したい → Image Builder」と覚えておくと判断がブレない。