IaC ジェネレーターを早速試してみた

はじめに

巷で噂のIaCジェネレーターが発表されました。
公式ブログドキュメントを参考に早速試してみたいと思います!

目次

IaCジェネレーターとは?

コンソール画面より構築したリソースをCloudFormationにて管理したくなった。
もしくは、CloudFormation(以後、CFn)を作りたいけど書き方が分からない。。
そんな場面よくありますよね。

そんな時に役に立つのがこちら!てってれ〜
CFnの新機能「IaCジェネレーター」です。

AWSリソースをCFnのテンプレートへ変換してくれる便利機能になります!
早速試してみましょう。

試してみた

CFnの左サイドに新メニューが出現しています。
「IaCジェネレーター」をクリックするとこちらの画面が表示されます。

大きく2ステップの作業が必要です。

  1. スキャンの実施
  2. テンプレートを作成

1. スキャンの実施

まずはAWS全体のリソースのスキャンを実施します。

IaCジェネレーターの「新しいスキャンを開始」ボタンを押下します。
注意点として、確認ダイアログが表示されず、すぐにスキャンが開始されてしまいます。
キャンセルボタンも存在しないため、最後まで見届けるしかありません。スキャン開始は慎重に!

というのも、スキャン自体に制限があるため注意が必要です!

2. テンプレートを作成

早速「テンプレートを作成」ボタンを押下しましょう。

ステップ1

こちらはテンプレート名の命名になります。
その他はデフォルトの設定のままです。

ステップ2

先程スキャンしたリソースからテンプレート化したいリソースを選択します。
CFnで作成されたリソースも含まれてますが、一覧で「スタックによる管理」で確認することが出来ます。
リソース名で絞り込むなどした方が選択しやすいかなと思います。
今回の例では、S3のリソースのみを選択しています。

ステップ3

賢い!!と思ったのはこちらの設定です。
関連リソースを自動検知して提案してくれます。
S3のみピックアップしたため今回の例では何も候補が出てきませんが

例えばVPCのリソースのみ選択した場合
関連するルートテーブルのリソースなどを候補に挙げてくれます。
これは非常に便利だなと思いました。

ステップ4

最後に毎度お馴染みの確認画面ですね。
問題なければ「テンプレートを作成」ボタンを押下しましょう。

数分待つと、CFnのテンプレートが完成します。

yaml or jsonを選択し 「ダウンロード」ボタンをポチッとするだけで簡単にテンプレートがダウンロード出来ます。
ちなみに私はyaml派です。

IaCジェネレーターの一覧画面からも確認が出来ます。
テンプレートが一つ追加になっていますね。

スタックにインポート

せっかくなので、スタックにインポートも試してみます。
元々は手動で構築したリソースをCFnのスタック配下で管理できる機能です。
削除時にスタック単位でまとめて削除出来たりと何かと便利な機能です。

インポート前

先ほどの手順でテンプレート化したS3バケットのタグ名になります。
まだインポート前ですので、タグ名は何も設定がされていません。
CFnのスタック配下でないことが分かります。

IaCジェネレーターの作成したテンプレートより「スタックにインポート」ボタンを押下します。

ステップ1,2は省略しますが
ステップ3にて取り込みたいリソースの確認が出来ます。
CFnの変更セットと同じですね。
アクションが「import」になっていることが分かるかと思います。

スタックにインポートが完了したら、CFnのスタック一覧にもIMPORT_COMPLETEとして表示され確認が出来ます。

インポート後

リソースのタグもインポート後には設定されているのが確認出来ます。

感想

IaCジェネレーター機能を使うことで簡単にCFnのテンプレート化が出来ることがお分かりになったかと思います。
初めて触るAWSサービスを最初からCFn化するのは大変だと思うので、まずは手動で作成し、後に本機能でテンプレート化することで理解が深まるのではないかと思いました。

私としてはCFnより、CDKで作成する方が好きなので
簡単にCDK化されないかなぁと思っていたら…

なんと!「AWS CDK」のタブが!!!

という訳で次回は、CDK migrateを紹介したいと思います!

投稿者プロフィール

tsuji
2021/2にスカイアーチネットワークスにJoin。
(前職ではAIのシステム開発やPoCなどを主に担当)

現在の業務では主にクラウドネイティブなWebアプリケーション/APIのインフラ構築から開発まで幅広く担当。

AWS認定12冠。
コンテナ/CDKマスターになるため日々勉強中。

趣味は読書と競馬鑑賞。

ABOUTこの記事をかいた人

2021/2にスカイアーチネットワークスにJoin。 (前職ではAIのシステム開発やPoCなどを主に担当) 現在の業務では主にクラウドネイティブなWebアプリケーション/APIのインフラ構築から開発まで幅広く担当。 AWS認定12冠。 コンテナ/CDKマスターになるため日々勉強中。 趣味は読書と競馬鑑賞。