Kiro IDE の「Build AWS infrastructure with CDK and CloudFormation」Power を使ってAWS環境を構築してみた

Kiro IDE の「Build AWS infrastructure with CDK and CloudFormation」Power を使ってAWS環境を構築してみた

内部的には AWS IaC MCP サーバが使われるようです。
2025.12.26

こんにちは、なおにしです。

Kiro IDE で「Build AWS infrastructure with CDK and CloudFormation」Power を使用したAWS環境の構築を試してみましたのでご紹介します。

はじめに

2025年11月にKiroが一般提供(GA)されました。

https://aws.amazon.com/jp/blogs/news/general-availability/

GA と併せて、Amazon Q Developer CLI が Kiro CLI に統合されました。AWS マネジメントコンソール上でも、Amazon Q Developer と Kiro は同じ画面を共有するようになっています。

https://aws.amazon.com/jp/blogs/news/introducing-kiro-cli/

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_1.png

このため料金の請求についても、公式ドキュメントの料金ページにはクレジットカードの利用しか記載がありませんが、実際には Q Developer と同様にAWS アカウントでの支払いが可能になっています。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_2.png

以下、「Kiro 導入ガイド:始める前に知っておくべきすべてのこと」からの引用です。

認証方式 対応する Kiro プラン 支払い方法
AWS IAM Identity Center Pro / Pro+ / Power AWS アカウント
Builder ID Free/Pro/Pro+/Power クレジットカード
GitHub Free/Pro/Pro+/Power クレジットカード
Google Free/Pro/Pro+/Power クレジットカード

Q Developer を利用されていた方は料金周りの面でもスムーズに Kiro への移行ができるようになっています。私の場合は Q Developer を手動でアップグレードするのではなく、Kiro 用に準備された別の IAM Identity Center による組織に移行したので、本記事の末尾に補足としてQ Developer の使用を停止した際の操作をまとめました。

というわけで Kiro を使って何か試そうとしていたところ、先日開催された AWS re:Invent 2025 で Kiro Powers が発表されました。

https://aws.amazon.com/jp/blogs/news/introducing-powers/

Kiro Powers については以下の弊社記事でも紹介されていますので併せてご参照ください。

https://dev.classmethod.jp/articles/kiro-powers-introduction/

本記事の公開時点で利用可能な Kiro Powers を眺めていると、Build AWS infrastructure with CDK and CloudFormation というAWSが提供する Power がありました。今回はこちらを実際に使ってみようと思います。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_3.png

最新のドキュメント、ベストプラクティス、コードサンプルを活用し、CDK で Well-Architected な AWS インフラストラクチャを構築します。CloudFormation テンプレートの検証、リソース設定のセキュリティコンプライアンスの確認、デプロイメントのトラブルシューティングを行います。

「Build AWS infrastructure with CDK and CloudFormation」Power の中身

上記のDetailsから Github リポジトリにリンクが貼られているのですが、中身は以下の2ファイルのみです。

  • POWER.md
  • mcp.json

それぞれの役割については先述の Powers 自体の説明記事をご参照ください。実際にmcp.jsonを見ると以下のとおりでした。

mcp.json
{
  "mcpServers": {
    "awslabs.aws-iac-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.aws-iac-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "your-named-profile",
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": [
        "read_iac_documentation_page",
        "search_cdk_documentation",
        "search_cdk_samples_and_constructs",
        "cdk_best_practices",
        "search_cloudformation_documentation"
      ]
    }
  }
}

aws-iac-mcp-serverについては知らなかったのですが、2025年11月末に追加された新しい MCP サーバのようでした。

https://aws.amazon.com/jp/blogs/devops/introducing-the-aws-infrastructure-as-code-mcp-server-ai-powered-cdk-and-cloudformation-assistance/

https://awslabs.github.io/mcp/servers/aws-iac-mcp-server

以前からCloudFormation MCP サーバ はあったのですが、AWS IaC MCP サーバはリソースを作成するためというよりもベストプラクティスやコンプライアンスに基づいた CDK/CloudFormation のコードを作成するための用途になっているようです。

AWS CDK MCP サーバ というものもあったようですが、こちらが以下のとおり非推奨になってAWS IaC MCP サーバが後継のようです。

⚠️ DEPRECATION NOTICE: This server is deprecated and will be removed in a future release. Please use the AWS IaC MCP Server instead, which provides all CDK functionality along with additional Infrastructure as Code capabilities.

上記記事に記載のとおり、AWS IaC MCP サーバでは以下のような9つのツール群が提供されています。

  1. search_cdk_documentation
    AWS CDK ナレッジベースで API、概念、実装ガイダンスを検索します。
  2. search_cdk_samples_and_constructs
    AWS Construct ライブラリから、事前に構築された AWS CDK コンストラクトとパターンを見つけます。
  3. search_cloudformation_documentation
    リソースタイプ、プロパティ、および組み込み関数について CloudFormation ドキュメントをクエリします。
  4. read_iac_documentation_page
    検索または提供された URL から返された CloudFormation および CDK の完全なドキュメント ページを取得して読み取ります。
  5. cdk_best_practices
    AWS CDK のベストプラクティスと設計原則の厳選されたコレクションにアクセスします。
  6. validate_cloudformation_template
    cfn-lint を使用して構文とスキーマの検証を実行し、デプロイメント前にエラーをキャッチします。
  7. check_cloudformation_template_compliance
    AWS Guard ルールと cfn-guard を使用して、テンプレートに対してセキュリティとコンプライアンスのチェックを実行します。
  8. troubleshoot_cloudformation_deployment
    統合された CloudTrail イベント分析機能を使用して、CloudFormation スタックのデプロイ失敗を分析します。このツールは、AWS 認証情報を使用してスタックのステータスを分析します。
  9. get_cloudformation_pre_deploy_validation_instructions
    変更セットの作成中にテンプレートを検証する、CloudFormation のデプロイ前検証機能の指示を返します。

それぞれのツールを柔軟に使いこなせるとすごいのですが、実際に活用するのであればCDKによる開発でのベストプラクティスと併せてそれぞれのツールの使い所を定義する必要があるかと思います。

