Amazon Web Services ブログ

新機能 – EC2インスタンスの休止

ご存知のようにAWSでは、必要なタイミングで必要なだけのEC2インスタンスを起動し、スケール自在なシステムを容易に構築することができます。このときインスタンス自体は数秒で起動するものの、OSとその上で稼働するアプリケーションの起動には一定の時間が掛かります。またキャッシュアプリケーションなど、大量のメモリを用いるアプリケーションを起動し、必要なデータをメモリに展開するのにも時間が必要であり、時には10分以上要することがあります。こういった背景があることから、キャパシティを迅速に増加させられるようにインスタンスを前もって起動しておく方法が採られますが、この場合つい起動し過ぎてしまうということがあります。

EC2インスタンスの休止(ハイバネーション)

本日私たちは、起動したEC2インスタンスを希望したようにセットアップしたのちに、そのEC2インスタンスを休止させ、また再開できる機能を発表します。休止プロセスはそのインスタンスのメモリ状態を保管し、また休止したタイミングで設定されていたプライベートIPアドレスとEIPを保持します。

本機能は本日から利用可能です。新規に起動したAmazon Linux 1を稼働させるM3, M4, M5, C3, C4, C5, R3, R4, R5のそれぞれのインスタンスファミリーでお使いいただけます (Amazon Linux 2対応は鋭意開発中であり、近いうちに発表できる見込みです)。オンデマンドインスタンス、リザーブドインスタンスのそれぞれに対応しています。

休止の指示を受け取ったインスタンスは、ルートEBSボリュームに格納されたファイルにメモリ状態を書き出し、(事実上)自分自身をシャットダウンします。休止できるインスタンスのAMI, ルートEBSボリュームは暗号化されている必要があります。暗号化することで、メモリの内容がEBSボリュームにコピーされる際に機密データを保護することができます。

インスタンスが休止状態の間、お支払いいただくのはEBSボリュームとアタッチされたEIPの料金だけです。停止状態と同じく、時間当たりのインスタンス料金は発生しません。

休止動作

この機能を確認するのに、私はc4.largeインスタンスを起動し、停止のオプションで休止を有効にしました。

インスタンスのボリュームサイズの設定では、搭載メモリ量に10GBを追加しました。

また、パブリックIPアドレスは変化してしまうため、EIPを関連づけました。そしてインスタンスが起動してきたところでuptimeを実行しました。

次にEC2マネジメントコンソールからこのインスタンスを選択し、”Instance State“メニューから”Stop – Hibernate“を選択します(もちろんAPIやCLIからも呼び出すことができます)。

インスタンスの状態が”running”から”stopping”に変わり、数秒で “stopped”になりました。

マネジメントコンソールからは、ステータス遷移に関する追加情報を確認することができます。

SSH接続は切断され、インスタンスが実際に停止したことが分かります。

後にこのインスタンスを再開するのに、”Start“をクリックします。

今度はステータスが”stopped”から”pending”, “running”へと数秒の間に変化し、SSHで接続できるようになりました。ここで改めてuptimeを発行してみると、インスタンスが再起動されたのではなく休止時点から再開したことが分かります。

このインスタンスをもう少し対話的に使っているような場合、screen, tmux, moshといったセッションマネージャーを活用することで、この一連の流れをよりシームレスに体験することができるでしょう。

休止機能のユースケースの主なものとして、長時間稼働するプロセスや、トラフィックを受け付けるまでの初期化に時間を要するサービスなどに活用できることでしょう。

活用のポイント

ご覧いただいたように、休止機能を使うのはとても簡単です。お使いのアプリケーションでの活用方法に思いを巡らせているであろう皆様へ、いくつかのポイントをお伝えしましょう。

インスタンスタイプ
前出のインスタンスタイプのうち、新規に起動したインスタンスで休止機能を使うことができます。
ルートボリュームのサイズ
ルートボリュームには搭載メモリサイズと同じだけの空き容量が必要です。
オペレーティングシステム
最新のAmazon Linux 1 AMIでは休止をサポートするように構成されており、その他のオペレーティングシステムについても対応中です。これらの対応済みAMIをベースとして、暗号化したAMIを作成してお使いいただくことができます。その他ドキュメントがガイドするポイントにも従ってください。
変更
休止中にインスタンスサイズやインスタンスタイプを変更することはできません。休止中にユーザーデータとEBS最適化の設定を変更できます。
価格
休止中に発生する料金はEBSストレージとインスタンスにアタッチされたEIPに対してです。
性能
休止と再開に要する時間はインスタンスのメモリサイズ、メモリ上のデータ量、ルートボリュームのスループットに依存します。
これからの予定
Amazon Linux 2, Ubuntu, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, SQL Serverを搭載したWindows ServerのAMIを準備しています。

今すぐお使いいただけます

この機能は米国東部 (バージニア北部、オハイオ)、米国西部 (北カリフォルニア、オレゴン)、カナダ (中部)、南米 (サンパウロ)、アジアパシフィック (東京、ソウル、シンガポール、シドニー、ムンバイ)、欧州 (フランクフルト、アイルランド、ロンドン、パリ)の各リージョンで利用可能です。

Jeff;

この記事はSA滝口が翻訳しました。原文はこちら