TOP> コラム一覧>

Kiroについてまとめてみた

はじめに

こんにちは、高橋です。

Kiroは昨年7月にプレリリースされ、いつかご紹介しようと思っていたのですが、2025年11月18日に一般公開されました。今回は、このKiroについてご紹介します。

1.Kiroとは

Kiroは、もともと自然言語プロンプトを起点に、プロトタイプから本番品質のアプリケーション構築までを一貫して支援するエージェント駆動型AI IDEでした。しかし、11月の一般公開に合わせてAmazon Q Developerがリブランドされ、Kiro CLIとしてKiroブランドに統合されました。現在では、従来のIDEとCLIで構成される総合開発基盤となっています。

なお、現時点ではKiro CLIとAmazon Q Developer CLIに機能的な差異はありませんが、今後のアップデートはKiro CLIのみ対象となるため、現在Amazon Q Developer CLIをご利用中の方は、早めの移行をお勧めします。Kiroは、単なるAIによるコード生成ツールとは異なり、開発の各フェーズ(要件定義・設計・実装・テスト)に関与し、人とAIが協調して、漏れなく堅実にアプリケーション開発を支援することをコンセプトとしています。

2.Kiroの料金体系

Kiroの機能に触れる前に、Kiro CLIも関係する料金体系をまとめます。
Kiroはサブスクリプション形式で、利用頻度に応じて以下のプランが提供されています。

プラン 料金(月額) クレジット数 追加クレジット
Kiro Free $0 50 なし
Kiro Pro $20 1000 あり($0.04/credit)
Kiro Pro+ $40 2000 あり($0.04/credit)
Kiro Power $200 10000 あり($0.04/credit)
Q Developer Pro $19 別体系(コード変換数・AIエージェント利用数等) なし

上記の通り、現在はAmazon Q Developer ProのサブスクリプションでKiroを使用することができ、料金体系が異なるので一概には言えませんが、Kiro Proと同程度の利用が可能となります。ただし、Kiro Proと異なり追加クレジットがないため、上限があるので注意が必要です。

また、支払い方法は以前、Kiroが限定利用だった際は、個別にクレジットカードで支払いを行う必要がありました。しかし、一般公開に伴い、AWSコンソール上でサブスクリプションを管理できるようになり、AWSの利用料に含めて請求を受け取ることが可能になりました。これにより、支払いが大幅に簡単になっています。ただし、この場合はサブスクリプションを管理するユーザーをAWS IAM Identity Centerで管理する必要があります。

3.Kiroの機能

Kiroは、以下の5つの主要機能を備えています。

1. Spec(Specification‑Driven Development)

入力されたプロンプトをもとに、EARS記法で仕様書を自動生成します。さらに、データフロー図、型定義、DBスキーマ、API設計までを自動生成するため、要件から実装までの抜け漏れを防ぐことができます。

2. Hooks

ファイルの作成・更新・削除などをトリガーに、テスト、ドキュメント更新、セキュリティスキャンなどをバックグラウンドで自動実行します。人が忘れがちな作業も含めて自動化されるため、品質と一貫性を確保できます。

3. Vibe Coding

他のツールと同様にAIと対話しながら、プログラムを作成することもできます。

4. Steering(プロジェクト知識管理)

ディレクトリ内(kiro/steering/)にプロダクト概要、技術スタック、構造、開発ルールなどをMarkdown形式で保存します。AIはコード生成時にこれらのドキュメントを参照し、チームのルールに沿ったコードを作成します。

5. MCP(Model Context Protocol)連携

MCPに対応しており、外部のナレッジベース、API、ツールとの連携が容易です。これにより、仕様生成やHooksと組み合わせた柔軟なワークフローを構築できます。

SpecとHooksを組み合わせた開発により、一貫性のある、堅実なアプリケーション開発ができることがKiroの大きな特徴と言えます。

4.Kiroの動作環境

Kiroのソースはこちら(https://kiro.dev/downloads/)からダウンロードすることが可能で、下記のOS環境にインストールして利用することが可能です。

  • macOS
  • Windows(x86)
  • Linux(Debian/Ubuntu)

また利用するためには無料版であっても下記のいずれかのアカウントが必要となります。

  • Builder ID
  • GitHub
  • Google
  • AWS IAM Identity Center

なお、AWS IAM Identity Centerは無償版に対応していないため、無償版を利用する場合は他のアカウントが必要となります。

5.Kiro IDEのセットアップ

ここからはKiroを試してみるために、Kiro IDEのセットアップを進めていきます。
今回は、Windows環境で下記のサイトからKiroのインストールイメージをダウンロードし、セットアップを行います。

https://kiro.dev/downloads/

Kiroダウンロード画面

ダウンロードしたファイルを実行するとインストーラーが起動します。1
基本的に設定を変更する必要はなく、「次へ」をクリックして進めることで、インストールが完了します。

Kiroセットアップウィザード

「Kiroを実行する」にチェックを入れたまま完了をクリックすれば、Kiroが起動します。

Kiro起動画面

自身が利用する認証方法をクリックするとそれぞれのサインイン画面が起動します。
今回はAWS Builder IDでログインしました。

awsサインイン画面

IDEへのアクセス許可の確認が表示されるのでアクセス許可をクリックします。

aws IDEアクセス許可画面

するとKiroにログインが完了します。
VS Codeを使用している場合はその設定がインポートされます。

Kiro インポート画面

次に画面の色を選択するとセットアップが完了し、Kiroが起動します。

Kiro 起動画面01
Kiro 起動画面02

6.Specを試してみる

最後に、Kiroの目玉の機能であるSpecを試してみます。今回は、API GatewayとLambdaを組み合わせて、2つの数字を入力するとその和を計算するアプリケーションを作成します。さらに、これをCloudFormationテンプレートとして出力し、実際にデプロイできるようにします。新しいプロジェクトを始めるときには最初に成果物を保存するフォルダを開きます。

Kiro 保存フォルダ作成

次に、右側の画面で「Spec」を選択し、プロンプトに以下の内容を入力します。

2つの数字を入力するとその和を返してくれるWebアプリを作成したいです。AWSサービスはAPI Gateway + Lambdaの構成でCloudFormationテンプレートで環境にデプロイできるようにしてください。

Kiro Spec選択

すると、Kiroは要件を整理し、設計書を作成し、それを実現するためのタスクまで自動的に生成します。結果は、requirement.md、design.md、task.mdというファイルに保存されます。

Kiro Specタスク生成イメージ

Requirementでは、要求した機能だけでなく、UIやAPIアクセス、さらにはエラーハンドリングまで想定され、システムとして動作するために必要な要件が網羅されています。また、Taskでは、プログラムの作成から単体テスト、結合テスト、本番・開発・テスト環境へのデプロイ、さらにエンドツーエンドの統合テストまでのシナリオが作成されており、本番環境稼働までのタスクが漏れなく設定されています。


requirement.md

								
# Requirements Document

## Introduction
2 つの数字を入力してその和を返す Web アプリケーション。AWS API Gateway + Lambda 構成で CloudFormation テン
プレートによりデプロイ可能なシステムを構築する。

## Glossary

- **Addition_API**: 2 つの数字の加算を行う API エンドポイント
- **Lambda_Function**: 加算処理を実行する AWS Lambda 関数
- **API_Gateway**: HTTP リクエストを受け付ける AWS API Gateway
- **CloudFormation_Template**: AWS リソースをデプロイするための Infrastructure as Code テンプレート
- **Web_Client**: ユーザーがブラウザで操作するフロントエンドアプリケーション

## Requirements

### Requirement 1: 数字の加算機能

**User Story:** As a user, I want to input two numbers and get their sum, so that I can perform basic
addition calculations through a web interface.

#### Acceptance Criteria

1. WHEN two valid numbers are provided to the API, THE Addition_API SHALL return their sum
2. WHEN invalid input is provided (non-numeric values), THE Addition_API SHALL return an appropriate
error message
3. WHEN the API receives a request, THE Lambda_Function SHALL process the calculation within 3 seconds
4. WHEN the calculation is performed, THE Addition_API SHALL return the result in JSON forma

### Requirement 2: Web Interface

**User Story:** As a user, I want a simple web interface to input numbers, so that I can easily use the
addition service.

#### Acceptance Criteria

1. WHEN a user accesses the web page, THE Web_Client SHALL display two input fields for numbers
2. WHEN a user enters numbers and clicks submit, THE Web_Client SHALL send a request to the
Addition_API
3. WHEN the API responds, THE Web_Client SHALL display the result clearly to the user
4. WHEN an error occurs, THE Web_Client SHALL show an appropriate error message to the user

### Requirement 3: AWS Infrastructure

**User Story:** As a developer, I want to deploy the application using CloudFormation, so that I can
manage infrastructure as code and ensure consistent deployments.

#### Acceptance Criteria

1. WHEN the CloudFormation template is deployed, THE system SHALL create an API_Gateway endpoint
2. WHEN the CloudFormation template is deployed, THE system SHALL create a Lambda_Function for
processing
3. WHEN the infrastructure is created, THE API_Gateway SHALL be properly connected to the
Lambda_Function
4. WHEN the deployment completes, THE system SHALL output the API endpoint URL for client configuration

### Requirement 4: API Design

**User Story:** As a client application, I want a well-defined API contract, so that I can reliably
integrate with the addition service.

#### Acceptance Criteria

1. THE Addition_API SHALL accept POST requests with two numbers in the request body
2. WHEN a valid request is received, THE Addition_API SHALL return HTTP status 200 with the sum
3. WHEN an invalid request is received, THE Addition_API SHALL return HTTP status 400 with error
details
4. THE Addition_API SHALL include proper CORS headers for web browser access

### Requirement 5: Error Handling

**User Story:** As a user, I want clear error messages when something goes wrong, so that I can
understand and correct any issues.

#### Acceptance Criteria

1. WHEN non-numeric input is provided, THE Addition_API SHALL return a descriptive error message
2. WHEN required parameters are missing, THE Addition_API SHALL return a validation error

							

design.md

								
# Design Document: Number Addition API

## Overview

2 つの数字の加算を行う Web アプリケーションシステム。AWS API Gateway + Lambda + CloudFormation を使用し
たサーバーレス構成で実装し、シンプルな Web インターフェースを提供する。

## Architecture

```mermaid
graph TB
User[User Browser] --> Web[Web Interface]
Web --> API[API Gateway]
API --> Lambda[Lambda Function]
Lambda --> Response[JSON Response]
Response --> API
API --> Web
Web --> User
CF[CloudFormation Template] --> API
CF --> Lambda
CF --> IAM[IAM Roles]
```

システムは以下の 3 つの主要コンポーネントで構成される:

1. **Web Interface**: 静的 HTML ページでユーザー入力を受け付け
2. **API Gateway**: RESTful API エンドポイントを提供
3. **Lambda Function**: 加算処理のビジネスロジックを実行
## Components and Interfaces

### Web Interface Component

**責任**: ユーザーインターフェースの提供と API 呼び出し

**インターフェース**:
```javascript
// DOM 要素の操作
function calculateSum() {
const num1 = parseFloat(document.getElementById('number1').value);
const num2 = parseFloat(document.getElementById('number2').value);
// API 呼び出し
fetch('/api/add', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ number1: num1, number2: num2 })
});
}
```

### API Gateway Component

**責任**: HTTP リクエストの受信と Lambda 関数への転送

**エンドポイント設計**:
- **POST /add**: 加算リクエストを処理
- **OPTIONS /add**: CORS preflight リクエストを処理

**リクエスト形式**:
```json
{ "number1": 10.5,
"number2": 20.3
}
```

**レスポンス形式**:
```json
{ "result": 30.8,
"success": true
}
```

**エラーレスポンス形式**:
```json

							

task.md

								
# Implementation Plan: Number Addition API

## Overview

JavaScript を使用して AWS Lambda 関数を実装し、CloudFormation テンプレートでインフラをデプロイし、シン
プルな Web インターフェースを提供する段階的な実装アプローチ。

## Tasks

- [ ] 1. プロジェクト構造と Lambda 関数の実装
- プロジェクトディレクトリ構造を作成
- Lambda 関数のメインロジックを実装(加算処理とバリデーション)
- package.json ファイルを作成
- _Requirements: 1.1, 1.2, 4.1, 4.2, 4.3, 5.1, 5.2_

- [ ] 1.1 Lambda 関数のプロパティテストを作成
- **Property 1: Valid Addition Calculation**
- **Validates: Requirements 1.1, 4.2**

- [ ] 1.2 入力バリデーションのプロパティテストを作成
- **Property 2: Input Validation Error Handling**
- **Property 3: Missing Parameter Validation**
- **Validates: Requirements 1.2, 4.3, 5.1, 5.2**

- [ ] 1.3 Lambda 関数のユニットテストを作成
- 特定の数値組み合わせのテスト(正数、負数、ゼロ、小数)
- 特定のエラーシナリオのテスト
- _Requirements: 1.1, 1.2, 5.1, 5.2_

- [ ] 2. CloudFormation テンプレートの作成
- API Gateway、Lambda 関数、IAM ロールを定義
- CORS 設定と API 統合を設定
- 出力パラメータ(API URL)を定義
- _Requirements: 3.1, 3.2, 3.3, 3.4, 4.4_

- [ ] 2.1 CloudFormation テンプレートのユニットテストを作成
- テンプレート構文の検証
- 出力パラメータの検証
- _Requirements: 3.4_

- [ ] 3. Checkpoint - Lambda 関数とインフラの基本テスト
- すべてのテストが通ることを確認し、質問があれば用户に確認する

- [ ] 4. Web インターフェースの実装
- HTML ページの作成(2 つの数値入力フィールドと送信ボタン)
- JavaScript での API 呼び出し機能を実装
- レスポンス表示とエラーハンドリングを実装
- _Requirements: 2.1, 2.2, 2.3, 2.4_

- [ ] 4.1 API レスポンス形式のプロパティテストを作成
- **Property 4: Response Format Consistency**
- **Property 5: POST Request Acceptance**
- **Validates: Requirements 1.4, 4.1, 4.4**

- [ ] 4.2 Web インターフェースのユニットテストを作成
- DOM 要素の存在確認
- フォーム送信動作のテスト
- エラー表示機能のテスト
- _Requirements: 2.1, 2.2, 2.3, 2.4_

- [ ] 5. デプロイメント設定とドキュメント
- デプロイメント手順書を作成
- 環境変数とパラメータの設定方法を文書化
- README.md ファイルを作成
- _Requirements: 3.1, 3.2, 3.3, 3.4_

- [ ] 5.1 統合テストを作成
- エンドツーエンド API テスト
- CloudFormation デプロイメントテスト
- _Requirements: 1.1, 1.2, 4.1, 4.2, 4.3_

							

ここまで準備が整ったら、タスクに沿って環境の構成に進みます。Kiroでは、task内の「Start task」がリンクになっており、これをクリックすると各タスクが実行され、プログラムの作成やテストコードの作成・実行が行われます。

テストコードの作成・実行

タスクが正常に実行されると各タスクにチェックが入り、成果物が最初に指定したフォルダ内に保存されます。

タスクのチェック

今回の検証では、最終的にCloudFormationテンプレートが作成されます。それをAWSアカウントにデプロイし、テストコマンドを実行したところ、アプリケーションが正常に動作していることを確認できました。

アプリケーション動作確認

7.さいごに

今回はKiroの紹介とインストールからSpecの利用まで試してみました。
Kiroは、従来のコード生成とは異なり、要件定義から設計・実装・テスト・デプロイまでの仕様策定・実行が可能であり、開発効率と信頼性が大幅に向上することが体感できました。Kiroを活用することで、堅実かつスピーディなアプリケーション開発を実現できると思いますので、まだ使ったことがない方はぜひ試してみてください。

関連コラム

お問い合わせ

【著者プロフィール】

高橋 繁義(たかはし しげよし)

伊藤忠テクノソリューションズ株式会社 クラウドアーキテクト

インフラ全般のエンジニアとして20年以上活動し、現在AWS専任の技術担当兼サービス企画担当として活動中
2022年から4年連続でAPN Ambassadorに選任

高橋 繁義(たかはし しげよし)

pagetop