既存リソースから CloudFormation テンプレートを自動生成する方法を教えてください

既存リソースから CloudFormation テンプレートを自動生成する方法を教えてください

Clock Icon2025.03.12

困っていた内容

CloudFormation を使わず手動で作成した AWS リソースがあります。
実際のリソースから CloudFormation テンプレートを自動生成したいので、方法を教えてください。
また、可能であれば生成したテンプレートをそのままスタックとして CloudFormation にインポートしたいです。

どう対応すればいいの?

IaC ジェネレーターとリソースインポート機能を使用してください。

IaC ジェネレーター(infrastructure as code generator)は、CloudFormation 外で作成されたリソースをもとに、CloudFormation テンプレートを生成するツールです。

リソースインポートは、CloudFormation で管理されていないリソースを、CloudFormation の管理下(スタック)にインポートする機能です。インポートにはインポート対象を含む CloudFormation テンプレートを用意する必要がありますが、IaC ジェネレーターで生成したテンプレートも使用可能です。

なお、IaC ジェネレーターでテンプレートを生成する前に、リソースのスキャンを行っておく必要があります。スキャンはリージョン内のリソース全体に対して行われるため、時間が掛かる場合があるためご注意ください。

やってみた

手順

  1. リソースのスキャン
  2. テンプレートの生成
  3. テンプレートのインポート

今回は CloudFormation 外で作成した次の IAM ロールから CloudFormation テンプレートを生成してインポートします。

CloudFormation Import Resources With Iac Generator 1

1. リソースのスキャン

テンプレートを生成する前に、リージョン内のリソースをスキャンします。

AWS CloudFormation コンソールの IaC ジェネレーターページを開き、「新しいスキャンを開始」をクリックします。

CloudFormation Import Resources With Iac Generator 2

スキャンが完了するまで待ちます。
(適宜ページは閉じて後日確認してください)

CloudFormation Import Resources With Iac Generator 3

2. テンプレートの生成

スキャンが完了したらテンプレートを生成します。

「テンプレートを生成」をクリックします。

CloudFormation Import Resources With Iac Generator 4

任意のテンプレート名とポリシーを指定して「次へ」をクリックします。

CloudFormation Import Resources With Iac Generator 5

「スキャンしたリソースを追加」からテンプレートを生成するリソースを選択し、「次へ」をクリックします。
今回は IAM ロール:hato-blogのみを選択します。多くのリソースが表示される場合は、検索機能も活用してください。

CloudFormation Import Resources With Iac Generator 6

「次へ」をクリックします。

CloudFormation Import Resources With Iac Generator 8

「テンプレートを作成」をクリックします。

CloudFormation Import Resources With Iac Generator 9

選択したリソースをもとに CloudFormation テンプレートが作成されました。

CloudFormation Import Resources With Iac Generator 10

デフォルトはYAML形式ですがJSON形式に切り替えることもできます。
また「ダウンロード」をクリックするとファイルとしてダウンロードすることも可能で、クリップボードへのコピーも対応しています。

CloudFormation Import Resources With Iac Generator 11

3. テンプレートのインポート

生成したテンプレートをもとに、既存のリソースをスタックにインポートします。

「スタックにインポート」をクリックします。
なお、生成したテンプレートのページを閉じた場合も、「新しいスキャンを開始」をクリックしたページの「テンプレート」タブ(「スキャンの概要」右横)から再度開くことが可能です。

CloudFormation Import Resources With Iac Generator 12

任意のスタック名を指定して「次へ」をクリックします。

CloudFormation Import Resources With Iac Generator 14

「次へ」をクリックします。

CloudFormation Import Resources With Iac Generator 15

インポートされる内容を確認して「次へ」をクリックします。

CloudFormation Import Resources With Iac Generator 16

「リソースをインポート」をクリックします。

CloudFormation Import Resources With Iac Generator 17

インポートが完了するまで、しばらく待ちます。

CloudFormation Import Resources With Iac Generator 18

IMPORT_COMPLETEとなり完了すると、スタックにインポートされたリソースが追加されます。

CloudFormation Import Resources With Iac Generator 19

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.