AWS Config の Backup::RecoveryPoint 記録設定を見直して、コスト改善してみた

AWS Config の Backup::RecoveryPoint 記録設定を見直して、コスト改善してみた

検証環境の AWS Config 費用を分析したところ、AWS Backup の RecoveryPoint が都度記録(CONTINUOUS)の最大コスト要因でした。exclusionByResourceTypes による除外と、不要なバックアップリソースの撤去でコストを削減した手順を紹介します。
2026.07.11

はじめに

検証環境の AWS 利用料を確認していたところ、AWS Config の費用が月額 $5.5(6月実績)発生していることに気づきました。この検証環境では Config の記録対象を絞り込み、日次記録(DAILY)で利用しており、もっと低く収まるはずでした。

AWS Config の記録には2種類の料金体系があります(AWS Config 料金ページ、東京リージョン、執筆時点)。

記録頻度 料金 説明
日次記録(DAILY) $0.012/アイテム 24時間ごとに、前回記録との差分があれば記録
都度記録(CONTINUOUS) $0.003/アイテム 変更が発生するたびに記録

単価は都度記録の方が安いですが、変更頻度が高いリソースでは記録件数が積み上がり、結果的に日次記録より高額になることがあります。

この検証環境では、管理アカウントから AWS CloudFormation StackSets で Config の設定が配布されています。一部のリソースタイプには CONTINUOUS(都度記録)の recordingModeOverrides が適用されていました。具体的には以下の4タイプです。

  • AWS::Backup::RecoveryPoint
  • AWS::RDS::DBClusterSnapshot
  • AWS::RDS::DBSnapshot
  • AWS::Redshift::ClusterSnapshot

設定上は CONTINUOUS が指定されており、変更の即時検知を意図したものと考えられます。

検証内容

Cost Explorer で Config 費用の内訳を確認

Cost Explorer でサービス別に絞り込み、使用タイプ別の内訳を確認しました。あわせて Config の構成履歴および RecoveryPoint の作成状況を照合しました。ap-northeast-1 の CONTINUOUS 記録のほぼ全てが AWS::Backup::RecoveryPoint であり、これが最大のコスト要因でした。

CONTINUOUS 記録のコスト発生状況(6月):

使用タイプ 件数 費用
APN1-ConfigurationItemRecorded 1,688件 $5.06
ConfigurationItemRecorded (us-east-1) 95件 $0.28
USE2-ConfigurationItemRecorded 27件 $0.08
USW2-ConfigurationItemRecorded 29件 $0.08
合計 1,839件 $5.5

ap-northeast-1 が全体の 92% を占めています。

なぜ Backup::RecoveryPoint が大量に記録されていたのか

原因は、過去に設定した EFS のバックアップでした。EFS 自体は既に削除済みでしたが、バックアップジョブ履歴を確認したところ、EFS 削除後もジョブ実行が継続しており、0バイトの RecoveryPoint が作成されていました。

  • 結果として Default Vault に RecoveryPoint が 738件蓄積(最も古いもので 2023年1月作成)
  • 0バイトのため AWS Backup のストレージ費用は確認できなかった(Cost Explorer の AWS Backup 行に何も現れず気づきにくい)
  • しかし Config の記録対象にはなる → 見えないところで Config 記録費用が発生していた

応急対策: exclusionByResourceTypes で記録を除外

公式ドキュメント(RecordingGroup API Reference)に以下の記述があります。

If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the exclusionByResourceTypes field will override other properties in the request.

つまり、記録戦略としては exclusionByResourceTypes の除外設定が優先され、指定したリソースタイプは記録対象外になります。今回は検証環境で即効性を優先するため、メンバーアカウント側で recorder 設定を直接修正します。

バリデーション制約

ただし、put-configuration-recorder を実行した際、同じリソースタイプを recordingModeOverrides に残したまま exclusionByResourceTypes に追加すると API バリデーションエラーになりました。そのため、設定変更では recordingModeOverrides から AWS::Backup::RecoveryPoint を外したうえで、除外設定に追加しています。

設定変更の実施

ap-northeast-1 の設定を変更しました。変更点は2つです。

  1. exclusionByResourceTypes.resourceTypesAWS::Backup::RecoveryPoint を追加
  2. recordingModeOverrides[0].resourceTypes から AWS::Backup::RecoveryPoint を削除
設定 JSON の Before/After(ap-northeast-1)

変更前:

