17
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kiro CLIに構成図作成から見積書作成までお願いしてみた!

Last updated at Posted at 2025-12-24

はじめに

こんにちは!
ついにQiita Advent Calender 2025の最終日ですね!!皆さんクリスマスイブは楽しく過ごされたでしょうか??
ということで!!AWS初心者である筆者が話題Kiro CLI :ghost:を使って見積書作成業務を効率化させてみました!

この記事ではKiro CLIのみを使用して以下の作業工程を全てお願いしていきます!

  • 要件からアーキテクチャ図の作成
  • 構成を元にコスト計算 / 比較
  • エクセル形式の見積もり書を作成

※本記事ではKiro CLIのインストール方法や使い方については記載しておりません。インストール方法・使い方などについては以下を参照ください。

想定している読者

  • AWS初心者でKiro CLIを触ってみたいけど、何ができるかよく分からないという方
  • Kiro CLIを使った業務効率化に興味がある方

そもそもKiro CLIって?

Kiro CLIとは、CLI上で動くAWS環境専用のAIエージェントツールです。AWS環境を調べて、判断して、環境構築まで行ってくれます。
元々Amazon Q DeveloperがありましたがリブランドされてKiro CLIとしてリリースされました!!:clap_tone1:

Amazon Q DeveloperとKiro CLIの違いについては以下記事に詳しく記載されているのでそちらをご覧ください。
基本的な機能はQ Developer CLIと変わっていないようですね。

2025年11月24日時点での情報です。

アーキテクチャ図の作成

それでは早速要件を元にアーキテクチャ図の作成をKiro CLIに依頼していきます。

要件から構成を出力

以下のプロンプトでWEBシステム要件をKiro CLIに伝えてみます。

> 以下の要件でWEBシステムを作成したい場合、AWSのベストプラクティスに基づいて構成を考えてください。
  要件
 機能要件:
 ・Webブラウザからシステムにアクセス
 ・静的コンテンツが配信可能
 ・動的処理を実行できる
 ・データをデータベースに永続化
 ・セッション管理
 ・ログの確認
 ・障害時の通知(メール/SNSなど)

 非機能要件:
 ・24時間365日稼働
 ・単一障害を発生させない
 ・一部リソースの障害時もサービスを継続可能
 ・同時アクセス数が増加しても低レイテンシー
 ・通信はHTTPS
 ・DBはインターネットからアクセス不可
 ・データは暗号化されている
 ・不正アクセスや攻撃を検知・防御する
 ・障害発生時の原因特定が迅速に行える
 ・定期的なバックアップを取得する

するとKiro CLIが構成を考えてくれます。

## アーキテクチャ概要

### ネットワーク基盤
- **VPC**: プライベートクラウド環境、IPアドレス範囲管理
- **Internet Gateway**: VPCとインターネット間の接続ポイント
- **Route 53**: DNS管理、ヘルスチェック

### フロントエンド・静的コンテンツ
- **WAF**: Web攻撃防御、CloudFront前段配置
- **CloudFront**: 静的コンテンツ配信、HTTPS通信、グローバル配信
- **S3**: 静的コンテンツストレージ(CloudFront経由のみアクセス)

### アプリケーション層
- **Application Load Balancer (ALB)**: HTTPS終端、複数AZ分散
- **ECS Fargate**: 動的処理、自動スケーリング、コンテナ実行
- **複数AZ配置**: 単一障害点排除

### データベース層
- **RDS Multi-AZ**: 高可用性、自動フェイルオーバー
- **プライベートサブネット**: インターネットアクセス遮断
- **暗号化**: 保存時・転送時暗号化有効

### セッション管理
- **ElastiCache (Redis)**: セッション共有、複数AZ配置

### セキュリティ
- **WAF**: Web攻撃防御(CloudFront前段)
- **Security Groups**: ネットワークレベル制御
- **NACLs**: サブネットレベル制御
- **GuardDuty**: 脅威検知
- **Config**: コンプライアンス監視

