AWS Backup失敗時の通知手段2種について

目次 ①Cloudwatchアラームによる通知 ②CLIからbackup vault notificationsを設定して通知 ③それぞれのメリット・デメリット

①Cloudwatchアラームによる通知

1.バックアップの実行

CloudWatchのメトリクスに「Backup」の項目を表示させるために一度バックアップを実行

2.CloudWatchアラームの作成

[CloudWatchコンソール]->[アラームの作成]->[Resource Type Metrics by Backup Vault]を選択->メトリクス名を[NumberOfBackupJobsFailed]、統計を[合計]、閾値を[静的][1以上]、データポイントを[1/1]、[欠落データを見つかりませんとして処理]に設定 SNSトピックは任意のものに設定 image.png

-------上記で設定は完了----------

3.通知テスト

テスト用インスタンスでバックアップジョブを実行し、テスト用インスタンスを終了 ステータスが失敗になり、CloudWatchアラームがアラート状態となり、SNS通知が発生 image.png image.png

②CLIからbackup vault notificationsを設定して通知

1.SNSトピックを作成し、アクセスポリシーに以下を追加

{
  "Version": "2008-10-17",
  "Id": "__default_policy_ID",
  "Statement": [
    {
      "Sid": "__default_statement_ID",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "SNS:Publish",
        "SNS:RemovePermission",
        "SNS:SetTopicAttributes",
        "SNS:DeleteTopic",
        "SNS:ListSubscriptionsByTopic",
        "SNS:GetTopicAttributes",
        "SNS:AddPermission",
        "SNS:Subscribe"
      ],
      "Resource": "[SNSトピックのarn]",
      "Condition": {
        "StringEquals": {
          "AWS:SourceOwner": "[アカウントID]"
        }
      }
    },
    {
      "Sid": "__console_pub_0",
      "Effect": "Allow",
      "Principal": {
        "Service": "backup.amazonaws.com"
      },
      "Action": "SNS:Publish",
      "Resource": "[SNSトピックのarn]"
    }
  ]
}


2.バックアップボールトの設定

CloudShellを開き、以下のコマンドを実行

aws backup put-backup-vault-notifications --endpoint-url https://backup.[リージョン].amazonaws.com --backup-vault-name [バックアップボールト名] --sns-topic-arn [作成したSNSのARN] --backup-vault-events BACKUP_JOB_COMPLETED

※設定されていることは以下のコマンドで確認

aws backup get-backup-vault-notifications --backup-vault-name [バックアップボールト名] 

3.サブスクリプションの作成

1で作成したSNSトピックのサブスクリプションを作成 サブスクリプションフィルターポリシーにて、Backup ジョブイベントのStateが「COMPLETED」以外だった場合に通知が飛ぶように設定

{
  "State": [
    {
      "anything-but": "COMPLETED"
    }
  ]
}

-------上記で設定は完了----------

4.通知テスト

バックアップジョブを実行し、バックアップジョブを停止 ステータスが中止になり、SNS通知が発生

③それぞれのメリット・デメリット

①のメリット

・柔軟なアラーム条件の設定が可能 ・アラームアクションの多様性(SNS、Lambda、EC2アクションなど)

①のデメリット

・[NumberOfBackupJobsFailed]のメトリクスを利用しているため、中止通知は不可能 ・メトリクスの更新頻度に依存するため、即時性に欠ける可能性 ・バックアップジョブの詳細情報を直接含めて通知を発生させることが難しい

②のメリット

・バックアップジョブの詳細情報を含む通知が可能 ・成功、失敗、警告など、様々なイベントタイプに対応可能

②のデメリット

・通知の柔軟性が限られる(SNSトピックへの通知のみ) ・設定されていることがコンソール上から一目で確認できない