0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】CloudFormation IaC ジェネレーターを試してみた

Posted at

はじめに

今回は、AWSのCloudFormation IaC ジェネレーターを使って、既存のAWSリソースからテンプレートを作成する方法を試してみました。
というのも、個人の検証用AWS環境にあるリソースを簡単にコード化し、必要なときにリソースをすぐに起動・削除できないかと思った次第です。

検証方法の流れ

以下の手順で、CloudFormation IaC ジェネレーターを使って既存リソースからテンプレートを作成し、検証しています。

  1. AWSリソースを作成する
  2. CloudFormation IaC ジェネレーターでリソースをスキャンする
  3. CloudFormation IaC ジェネレーターでテンプレートを作成する
  4. テンプレートをCloudFormationスタックにインポートする
  5. (検証後のお掃除に)リソース削除する

1. AWSリソースを作成する

以下画像のように、検証用にVPCとサブネット、NATゲートウェイなどをまとめて作成します。
20241115_AWS_CloudFormation_000001.png

2. CloudFormation IaC ジェネレーターでリソースをスキャンする

CloudFormationコンソール画面からIaC ジェネレーターページを開きます。
スキャン画面から新しいスキャンを開始をクリックします。※2回目以降は再スキャンと表示されます
20241115_AWS_CloudFormation_000002.png

3. CloudFormation IaC ジェネレーターでテンプレートを作成する

テンプレートを作成をクリックします。
20241115_AWS_CloudFormation_000003.png

テンプレート名や削除ポリシー、置換ポリシーなど、リソース削除時の動作を設定します。
今回は検証用途であるため、どちらのポリシーも削除に設定しています。
20241115_AWS_CloudFormation_000004.png

次は、テンプレートに追加するリソースを追加します。
ここでは、リソース作成時に付与したタグでフィルターを設定し、該当するリソースのみを選択しています。
20241115_AWS_CloudFormation_000005.png

選択したリソースが表示されるので、そのまま次へをクリックします。
20241115_AWS_CloudFormation_000006.png

関連リソースをすべて追加することが推奨らしいので、そのまま次へをクリックします。
20241115_AWS_CloudFormation_000007.png

最後のページで確認画面が表示されるので、問題がなければテンプレートを作成します。

4. テンプレートをCloudFormationスタックにインポートする

「一部のオプションのプロパティがテンプレートに含まれていませんでした」という注意喚起が表示されますが、CloudFormationにインポートするのには問題ないので、そのままスタックにインポートをクリックします。
20241115_AWS_CloudFormation_000008.png

スタック名を設定し、次へをクリックします。
20241115_AWS_CloudFormation_000009.png

そのまま次へをクリックします。
20241115_AWS_CloudFormation_000010.png

そのまま次へをクリックします。
20241115_AWS_CloudFormation_000011.png

最後のページで確認画面が表示されるので、問題がなければリソースをインポートします。

CloudFormationスタックへのインポートができました。
20241115_AWS_CloudFormation_000012.png

5. (検証後のお掃除に)リソース削除する

スタック画面から削除をクリックします。
20241115_AWS_CloudFormation_000013.png

確認画面で、削除をクリックします。
20241115_AWS_CloudFormation_000014.png

今回、スタックの削除に失敗してしまったので、削除を再試行しています。
20241115_AWS_CloudFormation_000015.png

削除が完全にできない場合に、このスタック全体を強制削除します。
20241115_AWS_CloudFormation_000016.png

これでも完全に削除できていないリソースが数個あったので、それは個別で削除しました。

さいごに

既存リソースをIac化できますが、コードが物理IDで書かれている部分があったりするので、それを修正する手間は必要だと思います。環境を複製したい場合などは今のままだと、利用できないかなと…
個人的には、コード修正するのめんどくさいと思うヒトなので、今後のアップデートでいい感じになることを期待しています。

参考ドキュメント

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?