### 監視・ログ
- **CloudWatch**: メトリクス監視、アラート
- **CloudWatch Logs**: アプリケーションログ集約
- **X-Ray**: 分散トレーシング
- **SNS**: 障害通知(メール/SMS)

### バックアップ・災害対策
- **RDS自動バックアップ**: ポイントインタイム復旧
- **AWS Backup**: 統合バックアップ管理
- **S3 Cross-Region Replication**: 静的コンテンツの地理的冗長化

## ネットワーク構成(修正版)

VPC (10.0.0.0/16)
├── Internet Gateway
├── パブリックサブネット (AZ-1a: 10.0.1.0/24, AZ-1c: 10.0.2.0/24)
│   ├── ALB (Multi-AZ配置)
│   └── NAT Gateway (各AZ)
├── プライベートサブネット (AZ-1a: 10.0.3.0/24, AZ-1c: 10.0.4.0/24)
│   ├── ECS Fargate (各AZ)
│   ├── ElastiCache (各AZ)
│   └── RDS Multi-AZ (Primary/Standby)
└── ルートテーブル
    ├── パブリック: 0.0.0.0/0 → Internet Gateway
    └── プライベート: 0.0.0.0/0 → NAT Gateway


## 主要な設定ポイント(修正版)

### 高可用性
- 最低2つのAZ(us-east-1a, us-east-1c)に分散配置
- Auto Scaling設定
- RDS Multi-AZ有効
- Internet Gateway冗長化(AWS管理)

### セキュリティ
- 全通信HTTPS化
- データベースはプライベートサブネットのみ
- 保存時・転送時暗号化
- WAF + GuardDuty有効
- Security Groups + NACLs多層防御

### ネットワーク分離
- パブリックサブネット: ALB、NAT Gateway
- プライベートサブネット: ECS、ElastiCache、RDS
- インターネット接続: IGW(インバウンド)、NAT Gateway(アウトバウンド)

### 監視
- CloudWatch Alarms設定
- SNS通知設定
- ログ集約とアラート
- X-Ray分散トレーシング

### パフォーマンス
- CloudFront CDN(エッジロケーション活用)
- ElastiCache活用(セッション・データキャッシュ)
- Auto Scaling設定(需要に応じた自動拡張)

この構成により、要件を満たしつつAWSのWell-Architected Frameworkに準拠したシステムが構築できます。

補足ですが、「NATゲートウェイは何のために必要か」とKiro CLIに聞いてみたところ、ECSがAWSの各サービスと通信する(Cloud watchへのログ転送やX-rayへのトレース送信)に必要なようです。(Private Linkでも良さそうですね。)

構成からアーキテクチャ図を作成

この構成を使ってアーキテクチャ図を作成していきます。

diagramsライブラリを使用

アーキテクチャ図の作成にはpythonのdiagramsライブラリを使用します。diagramsはpythonコードだけでインフラ構成図を自動生成できるライブラリです。
AWS公式のサービスアイコンをインポートして使用することができます。Pythonスクリプトの生成もKiro CLIが実行してくれます。

※diagramsライブラリを使用したアーキテクチャ図の作成方法については公式サイトに詳しく説明されています。

S3バケットの用意

今回はKiro CLIが作成したアーキテクチャ図や見積書をS3バケットに格納します。参考までにS3バケットのフォルダ構成は以下の通りです。

s3://calc-cost/
├── architecture/ (アーキテクチャ図格納用)
└── estimate/ (見積書格納用)

アーキテクチャ図作成プロンプト

アーキテクチャ図作成のプロンプトの一例です。プロンプトを入力すると、Kiro CLIがPythonスクリプトの作成と指定したS3バケットフォルダ内への格納まで行ってくれます。

> 上記の構成でアーキテクチャ図を作成してください。アーキテクチャ図の作成にはpythonのdiagrams
   ライブラリ使用してAWS公式サービスアイコンをインポートして作成してください。出力場所は
   arn:aws:s3:::calc-cost/architecture/、出力形式はpng形式とpdf形式で出力してください。
   図作成前に構成を確認して記載漏れのサービスがないか再確認をお願いします。
   図のレイアウトは以下が分かるようにしてください。
   ・横長レイアウト
   ・マルチAZ構成が分かるよう複数AZを記載

