Amazon EC2インスタンスの自動復旧とは。 AWSのAuto Recoveryについて

こんにちは。エンジニアの中井です。

さて、今回はAWSのAuto Recoveryについてご紹介します。

目次
  1. Amazon CloudWatchとは
  2. Auto Recoveryとは
  3. Auto Recovery設定方法
  4. まとめ

Amazon CloudWatchとは

Amazon CloudWatchは、AWSにおけるモニタリングサービスです。
モニタリング、トラブルシュート、メトリクスの集約、ログの分析、自動アクション、ダッシュボードなどの様々な機能が提供されています。
その中の機能の一つとして、Amazon EC2インスタンスの自動復旧(Auto Recovery)があります。

Auto Recoveryとは

Auto Recoveryとは、AWSのシステム側に起因する問題で、Amazon EC2インスタンスが起動できなくなった場合に、自動復旧する機能です。

(参考)Amazon EC2 Linuxインスタンス用ユーザガイド「インスタンスの復旧」

ちなみに、Auto Recoveryと記載していますが、コンソールなどで明確にAuto Recoveryと表現されているわけではありません(※)。
CloudWatchアラームのAmazon EC2アクション「インスタンスの復旧」が、Auto Recovery機能です。

※ 新機能発表時のタイトルに使われています。あと、実際に自動復旧が行われた時のメールには記載されています。
(参考)Amazon AWS「Amazon EC2 Auto Recovery now available in the US East (N. Virginia) Region」

CloudWatchアラーム

改めて、CloudWatchアラームの基本的な仕組みを説明します。
ここではAmazon EC2を例として挙げます。

CloudWatchには、Amazon EC2に関するメトリクス(ステータスやCPU使用率など)が集約されています。
それらのメトリクスに対して、しきい値を定義し、メトリクスがしきい値を超えた場合のアクション(メール通知やインスタンスの操作など)を設定できます。
これがCloudWatchアラームの基本的な仕組みです。

基本的な仕組みのイメージ

CloudWatchについては、この他にも多数の機能がありますので、詳細は公式ドキュメントをご覧ください。

(参考)Amazon CloudWatch ドキュメント

トリガーとなるAmazon EC2インスタンスのステータスチェック

Auto Recoveryのトリガーには、Amazon EC2そのものの状態に関する「ステータスチェック」のメトリクスが使用されます。

ステータスチェックには、次のとおりシステムステータスチェックとインスタンスステータスチェックの2種類があります。

Auto Recoveryは、システムステータスをトリガーとして、AWSのシステム側に起因する問題を“復旧”します。

  • システムステータス
    修復にはAWSの関与が必要なインスタンスの根本的な問題
  • インスタンスステータス
    ユーザーが関与して修復する必要のある問題

(参考)Amazon EC2 Linuxインスタンス用ユーザガイド「インスタンスのステータスチェック」

Auto Recovery設定方法

それでは、実際の設定方法をご紹介します。
大きく次の3ステップが必要です。

  1. メトリクスの選択
    • CloudWatchアラームの元になるメトリクスを選択します。今回の場合、Amazon EC2の「システムステータス」が対象です
  2. 条件の指定
    • どういった条件の時に、“異常”と評価するか定義します
  3. アクション設定
    • 異常の際にどんな動作をするか設定します。今回の場合、“復旧”=Auto Recoveryです

なお、インスタンタイプによってはサポートされていない場合があるため、設定の際は、事前に公式ドキュメントの記載をご確認ください。

(参考)Amazon EC2 Linuxインスタンス用ユーザガイド「インスタンスを停止、終了、再起動、または復旧するアラームを作成する」

メトリクスの選択

アラームは、CloudWatchのコンソールから作成します。

「メトリクスの選択」を選択します。

「EC2」を選択します。

「インスタンス別メトリクス」を選択します。

メトリクスが色々と表示されます。「StatusCheckFailed_System」を検索して、対象のAmazon EC2とメトリクスを間違えないように選択します。

条件の指定

メトリクスの条件を次のとおり指定します。ここではAWSのドキュメントで推奨されている値にします。

  • 統計:最小
  • 期間:1分
  • しきい値の種類:静的
  • アラーム条件:より大きい
  • しきい値:0
  • データポイント:2/2

アクション設定

アクションを設定します。

※ 「通知」は必要に応じてメールのSNSトピックなどを設定します。今回は通知なしで進めます

「EC2アクションの追加」を選択します。

アラーム状態トリガーで「アラーム状態」を、アクションで「このインスタンスを復旧」を選択します。
これがAuto Recovery です。

最後にアラーム名を入力。プレビューを確認すると、作成が完了します。

アラームの詳細画面で、次のようなアクションが設定されていればOKです。
残念ながら、実際のAuto Recovery動作を検証はできません。。

まとめ

Auto Recoveryの概要と、実際の設定手順の紹介でした。

コンソールから実施すると簡単ですが、大量のインスタンスへの設定は大変ですね。
大規模システムでは、AWS CLIや、AWSクラウドポータルなどで効率的に設定するのが良さそうです。