Amazon Q Developerで構成図から利用料金を算出する

記事タイトルとURLをコピーする

こんにちは、エデュケーショナルサービス課の小倉です。
変わらず AWS トレーナーとしてトレーニングを実施していています。

AWS の構成図からどれくらい利用料金がかかるかを確認したいと思ったことはありませんか。Amazon Q Developer CLI を使えばできます。

流れとしては以下の処理をするだけで、とても簡単です。
 1.Amazon Q Developer CLI で構成図を読み込ませ、AWS サービスの一覧を出力する
 2.AWS Pricing MCP Server を利用して、AWS サービスの利用料金を算出する

試しに以下の構成図を読み込ませて、利用料金を確認してみます。

環境

私の環境は、Windows11 の WSL で Amazon Q Developer CLI を実行しています。

事前準備

0. 用語

Model Context Protocol (MCP)
MCP とは、LLM アプリケーションと外部データソースおよびツールとのシームレスな統合を可能にするオープンプロトコルです。今回は AWS Pricing MCP Server というAWSサービスの料金を確認できる外部データソースにアクセスをして、料金情報を取得します。

modelcontextprotocol.io

1. アクセスキーの発行と設定

AWS Pricing MCP Server では、IAMユーザーかロールに pricing:* の権限が必要です。 この権限を付与した IAM ポリシーを作成して IAM ユーザーに適用し、アクセスキーの発行をします。 その後、実行環境でアクセスキーの設定をします。

https://awslabs.github.io/mcp/servers/aws-pricing-mcp-server#aws-authentication

参考

docs.aws.amazon.com

docs.aws.amazon.com

docs.aws.amazon.com

docs.aws.amazon.com

2. Amazon Q Developer CLI の設定

Amazon Q Developer CLI を実行できるように準備をします。
初期設定はこちらのブログを参考にしてみてください。

blog.serverworks.co.jp

3. AWS Pricing MCP Server の設定

AWS Pricing MCP Server を利用できるようにします。
AWS Pricing MCP Server の設定方法は、ドキュメントに記載がありますが、以下の3つの設定が必要です。

https://awslabs.github.io/mcp/servers/aws-pricing-mcp-server#prerequisites


1.uv のインストール

  https://github.com/astral-sh/uv#installation

2.python のインストール

  インストールコマンド例:uv python install 3.10

3.AWS Pricing MCP Server の設定

  https://awslabs.github.io/mcp/servers/aws-pricing-mcp-server#-using-uv

私の環境は WSL なので、 ~/.aws/amazonq/mcp.json に以下を設定します。
ドキュメントからの変更箇所は 2 つで、1 つ目は command のあとの uvx のパスをフルパスにしたところ、2 つ目は AWS_PROFILE を default に変更しています。

