0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

#143 CloudFormation IaCジェネレーターを使ってみる

Posted at

はじめに

クラウド環境のインフラを効率的に管理するために、Infrastructure as Code(IaC)は不可欠な手法となっています。その中でも、AWS CloudFormationはAWSリソースの自動構築・管理を可能にする強力なツールです。しかし、すでに作成済みのAWSリソースをCloudFormationテンプレートに書きおこすのは骨が折れる作業になりますし、エラーのリスクも伴います。そこで活躍するのが「CloudFormation IaCジェネレーター」です。今回は、CloudFormation IaCジェネレーターを利用して既存のAWSリソースからAWS CDKテンプレートを作成してみようと思います。

CloudFormation IaCジェネレーターとは?

CloudFormation IaCジェネレーターとは、既存のAWSリソースからAWS CloudFormationのテンプレートを自動生成するAWSサービスです。JSONまたはYAML形式で記述されるCloudFormationのテンプレートを、人手を介さずに作成できるため、開発者や運用エンジニアの負担を大幅に軽減することできます。

IaCジェネレーターを試してみる

今回はEC2とVPCを作成しておき関連する設定(サブネットなど)も含めて、IaCジェネレーターを利用してテンプレートを作成したいと思います。まず、ターゲットとなるVPCとEC2を作っておきます。

【VPCの作成】
aws-cfn-gen-1

【EC2の作成】
aws-cfn-gen-2

「新しいスキャンを開始」でAWSリソースのスキャンを開始します。スキャンが完了したら「テンプレートの作成」を行います。
aws-cfn-gen-3

スキャンしたデータは30日間有効となります。
aws-cfn-gen-4

作成するテンプレートの詳細を設定します。
aws-cfn-gen-5

リソースタイプや識別を入力し、先ほど作成したEC2インスタンスをテンプレートの作成対象に加えます。
aws-cfn-gen-6

関連したリソースとしてVPC(ネットワーク関連)のリソースが表示されるので、それらも選択して作成するテンプレートに追加します。関連したリソースまで表示してくれるのはとても便利ですね!
aws-cfn-gen-7

最後に設定内容を確認します。
aws-cfn-gen-8

作成したテンプレートをダウンロードします。作成されたテンプレートはCloudformationのテンプレートになるので、ダウンロードしたCloudformationテンプレートからAWS CDK用のテンプレートに変換するためにコマンドを実行します。
aws-cfn-gen-9

ダウンロードしたテンプレートはこんな感じです。

・iac-cdk-test-1740224249092.yaml
aws-cfn-gen-10

“cdk migrate”コマンドを実行してみます。

Terminal
cdk migrate --stack-name iac-cdk-test --from-path ./iac-cdk-test-1740224249092.yaml

aws-cfn-gen-11

なにやらエラーが出てしまいました。どうやらEC2におけるVpcIdの記述が無効なようなので該当の個所をコメントアウトし、再度コマンドを実行するも別途エラーが発生しました…。


aws-cfn-gen-12

こちらもEC2においてStateの記述が無効のようなので、こちらも併せてコメントアウトしておきます。

・iac-cdk-test-1740224249092.yaml
aws-cfn-gen-13

再度コマンドを実行すると、今回は正常にAWS CDK関連のファイルが生成されました。
aws-cfn-gen-14
aws-cfn-gen-15

テンプレートファイルの作成自体は簡単ですが、エラーが出てしまっているようにそのまま利用するという訳にはいかなそうです。ネットでIaCジェネレーターに関する情報を調べますと、同じようなエラーであったり、出力されるテンプレートが不安定だったりと不便な所はあるようです。

まとめ

CloudFormation IaCジェネレーターを活用することで、AWS環境の構築・管理を効率化し、IaCの導入をスムーズに進めることができます。ただし、自動生成されたテンプレートをそのまま使用せず、適切に検証・管理することが重要です。比較的新しい機能のため、不便な所がまだ多くあるのかもしれませんが、IaCの導入を行う上でとても強力なツールになることは間違いないと思います。引き続きCloudFormation IaCジェネレーターについて情報収集や学習を進めていきたいと思います。

参考

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

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?