その定義をしているのが POWER.md になります。したがって、「Build AWS infrastructure with CDK and CloudFormation」Power は AWS IaC MCP サーバとその最適な使い方をセットにしたものであると言えそうです。

というわけで、実際に「Build AWS infrastructure with CDK and CloudFormation」Power を Kiro IDE に追加して環境を構築してみます。

今回構築する環境は、こちらの記事と同じく以下の構成図を基に作成してみます。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_4.png

やってみた

事前準備

グローバルステアリングファイルの作成

すぐに検証を始めたいところですが、Kiro IDE をインストールしてログインまでが完了した状態であれば、ステアリングファイルも特に設定していない状態かと思います。ステアリングファイルについては様々な記事で言及されているかと思うので説明は割愛しますが、公式ドキュメントは以下になります。

https://kiro.dev/docs/steering/

前述の状態で操作を始めると、Vibe モードで軽くチャットするくらいなら問題無いのですが、例えば Spec モードで作成されるドキュメントが英語になったり、Kiro IDE の特定のボタンを押下してプロンプトが実行された場合のチャット内容も英語になったりと、英語力のある方向けの仕様になります。

そこで、グローバルステアリングファイルを使って最初から日本語化しておきます。(Claude Code でいうところの CLAUDE.md に相当するファイルなので、英語で記載した方が処理効率が良いとか諸説あるかと思いますが、今回は日本語フレンドリー優先ということで)

ドキュメントに記載のとおり、グローバルステアリングファイルは全てのワークスペースに適用されます。格納場所は~/.kiro/steering/ですので、以下のとおりファイルを配置します。

~/.kiro/steering/language.md
---
inclusion: always
---

# グローバル言語設定

## 基本方針
- **すべての応答とコミュニケーションを日本語で行う**
- **コード生成時のコメントは日本語で記述**
- **エラーメッセージや説明も日本語で提供**
- ✅のような絵文字は使用不可

## 適用範囲
- チャット応答
- コード内コメント
- ドキュメント生成
- エラー説明
- リファクタリング提案
- デバッグ情報

## コード品質
- 変数名や関数名は英語(国際的な慣習に従う)
- コメントは日本語で詳細に説明
- README等のドキュメントは日本語で作成

## 例外
- 外部ライブラリのAPI呼び出し
- 標準的な技術用語(必要に応じて日本語で補足説明)
- 国際的なコーディング規約に従う部分

冒頭の---で囲まれた部分は Inclusion モードに関する記載です。alwaysを指定した場合は、Kiro との全てのやり取りで自動的に読み込まれます。なお、alwaysがデフォルトなので今回のケースであれば実際のところ明記する必要はないのですが、ドキュメントに記載のとおりfileMatchを指定することで特定のパターンに一致するファイルを扱う場合にのみ読み込ませる、といった制御も可能ですので、あえて明記しておく方が分かりやすいかと思います。

一般的なステアリングファイル戦略やベストプラクティスについてもドキュメントに記載があるので、併せてご参照ください。

日本語化については上記のファイルで対応しましたが、ついでに昨今では npm の実行が何かと不安なので、ステアリングファイル戦略に則ってsecurity-policies.mdを作成して雑ですが以下のように記述しておきます。

~/.kiro/steering/security-policies.md
---
inclusion: always
---

# グローバルセキュリティ設定
- npm ではなくpnpm を使用する
- npx ではなくpnpx を使用する

Powers を追加する

Kiro IDE の左ペインからPowersを選択し、「Build AWS infrastructure with CDK and CloudFormation」をインストールします。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_5.png

インストールはすぐに完了します。追加されたMCPサーバの設定はOpen powers configから確認可能です。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_6.jpg

mcp.jsonが開かれて、該当箇所は以下のとおりです。AWS_PROFILEについては任意に設定します。

  "powers": {
    "mcpServers": {
      "power-aws-infrastructure-as-code-awslabs.aws-iac-mcp-server": {
        "command": "uvx",
        "args": [
          "awslabs.aws-iac-mcp-server@latest"
        ],
        "env": {
          "AWS_PROFILE": "your-named-profile",
          "FASTMCP_LOG_LEVEL": "ERROR"
        },
        "disabled": false
      }
    }
  }

UI からも Power による MCP サーバが追加されていることが分かります。また、事前に作成したステアリングファイルも読み込まれています。なお、今回は既に登録していたその他の MCP サーバについては Disable にしています。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_7.jpg

Hooks を追加する

せっかく CDK/CloudFormation で環境を構築するので、出来上がったテンプレートに基づいたパラメータシートを作成するように Hooks を設定してみます。

https://kiro.dev/docs/hooks/

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_8.png

以下のプロンプトを実行しました。

エージェントがタスクを終えて、CDK/CloudFormationのコードが出力されたら、コードに基づいてインフラストラクチャパラメータシート(docs/parameters-sheet.md)を更新してください。
パラメータシートは以下の形式で保存してください:
1. リソースごとにMarkdownの表形式で整理
2. 各リソースの表には以下の列を含める:
   - パラメータ名
   - 値
   - 説明
   - ステータス(実装済み/未実装)
3. リソースカテゴリ別にセクション分け(VPC、EC2、RDS等)
4. 実装状況と完了済みコンポーネントの情報を最新の状態に同期

すると自動で以下のとおり Hook が作成されました。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_9.png

Event にはAgent Stopが選択されています。このフックトリガーは2025年12月18日のアップデートで追加されたばかりの機能なので、併せて挙動を確認しようと思います。

https://kiro.dev/changelog/web-tools-subagents-contextual-hooks-and-per-file-code-review/

Power のオンボーディングを実行する

Power のTry Powerボタンを押すことで、Power で定義されたオンボーディングを実行することができます。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_10.jpg

ボタンを押下すると、以下のようにプロンプトが実行されます。プロンプトが英語のため、前述のステアリングファイルで日本語設定を行っていないと、以降の応答や成果物が全て英語になります。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_11.png

CDKでS3バケットを作成するデモが開始されました。Power がきちんと使用されています。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_12.png

