COLUMN

Amazon Q Developer for CLIを使って、構築作業を楽にしよう(MCP対応版)

こんにちは、白鳥です。

4/2のコラムでAmazon Q Developer for CLIを活用した構築作業を体験しました。その後4/29にAmazon Q Developer for CLIにおいて Model Context Protocol (MCP) のサポートが発表されています。本コラムでも過去MCPについて触れていますが、MCPを使うことで前回のコラムから新しいことができるようになったので、実際に触れながら体験していきたいと思います。

想定する読者

  • AWS構築や運用に苦労している方
  • AWS環境の関連ドキュメントを簡単に作りたい方

AWSを使った生成AIの活用に関するお問い合わせはこちら!

今回の流れ

今回は、以下の流れで進めたいと思います。

  • Amazon Q Developer for CLIのアップデート(Windowsの場合)
  • MCP対応準備
  • パラメーターシートからCLIスクリプトを作成
  • AWS Diagram MCP Serverを使用した構成図作成

AWSを使った生成AIの活用に関するお問い合わせはこちら!

Amazon Q Developer for CLIのアップデート(Windowsの場合)

前回のコラムの環境をアップデートしていきます。前回同様、WSL上のUbuntu24.04を使用しています。

前回のコラムの環境では、インストーラーをダウンロードしてインストールしたため、アンインストール⇒再インストールを行います。

sudo apt-get remove amazon-q

設定ファイルは今後も使うため、残しておきます。

その後インストール手順は、前回と同様になります。

インストールが完了した後、バージョンを確認します。

q --version

1.9.1以上であることを確認します。

q 1.9.1

初期インストールと同様、q doctorコマンドを実行し問題ないところまで確認します。

q doctor

この際

☑Everything looks good!

と表示されれば問題ありません。問題がある場合は、修正点が示されるため、修正して上記の表示が出るまで繰り返します。

MCP対応準備

ここから、MCPへの対応を行っていきます。AWS公式のMCPサーバーはuvを使ってパッケージを管理しますので、その準備とMCPのコンフィグファイルを用意します。

まずはuvというパッケージマネージャーをイントールします。

curl -LsSf https://astral.sh/uv/install.sh | sh

次に、uvを使用してPythonをインストールします。

uv python install 3.10

構成図作成に必要なパッケージ(graphviz)をインストールします。

sudo apt install graphviz

次に、MCPのJSONファイルを作成し、mcp.jsonで保存します。今回の構成図作成に必要なのはAWS Diagram MCP Serverだけなのですが、複数のMCPサーバーをいれるJSONの書き方がなかなか見つからなかったため、AWS Document MCP ServerとAWS CDK MCP Serverも入れてみます。

{
  "mcpServers": {
    "awslabs.aws-documentation-mcp-server": {
      "command": "uvx",
      "args": [
        "awslabs.aws-documentation-mcp-server@latest"
      ],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": [
        "read_documentation"
      ]
    },
    "awslabs.aws-diagram-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.aws-diagram-mcp-server"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "autoApprove": [],
      "disabled": false
    },
    "awslabs.cdk-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.cdk-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

MCPサーバーのコンフィグファイルは、2通りの格納場所があります。

  • `C:\Users\${User}\.aws\amazonq`フォルダの場合、PCすべてに適用
  • ワークスペースのルートにある.amazonq/ディレクトリの場合、対象のワークスペースにのみ適用

パッケージとコンフィグファイルの保存が終わったら、Amazon Q Developer for CLIを起動します。

q chat

すると、MCPサーバーが初期化され起動すれば成功です。

AWSを使った生成AIの活用に関するお問い合わせはこちら!

パラメーターシートからCLIスクリプトを作成

前回作成したパラメーターシートから、AWS CLIコマンドを使ったスクリプトを作ることを試してみます。どのような環境かを簡単に解説すると、東京リージョンの複数のAZにまたがるVPCを作成したものです。

CLIの作成の前に、xlsxファイルの読み込みができるかどうか確認しました。

今の環境におけるAmazon Q及び、MCPの設定でxlsxファイルの読み書きは行えますか?行えない場合、不足しているライブラリやMCPサーバーを調査してください。

良いニュースです!環境には既に以下のライブラリがインストールされています:

• pandas 2.1.4

• openpyxl 3.1.2

これらのライブラリを使用すれば、Pythonスクリプトを作成してxlsxファイルの読み書きが可能です。

これらのスクリプトを作成し、execute_bashツールを使用してpython スクリプト名.pyのように実行することで、xlsxファイルの読み書きが可能です。

現在の環境では、必要なライブラリが既にインストールされているため、追加のMCPサーバーや設定は必要ありません。

前回パラメーターシートや構成図を作成したときに、必要なライブラリがインストールされていました。こちらを使って調査ができそうです。新規の場合はこれらのライブラリをインストールします。

次に、パラメーターシートを読み込みます。パラメーターシートとスクリプトの作成は一度にできるかもしれませんが、Step by Stepで行います。

対象のエクセルシート /home/shiratori/parameter_sheet.xlsx は複数のシートにまたがったエクセルファイルです。本ファイルを読み取り、記載内容を簡単に説明してください。

Excelファイル「parameter_sheet.xlsx」の分析結果をまとめます。このファイルは東京リージョン(ap-northeast-1)のAWSリソース構成パラメーターを記録した複数シートのExcelファイルです。

