AWS Control Tower管理のAWS Configの記録方法を特定のアカウントのみ日次記録に変更してコスト最適化してみた
こんにちは。クラウド事業本部の木村です。
検証環境でConfigの料金が高く是正したかったものの、Control Tower管理下だったので変更できないと思っていたのですが以下記事を見つけて変更できることを最近知りました。
こちらをみながら対応しようと思っていたところ、アップデートがあってさらに使いやすくなっていました。
こちらの記事ではExcludedAccountsで除外指定する方法を紹介しましたが、今回のアップデートで対象アカウントを直接指定できるようになりましたので特定のアカウントのみを更新を行う方法を紹介したいと思います。
Configの記録方法について
まずConfigの記録方法について簡単に確認しておきます。
記録方法については以下の2つの種類があります。
- 連続記録
- 日次記録
それぞれ記録の回数によって課金が発生し、単価は以下です。(2026/4/27時点、東京リージョン)
- 連続記録 : 0.003USD/1回
- 日次記録 : 0.012USD/1回
デフォルトの設定は連続記録で、リソースの変更毎に構成変更を記録します。
単価は日次記録の方が高いですが、連続記録は変更の度に課金されるため1リソースあたり1日4回以上変更がある場合は日次記録の方が安くなります。
日次記録への切り替え目安について
日次記録への切り替えの目安ですが、前回の記事でまとめておりますので以下を参照してください。
今までの経験則なので全ての環境には当てはまらないかと思いますが、以下リソースタイプは記録数が多くなりやすいかつ1リソースあたりの記録数も多くなりがちなので日時記録に変更することでコストが削減しやすい印象です。
AWS::EC2::SecurityGroup
AWS::EC2::Subnet
AWS::EC2::VPC
やってみる
では実際の環境で試していきたいと思います。
テンプレートを入手する
以下のリポジトリより、template.yamlを取得してください。
テンプレートをデプロイする
では入手したテンプレートをデプロイしていきます。
その際以下の環境でデプロイを行うようにしてください。
- 管理アカウント
- Control Towerのホームリージョン
その後任意の方法で先ほど入手したテンプレートのスタックの作成を行ってください。
続いて、パラメータ設定です。
アップデートでこのパラメータが変更されていてかなり使いやすくなっております。以前は対象外とするアカウントを入力することしかできませんでしたが、アップデートにより対象のアカウントのみを指定して実行ができるようになりました。
基本的にConfigのコスト最適化を目的に設定を変更していく場合、アカウント毎に記録対象のリソースタイプや記録頻度が異なり適切な設定が環境によって異なるため、対象アカウントを明示的に指定して設定を適用する方が運用しやすいと思っています。
今回は初回設定で1アカウントに対して設定するという前提で対応を進めていきます。キャプチャではAWS::EC2::SecurityGroup,AWS::EC2::Subnet,AWS::EC2::VPC,AWS::IAM::Roleを日次記録に変更していきます。(この対象リソースタイプは対応する環境に合わせて変更してください。)
以下のように指定します。
- CloudFormationVersion: 1(デフォルトのまま)
- SourceS3Bucket: marketplace-sa-resources(デフォルトのまま)
- AccountSelectionMode: INCLUSION
- ExcludedAccounts: ['管理アカウントのアカウントID', '監査アカウントのアカウントID', 'ログアーカイブアカウントのアカウントID']
- 最低文字数が設定されているため、INCLUSIONを使用する場合は処理に使用されませんが設定が必要です。管理・監査・ログアーカイブアカウントを対象とするように記載されているので念の為指定しています。
- IncludedAccounts: ['設定変更の対象としたいアカウントのアカウントID'](1アカウントの場合でも左記形式で指定してください。)
- ConfigRecorderStrategy: EXCLUSION(デフォルトのまま)
- ConfigRecorderExcludedResourceTypes: 指定なし
- ConfigRecorderIncludedResourceTypes: 指定なし
- ConfigRecorderDefaultRecordingFrequency: DAILY
- ConfigRecorderDailyResourceTypes: 日次記録へと変更したいリソースタイプをカンマ区切りで指定してください。(グローバルリソース除く)
- ConfigRecorderDailyGlobalResourceTypes: IAMなどのグローバルリソースで日次記録へと変更リソースタイプをカンマ区切りで指定してください。(ConfigRecorderDailyResourceTypesで設定した内容を除く)


上記のように設定できたら、そのままスタックの作成を行ってください。
スタックが完了したら、設定の対象にしたアカウントの設定を確認します。
Configのコンソールに移動して設定の画面を開きます。

以下のようにオーバーライドした設定に対象のリソースタイプがあれば問題なく更新完了です。

別のアカウントに設定を追加する場合
先ほども説明しましたとおり、環境によってコスト最適な設定が異なってきます。
そのため、Aアカウントではこのように設定したがBアカウントではこのように設定したいという場合の対応方法についても説明したいと思います。
先ほどの設定でAアカウントを対応したものとして、追加でBアカウントの設定を行うといった前提で進めていきます。
作成したスタックを選択して更新を行っていきます。この際テンプレートは既存のものを選択します。
続いて以下のパラメータを指定してください。
- CloudFormationVersion: 2(設定追加の度にインクリメントしてください)
- SourceS3Bucket: marketplace-sa-resources(変更なし)
- AccountSelectionMode: INCLUSION(変更なし)
- ExcludedAccounts: ['管理アカウントのアカウントID', '監査アカウントのアカウントID', 'ログアーカイブアカウントのアカウントID'] (変更なし)
- IncludedAccounts: ['設定変更の対象としたい新アカウントのアカウントID'](1アカウントの場合でも左記形式で指定してください。)
- ConfigRecorderStrategy; EXCLUSION(変更なし)
- ConfigRecorderExcludedResourceTypes: 指定なし(変更なし)
- ConfigRecorderIncludedResourceTypes: 指定なし(変更なし)
- ConfigRecorderDefaultRecordingFrequency: DAILY(変更なし)
- ConfigRecorderDailyResourceTypes: 日次記録へと変更したいリソースタイプをカンマ区切りで指定してください。(グローバルリソース除く)
- ConfigRecorderDailyGlobalResourceTypes: IAMなどのグローバルリソースで日次記録へと変更リソースタイプをカンマ区切りで指定してください。(ConfigRecorderDailyResourceTypesで設定した内容を除く)


設定できたら更新を行います。
スタックの更新ができたら、対象アカウントのConfigの設定を確認しましょう。
先ほどと同様にオーバーライドした設定に対象のリソースタイプがあれば問題なく更新完了です。

念の為最初に設定したアカウントも確認して、設定が今回の更新で上書きされていないか確認してみます。
以下のように変更なさそうでしたので、問題なさそうです。

まとめ
今回はControl Tower管理のAWS Configの記録方法を特定のアカウントのみ日次記録に変更する対応を行ってみました。
組織内の対象の環境によって設定を変えたいケースがほとんどかと思いますので、今回のアップデートでかなり使いやすくなったのではないかと思います。
私のようにControl Tower管理のConfigの設定は変更できないと思っていた方もこれを機に設定内容の見直しを行っていただければと思います!
この記事が参考になれば幸いです。
以上、クラウド事業本部の木村がお届けしました。





