Kiro CLIをEC2(AmazonLinux 2023)にインストールしてみた

Kiro CLIをEC2(AmazonLinux 2023)にインストールしてみた

Kiro CLIをAmazon Linux 2023環境のEC2にインストールし、IAMロール権限を活用したAWS操作の動作を検証してみました。
2025.11.18

2025年11月18日、Kiro CLIがリリースされました。

今回、EC2の Amazon Linux 2023環境に Kiro CLI をインストールする機会がありましたので、紹介します。

環境

EC2

  • AMI: ami-0e68e34976bb4db93
  • 説明: Amazon Linux 2023 AMI 2023.9.20251110.1 x86_64 HVM kernel-6.1。

x86_64アーキテクチャのEC2を利用しました。

IAM

  • IAMロールは、AmazonSSMManagedInstanceCore と ReadOnlyAccess ポリシーをアタッチしました。
    • arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
    • arn:aws:iam::aws:policy/ReadOnlyAccess

OSユーザ

クライアント

VSCode に Remote SSH拡張をインストール、EC2へのSSHクライアントとして利用しました。

https://dev.classmethod.jp/articles/install-extention-remote-ssh-in-vscode-connect-ec2-ja/

インストール

Kiro cliの公式ページ、With a zip file の手順で、インストールを実施しました。

https://kiro.dev/docs/cli/installation/#with-a-zip-file

Standard version (glibc 2.34+)、Linux x86-64

curl --proto '=https' --tlsv1.2 -sSf 'https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip' -o 'kirocli.zip'

2025年11月18日時点、ダウンロードしたZIPファイルを展開すると、READMEには「To install the Amazon Q CLI run the install.sh script」との記載がありました。

   creating: q/
  inflating: q/install.sh            
  inflating: q/README                
  inflating: q/BUILD-INFO            
   creating: q/bin/
  inflating: q/bin/q                 
  inflating: q/bin/qterm             
  inflating: q/bin/qchat      

従来の Q Developer CLI のインストールを実施しました。

./q/install.sh

$ ./q/install.sh            
✔ Do you want q to modify your shell config (you will have to manually do this otherwise)? · Yes
✔ Select login method · Use with Pro license
✔ Enter Start URL · https://d-****.awsapps.com/start
✔ Enter Region · ap-northeast-1

Confirm the following code in the browser
Code: ****-****

Open this URL: https://d-****.awsapps.com/start/#/device?user_code=****-****

IAM Identity Centor に登録済みの Q Developer Pro を利用して、ライセンス登録を実施しました。

https://dev.classmethod.jp/articles/amazon-q-developer-pro-member-account/

SSO用のID、パスワード、MFAでログイン後、認証リクエストを確認。

認証がリクエストされました

Kiroへのアクセス許可を行いました。

アクセスを許可

リクエスト承認

アップデート

q update 操作により、kiro-cliへの更新が実施されました。

$ q update
████████████████████████████████████████████████████████████████████████ 100/100

CLIのバージョン情報は1.20.0でした。

