AWS
EC2
CloudWatch
CloudFormation

CloudFormationを使ってEC2にAutoRecoveryの設定をする


はじめに

本記事では、AWS CloudFormation管理コンソールを使って、EC2にAutoRecoveryの設定をする手順を説明しています。(初心者向け)

本記事で掲載しているテンプレートの最新版は、下記に置いてます。

https://github.com/okubo-t/aws-cloudformation


AutoRecoveryとは

EC2 インスタンスをCloudWatchでモニタリングし、基になるハードウェア障害または AWS による修復を必要とする問題でインスタンスが正常に機能しなくなった事象を検知すると、CloudWatchが自動的にインスタンスを復旧するアクションを実行する機能のことです。


詳細

AWS ドキュメント

インスタンスの復旧

Amazon Elastic Compute Cloud インスタンスの復元


設定手順

1 AWS CloudFormation管理コンソールから、スタックの作成をクリックします。

2 後述のテンプレートを選択します。

3 各パラメータを入力します。

パラメータ名
用途
備考

スタックの名前
テンプレートから作成するリソース一式の名前
例 prd-stack-vpc-20180801

EC2Instance
AutoRecoveryを設定するEC2を選択します

4 後続は、デフォルトのまま次へ次へで、作成します。

5 状況が CREATE COMPLETEになれば、EC2のAutoRecoveryの設定が完了です。

6 EC2の管理コンソールで、設定したEC2のモニタリングの情報を確認します。

設定した直後はまだデータ(メトリックなど)を収集していないので、下記のメッセージが表示されます。

データが収集されて、下記のメッセージが表示されたら、設定が完了です。


テンプレート


cloudwatch-autorecovery.yml

AWSTemplateFormatVersion: "2010-09-09"

Description:
Auto Recovery for EC2

# ------------------------------------------------------------#
# Input Parameters
# ------------------------------------------------------------#
Parameters:
EC2Instance:
Type: AWS::EC2::Instance::Id

Resources:
# ------------------------------------------------------------#
# Auto RecoveryAlarm
# ------------------------------------------------------------#
AutoRecoveryAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: !Sub "${EC2Instance}-autorecovery"
Namespace: AWS/EC2
MetricName: StatusCheckFailed_System
Statistic: Minimum
Period: 60
EvaluationPeriods: 10
ComparisonOperator: GreaterThanThreshold
Threshold: 0
AlarmActions:
- !Sub "arn:aws:automate:${AWS::Region}:ec2:recover"
Dimensions:
- Name: InstanceId
Value: !Ref EC2Instance