↓ Kiro CLIが作ったアーキテクチャ図です。

image.png

構成通りのアーキテクチャ図を作成するにはKiroに何度か図の修正プロンプト入力する必要がありました。

参考までに修正プロンプトについては以下の通りです。

> VPCとサブネットの記載が漏れているので追加してください。
> RDSはプライマリが分かるようにAZ-1aとAZ-1c内の両方のECSから矢印が向くようにして下さい。
> ALBからの通信がNAT GWではなくECSに向くように修正してください。

構成→アーキテクチャ図作成まで考えてくれますが、あくまでもKiro CLIの出力結果は補助的なもので最終的には人間が判断する必要はあると思います。

コスト計算・比較から見積書作成

次に構成を元に一か月稼働させた場合のコストを計算し、見積書の作成をします。

openpyxlライブラリの使用

Kiro CLIはエクセル形式のファイルを直接出力できないため、Pythonのopenpyxlライブライリを使用してスクリプトをKiroに生成させることでエクセル形式の見積もり書を作成します。

公式サイト:

見積書作成プロンプト

以下がプロンプト例になります。

> 上記構成でus-east-1で一か月稼働させた際の見積書をエクセル形式で作成してください。エクセルファ
  イルの生成にはopenpyxlライブラリを使用してください。見積書の出力先は
  arn:aws:s3:::calc-cost/estimate/にしてください。見積書の作成には以下を考慮してください。
  ・金額は日本円で算出
  ・固定コストと可変コストを分けて算出
  ・月間HTTPSリクエスト数を100万回としてコスト計算

↓ Kiro CLIが作成した見積書です。各リソース毎に料金体系を考慮した使用量と単価、月額費用を計算してくれています。
image.png

次にこんなプロンプトを入力してみます。

> 検証環境として使う場合、同じ構成で利用料が安いリージョン比較して見積書を作成してください。

↓ リージョン毎に利用料を計算し、比較表を作成してくれました。us-west-2が最も利用料の安いリージョンであることが分かります。
image.png

コスト削減案を検討

次にベストプラクティスに準拠しない構成ではありますが、コスト削減案を作成してみます。その際に、各案のデメリットを考えてもらうよう指示してみました。

> 性能が落ちてもよいのでコスト削減案を複数考えて見積書を作成してください。その際に各案のデメリッ
  トも出力してください。検証環境ではなく本番環境想定で考えてください。構成の変更は行わないでくだ
  さい。

以下がKiro CLIの出力結果です。構成変更がない場合だとインスタンスサイズの変更や料金プランの最適化を行ってくれます。

image.png

次に構成変更を許容する場合でコスト削減案を作成してもらいます。

> 構成変更してもよい場合でコスト削減案を作成してください。

↓ 現行の構成を基準に難易度、推奨度を記載してくれています。

image.png

※「Serverless化」案のデメリット欄にある「学習コスト高」というのは新技術をエンジニアが習得する際に必要な時間・費用・労力が増加することを意味しているようです。

運用負荷や技術的な複雑さとコストの割引率はトレードオフ関係にありそうですね。

今回考えた構成をKiro CLIに環境構築してもらうこともできます。(環境構築まで実施したかったのですが、AWSクレジットが残り少なく今回は断念します...)

おわりに

以上、Kiro CLIに要件を伝えて構成を考えてもらい見積もり書の作成を実施してもらいました!
今回Kiro CLIを使用してみて感じたこととしては、求めるアウトプットが欲しい際にはプロンプトの内容をいかに考えるかが重要であると思いました。そのためにKiro CLIでできること / できないことを検証しながらプロンプトの内容を考えていくと上手く使いこなせるように思います。

ここまでご覧いただきありがとうございました。

良いお年をお迎えください!:shinto_shrine:

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?