📝
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 を比較してみました。
どなたかの参考になれば幸いです。
参考資料
- IaC ジェネレーターを使用して既存のリソースからテンプレートを生成する - AWS CloudFormation
- [AWS Black Belt Online Seminar] AWS CloudFormation
- GitHub - iann0036/former2: Generate CloudFormation / Terraform / Troposphere templates from your existing AWS resources.
- リソースタイプのサポート - AWS CloudFormation
- CloudFormation IaC ジェネレーターを使用してリソーススキャンを開始する - AWS CloudFormation
- Former2をローカルにホストして、既存リソースのCloudFormationテンプレートを出力してみた | DevelopersIO
Discussion