【新機能】Amazon EC2がハイバネーション出来るようになりました #reinvent

はじめに

今回ご紹介する新機能はこちら!

ハイバネーションとは、シャットダウンする前にメインメモリの内容をハードディスク等に退避し、次回起動時にまたメインメモリに読み込んで、シャットダウンする前と同じ状態で起動する機能です。通常EC2がシャットダウンしてから起動する際、OSの起動にかなりの時間がかかっていましたが、ハイバネーションであればOSは起動したままなので、メモリロードの時間だけで起動することが出来、起動にかかる時間が短縮できます。EC2の場合はルートEBSにメインメモリの状態を保存します。

ハイバネーションが使えるのはAmazon Linux 1を実行しているM3、M4、M5、C3、C4、C5、R3、R4、R5インスタンスタイプで、Amazon Linux 2のサポートはもうすぐ行われるとのこと。

やってみた

ハイバネーションに対応したEC2を作成します。指定したAMIは「Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type」、インスタンスタイプはM4.largeです。

Configure Instance Details画面で[Stop - Hibernate behavio]という設定が増えていますので、こちらを有効にします。

Add Storage画面では、ハイバネートするのであればルートボリュームを暗号化するようにメッセージが表示されてしまいました。

なのでRootボリュームが暗号化されたEC2を起動する必要があります。細かい手順は以下をご参照下さい。注意点として、ハイバネートされるメモリ容量を加味したストレージサイズを確保する必要があります。

暗号化されたAMIが出来たら、そのAMIを使ってEC2を起動します。

ハイバネートを有効にしたEC2インスタンスでは、[Stop - Hibernate]が選べるようになっています。

さいごに

素のLinuxでは起動速度にほとんど差が出ませんでしたが、メインメモリをガンガン使うようなワークロードのサーバでは、ハイバネートするのとしないのでは大きな時間差が出るのではないでしょうか。