$ kiro-cli --version
kiro-cli 1.20.0
$ kiro-cli
⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀     ⢀⣴⣶⣶⣦⡀⠀⠀⠀⢀⣴⣶⣦⣄⡀⠀⠀⢀⣴⣶⣶⣦⡀⠀⠀⢀⣴⣶⣶⣶⣶⣶⣶⣶⣶⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣶⣶⣶⣶⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀    ⢰⣿⠋⠁⠈⠙⣿⡆⠀⢀⣾⡿⠁⠀⠈⢻⡆⢰⣿⠋⠁⠈⠙⣿⡆⢰⣿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⣦⠀⠀⠀⠀⣴⡿⠟⠋⠁⠀⠀⠀⠈⠙⠻⢿⣦⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀    ⢸⣿⠀⠀⠀⠀⣿⣇⣴⡿⠋⠀⠀⠀⢀⣼⠇⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⢠⣤⣤⣤⣤⣄⠀⠀⠀⠀⣿⡆⠀⠀⣼⡟⠀⠀⠀⠀⣀⣀⣀⠀⠀⠀⠀⢻⣧⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀    ⢸⣿⠀⠀⠀⠀⣿⡿⠋⠀⠀⠀⢀⣾⡿⠁⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⢸⣿⠉⠉⠉⣿⡇⠀⠀⠀⣿⡇⠀⣼⡟⠀⠀⠀⣰⡿⠟⠛⠻⢿⣆⠀⠀⠀⢻⣧⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀    ⢸⣿⠀⠀⠀⠀⠙⠁⠀⠀⢀⣼⡟⠁⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⢸⣿⣶⣶⡶⠋⠀⠀⠀⠀⣿⠇⢰⣿⠀⠀⠀⢰⣿⠀⠀⠀⠀⠀⣿⡆⠀⠀⠀⣿⡆
⠀⠀⠀⠀⠀⠀⠀    ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠹⣷⡀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣼⠟⠀⢸⣿⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⣿⡇
⠀⠀⠀⠀⠀⠀⠀    ⢸⣿⠀⠀⠀⠀⠀⣠⡀⠀⠀⠹⣷⡄⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⣤⣄⠀⠀⠀⠀⠹⣿⡅⠀⠀⠸⣿⠀⠀⠀⠸⣿⠀⠀⠀⠀⠀⣿⠇⠀⠀⠀⣿⠇
⠀⠀⠀⠀⠀⠀⠀    ⢸⣿⠀⠀⠀⠀⣾⡟⣷⡀⠀⠀⠘⣿⣆⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⣿⡟⣷⡀⠀⠀⠀⠘⣿⣆⠀⠀⢻⣧⠀⠀⠀⠹⣷⣦⣤⣤⣾⠏⠀⠀⠀⣼⡟
⠀⠀⠀⠀⠀⠀⠀    ⢸⣿⠀⠀⠀⠀⣿⡇⠹⣷⡀⠀⠀⠈⢻⡇⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⣿⡇⠹⣷⡀⠀⠀⠀⠈⢻⡇⠀⠀⢻⣧⠀⠀⠀⠀⠉⠉⠉⠀⠀⠀⠀⣼⡟
⠀⠀⠀⠀⠀⠀⠀    ⠸⣿⣄⡀⢀⣠⣿⠇⠀⠙⣷⡀⠀⢀⣼⠇⠀⠸⣿⣄⡀⢀⣠⣿⠇⠸⣿⣄⡀⢀⣠⣿⠇⠀⠙⣷⡀⠀⠀⢀⣼⠇⠀⠀⠀⠻⣷⣦⣄⡀⠀⠀⠀⢀⣠⣴⣾⠟
⠀⠀⠀⠀⠀⠀⠀    ⠀⠈⠻⠿⠿⠟⠁⠀⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠀⠀⠀⠈⠙⠻⠿⠿⠿⠿⠟⠋⠁

╭─────────────────────────────── Did you know? ────────────────────────────────╮
│                                                                              │
│     You can see the server load status as well as any warnings or errors     │
│                             associated with /mcp                             │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

Model: Auto (/model to change)

kiro-cliへのアップデート後も q コマンドは利用可能ですが、 kiro-cli の利用を促す案内が出力されるようになりました。

$ q
Warning! Q CLI is now Kiro CLI and should be invoked as kiro-cli rather than q

動作確認

次のプロンプトで、実行環境のEC2の情報を取得できるか確かめてみました。

インスタンスメタデータより、自身のEC2のインスタンスIDを特定。
CLIを利用してEC2インスタンス情報を取得して。

途中の確認、Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: は全て許可(t)しました。

実行ログ

> EC2インスタンスのメタデータからインスタンスIDを取得し、その情報を確認します。
I will run the following command: curl -s http://169.254.169.254/latest/meta-data/instance-id (using tool: shell)
Purpose: インスタンスメタデータからインスタンスIDを取得

Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:

> t

 - Completed in 0.6s

> メタデータサービスから応答がありませんでした。IMDSv2を使用してトークンベースでアクセスしてみます
。
I will run the following command: TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) && curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id 2>/dev/null || echo "メタデータサービスにアクセスできません" (using tool: shell)
Purpose: IMDSv2でトークンを取得してインスタンスIDを確認

i-****
 - Completed in 0.11s

> インスタンスIDが取得できました: i-****

次に、このインスタンスの詳細情報をAWS CLIで取得します。
I will run the following command: TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600") && curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/placement/region (using tool: shell)
Purpose: リージョン情報を取得

ap-northeast-1
 - Completed in 0.11s

Running aws cli command (using tool: aws):

Service name: ec2
Operation name: describe-instances
Parameters: 
- instance-ids: ["i-****"]
Region: ap-northeast-1
Label: EC2インスタンス情報を取得
Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:

> t

 - Completed in 1.503s

> EC2インスタンス情報を取得しました。

## インスタンス概要

- **インスタンスID**: i-****
- **インスタンスタイプ**: c7i-flex.large
- **状態**: running
- **リージョン**: ap-northeast-1 (東京)
- **アベイラビリティゾーン**: ap-northeast-1c
- **AMI ID**: ami-****
- **起動時刻**: 2025-11-**T**:**:**+00:00

## ネットワーク情報

- **パブリックIP**: 3.**.**.**
- **プライベートIP**: 172.31.**.**
- **VPC ID**: vpc-****
- **サブネットID**: subnet-****
- **セキュリティグループ**: sg-**** (***)

## その他の設定

- **IAMロール**: ec2-***-***
- **キーペア**: ***
- **EBS最適化**: 有効
- **メタデータサービス**: IMDSv2 (HttpTokens: required)
- **ルートデバイス**: /dev/xvda (EBS)
- **プラットフォーム**: Linux/UNIX
 ▸ Time: 33s

