本記事は
IaCウィーク
7日目の記事です。
⚙️
6日目
▶▶ 本記事 ▶▶
8日目
💻

はじめに
こんにちは。大林です。
AWS Control Tower(以下、Control Tower)の導入とともに利用される Account Factory for Terraform(以下、AFT)は、アカウント作成と初期設定の自動化を強力に支援してくれる仕組みです。Terraform ベースで統一されたプロビジョニングを実現できるため、大規模なマルチアカウント環境でもガバナンスを保ちながら運用を効率化できます。
しかし、AFTは運用方法によってはコストが増加してしまうケースが出てきます。
今回はAFTにおけるコスト増加を防ぐ方法を説明します。
AFTとは
概要説明

AFTは、Control Towerのアカウントプロビジョニング機能をTerraformによってGitOps型で自動化する仕組みです。
- Terraform 公式手順:https://learn.hashicorp.com/tutorials/terraform/aws-control-tower-aft
- AWSブログ:https://aws.amazon.com/jp/blogs/news/new-aws-control-tower-account-factory-for-terraform/
前提条件
AFT導入時の前提条件は以下です。
- Terraformの実行環境が準備できていること
- Control Towerがすでに有効化され、Landing Zoneが構築されていること
- GitHubのリポジトリが2つ用意されていること
コスト増加を防ぐポイント
AFTのコスト増加要因はいくつかありますが、特に注意したいのがAWS Config(以下、Config)のコスト増加です。
AFTはアカウントの初期設定や共通基盤構築を自動化する仕組みですが、設定内容によっては意図せずConfigの記録対象リソースが急増し、課金が跳ね上がるケースがあります。
以下では、Configコストを増やさないためのポイントを紹介します。
なぜコストが増加するのか
1. 復旧ポイント(Recovery Point)が大量に生成され、Configの監査対象が膨れ上がる
AFT管理アカウントでは、AWS Backup(以下、Backup)復旧ポイントがデフォルト設定だと大量に蓄積されます。
復旧ポイントは1つ1つが構成アイテムとして扱われるため、Configはそれらをすべて監査対象として評価します。
Configの課金は「評価対象リソース数 × ルール評価回数」で決まるため、復旧ポイントが数千〜数万件に増えると、それだけでコストが急上昇します。
2. Configの記録範囲が広すぎる
Configを「全リソース記録」「全ルール有効化」にしていると、AFT管理アカウントのあらゆる構成変更を監査することになります。
リソースが増えるだけでなく、監査頻度が高いルールが含まれていると、それだけでコストは指数関数的に増えます。
どうしたら防げるのか
1. 復旧ポイントの増加を抑える
Backupにおける復旧ポイントの保持期間をカスタマイズすることでコストを抑えることができます。
2. Security Hub コントロール「Backup.1」を無効化する
Security Hub コントロール「Backup.1」が有効なままだと、バックアップ復旧ポイントがすべて監査対象となり、Configの評価頻度が非常に高くなります。
1つのコスト増加抑制手段として、Security Hub コントロール「Backup.1」を無効化する方法もあります。
ただし、「Backup.1」は復旧ポイントが暗号化されているかを確認するコントロールのため、運用設計によっては無効化が難しいケースもあります。
3. Configの記録範囲とルールを最適化する
Configの記録頻度や記録対象を変更することも有効な対策の1つです。
Configの記録方法を「日次の記録にする」あるいは「対象となるリソースタイプを限定する」といった形で調整することで、無駄な記録を抑えることができます。
ただし、このように記録頻度や対象範囲を絞ると、変更を検知できるまでの時間が長くなる可能性があり、その点についてはあらかじめ許容する必要があります。