はじめに
2024年10月10日、AWSは AWS Console-to-Code の一般提供を開始しました。
このサービスは、AWSコンソールでの操作をIaCコードに変換する機能を持っているため
今までコンソールで行っていた作業が簡単にコード化できてしまいます!
昨年にはプレビュー版が利用可能でしたが、今回の一般提供を機に改めて試してみようと思います。
目次
AWS Console-to-Codeとは
AWSマネジメントコンソールでの操作を再利用可能な Infrastructure as Code (IaC) に自動変換するサービスです。
使用者はGUIベースの操作をAWS CLIコマンド、CloudFormationテンプレート、AWS CDKコードなど、様々なIaCフォーマットに効率的に変換できます。
サポート対象のサービス
一般提供の開始にあたって、EC2 だけではなく、下記サービスもサポートの対象になりました。
- Amazon Relational Database Service (RDS)
- Amazon Virtual Private Cloud (Amazon VPC)
試してみた
今回はせっかくなので、公式記事を参考に、新たにサポートを開始したRDSの作成を試してみようと思います。
アクションの記録
RDS のダッシュボード画面に行くと右端にウィジェットがあるので「記録を開始」を押します。

開始を押すと、記録が進行中になり、ここからのGUI操作が記録されていきます。

次にデータベース一覧画面へ推移しましたが、この時点で読み取りのアクションとして複数記録されるようです。

ここからコンソールを操作してRDSを作成していきます。
作るMySQLは下記のとおりです。
- バージョン:8.0.39
- DB インスタンス識別子:test-db
- DB インスタンスクラス:db.t3.micro
- パスワード:自動生成
他はデフォルトのままの設定にしています。
作成直前まで来ましたが、記録されたアクションは150あるものの
書き込みのアクションはありません。

では、データベースの作成をやってみます。
作成を実行すると書き込みのアクションとして、「createDBInstance」が表示されました。

ここで記録を停止します。
コードの生成(CLI)
記録された「createDBInstance」にチェックを入れてCLIをコピーしてみます。

作成されたリソースをわかりやすくするため、コード内の識別子を「test-db2」に変更して CloudShell で実行してみます。
すると

うまく実行できませんでした。どうやら null がよくない模様。
なのでコピーしたコードからいったんすべての null の部分を除いて再度挑戦。

無事、test-db2 が作成されました。

また、後ほど確認したところ、読み取りのアクションにチェックを入れると、読み取り専用の CLI コマンドはコピーできることがわかりました。
実行も問題なく行えました。

コードの生成(CloudFormation)
次に CloudFormation も試してみます。
同じく「createDBInstance」にチェックを入れて「CFN YAML を作成」

作成を押すと CLIコマンドの下にCloudFormationのコードが作成されます。
コード生成には Amazon Q Developer を利用しているようです。

このコードをファイルへ保存してスタック作成を実施してみます。
(ただしコードの Reasoning と null の箇所は削除する必要がありました。)
無事作成に成功しました。


注意点
-
無料枠について
AWS Console to Code を用いて、AWS CDK および CloudFormation 形式のコードを生成するのに、月あたり25回の無料枠があります。 -
記録されたアクションについて
特定のブラウザタブの現在のセッション中に行った操作が記録されます。
そのため、他のタブでは操作履歴が反映されません。
Console-to-Codeを利用していたタブを閉じてしまった場合は、記録も削除されるのでご注意ください。
感想・まとめ
AWS Console-to-Code は IaCコードを生成してくれる便利なサービスですが、必ずしもそのまま利用できるというわけではありません。
AWS公式でも生成された IaCコードに関してはテストして検証することを推奨しています。
ただし、それさえ留意していれば、コードを一から作成することなく、同様の設定でリソースの作成が可能となります。
今回は CLI と CloudFormation のみ検証しましたが、CDK コードも生成してくれるようなので、こちらについても検証してみたいと思います。
投稿者プロフィール
最新の投稿
AWS CLI2024年11月5日AWS Console-to-Code を試してみた