📝

CloudFormation の IaC ジェネレーターと Former2 を比較してみた

に公開

既存の AWS 環境から CloudFormation テンプレートを自動生成するツールとして、CloudFormation の IaC ジェネレーターと Former2 を比較してみました。

IaC ジェネレーターとは

IaC ジェネレーターを使用して既存のリソースからテンプレートを生成する - AWS CloudFormation

IaC ジェネレーター (Infrastructure as Code ジェネレーター) では、まだ CloudFormation の管理対象になっていないアカウントにプロビジョニングされた AWS リソースを使用してテンプレートを生成することができます。

AWS が公式に提供している CloudFormation の組み込みの機能です。

Former2 とは

[AWS Black Belt Online Seminar] AWS CloudFormation

AWS公式のツールではないが、Former2を利用することで、既存のAWSリソースをCloudFormationテンプレート化できる。そのテンプレートを活かし、リソースをインポートすることでCloudFormationで扱えるようになる。

GitHub で公開されているサードパーティツールです。
IaC ジェネレーターがリリースされるまでは Former2 を使用するケースが多い印象でした。

比較

IaC ジェネレーター Former2
公式ツールかどうか ×
CDK コードの生成が可能かどうか
生成されたテンプレートを CDK に移行することは可能です。
IaC ジェネレーターを使用して既存のリソースからテンプレートを生成する - AWS CloudFormation
SAM テンプレートの生成が可能か × ×
Terraform コードの生成が可能か ×
生成されたテンプレートをそのまま使用できるか
修正が必要なケースもあります。

修正が必要なケースもあります。
料金 無料 ツールの使用は無料ですが、一部の AWS サービスの API 呼び出しで少額の料金が発生する可能性はあります。
すべてのリソースをサポートしているか ×
リソースタイプのサポート - AWS CloudFormation
×
former2/RESOURCE_COVERAGE.md at master · iann0036/former2 · GitHub
コマンドでの操作がサポートされているか
CloudFormation IaC ジェネレーターを使用してリソーススキャンを開始する - AWS CloudFormation

former2/cli/README.md at master · iann0036/former2 · GitHub
クォータがあるか
一部のバージョンでは API レート制限が発生するという Issue がありました。
Rate Exceeded on AWS API · Issue #11 · iann0036/former2
Docker イメージが提供されているか ×
Former2をローカルにホストして、既存リソースのCloudFormationテンプレートを出力してみた | DevelopersIO

ユースケース

ほぼ同等の機能がありそうですが、以下のように使い分けできる可能性がありそうです。

  • CDK や Terraform のコードを生成したい場合: Former2
  • 無料で CloudFormation テンプレートを生成したい場合: IaC ジェネレーター

まとめ

今回は CloudFormation の IaC ジェネレーターと Former2 を比較してみました。
どなたかの参考になれば幸いです。

参考資料

Discussion