友とコーヒーと嘘と胃袋

AWS

AFTのランニングコスト削減方法

AFTのランニングコスト削減方法

皆さんも個人アカウントでAWS Control Tower/AFTを利用されていると思いますが、AFTのランニングコストって高いですよね。
最近のAFTのアップデートにより、さらにランニングコストを下げる方法が増えていたので、こちらで共有。

改善前

VPCを作成しないフラグを立てていても、AFTのインフラリソースのみで$1.43/日を占めていました。

改善後

なんとびっくり。
AWS Configのコストが丸々カットされており、$0.81/日となりました。(ここで何をしているか気づいた方が居るかも)

AFTのランニングコストについて

AFTのランニングコストは主に下記の2点が占めていました。

  • Service Catalogを呼び出すAPIコール料金(Account Factoryで利用)
  • AWS Configレコーダーの記録料金

AFTが作成するDynamoDBテーブルにAWS Backupのバックアップスケジュールが1時間おきに設定・作成されています。
上記リソースが追加されることにより、後者のコストが嵩む要因となっていました。

1.20.0のアップデートで下記のIssue(バックアップスケジュールを変数化)が取り込まれたことにより、
ユーザーでバックアップスケジュールを調整することが可能となりました。
https://github.com/aws-ia/terraform-aws-control_tower_account_factory/issues/596

バックアップスケジュールの調整方法

下記44行目のようにcron式を設定します。
https://github.com/AhiruMarsh/aft/blob/8c861cfe37b16ee663123087d2dc8468d6d33fce/terraform/main.tf#L37-L45

  backup_schedule                 = "cron(0 8 1 * ? *)" # monthly

あとがき

Service CatalogのAPIコール料金も削減できるようにしてほしい…
アカウント発行を司るLambdaがSQSのポーリングじゃなく、5分おきにEventBridgeから起動しているのが原因ではないかと。