Amazon EC2 Auto Recoveryをワンライナーで設定する

2015.03.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ども、大瀧です。EC2インスタンスのAWS障害時に自動でStop-StartするAuto Recovery、みなさん活用していますか?以下の記事の通り、最近東京リージョンで利用できるようになったので、「とりあえず全インスタンス設定しとけ!」みたいなケースもあるのではないでしょうか。

複数のインスタンスに設定するためにはManagement ConsoleのWeb画面ポチポチでは辛いと思いますので、バッチ処理向けにAWS CLIのワンライナーを考えてみました。

設定方法

以下の通りです。

$ aws cloudwatch put-metric-alarm \
  --region ap-northeast-1 \
  --alarm-name        recover-ec2-instance-i-XXXXXXXX \
  --alarm-description "recover-ec2-instance" \
  --alarm-actions \
      arn:aws:automate:ap-northeast-1:ec2:recover \
      arn:aws:sns:ap-northeast-1:111122223333:MyTopic \
  --namespace AWS/EC2 \
  --metric-name StatusCheckFailed_System \
  --dimensions  Name=InstanceId,Value=i-XXXXXXXX \
  --comparison-operator GreaterThanThreshold \
  --unit Count \
  --statistic Average \
  --period 300 \
  --threshold 1 \
  --evaluation-periods 1

ポイントは--alarm-actionsオプションで、Auto Recovery(EC2 ActionのRecover)のARNはarn:aws:automate:<リージョン名>:ec2:recoverで固定です。メール通知用のSNSトピックは必要の応じてあらかじめ作成し、オプションにスペース区切りで付与しましょう。

後半3つの設定値は、ケースに応じてチューニングするのがおすすめです。

参考URL