😎
【AWS】EC2へのAutoRecovery設定&確認をコマンドにて実施してみる
はじめに
EC2へのAutoRecovery設定&確認をコマンドにて実施する方法をアウトプットします。
AutoRecoveryとは?
- AWSのシステム側に起因する問題で、AmazonEC2インスタンスが起動できなくなった場合に、自動復旧する機能
- CloudWatchにて設定を実施
AutoRecovery設定コマンド
今回は、AWS CloudShellを使用します。
設定内容
- メトリクス
項目 | 内容 |
---|---|
名前空間 | AWS/EC2 |
メトリクス名 | StatusCheckFailed_System |
InstanceId | i-0358a0da999468094 |
インスタンス名 | Test01 |
統計 | 最小 |
期間 | 1分 |
- 条件
項目 | 内容 |
---|---|
しきい値の種類 | 静的 |
アラーム条件 | より大きい |
しきい値 | 0 |
- アクション指定
■通知
項目 | 内容 |
---|---|
アラーム状態トリガー | アラーム状態 |
SNS トピックの選択 | 既存の SNS トピックを選択 |
通知の送信先 | AutoRecovery_SNS |
※作成済みのSNSトピックを使用します。 |
■EC2アクション
項目 | 内容 |
---|---|
アラーム状態トリガー | アラーム状態 |
アクション | このインスタンスを復旧 |
- アラーム名
項目 | 内容 |
---|---|
アラーム名 | AutoRecover_Test |
アラームの説明 | なし |
コマンド
コマンド
aws cloudwatch put-metric-alarm --alarm-name "AutoRecover_Test" --namespace AWS/EC2 \
--metric-name StatusCheckFailed_System --dimensions "Name=InstanceId,Value=i-0358a0da999468094" --period 60 \
--statistic Minimum --threshold 0 --comparison-operator GreaterThanThreshold \
--evaluation-periods 1 \
--alarm-actions arn:aws:sns:ap-northeast-1:555246305565:AutoRecovery_SNS arn:aws:automate:ap-northeast-1:ec2:recover
- オプション説明
項目 | 説明 | 設定 |
---|---|---|
--alarm-name | アラーム名 | AutoRecover_Test |
--namespace | 名前空間 | AWS/EC2 |
--metric-name | メトリクス名 | StatusCheckFailed_System |
--dimensions | インスタンスIDの指定 | "Name=InstanceId,Value=i-0358a0da999468094" |
--period | メトリクスの感覚(秒単位) | 60 |
--statistic | 統計 | Minimum |
--threshold | 閾値 | 0 |
--comparison-operator | アラーム条件 | GreaterThanThreshold |
--evaluation-periods | 閾値を超えた回数 | 1 |
--alarm-actions | アクション設定 ※今回は、通知先とEC2アクションを設定 |
arn:aws:sns:ap-northeast-1:555246305565:AutoRecovery_SNS arn:aws:automate:ap-northeast-1:ec2:recover |
AutoRecovery確認コマンド
コマンド
aws cloudwatch describe-alarms --alarm-names AutoRecover_Test
※「AutoRecover_Test」はアラーム名になります。
実行例
[cloudshell-user@ip-10-0-30-96 ~]$ aws cloudwatch describe-alarms --alarm-names AutoRecover_Test
{
"MetricAlarms": [
{
"AlarmName": "AutoRecover_Test",
"AlarmArn": "arn:aws:cloudwatch:ap-northeast-1:555246305565:alarm:AutoRecover_Test",
"AlarmConfigurationUpdatedTimestamp": "2021-07-19T11:40:37.784000+00:00",
"ActionsEnabled": true,
"OKActions": [],
"AlarmActions": [
"arn:aws:automate:ap-northeast-1:ec2:recover",
"arn:aws:sns:ap-northeast-1:555246305565:AutoRecovery_SNS"
],
"InsufficientDataActions": [],
"StateValue": "OK",
"StateReason": "Threshold Crossed: 1 datapoint [0.0 (19/07/21 11:40:00)] was not greater than the threshold (0.0).",
"StateReasonData": "{\"version\":\"1.0\",\"queryDate\":\"2021-07-19T11:41:37.215+0000\",\"startDate\":\"2021-07-19T11:40:00.000+0000\",\"statistic\":\"Minimum\",\"period\":60,\"recentDatapoints\":[0.0],\"threshold\":0.0,\"evaluatedDatapoints\":[{\"timestamp\":\"2021-07-19T11:40:00.000+0000\",\"sampleCount\":1.0,\"value\":0.0}]}",
"StateUpdatedTimestamp": "2021-07-19T11:41:37.216000+00:00",
"MetricName": "StatusCheckFailed_System",
"Namespace": "AWS/EC2",
"Statistic": "Minimum",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-0358a0da999468094"
}
],
"Period": 60,
"EvaluationPeriods": 1,
"Threshold": 0.0,
"ComparisonOperator": "GreaterThanThreshold"
}
],
"CompositeAlarms": []
}
[cloudshell-user@ip-10-0-30-96 ~]$
参考記事
Amazon EC2インスタンスの自動復旧とは。 AWSのAuto Recoveryについて
put-metric-alarm
AWS CLIでCloudwatchのアラートを設定してみた
インスタンスの利用可能な CloudWatch メトリクスのリスト表示
Discussion