Amazon Web Services ブログ

AWS コンソールアクションを再利用可能なコードに変換する AWS Console-to-Code の一般提供を開始

10 月 10 日、AWS コンソールアクションを再利用可能なコードに簡単に変換できる AWS Console-to-Code の一般提供開始 (GA) についてお知らせします。AWS Console-to-Code を使用すると、コンソールでの Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの起動などのアクションとワークフローを記録することや、コンソールアクションの AWS コマンドラインインターフェイス (AWS CLI) コマンドをレビューすることができます。必要なのは数回のクリック操作だけです。Amazon QAWS CloudFormation テンプレート (YAML または JSON) や AWS Cloud Development Kit (AWS CDK) (TypeScript、Python、または Java) を始めとする任意の Infrastructure-as-Code (IaC) 形式を使用してコードが生成します。これをインフラストラクチャ自動化の開始ポイントとして使用し、パイプラインなどに含まれる本番ワークロード向けにさらにカスタマイズすることができます。

昨年のプレビューの発表以来、AWS Console-to-Code はお客様から好評を博しています。お客様からのフィードバックを基に逆算して作業を続けた結果、この GA バージョンでは機能がさらに改善されました。

GA の新機能

  • より多くのサービスのサポート – プレビュー中、サポートされていたサービスは Amazon EC2 だけでした。GA では、AWS Console-to-Code のサポートが拡張され、Amazon Relational Database Service (RDS)Amazon Virtual Private Cloud (Amazon VPC) が含まれるようになりました。
  • 簡素化されたエクスペリエンス – 新しいユーザーエクスペリエンスでプロトタイピング、記録、コード生成のワークフローを簡単に管理できます。
  • コードのプレビュー – EC2 インスタンスと Auto Scaling グループの起動ウィザードが更新され、お客様は実際に作成しなくてもこれらのリソースのコードを生成できるようになりました。
  • 高度なコード生成 – AWS CDK と CloudFormation のコード生成が Amazon Q の機械学習モデルによって強化されています。

AWS Console-to-Code の開始方法
Amazon EC2 インスタンスを起動するシンプルなシナリオから始めましょう。 Amazon EC2 コンソールにアクセスします。右側にある AWS Console-to-Code ウィジェットを見つけ、[記録を開始] を選択して記録を開始します。

次に、Amazon EC2 コンソールのインスタンス起動ウィザードを使用して Amazon EC2 インスタンスを起動します。インスタンスが起動したら、[停止] を選択して記録を完了します。

[記録されたアクション] テーブルで、記録されたアクションをレビューします。[タイプ] ドロップダウンリストを使用して、書き込みアクション ([書き込み]) でフィルターします。RunInstances アクションを選択します。[CLI をコピー] を選択して、対応する AWS CLI コマンドをコピーします。

AWS Console-to-Code から取得した CLI コマンドを以下に示します。

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

このコマンドは簡単に変更できます。この例では、タイプ t3.micro (--instance-type) の 2 つのインスタンス (--count 2) を起動するよう更新しました。これは簡素化された例ですが、同じ手法を他のワークフローに適用できます。

AWS CloudShell を使用してコマンドを実行すると、予期したとおりに動作し、2 つの t3.micro EC2 インスタンスが起動しました。

シングルクリックの CLI コード生成エクスペリエンスは、アクションが実行されたとき (EC2 インスタンスの起動中) に使用された API コマンドに基づきます。コンソールでアクションを完了すると、コンパニオン画面に記録されたアクションが表示されます。また、開始および停止の機能を備えたインタラクティブな UI では、プロトタイピングのアクションのスコープを明確にすることが容易になります。

AWS CDK を使用した IaC 生成
AWS CDK は、クラウドインフラストラクチャをコードで定義し、AWS CloudFormation を通してプロビジョニングするためのオープンソースフレームワークです。AWS Console-to-Code を使用すると、インフラストラクチャワークフロー用の AWS CDK コード (現在は Java、Python、TypeScript) を生成できます。

