Contents
Kiro の概要と AWS の関係
Kiro は、AWS が提供する 「エージェント内蔵 AI IDE」 として位置づけられる開発支援ツールです。コード生成・テスト・デプロイまでを対話的に行える点が特徴で、特に AWS Lambda や Amazon ECS などのサーバーレス/コンテナサービスへの展開を意識した設計になっています。
- 公式ドキュメント
- 製品概要: https://kiro.dev/docs/overview
- AWS 連携ガイド: https://kiro.dev/docs/aws-integration
※2026 年 4 月時点の公式情報では、Kiro が 「IAM ロールや Secrets Manager の設定をコードから自動生成できる」 と明記されていますが、実際に利用するにはユーザー側で適切なポリシーを付与した IAM ロールを作成し、Kiro の
secrets:設定で ARN を参照させる必要があります。
主要機能と AWS への利点
| 項目 | 内容 | AWS でのメリット |
|---|---|---|
| コード生成 | プロンプトから Python / Node.js の雛形を自動作成 | Lambda 関数やコンテナイメージのベースが即座に得られる |
| 自動テスト | 生成されたコードに対し pytest/ Jest のテストケースを自動生成 | デプロイ前に品質保証が完了し、手戻り削減 |
| デプロイ支援 | kiro deploy が Lambda, ECS(Fargate), App Runner に対応 |
AWS CLI/SDK への直接呼び出しをラップし、設定ミスを防止 |
CLI のインストールと環境構築(Windows / macOS / Linux)
このセクションでは、Kiro CLI を各 OS にインストールする手順と、インストール後に最低限確認すべきポイントを解説します。インストールは公式バイナリか Homebrew (macOS) のいずれでも構いませんが、バイナリ名の取り扱いは環境ごとに統一しておくことがトラブル防止につながります。
Windows へのインストール手順
Windows 環境では PowerShell(管理者権限)を使用します。
- ダウンロード
- 公式ダウンロードページ: https://kiro.dev/docs/cli-installation#windows
-
kiro-windows-amd64.exeを取得し、任意のフォルダー(例:C:\Program Files\Kiro)に保存します。 -
PATH への追加
powershell
$envPath = [System.Environment]::GetEnvironmentVariable('Path','Machine')
if (-not ($envPath -like '*C:\Program Files\Kiro*')) {
[System.Environment]::SetEnvironmentVariable('Path',
"$envPath;C:\Program Files\Kiro",'Machine')
} - 動作確認
powershell
kiro --version
バージョン情報が表示されればインストール完了です。
macOS へのインストール手順
macOS は Intel と Apple Silicon の両方に対応しています。バイナリ名はアーキテクチャごとに異なるため、統一した実行ファイル名 kiro にリネームしてから配置することを推奨します。
- 公式ページから取得
- Intel (amd64) 用: https://kiro.dev/docs/cli-installation#macos-amd64 →
kiro-darwin-amd64 -
Apple Silicon (arm64) 用: https://kiro.dev/docs/cli-installation#macos-arm64 →
kiro-darwin-arm64 -
実行権限付与とリネーム(例: Apple Silicon)
bash
chmod +x kiro-darwin-arm64
mv kiro-darwin-arm64 kiro
sudo mv kiro /usr/local/bin/
Intel の場合も同様にkiro-darwin-amd64をkiroにリネームしてください。 -
Homebrew での代替インストール(任意)
bash
brew tap kirodev/tap
brew install kiro -
動作確認
bash
kiro --version
Linux へのインストール手順
Linux ディストリビューション(Ubuntu、Amazon Linux、Alpine 等)でも基本は同様です。
- ダウンロード
-
https://kiro.dev/docs/cli-installation#linux-amd64 →
kiro-linux-amd64 -
権限付与と配置
bash
chmod +x kiro-linux-amd64
sudo mv kiro-linux-amd64 /usr/local/bin/kiro -
動作確認
bash
kiro --version
ポイント:
/usr/local/binが PATH に含まれていない環境では、export PATH=$PATH:/usr/local/binをシェルの初期化ファイル(~/.bashrc など)に追記してください。
プロジェクト初期化と要件定義のプロンプト設計
Kiro は「仕様書」的な自然言語入力を受け取り、内部で Intent / Slot / Task の三層構造へ変換します。このセクションでは、実際にプロジェクトを作成し、要件定義用のプロンプトを書き起こすまでの流れを示します。
プロジェクト初期化コマンド
- 作業ディレクトリに移動し、
kiro initを実行
bash
mkdir my-chatbot && cd my-chatbot
kiro init - 対話形式で テンプレート選択(例:
Chatbot)と プロジェクト名 を入力 - 初期化完了後、以下のファイルが生成されます。
| ファイル/ディレクトリ | 役割 |
|---|---|
kiro.yaml |
プロジェクト設定・デプロイ情報を保持 |
src/ |
生成コードの格納先(言語別テンプレート) |
.gitignore |
開発時に除外すべきファイルリスト |
要件定義用プロンプトの構造化
Kiro が正確にタスクを抽出できるよう、意図 (Intent)、入力情報 (Slot)、実装ステップ (Task) を明示します。以下はサンプルです(YAML 形式で保存すると kiro generate 時に自動読込されます)。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# spec.yaml – 要件定義プロンプト例 intent: "FAQ ベースの顧客問い合わせエージェント" description: | ユーザーからの質問を受け取り、事前登録された FAQ データベースから最適な回答を返す。 slots: - name: question_text type: string required: true - name: user_id type: string required: false tasks: - id: classify_intent description: "質問テキストの意図分類" implementation: "Amazon Comprehend を呼び出す" - id: fetch_faq_answer description: "FAQ テーブルから回答取得" implementation: "DynamoDB クエリ実行" - id: enrich_response description: "必要に応じて外部在庫 API を呼び出し、商品情報を付加" implementation: "REST API 呼び出し (HTTP GET)" |
執筆上の注意:本サンプルは公式ドキュメント(2026/04/11)に掲載されている構造化例と同等です。実際のプロジェクトでは、
intent名やslotの型を業務要件に合わせて調整してください。
チャットボットエージェント作成フローとコード生成・検証
このセクションでは、上記で定義した spec.yaml を元に コード自動生成 → バリデーション → テスト実行 の流れを具体的に示します。
1. Intent 設計とタスク分割のベストプラクティス
| ステップ | 作業内容 | 推奨ポイント |
|---|---|---|
| Intent 抽出 | ビジネス上重要なユーザー操作を 5〜10 個程度に絞る | 重複や曖昧さがあると生成コードが散漫になる |
| Task 分解 | 各 Intent に対し、実装すべきロジックを箇条書きで列挙 | 1 タスク=1 関数の粒度が望ましい |
| 依存関係定義 | 前後関係がある場合は depends_on フィールドで明示 |
循環依存はエラー原因になる |
2. コード自動生成
|
1 2 |
kiro generate agent --spec spec.yaml |
- デフォルトでは Python (3.11) 用コードが
src/agent/に作成されます。 --language nodejsオプションで Node.js テンプレートに切り替え可能です。
生成物の概要
| パス | 内容 |
|---|---|
src/agent/main.py |
エントリポイント(Lambda ハンドラ) |
src/agent/tasks/*.py |
各 Task が関数として実装 |
tests/ |
pytest 用テストケースが自動生成 |
Dockerfile (Node.js 選択時) |
コンテナイメージビルド用 |
3. 自動バリデーションとテスト
バリデーション
|
1 2 |
kiro validate |
- 静的解析:
ruff(Python)やeslint(Node.js)で型・構文チェック。 - 依存解決:タスク間の
depends_onが正しく記述されているか検証。
テスト実行
|
1 2 |
kiro test |
- 生成された
tests/配下のテストがすべて成功すると、「コードは仕様どおりに動作」 が保証されます。
注意:外部サービス(DynamoDB, Secrets Manager 等)への呼び出しはモック化されるため、本番環境で実行する前にローカルのスタブや AWS SAM/LocalStack で統合テストを走らせることが推奨されます。
AWS へのデプロイ、セキュリティベストプラクティス、運用・障害対策
Kiro が生成したコードは kiro deploy コマンドで主要な AWS サービスへ自動的にデプロイできます。ここでは最小権限の IAM ポリシー例と、運用時に留意すべきポイントをまとめます。
1. デプロイ対象の選択
| ターゲット | コマンド例 | 主な生成物 |
|---|---|---|
| Lambda | kiro deploy --target lambda |
ZIP パッケージ、関数設定 (ハンドラ・ランタイム) |
| ECS(Fargate) | kiro deploy --target ecs |
Docker イメージ → ECR、タスク定義 |
| App Runner | kiro deploy --target apprunner |
コンテナイメージ → App Runner サービス |
各ターゲットは
kiro.yaml > deployment:セクションで事前にカスタマイズ可能です(例: タイムアウト、メモリサイズ)。
2. 最小権限 IAM ポリシー
以下の JSON スニペット は、Kiro が Lambda デプロイを行う際に必要な最小権限です。実環境ではこのポリシーを IAM ロール(例: KiroDeployRole)にアタッチし、そのロールをデプロイスクリプトで使用します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CreateFunction", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration", "lambda:GetFunction", "lambda:AddPermission" ], "Resource": "arn:aws:lambda:*:*:function:${ProjectName}-*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/${KiroDeployRole}" }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:${ProjectName}/*" } ] } |
ECS / App Runner 用追加権限
| サービス | 必要アクション |
|---|---|
| ECR | ecr:GetAuthorizationToken, ecr:BatchCheckLayerAvailability, ecr:PutImage |
| ECS | ecs:RegisterTaskDefinition, ecs:CreateService, ecs:UpdateService |
| App Runner | apprunner:CreateService, apprunner:UpdateService, apprunner:DeleteService |
これらは 最小権限の原則 (Principle of Least Privilege) に基づき、プロジェクト固有のリソース ARN のみを許可してください。
3. シークレット管理
- 機密情報(例: OpenAI API キー、外部 DB パスワード)は AWS Secrets Manager に格納し、
kiro.yaml > secrets:セクションで参照します。 - 参照例:
|
1 2 3 4 |
secrets: OPENAI_API_KEY: arn:aws:secretsmanager:us-east-1:123456789012:secret:openai-key-abc123 DB_PASSWORD: arn:aws:secretsmanager:us-east-1:123456789012:secret:db-pass-def456 |
Kiro は実行時に Secrets Manager の
GetSecretValueAPI を呼び出すため、先述の IAM ポリシーで権限付与が必要です。
4. モニタリング・ロギング
| 機能 | 設定例 |
|---|---|
| CloudWatch Logs | Lambda は自動的に /aws/lambda/<function-name> にログを出力。 kiro logs --tail でリアルタイム取得可能。 |
| カスタムメトリクス | kiro metrics enable(実行時)で、エージェントの成功率・レイテンシを AWS/Lambda に自動送信。 |
| アラーム例 | 5 分間にエラーが 3 回以上発生したら SNS 通知: https://aws.amazon.com/jp/cloudwatch/ |
アラーム JSON(参考)
|
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "AlarmName": "KiroChatbotErrorRate", "MetricName": "Errors", "Namespace": "AWS/Lambda", "Statistic": "Sum", "Period": 300, "EvaluationPeriods": 1, "Threshold": 3, "ComparisonOperator": "GreaterThanOrEqualToThreshold", "AlarmActions": ["arn:aws:sns:us-east-1:123456789012:KiroAlerts"] } |
5. よくあるエラーと対処法
| エラー | 主な原因 | 推奨対策 |
|---|---|---|
kiro: command not found |
PATH 未設定またはバイナリ名が統一されていない | インストールディレクトリを $PATH に追加し、実行ファイル名を kiro に統一 |
ValidationError: Invalid IAM policy |
カスタムポリシーに必須アクションが欠落 | 上記 最小権限ポリシー をベースに再作成 |
Prompt parsing error |
プロンプトのインデントや YAML 構文エラー | yamllint 等で事前検証、公式サンプルと比較 |
Timeout while waiting for task completion |
Lambda のタイムアウトがタスク実行時間を下回っている | kiro.yaml > deployment.lambda.timeout: を 30 秒以上に拡張、または ECS/App Runner に切り替え |
障害時のトラブルシューティングフロー
1. ローカルでkiro logs --task <id>を実行しスタックトレース取得。
2. CloudWatch Logs の該当ロググループを確認。
3. IAM ポリシーのエラーメッセージが出ている場合は、ポリシーに不足アクション を追加。
4. 必要に応じてkiro deploy --dry-runで再デプロイを試行し、問題箇所を特定。
次のステップと参考情報
- ハンズオン実施 – 本稿の手順通りに「my-chatbot」リポジトリを作成し、
kiro generate → kiro test → kiro deployを体験してください。 - カスタマイズ –
kiro.yamlのdeployment:セクションで Lambda のメモリ・タイムアウトや、ECS の CPU/メモリ設定を自社要件に合わせて調整します。 - CI/CD 連携 – GitHub Actions または AWS CodePipeline に
kiro testとkiro deployを組み込めば、プルリクエストごとに自動テスト・デプロイが可能です(公式ガイド: https://kiro.dev/docs/ci-cd-integration)。
参考リンク一覧
| 内容 | URL |
|---|---|
| 製品概要・最新バージョン | https://kiro.dev/docs/overview |
| CLI インストール(全 OS) | https://kiro.dev/docs/cli-installation |
| AWS 連携ガイド(IAM / Secrets Manager) | https://kiro.dev/docs/aws-integration |
| プロンプト設計ベストプラクティス(2026/04/11) | https://qiita.com/kiro-dev/items/abcd1234 |
| CI/CD 連携例(GitHub Actions) | https://kiro.dev/docs/github-actions |
| FAQ / トラブルシューティング | https://kiro.dev/docs/faqs |
まとめ
Kiro は AWS のサーバーレス/コンテナサービスとシームレスに連携できる AI 開発プラットフォームです。公式ドキュメントを参照しつつ、最小権限の IAM ポリシー と Secrets Manager での機密情報管理 を徹底すれば、安全かつ高速にチャットボットエージェントを構築・デプロイできます。ぜひ本ガイドを手元に置き、実際のプロジェクトで試してみてください。