AWSは多様な運用監視のサービスを提供しており、それらを利用することで仮想マシンの自動的な障害復旧を実現できる。今回はそのなかで、Amazon CloudWatchあるいはAuto Scalingというサービスを使う方法を検証する。

  CloudWatchを使う方法、Auto Scalingを使う方法をそれぞれ簡単に説明する(表1)。

表1 EC2インスタンスを自動復旧させる方法
表1 EC2インスタンスを自動復旧させる方法
[画像のクリックで拡大表示]

 CloudWatchは、CPU使用率などの標準メトリクスやユーザー個別のカスタムメトリクスによって、EC2インスタンスをはじめとするAWSリソースやアプリケーションを監視し、通知や再起動などのアクションを行うサービスだ。正確には、通知やアクションに、関連サービスのCloudWatch Alarmsを使う(図1)。

図1 CloudWatchとEC2アクションによる自動復旧の仕組み
図1 CloudWatchとEC2アクションによる自動復旧の仕組み
[画像のクリックで拡大表示]

 CloudWatchによる障害復旧では、物理障害を検知したときに、Auto Recoveryという機能によって自動で物理ホストを移動させて再起動させる。さらに、標準メトリクス/カスタムメトリクスのアラーム機能を利用して仮想マシンを再起動させることも可能だ。

 Auto Scalingに話を進める。これはもともと、EC2インスタンスのクラスター構成で、負荷に応じたスケールアウト/スケールイン(台数の増減)を自動化するサービスだ。EC2によるインスタンスのヘルスチェック(EC2ヘルスチェック)と、ロードバランサー「Elastic Load Balancing (ELB)」によるヘルスチェック(ELBヘルスチェック)のどちらかを併用して、EC2インスタンスの異常を検知。異常なEC2インスタンスを削除し、EC2インスタンスを新規作成する。

 CloudWatchやAuto Scalingを用いることで、EC2インスタンスの物理障害の監視、死活監視、プロセス監視などを行い、その結果に基づいて、インスタンスの再起動や同一内容のインスタンス作成を自動化できる。

 CloudWatchやAuto Scalingに分けて、それぞれの方法を順にもう少し詳しく見ていこう。