### ファイル概要

このExcelファイルには9つのシートがあり、東京リージョンにデプロイされたAWSインフラストラクチャの詳細情報が記録されています。

### 総括

このExcelファイルは、東京リージョンに構築された高可用性のVPCアーキテクチャの設定情報を記録しています。2つのアベイラビリティゾーン(ap-northeast-1aとap-northeast-1c)にまたがるパブリックサブネットとプライベートサブネットが設定され、冗長性と高可用性を確保しています。NATゲートウェイも各AZに配置され、プライベートサブネットからのインターネット接続を可能にしています。

前回作ったもののそのままなので、特に誤りがないことがわかります。このパラメーターシートをもとに本構成を実現するためのAWS CLIを使ったスクリプトを作成してもらいます。

このパラメーターシートをもとに、別のAWSアカウントで同じ環境を作成したいと思います。AWS CLIで作成しますので、スクリプトを作成してください。

### スクリプトの概要

スクリプトは /home/shiratori/xxxx.sh に保存され、実行権限が付与されています。以下のリソースを順番に作成します:

1. VPC

• 名前: MyVPC

• CIDR: 10.0.0.0/16

• DNS設定を有効化

2. サブネット

• PublicSubnet1 (10.0.0.0/24) - ap-northeast-1a

• PublicSubnet2 (10.0.2.0/24) - ap-northeast-1c

• PrivateSubnet1 (10.0.1.0/24) - ap-northeast-1a

• PrivateSubnet2 (10.0.3.0/24) - ap-northeast-1c

• パブリックサブネットには自動パブリックIP割り当てを有効化

3. インターネットゲートウェイ

• 名前: MyIGW

• VPCにアタッチ

4. Elastic IP

• NATゲートウェイ用に2つのElastic IPを割り当て

5. NATゲートウェイ

• NatGateway1 - PublicSubnet1に配置

• NatGateway2 - PublicSubnet2に配置

6. ルートテーブル

• PublicRouteTable - インターネットゲートウェイへのルート

• PrivateRouteTable1 - NATゲートウェイ1へのルート

• PrivateRouteTable2 - NATゲートウェイ2へのルート

7. ルートテーブルの関連付け

• パブリックサブネットをPublicRouteTableに関連付け

• プライベートサブネットをそれぞれのPrivateRouteTableに関連付け

前回と同じものが出来上がっています。

AWS Diagram MCP Serverを使用した構成図の作成

このスクリプトをベースに、構成図を作成してもらいます。

このスクリプトをもとにMCPのAWS Diagram Toolを利用して構成図を作図してください。ダイアグラムがWindows環境で文字化けしないよう留意してください。

ダイアグラムツールがWindows環境で文字化けすることがわかっていたため、文字化けしないような配慮をプロンプトに追加しました。

作成結果は以下の通りです。

ツールの特性が出ている構成図で、個人的には矢印の向きが気になりますが、必要なリソースは作図できています。

この結果からわかるAWS構築作業における現在地の考察

これらの結果から、MCP対応を行ったAWSの構築作業におけるAmazon Q Developer for CLIの現在地を前回から更新したいと思います。あくまで現時点におけるデモ利用をもとにした考察のため、今後の基盤モデルの進歩や、コンテキスト・プロンプトの工夫などで大きく変わる可能性もあります。

構築作業

今回は、受託にある詳細設計で使われるパラメーターシートから作業を行う、というシミュレーションを行うため、エクセルファイルの読み取りとそこからCLIコマンドの作成という形で行いました。実験的には問題なく実行できましたが、今回のパラメーターシート自体がAmazon Q Developer for CLIで作成したものなので、AIにとって読みやすいパラメーターシートであることは間違いがないかと思います。任意のパラメーターシートで読み取れるかは未知数のため、今後パラメーターシート作成以降の作業を生成AIに行ってもらうためには、パラメーターシートのフォーマットを変えるといった工夫が必要になりかもしれません。

構成図作成

今回MCPサーバーの恩恵を受けた箇所になります。AWS公式のAWS MCP Serversを活用して、構成図を作成することができるようになっています。ほかにもdraw.ioの形式で保存ができたりもできるため、構成図の作成については使用する先を考えながら作成することで幅が生まれてくると思います。

その他の使用例

MCPサーバーに対応したことで、例えば先ほどの構成をCDKで作成しCDK Serverを使用してベストプラクティスへのコードレビューを行う、既存の構成を調査し改善点と改善方法をAWS Documentation MCP Serverを使って調査する、といった自身の環境に特化した使い方ができるかと思います。また、PostgreSQLを読み込むMCPサーバーとCloudWatchのメトリクスを取得してきて、データベースのチューニングを行う、といったことも予想できます。

AWSを使った生成AIの活用に関するお問い合わせはこちら!

まとめ

今回はMCPサーバーを活用してAWSの構築作業をより簡易にできないか試してみましたが、少し進歩があったように思います。これからもこうした作業にAIを活用してより高い品質での業務ができればと思います。

NTT東日本では、AWSの構築保守だけではなく、ネットワーク設計なども含めたエンドツーエンドでのソリューション提供を行っております。

経験値豊かなメンバーがご担当させていただきますので、是非お気軽にお問い合わせください!

ページ上部へ戻る

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。