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

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

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

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

図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に分けて、それぞれの方法を順にもう少し詳しく見ていこう。

この先は有料会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら