継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Aurora のバックアップを日次と月次で分けて AWS Backup にて保持する

タダです.

Aurora のバックアップを日次と月次で分けて AWS Backup で保持する設定を行ったので,備忘録としてまとめます.

日次と月次のバックアップジョブ

結論として日次と月次のバックアップジョブを分けて作りました.以下は日次で14日間まで保持するバックアッププランと,毎月1日のバックアップを3ヶ月保持するバックアッププランを作る Terraform のコード例です.

resource "aws_backup_plan" "daily" {
  name = "daily-backup"
  rule {
    rule_name         = "daily"
    target_vault_name = aws_backup_vault.example.name
    schedule          = "cron(0 12 * * ? *)"
    lifecycle {
      delete_after = 14 # days
    }
  }
}
resource "aws_backup_plan" "monthly" {
  name = "monthly-backup"
  rule {
    rule_name         = "monthly"
    target_vault_name = aws_backup_vault.example.name
    schedule          = "cron(0 12 1 * ? *)"
    lifecycle {
      delete_after = 90 # days
    }
  }
}
resource "aws_backup_selection" "daily" {
  name         = "daily-backup"
  plan_id      = aws_backup_plan.daily.id
  iam_role_arn = aws_iam_role.example.arn
  resources    = [
    aws_rds_cluster.example.arn,
  ]
}
resource "aws_backup_selection" "monthly" {
  name         = "monthly-backup"
  plan_id      = aws_backup_plan.monthly.id
  iam_role_arn = aws_iam_role.example.arn
  resources    = [
    aws_rds_cluster.example.arn,
  ]
}

まとめ

Aurora のバックアップを日次と月次で分けて AWS Backup で保持する設定を行ったのでまとめました.