EC2 起動インスタンスのユースケースを続けましょう。まだ行っていない場合は、Amazon EC2 コンソールの右側にある AWS Console-to-Code ウィジェットを見つけ、[記録を開始] を選択して EC2 インスタンスを起動します。インスタンスが起動したら、[停止] を選択して記録を完了し、[記録されたアクション] テーブルから RunInstances アクションを選択します。

AWS CDK Python コードを生成するには、ドロップダウンリストから[CDK Python を生成] ボタンを選択します。

このコードを開始ポイントとして使用して特定のユースケース用にカスタマイズし、本番環境で使用することができます。

ここでは、既に AWS CDK がインストールされていたので、新しい Python CDK プロジェクトを作成しました。

mkdir c2c_cdk_demo
cd c2c_cdk_demo
cdk init app --language python

次に、生成されたコードを Python CDK プロジェクトにプラグインしました。この例では、コードが正しいことを確認するために、コードを AWS CDK Stack にリファクタリングし、EC2 インスタンスタイプを変更して、その他の小さな変更を行いました。cdk deploy を使用して正常にデプロイすることができました。

EC2 インスタンスを起動するコンソールアクションから AWS CDK まで、同じ結果を再現することができました。

from aws_cdk import (
    Stack,
    aws_ec2 as ec2,
)
from constructs import Construct

class MyProjectStack(Stack):

    def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        existing_vpc = ec2.Vpc.from_lookup(self, "ExistingVPC",
            is_default=True
        )

        instance = ec2.Instance(self, "Instance",
                instance_type=ec2.InstanceType("t3.micro"),
                machine_image=ec2.AmazonLinuxImage(),
                vpc=existing_vpc,
                vpc_subnets=ec2.SubnetSelection(
                    subnet_type=ec2.SubnetType.PUBLIC
                )
        )

CloudFormation テンプレートを YAML 形式または JSON 形式で生成することもできます。

プレビューコード
AWS Console-to-Code には、Amazon EC2 の [プレビューコード]Amazon EC2 Auto Scaling グループの起動エクスペリエンスから直接アクセスすることもできます。これは、インフラストラクチャコードを取得するために実際にリソースを作成する必要がないことを意味します。

これを試すには、起動テンプレートを使用して Auto Scaling グループを作成する手順に従います。ただし、Auto Scaling グループを作成する代わりに、[プレビューコード] をクリックします。インフラストラクチャコードを生成するオプションまたは AWS CLI コマンドをコピーするオプションが表示されます。

知っておくべきこと
AWS Console-to-Code を使用する際に考慮すべき点がいくつかあります。

  • AWS Console-to-Code を使用すれば、誰でもインフラストラクチャワークフロー用の AWS CLI コマンドを生成できます。AWS CDK および CloudFormation 形式のコード生成機能には、1 か月あたり 25 生成の無料クォータがあります。それ以上を使用するには、Amazon Q Developer サブスクリプションが必要になります。
  • デプロイする前に、生成された IaC コードコードをテストして検証することをお勧めします。
  • GA では、AWS Console-to-Code は Amazon EC2、Amazon VPC、Amazon RDS コンソールのアクションのみを記録します。
  • AWS Console-to-Code の [記録されたアクション] テーブルには、特定のブラウザタブ内の現在のセッション中に実行されたアクションのみが表示されます。以前のセッションや他のタブのアクションは保持されません。ブラウザタブを更新すると、記録されたすべてのアクションが失われることに注意してください。

今すぐご利用いただけます
AWS Console-to-Code はすべての商用リージョンでご利用いただけます。詳細については、Amazon EC2 のドキュメンテーションを参照してください。Amazon EC2 コンソールでお試しいただいた後、AWS re:Post for Amazon EC2 または通常の AWS サポート窓口までフィードバックをお寄せください。

原文はこちらです。