色々と試行錯誤しながら進めていってくれています。security-policies.mdも読み込んでいるため、最初からnpmではなくpnpmを使ってくれているのも良いですね。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_13.png

完走しました。自動でセキュリティとコンプライアンスのチェックもしてくれています。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_14.png

エージェントの応答が完了後、先ほど設定していた Hook が自動的に実行されました。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_15.jpg

作成されたパラメータシートは以下のとおりです。本記事自体の章立てと干渉するようなので見出し(#)は削除しています。

パラメータシート

インフラストラクチャパラメータシート

プロジェクト概要

  • プロジェクト名: my-cdk-app
  • CDKバージョン: 2.23.0
  • 対象リージョン: ap-northeast-1
  • 最終更新日: 2025-12-25

実装状況サマリー

カテゴリ 実装済みリソース数 未実装リソース数 完了率
ストレージ (S3) 2 0 100%
IAM 1 0 100%
Lambda 1 0 100%
合計 4 0 100%

S3 (Simple Storage Service)

SecureS3Bucket (基本セキュリティバケット)

パラメータ名 説明 ステータス
リソース名 SecureS3Bucket9141DB16 CDKが生成する論理ID 実装済み
暗号化アルゴリズム AES256 S3マネージドキーによる暗号化 実装済み
SSL強制 true HTTPS接続のみを許可 実装済み
パブリックアクセスブロック 全て有効 すべてのパブリックアクセスを禁止 実装済み
バージョニング 有効 オブジェクトのバージョン管理 実装済み
ライフサイクルルール1 30日後削除 古いバージョンの自動削除 実装済み
ライフサイクルルール2 7日後削除 不完全なマルチパートアップロードの削除 実装済み
削除ポリシー Delete デモ用設定(本番では Retain 推奨) 実装済み
自動オブジェクト削除 有効 スタック削除時にオブジェクトも削除 実装済み

KMSEncryptedBucket (KMS暗号化バケット)

パラメータ名 説明 ステータス
リソース名 KMSEncryptedBucketB558B9D6 CDKが生成する論理ID 実装済み
暗号化アルゴリズム aws:kms KMSマネージドキーによる暗号化 実装済み
SSL強制 true HTTPS接続のみを許可 実装済み
パブリックアクセスブロック 全て有効 すべてのパブリックアクセスを禁止 実装済み
バージョニング 有効 オブジェクトのバージョン管理 実装済み
削除ポリシー Delete デモ用設定(本番では Retain 推奨) 実装済み
自動オブジェクト削除 有効 スタック削除時にオブジェクトも削除 実装済み

IAM (Identity and Access Management)

CustomS3AutoDeleteObjectsCustomResourceProviderRole

パラメータ名 説明 ステータス
リソース名 CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092 CDKが生成する論理ID 実装済み
サービスプリンシパル lambda.amazonaws.com Lambda関数が引き受け可能 実装済み
マネージドポリシー AWSLambdaBasicExecutionRole 基本的なLambda実行権限 実装済み
用途 S3オブジェクト自動削除 カスタムリソース用のIAMロール 実装済み

Lambda

CustomS3AutoDeleteObjectsCustomResourceProviderHandler

パラメータ名 説明 ステータス
リソース名 CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F CDKが生成する論理ID 実装済み
ランタイム nodejs12.x 非推奨: nodejs22.x への更新が必要 実装済み(要更新)
メモリサイズ 128 MB Lambda関数のメモリ割り当て 実装済み
タイムアウト 900秒 最大実行時間(15分) 実装済み
ハンドラー entrypoint.handler エントリーポイント関数 実装済み
用途 S3オブジェクト削除 スタック削除時のオブジェクト自動削除 実装済み

バケットポリシー

SecureS3BucketPolicy

パラメータ名 説明 ステータス
リソース名 SecureS3BucketPolicy63772037 CDKが生成する論理ID 実装済み
SSL強制ポリシー 有効 非SSL接続を拒否 実装済み
カスタムリソース権限 有効 自動削除用の権限付与 実装済み

KMSEncryptedBucketPolicy

パラメータ名 説明 ステータス
リソース名 KMSEncryptedBucketPolicy2B07488E CDKが生成する論理ID 実装済み
SSL強制ポリシー 有効 非SSL接続を拒否 実装済み
カスタムリソース権限 有効 自動削除用の権限付与 実装済み

CloudFormation出力

出力名 説明 値の参照先 ステータス
SecureS3BucketName セキュアなS3バケットの名前 SecureS3Bucket9141DB16 実装済み
KMSEncryptedBucketName KMS暗号化されたS3バケットの名前 KMSEncryptedBucketB558B9D6 実装済み

検証結果

構文検証 (cfn-lint)

検証項目 結果 詳細 対応状況
全体的な構文 警告あり 1エラー、2警告 要対応
Lambda ランタイム エラー nodejs12.x は非推奨 要更新
不要な依存関係 警告 DependsOn の重複 軽微
未使用パラメータ 警告 BootstrapVersion 軽微

セキュリティコンプライアンス (cfn-guard)

検証項目 結果 詳細 対応状況
オブジェクトロック 違反 ObjectLockEnabled 未設定 要検討
アクセスログ 違反 LoggingConfiguration 未設定 要検討
パブリックACL 違反 追加のACL制限が必要 要検討
レプリケーション 違反 ReplicationConfiguration 未設定 要検討

推奨改善事項

高優先度

  1. Lambda ランタイム更新
    • nodejs12.x → nodejs22.x への更新
    • セキュリティとパフォーマンスの向上

中優先度

  1. セキュリティ強化(オプション)
    • S3 オブジェクトロックの有効化(コンプライアンス要件による)
    • アクセスログの設定(監査要件による)
    • クロスリージョンレプリケーション(災害復旧要件による)

低優先度

  1. コード最適化
    • 不要な DependsOn の削除
    • 未使用パラメータの整理

本番環境への適用時の注意事項

  1. 削除ポリシーの変更

    • removalPolicy: cdk.RemovalPolicy.DESTROYcdk.RemovalPolicy.RETAIN
    • autoDeleteObjects: truefalse
  2. 環境固有の設定

    • アカウントIDとリージョンの明示的指定
    • 環境別のタグ付け戦略
  3. モニタリングとアラート

    • CloudWatch メトリクスの設定
    • S3 イベント通知の設定

更新履歴

日付 更新内容 更新者
2025-12-25 初版作成、CDKプロジェクト分析結果を反映 システム

オンボーディングだけで期待どおりの動作を確認できたので検証は止めようかと思いましたが、せっかくなので続けます。

構成図を基にしたタスクリストの作成

オンボーディングを実行するとデモで使ったファイル群が残ってしまうので、作成されたファイル群は削除した上で続けます。まず、Spec モードで先述の構成図を読み込ませて指示を出します。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_16.png

正確に構成図の内容を読み取ってくれました。スペック(要件定義書)の名前のサジェストもしてくれているので、aws-web-infrastructureで進めることにします。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_17.png

作成された要件定義書の内容については割愛して設計フェーズに進みます。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_18.png

必要に応じてベストプラクティスを Web サーチツールで調査しつつ、設計書が作成されました。特にプロンプトで指示をしてはいませんでしたが、設計書の冒頭に CDK(TypeScript)を使用することが明記されています。このままタスク作成のフェーズに進みます。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_19.png

ちなみに設計書内に記載されていたMermaidによる図は以下のとおりです。さすがに改善の余地がありますが、それらしい構成図にはなっています。

タスクリストが作成されました。今回はオプションタスクを維持(高速MVP)を選択します。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_20.png

構成図を適当に渡しただけで、ここまで整理してくれました。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_21.png

なお、改めて全体を確認すると EC2 に Auto Scaling Group が適用されていたので、そこだけ不要という形でプロンプトを実行して修正しました。

タスクの実行(CDK作成)

それでは、タスクリストのStart taskを実行して実装を開始します。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_22.jpg

タスク2を実行している様子を眺めていたのですが、どうやら Power が呼び出されていませんでした。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_23.png

Power はコンテキストから必要に応じて呼び出されるということになっており、VPC関連のCDKを作成しているタイミングで呼び出されないのはどういう理由なのか分かりませんが、今回は Power を積極的に活用したいので、ステアリングファイルimplementation.mdを作成して以下のように Power を活用するように定義します。ついでに、先ほどのオンボーディングでのデモで改善点として Node.js の古いバージョンを使用していることが挙げられていましたので、基本的に新しいバージョンを使用するように明記します。

~/.kiro/steering/implementation.md
---
inclusion: always
---

# グローバル実装設定

## 基本方針
- AWS、CDK、CloudFormation、インフラ関連のタスクでは必ずaws-infrastructure-as-code Powerを活用してください
- Lambda等で使用するNode.jsのバージョンは`22.x`とする。古いバージョン`18.x`等は使用不可

タスク2を実行する前にバックアップを取っていたので、改めて上記のステアリングファイルが存在する状態で再度タスク2を実行します。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_24.png

最初から Power を使うようになりました。詳細な出力内容は割愛しますが、Power を使う方がスムーズに実装できていました。ただ、タスク完了後にパラメータシートを作成する Hook が実行されませんでした。なぜだろう... とりあえず残りのタスクリストを進めました。

そしてここからが長くて、各タスクでテストが実行されるので1つのタスクで5分〜10分近くかかり、途中テストがクリアできなくなったので一度テストを最初からするようにプロンプトで促したりして、結局2時間近く格闘していました。。

ですが最終的にはデプロイまで完了し、Vibe モードで改めてコードとデプロイ結果を確認するようにプロンプトを実行したタイミングで Hook も実行されました。挙動だけを見ると、Spec モードでは呼び出されず、Vibe モードであれば呼び出されるようです。この挙動どおりであれば、Spec モードで実装が完了した後、Vibe モードでデプロイを指示するという流れが良さそうです。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_25.png

ALB経由でのEC2アクセスも問題なさそうです。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_26.png

EC2 からのDBアクセスも可能でした。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_27.png

出力されたパラメータシートは以下のとおりです。本記事自体の章立てと干渉するようなので見出し(#)は削除しています。

パラメータシート

インフラストラクチャパラメータシート

概要

AWS Web Infrastructure プロジェクトのインフラストラクチャパラメータ一覧です。
最終更新日: 2025-12-25

プロジェクト構成: 従来型Webアプリケーション(ALB + EC2 + RDS)+ CDKセキュリティ機能
CDKバージョン: 2.215.0
実装状況: 100% 完了(全コンポーネント統合済み)

VPC設定

パラメータ名 説明 ステータス
VPC CIDR 10.0.0.0/16 VPCのCIDRブロック 実装済み
最大AZ数 2 使用するアベイラビリティゾーン数 実装済み
NAT Gateway数 1 開発環境用NAT Gateway数(コスト最適化) 実装済み
アベイラビリティゾーン ap-northeast-1a, ap-northeast-1c 使用するAZ 実装済み
パブリックサブネット1 10.0.0.0/24 AZ-1aのパブリックサブネット 実装済み
パブリックサブネット2 10.0.1.0/24 AZ-1cのパブリックサブネット 実装済み
プライベートサブネット1 10.0.2.0/24 AZ-1aのプライベートサブネット(Egress付き) 実装済み
プライベートサブネット2 10.0.3.0/24 AZ-1cのプライベートサブネット(Egress付き) 実装済み
分離サブネット1 10.0.4.0/24 AZ-1aの分離サブネット(DB用) 実装済み
分離サブネット2 10.0.5.0/24 AZ-1cの分離サブネット(DB用) 実装済み
VPCフローログ 有効 全トラフィックタイプの記録 実装済み
インターネットゲートウェイ 有効 パブリックサブネット用 実装済み

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

パラメータ名 説明 ステータス
ALBセキュリティグループ SecurityGroupsConstructAlbSecurityGroup334CDB3B ALB用セキュリティグループ 実装済み
EC2セキュリティグループ SecurityGroupsConstructEc2SecurityGroup7F299E09 EC2インスタンス用セキュリティグループ 実装済み
RDSセキュリティグループ SecurityGroupsConstructRdsSecurityGroup4635CD21 RDSデータベース用セキュリティグループ 実装済み
HTTP許可ポート 80 ALBでのHTTPトラフィック許可 実装済み
HTTPS許可ポート 443 ALBでのHTTPSトラフィック許可 実装済み
PostgreSQLポート 5432 RDSデータベースアクセスポート 実装済み
セキュリティグループ間通信 有効 ALB→EC2、EC2→RDS間の通信許可 実装済み

Application Load Balancer (ALB)

パラメータ名 説明 ステータス
ALBタイプ application アプリケーションロードバランサー 実装済み
インターネット向け 有効 パブリックアクセス可能 実装済み
ターゲットグループ名 web-servers Webサーバー用ターゲットグループ 実装済み
ターゲットタイプ instance EC2インスタンス直接登録 実装済み
ヘルスチェックパス /health ヘルスチェック用エンドポイント 実装済み
ヘルスチェック間隔 60秒 開発環境用の長めの間隔 実装済み
正常閾値 2 正常判定に必要な連続成功回数 実装済み
異常閾値 5 異常判定に必要な連続失敗回数 実装済み
HTTPリスナー ポート80 HTTP通信用リスナー 実装済み
スティッキーセッション 無効 セッション固定なし 実装済み

EC2インスタンス

パラメータ名 説明 ステータス
インスタンスタイプ t3.micro 開発環境用小型インスタンス 実装済み
インスタンス数 2 各AZに1台ずつ配置 実装済み
AMI Amazon Linux 2023 最新のAmazon Linux AMI 実装済み
EBS最適化 有効 ストレージ性能最適化 実装済み
詳細モニタリング 有効 CloudWatchでの詳細監視 実装済み
パブリックIP 無効 プライベートサブネット配置 実装済み
IAMロール 有効 EC2用IAMロール自動作成 実装済み
ユーザーデータ Apache設定 Webサーバー自動セットアップ 実装済み
セキュリティグループ EC2専用SG ALBからの通信のみ許可 実装済み
開発環境用ツール htop, vim 開発・デバッグ用ツール 実装済み

RDSデータベース

パラメータ名 説明 ステータス
データベースエンジン PostgreSQL オープンソースRDBMS 実装済み
エンジンバージョン 15.14 PostgreSQL最新安定版 実装済み
インスタンスクラス db.t3.micro 開発環境用小型インスタンス 実装済み
データベース名 webapp_dev アプリケーション用DB 実装済み
マスターユーザー名 dbadmin データベース管理者 実装済み
認証情報管理 AWS Secrets Manager パスワード自動生成・管理 実装済み
シークレット名 dev-rds-credentials 認証情報シークレット 実装済み
Multi-AZ 無効 開発環境のためシングルAZ 実装済み
割り当てストレージ 20GB 開発環境用最小ストレージ 実装済み
ストレージタイプ gp2 汎用SSDストレージ 実装済み
ストレージ暗号化 有効 データ保護のため暗号化 実装済み
自動バックアップ 7日間 開発環境用バックアップ保持 実装済み
削除保護 無効 開発環境のため無効 実装済み
拡張モニタリング 60秒間隔 RDS詳細監視 実装済み
サブネットグループ dev-db-subnet-group 分離サブネット用 実装済み

モニタリング・ログ設定

パラメータ名 説明 ステータス
VPCフローログ /aws/vpc/flowlogs/dev VPCトラフィック記録 実装済み
フローログ保持期間 30日 CloudWatchログ保持 実装済み
フローログトラフィック ALL 全トラフィックタイプ記録 実装済み
フローログ有効化(dev) 無効 開発環境はコスト削減のため無効 実装済み
フローログ有効化(staging/prod) 有効 ステージング・本番環境で有効 実装済み
SNSトピック名 dev-dev-infrastructure-alerts アラート通知用トピック 実装済み
通知先メールアドレス dev-team@example.com 開発チーム通知先 実装済み
ALBアクセスログ(dev) 無効 開発環境のためコスト削減 実装済み
ALBアクセスログ(staging/prod) 有効 ステージング・本番環境で有効 実装済み
ALBアクセスログ保持期間 90日 S3ライフサイクルルール 実装済み

CloudWatchアラーム

パラメータ名 説明 ステータス
高応答時間アラーム dev-ALB-HighResponseTime ALB応答時間監視(閾値: 1秒) 実装済み
高エラー率アラーム dev-ALB-HighErrorRate ALB 5XXエラー監視(閾値: 10件) 実装済み
非正常ホストアラーム dev-ALB-UnhealthyHosts 非正常ターゲット監視(閾値: 1台) 実装済み
高CPU使用率アラーム dev-HighCPUUtilization EC2 CPU使用率監視(閾値: 90%) 実装済み
アラーム評価期間 2-3期間 アラーム判定に必要な期間数 実装済み
メトリクス期間 5分 CloudWatchメトリクス集計間隔 実装済み
SNS通知 有効 全アラームでSNS通知設定 実装済み

Lambda設定

パラメータ名 説明 ステータス
CDK自動作成Lambda関数
関数名 AwsWebInfrastructure-dev-CustomVpcRestrictDefaultS-* VPCデフォルトSG制限用カスタムリソース 実装済み
ランタイム Node.js 18.x CDK内部で使用される標準ランタイム 実装済み
用途 VPCデフォルトセキュリティグループ制限 セキュリティベストプラクティス実装 実装済み
実行タイミング デプロイ時のみ VPC作成・更新時に実行 実装済み
将来拡張用Lambda設定
ランタイム Node.js 22.x 将来のアプリケーション用最新版(24.x未対応のためCDK利用可能最新版) 設定のみ
タイムアウト 30秒 関数実行タイムアウト 設定のみ
メモリサイズ(dev) 256MB 開発環境用メモリ 設定のみ
メモリサイズ(staging) 512MB ステージング環境用メモリ 設定のみ
メモリサイズ(prod) 1024MB 本番環境用メモリ 設定のみ
環境変数 NODE_ENV, LOG_LEVEL 環境別設定変数 設定のみ
ランタイム検証 有効 古いランタイム使用禁止 実装済み
アプリケーション用Lambda関数 未実装 実際のアプリケーション用関数は未作成 未実装

注意:

  • 実装済み: CDKが自動作成するカスタムリソース用Lambda関数(VPCデフォルトセキュリティグループ制限機能)
  • 設定のみ: 将来のアプリケーション拡張に備えた設定(実際の関数は未作成)
  • ランタイム: Node.js 24.xが理想だが、CDKで利用可能な最新版22.xを使用
  • 現在のスタックは従来のWebアプリケーション構成(ALB + EC2 + RDS)

環境別設定詳細

開発環境(dev)

パラメータ名 説明 ステータス
EC2インスタンスタイプ t3.micro 最小サイズでコスト最適化 実装済み
EC2インスタンス数 1-2台 最小構成 実装済み
RDSインスタンスクラス db.t3.micro 最小サイズ 実装済み
RDS Multi-AZ 無効 シングルAZでコスト削減 実装済み
RDSバックアップ保持 7日間 短期バックアップ 実装済み
RDSストレージ 20GB 最小ストレージ 実装済み
NAT Gateway数 1台 コスト削減のため1台のみ 実装済み
VPCフローログ 無効 コスト削減のため無効 実装済み
ALBアクセスログ 無効 コスト削減のため無効 実装済み
ヘルスチェック間隔 60秒 長めの間隔 実装済み
CPU使用率アラーム閾値 90% 高めの閾値 実装済み
アラーム評価期間 3期間 長めの評価期間 実装済み

ステージング環境(staging)

パラメータ名 説明 ステータス
EC2インスタンスタイプ t3.small 中程度のサイズ 設定のみ
EC2インスタンス数 2-4台 本番に近い構成 設定のみ
RDSインスタンスクラス db.t3.small 中程度のサイズ 設定のみ
RDS Multi-AZ 有効 高可用性構成 設定のみ
RDSバックアップ保持 14日間 中期バックアップ 設定のみ
RDSストレージ 50GB 中程度のストレージ 設定のみ
NAT Gateway数 2台 各AZに配置 設定のみ
VPCフローログ 有効 セキュリティ監視 設定のみ
ALBアクセスログ 有効 アクセス分析 設定のみ
ヘルスチェック間隔 30秒 中程度の間隔 設定のみ
CPU使用率アラーム閾値 85% 中程度の閾値 設定のみ
アラーム評価期間 2期間 標準的な評価期間 設定のみ

本番環境(prod)

パラメータ名 説明 ステータス
EC2インスタンスタイプ t3.medium 高性能サイズ 設定のみ
EC2インスタンス数 2-10台 スケーラブル構成 設定のみ
RDSインスタンスクラス db.r5.large 高性能インスタンス 設定のみ
RDS Multi-AZ 有効 高可用性必須 設定のみ
RDSバックアップ保持 30日間 長期バックアップ 設定のみ
RDSストレージ 100GB 大容量ストレージ 設定のみ
NAT Gateway数 2台 各AZに配置 設定のみ
VPCフローログ 有効 セキュリティ監視必須 設定のみ
ALBアクセスログ 有効 アクセス分析必須 設定のみ
ヘルスチェック間隔 15秒 短い間隔で高速検知 設定のみ
CPU使用率アラーム閾値 80% 低めの閾値で早期検知 設定のみ
アラーム評価期間 2期間 迅速な対応 設定のみ
削除保護 有効 誤削除防止 設定のみ
追加アラーム メモリ使用率、応答時間 包括的監視 設定のみ

環境設定

パラメータ名 説明 ステータス
環境名 dev デプロイ環境識別子 実装済み
リージョン ap-northeast-1 東京リージョン 実装済み
アベイラビリティゾーン ap-northeast-1a, ap-northeast-1c 使用するAZ(合成結果で確認済み) 実装済み
スタック名 AwsWebInfrastructure-dev CloudFormationスタック 実装済み
CDKバージョン 2.215.0 使用CDKライブラリバージョン 実装済み
TypeScript設定 ES Modules モジュールシステム(ESNext) 実装済み
パッケージマネージャー pnpm 高速パッケージ管理 実装済み
インフラストラクチャ状態 INTEGRATED 全コンポーネント統合完了 実装済み
デプロイ済みコンポーネント VPC,SecurityGroups,ALB,EC2,RDS,Monitoring 全コンポーネント実装完了 実装済み
環境別設定管理 EnvironmentConfig クラス 環境別パラメータ自動切り替え 実装済み
設定ファイル lib/utils/environment-config.ts 環境別設定の一元管理 実装済み
モジュールシステム ES Modules 最新のJavaScript標準 実装済み
テストランナー Jest (ESM対応) ES Modules対応テスト環境 実装済み
CDK合成確認 成功 CloudFormationテンプレート生成確認済み 実装済み
出力値確認 25個 全出力値がCloudFormationテンプレートに含まれる 実装済み

セキュリティ・コンプライアンス

パラメータ名 説明 ステータス
S3暗号化検証 有効 S3バケット暗号化必須チェック 実装済み
S3パブリックアクセス検証 有効 パブリックアクセスブロック必須 実装済み
RDS暗号化検証 有効 RDSストレージ暗号化必須 実装済み
RDS Multi-AZ検証 環境別 本番環境でMulti-AZ必須 実装済み
セキュリティグループ検証 有効 過度な開放ルール禁止 実装済み
VPCフローログ検証 有効 ステージング・本番で必須 実装済み
ログ保持期間検証 有効 環境別適切な保持期間 実装済み
ALBアクセスログ検証 有効 ステージング・本番で推奨 実装済み
リソースタグ検証 有効 必須タグの存在確認 実装済み
Lambda ランタイム検証 有効 古いランタイム使用禁止 実装済み
環境設定検証 有効 環境別適切なリソースサイズ 実装済み
VPCデフォルトSG制限 有効 デフォルトセキュリティグループ制限 実装済み
デプロイメント前検証 有効 SynthesisValidation による事前チェック 実装済み

タグ設定

パラメータ名 説明 ステータス
Project aws-web-infrastructure プロジェクト識別子 実装済み
Environment dev/staging/prod 環境識別子(環境別自動設定) 実装済み
Owner DevOps Team リソース所有者(設定可能) 実装済み
CostCenter Engineering コストセンター(設定可能) 実装済み
CreatedBy AWS CDK 作成方法 実装済み
CreatedDate 自動生成 作成日(実行時自動設定) 実装済み
Component 各リソース別 コンポーネント識別 実装済み
AvailabilityZone AZ別 配置AZ情報 実装済み
タグ管理 EnvironmentConfig 環境別タグ自動適用 実装済み

出力値(CloudFormation Outputs)

ネットワーク関連出力

出力名 説明 エクスポート名 ステータス
VpcId VPCのID AwsWebInfrastructure-dev-VpcId 実装済み
VpcCidr VPCのCIDRブロック AwsWebInfrastructure-dev-VpcCidr 実装済み
AvailabilityZones 使用AZ一覧 AwsWebInfrastructure-dev-AvailabilityZones 実装済み
PublicSubnetIds パブリックサブネットID一覧 AwsWebInfrastructure-dev-PublicSubnetIds 実装済み
PrivateSubnetIds プライベートサブネットID一覧 AwsWebInfrastructure-dev-PrivateSubnetIds 実装済み
IsolatedSubnetIds 分離サブネットID一覧 AwsWebInfrastructure-dev-IsolatedSubnetIds 実装済み

セキュリティグループ関連出力

出力名 説明 エクスポート名 ステータス
AlbSecurityGroupId ALB用セキュリティグループID AwsWebInfrastructure-dev-AlbSecurityGroupId 実装済み
Ec2SecurityGroupId EC2用セキュリティグループID AwsWebInfrastructure-dev-Ec2SecurityGroupId 実装済み
RdsSecurityGroupId RDS用セキュリティグループID AwsWebInfrastructure-dev-RdsSecurityGroupId 実装済み

ALB関連出力

出力名 説明 エクスポート名 ステータス
LoadBalancerDNS ALBのDNS名 AwsWebInfrastructure-dev-LoadBalancerDNS 実装済み
LoadBalancerArn ALBのARN AwsWebInfrastructure-dev-LoadBalancerArn 実装済み
LoadBalancerUrl ALBアクセスURL AwsWebInfrastructure-dev-LoadBalancerUrl 実装済み
TargetGroupArns ターゲットグループARN一覧 AwsWebInfrastructure-dev-TargetGroupArns 実装済み

EC2関連出力

出力名 説明 エクスポート名 ステータス
Ec2InstanceIds EC2インスタンスID一覧 AwsWebInfrastructure-dev-Ec2InstanceIds 実装済み
Ec2PrivateIps EC2プライベートIP一覧 AwsWebInfrastructure-dev-Ec2PrivateIps 実装済み
Ec2InstanceCount EC2インスタンス数 AwsWebInfrastructure-dev-Ec2InstanceCount 実装済み

RDS関連出力

出力名 説明 エクスポート名 ステータス
DatabaseEndpoint RDSエンドポイント AwsWebInfrastructure-dev-DatabaseEndpoint 実装済み
DatabasePort RDSポート AwsWebInfrastructure-dev-DatabasePort 実装済み
DatabaseName データベース名 AwsWebInfrastructure-dev-DatabaseName 実装済み
DatabaseSecretArn DB認証情報シークレット AwsWebInfrastructure-dev-DatabaseSecretArn 実装済み
DatabaseConnectionString DB接続文字列テンプレート AwsWebInfrastructure-dev-DatabaseConnectionString 実装済み

モニタリング関連出力

出力名 説明 エクスポート名 ステータス
VpcFlowLogGroupName VPCフローログ名 AwsWebInfrastructure-dev-VpcFlowLogGroupName 実装済み
AlbAccessLogsBucketName ALBアクセスログバケット名 AwsWebInfrastructure-dev-AlbAccessLogsBucketName 実装済み
SnsTopicArns SNSトピックARN一覧 AwsWebInfrastructure-dev-SnsTopicArns 実装済み
CloudWatchAlarmNames CloudWatchアラーム名一覧 AwsWebInfrastructure-dev-CloudWatchAlarmNames 実装済み

環境・統合情報出力

出力名 説明 エクスポート名 ステータス
Environment デプロイ環境 AwsWebInfrastructure-dev-Environment 実装済み
Region デプロイリージョン AwsWebInfrastructure-dev-Region 実装済み
StackName CloudFormationスタック名 AwsWebInfrastructure-dev-StackName 実装済み
InfrastructureStatus インフラ統合状態 AwsWebInfrastructure-dev-InfrastructureStatus 実装済み
ComponentsDeployed デプロイ済みコンポーネント AwsWebInfrastructure-dev-ComponentsDeployed 実装済み

テスト・品質保証

テスト項目 結果 説明 ステータス
単体テスト 37/37 成功 全コンポーネントのテスト 完了
VPC設定テスト 成功 CIDR、サブネット、NAT Gateway 完了
セキュリティグループテスト 成功 3つのSG作成と設定 完了
ALB設定テスト 成功 ロードバランサー、ターゲットグループ 完了
EC2設定テスト 成功 インスタンス作成、IAMロール 完了
RDS設定テスト 成功 データベース、シークレット 完了
モニタリングテスト 成功 CloudWatch、SNS、アラーム 完了
出力値テスト 成功 全出力値の存在確認 完了
CDK合成テスト 成功 CloudFormationテンプレート生成 完了
セキュリティ検証 成功 12のセキュリティAspect適用 完了
環境別設定テスト 成功 dev/staging/prod設定検証 完了
デプロイメント前検証 成功 SynthesisValidation実行 完了

実装状況サマリー

全体進捗: 100% 完了(全コンポーネント統合済み、ES Modules対応完了)

実装完了コンポーネント

  • VPCとネットワーク: 完全実装済み(6サブネット、NAT Gateway、IGW、デフォルトSG制限)
  • セキュリティグループ: 完全実装済み(ALB、EC2、RDS用の3つのセキュリティグループ)
  • Application Load Balancer: 完全実装済み(HTTP、ターゲットグループ、自動ターゲット登録)
  • EC2インスタンス: 完全実装済み(2インスタンス、IAMロール、自動ターゲット登録)
  • RDSデータベース: 完全実装済み(PostgreSQL、暗号化、シークレット管理)
  • モニタリング・ログ: 完全実装済み(CloudWatch、SNS、4アラーム、環境別設定)
  • セキュリティ・コンプライアンス: 完全実装済み(12検証Aspect、デプロイメント前検証)
  • Lambda関数: CDK自動作成済み(VPCセキュリティ用カスタムリソース)
  • 環境パラメータ化: 完全実装済み(dev/staging/prod対応、EnvironmentConfig)
  • テスト・品質保証: 完全実装済み(37テスト成功、包括的検証)
  • ES Modules対応: 完全実装済み(最新JavaScript標準、CDK合成確認済み)

設定のみ(将来拡張用)

  • アプリケーション用Lambda: 設定準備済み(実際の関数は未作成、Node.js 22.x設定)

アーキテクチャ概要
構成: 従来型Webアプリケーション(ALB + EC2 + RDS)+ CDKセキュリティ機能
環境対応: 開発・ステージング・本番環境の自動切り替え
セキュリティ: 12のセキュリティAspect、デプロイメント前検証、VPCデフォルトSG制限
モジュールシステム: ES Modules(最新JavaScript標準)

Lambda関数の詳細

  • 実装済み: AwsWebInfrastructure-dev-CustomVpcRestrictDefaultS-* (VPCデフォルトセキュリティグループ制限用)
  • 設定済み: アプリケーション用Lambda関数設定(Node.js 22.x、環境別メモリサイズ)
  • 注意: Node.js 24.xが理想だが、CDKで利用可能な最新版22.xを使用

環境別設定

  • 開発環境: コスト最適化(t3.micro、シングルAZ、ログ無効化)
  • ステージング環境: 本番準拠(t3.small、Multi-AZ、ログ有効化)
  • 本番環境: 高性能・高可用性(t3.medium、Multi-AZ、包括的監視)

推定月額コスト

  • 開発環境: 約$50-80(t3.microインスタンス、最小構成)
  • ステージング環境: 約$150-200(中程度構成)
  • 本番環境: 約$400-600(高性能・高可用性構成)

管理・運用

  • 設定管理: lib/utils/environment-config.ts による一元管理
  • テスト: 37の包括的テストケース
  • 検証: デプロイメント前検証、セキュリティAspect
  • 監視: CloudWatch、SNS、環境別アラーム設定
  • モジュールシステム: ES Modules対応完了

技術仕様確認済み

  • CloudFormationテンプレート: 正常生成確認済み
  • リソース数: 約80個のAWSリソース定義
  • 出力値: 25個の出力値定義
  • アベイラビリティゾーン: ap-northeast-1a, ap-northeast-1c使用確認済み
  • ES Modules: CDK合成・実行確認済み

このドキュメントはCDK合成結果とコード分析に基づいて更新されています。最新の情報については pnpm run synth の出力を確認してください。

補足:Q Developer Pro のアンサブスクライブ

こちらの方法で設定していた IAM Identity Center 経由のQ Developer Pro をアンサブスクライブします。

ログイン状況の確認とログアウト

Kiro CLI のUIから確認およびログアウトする場合はPreferencesで操作します。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_28.jpg

なお、コマンドでも以下のように確認できます。

$ kiro-cli user whoami
Logged in with IAM Identity Center (https://d-1234567890.awsapps.com/start)

Profile:
QDevProfile-us-east-1-cm-naonishi
arn:aws:codewhisperer:us-east-1:123456789012:profile/XXXXXXXXXX12

サブスクリプションの解除

AWS マネジメントコンソールから Q Developer を選択し(既に Kiro と統合されているので表示は Kiroになる)、サブスクリプションを解除します。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_29.jpg

ステータスがキャンセル済みに変わります。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_30.jpg

続いて、IAM Identity Center を開き、念のため既存のセッションを終了しておきます。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_31.jpg

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_32.png

アプリケーションの割り当てを表示すると、先ほどサブスクリプションのステータスはキャンセル済みに変わりましたがまだ登録が残っていることが分かります。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_33.png

Kiro の画面に戻り、セッティングからプロフィールを削除します。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_34.jpg

なお、KiroのタブとQ Developerのタブがあり、それぞれの設定を確認できます。Q Developer ではログの記録を有効化していたので、後ほど S3 バケット に格納されているプロンプトのログ等が、プロフィール削除によって消えないかも確認してみます。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_35.jpg

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_36.png

IAM Identity Center の画面に戻ると、アプリケーションから表示が消えました。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_37.png

設定していた各種ログは S3 バケットに問題なく残っていました。

20251225_naonishi_kiro-ide-aws-infrastructure-cdk-cloudformation-power_38.jpg

まとめ

Power のオンボーディングでは感動しましたが、実際にWeb3層アーキテクチャくらいのシステムを作成しようとすると、考慮事項やテスト内容も増えてなかなかスムーズにはいきませんでした。
こちらの記事でも教訓として記載されていますが、本来は「何を作りたいか」を定義した上で、仕様をレビューしながら進めていくものなので、今回のように薄いステアリングファイルだけ準備して仕様のレビューもせずに進めていれば当たり前の結果なのかもしれません。

一方で、Powers によって特にプロンプトで指示しなくてもベストプラクティスに沿った設計&テストを実行してくれるので、あまり経験の無いサービスを用いてシステムを構築するような際にも活用できそうです。例えば、従来どおりパラメータシートを作ってから実装するやり方ではなく、対象サービスを絞った上でまず Kiro にざっくり実装とパラメータシート作成をしてもらう方法です。その後、任意のパラメータに再設計して再実装するというやり方も、慣れれば効率的にできるかもしれないと思いました。

本記事がどなたかのお役に立てれば幸いです。

この記事をシェアする

FacebookHatena blogX

関連記事