{
  "mcpServers": {
    "awslabs.aws-pricing-mcp-server": {
      "command": "/home/bobchan/.local/bin/uvx",
      "args": [
         "awslabs.aws-pricing-mcp-server@latest"
      ],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR",
        "AWS_PROFILE": "default",
        "AWS_REGION": "us-east-1"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

いろいろ設定しましたが、これで事前準備は終わりです。

構成図の料金算出

実行環境で q を実行します。
実行結果の 2 行目で AWS Pricing MCP Server を読み込んでいるのが確認できます。

$ q
✓ awslabs.aws-pricing-mcp-server loaded in 1.62 s


    ⢠⣶⣶⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⣿⣶⣦⡀⠀
 ⠀⠀⠀⣾⡿⢻⣿⡆⠀⠀⠀⢀⣄⡄⢀⣠⣤⣤⡀⢀⣠⣤⣤⡀⠀⠀⢀⣠⣤⣤⣤⣄⠀⠀⢀⣤⣤⣤⣤⣤⣤⡀⠀⠀⣀⣤⣤⣤⣀⠀⠀⠀⢠⣤⡀⣀⣤⣤⣄⡀⠀⠀⠀⠀⠀⠀⢠⣿⣿⠋⠀⠀⠀⠙⣿⣿⡆
 ⠀⠀⣼⣿⠇⠀⣿⣿⡄⠀⠀⢸⣿⣿⠛⠉⠻⣿⣿⠛⠉⠛⣿⣿⠀⠀⠘⠛⠉⠉⠻⣿⣧⠀⠈⠛⠛⠛⣻⣿⡿⠀⢀⣾⣿⠛⠉⠻⣿⣷⡀⠀⢸⣿⡟⠛⠉⢻⣿⣷⠀⠀⠀⠀⠀⠀⣼⣿⡏⠀⠀⠀⠀⠀⢸⣿⣿
 ⠀⢰⣿⣿⣤⣤⣼⣿⣷⠀⠀⢸⣿⣿⠀⠀⠀⣿⣿⠀⠀⠀⣿⣿⠀⠀⢀⣴⣶⣶⣶⣿⣿⠀⠀⠀⣠⣾⡿⠋⠀⠀⢸⣿⣿⠀⠀⠀⣿⣿⡇⠀⢸⣿⡇⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⢹⣿⣇⠀⠀⠀⠀⠀⢸⣿⡿
 ⢀⣿⣿⠋⠉⠉⠉⢻⣿⣇⠀⢸⣿⣿⠀⠀⠀⣿⣿⠀⠀⠀⣿⣿⠀⠀⣿⣿⡀⠀⣠⣿⣿⠀⢀⣴⣿⣋⣀⣀⣀⡀⠘⣿⣿⣄⣀⣠⣿⣿⠃⠀⢸⣿⡇⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⠈⢿⣿⣦⣀⣀⣀⣴⣿⡿⠃
 ⠚⠛⠋⠀⠀⠀⠀⠘⠛⠛⠀⠘⠛⠛⠀⠀⠀⠛⠛⠀⠀⠀⠛⠛⠀⠀⠙⠻⠿⠟⠋⠛⠛⠀⠘⠛⠛⠛⠛⠛⠛⠃⠀⠈⠛⠿⠿⠿⠛⠁⠀⠀⠘⠛⠃⠀⠀⠘⠛⠛⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠿⢿⣿⣿⣋⠀⠀
 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⢿⡧

╭─────────────────────────────── Did you know? ────────────────────────────────╮
│                                                                              │
│         Use /model to select the model to use for this conversation          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

/help all commands  •  ctrl + j new lines  •  ctrl + s fuzzy search
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🤖 You are chatting with claude-sonnet-4.5

>

この状態で、以下の文章を入力して実行します。2行目のパスは構成図の画像を指定します。

> 以下の構成図に描かれているAWSサービスの月の利用料を算出してください。
/mnt/c/Users/masar/Downloads/kousei.png

実行したら以下の内容が返ってきました。構成図の AWS サービスは読み込んでくれていて、EC2 のインスタンスタイプなど料金を算出するのに必要な情報を求められています。

> 構成図を確認しました。以下のAWSサービスが使用されています:

• Amazon EC2(複数インスタンス)
• Application Load Balancer
• NAT Gateway
• Amazon S3
• Amazon RDS(2インスタンス)
• AWS Auto Scaling
• IAM Role
• Amazon CloudWatch
• AMI

月額料金を算出するために、各サービスの詳細な仕様が必要です。以下の情報を教えていただけますか?

Amazon EC2:
• インスタンスタイプ(例:t3.medium, m5.large)
• 各Auto Scalingグループの想定インスタンス数
• 月間稼働時間

Amazon RDS:
• データベースエンジン(MySQL, PostgreSQL等)
• インスタンスタイプ(例:db.t3.medium)
• ストレージ容量とタイプ
• Multi-AZ構成かどうか

Application Load Balancer:
• 月間処理データ量(GB)
• 新規接続数/秒

NAT Gateway:
• 月間データ処理量(GB)

Amazon S3:
• ストレージ容量(GB)
• 月間リクエスト数
• データ転送量

Amazon CloudWatch:
• カスタムメトリクス数
• ログデータ量(GB)

これらの情報をいただければ、正確な月額料金を算出いたします。

では、追加の情報として一番料金が安い場合どのようになるかを確認してみます。

> この構成で一番料金が安くなる月額料金を算出してください。

結果

> 構成図から最小構成での月額料金を算出します。以下の前提で計算します:

最小構成の前提:
• EC2: t4g.nano × 3インスタンス(Public subnet 1台、Protected subnet 2台)
• RDS: db.t4g.micro × 2インスタンス(Single-AZ)
• ALB: 1台(最小LCU使用)
• NAT Gateway: 1台(最小データ転送)
• S3: 1GB
• CloudWatch: 基本メトリクス(無料)
• IAM/Auto Scaling: 無料

月額料金計算(730時間/月):

1. EC2インスタンス(t4g.nano)
   • 単価: $0.0042/時間
   • 3インスタンス × $0.0042 × 730時間 = $9.20

2. RDS(db.t4g.micro MySQL)
   • 単価: $0.016/時間
   • 2インスタンス × $0.016 × 730時間 = $23.36

3. Application Load Balancer
   • 時間料金: $0.0225 × 730時間 = $16.43
   • LCU料金(最小): $0.008 × 730時間 = $5.84
   • 合計: $22.27

4. NAT Gateway
   • 時間料金: $0.045 × 730時間 = $32.85
   • データ処理(1GB想定): $0.045 × 1GB = $0.05
   • 合計: $32.90

5. S3(1GB)
   • ストレージ: $0.023 × 1GB = $0.02

6. CloudWatch
   • 基本メトリクス: $0.00(無料)

7. IAM/Auto Scaling/AMI
   • **$0.00**(無料)

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


月額合計: 約 $87.75

内訳:
• EC2: $9.20
• RDS: $23.36
• ALB: $22.27
• NAT Gateway: $32.90
• S3: $0.02
• その他: $0.00

この構成で最も大きなコストはNAT Gateway(37%)とRDS(27%)です。さらにコストを削減する場合は、NAT Gatewayの削除やRDSインスタンスの統合を検討できます。

処理の過程で以下のメッセージがでており、設定した AWS Pricing MCP Server を利用していることが確認できます。

🛠️  Using tool: get_pricing (trusted) from mcp server awslabs.aws-pricing-mcp-server

利用料金を算出してくれて、さらにコスト最適化まで提案してくれるなんてさすがですね!
ただ、構成図の描き方とプロンプト(指示)によると思うのですが、RDS を 2 つ描いてしまうと Multi-AZ にはできなかったです。このあとに「RDS は Multi-AZ で計算してください」とプロンプトを入力したら、単純に Multi-AZ の RDS が 2 つになり料金が倍になりました。あと、プロンプトにどこのリージョンかを指定するほうがよいです(指定するのを忘れていました…)。

まとめ

Amazon Q Developer CLI で構成図の AWS サービスを読み取り、利用料金を算出することができました。
今回はプロンプト(指示)をそんなにこだわったわけではないので、概算料金がでてきましたが、もう少し工夫をすれば正確な情報をだすことができるかと思います。
いろいろ試していると面白いことができて楽しいです。ぜひ、みなさんも Amazon Q Developer CLI でいろいろ試してみましょう!

おまけ

構成図を作成する AWS Diagram MCP Server というものがあるのですが、最初の構成図も自動で作成しようとしたところうまくいきませんでした。
AWS Diagram MCP Server の詳細は以下です。

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

AWS Diagram MCP Server を利用できるようにして、プロンプトに以下を入力しました。

AWSで3層構造のアーキテクチャの構成図を作成してください。
インターネットからALB, EC2, RDSにアクセスし、アベイラビリティゾーンをまたいで冗長構成にしてください。また、同じAWSサービス同士ならべて配置してください。

できあがった構成図がこちらです。
いろいろ試したのですが、変わらずです。おそらくプロンプトが悪いからだと思いますが、まだうまく使いこなせていないようです。

小倉 大(記事一覧)

アプリケーションサービス部エデュケーショナルサービス課 札幌在住

AWSトレーニングの講師をしています。

最近は7歳の息子と遊ぶのが楽しいです!

Twitter: @MasaruOgura