Amazon Q Developer + MCP設定の実践記録
はじめに
先日社内でAmazon Q Developerの説明会が開かれていました。 内容としては Amazon Q Developer で簡単なゲームを作ってみよう!というお話でしたが、MCPについてもちょこっと触れていました。
それを上手く活用すれば、AWSアカウントの監視とトラブルシューティングに役立ちそうだったので記事にしたい衝動に駆られて記事にしてみました。 場合によっては、インフラエンジニアの工数が取れない案件でPMの方だったりがトラブルシューティングするケースがあるので、その一助になるのではと検証したのがこの記事です。
Amazon Q Developerは、AWSリソースの監視・トラブルシューティング・コード生成などを支援するAI搭載の開発者ツールです。 特に**MCP(Model Context Protocol)**を活用することで、AWSの各種サービスに直接アクセスし、より効率的な開発・運用が可能になります。
この記事では、Amazon Q Developerのインストールから基本的なMCP設定、さらにCloudWatchやCost Explorerなどの追加MCPサーバーの設定まで、実際の手順を備忘録として記録します。
1. 前提条件の確認
必要な環境
- OS: macOS
- AWS CLI: 2.26.1
- AWS認証情報: 適切な権限を持つIAMユーザー
AWS認証情報の設定
# 必要に応じて認証情報を設定
aws configure
2. Amazon Q Developerのインストール
公式ドキュメントに沿ったインストール
公式ドキュメントに従ってインストールを進めます。
2.1. インストールスクリプトの実行
macOS/Linux:
curl -fsSL https://amazonq-cli.s3.amazonaws.com/install.sh | sh
2.2. インストール確認
# バージョン確認
q --version
特にいうことなし。ドキュメント通り。
3. MCP(Model Context Protocol)の理解
MCPとは
MCPは、AIアシスタントが外部データソースやツールにアクセスするためのプロトコルです。 Amazon Q Developerでは、AWSリソースの情報を取得するためにMCP設定が必要です。
MCPの主な利点:
- リアルタイムデータアクセス: AWSサービスから直接データを取得
- 自動化: 手動でのAPI呼び出しを自動化
- 統合: 複数のAWSサービスを統一的に操作
- 拡張性: 新しいMCPサーバーを追加して機能を拡張
MCP設定の種類
公式ドキュメントによると、Amazon Q Developer CLIは2つのレベルのMCP設定をサポートしています:
- グローバル設定:
~/.aws/amazonq/mcp.json
- すべてのワークスペースに適用 - Workspace設定:
.amazonq/mcp.json
- 現在のワークスペースに固有
今回はWorkspace設定を使用して、プロジェクト固有の設定を行います。 普段AWS Portalを活用して複数案件で利用する場合は、グローバル設定にしてアクセスキーを都度埋め込む方式が良さそうか?
4. 必要なツールのインストール
4.1. uvxのインストール
MCPサーバーを実行するためにuvx
が必要です:
# uvxのインストール
curl -LsSf https://astral.sh/uv/install.sh | sh
# PATHに追加
export PATH="$HOME/.local/bin:$PATH"
# インストール確認
which uvx
基本的には対応するMCPサーバードキュメントのPrerequisitesの項目を実施すればOK まとめていただいているコントリビューターの皆様に感謝!
5. MCP設定ファイルの作成
5.1. 設定ディレクトリの作成
# プロジェクトルートに設定ファイルを作成
mkdir -p .amazonq
touch .amazonq/mcp.json
5.2. MCP設定ファイルの作成
{
"mcpServers": {
"awslabs.aws-pricing-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-pricing-mcp-server@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_PROFILE": "your-profile",
"AWS_REGION": "ap-northeast-1"
},
"disabled": false,
"autoApprove": []
},
"awslabs.cloudwatch-mcp-server": {
"autoApprove": [],
"disabled": false,
"command": "uvx",
"args": [
"awslabs.cloudwatch-mcp-server@latest"
],
"env": {
"AWS_PROFILE": "your-profile",
"FASTMCP_LOG_LEVEL": "ERROR"
},
"transportType": "stdio"
}
}
}
注意: your-profile
の部分は、AWS CLIで設定しているプロファイル名に置き換えてください。
6. 設定したMCPサーバーの説明
6.1. Cost Explorer MCPサーバー
AWS Labsが提供するCost Explorer MCPサーバーを使用することで、AWSのコストデータに直接アクセスし、コスト最適化の分析が可能になります。 これにより、コスト管理が気軽に可能です。
できること
- コスト分析: 詳細なコスト使用量の分析
- 予測機能: 将来のコスト予測
- 最適化提案: リザベーション利用率の分析
- 予算管理: コスト予算の監視と管理
6.2. CloudWatch MCPサーバー
AWS Labsが提供するCloudWatch MCPサーバーを使用することで、CloudWatchのログやメトリクスに直接アクセスできるようになります。 これにより、AIが直接ログを参照できるようになるので、より正確な監視と分析が可能になります。
できること
- リアルタイム監視: ログとメトリクスのリアルタイム分析
- 異常検出: 自動的な異常パターンの検出
- クエリ実行: CloudWatch Logs Insightsクエリの直接実行
- アラーム管理: アクティブなアラームの迅速な確認
7. 実際の使用例
7.1. Amazon Q Developerの起動
設定が完了したら、Amazon Q Developerを起動してMCPサーバーが正常に読み込まれることを確認します:
> q
✓ awslabsaws_pricing_mcp_server loaded in 3.78 s
✓ awslabscloudwatch_mcp_server loaded in 3.90 s
⚠ 2 of 2 mcp servers initialized.
7.2. CloudWatchでのログ監視
実際にCloudWatchのログを確認してみました:
> AWS上のCloudWatchのログについて、直近3日間でエラーは確認できますか?
## まとめ
AWS CloudWatch のログを確認した結果、以下のことがわかりました:
1. 直近3日間(7月18日以降)のエラー:
• 直近3日間にはAPI Gatewayのログエントリが存在せず、エラーも発生していません。
2. 最近のエラー(7月13日〜14日):
• 7月13日と14日に複数のエラーが発生していました。
• 主に2種類のエラーが確認されました:
• Lambda関数の権限エラー: Invalid permissions on Lambda function
• 出力マッピングエラー: No match for output mapping and no default output mapping configured
3. 最新の成功したリクエスト:
• 最新の成功したリクエストは7月14日の16:48:39に記録されており、ステータスコード201(作成成功)で完了しています。
• これはお問い合わせ機能(/contactエンドポイント)へのPOSTリクエストのようです。
4. 現在の状況:
• 7月14日以降、API Gatewayへのリクエストがないか、ログが記録されていない状態です。
• 最後のリクエストは成功しており、それ以前に発生していたエラーは解決された可能性があります。
ポートフォリオウェブサイトのお問い合わせ機能に関連するエラーが7月13日〜14日に発生していましたが、最終的に解決され、それ以降はリクエストがないか、エラーが発生していない状態と考えられます。
検証結果: 確かに直近ではエラーは出ていませんでした。 3日間より以前のエラーも調べてくれていますが、これはLambdaの修正の時に出たエラーなので確かにこのエラーも存在しています。 ちゃんとログを見てくれていそうですね。
7.3. Cost Explorerでのコスト分析
次に、Cost Explorerでコストを確認してみました:
> 全体のコストを教えてください
## 全体のコスト概要
2025年7月1日〜7月21日の期間:
• 合計費用: $XX.XX USD (推定値)
## 7月のサービス別内訳 (主要なもの)
1. Amazon Route 53: $X.XX USD
2. AWS Config: $X.XX USD
3. Amazon GuardDuty: $X.XX USD
4. 税金: $X.XX USD
5. AWS Secrets Manager: $0.XX USD
6. Amazon S3: $0.XX USD
7. EC2 - Other: $0.0X USD
8. AWS Budgets: $0.0X USD
9. Amazon API Gateway: $0.000X USD (約0.0Xセント)
10. Amazon CloudFront: $0.000000X USD (ほぼ無料)
ポートフォリオウェブサイトに直接関連するサービス(API Gateway、CloudFront、S3、Lambda)の費用は非常に少額で、ほとんどが無料枠内に収まっています。主な費用はRoute 53(ドメイン管理)、AWS Config(設定監視)、GuardDuty(セキュリティ監視)などのインフラ管理サービスから発生しています。
検証結果: 金額はぼかしていますが、コンソールで確認した金額と比較すると0.03 USDの差が出ていました。 コンソールの表示タイミングとAmazon Qで確認するタイミングに誤差があるのか、それとも別の要因なのか分かりませんが、N=1のテスト自体には問題なさそうですね。 (使い続けて本当にずれがないかなど確認はしていく)
まとめ
Amazon Q DeveloperとMCPサーバーの導入により、以下のメリットを実現できました:
実現できたこと
- AWSリソースの監視: リアルタイムでのリソース状態確認
- トラブルシューティング: 問題の早期発見と迅速な対応
- コスト最適化: 未使用リソースの検出と最適化提案
- 開発効率向上: AIによるコード生成とデバッグ支援
- 高度な監視: CloudWatch MCPサーバーによる詳細なログ・メトリクス分析
- コスト管理: Cost Explorer MCPサーバーによる包括的なコスト分析
実際の効果
Amazon QとMCPを活用することで、コンソールから気軽にエラー調査やコストを算出できるようになりました。 エラー調査時やコスト算出時をしてもらう際には、どのプロフィールやパラメータ・リージョン先なのかも記載しているので、ユーザーはある程度安心してアウトプットを信頼しても良さそうです。 (ただし、ハルシネーションがないとも言い切れないと思うのであくまでトラブルシュートの導入として使いたい)
参考リンク: