3
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】いつから私の書いたCodeだと錯覚していた?AWS Console-to-Codeを検証!

Posted at

この記事で伝えたいこと

  • AWS Console-to-Codeをハンズオンしているよ
  • AWS Console-to-Codeの展望や実用に耐えうるかを考察しているよ

はじめに

この記事では「この前リリースされた機能って実際に動かすとどんな感じなんだろう」とか「もしかしたら内容次第では使えるかも」などAWSサービスの中でも特定の機能にフォーカスして検証していく記事です。主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば書き直していく予定です。

今回はAWS Console-to-Code(以下、AWS CtoC)を検証してみます。

AWSマネジメントコンソールを操作したらコードが生成されるってさ?

コンソールを操作したらコードが生成されるって?!なんだって?
AWS Console-to-CodeはAWS re:Invent 2023でプレビュー版として発表されたサービスです。

プレビューとして発表されたときのwhats-newとしては以下のとおりです。

コンソールアクションに対するコードを生成する AWS Console-to-Code (プレビュー) の発表 - whats-new

正式リリースとして告知がなされたのは2024年10月10日です。(以下、参考リンク)

紹介ブログ

リンク

対応状況(リージョン・サービス)

実際に使うまえにもろもろ確認したいと思います。まず、ドキュメントを確認してみましょう。
ドキュメントには以下のように記載がありました。

現在、米国東部 (バージニア北部) リージョンでのみ利用可能です。

Console-to-Code を使用してコンソールアクション用のコードを生成する docs

後述しますが、実際に使ってみたら東京リージョンでも利用できました。

料金

さっそく触りたいところですが、その前に料金を見ていきましょう。
実を言うとこの機能は追加料金なしで利用できます。

参考:Console-to-Code を使用してコンソールアクション用のコードを生成する

実際に触ってみた

AWS マネジメントコンソールからVPCを開きます。

Screenshot 2024-11-06 at 5.40.00.png

マネジメントコンソールの右側、Amazon Qのアイコンの下にAWS CtoCのアイコンがあります。アイコンをクリックします。

Screenshot 2024-11-06 at 5.33.24.png

新しいウィンドウで開くのでStart Recordingをクリックします。
Start Recordingでレコーディングを開始するとここから先のマネジメントコンソールの操作が記録されます。

Screenshot 2024-11-06 at 5.34.30.png

今回はVPCを作ってみましょう。

Start Recording

VPCを作る

左メニューからYour VPCsをクリックします。

Screenshot 2024-11-06 at 5.43.29.png

Create VPCでVPCを作成します。

Screenshot 2024-11-06 at 5.44.15.png

各項目を埋めていきます。

項目
Resource to create VPC only
Name tag aws-ctoc
IPv4 CIDR 10.0.0.0/24

それ以外はデフォルトで問題ありません。
最後にCreate VPCではなく、Preview codeを実行します。

Screenshot 2024-11-06 at 5.46.55.png

画面右側のメニューが異なる画面に切り替わるのでAdd to recordingを実行します。

Screenshot 2024-11-06 at 5.51.25.png

CDKの生成

レコーディングが終わったので実際にコードを生成してみましょう。Generate CFN YAMLからGenerate CDK TypeScriptをクリックします。

Generate CFN YAMLなのにCDKなのかってツッコミはなしでお願いします。

Screenshot 2024-11-06 at 5.54.23.png

しばらく待ちましょう。

実行結果

import * as cdk from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';

const stack = new cdk.Stack();

const vpc = new ec2.Vpc(stack, 'aws-ctoc', {
  cidr: '10.0.0.0/24',
  instanceTenancy: ec2.DefaultInstanceTenancy.DEFAULT,
  natGateways: 0,
  maxAzs: 2,
  vpcName: 'aws-ctoc'
});
Reasoning: {
The provided AWS CLI command creates a new VPC with the following properties:
- Instance tenancy is set to "default"
- CIDR block is set to "10.0.0.0/24"
- A tag with key "Name" and value "aws-ctoc" is added to the VPC

In the CDK code, I create a new `ec2.Vpc` construct with the following properties:
- `cidr`: Set to the provided CIDR block '10.0.0.0/24'
- `instanceTenancy`: Set to `ec2.DefaultInstanceTenancy.DEFAULT` which corresponds to the "default" instance tenancy in the CLI command
- `natGateways`: Set to 0 since the CLI command does not create any NAT gateways
- `maxAzs`: Set to 2 which is the default value for the number of availability zones
- `vpcName`: Set to 'aws-ctoc' to match the tag value provided in the CLI command

The `ec2.Vpc` construct in the CDK creates a new VPC with the specified properties and applies the provided tag to the VPC resource.
}

AZの指定まで入れた覚えはないですが、おおむね問題なく生成されています。Reasoningをみるとどのような過程で生成したかまで確認できます。

CloudFormationの生成

次にCloudFormationのコードを生成します。Generate CFN YAMLからGenerate CFN YAMLをクリックします。

Screenshot 2024-11-06 at 5.55.59.png

実行結果

Resources:
  VPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.0.0/24
      InstanceTenancy: default
      Tags:
        - Key: Name
          Value: aws-ctoc
Reasoning: {The provided AWS CLI command creates a new VPC with a CIDR block of 10.0.0.0/24, default instance tenancy, and a tag with the key "Name" and value "aws-ctoc". In CloudFormation, this can be represented using the AWS::EC2::VPC resource type. The CidrBlock and InstanceTenancy properties are set based on the CLI command, and the Tags property is created using the tag-specifications parameter.}

問題なく生成されました。ただし、CDKと違ってAZの指定がありません。それもそのはずCloudFormationのテンプレートでVPCを作成する際にはAZの指定はありません。(以下、参考ドキュメント)

AWS::EC2::VPC

シンプルにVPCを作ったとき、CDKのほうがいくらか粒度細かくできるということがわかりました。

この機能はどこで使える

ハンズオンは以上です。
まだ対応しているサービスが少ないがゆえに使い方を見出せない側面があります。
対応サービスが増えたらマネジメントコンソールによる設定とコードによる定義を見比べてトラブルシューティングができるかなと思います。

対応しているサービスが増えたとしてもこの機能だけで希望のコードを生成できるとも限らないので
今のところは参考程度に見ておきましょう。

まとめ

AWSマネジメントコンソールを操作したらコードが生成されるサービス、AWS Console-to-Codeを見ました。昔からあったら良いなと思う機能だった反面、まだ理想には遠いという印象を持ちました。

ただ、コンソールによる構築からコードによる構築に慣れるための一歩として使うならば、とても良い機能だと思いました。

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