{
  "name": "default",
  "roleARN": "arn:aws:iam::123456789012:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig",
  "recordingGroup": {
    "allSupported": false,
    "resourceTypes": [],
    "inclusionByResourceTypes": {
      "resourceTypes": []
    },
    "exclusionByResourceTypes": {
      "resourceTypes": [
        "AWS::Config::ConformancePackCompliance",
        "AWS::Config::ResourceCompliance"
      ]
    },
    "recordingStrategy": {
      "useOnly": "EXCLUSION_BY_RESOURCE_TYPES"
    }
  },
  "recordingMode": {
    "recordingFrequency": "DAILY",
    "recordingModeOverrides": [
      {
        "resourceTypes": [
          "AWS::Backup::RecoveryPoint",
          "AWS::RDS::DBClusterSnapshot",
          "AWS::RDS::DBSnapshot",
          "AWS::Redshift::ClusterSnapshot"
        ],
        "recordingFrequency": "CONTINUOUS"
      }
    ]
  }
}

変更後:

{
  "name": "default",
  "roleARN": "arn:aws:iam::123456789012:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig",
  "recordingGroup": {
    "allSupported": false,
    "resourceTypes": [],
    "inclusionByResourceTypes": {
      "resourceTypes": []
    },
    "exclusionByResourceTypes": {
      "resourceTypes": [
        "AWS::Config::ConformancePackCompliance",
        "AWS::Config::ResourceCompliance",
        "AWS::Backup::RecoveryPoint"
      ]
    },
    "recordingStrategy": {
      "useOnly": "EXCLUSION_BY_RESOURCE_TYPES"
    }
  },
  "recordingMode": {
    "recordingFrequency": "DAILY",
    "recordingModeOverrides": [
      {
        "resourceTypes": [
          "AWS::RDS::DBClusterSnapshot",
          "AWS::RDS::DBSnapshot",
          "AWS::Redshift::ClusterSnapshot"
        ],
        "recordingFrequency": "CONTINUOUS"
      }
    ]
  }
}

put-configuration-recorder で設定を適用し、describe-configuration-recorders で反映を確認しました。us-east-1 でも同様の変更を実施しています。

根本対策: 不要なバックアップリソースの撤去

応急対策で AWS::Backup::RecoveryPoint の新規 Config 記録を停止しましたが、発生源自体も撤去します。

バックアッププランの削除

プラン名 結果
test1 削除完了
test2021 Selection 削除後にプラン削除完了
aws/efs/automatic-backup-plan AccessDenied(AWS 管理プラン)

aws/efs/automatic-backup-plan は EFS 自動バックアップ用に AWS が管理するプランのため、通常のユーザー作成バックアッププランと同じ手順では削除できません。ただしバックアップ対象の EFS を撤去済みのため、以降は新規 RecoveryPoint が作成されないことを確認しています。

RecoveryPoint の一括削除

Default Vault に蓄積されていた 738件の RecoveryPoint を一括削除しました。

aws backup list-recovery-points-by-backup-vault \
  --backup-vault-name Default --region ap-northeast-1 \
  --query 'RecoveryPoints[].RecoveryPointArn' --output text \
  | tr '\t' '\n' \
  | xargs -P 10 -I {} aws backup delete-recovery-point \
      --backup-vault-name Default \
      --recovery-point-arn {} \
      --region ap-northeast-1

結果: 738件 → 0件

対策後の状態

項目 Before After
バックアッププラン 3つ(毎日実行中) aws/efs/automatic-backup-plan のみ残(実質停止)
Default Vault RecoveryPoint 738件 0件
Config 記録(Backup::RecoveryPoint) CONTINUOUS で毎日記録 除外設定により新規記録を停止

コスト削減効果

項目 6月実績 変更後見込み
Config 費用(月額) $5.5 約 $0.4

exclusionByResourceTypes による AWS::Backup::RecoveryPoint の除外で、約 $5.1/月(約 93%)の削減見込みです。

まとめ

本検証では、AWS Config の CONTINUOUS 記録費用の大部分が AWS::Backup::RecoveryPoint に起因していました。exclusionByResourceTypes による新規記録の除外が直接の削減策です。

また、Config 側で記録を除外するだけでなく、不要になっていたバックアッププランや RecoveryPoint も削除しました。これにより、Config 記録の発生源となっていたバックアップリソース自体も整理できました。

Config の費用が想定より高い場合は、Cost Explorer で使用タイプ別の内訳を確認し、どの記録タイプが費用を押し上げているかを把握するのが第一歩です。AWS 公式ブログ「Cost Optimization recommendations for AWS Config」にリソースタイプの絞り込みや記録頻度の見直し手順がまとまっています。Backup 関連の割合が高い場合は、AWS Backup 側に不要な設定や RecoveryPoint が残っていないかも確認してみてください。

参考リンク

https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html

https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingMode.html

https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html


コスト最適化、打ちっぱなしで元通りになっていませんか

タグ付けも不要リソースの棚卸しも、施策は打てる。でも続ける仕組みがなければ、コストは数か月でじわじわ戻る。一度きりで終わらせず、FinOpsを組織に定着させる=CCoEの役割。最適化を回し続ける進め方を、無料資料にまとめました。

CCoE総合支援

FinOpsを定着させる資料をもらう

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事