PR

AWS AFTをざっくり理解する|アカウント自動化の仕組み

AFT クラウドニュース

AWSのアカウント、いくつ管理していますか?

  • 開発用
  • 本番用
  • 検証用
  • 開発用 パート2
  • 一時利用用

気づけばアカウントが増殖して、「また同じセキュリティ設定をイチからやらなきゃ」という経験、ありませんか?

チームが大きくなるほど、アカウント管理って大変ですよね。
しかも、毎回手作業だと設定ミスが起きやすいし、「誰がどのルールで作ったの?」という属人化も起きがちです。

そんな課題をすっきり解決してくれるのが、今回紹介する AWS AFT(Account Factory for Terraform)です。

「Terraformってよく聞くけど、AFTは初耳」という方も多いかもしれません。

そこでこの記事では、AFTが何をするサービスなのか、どんなときに使うのか、料金はどうなのか、を初心者の方向けにざっくり解説していきます。

AFTって何?

AFTの正式名称は Account Factory for Terraform

AWS Control Towerと組み合わせて使う、AWSアカウントの「自動作成・カスタマイズ」の仕組みです。

少し言葉を整理しましょう。

  • AWS Control Tower
    複数のAWSアカウントをまとめて管理するサービス
    「ランディングゾーン」と呼ばれる、安全なマルチアカウント環境を自動でセットアップしてくれます
  • Terraform
    HashiCorp社が作ったインフラ構成管理ツール。
    コードでAWSなどのクラウドリソースを定義・管理できます(IaCツールの一つ)
  • AFT
    上記の2つを組み合わせ、Terraformのコードを書くだけでAWSアカウントを自動でプロビジョニング(作成・設定)できるようにしてくれる仕組み

AFTはTerraformベースのパイプラインをセットアップして、AWS Control Tower上でアカウントのプロビジョニングとカスタマイズを自動化してくれます。

ざっくりいうと、

という仕組みです。

AFTで何ができるの?

アカウントの自動作成

AFTはGitOpsモデルに従って、AWS Control Tower上でのアカウントプロビジョニングアップデートのプロセスを自動化します。

Gitリポジトリにアカウントリクエストファイルを作成してpushすると、それをトリガーにパイプラインが動き出し、アカウントが自動で作成されます。

セキュリティ設定の統一

作成したアカウントに、

  • IAMロール
  • セキュリティグループ
  • 事前設定済みのS3バケット

といった、組織固有のセキュリティ設定を自動で付与することができます。

「全アカウントで必ずこのセキュリティルールを適用する」という設定も、コードで管理できるようになるんです。便利ですよね。

複数アカウントの一括管理

通常のControl TowerではAWSアカウントを一度に1つしか作れませんが、AFTなら複数のアカウントリクエストをまとめて処理できます。

カスタマイズの柔軟な管理

AFTには4つのGitリポジトリが作られます。

それぞれ

  • アカウントリクエスト
  • 全アカウント共通のカスタマイズ
  • アカウント個別のカスタマイズ
  • AFT自体の設定

という役割を持ちます。

これによって「本番アカウントには厳しいガードレールを」「サンドボックスには予算アラートを」という細かい使い分けも、コードで表現できるようになるんです。

どんなときに使うの?

AFTが向いているシーンはこんな感じです。

  • 複数のAWSアカウントを管理している(または今後増える予定がある)
  • 組織全体でTerraformを使ってインフラをコード管理している
  • アカウント作成のたびに同じ設定を繰り返す手作業を減らしたい
  • セキュリティ設定のばらつきをなくして、ガバナンスを強化したい
  • 「誰がいつどんな設定でアカウントを作ったか」を記録・追跡したい

逆に、管理するアカウントが1〜2個だったり、Terraformの経験がないチームには、導入のコストが大きくなり、不便を感じるかもしれません。

料金は?

AFT自体に追加料金はかかりません。

ただし、AFTが内部で使用するAWSサービス(CodePipeline、CodeBuild、DynamoDB、S3など)の利用料金は発生します。

「無料じゃないんだ」と感じるかもしれません。

でも、手作業でのアカウント管理コストや、設定ミスによるセキュリティリスクを考えると、規模が大きくなるほど費用対効果が期待できるでしょう。

導入するには何が必要?

AFTの導入には、ある程度のTerraformとAWS Control Towerの知識が必要です。

事前に必要なのは、

  • AWS Control Towerのランディングゾーン
  • AFT専用の管理アカウント
  • Terraformの実行環境
  • バージョン管理システム(GitHubやAWS CodeCommitなど)

です。

AFTのデプロイには最大30分ほどかかることがあります。
完了すると、GitにファイルをpushするだけでAWSアカウントが自動作成される仕組みが出来上がります。

なお、AFTのパイプラインは、EC2インスタンスなどのアプリケーション用リソースのデプロイには使いません。

あくまでAWS Control Towerアカウントのプロビジョニングとカスタマイズ専用の仕組みです。

Terraformを使っていなかったら?

うちはTerraformじゃなくてCloudFormationを使ってるんだけど

という場合は、AFTではなく通常のAWS Control TowerのAccount Factoryを使うのが一般的です。

AFTはあくまで「Terraformユーザー向けの拡張機能」という位置づけです。
Terraformを組織的に使っている、あるいはこれから採用するという文脈でこそ力を発揮します。

「Gitにpushするだけ」ってどういうこと?

新しいプロジェクトチームに「開発用AWSアカウント」を渡す場面を考えます。

従来の手作業なら:

  1. AWSコンソールで新規アカウントを作成
  2. IAMロールを手動で設定
  3. セキュリティポリシーを確認しながら手動で適用
  4. 予算アラートや監査設定も手動で……

AFTなら:

  1. Terraformファイルに「アカウント名」「OU(組織単位)」「適用するカスタマイズ」を記述
  2. Gitにpush
  3. パイプラインが自動で動いて、ルール通りのアカウントが完成 ✅

しかも、このコードはGitに残るので「いつ・誰が・どんな設定で作ったか」が履歴として追跡できます。
これは、GitOpsと呼ばれる考え方のメリットです。

AWS AFTをざっくり振り返ると

最後に今回紹介したAFT(Account Factory for Terraform)のポイントをまとめますね。

項目内容
何をするもの?TerraformでAWSアカウントを自動作成・カスタマイズ
組み合わせるものAWS Control Tower
向いている人Terraformを使うマルチアカウント管理者
料金AFT自体は無料、使用サービス分は課金
注意点導入にはTerraformとControl Towerの知識が必要

「AWSアカウントの管理を自動化したい」「Gitでインフラをコード管理したい」という方は、AFTという選択肢を頭に入れておくと、いつかきっと役に立つはずですよ!


タイトルとURLをコピーしました