1
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?

AWS Console-to-Code使用してみた

Last updated at Posted at 2024-10-30

はじめに

AWSから、AWS Console-to-Code を正式リリースされました。
この機能を使えば、AWSコンソールで行った操作をCloudFormationやAWS CDKのコードに変換でき、Infrastructure as Code (IaC) の実現に役立ちます。

詳しくはこちら:

AWS Console-to-Codeの概要

AWS Console-to-Codeは、AWSコンソール上の操作をリアルタイムで記録し、その操作に対応するコード(CLIコマンド、CloudFormation、CDKなど)を生成する機能です。
これにより、手動のコンソール操作から自動化のコード生成まで、効率よくコード化することが可能になります。

対応しているAWSサービス

現在、Console-to-Codeは以下の3つのサービスに対応しています。

・Amazon EC2
・Amazon RDS
・Amazon VPC

サポートされるコードの形式

現時点では、Console-to-Codeは以下のコード形式でIaCコードを生成します。

・AWS CDK(Java, Python, TypeScript)
・CloudFormation(JSON, YAML)

※IaC(Infrastructure as Code)は、サーバのインフラ(CPUやメモリなど)をコードによって構成・管理する技術です。

AWS Console-to-Codeの使い方

次に、Console-to-Codeを使用して、今回はEC2インスタンスの操作を記録しCLIコマンドを生成する手順を紹介します。

手順

1.AWSコンソールで、EC2サービスに移動します。
インスタンス一覧から、コード化したいインスタンスを選択します。(停止中であれば起動します)。

スクリーンショット 2024-10-28 11.21.01.png

2.Console-to-Codeウィジェットの起動
インスタンスIDをクリックして詳細を開き、画面右側に表示される「Console-to-Code」ウィジェットを選択します。「記録を開始」をクリックして操作を記録します。

スクリーンショット 2024-10-27 21.06.02.png

3.操作の記録
記録が終了したら、「停止」をクリックして記録を完了させます。
「記録を開始」をクリックし、操作を記録。

スクリーンショット 2024-10-27 22.05.19.png

4.記録結果の確認とコード生成
記録されたアクションが表示されるので、コード形式(YAML, JSON, CDKなど)を選択してコードを生成します。

スクリーンショット 2024-10-27 22.09.12.png

5.コードのコピー
必要に応じて生成されたCLIコマンドをコピーし、AWS CloudShellなどで実行します。

スクリーンショット 2024-10-28 11.31.14.png

これで、EC2インスタンスを起動するためのCLIコマンドが生成されます。

代表的なEC2アクション例

AWS Console-to-Codeでは、以下のようなEC2操作が記録可能です。

・インスタンスの作成

 アクション: RunInstances(インスタンスの起動)

・インスタンスの削除

 アクション: TerminateInstances(インスタンスの終了)

・セキュリティグループの設定

 アクション: CreateSecurityGroup(新しいセキュリティグループの作成)

・セキュリティグループへのルール追加

 アクション: AuthorizeSecurityGroupIngress(インバウンドルールの追加)

・キーペアの作成

アクション: CreateKeyPair(SSHキーペアの生成)

各アクションは、タイムスタンプやリソースIDなどの詳細とともに、CLIコマンドやCloudFormation/CDKコードとして出力されます。

生成されたCLIコマンドの例

実際にConsole-to-Codeによって生成されたEC2インスタンスのCLIコマンド例は以下の通りです。

aws ec2 run-instances 
--image-id "i-xxxxxxxxxxxx" 
--instance-type "t2.micro" 
--key-name "my-key" 
--network-interfaces '{"AssociatePublicIpAddress":true,"DeviceIndex":0,"Groups":["sg-1a1aa1a1aa1a111a1"]}' 
--credit-specification '{"CpuCredits":"standard"}' --tag-specifications '{"ResourceType":"instance","Tags":[{"Key":"Name","Value":"test"}]}' 
--metadata-options '{"HttpEndpoint":"enabled","HttpPutResponseHopLimit":2,"HttpTokens":"required"}' 
--private-dns-name-options '{"HostnameType":"ip-name","EnableResourceNameDnsARecord":true,"EnableResourceNameDnsAAAARecord":false}' 
--count "1" 

このコマンドをAWS CloudShellなどで実行すると、指定した設定でEC2インスタンスを起動できます。
今回は、AWS CloudShellで起動させてみました。

スクリーンショット 2024-10-27 23.08.17.png

まとめ

AWS Console-to-Codeは、手動で行った操作を簡単にコード化できるため、特にインフラ設定をIaCで管理する方にとって便利なツールだと思います。

現在の対応サービスは限定的ですが、今後の対応拡張が期待されます。

AWSでのコンソール操作を効率化し、自動化する手段として、非常に便利なツールだと感じました。

1
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
1
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?