CloudFormation IaC generator でタグをもとに既存リソースをテンプレート化してみた

CloudFormation IaC generator でタグをもとに既存リソースをテンプレート化してみた

AWS CloudFormation IaC generator を使って、タグ付きの既存 AWS リソースをテンプレート化する手順を紹介します。
2026.05.21

はじめに

こんにちは、山本 翔大です。
AWS のハンズオンなどで作成した環境を、最後に削除する場面は少なくありません。
ただ、時間をかけて構築した環境ほど、そのまま削除してしまうのは少しもったいなく感じます。
せっかく作った構成であれば、後から見返したり、別の検証で再利用したりできる形で残しておきたいところです。
そこで今回は、リソースに付与したタグをもとに、CloudFormation テンプレートの作成を試してみました。

やってみた

流れ

以下の流れで、タグベースの CloudFormation テンプレート作成を試していきます。
すでに作成済みのリソースがある場合は 1、2 は飛ばしてください。

  1. S3 バケットを作成する
  2. Lambda 関数を作成する
  3. CloudFormation IaC generator でスキャンする
  4. CloudFormation テンプレートを生成する

注意点

実際に始める前に注意点を 2 つ説明します。

1 つ目は、Lambda 関数のコードが保持されない点です。
IaC generator で生成されるテンプレートには、Lambda 関数の設定(ランタイムやタイムアウトなど)は含まれますが、関数のコード本体は含まれません。コードは別途バックアップしておく必要があります。
テンプレートを生成した後にコードをバックアップせず元となった Lambda を削除するとコードが消失してしまう可能性があるので注意してください。

2 つ目は、生成されたテンプレートはそのまま使えないことが多いという点です。1 つ目とも被る部分はありますが、生成されたテンプレートは完全に作成したリソースを再現するようなものではありません。内容を確認して修正する必要があります。
また、生成前に作成したリソースを残したままテンプレートを使用すると S3 バケット名や IAM ロール名の重複でエラーが発生することがあります。生成されたテンプレートはあくまでベースとして利用してください。

step.1 S3 バケットの作成

まずは S3 バケットを作成します。
マネコンから以下の設定でバケットを作成してください。

  • バケットタイプ:汎用
  • バケット名:cfntag-demo-bucket-(任意の文字列)
  • タグ
    • キー:Project  値:cfntag-demo

スクリーンショット 2026-05-20 15.22.39

今回は Project キーを元にテンプレートの生成を行うためタグに追加するのを忘れないようにしてください。

スクリーンショット 2026-05-20 15.29.22

step.2 Lambda 関数の作成

次に Lambda 関数を作成します。
S3 と同様に以下の設定で関数を作成してください。

  • 作成方法:一から作成
  • 関数名:cfntag-demo-function
  • ランタイム:Python 3.14
  • アーキテクチャ:x86_64
  • タグ
    • キー:Project  値:cfntag-demo

スクリーンショット 2026-05-20 15.29.49

関数が作成できたらコードを編集します。
以下のコードに変更し、Deploy してください。

import json

def lambda_handler(event, context):
    print("S3 event received")
    print(json.dumps(event))

    return {
        "statusCode": 200,
        "body": "OK"
    }

最後にトリガーとして S3 バケットを指定すれば完成です。
必要に応じて動作確認を行ってください。

スクリーンショット 2026-05-20 15.32.06(2)

step.3 CloudFormation IaC generator でスキャン

ここからはテンプレートを生成するための準備を行います。
生成には事前にリソースのスキャンを行う必要があります。
CloudFormation を選択し、左メニューから IaC generator を開いてください。
「新しいスキャンを開始」からリソースのスキャンを行うことができます。
全てのリソースのスキャンと特定のリソースのスキャンがありますが、今回は特定のリソースのスキャンを選択してください。
対象のリソースタイプは以下を選択してください。

  • S3 バケット:AWS::S3::Bucket
  • Lambda 関数:AWS::Lambda::Function
  • Lambda Permission:AWS::Lambda::Permission
  • IAM ロール:AWS::IAM::Role
  • CloudWatch Logs LogGroup:AWS::Logs::LogGroup

スクリーンショット 2026-05-20 15.49.22

リソースタイプを選択したら「スキャンを開始」をクリックしスキャンが完了するのを待ってください。

スキャンが完了すると以下のようにリソースの割合を見ることができます。
なお、この時点ではタグの指定を行っていないため、スキャン結果には選択したリソースタイプの全てのリソースが表示されます。

スクリーンショット 2026-05-20 15.56.07

step.4 CloudFormation テンプレートの生成

続いてテンプレートの作成を行います。
「テンプレートの作成」をクリックしテンプレート名を入力してください。
次の画面でタグの設定ができます。ここで先ほど入力したタグを追加します。

  • キー:Project  値:cfntag-demo

タグを付与したリソースが表示されるので全てにチェックを入れてください。

スクリーンショット 2026-05-20 16.00.57

「次へ」をクリックすると関連するリソースが表示されます。
タグを付与していない関連リソース(IAM ロールなど)がここに表示されます。
表示されているリソースは基本的に全て選択してください。

スクリーンショット 2026-05-20 16.01.11

全ての選択が終わったら「テンプレートを作成」をクリックしテンプレートの作成を行ってください。
テンプレートの作成が終わると、生成されたテンプレートの中身を確認できる画面が表示されます。
形式を YAML に変更したりスタックにそのままインポートしたりすることができます。
これでタグをもとにした CloudFormation テンプレートの生成は終了です。

おわりに

今回は、リソースに付与したタグをもとに CloudFormation テンプレートを生成してみました。
注意点でも触れたとおり、生成されたテンプレートはそのまま使えるわけではありませんが、一から書くよりもベースがある状態から始められるのは便利だと感じました。
ハンズオンや検証で作った環境を残しておきたいときに、ぜひ試してみてください。

参考資料

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/generate-IaC.html
https://dev.classmethod.jp/articles/aws-cloudformation-iac-generator/

クラスメソッドオペレーションズ株式会社について

クラスメソッドグループのオペレーション企業です。

運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。

当社は様々な職種でメンバーを募集しています。

「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026年1月 アノテーション㈱から社名変更しました

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事