IMDSv2を使用してメタ情報を取得してインスタンスIDを特定。EC2にアタッチした ReadOnlyAccess ポリシーにより、EC2情報の取得ができました

> EC2インスタンス i-*** の EBS容量とEBSスナップショットの消費状況を教えて

> EBSボリュームとスナップショットの情報を取得します。

Running aws cli command (using tool: aws):

Service name: ec2
Operation name: describe-volumes
Parameters: 
- filters: [{"Name":"attachment.instance-id","Values":["i-***"]}]
Region: ap-northeast-1
Label: インスタンスにアタッチされているEBSボリューム情報を取得Running aws cli command (using tool: aws):

Service name: ec2
Operation name: describe-snapshots
Parameters: 
- owner-ids: ["self"]
Region: ap-northeast-1
Label: アカウント内の全スナップショット情報を取得 - Completed in 0.664s

 - Completed in 0.638s

> ## EBS容量

ボリュームID: vol-***
- **サイズ**: 12 GB
- **タイプ**: gp3
- **IOPS**: 3000
- **スループット**: 125 MB/s
- **状態**: in-use (アタッチ済み)
- **デバイス名**: /dev/xvda
- **暗号化**: なし

## EBSスナップショット消費状況

このインスタンスのボリューム (vol-***) から作成されたスナップショットが2つあります:

### スナップショット1
- **スナップショットID**: snap-***
- **作成日時**: 2025-11-16T22:35:53
- **完了日時**: 2025-11-16T22:40:02
- **実際の消費容量**: 4.82 GB (5,177,868,288 bytes)
- **ボリュームサイズ**: 12 GB
- **説明**: AMI作成用 (ami-09aaa6f09d0ded2ee)

### スナップショット2
- **スナップショットID**: snap-***
- **作成日時**: 2025-11-17T22:30:30
- **完了日時**: 2025-11-17T22:32:54
- **実際の消費容量**: 5.60 GB (6,015,156,224 bytes)
- **ボリュームサイズ**: 12 GB
- **説明**: AMI作成用 (ami-07ac17310d6c6f5c7)

### 合計スナップショット消費容量
約 10.42 GB (実際に使用されているブロックのみ)

スナップショットは増分バックアップのため、実際の課金は重複しないブロックのみです。2つのスナップショ
ットの合計実容量は約10.42GBですが、増分の仕組みにより実際の課金額はこれより少なくなる可能性がありま
す。
 ▸ Time: 17s

実際の課金額は?と尋ねてみました。

> 実際の課金額は換算できる?

> EBSスナップショットの課金は増分バックアップの仕組みで複雑なため、正確な金額を計算するにはAWS Cost
Explorerやスナップショット間の実際の差分データを確認する必要があります。

現時点で分かっている情報から概算を出してみます:
Running aws cli command (using tool: aws):

Service name: ec2
Operation name: get-snapshot-block-public-access-state
Parameters: 
Region: ap-northeast-1
Label: スナップショットのストレージ情報確認 - Completed in 0.565s

> ## EBS料金の概算

### 東京リージョン (ap-northeast-1) の料金 (2025年11月時点)

EBSボリューム (gp3)
- 12 GB × $0.096/GB/月 = $1.152/月

EBSスナップショット (標準階層)
- スナップショット料金: $0.05/GB/月

スナップショットは増分バックアップのため、実際の課金対象は:
- 1つ目のスナップショット: 4.82 GB (全データ)
- 2つ目のスナップショット: 差分のみ (5.60 GB - 4.82 GB = 0.78 GB程度と推定)

推定スナップショット容量: 約 5.6 GB
- 5.6 GB × $0.05/GB/月 = $0.28/月

### 合計月額概算
- **EBSボリューム**: $1.152
- **スナップショット**: $0.28
- **合計**: 約 $1.43/月 (約 ¥215/月、1ドル=150円換算)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

注意点:
- スナップショットの実際の差分容量は、2つのスナップショット間で変更されたブロックのみです
- 正確な課金額は AWS Cost Explorer や請求ダッシュボードで確認できます
- 料金は変動する可能性があるため、最新の料金は AWS Pricing Calculator (https://calculator.aws) で確
認してください
 ▸ Time: 16s

まとめ

MacやWindowsなどのローカルPC端末にもKiro CLIをインストールできますが、EC2上にインストールすることで、EC2インスタンスに付与したIAMロールの権限でKiro CLIを利用できるようになります。

また、VSCode の SSH拡張機能を利用することで、ローカルPCと同様の操作感でファイル編集やプロンプトの日本語入力がスムーズに行えます。

ローカル開発環境では、他のツールとの依存関係でNode.jsやPythonなどのランタイム管理が課題になることがありますが、EC2上の開発環境であれば、環境の再構築も容易です。

Kiro CLIの機能を評価する際、SSH接続可能なEC2環境での利用もぜひお試しください。

この記事をシェアする

FacebookHatena blogX

関連記事